hud-python 0.4.14__py3-none-any.whl → 0.4.16__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/base.py +118 -33
- hud/agents/claude.py +1 -1
- hud/agents/openai.py +5 -16
- hud/agents/tests/test_openai.py +24 -79
- hud/cli/__init__.py +137 -15
- hud/cli/analyze.py +2 -4
- hud/cli/build.py +6 -2
- hud/cli/dev.py +67 -0
- hud/cli/eval.py +90 -35
- hud/cli/hf.py +406 -0
- hud/cli/init.py +38 -19
- hud/cli/rl/README.md +243 -0
- hud/cli/rl/__init__.py +82 -0
- hud/cli/rl/init.py +370 -0
- hud/cli/rl/pod.py +491 -0
- hud/cli/rl/ssh.py +288 -0
- hud/cli/rl/train.py +421 -0
- hud/cli/rl/utils.py +165 -0
- hud/cli/tests/test_mcp_server.py +1 -4
- hud/clients/base.py +2 -0
- hud/clients/fastmcp.py +7 -2
- hud/clients/mcp_use.py +3 -1
- hud/clients/utils/retry_transport.py +34 -8
- hud/datasets/__init__.py +32 -0
- hud/datasets/execution/__init__.py +13 -0
- hud/datasets/execution/parallel.py +592 -0
- hud/datasets/execution/runner.py +123 -0
- hud/datasets/task.py +107 -0
- hud/datasets/utils.py +118 -0
- hud/otel/instrumentation.py +2 -1
- hud/server/server.py +58 -21
- hud/settings.py +12 -0
- hud/types.py +31 -10
- hud/utils/design.py +168 -2
- hud/utils/tests/test_version.py +1 -1
- hud/version.py +1 -1
- {hud_python-0.4.14.dist-info → hud_python-0.4.16.dist-info}/METADATA +4 -3
- {hud_python-0.4.14.dist-info → hud_python-0.4.16.dist-info}/RECORD +41 -28
- hud/datasets.py +0 -327
- {hud_python-0.4.14.dist-info → hud_python-0.4.16.dist-info}/WHEEL +0 -0
- {hud_python-0.4.14.dist-info → hud_python-0.4.16.dist-info}/entry_points.txt +0 -0
- {hud_python-0.4.14.dist-info → hud_python-0.4.16.dist-info}/licenses/LICENSE +0 -0
hud/utils/design.py
CHANGED
|
@@ -14,6 +14,11 @@ Color Palette:
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
+
import logging
|
|
18
|
+
from typing import Any
|
|
19
|
+
|
|
20
|
+
import questionary
|
|
21
|
+
import typer
|
|
17
22
|
from rich.console import Console
|
|
18
23
|
from rich.panel import Panel
|
|
19
24
|
from rich.table import Table
|
|
@@ -28,10 +33,15 @@ DIM = "dim"
|
|
|
28
33
|
class HUDDesign:
|
|
29
34
|
"""Design system for HUD CLI output."""
|
|
30
35
|
|
|
31
|
-
def __init__(self) -> None:
|
|
32
|
-
"""Initialize the design system.
|
|
36
|
+
def __init__(self, logger: logging.Logger | None = None) -> None:
|
|
37
|
+
"""Initialize the design system.
|
|
38
|
+
|
|
39
|
+
Args:
|
|
40
|
+
logger: Logger to check for log levels. If None, uses the root logger.
|
|
41
|
+
"""
|
|
33
42
|
self._stdout_console = Console(stderr=False)
|
|
34
43
|
self._stderr_console = Console(stderr=True)
|
|
44
|
+
self._logger = logger or logging.getLogger()
|
|
35
45
|
|
|
36
46
|
def header(self, title: str, icon: str = "🚀", stderr: bool = True) -> None:
|
|
37
47
|
"""Print a header panel with gold border.
|
|
@@ -252,6 +262,162 @@ class HUDDesign:
|
|
|
252
262
|
"""Get the stderr console for direct access when needed."""
|
|
253
263
|
return self._stderr_console
|
|
254
264
|
|
|
265
|
+
def set_verbose(self, verbose: bool) -> None:
|
|
266
|
+
"""Set the logging level based on verbose flag.
|
|
267
|
+
|
|
268
|
+
Args:
|
|
269
|
+
verbose: If True, show INFO level messages. If False, only show WARNING and above.
|
|
270
|
+
"""
|
|
271
|
+
if verbose:
|
|
272
|
+
self._logger.setLevel(logging.INFO)
|
|
273
|
+
else:
|
|
274
|
+
self._logger.setLevel(logging.WARNING)
|
|
275
|
+
|
|
276
|
+
# Logging-aware methods that check logging levels before printing
|
|
277
|
+
|
|
278
|
+
def debug(self, message: str, stderr: bool = True) -> None:
|
|
279
|
+
"""Print a debug message only if DEBUG logging is enabled.
|
|
280
|
+
|
|
281
|
+
Args:
|
|
282
|
+
message: The debug message
|
|
283
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
284
|
+
"""
|
|
285
|
+
if self._logger.isEnabledFor(logging.DEBUG):
|
|
286
|
+
self.dim_info("[DEBUG]", message, stderr=stderr)
|
|
287
|
+
|
|
288
|
+
def info_log(self, message: str, stderr: bool = True) -> None:
|
|
289
|
+
"""Print an info message only if INFO logging is enabled.
|
|
290
|
+
|
|
291
|
+
Args:
|
|
292
|
+
message: The info message
|
|
293
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
294
|
+
"""
|
|
295
|
+
if self._logger.isEnabledFor(logging.INFO):
|
|
296
|
+
self.info(message, stderr=stderr)
|
|
297
|
+
|
|
298
|
+
def progress_log(self, message: str, stderr: bool = True) -> None:
|
|
299
|
+
"""Print a progress message only if INFO logging is enabled.
|
|
300
|
+
|
|
301
|
+
Args:
|
|
302
|
+
message: The progress message
|
|
303
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
304
|
+
"""
|
|
305
|
+
if self._logger.isEnabledFor(logging.INFO):
|
|
306
|
+
self.progress_message(message, stderr=stderr)
|
|
307
|
+
|
|
308
|
+
def success_log(self, message: str, stderr: bool = True) -> None:
|
|
309
|
+
"""Print a success message only if INFO logging is enabled.
|
|
310
|
+
|
|
311
|
+
Args:
|
|
312
|
+
message: The success message
|
|
313
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
314
|
+
"""
|
|
315
|
+
if self._logger.isEnabledFor(logging.INFO):
|
|
316
|
+
self.success(message, stderr=stderr)
|
|
317
|
+
|
|
318
|
+
def warning_log(self, message: str, stderr: bool = True) -> None:
|
|
319
|
+
"""Print a warning message only if WARNING logging is enabled.
|
|
320
|
+
|
|
321
|
+
Args:
|
|
322
|
+
message: The warning message
|
|
323
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
324
|
+
"""
|
|
325
|
+
if self._logger.isEnabledFor(logging.WARNING):
|
|
326
|
+
self.warning(message, stderr=stderr)
|
|
327
|
+
|
|
328
|
+
def error_log(self, message: str, stderr: bool = True) -> None:
|
|
329
|
+
"""Print an error message only if ERROR logging is enabled.
|
|
330
|
+
|
|
331
|
+
Args:
|
|
332
|
+
message: The error message
|
|
333
|
+
stderr: If True, output to stderr (default), otherwise stdout
|
|
334
|
+
"""
|
|
335
|
+
if self._logger.isEnabledFor(logging.ERROR):
|
|
336
|
+
self.error(message, stderr=stderr)
|
|
337
|
+
|
|
338
|
+
def select(
|
|
339
|
+
self,
|
|
340
|
+
message: str,
|
|
341
|
+
choices: list[str | dict[str, Any]] | list[str],
|
|
342
|
+
default: str | None = None,
|
|
343
|
+
) -> str:
|
|
344
|
+
"""Interactive selection with arrow key navigation.
|
|
345
|
+
|
|
346
|
+
Args:
|
|
347
|
+
message: The prompt message to display
|
|
348
|
+
choices: List of choices. Can be strings or dicts with 'name' and 'value' keys
|
|
349
|
+
default: Default selection (matches against choice name/string)
|
|
350
|
+
|
|
351
|
+
Returns:
|
|
352
|
+
The selected choice value
|
|
353
|
+
"""
|
|
354
|
+
# Convert choices to questionary format
|
|
355
|
+
q_choices = []
|
|
356
|
+
|
|
357
|
+
for choice in choices:
|
|
358
|
+
if isinstance(choice, dict):
|
|
359
|
+
name = choice.get("name", str(choice.get("value", "")))
|
|
360
|
+
value = choice.get("value", name)
|
|
361
|
+
q_choices.append(questionary.Choice(title=name, value=value))
|
|
362
|
+
else:
|
|
363
|
+
q_choices.append(choice)
|
|
364
|
+
|
|
365
|
+
result = questionary.select(
|
|
366
|
+
message,
|
|
367
|
+
choices=q_choices,
|
|
368
|
+
instruction="(Use ↑/↓ arrows, Enter to select)",
|
|
369
|
+
).ask()
|
|
370
|
+
|
|
371
|
+
# If no selection made (Ctrl+C or ESC), exit
|
|
372
|
+
if result is None:
|
|
373
|
+
raise typer.Exit(1)
|
|
374
|
+
|
|
375
|
+
return result
|
|
376
|
+
|
|
377
|
+
def format_tool_call(self, name: str, arguments: dict[str, Any] | None = None) -> str:
|
|
378
|
+
"""Format a tool call in compact HUD style.
|
|
379
|
+
|
|
380
|
+
Args:
|
|
381
|
+
name: Tool name
|
|
382
|
+
arguments: Tool arguments dictionary
|
|
383
|
+
|
|
384
|
+
Returns:
|
|
385
|
+
Formatted string with Rich markup
|
|
386
|
+
"""
|
|
387
|
+
import json
|
|
388
|
+
|
|
389
|
+
args_str = ""
|
|
390
|
+
if arguments:
|
|
391
|
+
try:
|
|
392
|
+
# Compact JSON representation
|
|
393
|
+
args_str = json.dumps(arguments, separators=(",", ":"))
|
|
394
|
+
if len(args_str) > 60:
|
|
395
|
+
args_str = args_str[:57] + "..."
|
|
396
|
+
except (TypeError, ValueError):
|
|
397
|
+
args_str = str(arguments)[:60]
|
|
398
|
+
|
|
399
|
+
return f"[{GOLD}]→[/{GOLD}] [bold]{name}[/bold][{DIM}]({args_str})[/{DIM}]"
|
|
400
|
+
|
|
401
|
+
def format_tool_result(self, content: str, is_error: bool = False) -> str:
|
|
402
|
+
"""Format a tool result in compact HUD style.
|
|
403
|
+
|
|
404
|
+
Args:
|
|
405
|
+
content: Result content (will be truncated if too long)
|
|
406
|
+
is_error: Whether this is an error result
|
|
407
|
+
|
|
408
|
+
Returns:
|
|
409
|
+
Formatted string with Rich markup
|
|
410
|
+
"""
|
|
411
|
+
# Truncate content if needed
|
|
412
|
+
if len(content) > 80:
|
|
413
|
+
content = content[:77] + "..."
|
|
414
|
+
|
|
415
|
+
# Format with status using HUD colors
|
|
416
|
+
if is_error:
|
|
417
|
+
return f" [{RED}]✗[/{RED}] [{DIM}]{content}[/{DIM}]"
|
|
418
|
+
else:
|
|
419
|
+
return f" [{GREEN}]✓[/{GREEN}] {content}"
|
|
420
|
+
|
|
255
421
|
|
|
256
422
|
# Global design instance for convenience
|
|
257
423
|
design = HUDDesign()
|
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.16
|
|
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
|
|
@@ -43,9 +43,10 @@ Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.34.1
|
|
|
43
43
|
Requires-Dist: opentelemetry-instrumentation-mcp>=0.44.1
|
|
44
44
|
Requires-Dist: opentelemetry-sdk>=1.34.1
|
|
45
45
|
Requires-Dist: pathspec>=0.12.1
|
|
46
|
+
Requires-Dist: prompt-toolkit==3.0.51
|
|
46
47
|
Requires-Dist: pydantic-settings<3,>=2
|
|
47
48
|
Requires-Dist: pydantic<3,>=2
|
|
48
|
-
Requires-Dist: questionary
|
|
49
|
+
Requires-Dist: questionary==2.1.0
|
|
49
50
|
Requires-Dist: rich>=13.0.0
|
|
50
51
|
Requires-Dist: toml>=0.10.2
|
|
51
52
|
Requires-Dist: typer>=0.9.0
|
|
@@ -160,7 +161,7 @@ pip install -e "hud-python[dev]"
|
|
|
160
161
|
```
|
|
161
162
|
|
|
162
163
|
> See [docs.hud.so](https://docs.hud.so), or add docs to any MCP client:
|
|
163
|
-
> `claude mcp add docs-hud https://docs.hud.so/mcp`
|
|
164
|
+
> `claude mcp add --transport http docs-hud https://docs.hud.so/mcp`
|
|
164
165
|
|
|
165
166
|
## Quickstart
|
|
166
167
|
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
hud/__init__.py,sha256=BjAhZtsHbGN371Q8t3o4v4jltedkmDE85xW0yOILU9g,397
|
|
2
2
|
hud/__main__.py,sha256=YR8Dq8OhINOsVfQ55PmRXXg4fEK84Rt_-rMtJ5rvhWo,145
|
|
3
|
-
hud/
|
|
4
|
-
hud/
|
|
5
|
-
hud/
|
|
6
|
-
hud/version.py,sha256=EujFSzlsB3e5WmhxNLuJ-8DYtTfWdY6iOL9lPpx0r5U,105
|
|
3
|
+
hud/settings.py,sha256=q9aZiHjvbL4oLE-N8AttTW4rmzS8zPMnsca-iMGyEGc,2362
|
|
4
|
+
hud/types.py,sha256=gNnyS1G7aYHIR5sT3k3bOfSTFnPylUO6lNGLWbjbeYk,5149
|
|
5
|
+
hud/version.py,sha256=6t66BWvg9Ogi1zfYHDfU7EW-PaxTj515uBQwruhu3X8,105
|
|
7
6
|
hud/agents/__init__.py,sha256=UoIkljWdbq4bM0LD-mSaw6w826EqdEjOk7r6glNYwYQ,286
|
|
8
|
-
hud/agents/base.py,sha256=
|
|
9
|
-
hud/agents/claude.py,sha256=
|
|
7
|
+
hud/agents/base.py,sha256=rbwYP_a6XTwhY_5CaBlE7SWflnTq1EOuDiNY2XeUWdM,28275
|
|
8
|
+
hud/agents/claude.py,sha256=in-dRByL7wU1gsuwFvscltQ1PGZURb2bIeU3QFhfpQU,14271
|
|
10
9
|
hud/agents/langchain.py,sha256=1EgCy8jfjunsWxlPC5XfvfLS6_XZVrIF1ZjtHcrvhYw,9584
|
|
11
|
-
hud/agents/openai.py,sha256=
|
|
10
|
+
hud/agents/openai.py,sha256=9G7u17oN9yne7ObiuaBV67a3U3byC-NPJchDT4s5kZ0,13994
|
|
12
11
|
hud/agents/openai_chat_generic.py,sha256=jTJ-KY6HkglPK0iwZH5v3PVnaUjDsWc9IbRo3AbXlyE,5322
|
|
13
12
|
hud/agents/misc/__init__.py,sha256=BYi4Ytp9b_vycpZFXnr5Oyw6ncKLNNGml8Jrb7bWUb4,136
|
|
14
13
|
hud/agents/misc/response_agent.py,sha256=MsnIVElXM4ABrSJfEc_MMYp1Y_Rxmkq4kEGJ9vDX7hw,3098
|
|
@@ -16,20 +15,28 @@ hud/agents/tests/__init__.py,sha256=W-O-_4i34d9TTyEHV-O_q1Ai1gLhzwDaaPo02_TWQIY,
|
|
|
16
15
|
hud/agents/tests/test_base.py,sha256=F39ajSqASGUbPyPoWSY9KARFav62qNTK74W11Tr1Tg4,28970
|
|
17
16
|
hud/agents/tests/test_claude.py,sha256=wqEKlzEvx8obz1sSm4NY0j-Zyt1qWNfDOmRqYIuAEd0,13069
|
|
18
17
|
hud/agents/tests/test_client.py,sha256=Sk5bGZw2hL5GsVi2LMp9tsLngl5ZQ18pkpeeQmts0ao,13908
|
|
19
|
-
hud/agents/tests/test_openai.py,sha256=
|
|
20
|
-
hud/cli/__init__.py,sha256=
|
|
18
|
+
hud/agents/tests/test_openai.py,sha256=lhHowQyLp09oDVwBUjUECoPeH01F16i4O9YIHeugK6E,7028
|
|
19
|
+
hud/cli/__init__.py,sha256=BhrFre1_ZCwoXJsZ67I29KTlgKzH3W_g0Y9FOvmh9-s,34937
|
|
21
20
|
hud/cli/__main__.py,sha256=fDH7XITyuDITwSDIVwRso06aouADO0CzTHKqp5TOwJE,143
|
|
22
|
-
hud/cli/analyze.py,sha256=
|
|
23
|
-
hud/cli/build.py,sha256=
|
|
21
|
+
hud/cli/analyze.py,sha256=DngDPM53DHZn8gFndz8d7hCIOUwB4tqtYEii6AGFIZk,14393
|
|
22
|
+
hud/cli/build.py,sha256=2bggugEegRp_QguK5aTzoM607NY-toQaic9WtnnoI2o,19231
|
|
24
23
|
hud/cli/clone.py,sha256=AwVDIuhr8mHb1oT2Af2HrD25SiTdwATpE6zd93vzLgA,6099
|
|
25
24
|
hud/cli/debug.py,sha256=FNzg9-_ZzUJA1nJfubmop7_2OT5mqnWsdpZyi4AVSXA,14163
|
|
26
|
-
hud/cli/dev.py,sha256=
|
|
27
|
-
hud/cli/eval.py,sha256=
|
|
28
|
-
hud/cli/
|
|
25
|
+
hud/cli/dev.py,sha256=R7YJWIZCUURXzs8ovOCF9V1FwOhsAJT5D3mZQkFmTI4,31134
|
|
26
|
+
hud/cli/eval.py,sha256=LjDCci3lYsu8RRmL5DiWYfroK1n2FrMUUhOiQ53242s,15142
|
|
27
|
+
hud/cli/hf.py,sha256=EYWL-fEN9SS2QJYU7iIBXs0qa9JIvmMWOMh9a8Ewt9s,15179
|
|
28
|
+
hud/cli/init.py,sha256=xRUy92TqBALNQxycBB4Kk0m380WtE-qD3L6A5Sr1Lxw,19581
|
|
29
29
|
hud/cli/list_func.py,sha256=ENxLL4X5uuqAASWZdQuI0k-tEzmlhUn5LATgz3QPQqQ,7065
|
|
30
30
|
hud/cli/pull.py,sha256=JHwCwUwRO0Nzbgm9mkjsz6EpxbxgwQVhgNSY64nNZ-s,11969
|
|
31
31
|
hud/cli/push.py,sha256=4KrEHj0_i3xJNCB3eRjANmHFhSW4MFfpnld3nfVYENs,17904
|
|
32
32
|
hud/cli/remove.py,sha256=USAvB6pbMA3jd19xUtLEBiMsklVTEfE2Maw9nYcpSAE,6619
|
|
33
|
+
hud/cli/rl/README.md,sha256=3pqRZMrnwD-lJwWGCCNZNhGdZG6zyydLBOer0e8BkLw,5983
|
|
34
|
+
hud/cli/rl/__init__.py,sha256=_C95dDud3-YMpqfuRBbW0RyMboPGWzhT7aVcly0n5N8,3074
|
|
35
|
+
hud/cli/rl/init.py,sha256=GXVOXLrX8CVAgpJ1pHuk6Y6oujbh46Rtz8kG18jGzk8,13789
|
|
36
|
+
hud/cli/rl/pod.py,sha256=ARXEG4RZyI1zOrQnsEjLiQDZuM-gv_yNc6JP7-VPRfI,18691
|
|
37
|
+
hud/cli/rl/ssh.py,sha256=4KrdFQP1uv-RUCVe-Sw01SH84ogk9cwts9i0oyaTFSg,10267
|
|
38
|
+
hud/cli/rl/train.py,sha256=40vzQeDrYa9hxI0HwwcFu-zWfhoH2vM8-AUx_JJVHiA,14702
|
|
39
|
+
hud/cli/rl/utils.py,sha256=ZW3sjl5KaHZaOCjAbut_QIpQvxgzlxjPGuM6fuYkU9I,4836
|
|
33
40
|
hud/cli/tests/__init__.py,sha256=ZrGVkmH7DHXGqOvjOSNGZeMYaFIRB2K8c6hwr8FPJ-8,68
|
|
34
41
|
hud/cli/tests/test_analyze.py,sha256=SwxvRlnw-VaEwKN2nd1FJAxfhieujPjh7PdQh_LYJ5E,11050
|
|
35
42
|
hud/cli/tests/test_analyze_metadata.py,sha256=s-N-ETJECloiNQhdnZrfvxDI4pWBI8hl8edQNSRaw14,9982
|
|
@@ -41,7 +48,7 @@ hud/cli/tests/test_cursor.py,sha256=ZfxAFKJesJ3UV1JBoASSRlv6BXbpvVEk_pjxUg1jnf4,
|
|
|
41
48
|
hud/cli/tests/test_debug.py,sha256=bQ76d_0HJfthHBSECmGNv499ZE57CIOKsanMlNfNHGk,18036
|
|
42
49
|
hud/cli/tests/test_list_func.py,sha256=pkG4TtJJBMi9Xk8KBNFBlGcam7kwz01IRsjfQBL2PxM,10700
|
|
43
50
|
hud/cli/tests/test_main_module.py,sha256=6RhwCcdRSN2uQV6-adti40ZcLd3u-mPR1ai6wL64c6Y,1105
|
|
44
|
-
hud/cli/tests/test_mcp_server.py,sha256=
|
|
51
|
+
hud/cli/tests/test_mcp_server.py,sha256=wLFkDOR22FuBe3kIdYeLG7H81HHiorKB8kXRubftLpU,4316
|
|
45
52
|
hud/cli/tests/test_pull.py,sha256=7wHxdf_rN3LDmo554-S63WT6eoYUquwDWpjgoy_f1eQ,12923
|
|
46
53
|
hud/cli/tests/test_push.py,sha256=8LpKY4lASRYPd8xM8c_SlTbE11IQ8kCfzfC8UBqhzN4,12709
|
|
47
54
|
hud/cli/tests/test_registry.py,sha256=mTfgr6fkY5ygRnSgbVU7988QRQKdpEKUpWmQicGnHGs,9461
|
|
@@ -59,15 +66,21 @@ hud/cli/utils/runner.py,sha256=qZI1lFNZIFn6d919awUkMtjQ36TfhAvyqGRzQmkal8c,4269
|
|
|
59
66
|
hud/cli/utils/server.py,sha256=uSx2DjG5vX-PFoD8zNH-gBHbkTNSHveFSVdAfmp09Tc,7341
|
|
60
67
|
hud/clients/README.md,sha256=XNE3mch95ozDgVqfwCGcrhlHY9CwT1GKfNANNboowto,3826
|
|
61
68
|
hud/clients/__init__.py,sha256=bcPIa7dwH5ENsjh7CzjsJ84fm7Ma93NBc2lGfSjGAKM,328
|
|
62
|
-
hud/clients/base.py,sha256=
|
|
63
|
-
hud/clients/fastmcp.py,sha256=
|
|
64
|
-
hud/clients/mcp_use.py,sha256=
|
|
69
|
+
hud/clients/base.py,sha256=F8wq-UGoW1J_MguHq5w_Tcr0mJ4awSWbFOE8xP7sSDA,14129
|
|
70
|
+
hud/clients/fastmcp.py,sha256=KJGi8bmds0Q6rHnkTXb_Hw9ZqWmSo0OfjW05SSuyEJU,9182
|
|
71
|
+
hud/clients/mcp_use.py,sha256=tgvQ5MyY1cJeCR1M7dwYMfDmPnxOQuXPjZeKCr98CJc,11962
|
|
65
72
|
hud/clients/tests/__init__.py,sha256=sKOtJFFa4mDIXh1U6O8ZUHjigE8CiRMQ2PzJTIBZuVE,33
|
|
66
73
|
hud/clients/tests/test_client_integration.py,sha256=kohU6jfCNfwSnAushHeB1_CmDlRfQc7VBL0GEdJYSeI,4198
|
|
67
74
|
hud/clients/tests/test_fastmcp.py,sha256=4q3TzDjuieTZa89taiNJIrzbUncNkYOG4MaubypA21k,13030
|
|
68
75
|
hud/clients/tests/test_protocol.py,sha256=aK4CS4g3j1D5jPo83ykzZuHUvcZFAulYtIq9T9Hb_fQ,6640
|
|
69
76
|
hud/clients/utils/__init__.py,sha256=ucYJqOVpEsN-D9OFE2YTNLG628MgxcZAzfYhnbzx02k,32
|
|
70
|
-
hud/clients/utils/retry_transport.py,sha256
|
|
77
|
+
hud/clients/utils/retry_transport.py,sha256=Rsq25eiKKt_pM1bas78QEZvO0illK97X_3opmaS3A3w,6809
|
|
78
|
+
hud/datasets/__init__.py,sha256=74T4mrjELKtE04XkZKwU8QAJcg2wjqXLqRO9s4GlPr4,678
|
|
79
|
+
hud/datasets/task.py,sha256=V82HzRb2_c2MO9EG5ZcY-PMsLt3234Uks7WlkMta5HY,3615
|
|
80
|
+
hud/datasets/utils.py,sha256=3hKvZTkZuCRkTeITB86nNdA1dtHZAqFfAdSPMtcTUhs,4275
|
|
81
|
+
hud/datasets/execution/__init__.py,sha256=4m1AEpMQaUSJFVN_iAXvY6zFttVgZKwE6oQtC0Rrk7U,330
|
|
82
|
+
hud/datasets/execution/parallel.py,sha256=AxtbEgX1v9UFO3nHN91vQyhtfeU6oe65rV50ubDWBkg,22182
|
|
83
|
+
hud/datasets/execution/runner.py,sha256=EEvb90vvAqFXXx8NyVKLfK5p-gtsfJqiFJAoqSjyfXg,4695
|
|
71
84
|
hud/misc/__init__.py,sha256=m_pprQQ-G-Y0Sd0NEiR8MtAMbElnuFZ2OWT8TXrw7c4,43
|
|
72
85
|
hud/misc/claude_plays_pokemon.py,sha256=IthAkjDVr2Q-GNvX-QLJyMzN7-0pHqqJbagGNv2m7yo,10453
|
|
73
86
|
hud/otel/__init__.py,sha256=ii17ayoWiS5vAhA7UAmZ8TkmP52gs2pWyHsD46-uYbE,1003
|
|
@@ -75,14 +88,14 @@ hud/otel/collector.py,sha256=jLZymZ8r7xt2VDuWexfbnT7PY1-0aiyLMgjBy8KDY1M,4497
|
|
|
75
88
|
hud/otel/config.py,sha256=6np_C2UXhtKHHjY41HQxZElua2Eh_EUCBiRB_YuiSuc,6249
|
|
76
89
|
hud/otel/context.py,sha256=C9MvO99cRSNNDEDC7ehO3eoTPnb6J7AemUYvEp57yEU,17774
|
|
77
90
|
hud/otel/exporters.py,sha256=TP7SF6ySCP-gFV1i-u5-HbpYsK3n9GP3OjW_ZBfsj-w,14246
|
|
78
|
-
hud/otel/instrumentation.py,sha256=
|
|
91
|
+
hud/otel/instrumentation.py,sha256=xTjrkn2p490lJ8UlSD1SfzkPZsD8XKDocQqYQfwMMKo,3775
|
|
79
92
|
hud/otel/processors.py,sha256=yI5BWsDBMEPfwMzD-iWbJd4KWH3qUDSe-5-C1yT6fjU,4615
|
|
80
93
|
hud/otel/tests/__init__.py,sha256=VNJKBMaxTtbn7trW-1Ph50zCvCok_wTSGcI1HD6GOLA,43
|
|
81
94
|
hud/otel/tests/test_processors.py,sha256=np0R4ssd9j6LJSJykJ5bNjl0POwNYNhgb7BqOZHwcMY,6778
|
|
82
95
|
hud/server/__init__.py,sha256=8LUwgsXO8xiViWP7uImDwcOsWLu01r5F4r8U8qH3rSY,91
|
|
83
96
|
hud/server/context.py,sha256=6bCdSzv1FGyItu9472HbbYef279H7QuMGJDR8EtYg5Y,3210
|
|
84
97
|
hud/server/low_level.py,sha256=XYs2pOJ9kN4OcJ6ahDmXM5mWkzq5wJLpKFInUYrWEok,4701
|
|
85
|
-
hud/server/server.py,sha256=
|
|
98
|
+
hud/server/server.py,sha256=_Up01RQ989QnChXRl2ZfMDCbmkGIlX0-Rj_acrpGdEI,9775
|
|
86
99
|
hud/server/helper/__init__.py,sha256=ZxO8VP3RZEBBp-q65VixuhzQgqEPSVzW0hEY9J9QqDA,116
|
|
87
100
|
hud/server/tests/__init__.py,sha256=eEYYkxX5Hz9woXVOBJ2H2_CQoEih0vH6nRt3sH2Z8v8,49
|
|
88
101
|
hud/shared/__init__.py,sha256=IPxPCqtPLguryN-nBq78Sakypw2bRiE2iHv3SXG8YRk,139
|
|
@@ -134,7 +147,7 @@ hud/tools/tests/test_tools_init.py,sha256=qbUCNWbswlkbsSJR-CBnRk_h_l1CLasRffIhp8
|
|
|
134
147
|
hud/tools/tests/test_utils.py,sha256=oYxEnLpSA5sEeYFGUTj74QRNv0AHP3AjmYYHXgIW0BY,5496
|
|
135
148
|
hud/utils/__init__.py,sha256=ckuIzwqgTxkzASa04XTPsOu_TqsRYUKBWUYfcSi3Xnc,164
|
|
136
149
|
hud/utils/async_utils.py,sha256=5cKrJcnaHV2eJNxeyx0r7fPcdPTDBK7kM9-nLaF51X4,2409
|
|
137
|
-
hud/utils/design.py,sha256=
|
|
150
|
+
hud/utils/design.py,sha256=NCl31thhNeYyMSc0GaB0uNe5CIwcM6dONWzed8mI2jI,15052
|
|
138
151
|
hud/utils/mcp.py,sha256=uFn4qE2IIe-isV0mKQI2rlMDl6l0dHfovYgGa-vOfI8,2455
|
|
139
152
|
hud/utils/progress.py,sha256=suikwFM8sdSfkV10nAOEaInDhG4XKgOSvFePg4jSj1A,5927
|
|
140
153
|
hud/utils/telemetry.py,sha256=hrVIx2rUjSGyy9IVxTZ_3Jii83PiHjyFRd5ls2whimM,1863
|
|
@@ -144,10 +157,10 @@ hud/utils/tests/test_init.py,sha256=2QLQSGgyP9wJhOvPCusm_zjJad0qApOZi1BXpxcdHXQ,
|
|
|
144
157
|
hud/utils/tests/test_mcp.py,sha256=0pUa16mL-bqbZDXp5NHBnt1gO5o10BOg7zTMHZ1DNPM,4023
|
|
145
158
|
hud/utils/tests/test_progress.py,sha256=QSF7Kpi03Ff_l3mAeqW9qs1nhK50j9vBiSobZq7T4f4,7394
|
|
146
159
|
hud/utils/tests/test_telemetry.py,sha256=5jl7bEx8C8b-FfFUko5pf4UY-mPOR-9HaeL98dGtVHM,2781
|
|
147
|
-
hud/utils/tests/test_version.py,sha256=
|
|
160
|
+
hud/utils/tests/test_version.py,sha256=M21hhb0gKclB4LA6y_X7tX7vrZqXbiSo91NgKX0wug4,160
|
|
148
161
|
hud/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
149
|
-
hud_python-0.4.
|
|
150
|
-
hud_python-0.4.
|
|
151
|
-
hud_python-0.4.
|
|
152
|
-
hud_python-0.4.
|
|
153
|
-
hud_python-0.4.
|
|
162
|
+
hud_python-0.4.16.dist-info/METADATA,sha256=0tx5JSLCozbv8youtq3Cp-HuDe0OMHoRA2afl5RrU28,20287
|
|
163
|
+
hud_python-0.4.16.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
164
|
+
hud_python-0.4.16.dist-info/entry_points.txt,sha256=jJbodNFg1m0-CDofe5AHvB4zKBq7sSdP97-ohaQ3ae4,63
|
|
165
|
+
hud_python-0.4.16.dist-info/licenses/LICENSE,sha256=yIzBheVUf86FC1bztAcr7RYWWNxyd3B-UJQ3uddg1HA,1078
|
|
166
|
+
hud_python-0.4.16.dist-info/RECORD,,
|