hud-python 0.2.10__py3-none-any.whl → 0.3.0__py3-none-any.whl
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/__init__.py +14 -5
- hud/env/docker_client.py +1 -1
- hud/env/environment.py +10 -7
- hud/env/local_docker_client.py +1 -1
- hud/env/remote_client.py +1 -1
- hud/env/remote_docker_client.py +2 -2
- hud/exceptions.py +2 -1
- hud/mcp_agent/__init__.py +15 -0
- hud/mcp_agent/base.py +723 -0
- hud/mcp_agent/claude.py +316 -0
- hud/mcp_agent/langchain.py +231 -0
- hud/mcp_agent/openai.py +318 -0
- hud/mcp_agent/tests/__init__.py +1 -0
- hud/mcp_agent/tests/test_base.py +437 -0
- hud/settings.py +14 -2
- hud/task.py +4 -0
- hud/telemetry/__init__.py +11 -7
- hud/telemetry/_trace.py +82 -71
- hud/telemetry/context.py +9 -27
- hud/telemetry/exporter.py +6 -5
- hud/telemetry/instrumentation/mcp.py +174 -410
- hud/telemetry/mcp_models.py +13 -74
- hud/telemetry/tests/test_context.py +9 -6
- hud/telemetry/tests/test_trace.py +92 -61
- hud/tools/__init__.py +21 -0
- hud/tools/base.py +65 -0
- hud/tools/bash.py +137 -0
- hud/tools/computer/__init__.py +13 -0
- hud/tools/computer/anthropic.py +411 -0
- hud/tools/computer/hud.py +315 -0
- hud/tools/computer/openai.py +283 -0
- hud/tools/edit.py +290 -0
- hud/tools/executors/__init__.py +13 -0
- hud/tools/executors/base.py +331 -0
- hud/tools/executors/pyautogui.py +585 -0
- hud/tools/executors/tests/__init__.py +1 -0
- hud/tools/executors/tests/test_base_executor.py +338 -0
- hud/tools/executors/tests/test_pyautogui_executor.py +162 -0
- hud/tools/executors/xdo.py +503 -0
- hud/tools/helper/README.md +56 -0
- hud/tools/helper/__init__.py +9 -0
- hud/tools/helper/mcp_server.py +78 -0
- hud/tools/helper/server_initialization.py +115 -0
- hud/tools/helper/utils.py +58 -0
- hud/tools/playwright_tool.py +373 -0
- hud/tools/tests/__init__.py +3 -0
- hud/tools/tests/test_bash.py +152 -0
- hud/tools/tests/test_computer.py +52 -0
- hud/tools/tests/test_computer_actions.py +34 -0
- hud/tools/tests/test_edit.py +233 -0
- hud/tools/tests/test_init.py +27 -0
- hud/tools/tests/test_playwright_tool.py +183 -0
- hud/tools/tests/test_tools.py +154 -0
- hud/tools/tests/test_utils.py +156 -0
- hud/tools/utils.py +50 -0
- hud/types.py +10 -1
- hud/utils/tests/test_init.py +21 -0
- hud/utils/tests/test_version.py +1 -1
- hud/version.py +1 -1
- {hud_python-0.2.10.dist-info → hud_python-0.3.0.dist-info}/METADATA +9 -6
- hud_python-0.3.0.dist-info/RECORD +124 -0
- hud_python-0.2.10.dist-info/RECORD +0 -85
- {hud_python-0.2.10.dist-info → hud_python-0.3.0.dist-info}/WHEEL +0 -0
- {hud_python-0.2.10.dist-info → hud_python-0.3.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"""Tests for tools utils."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import asyncio
|
|
6
|
+
from unittest.mock import AsyncMock, patch
|
|
7
|
+
|
|
8
|
+
import pytest
|
|
9
|
+
|
|
10
|
+
from hud.tools.utils import maybe_truncate, run
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class TestRun:
|
|
14
|
+
"""Tests for the run function."""
|
|
15
|
+
|
|
16
|
+
@pytest.mark.asyncio
|
|
17
|
+
async def test_run_string_command_success(self):
|
|
18
|
+
"""Test running a string command successfully."""
|
|
19
|
+
mock_proc = AsyncMock()
|
|
20
|
+
mock_proc.returncode = 0
|
|
21
|
+
mock_proc.communicate = AsyncMock(return_value=(b"output", b""))
|
|
22
|
+
|
|
23
|
+
with patch("asyncio.create_subprocess_shell", return_value=mock_proc) as mock_shell:
|
|
24
|
+
return_code, stdout, stderr = await run("echo test")
|
|
25
|
+
|
|
26
|
+
assert return_code == 0
|
|
27
|
+
assert stdout == "output"
|
|
28
|
+
assert stderr == ""
|
|
29
|
+
mock_shell.assert_called_once()
|
|
30
|
+
|
|
31
|
+
@pytest.mark.asyncio
|
|
32
|
+
async def test_run_list_command_success(self):
|
|
33
|
+
"""Test running a list command successfully."""
|
|
34
|
+
mock_proc = AsyncMock()
|
|
35
|
+
mock_proc.returncode = 0
|
|
36
|
+
mock_proc.communicate = AsyncMock(return_value=(b"hello world", b""))
|
|
37
|
+
|
|
38
|
+
with patch("asyncio.create_subprocess_exec", return_value=mock_proc) as mock_exec:
|
|
39
|
+
return_code, stdout, stderr = await run(["echo", "hello", "world"])
|
|
40
|
+
|
|
41
|
+
assert return_code == 0
|
|
42
|
+
assert stdout == "hello world"
|
|
43
|
+
assert stderr == ""
|
|
44
|
+
mock_exec.assert_called_once_with(
|
|
45
|
+
"echo",
|
|
46
|
+
"hello",
|
|
47
|
+
"world",
|
|
48
|
+
stdin=None,
|
|
49
|
+
stdout=asyncio.subprocess.PIPE,
|
|
50
|
+
stderr=asyncio.subprocess.PIPE,
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
@pytest.mark.asyncio
|
|
54
|
+
async def test_run_with_input(self):
|
|
55
|
+
"""Test running a command with input."""
|
|
56
|
+
mock_proc = AsyncMock()
|
|
57
|
+
mock_proc.returncode = 0
|
|
58
|
+
mock_proc.communicate = AsyncMock(return_value=(b"processed", b""))
|
|
59
|
+
|
|
60
|
+
with patch("asyncio.create_subprocess_shell", return_value=mock_proc):
|
|
61
|
+
return_code, stdout, stderr = await run("cat", input="test input")
|
|
62
|
+
|
|
63
|
+
assert return_code == 0
|
|
64
|
+
assert stdout == "processed"
|
|
65
|
+
mock_proc.communicate.assert_called_once_with(input=b"test input")
|
|
66
|
+
|
|
67
|
+
@pytest.mark.asyncio
|
|
68
|
+
async def test_run_with_error(self):
|
|
69
|
+
"""Test running a command that returns an error."""
|
|
70
|
+
mock_proc = AsyncMock()
|
|
71
|
+
mock_proc.returncode = 1
|
|
72
|
+
mock_proc.communicate = AsyncMock(return_value=(b"", b"error message"))
|
|
73
|
+
|
|
74
|
+
with patch("asyncio.create_subprocess_shell", return_value=mock_proc):
|
|
75
|
+
return_code, stdout, stderr = await run("false")
|
|
76
|
+
|
|
77
|
+
assert return_code == 1
|
|
78
|
+
assert stdout == ""
|
|
79
|
+
assert stderr == "error message"
|
|
80
|
+
|
|
81
|
+
@pytest.mark.asyncio
|
|
82
|
+
async def test_run_with_timeout(self):
|
|
83
|
+
"""Test running a command with custom timeout."""
|
|
84
|
+
mock_proc = AsyncMock()
|
|
85
|
+
mock_proc.returncode = 0
|
|
86
|
+
mock_proc.communicate = AsyncMock(return_value=(b"done", b""))
|
|
87
|
+
|
|
88
|
+
with (
|
|
89
|
+
patch("asyncio.create_subprocess_shell", return_value=mock_proc),
|
|
90
|
+
patch("asyncio.wait_for") as mock_wait_for,
|
|
91
|
+
):
|
|
92
|
+
mock_wait_for.return_value = (b"done", b"")
|
|
93
|
+
|
|
94
|
+
return_code, stdout, stderr = await run("sleep 1", timeout=5.0)
|
|
95
|
+
|
|
96
|
+
# Check that wait_for was called with the correct timeout
|
|
97
|
+
mock_wait_for.assert_called_once()
|
|
98
|
+
assert mock_wait_for.call_args[1]["timeout"] == 5.0
|
|
99
|
+
|
|
100
|
+
@pytest.mark.asyncio
|
|
101
|
+
async def test_run_timeout_exception(self):
|
|
102
|
+
"""Test running a command that times out."""
|
|
103
|
+
mock_proc = AsyncMock()
|
|
104
|
+
|
|
105
|
+
with (
|
|
106
|
+
patch("asyncio.create_subprocess_shell", return_value=mock_proc),
|
|
107
|
+
patch("asyncio.wait_for", side_effect=TimeoutError()),
|
|
108
|
+
pytest.raises(asyncio.TimeoutError),
|
|
109
|
+
):
|
|
110
|
+
await run("sleep infinity", timeout=0.1)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
class TestMaybeTruncate:
|
|
114
|
+
"""Tests for the maybe_truncate function."""
|
|
115
|
+
|
|
116
|
+
def test_maybe_truncate_short_text(self):
|
|
117
|
+
"""Test that short text is not truncated."""
|
|
118
|
+
text = "This is a short text"
|
|
119
|
+
result = maybe_truncate(text)
|
|
120
|
+
assert result == text
|
|
121
|
+
|
|
122
|
+
def test_maybe_truncate_long_text_default(self):
|
|
123
|
+
"""Test that long text is truncated with default limit."""
|
|
124
|
+
text = "x" * 30000 # Much longer than default limit
|
|
125
|
+
result = maybe_truncate(text)
|
|
126
|
+
|
|
127
|
+
assert len(result) < len(text)
|
|
128
|
+
assert result.endswith("... (truncated)")
|
|
129
|
+
assert len(result) == 20480 + len("... (truncated)")
|
|
130
|
+
|
|
131
|
+
def test_maybe_truncate_custom_limit(self):
|
|
132
|
+
"""Test truncation with custom limit."""
|
|
133
|
+
text = "abcdefghijklmnopqrstuvwxyz"
|
|
134
|
+
result = maybe_truncate(text, max_length=10)
|
|
135
|
+
|
|
136
|
+
assert result == "abcdefghij... (truncated)"
|
|
137
|
+
|
|
138
|
+
def test_maybe_truncate_exact_limit(self):
|
|
139
|
+
"""Test text exactly at limit is not truncated."""
|
|
140
|
+
text = "x" * 100
|
|
141
|
+
result = maybe_truncate(text, max_length=100)
|
|
142
|
+
|
|
143
|
+
assert result == text
|
|
144
|
+
|
|
145
|
+
def test_maybe_truncate_empty_string(self):
|
|
146
|
+
"""Test empty string handling."""
|
|
147
|
+
result = maybe_truncate("")
|
|
148
|
+
assert result == ""
|
|
149
|
+
|
|
150
|
+
def test_maybe_truncate_unicode(self):
|
|
151
|
+
"""Test truncation with unicode characters."""
|
|
152
|
+
text = "🎉" * 5000
|
|
153
|
+
result = maybe_truncate(text, max_length=10)
|
|
154
|
+
|
|
155
|
+
assert len(result) > 10 # Because of "... (truncated)" suffix
|
|
156
|
+
assert result.endswith("... (truncated)")
|
hud/tools/utils.py
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import asyncio
|
|
4
|
+
import subprocess
|
|
5
|
+
|
|
6
|
+
# Default timeout for running commands
|
|
7
|
+
DEFAULT_TIMEOUT = 10.0
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
async def run(
|
|
11
|
+
command: str | list[str],
|
|
12
|
+
input: str | None = None,
|
|
13
|
+
timeout: float | None = DEFAULT_TIMEOUT, # noqa: ASYNC109
|
|
14
|
+
) -> tuple[int, str, str]:
|
|
15
|
+
"""
|
|
16
|
+
Run a command asynchronously and return the result.
|
|
17
|
+
|
|
18
|
+
Args:
|
|
19
|
+
command: Command to run (string or list of strings)
|
|
20
|
+
input: Optional input to send to stdin
|
|
21
|
+
timeout: Timeout in seconds
|
|
22
|
+
|
|
23
|
+
Returns:
|
|
24
|
+
Tuple of (return_code, stdout, stderr)
|
|
25
|
+
"""
|
|
26
|
+
if isinstance(command, str):
|
|
27
|
+
proc = await asyncio.create_subprocess_shell(
|
|
28
|
+
command,
|
|
29
|
+
stdin=subprocess.PIPE if input else None,
|
|
30
|
+
stdout=subprocess.PIPE,
|
|
31
|
+
stderr=subprocess.PIPE,
|
|
32
|
+
)
|
|
33
|
+
else:
|
|
34
|
+
proc = await asyncio.create_subprocess_exec(
|
|
35
|
+
*command,
|
|
36
|
+
stdin=subprocess.PIPE if input else None,
|
|
37
|
+
stdout=subprocess.PIPE,
|
|
38
|
+
stderr=subprocess.PIPE,
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
stdout, stderr = await asyncio.wait_for(
|
|
42
|
+
proc.communicate(input=input.encode() if input else None), timeout=timeout
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
return proc.returncode or 0, stdout.decode(), stderr.decode()
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def maybe_truncate(text: str, max_length: int = 2048 * 10) -> str:
|
|
49
|
+
"""Truncate output if too long."""
|
|
50
|
+
return text if len(text) <= max_length else text[:max_length] + "... (truncated)"
|
hud/types.py
CHANGED
|
@@ -33,6 +33,15 @@ class CustomGym(BaseModel):
|
|
|
33
33
|
host_config: dict[str, Any] | None = None
|
|
34
34
|
|
|
35
35
|
|
|
36
|
+
class MCPConfig(BaseModel):
|
|
37
|
+
"""
|
|
38
|
+
MCP config for the environment.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
type: Literal["mcp"] = "mcp"
|
|
42
|
+
config: dict[str, Any]
|
|
43
|
+
|
|
44
|
+
|
|
36
45
|
class EnvironmentStatus(str, enum.Enum):
|
|
37
46
|
"""
|
|
38
47
|
Status of the environment.
|
|
@@ -54,7 +63,7 @@ class EnvironmentStatus(str, enum.Enum):
|
|
|
54
63
|
ServerGym: TypeAlias = Literal["qa", "hud-browser", "OSWorld-Ubuntu", "docker"]
|
|
55
64
|
|
|
56
65
|
# Gyms can be either custom or server-side
|
|
57
|
-
Gym: TypeAlias = CustomGym | ServerGym
|
|
66
|
+
Gym: TypeAlias = CustomGym | MCPConfig | ServerGym
|
|
58
67
|
|
|
59
68
|
|
|
60
69
|
# Metadata keys for the environment.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""Test utils package imports."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def test_utils_imports():
|
|
7
|
+
"""Test that utils package can be imported."""
|
|
8
|
+
import hud.utils
|
|
9
|
+
|
|
10
|
+
# Check that the module exists
|
|
11
|
+
assert hud.utils is not None
|
|
12
|
+
|
|
13
|
+
# Try importing submodules
|
|
14
|
+
from hud.utils import agent, common, config, misc, progress, telemetry
|
|
15
|
+
|
|
16
|
+
assert agent is not None
|
|
17
|
+
assert common is not None
|
|
18
|
+
assert config is not None
|
|
19
|
+
assert misc is not None
|
|
20
|
+
assert progress is not None
|
|
21
|
+
assert telemetry is not None
|
hud/utils/tests/test_version.py
CHANGED
hud/version.py
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hud-python
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: SDK for the HUD
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: SDK for the HUD platform.
|
|
5
5
|
Project-URL: Homepage, https://github.com/hud-evals/hud-sdk
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/hud-evals/hud-sdk/issues
|
|
7
|
-
Project-URL: Documentation, https://hud.so
|
|
7
|
+
Project-URL: Documentation, https://docs.hud.so
|
|
8
8
|
Author-email: HUD SDK <founders@hud.so>
|
|
9
9
|
License: MIT License
|
|
10
10
|
|
|
@@ -31,11 +31,10 @@ License-File: LICENSE
|
|
|
31
31
|
Classifier: Development Status :: 4 - Beta
|
|
32
32
|
Classifier: Intended Audience :: Developers
|
|
33
33
|
Classifier: Programming Language :: Python :: 3
|
|
34
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
35
34
|
Classifier: Programming Language :: Python :: 3.11
|
|
36
35
|
Classifier: Programming Language :: Python :: 3.12
|
|
37
36
|
Classifier: Programming Language :: Python :: 3.13
|
|
38
|
-
Requires-Python: <3.14,>=3.
|
|
37
|
+
Requires-Python: <3.14,>=3.11
|
|
39
38
|
Requires-Dist: aiodocker>=0.24.0
|
|
40
39
|
Requires-Dist: anthropic
|
|
41
40
|
Requires-Dist: dotenv>=0.9.9
|
|
@@ -43,12 +42,15 @@ Requires-Dist: httpx<1,>=0.23.0
|
|
|
43
42
|
Requires-Dist: inspect-ai>=0.3.80
|
|
44
43
|
Requires-Dist: ipykernel
|
|
45
44
|
Requires-Dist: langchain
|
|
45
|
+
Requires-Dist: langchain-anthropic
|
|
46
46
|
Requires-Dist: langchain-openai
|
|
47
|
-
Requires-Dist: mcp
|
|
47
|
+
Requires-Dist: mcp-use>=1.3.7
|
|
48
|
+
Requires-Dist: mcp==1.12.2
|
|
48
49
|
Requires-Dist: numpy
|
|
49
50
|
Requires-Dist: openai
|
|
50
51
|
Requires-Dist: pathspec>=0.12.1
|
|
51
52
|
Requires-Dist: pillow>=11.1.0
|
|
53
|
+
Requires-Dist: pyautogui>=0.9.54
|
|
52
54
|
Requires-Dist: pydantic-settings<3,>=2
|
|
53
55
|
Requires-Dist: pydantic<3,>=2
|
|
54
56
|
Requires-Dist: textdistance<5,>=4.5.0
|
|
@@ -62,6 +64,7 @@ Requires-Dist: ipython<9; extra == 'dev'
|
|
|
62
64
|
Requires-Dist: jupyter-client; extra == 'dev'
|
|
63
65
|
Requires-Dist: jupyter-core; extra == 'dev'
|
|
64
66
|
Requires-Dist: openai; extra == 'dev'
|
|
67
|
+
Requires-Dist: playwright; extra == 'dev'
|
|
65
68
|
Requires-Dist: pyright==1.1.401; extra == 'dev'
|
|
66
69
|
Requires-Dist: pytest-asyncio; extra == 'dev'
|
|
67
70
|
Requires-Dist: pytest-cov; extra == 'dev'
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
hud/__init__.py,sha256=yg4CC0iQWE67NGb6tUTmlO1kV-tM3njbigTuFYyzgAI,1477
|
|
2
|
+
hud/exceptions.py,sha256=Xna_pdEK_ESwkcffsRmT5GXq4xSHLV5cu7Qu3MjstSE,5516
|
|
3
|
+
hud/gym.py,sha256=JNWlO2GXev0xIjoTI9HMEbcQgGpzc6fku7-RYoYAxHI,4996
|
|
4
|
+
hud/job.py,sha256=0vWbr3E5bYstVRzXS_6l-57JGUFcrZpmFrNkOSQ8Aa0,26969
|
|
5
|
+
hud/settings.py,sha256=rZFd_fzPUZKOklhMpTTSIJrMD1-eH9h6WrbD27SSXZ8,2014
|
|
6
|
+
hud/task.py,sha256=WxftOrmaHqNvEsie1ZVIXJELYpfC9ejJL7b9TPQXEDg,8913
|
|
7
|
+
hud/taskset.py,sha256=9IRwHeAdsk_IEibayM-hElE3gTp0mgmi-huN67h9-tc,7019
|
|
8
|
+
hud/trajectory.py,sha256=ctAwrGIkdULr4xI6G-1Dp2fhDol4o_PmnPcqTzAEIUc,3797
|
|
9
|
+
hud/types.py,sha256=h7fUowbdyGF4Fg8TUnvCFoa2fflRRPi6xx7YgpBwFis,3109
|
|
10
|
+
hud/version.py,sha256=RPgsYJZ_E7U1ryhfdldTxD4xSiU4nQTEdzeq7iLynA4,104
|
|
11
|
+
hud/adapters/__init__.py,sha256=zz24KdC_e9TJPgWo6y57_8SzevEE5ak4Cm6tXzMxwRk,266
|
|
12
|
+
hud/adapters/claude/__init__.py,sha256=i7QEF-29FLb9qxp1eYtXs-adIk_tG54tL-9g6d3xodk,100
|
|
13
|
+
hud/adapters/claude/adapter.py,sha256=vCpotJ5gzQs4PP2iCXVavIcyG8c_4m1P6fuXStwUxSo,6675
|
|
14
|
+
hud/adapters/claude/tests/__init__.py,sha256=9GZj0rz4tTkiPnLfxTmyBPr-s8UZc3gph6WH8fs8T34,39
|
|
15
|
+
hud/adapters/claude/tests/test_adapter.py,sha256=cAdHEoqLngLiV7QwlWJ0KuNgb1vNv9WZTPQMnxhMDKI,18319
|
|
16
|
+
hud/adapters/common/__init__.py,sha256=BjdZWJVs_AKtpFrt-tNsdQRjnz7D97DFEQirJ-r0mp8,118
|
|
17
|
+
hud/adapters/common/adapter.py,sha256=GETzlsEl-uYkL-U4cQHBnfLAvm1dbXec4fKC2ypR1L0,5821
|
|
18
|
+
hud/adapters/common/types.py,sha256=6frue7_gZlSYtOHhF2tFHqzjltzzHsTVs6-H-jQwZ4Y,9955
|
|
19
|
+
hud/adapters/common/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
+
hud/adapters/common/tests/test_adapter.py,sha256=rTD36LjvytHqMIyOLDyrn0RLIkd20s6f6dwoBEarJaw,8744
|
|
21
|
+
hud/adapters/operator/__init__.py,sha256=31vTRs268_TOLd-TeQRKau5bDYy78wxCNpJFhD5_l8U,104
|
|
22
|
+
hud/adapters/operator/adapter.py,sha256=Uz4Sr73T57B7v4RRP0uaibHI17N2hBx6Z9YYjgJCUXA,3732
|
|
23
|
+
hud/adapters/operator/tests/__init__.py,sha256=yTsDVusVXZBQL6DnXpLgKQCBRuOYUAVQ8Blk_k5GETk,41
|
|
24
|
+
hud/adapters/operator/tests/test_adapter.py,sha256=4RAXwyxAtkh-1Mlt1zJayRkcv3LWaPNEhDVTpwOZd4A,12942
|
|
25
|
+
hud/agent/__init__.py,sha256=_OxMG3UW1vXSuixdpo09b1jexfWcUbfK44zto8t6_LE,453
|
|
26
|
+
hud/agent/base.py,sha256=hC3mVUMAWo5HHF2b576ScA9UQzsAzcCfPU9S8mDWthA,4080
|
|
27
|
+
hud/agent/claude.py,sha256=FBSKCxICO6XXYCuIrerVL89bVJ-5JxrZJBDeZgzAdJI,9886
|
|
28
|
+
hud/agent/claude_plays_pokemon.py,sha256=4TPibnTFhTb24ISRKAU3pA4waIcISTfZLOdfBMIMqxE,10085
|
|
29
|
+
hud/agent/langchain.py,sha256=H55JNHcGkdl-LVzZEqOFRkuuFEO0D8MI1jCNz9deoko,9012
|
|
30
|
+
hud/agent/operator.py,sha256=kntMOsdL5tzaGVSnzbGvFD2PMLzW2DEB2wEqN_LArQw,10500
|
|
31
|
+
hud/agent/misc/__init__.py,sha256=-ftYH1T5r7fXKKra6d8jXYmUz9KOTmYwBrPJU-V3S7g,71
|
|
32
|
+
hud/agent/misc/response_agent.py,sha256=3PPsZqNAyUo2ouSV0ylGQj9fJqojfSB2roq2DadUdG0,3048
|
|
33
|
+
hud/agent/tests/__init__.py,sha256=HbAW7FvSvzzKPU5LpveZceU8XTcDkRe1Bmte3OGi2f0,29
|
|
34
|
+
hud/agent/tests/test_base.py,sha256=MAHx4QWsX4y4jXDoA1sxWw8uFvL7lIzGlXrnHfOTmkw,8511
|
|
35
|
+
hud/env/__init__.py,sha256=wVEesXMXM5hcNXQHt0-PN4-9RnE69DEnQENS7uJSv_Y,266
|
|
36
|
+
hud/env/client.py,sha256=brhfLkWGSuvxl3vqGMCQT-vXfj8rUbJMhE3zJg9WMDA,869
|
|
37
|
+
hud/env/docker_client.py,sha256=_EfxCbld2lk5BCBegBMMGXrYxOtxoa8N468T1wFbGrE,11234
|
|
38
|
+
hud/env/environment.py,sha256=wjMBwGs5qkkXsVlXR_Z2QPZi4cwXE82ckdzRgHiXPjw,17019
|
|
39
|
+
hud/env/local_docker_client.py,sha256=EbULGazP9KlD1tQrFKSghC0MO2-G60iNVLinEPtQ33M,11573
|
|
40
|
+
hud/env/remote_client.py,sha256=tP5Gn1YtYgsjdXA4vM4FibAAHnR-9OOH4GrTog97cf8,6670
|
|
41
|
+
hud/env/remote_docker_client.py,sha256=sBoOz3cq9HMgVvX8qCYEhRLvdswMZLG9G4Ybc60RzDo,9574
|
|
42
|
+
hud/evaluators/__init__.py,sha256=V5nktEAw3EDn2Y537pjia5Y1IjdLBIPrDjTs6YTCdX4,153
|
|
43
|
+
hud/evaluators/base.py,sha256=ALO9Rj-R_9HtHIHYp84bsQQD12De0XnCTwad78_T5-k,771
|
|
44
|
+
hud/evaluators/inspect.py,sha256=ZvrTXLpgibyvQ5aNXAMP4quyXISrRQHg9besDcuCx7U,692
|
|
45
|
+
hud/evaluators/judge.py,sha256=N3gEQGwVin9Ir80wWw6VtaL0xrlzitbmItaLm0he5gY,5962
|
|
46
|
+
hud/evaluators/match.py,sha256=8YVQD942myX72Jkme2JFIVlmKhFXEa3CgGTjLC8O5n4,4701
|
|
47
|
+
hud/evaluators/remote.py,sha256=kmD_XIU20KvX0NKgaEEKTTKHp0KVRa_3jUEgONh2nkY,2054
|
|
48
|
+
hud/evaluators/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
|
+
hud/evaluators/tests/test_inspect.py,sha256=8dMjgQfXOJGcS8gP6TzoBbQiG_NYuRL6IobMG7euJdU,376
|
|
50
|
+
hud/evaluators/tests/test_judge.py,sha256=c1GaAeq_WpBVgBlx-gQncHrOPokzKNxlbgiC8W8hxYI,7829
|
|
51
|
+
hud/evaluators/tests/test_match.py,sha256=C04GoluyT9i41YZ65xEjN7tKHQbENbrpNhNtUd4ivmA,3919
|
|
52
|
+
hud/evaluators/tests/test_remote.py,sha256=YdJpyyuRLkYP0e3jTUkD3zobS2WHQPePn8yBZtYOIN4,3243
|
|
53
|
+
hud/mcp_agent/__init__.py,sha256=0R8SGgg2XU25y7B4lnBRv1n33d9TV6vaPXLafoiya2Y,324
|
|
54
|
+
hud/mcp_agent/base.py,sha256=P92Bcj3VH8veWgG6Yrq6cnE2gOnRaVG0NhEXdI-C8CA,29142
|
|
55
|
+
hud/mcp_agent/claude.py,sha256=5ORCs8PecqkRy2h5pVadxCIzJkjXZPPgkfOsGwJcJR4,11691
|
|
56
|
+
hud/mcp_agent/langchain.py,sha256=JOD10jeFuW4ekgEu7fzKWuveBTTOV0CTIld98fNMbz0,8136
|
|
57
|
+
hud/mcp_agent/openai.py,sha256=7SvbuKraLzlN4aGRsSkFtAVr1YldQmZ_9R8pRTWdQU0,12579
|
|
58
|
+
hud/mcp_agent/tests/__init__.py,sha256=W-O-_4i34d9TTyEHV-O_q1Ai1gLhzwDaaPo02_TWQIY,34
|
|
59
|
+
hud/mcp_agent/tests/test_base.py,sha256=7j_Id__Fd-d0VDRmfqyYM_p8JtF35mTPR90I8LeUXrI,16109
|
|
60
|
+
hud/server/__init__.py,sha256=IPxPCqtPLguryN-nBq78Sakypw2bRiE2iHv3SXG8YRk,139
|
|
61
|
+
hud/server/requests.py,sha256=AnFW4ELojjvfF6xjS2no6_fg4Rph2aR2hjPzYTede0Q,8841
|
|
62
|
+
hud/server/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
|
+
hud/server/tests/test_requests.py,sha256=63YCbykcib5MxKxm-OgHJPLX3QC7hmgIwnWaYukVM6s,9077
|
|
64
|
+
hud/telemetry/__init__.py,sha256=tNRbewoND4DvZUNw2aRYpR4kjRuh4o1XoNUuis62Zes,558
|
|
65
|
+
hud/telemetry/_trace.py,sha256=zggA2kTqLvM59F-DyRSRGKX-in27jcdrnr_xiTRWJvA,5375
|
|
66
|
+
hud/telemetry/context.py,sha256=LyibWGCq4FhGzauxIws36Hzzd0S0ryMYCPqYwoot4DQ,4638
|
|
67
|
+
hud/telemetry/exporter.py,sha256=LaD-U8TldKVn-rQkO88l8ZBlFxhVRbOuQmVKOGMMWnU,17875
|
|
68
|
+
hud/telemetry/mcp_models.py,sha256=0FQZoXtKOKeUsc2L61UbANpUDC7VNL842R2YFR61UBQ,8980
|
|
69
|
+
hud/telemetry/instrumentation/__init__.py,sha256=vHmSqaJMMehgRNn6EN2SMoYDD12rSHkLeVmj7Uy1my0,88
|
|
70
|
+
hud/telemetry/instrumentation/mcp.py,sha256=RbEaqmp8QHj1XqpIzwDSE8gH2cN5UjaBTouRxiPWxmc,9339
|
|
71
|
+
hud/telemetry/instrumentation/registry.py,sha256=UVaSsEA693lvKYd5R3n3ve6GcAB1fwqubRwIVeZiNmo,1821
|
|
72
|
+
hud/telemetry/tests/__init__.py,sha256=QMN8OzfrBUDbQESwrwHCqXLdDwCjYWX8BJcpeLUJfqA,33
|
|
73
|
+
hud/telemetry/tests/test_context.py,sha256=RdtjYHsyvlkKoTQxk0VezaAISEoVQReYqQiqK3jgFLQ,6746
|
|
74
|
+
hud/telemetry/tests/test_trace.py,sha256=fZt8WXflZivhBgWHhePWmmNbTYg0qF3oF3bTKE0KXiM,12016
|
|
75
|
+
hud/tools/__init__.py,sha256=vDxoIGHaj7FOnqki2Q92gGmEZx3f6Vx9RGkQo-X3cJ4,577
|
|
76
|
+
hud/tools/base.py,sha256=lmd7N7IccIWrPpA0NZundIglFTTiLFW9VP_PJI2EXug,2069
|
|
77
|
+
hud/tools/bash.py,sha256=o841_HF1NJFfUWLOVUw9s0iB4BoIxhA-8vMasJOhZ70,4319
|
|
78
|
+
hud/tools/edit.py,sha256=9vJ2XSnWOPViujQbZZuDjLahvzxoPHyAeXxgKfpUDHo,11796
|
|
79
|
+
hud/tools/playwright_tool.py,sha256=tq1La66esH2CwGYBkpvBDNPuswsspHtSE1cSqGVJEjU,13295
|
|
80
|
+
hud/tools/utils.py,sha256=bfVyYMcBOJvr1QdptCjVb6jaHVGIL5WUxmY59kzMekQ,1447
|
|
81
|
+
hud/tools/computer/__init__.py,sha256=ehKY7u0_4cZ9h7YQlOQjbKPWfd5LhQq8ZQn2w2-l2mY,302
|
|
82
|
+
hud/tools/computer/anthropic.py,sha256=M-djQmd0vPZm95FDszaMh4wSaLFPhlcCUb-JkSuflnU,16104
|
|
83
|
+
hud/tools/computer/hud.py,sha256=xyFYLqVoLsps0Dbs9kAfg941kXLnMHx7SL8a2skhjHw,13351
|
|
84
|
+
hud/tools/computer/openai.py,sha256=pcMGfoT6O8Rh9IrW_H1Mw2cIwk-FzCswrgjW19piRU8,10538
|
|
85
|
+
hud/tools/executors/__init__.py,sha256=Ybc8mP48ps3Z2QHjYcc0Yrhmn2ZNqZF1WLvl-0lyQ_w,262
|
|
86
|
+
hud/tools/executors/base.py,sha256=4h04Byt4ktaNk_aLOOI798pkMCLiqA7pE2PoaEn_hfg,11647
|
|
87
|
+
hud/tools/executors/pyautogui.py,sha256=1MWWXhyaPLeFkWXIr7pR_pii_XjDJxhpXdCCHFgF-1A,20803
|
|
88
|
+
hud/tools/executors/xdo.py,sha256=C6ecIVPUba7c6vKpgIcNxKcc698hwelQjj4YYUxT2_4,17751
|
|
89
|
+
hud/tools/executors/tests/__init__.py,sha256=opFpGSH6cEqIZgt9izXd3Yt85pC7xkxiYmOZQTHf4AY,32
|
|
90
|
+
hud/tools/executors/tests/test_base_executor.py,sha256=dvpKHCIjrBhT6E2U3hsjAwuivCAYXplvd08EHN6cxTI,12306
|
|
91
|
+
hud/tools/executors/tests/test_pyautogui_executor.py,sha256=cBgTAieWVT6C9dRtdqBWtRFmayteVQEp6DNofdCYLqc,6521
|
|
92
|
+
hud/tools/helper/README.md,sha256=GDS-K-wMnDO3-gtWjisgk5153zBmU29XSrs2ZhlOWQY,1727
|
|
93
|
+
hud/tools/helper/__init__.py,sha256=VqgQkY-y9h-WnGXZRK387fSr1BzrOQoAy3975WDAs4c,209
|
|
94
|
+
hud/tools/helper/mcp_server.py,sha256=t8UaGq91hDKef6zO3ApnJydwcKEqgLF6RdDcJ1GmfEA,2248
|
|
95
|
+
hud/tools/helper/server_initialization.py,sha256=j3lymoyXf9nGX907Thf4kxDfkIQ7g4-3yiRvR1Ztqc0,4025
|
|
96
|
+
hud/tools/helper/utils.py,sha256=hfaJX9HX2vmytaIwk_NG-luSXHY4VhrzegELDtx7Lp8,1776
|
|
97
|
+
hud/tools/tests/__init__.py,sha256=eEYYkxX5Hz9woXVOBJ2H2_CQoEih0vH6nRt3sH2Z8v8,49
|
|
98
|
+
hud/tools/tests/test_bash.py,sha256=LV3LjijwkQqxuxIXFSepD2x3sYoY4uhdw8EBv4JOyLU,4847
|
|
99
|
+
hud/tools/tests/test_computer.py,sha256=HxYHxKJ0eWyZzC3abzviFBU-auc8x6Sh2ciR_uVXMXw,1595
|
|
100
|
+
hud/tools/tests/test_computer_actions.py,sha256=YtUNFL7anhpXrcvg8EoUY1CqIV-TAAyaNFLZO9CiJ40,1194
|
|
101
|
+
hud/tools/tests/test_edit.py,sha256=UpUkn-fEXyFr9dKPT7pjmZ8ASUePkPnqwVMplUHowR4,8301
|
|
102
|
+
hud/tools/tests/test_init.py,sha256=PD_SS6X6SPhEjStJqYxdJRtsa7RbL6cTokAGIn5bWhA,702
|
|
103
|
+
hud/tools/tests/test_playwright_tool.py,sha256=1qED_NF2QXUZmBRbWSmcKImMLUQ3m5CbA_9tLUiaxTQ,6696
|
|
104
|
+
hud/tools/tests/test_tools.py,sha256=fNZMv93VhkFiXRHKt5krXZAASU2IsiA1149erUMa2ek,4418
|
|
105
|
+
hud/tools/tests/test_utils.py,sha256=oYxEnLpSA5sEeYFGUTj74QRNv0AHP3AjmYYHXgIW0BY,5496
|
|
106
|
+
hud/utils/__init__.py,sha256=oSl_gGoS272X2VFnBYX8hLxcP2xgGoBYQXAuLhtQgw8,260
|
|
107
|
+
hud/utils/agent.py,sha256=CpNgjKWMaNqo-EATH_vfJHIN53rEkZngm2LXfUFlldQ,1225
|
|
108
|
+
hud/utils/common.py,sha256=_3HNmSOsHWyexP6iXTuU2wMx3Fafeg5hZU3VXBmv0Ag,7780
|
|
109
|
+
hud/utils/config.py,sha256=L_sSYtEaOap-Gnb2iLPJPQc2rteyt6mjOdJUrktmFwM,4020
|
|
110
|
+
hud/utils/misc.py,sha256=CfOv_ftLty1iEo3Rxyz4AD4nmaBkhCJVO_W-FlcyDgI,1481
|
|
111
|
+
hud/utils/progress.py,sha256=suikwFM8sdSfkV10nAOEaInDhG4XKgOSvFePg4jSj1A,5927
|
|
112
|
+
hud/utils/telemetry.py,sha256=hrVIx2rUjSGyy9IVxTZ_3Jii83PiHjyFRd5ls2whimM,1863
|
|
113
|
+
hud/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
114
|
+
hud/utils/tests/test_common.py,sha256=KqDSMf7gWf1oYCiQ_BXsnvW1wUmyzbOzAT-HNoF7txs,9443
|
|
115
|
+
hud/utils/tests/test_config.py,sha256=dPlXYWuMrxX-NOYbf0vdJ27TJpfacKG8eiKOSGOcfDU,4079
|
|
116
|
+
hud/utils/tests/test_init.py,sha256=UxlNTwjlSE2q3M0R86EmMYmmXmbRvzZaC-S2av26QXI,529
|
|
117
|
+
hud/utils/tests/test_progress.py,sha256=QunwDgi_heQXhDgmC25zgjr-sFUu5FdJ_1aYigMKeIc,6351
|
|
118
|
+
hud/utils/tests/test_telemetry.py,sha256=t0An1RTBaE0dZVEpF4uwuq5k1R-PXFR5k4u71h60tx8,1224
|
|
119
|
+
hud/utils/tests/test_version.py,sha256=J-6wPtkqEIDGjTCmUIylXicun-t7JdEHaJ8gcuj2mlY,159
|
|
120
|
+
hud/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
121
|
+
hud_python-0.3.0.dist-info/METADATA,sha256=fgbwnVd2CqZ4TSYMjjj9ygmhG3Yu_UnahOlqPXMcRQ4,9876
|
|
122
|
+
hud_python-0.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
123
|
+
hud_python-0.3.0.dist-info/licenses/LICENSE,sha256=yIzBheVUf86FC1bztAcr7RYWWNxyd3B-UJQ3uddg1HA,1078
|
|
124
|
+
hud_python-0.3.0.dist-info/RECORD,,
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
hud/__init__.py,sha256=kjjq-l2msg9HcfYQ4sL8c0-StQIlsl2qLwh8Tx0nKro,1210
|
|
2
|
-
hud/exceptions.py,sha256=pifKvSqxj9_g4NfARVyH5a-lTThhi9XW06tIXaBakQw,5526
|
|
3
|
-
hud/gym.py,sha256=JNWlO2GXev0xIjoTI9HMEbcQgGpzc6fku7-RYoYAxHI,4996
|
|
4
|
-
hud/job.py,sha256=0vWbr3E5bYstVRzXS_6l-57JGUFcrZpmFrNkOSQ8Aa0,26969
|
|
5
|
-
hud/settings.py,sha256=rx2zc3abJmf9ztwMHRYf9rGqgGprdRPCRhvJstsgyzc,1674
|
|
6
|
-
hud/task.py,sha256=vDcjKUo8la0AUTP7mwMc2nYwe0tkbnrWwM9-Kvf3Ugg,8773
|
|
7
|
-
hud/taskset.py,sha256=9IRwHeAdsk_IEibayM-hElE3gTp0mgmi-huN67h9-tc,7019
|
|
8
|
-
hud/trajectory.py,sha256=ctAwrGIkdULr4xI6G-1Dp2fhDol4o_PmnPcqTzAEIUc,3797
|
|
9
|
-
hud/types.py,sha256=xqrBb4rPKVkoLVwnyGk4PUrVKayCjKcUD_--n4OrxIM,2954
|
|
10
|
-
hud/version.py,sha256=YhtAhomBvDAwgkjwAgLcLu1MtMuTg6PaYr0RKB3ROcI,105
|
|
11
|
-
hud/adapters/__init__.py,sha256=zz24KdC_e9TJPgWo6y57_8SzevEE5ak4Cm6tXzMxwRk,266
|
|
12
|
-
hud/adapters/claude/__init__.py,sha256=i7QEF-29FLb9qxp1eYtXs-adIk_tG54tL-9g6d3xodk,100
|
|
13
|
-
hud/adapters/claude/adapter.py,sha256=vCpotJ5gzQs4PP2iCXVavIcyG8c_4m1P6fuXStwUxSo,6675
|
|
14
|
-
hud/adapters/claude/tests/__init__.py,sha256=9GZj0rz4tTkiPnLfxTmyBPr-s8UZc3gph6WH8fs8T34,39
|
|
15
|
-
hud/adapters/claude/tests/test_adapter.py,sha256=cAdHEoqLngLiV7QwlWJ0KuNgb1vNv9WZTPQMnxhMDKI,18319
|
|
16
|
-
hud/adapters/common/__init__.py,sha256=BjdZWJVs_AKtpFrt-tNsdQRjnz7D97DFEQirJ-r0mp8,118
|
|
17
|
-
hud/adapters/common/adapter.py,sha256=GETzlsEl-uYkL-U4cQHBnfLAvm1dbXec4fKC2ypR1L0,5821
|
|
18
|
-
hud/adapters/common/types.py,sha256=6frue7_gZlSYtOHhF2tFHqzjltzzHsTVs6-H-jQwZ4Y,9955
|
|
19
|
-
hud/adapters/common/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
-
hud/adapters/common/tests/test_adapter.py,sha256=rTD36LjvytHqMIyOLDyrn0RLIkd20s6f6dwoBEarJaw,8744
|
|
21
|
-
hud/adapters/operator/__init__.py,sha256=31vTRs268_TOLd-TeQRKau5bDYy78wxCNpJFhD5_l8U,104
|
|
22
|
-
hud/adapters/operator/adapter.py,sha256=Uz4Sr73T57B7v4RRP0uaibHI17N2hBx6Z9YYjgJCUXA,3732
|
|
23
|
-
hud/adapters/operator/tests/__init__.py,sha256=yTsDVusVXZBQL6DnXpLgKQCBRuOYUAVQ8Blk_k5GETk,41
|
|
24
|
-
hud/adapters/operator/tests/test_adapter.py,sha256=4RAXwyxAtkh-1Mlt1zJayRkcv3LWaPNEhDVTpwOZd4A,12942
|
|
25
|
-
hud/agent/__init__.py,sha256=_OxMG3UW1vXSuixdpo09b1jexfWcUbfK44zto8t6_LE,453
|
|
26
|
-
hud/agent/base.py,sha256=hC3mVUMAWo5HHF2b576ScA9UQzsAzcCfPU9S8mDWthA,4080
|
|
27
|
-
hud/agent/claude.py,sha256=FBSKCxICO6XXYCuIrerVL89bVJ-5JxrZJBDeZgzAdJI,9886
|
|
28
|
-
hud/agent/claude_plays_pokemon.py,sha256=4TPibnTFhTb24ISRKAU3pA4waIcISTfZLOdfBMIMqxE,10085
|
|
29
|
-
hud/agent/langchain.py,sha256=H55JNHcGkdl-LVzZEqOFRkuuFEO0D8MI1jCNz9deoko,9012
|
|
30
|
-
hud/agent/operator.py,sha256=kntMOsdL5tzaGVSnzbGvFD2PMLzW2DEB2wEqN_LArQw,10500
|
|
31
|
-
hud/agent/misc/__init__.py,sha256=-ftYH1T5r7fXKKra6d8jXYmUz9KOTmYwBrPJU-V3S7g,71
|
|
32
|
-
hud/agent/misc/response_agent.py,sha256=3PPsZqNAyUo2ouSV0ylGQj9fJqojfSB2roq2DadUdG0,3048
|
|
33
|
-
hud/agent/tests/__init__.py,sha256=HbAW7FvSvzzKPU5LpveZceU8XTcDkRe1Bmte3OGi2f0,29
|
|
34
|
-
hud/agent/tests/test_base.py,sha256=MAHx4QWsX4y4jXDoA1sxWw8uFvL7lIzGlXrnHfOTmkw,8511
|
|
35
|
-
hud/env/__init__.py,sha256=wVEesXMXM5hcNXQHt0-PN4-9RnE69DEnQENS7uJSv_Y,266
|
|
36
|
-
hud/env/client.py,sha256=brhfLkWGSuvxl3vqGMCQT-vXfj8rUbJMhE3zJg9WMDA,869
|
|
37
|
-
hud/env/docker_client.py,sha256=xKKzs_mUgv_9Ukm0tkc0YaC5UKb31fZ-6lGbVIxXdf0,11216
|
|
38
|
-
hud/env/environment.py,sha256=kPJ3y58Ry-AJ5sTLZknuzKUzmlPA94sujG9pC6GZiM4,16847
|
|
39
|
-
hud/env/local_docker_client.py,sha256=ewZYVDEv3cBXg3jzuouh6raj0W922rID0n6xkqc4qqE,11555
|
|
40
|
-
hud/env/remote_client.py,sha256=afLaQRSn9hge4arTkxYeus-a-T6DfeQ_EZBlPMRb2fM,6652
|
|
41
|
-
hud/env/remote_docker_client.py,sha256=RkuBtju_ycxma7ZSEbcN0tjwBTQvvorb4Ctggu09aio,9538
|
|
42
|
-
hud/evaluators/__init__.py,sha256=V5nktEAw3EDn2Y537pjia5Y1IjdLBIPrDjTs6YTCdX4,153
|
|
43
|
-
hud/evaluators/base.py,sha256=ALO9Rj-R_9HtHIHYp84bsQQD12De0XnCTwad78_T5-k,771
|
|
44
|
-
hud/evaluators/inspect.py,sha256=ZvrTXLpgibyvQ5aNXAMP4quyXISrRQHg9besDcuCx7U,692
|
|
45
|
-
hud/evaluators/judge.py,sha256=N3gEQGwVin9Ir80wWw6VtaL0xrlzitbmItaLm0he5gY,5962
|
|
46
|
-
hud/evaluators/match.py,sha256=8YVQD942myX72Jkme2JFIVlmKhFXEa3CgGTjLC8O5n4,4701
|
|
47
|
-
hud/evaluators/remote.py,sha256=kmD_XIU20KvX0NKgaEEKTTKHp0KVRa_3jUEgONh2nkY,2054
|
|
48
|
-
hud/evaluators/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
|
-
hud/evaluators/tests/test_inspect.py,sha256=8dMjgQfXOJGcS8gP6TzoBbQiG_NYuRL6IobMG7euJdU,376
|
|
50
|
-
hud/evaluators/tests/test_judge.py,sha256=c1GaAeq_WpBVgBlx-gQncHrOPokzKNxlbgiC8W8hxYI,7829
|
|
51
|
-
hud/evaluators/tests/test_match.py,sha256=C04GoluyT9i41YZ65xEjN7tKHQbENbrpNhNtUd4ivmA,3919
|
|
52
|
-
hud/evaluators/tests/test_remote.py,sha256=YdJpyyuRLkYP0e3jTUkD3zobS2WHQPePn8yBZtYOIN4,3243
|
|
53
|
-
hud/server/__init__.py,sha256=IPxPCqtPLguryN-nBq78Sakypw2bRiE2iHv3SXG8YRk,139
|
|
54
|
-
hud/server/requests.py,sha256=AnFW4ELojjvfF6xjS2no6_fg4Rph2aR2hjPzYTede0Q,8841
|
|
55
|
-
hud/server/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
-
hud/server/tests/test_requests.py,sha256=63YCbykcib5MxKxm-OgHJPLX3QC7hmgIwnWaYukVM6s,9077
|
|
57
|
-
hud/telemetry/__init__.py,sha256=ky48kuZD3Bt0vOf9FwZwkV_ka7O26Tvcxh7p1lMpsMk,582
|
|
58
|
-
hud/telemetry/_trace.py,sha256=W7S6CxwtmjNl4OZbA1SQHXsaNm072J9c-fjPjQomgOY,5135
|
|
59
|
-
hud/telemetry/context.py,sha256=PNbfrMgjeRTTg0nUKXYCflqn71I_cSjU8LXdvouUfc4,5209
|
|
60
|
-
hud/telemetry/exporter.py,sha256=IWK7Ahj9EIlFvG3J54Gj55X3pFnBWYYNAyXv5CIWcpA,17752
|
|
61
|
-
hud/telemetry/mcp_models.py,sha256=YIArMtCVfC4NVvaEmUYs_kxDs0GQ-xtFFmB8jEGKaag,11342
|
|
62
|
-
hud/telemetry/instrumentation/__init__.py,sha256=vHmSqaJMMehgRNn6EN2SMoYDD12rSHkLeVmj7Uy1my0,88
|
|
63
|
-
hud/telemetry/instrumentation/mcp.py,sha256=xGAMdhTgM1ixHiDX7xkS9Ax1NCjK3u7pLWIbIh8WZIA,21925
|
|
64
|
-
hud/telemetry/instrumentation/registry.py,sha256=UVaSsEA693lvKYd5R3n3ve6GcAB1fwqubRwIVeZiNmo,1821
|
|
65
|
-
hud/telemetry/tests/__init__.py,sha256=QMN8OzfrBUDbQESwrwHCqXLdDwCjYWX8BJcpeLUJfqA,33
|
|
66
|
-
hud/telemetry/tests/test_context.py,sha256=BGRDlXXC_VbpD4cYl_o9gRQDDKb2ox1das_ZuX14NC8,6531
|
|
67
|
-
hud/telemetry/tests/test_trace.py,sha256=JzmjNRtHdQFPqLm7hOPastENg-hMJo9p8bbxJ77iXyc,10687
|
|
68
|
-
hud/utils/__init__.py,sha256=oSl_gGoS272X2VFnBYX8hLxcP2xgGoBYQXAuLhtQgw8,260
|
|
69
|
-
hud/utils/agent.py,sha256=CpNgjKWMaNqo-EATH_vfJHIN53rEkZngm2LXfUFlldQ,1225
|
|
70
|
-
hud/utils/common.py,sha256=_3HNmSOsHWyexP6iXTuU2wMx3Fafeg5hZU3VXBmv0Ag,7780
|
|
71
|
-
hud/utils/config.py,sha256=L_sSYtEaOap-Gnb2iLPJPQc2rteyt6mjOdJUrktmFwM,4020
|
|
72
|
-
hud/utils/misc.py,sha256=CfOv_ftLty1iEo3Rxyz4AD4nmaBkhCJVO_W-FlcyDgI,1481
|
|
73
|
-
hud/utils/progress.py,sha256=suikwFM8sdSfkV10nAOEaInDhG4XKgOSvFePg4jSj1A,5927
|
|
74
|
-
hud/utils/telemetry.py,sha256=hrVIx2rUjSGyy9IVxTZ_3Jii83PiHjyFRd5ls2whimM,1863
|
|
75
|
-
hud/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
76
|
-
hud/utils/tests/test_common.py,sha256=KqDSMf7gWf1oYCiQ_BXsnvW1wUmyzbOzAT-HNoF7txs,9443
|
|
77
|
-
hud/utils/tests/test_config.py,sha256=dPlXYWuMrxX-NOYbf0vdJ27TJpfacKG8eiKOSGOcfDU,4079
|
|
78
|
-
hud/utils/tests/test_progress.py,sha256=QunwDgi_heQXhDgmC25zgjr-sFUu5FdJ_1aYigMKeIc,6351
|
|
79
|
-
hud/utils/tests/test_telemetry.py,sha256=t0An1RTBaE0dZVEpF4uwuq5k1R-PXFR5k4u71h60tx8,1224
|
|
80
|
-
hud/utils/tests/test_version.py,sha256=kLWQZWqHhS5i6f1f13iGqWExEJJ4x2Dn-DjZMUxsBOg,160
|
|
81
|
-
hud/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
82
|
-
hud_python-0.2.10.dist-info/METADATA,sha256=-NishBOrDyz-9CworEVC8ZboBW7TaIVtq8-vWT9U2NI,9786
|
|
83
|
-
hud_python-0.2.10.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
84
|
-
hud_python-0.2.10.dist-info/licenses/LICENSE,sha256=yIzBheVUf86FC1bztAcr7RYWWNxyd3B-UJQ3uddg1HA,1078
|
|
85
|
-
hud_python-0.2.10.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|