hud-python 0.4.2__py3-none-any.whl → 0.4.4__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/agents/langchain.py +12 -1
- hud/agents/misc/response_agent.py +3 -1
- hud/cli/build.py +98 -27
- hud/cli/init.py +14 -15
- hud/cli/mcp_server.py +55 -80
- hud/cli/pull.py +19 -25
- hud/cli/push.py +92 -58
- hud/clients/base.py +2 -3
- hud/clients/fastmcp.py +22 -2
- hud/clients/mcp_use.py +35 -15
- hud/datasets.py +5 -0
- hud/utils/design.py +106 -38
- hud/utils/mcp.py +1 -1
- hud/utils/tests/test_version.py +1 -1
- hud/version.py +1 -1
- {hud_python-0.4.2.dist-info → hud_python-0.4.4.dist-info}/METADATA +2 -2
- {hud_python-0.4.2.dist-info → hud_python-0.4.4.dist-info}/RECORD +20 -20
- {hud_python-0.4.2.dist-info → hud_python-0.4.4.dist-info}/WHEEL +0 -0
- {hud_python-0.4.2.dist-info → hud_python-0.4.4.dist-info}/entry_points.txt +0 -0
- {hud_python-0.4.2.dist-info → hud_python-0.4.4.dist-info}/licenses/LICENSE +0 -0
hud/utils/design.py
CHANGED
|
@@ -28,96 +28,111 @@ DIM = "dim"
|
|
|
28
28
|
class HUDDesign:
|
|
29
29
|
"""Design system for HUD CLI output."""
|
|
30
30
|
|
|
31
|
-
def __init__(self
|
|
32
|
-
"""Initialize the design system.
|
|
31
|
+
def __init__(self) -> None:
|
|
32
|
+
"""Initialize the design system."""
|
|
33
|
+
self._stdout_console = Console(stderr=False)
|
|
34
|
+
self._stderr_console = Console(stderr=True)
|
|
33
35
|
|
|
34
|
-
|
|
35
|
-
console: Rich console instance. Creates new one if not provided.
|
|
36
|
-
stderr: If True, output to stderr instead of stdout.
|
|
37
|
-
"""
|
|
38
|
-
self.console = console or Console(stderr=stderr)
|
|
39
|
-
|
|
40
|
-
def header(self, title: str, icon: str = "🚀") -> None:
|
|
36
|
+
def header(self, title: str, icon: str = "🚀", stderr: bool = True) -> None:
|
|
41
37
|
"""Print a header panel with gold border.
|
|
42
38
|
|
|
43
39
|
Args:
|
|
44
40
|
title: The title text
|
|
45
41
|
icon: Optional emoji icon
|
|
42
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
46
43
|
"""
|
|
47
|
-
self.
|
|
44
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
45
|
+
console.print(Panel.fit(f"{icon} [bold]{title}[/bold]", border_style=GOLD))
|
|
48
46
|
|
|
49
|
-
def section_title(self, title: str) -> None:
|
|
47
|
+
def section_title(self, title: str, stderr: bool = True) -> None:
|
|
50
48
|
"""Print a section title in gold.
|
|
51
49
|
|
|
52
50
|
Args:
|
|
53
51
|
title: The section title
|
|
52
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
54
53
|
"""
|
|
55
|
-
self.
|
|
54
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
55
|
+
console.print(f"\n[bold {GOLD}]{title}[/bold {GOLD}]")
|
|
56
56
|
|
|
57
|
-
def success(self, message: str) -> None:
|
|
57
|
+
def success(self, message: str, stderr: bool = True) -> None:
|
|
58
58
|
"""Print a success message.
|
|
59
59
|
|
|
60
60
|
Args:
|
|
61
61
|
message: The success message
|
|
62
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
62
63
|
"""
|
|
63
|
-
self.
|
|
64
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
65
|
+
console.print(f"[{GREEN} not bold]✅ {message}[/{GREEN} not bold]")
|
|
64
66
|
|
|
65
|
-
def error(self, message: str) -> None:
|
|
67
|
+
def error(self, message: str, stderr: bool = True) -> None:
|
|
66
68
|
"""Print an error message.
|
|
67
69
|
|
|
68
70
|
Args:
|
|
69
71
|
message: The error message
|
|
72
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
70
73
|
"""
|
|
71
|
-
self.
|
|
74
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
75
|
+
console.print(f"[{RED} not bold]❌ {message}[/{RED} not bold]")
|
|
72
76
|
|
|
73
|
-
def warning(self, message: str) -> None:
|
|
77
|
+
def warning(self, message: str, stderr: bool = True) -> None:
|
|
74
78
|
"""Print a warning message.
|
|
75
79
|
|
|
76
80
|
Args:
|
|
77
81
|
message: The warning message
|
|
82
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
78
83
|
"""
|
|
79
|
-
self.
|
|
84
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
85
|
+
console.print(f"[yellow]⚠️ {message}[/yellow]")
|
|
80
86
|
|
|
81
|
-
def info(self, message: str) -> None:
|
|
87
|
+
def info(self, message: str, stderr: bool = True) -> None:
|
|
82
88
|
"""Print an info message.
|
|
83
89
|
|
|
84
90
|
Args:
|
|
85
91
|
message: The info message
|
|
92
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
86
93
|
"""
|
|
87
|
-
self.
|
|
94
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
95
|
+
console.print(f"[default not bold]{message}[/default not bold]")
|
|
88
96
|
|
|
89
|
-
def dim_info(self, label: str, value: str) -> None:
|
|
97
|
+
def dim_info(self, label: str, value: str, stderr: bool = True) -> None:
|
|
90
98
|
"""Print dimmed info with a label.
|
|
91
99
|
|
|
92
100
|
Args:
|
|
93
101
|
label: The label text
|
|
94
102
|
value: The value text
|
|
103
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
95
104
|
"""
|
|
96
|
-
self.
|
|
105
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
106
|
+
console.print(f"[{DIM}]{label}[/{DIM}] [default]{value}[/default]")
|
|
97
107
|
|
|
98
|
-
def link(self, url: str) -> None:
|
|
108
|
+
def link(self, url: str, stderr: bool = True) -> None:
|
|
99
109
|
"""Print an underlined link.
|
|
100
110
|
|
|
101
111
|
Args:
|
|
102
112
|
url: The URL to display
|
|
113
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
103
114
|
"""
|
|
104
|
-
|
|
115
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
116
|
+
console.print(f"[default not bold underline]{url}[/default not bold underline]")
|
|
105
117
|
|
|
106
|
-
def json_config(self, json_str: str) -> None:
|
|
118
|
+
def json_config(self, json_str: str, stderr: bool = True) -> None:
|
|
107
119
|
"""Print JSON configuration with light theme.
|
|
108
120
|
|
|
109
121
|
Args:
|
|
110
122
|
json_str: JSON string to display
|
|
123
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
111
124
|
"""
|
|
112
125
|
# Just print the JSON as plain text to avoid any syntax coloring
|
|
113
|
-
self.
|
|
126
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
127
|
+
console.print(f"[default not bold]{json_str}[/default not bold]")
|
|
114
128
|
|
|
115
|
-
def key_value_table(self, data: dict[str, str], show_header: bool = False) -> None:
|
|
129
|
+
def key_value_table(self, data: dict[str, str], show_header: bool = False, stderr: bool = True) -> None:
|
|
116
130
|
"""Print a key-value table.
|
|
117
131
|
|
|
118
132
|
Args:
|
|
119
133
|
data: Dictionary of key-value pairs
|
|
120
134
|
show_header: Whether to show table header
|
|
135
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
121
136
|
"""
|
|
122
137
|
table = Table(show_header=show_header, box=None, padding=(0, 1))
|
|
123
138
|
table.add_column("Key", style=DIM, no_wrap=True)
|
|
@@ -126,42 +141,95 @@ class HUDDesign:
|
|
|
126
141
|
for key, value in data.items():
|
|
127
142
|
table.add_row(key, value)
|
|
128
143
|
|
|
129
|
-
self.
|
|
144
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
145
|
+
console.print(table)
|
|
130
146
|
|
|
131
|
-
def progress_message(self, message: str) -> None:
|
|
147
|
+
def progress_message(self, message: str, stderr: bool = True) -> None:
|
|
132
148
|
"""Print a progress message.
|
|
133
149
|
|
|
134
150
|
Args:
|
|
135
151
|
message: The progress message
|
|
152
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
136
153
|
"""
|
|
137
|
-
self.
|
|
154
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
155
|
+
console.print(f"[{DIM} not bold]{message}[/{DIM} not bold]")
|
|
138
156
|
|
|
139
|
-
def phase(self, phase_num: int, title: str) -> None:
|
|
157
|
+
def phase(self, phase_num: int, title: str, stderr: bool = True) -> None:
|
|
140
158
|
"""Print a phase header (for debug command).
|
|
141
159
|
|
|
142
160
|
Args:
|
|
143
161
|
phase_num: Phase number
|
|
144
162
|
title: Phase title
|
|
163
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
145
164
|
"""
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
165
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
166
|
+
console.print(f"\n{'=' * 80}", style=GOLD)
|
|
167
|
+
console.print(f"[bold {GOLD}]PHASE {phase_num}: {title}[/bold {GOLD}]")
|
|
168
|
+
console.print(f"{'=' * 80}", style=GOLD)
|
|
149
169
|
|
|
150
|
-
def command(self, cmd: list[str]) -> None:
|
|
170
|
+
def command(self, cmd: list[str], stderr: bool = True) -> None:
|
|
151
171
|
"""Print a command being executed.
|
|
152
172
|
|
|
153
173
|
Args:
|
|
154
174
|
cmd: Command parts as list
|
|
175
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
155
176
|
"""
|
|
156
|
-
self.
|
|
177
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
178
|
+
console.print(f"[bold]$ {' '.join(cmd)}[/bold]")
|
|
157
179
|
|
|
158
|
-
def hint(self, hint: str) -> None:
|
|
180
|
+
def hint(self, hint: str, stderr: bool = True) -> None:
|
|
159
181
|
"""Print a hint message.
|
|
160
182
|
|
|
161
183
|
Args:
|
|
162
184
|
hint: The hint text
|
|
185
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
186
|
+
"""
|
|
187
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
188
|
+
console.print(f"\n[yellow]💡 Hint: {hint}[/yellow]")
|
|
189
|
+
|
|
190
|
+
def status_item(self, label: str, value: str, status: str = "success", primary: bool = False, stderr: bool = True) -> None:
|
|
191
|
+
"""Print a status item with indicator.
|
|
192
|
+
|
|
193
|
+
Args:
|
|
194
|
+
label: The label text
|
|
195
|
+
value: The value text
|
|
196
|
+
status: Status type - "success" (✓), "error" (✗), "warning" (⚠), "info" (•)
|
|
197
|
+
primary: If True, highlight the value as primary
|
|
198
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
199
|
+
"""
|
|
200
|
+
indicators = {
|
|
201
|
+
"success": f"[{GREEN} not bold]✓[/{GREEN} not bold]",
|
|
202
|
+
"error": f"[{RED} not bold]✗[/{RED} not bold]",
|
|
203
|
+
"warning": "[yellow]⚠[/yellow]",
|
|
204
|
+
"info": f"[{DIM}]•[/{DIM}]"
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
indicator = indicators.get(status, indicators["info"])
|
|
208
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
209
|
+
|
|
210
|
+
if primary:
|
|
211
|
+
console.print(f"{indicator} {label}: [bold cyan]{value}[/bold cyan]")
|
|
212
|
+
else:
|
|
213
|
+
console.print(f"{indicator} {label}: {value}")
|
|
214
|
+
|
|
215
|
+
def command_example(self, command: str, description: str | None = None, stderr: bool = True) -> None:
|
|
216
|
+
"""Print a command example with cyan highlighting.
|
|
217
|
+
|
|
218
|
+
Args:
|
|
219
|
+
command: The command to show
|
|
220
|
+
description: Optional description after the command
|
|
221
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
163
222
|
"""
|
|
164
|
-
self.
|
|
223
|
+
console = self._stderr_console if stderr else self._stdout_console
|
|
224
|
+
if description:
|
|
225
|
+
console.print(f" [cyan]{command}[/cyan] # {description}")
|
|
226
|
+
else:
|
|
227
|
+
console.print(f" [cyan]{command}[/cyan]")
|
|
228
|
+
|
|
229
|
+
@property
|
|
230
|
+
def console(self) -> Console:
|
|
231
|
+
"""Get the stderr console for direct access when needed."""
|
|
232
|
+
return self._stderr_console
|
|
165
233
|
|
|
166
234
|
|
|
167
235
|
# Global design instance for convenience
|
hud/utils/mcp.py
CHANGED
|
@@ -20,7 +20,7 @@ def patch_mcp_config(mcp_config: dict[str, dict[str, Any]], patch: MCPConfigPatc
|
|
|
20
20
|
|
|
21
21
|
for server_cfg in mcp_config.values():
|
|
22
22
|
url = server_cfg.get("url", "")
|
|
23
|
-
|
|
23
|
+
|
|
24
24
|
# 1) HTTP header lane (only for hud MCP servers)
|
|
25
25
|
if hud_mcp_url in url and patch.headers:
|
|
26
26
|
for key, value in patch.headers.items():
|
hud/utils/tests/test_version.py
CHANGED
hud/version.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hud-python
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.4
|
|
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
|
|
@@ -202,7 +202,7 @@ The above example let's the agent play 2048 ([See replay](https://app.hud.so/tra
|
|
|
202
202
|
|
|
203
203
|
## Reinforcement Learning with GRPO
|
|
204
204
|
|
|
205
|
-
This is a Qwen-2.5-3B agent training a policy on the [`text-2048`](environments/text_2048/) environment (see above) using [Verifiers](rl/
|
|
205
|
+
This is a Qwen-2.5-3B agent training a policy on the [`text-2048`](environments/text_2048/) environment (see above) using [Verifiers](rl/):
|
|
206
206
|
|
|
207
207
|

|
|
208
208
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
hud/__init__.py,sha256=BjAhZtsHbGN371Q8t3o4v4jltedkmDE85xW0yOILU9g,397
|
|
2
|
-
hud/datasets.py,sha256=
|
|
2
|
+
hud/datasets.py,sha256=8lqC840kcNx01D2CcWZCd1j0eZTpepILmQrvohZIZYU,12056
|
|
3
3
|
hud/settings.py,sha256=WIJDsyrfwBZGcaGT46YUOpW8xjBZl3siXXprd92ASAg,2039
|
|
4
4
|
hud/types.py,sha256=pQWOPYXUZ2hhK0h-AHBc3DCj5tkbRXHqKZnsQQIcSFA,4237
|
|
5
|
-
hud/version.py,sha256=
|
|
5
|
+
hud/version.py,sha256=QEfeo6B5z3dSkp5MkR5F8LT9XsfB07YYIiqrl2l0xTQ,104
|
|
6
6
|
hud/agents/__init__.py,sha256=UoIkljWdbq4bM0LD-mSaw6w826EqdEjOk7r6glNYwYQ,286
|
|
7
7
|
hud/agents/base.py,sha256=OdvuPMMZFGMft5PEkImjs_nWi-05hJyGJMBSOGbtxBo,22258
|
|
8
8
|
hud/agents/claude.py,sha256=snbYFPW-KAkw4n9Rdz7dC2f46RuSHJKC53HPm8SucFM,14273
|
|
9
|
-
hud/agents/langchain.py,sha256=
|
|
9
|
+
hud/agents/langchain.py,sha256=_2ZJT1S1yREI0p2WSQkgcTmECaLXwnmSOURQrNXTxkk,9524
|
|
10
10
|
hud/agents/openai.py,sha256=kHG73mohO4uru49qmQiygUFt0eDCGJU06weqIUwTO3Y,14323
|
|
11
11
|
hud/agents/openai_chat_generic.py,sha256=jTJ-KY6HkglPK0iwZH5v3PVnaUjDsWc9IbRo3AbXlyE,5322
|
|
12
12
|
hud/agents/misc/__init__.py,sha256=BYi4Ytp9b_vycpZFXnr5Oyw6ncKLNNGml8Jrb7bWUb4,136
|
|
13
|
-
hud/agents/misc/response_agent.py,sha256=
|
|
13
|
+
hud/agents/misc/response_agent.py,sha256=MsnIVElXM4ABrSJfEc_MMYp1Y_Rxmkq4kEGJ9vDX7hw,3098
|
|
14
14
|
hud/agents/tests/__init__.py,sha256=W-O-_4i34d9TTyEHV-O_q1Ai1gLhzwDaaPo02_TWQIY,34
|
|
15
15
|
hud/agents/tests/test_base.py,sha256=F39ajSqASGUbPyPoWSY9KARFav62qNTK74W11Tr1Tg4,28970
|
|
16
16
|
hud/agents/tests/test_claude.py,sha256=wqEKlzEvx8obz1sSm4NY0j-Zyt1qWNfDOmRqYIuAEd0,13069
|
|
@@ -20,16 +20,16 @@ hud/cli/__init__.py,sha256=IsP148YyCod5gC-CduIN6MGGCLsITBe-kEtzE4NqbLo,21734
|
|
|
20
20
|
hud/cli/__main__.py,sha256=fDH7XITyuDITwSDIVwRso06aouADO0CzTHKqp5TOwJE,143
|
|
21
21
|
hud/cli/analyze.py,sha256=G-tjT1xLPLcYhDhZEaI7TAIS0z0OACUksnGFoAWd2ag,14416
|
|
22
22
|
hud/cli/analyze_metadata.py,sha256=Mgs_je-XbPulG6noRLRNXe3_3a1eb20Cvxz5OQJ2NeU,8262
|
|
23
|
-
hud/cli/build.py,sha256=
|
|
23
|
+
hud/cli/build.py,sha256=7GWBte4x6X24hZghEMC4Q0IBrBaFIf_eWZodkEHFba0,16693
|
|
24
24
|
hud/cli/clone.py,sha256=AwVDIuhr8mHb1oT2Af2HrD25SiTdwATpE6zd93vzLgA,6099
|
|
25
25
|
hud/cli/cursor.py,sha256=fy850p0rVp5k_1wwOCI7rK1SggbselJrywFInSQ2gio,3009
|
|
26
26
|
hud/cli/debug.py,sha256=pa24bP4KVE0vdvrODuN57i2t8YDHxKJgwzXy7eD2tBE,13613
|
|
27
27
|
hud/cli/docker_utils.py,sha256=5k5sXtI4V5d4VWRJR6lzVRy_Hu8Wf1nLsmW-dBNW0cM,2695
|
|
28
|
-
hud/cli/init.py,sha256=
|
|
28
|
+
hud/cli/init.py,sha256=Jb9h4MJPMNiUhr9GmmJjwjjmGQQOOMG1GadXIEsvKKk,7702
|
|
29
29
|
hud/cli/interactive.py,sha256=w1fAoefizNKqjcl5Fi5EgEsUdPpXKcCFuU-Z-S3CL9o,12863
|
|
30
|
-
hud/cli/mcp_server.py,sha256=
|
|
31
|
-
hud/cli/pull.py,sha256=
|
|
32
|
-
hud/cli/push.py,sha256=
|
|
30
|
+
hud/cli/mcp_server.py,sha256=kqXlHPm7ABVtP_MTJON5OgUAeVcXRuM-NrqqjBWYgd0,28221
|
|
31
|
+
hud/cli/pull.py,sha256=8caEpiCsvHHMsQ9K7QRfZ8dC5Zq3G_OLF5YrUGHUP6E,11721
|
|
32
|
+
hud/cli/push.py,sha256=MBee7EtcrzAHzmVWneT7hvHV9aF_hgxVRPoc1U1Oi1c,15626
|
|
33
33
|
hud/cli/remote_runner.py,sha256=X01x6DeVkyc9HgxVCGEZJxEhhVPvHpAMoeYR44R8_BQ,9405
|
|
34
34
|
hud/cli/runner.py,sha256=ukEr6ZmD5rs-taoEBu0P_-hr275d-ZE5_WAR-dvSqrw,4888
|
|
35
35
|
hud/cli/utils.py,sha256=ZgjjKVPAa7dcfJ6SMBrdfZ63d1UnnhYC-zeh7gFBXsI,8841
|
|
@@ -44,9 +44,9 @@ hud/cli/tests/test_mcp_server.py,sha256=e5fh6AUcqdv0jp0rJ8VL-DdJ-1nNgS85N8Ua53eh
|
|
|
44
44
|
hud/cli/tests/test_utils.py,sha256=dKmHgyLtDEqKVXlvs5tyNHyHhpBlZHUpmJF-iUraBVM,13466
|
|
45
45
|
hud/clients/README.md,sha256=XNE3mch95ozDgVqfwCGcrhlHY9CwT1GKfNANNboowto,3826
|
|
46
46
|
hud/clients/__init__.py,sha256=bcPIa7dwH5ENsjh7CzjsJ84fm7Ma93NBc2lGfSjGAKM,328
|
|
47
|
-
hud/clients/base.py,sha256=
|
|
48
|
-
hud/clients/fastmcp.py,sha256=
|
|
49
|
-
hud/clients/mcp_use.py,sha256=
|
|
47
|
+
hud/clients/base.py,sha256=y2yH8H4-cefWiI3oey_YPKLpDM2OwZ-hgvpjoOpEb8c,13459
|
|
48
|
+
hud/clients/fastmcp.py,sha256=kocw7fpLbTnFmeE39XrPd5yyl5KY8kvtB_udLzQVRtg,9168
|
|
49
|
+
hud/clients/mcp_use.py,sha256=Q1h3Hb9R1SVeue2CqhC5W7PqnQzuuAQf5T9O8GhzpbI,11981
|
|
50
50
|
hud/clients/tests/__init__.py,sha256=sKOtJFFa4mDIXh1U6O8ZUHjigE8CiRMQ2PzJTIBZuVE,33
|
|
51
51
|
hud/clients/tests/test_client_integration.py,sha256=kohU6jfCNfwSnAushHeB1_CmDlRfQc7VBL0GEdJYSeI,4198
|
|
52
52
|
hud/clients/tests/test_fastmcp.py,sha256=4q3TzDjuieTZa89taiNJIrzbUncNkYOG4MaubypA21k,13030
|
|
@@ -113,8 +113,8 @@ hud/tools/tests/test_tools.py,sha256=paz28V98Am-oR7MBJPDgY-BRV14HQo_0F6X5JIC8aic
|
|
|
113
113
|
hud/tools/tests/test_utils.py,sha256=oYxEnLpSA5sEeYFGUTj74QRNv0AHP3AjmYYHXgIW0BY,5496
|
|
114
114
|
hud/utils/__init__.py,sha256=ckuIzwqgTxkzASa04XTPsOu_TqsRYUKBWUYfcSi3Xnc,164
|
|
115
115
|
hud/utils/async_utils.py,sha256=5cKrJcnaHV2eJNxeyx0r7fPcdPTDBK7kM9-nLaF51X4,2409
|
|
116
|
-
hud/utils/design.py,sha256=
|
|
117
|
-
hud/utils/mcp.py,sha256=
|
|
116
|
+
hud/utils/design.py,sha256=8-GHAegyJelQMdSSnY-MKXks2m3GVYHSW2Dlf17-daM,8965
|
|
117
|
+
hud/utils/mcp.py,sha256=SQgEemHpIc0LshA0ImZw4nMzPPn1SE6qEO0dpNLwxy4,1855
|
|
118
118
|
hud/utils/progress.py,sha256=suikwFM8sdSfkV10nAOEaInDhG4XKgOSvFePg4jSj1A,5927
|
|
119
119
|
hud/utils/telemetry.py,sha256=hrVIx2rUjSGyy9IVxTZ_3Jii83PiHjyFRd5ls2whimM,1863
|
|
120
120
|
hud/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -122,10 +122,10 @@ hud/utils/tests/test_async_utils.py,sha256=RkdSnYErRV3Jn7dfg6CPlcE1RSUL__2B627oI
|
|
|
122
122
|
hud/utils/tests/test_init.py,sha256=2QLQSGgyP9wJhOvPCusm_zjJad0qApOZi1BXpxcdHXQ,383
|
|
123
123
|
hud/utils/tests/test_progress.py,sha256=QSF7Kpi03Ff_l3mAeqW9qs1nhK50j9vBiSobZq7T4f4,7394
|
|
124
124
|
hud/utils/tests/test_telemetry.py,sha256=5jl7bEx8C8b-FfFUko5pf4UY-mPOR-9HaeL98dGtVHM,2781
|
|
125
|
-
hud/utils/tests/test_version.py,sha256=
|
|
125
|
+
hud/utils/tests/test_version.py,sha256=J1HkpyCuUnhq-6sqLntxJjgi5Y3W8jH3x3qcpPaxS9Y,159
|
|
126
126
|
hud/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
127
|
-
hud_python-0.4.
|
|
128
|
-
hud_python-0.4.
|
|
129
|
-
hud_python-0.4.
|
|
130
|
-
hud_python-0.4.
|
|
131
|
-
hud_python-0.4.
|
|
127
|
+
hud_python-0.4.4.dist-info/METADATA,sha256=CEYI7xppDnxlMpiEPdiV330PPkzryUmAuzUt1xWjazw,19669
|
|
128
|
+
hud_python-0.4.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
129
|
+
hud_python-0.4.4.dist-info/entry_points.txt,sha256=jJbodNFg1m0-CDofe5AHvB4zKBq7sSdP97-ohaQ3ae4,63
|
|
130
|
+
hud_python-0.4.4.dist-info/licenses/LICENSE,sha256=yIzBheVUf86FC1bztAcr7RYWWNxyd3B-UJQ3uddg1HA,1078
|
|
131
|
+
hud_python-0.4.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|