hud-python 0.4.34__py3-none-any.whl → 0.4.36__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/claude.py +9 -1
- hud/agents/openai.py +9 -1
- hud/agents/tests/test_claude.py +32 -7
- hud/agents/tests/test_openai.py +29 -6
- hud/cli/__init__.py +209 -75
- hud/cli/build.py +10 -5
- hud/cli/dev.py +20 -39
- hud/cli/eval.py +4 -3
- hud/cli/flows/tasks.py +1 -0
- hud/cli/init.py +222 -629
- hud/cli/pull.py +6 -0
- hud/cli/push.py +2 -1
- hud/cli/rl/remote_runner.py +3 -1
- hud/cli/tests/test_build.py +3 -27
- hud/cli/tests/test_mcp_server.py +1 -12
- hud/cli/utils/config.py +85 -0
- hud/cli/utils/docker.py +21 -39
- hud/cli/utils/environment.py +4 -3
- hud/cli/utils/interactive.py +2 -1
- hud/cli/utils/local_runner.py +204 -0
- hud/cli/utils/metadata.py +3 -1
- hud/cli/utils/package_runner.py +292 -0
- hud/cli/utils/remote_runner.py +4 -1
- hud/clients/mcp_use.py +30 -7
- hud/datasets/parallel.py +3 -1
- hud/datasets/runner.py +5 -2
- hud/otel/context.py +38 -4
- hud/rl/buffer.py +3 -0
- hud/rl/tests/test_learner.py +1 -1
- hud/server/server.py +157 -1
- hud/settings.py +38 -0
- hud/shared/hints.py +1 -1
- hud/utils/tests/test_version.py +1 -1
- hud/utils/tool_shorthand.py +7 -4
- hud/version.py +1 -1
- {hud_python-0.4.34.dist-info → hud_python-0.4.36.dist-info}/METADATA +30 -12
- {hud_python-0.4.34.dist-info → hud_python-0.4.36.dist-info}/RECORD +40 -37
- {hud_python-0.4.34.dist-info → hud_python-0.4.36.dist-info}/WHEEL +0 -0
- {hud_python-0.4.34.dist-info → hud_python-0.4.36.dist-info}/entry_points.txt +0 -0
- {hud_python-0.4.34.dist-info → hud_python-0.4.36.dist-info}/licenses/LICENSE +0 -0
hud/server/server.py
CHANGED
|
@@ -13,6 +13,7 @@ from typing import TYPE_CHECKING, Any
|
|
|
13
13
|
|
|
14
14
|
import anyio
|
|
15
15
|
from fastmcp.server.server import FastMCP, Transport
|
|
16
|
+
from starlette.responses import JSONResponse, Response
|
|
16
17
|
|
|
17
18
|
from hud.server.low_level import LowLevelServerWithInit
|
|
18
19
|
|
|
@@ -20,6 +21,7 @@ if TYPE_CHECKING:
|
|
|
20
21
|
from collections.abc import AsyncGenerator, Callable
|
|
21
22
|
|
|
22
23
|
from mcp.shared.context import RequestContext
|
|
24
|
+
from starlette.requests import Request
|
|
23
25
|
|
|
24
26
|
__all__ = ["MCPServer"]
|
|
25
27
|
|
|
@@ -163,7 +165,15 @@ class MCPServer(FastMCP):
|
|
|
163
165
|
# Redirect stdout to stderr during initialization to prevent
|
|
164
166
|
# any library prints from corrupting the MCP protocol
|
|
165
167
|
with contextlib.redirect_stdout(sys.stderr):
|
|
166
|
-
|
|
168
|
+
# Check if function accepts ctx parameter
|
|
169
|
+
import inspect
|
|
170
|
+
|
|
171
|
+
sig = inspect.signature(self._initializer_fn)
|
|
172
|
+
if "ctx" in sig.parameters:
|
|
173
|
+
return self._initializer_fn(ctx)
|
|
174
|
+
else:
|
|
175
|
+
# Call without ctx for simpler usage
|
|
176
|
+
return self._initializer_fn()
|
|
167
177
|
return None
|
|
168
178
|
|
|
169
179
|
# Save the old server's handlers before replacing it
|
|
@@ -233,6 +243,23 @@ class MCPServer(FastMCP):
|
|
|
233
243
|
|
|
234
244
|
_run_with_sigterm(_bootstrap)
|
|
235
245
|
|
|
246
|
+
async def run_async(
|
|
247
|
+
self,
|
|
248
|
+
transport: Transport | None = None,
|
|
249
|
+
show_banner: bool = True,
|
|
250
|
+
**transport_kwargs: Any,
|
|
251
|
+
) -> None:
|
|
252
|
+
"""Run the server with HUD enhancements."""
|
|
253
|
+
if transport is None:
|
|
254
|
+
transport = "stdio"
|
|
255
|
+
|
|
256
|
+
# Register HTTP helpers for HTTP transport
|
|
257
|
+
if transport in ("http", "sse"):
|
|
258
|
+
self._register_hud_helpers()
|
|
259
|
+
logger.info("Registered HUD helper endpoints at /hud/*")
|
|
260
|
+
|
|
261
|
+
await super().run_async(transport=transport, show_banner=show_banner, **transport_kwargs)
|
|
262
|
+
|
|
236
263
|
# Tool registration helper -- appends BaseTool to FastMCP
|
|
237
264
|
def add_tool(self, obj: Any, **kwargs: Any) -> None:
|
|
238
265
|
from hud.tools.base import BaseTool
|
|
@@ -242,3 +269,132 @@ class MCPServer(FastMCP):
|
|
|
242
269
|
return
|
|
243
270
|
|
|
244
271
|
super().add_tool(obj, **kwargs)
|
|
272
|
+
|
|
273
|
+
# Override to keep original callables when used as a decorator
|
|
274
|
+
def tool(self, name_or_fn: Any = None, **kwargs: Any) -> Any: # type: ignore[override]
|
|
275
|
+
"""Register a tool but return the original function in decorator form.
|
|
276
|
+
|
|
277
|
+
- Decorator usage (@mcp.tool, @mcp.tool("name"), @mcp.tool(name="name"))
|
|
278
|
+
registers with FastMCP and returns the original function for composition.
|
|
279
|
+
- Call-form (mcp.tool(fn, ...)) behaves the same but returns fn.
|
|
280
|
+
"""
|
|
281
|
+
# Accept BaseTool / FastMCP Tool instances or callables in call-form
|
|
282
|
+
if name_or_fn is not None and not isinstance(name_or_fn, str):
|
|
283
|
+
try:
|
|
284
|
+
from hud.tools.base import BaseTool # lazy import
|
|
285
|
+
except Exception:
|
|
286
|
+
BaseTool = tuple() # type: ignore[assignment]
|
|
287
|
+
try:
|
|
288
|
+
from fastmcp.tools.tool import Tool as _FastMcpTool
|
|
289
|
+
except Exception:
|
|
290
|
+
_FastMcpTool = tuple() # type: ignore[assignment]
|
|
291
|
+
|
|
292
|
+
# BaseTool instance → add underlying FunctionTool
|
|
293
|
+
if isinstance(name_or_fn, BaseTool):
|
|
294
|
+
super().add_tool(name_or_fn.mcp, **kwargs)
|
|
295
|
+
return name_or_fn
|
|
296
|
+
# FastMCP Tool/FunctionTool instance → add directly
|
|
297
|
+
if isinstance(name_or_fn, _FastMcpTool):
|
|
298
|
+
super().add_tool(name_or_fn, **kwargs)
|
|
299
|
+
return name_or_fn
|
|
300
|
+
# Callable function → register via FastMCP.tool and return original fn
|
|
301
|
+
if callable(name_or_fn):
|
|
302
|
+
super().tool(name_or_fn, **kwargs)
|
|
303
|
+
return name_or_fn
|
|
304
|
+
|
|
305
|
+
# Decorator form: get FastMCP's decorator, register, then return original fn
|
|
306
|
+
base_decorator = super().tool(name_or_fn, **kwargs)
|
|
307
|
+
|
|
308
|
+
def _wrapper(fn: Any) -> Any:
|
|
309
|
+
base_decorator(fn)
|
|
310
|
+
return fn
|
|
311
|
+
|
|
312
|
+
return _wrapper
|
|
313
|
+
|
|
314
|
+
def _register_hud_helpers(self) -> None:
|
|
315
|
+
"""Register HUD helper HTTP routes.
|
|
316
|
+
|
|
317
|
+
This adds:
|
|
318
|
+
- GET /hud - Overview of available endpoints
|
|
319
|
+
- GET /hud/tools - List all registered tools with their schemas
|
|
320
|
+
- GET /hud/resources - List all registered resources
|
|
321
|
+
- GET /hud/prompts - List all registered prompts
|
|
322
|
+
"""
|
|
323
|
+
|
|
324
|
+
@self.custom_route("/hud/tools", methods=["GET"])
|
|
325
|
+
async def list_tools(request: Request) -> Response:
|
|
326
|
+
"""List all registered tools with their names, descriptions, and schemas."""
|
|
327
|
+
tools = []
|
|
328
|
+
# _tools is a mapping of tool_name -> FunctionTool/Tool instance
|
|
329
|
+
for tool_key, tool in self._tool_manager._tools.items():
|
|
330
|
+
tool_data = {"name": tool_key}
|
|
331
|
+
try:
|
|
332
|
+
# Prefer converting to MCP model for consistent fields
|
|
333
|
+
mcp_tool = tool.to_mcp_tool()
|
|
334
|
+
tool_data["description"] = getattr(mcp_tool, "description", "")
|
|
335
|
+
if hasattr(mcp_tool, "inputSchema") and mcp_tool.inputSchema:
|
|
336
|
+
tool_data["input_schema"] = mcp_tool.inputSchema # type: ignore[assignment]
|
|
337
|
+
if hasattr(mcp_tool, "outputSchema") and mcp_tool.outputSchema:
|
|
338
|
+
tool_data["output_schema"] = mcp_tool.outputSchema # type: ignore[assignment]
|
|
339
|
+
except Exception:
|
|
340
|
+
# Fallback to direct attributes on FunctionTool
|
|
341
|
+
tool_data["description"] = getattr(tool, "description", "")
|
|
342
|
+
params = getattr(tool, "parameters", None)
|
|
343
|
+
if params:
|
|
344
|
+
tool_data["input_schema"] = params
|
|
345
|
+
tools.append(tool_data)
|
|
346
|
+
|
|
347
|
+
return JSONResponse({"server": self.name, "tools": tools, "count": len(tools)})
|
|
348
|
+
|
|
349
|
+
@self.custom_route("/hud/resources", methods=["GET"])
|
|
350
|
+
async def list_resources(request: Request) -> Response:
|
|
351
|
+
"""List all registered resources."""
|
|
352
|
+
resources = []
|
|
353
|
+
for resource_key, resource in self._resource_manager._resources.items():
|
|
354
|
+
resource_data = {
|
|
355
|
+
"uri": resource_key,
|
|
356
|
+
"name": resource.name,
|
|
357
|
+
"description": resource.description,
|
|
358
|
+
"mimeType": resource.mime_type,
|
|
359
|
+
}
|
|
360
|
+
resources.append(resource_data)
|
|
361
|
+
|
|
362
|
+
return JSONResponse(
|
|
363
|
+
{"server": self.name, "resources": resources, "count": len(resources)}
|
|
364
|
+
)
|
|
365
|
+
|
|
366
|
+
@self.custom_route("/hud/prompts", methods=["GET"])
|
|
367
|
+
async def list_prompts(request: Request) -> Response:
|
|
368
|
+
"""List all registered prompts."""
|
|
369
|
+
prompts = []
|
|
370
|
+
for prompt_key, prompt in self._prompt_manager._prompts.items():
|
|
371
|
+
prompt_data = {
|
|
372
|
+
"name": prompt_key,
|
|
373
|
+
"description": prompt.description,
|
|
374
|
+
}
|
|
375
|
+
# Check if it has arguments
|
|
376
|
+
if hasattr(prompt, "arguments") and prompt.arguments:
|
|
377
|
+
prompt_data["arguments"] = [
|
|
378
|
+
{"name": arg.name, "description": arg.description, "required": arg.required}
|
|
379
|
+
for arg in prompt.arguments
|
|
380
|
+
]
|
|
381
|
+
prompts.append(prompt_data)
|
|
382
|
+
|
|
383
|
+
return JSONResponse({"server": self.name, "prompts": prompts, "count": len(prompts)})
|
|
384
|
+
|
|
385
|
+
@self.custom_route("/hud", methods=["GET"])
|
|
386
|
+
async def hud_info(request: Request) -> Response:
|
|
387
|
+
"""Show available HUD helper endpoints."""
|
|
388
|
+
base_url = str(request.base_url).rstrip("/")
|
|
389
|
+
return JSONResponse(
|
|
390
|
+
{
|
|
391
|
+
"name": "HUD MCP Development Helpers",
|
|
392
|
+
"server": self.name,
|
|
393
|
+
"endpoints": {
|
|
394
|
+
"tools": f"{base_url}/hud/tools",
|
|
395
|
+
"resources": f"{base_url}/hud/resources",
|
|
396
|
+
"prompts": f"{base_url}/hud/prompts",
|
|
397
|
+
},
|
|
398
|
+
"description": "These endpoints help you inspect your MCP server during development.", # noqa: E501
|
|
399
|
+
}
|
|
400
|
+
)
|
hud/settings.py
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
3
5
|
from pydantic import Field
|
|
4
6
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
7
|
+
from pydantic_settings.sources import DotEnvSettingsSource, PydanticBaseSettingsSource
|
|
5
8
|
|
|
6
9
|
|
|
7
10
|
class Settings(BaseSettings):
|
|
@@ -14,6 +17,41 @@ class Settings(BaseSettings):
|
|
|
14
17
|
|
|
15
18
|
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="allow")
|
|
16
19
|
|
|
20
|
+
@classmethod
|
|
21
|
+
def settings_customise_sources(
|
|
22
|
+
cls,
|
|
23
|
+
settings_cls: type[BaseSettings],
|
|
24
|
+
init_settings: PydanticBaseSettingsSource,
|
|
25
|
+
env_settings: PydanticBaseSettingsSource,
|
|
26
|
+
dotenv_settings: PydanticBaseSettingsSource,
|
|
27
|
+
file_secret_settings: PydanticBaseSettingsSource,
|
|
28
|
+
) -> tuple[PydanticBaseSettingsSource, ...]:
|
|
29
|
+
"""
|
|
30
|
+
Customize settings source precedence to include a user-level env file.
|
|
31
|
+
|
|
32
|
+
Precedence (highest to lowest):
|
|
33
|
+
- init_settings (explicit kwargs)
|
|
34
|
+
- env_settings (process environment)
|
|
35
|
+
- dotenv_settings (project .env)
|
|
36
|
+
- user_dotenv_settings (~/.hud/.env) ← added
|
|
37
|
+
- file_secret_settings
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
user_env_path = Path.home() / ".hud" / ".env"
|
|
41
|
+
user_dotenv_settings = DotEnvSettingsSource(
|
|
42
|
+
settings_cls,
|
|
43
|
+
env_file=user_env_path,
|
|
44
|
+
env_file_encoding="utf-8",
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
return (
|
|
48
|
+
init_settings,
|
|
49
|
+
env_settings,
|
|
50
|
+
dotenv_settings,
|
|
51
|
+
user_dotenv_settings,
|
|
52
|
+
file_secret_settings,
|
|
53
|
+
)
|
|
54
|
+
|
|
17
55
|
hud_telemetry_url: str = Field(
|
|
18
56
|
default="https://telemetry.hud.so/v3/api",
|
|
19
57
|
description="Base URL for the HUD API",
|
hud/shared/hints.py
CHANGED
|
@@ -37,7 +37,7 @@ HUD_API_KEY_MISSING = Hint(
|
|
|
37
37
|
title="HUD API key required",
|
|
38
38
|
message="Missing or invalid HUD_API_KEY.",
|
|
39
39
|
tips=[
|
|
40
|
-
"Set HUD_API_KEY environment
|
|
40
|
+
"Set HUD_API_KEY in your environment or run: hud set HUD_API_KEY=your-key-here",
|
|
41
41
|
"Get a key at https://app.hud.so",
|
|
42
42
|
"Check for whitespace or truncation",
|
|
43
43
|
],
|
hud/utils/tests/test_version.py
CHANGED
hud/utils/tool_shorthand.py
CHANGED
|
@@ -10,7 +10,8 @@ def _is_call_like(obj: Any) -> bool:
|
|
|
10
10
|
return True
|
|
11
11
|
if len(obj) == 1:
|
|
12
12
|
_, v = next(iter(obj.items()))
|
|
13
|
-
|
|
13
|
+
if isinstance(v, dict):
|
|
14
|
+
return "name" in v or (len(v) == 1 and isinstance(next(iter(v.values())), dict))
|
|
14
15
|
return False
|
|
15
16
|
|
|
16
17
|
|
|
@@ -19,9 +20,9 @@ def _to_call_dict(obj: Any) -> Any:
|
|
|
19
20
|
|
|
20
21
|
Rules:
|
|
21
22
|
- If obj is a dict with {name, arguments}: return {name, arguments: recurse(arguments)}
|
|
22
|
-
- Else if obj is a single-key dict {k: v}: return {name: k, arguments: recurse(v)}
|
|
23
|
+
- Else if obj is a single-key dict {k: v} where v looks call-like: return {name: k, arguments: recurse(v)}
|
|
23
24
|
- Else: return obj unchanged (leaf arguments/value)
|
|
24
|
-
"""
|
|
25
|
+
""" # noqa: E501
|
|
25
26
|
if isinstance(obj, dict):
|
|
26
27
|
if "name" in obj and "arguments" in obj:
|
|
27
28
|
args = obj.get("arguments")
|
|
@@ -31,8 +32,10 @@ def _to_call_dict(obj: Any) -> Any:
|
|
|
31
32
|
return {"name": obj.get("name"), "arguments": args}
|
|
32
33
|
if len(obj) == 1:
|
|
33
34
|
k, v = next(iter(obj.items()))
|
|
34
|
-
if
|
|
35
|
+
# Only convert single-key dicts if the value looks like it could be a call
|
|
36
|
+
if isinstance(v, dict) and _is_call_like(v):
|
|
35
37
|
return {"name": k, "arguments": _to_call_dict(v)}
|
|
38
|
+
# Otherwise, leave it as-is (this is the innermost arguments dict)
|
|
36
39
|
return obj
|
|
37
40
|
return obj
|
|
38
41
|
|
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.36
|
|
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
|
|
@@ -40,7 +40,7 @@ Requires-Dist: datasets>=2.14.0
|
|
|
40
40
|
Requires-Dist: httpx<1,>=0.23.0
|
|
41
41
|
Requires-Dist: hud-fastmcp-python-sdk>=0.1.2
|
|
42
42
|
Requires-Dist: hud-mcp-python-sdk>=3.13.2
|
|
43
|
-
Requires-Dist: hud-mcp-use-python-sdk
|
|
43
|
+
Requires-Dist: hud-mcp-use-python-sdk==2.3.19
|
|
44
44
|
Requires-Dist: numpy>=1.24.0
|
|
45
45
|
Requires-Dist: openai
|
|
46
46
|
Requires-Dist: opentelemetry-api>=1.34.1
|
|
@@ -50,8 +50,8 @@ Requires-Dist: opentelemetry-sdk>=1.34.1
|
|
|
50
50
|
Requires-Dist: pathspec>=0.12.1
|
|
51
51
|
Requires-Dist: pillow>=11.1.0
|
|
52
52
|
Requires-Dist: prompt-toolkit==3.0.51
|
|
53
|
-
Requires-Dist: pydantic-settings<3,>=2
|
|
54
|
-
Requires-Dist: pydantic<3,>=2
|
|
53
|
+
Requires-Dist: pydantic-settings<3,>=2.2
|
|
54
|
+
Requires-Dist: pydantic<3,>=2.6
|
|
55
55
|
Requires-Dist: questionary==2.1.0
|
|
56
56
|
Requires-Dist: rich>=13.0.0
|
|
57
57
|
Requires-Dist: toml>=0.10.2
|
|
@@ -59,7 +59,9 @@ Requires-Dist: typer>=0.9.0
|
|
|
59
59
|
Requires-Dist: watchfiles>=0.21.0
|
|
60
60
|
Requires-Dist: wrapt>=1.14.0
|
|
61
61
|
Provides-Extra: agent
|
|
62
|
+
Requires-Dist: aiodocker>=0.24.0; extra == 'agent'
|
|
62
63
|
Requires-Dist: dotenv>=0.9.9; extra == 'agent'
|
|
64
|
+
Requires-Dist: inspect-ai>=0.3.80; extra == 'agent'
|
|
63
65
|
Requires-Dist: ipykernel; extra == 'agent'
|
|
64
66
|
Requires-Dist: ipython<9; extra == 'agent'
|
|
65
67
|
Requires-Dist: jupyter-client; extra == 'agent'
|
|
@@ -67,8 +69,21 @@ Requires-Dist: jupyter-core; extra == 'agent'
|
|
|
67
69
|
Requires-Dist: langchain; extra == 'agent'
|
|
68
70
|
Requires-Dist: langchain-anthropic; extra == 'agent'
|
|
69
71
|
Requires-Dist: langchain-openai; extra == 'agent'
|
|
72
|
+
Requires-Dist: pillow>=11.1.0; extra == 'agent'
|
|
73
|
+
Requires-Dist: playwright; extra == 'agent'
|
|
74
|
+
Requires-Dist: pyautogui>=0.9.54; extra == 'agent'
|
|
75
|
+
Requires-Dist: pyright==1.1.401; extra == 'agent'
|
|
76
|
+
Requires-Dist: pytest-asyncio; extra == 'agent'
|
|
77
|
+
Requires-Dist: pytest-cov; extra == 'agent'
|
|
78
|
+
Requires-Dist: pytest-mock; extra == 'agent'
|
|
79
|
+
Requires-Dist: pytest<9,>=8.1.1; extra == 'agent'
|
|
80
|
+
Requires-Dist: ruff>=0.11.8; extra == 'agent'
|
|
81
|
+
Requires-Dist: setuptools; extra == 'agent'
|
|
82
|
+
Requires-Dist: textdistance<5,>=4.5.0; extra == 'agent'
|
|
70
83
|
Provides-Extra: agents
|
|
84
|
+
Requires-Dist: aiodocker>=0.24.0; extra == 'agents'
|
|
71
85
|
Requires-Dist: dotenv>=0.9.9; extra == 'agents'
|
|
86
|
+
Requires-Dist: inspect-ai>=0.3.80; extra == 'agents'
|
|
72
87
|
Requires-Dist: ipykernel; extra == 'agents'
|
|
73
88
|
Requires-Dist: ipython<9; extra == 'agents'
|
|
74
89
|
Requires-Dist: jupyter-client; extra == 'agents'
|
|
@@ -76,6 +91,17 @@ Requires-Dist: jupyter-core; extra == 'agents'
|
|
|
76
91
|
Requires-Dist: langchain; extra == 'agents'
|
|
77
92
|
Requires-Dist: langchain-anthropic; extra == 'agents'
|
|
78
93
|
Requires-Dist: langchain-openai; extra == 'agents'
|
|
94
|
+
Requires-Dist: pillow>=11.1.0; extra == 'agents'
|
|
95
|
+
Requires-Dist: playwright; extra == 'agents'
|
|
96
|
+
Requires-Dist: pyautogui>=0.9.54; extra == 'agents'
|
|
97
|
+
Requires-Dist: pyright==1.1.401; extra == 'agents'
|
|
98
|
+
Requires-Dist: pytest-asyncio; extra == 'agents'
|
|
99
|
+
Requires-Dist: pytest-cov; extra == 'agents'
|
|
100
|
+
Requires-Dist: pytest-mock; extra == 'agents'
|
|
101
|
+
Requires-Dist: pytest<9,>=8.1.1; extra == 'agents'
|
|
102
|
+
Requires-Dist: ruff>=0.11.8; extra == 'agents'
|
|
103
|
+
Requires-Dist: setuptools; extra == 'agents'
|
|
104
|
+
Requires-Dist: textdistance<5,>=4.5.0; extra == 'agents'
|
|
79
105
|
Provides-Extra: dev
|
|
80
106
|
Requires-Dist: aiodocker>=0.24.0; extra == 'dev'
|
|
81
107
|
Requires-Dist: dotenv>=0.9.9; extra == 'dev'
|
|
@@ -100,14 +126,6 @@ Requires-Dist: setuptools; extra == 'dev'
|
|
|
100
126
|
Requires-Dist: textdistance<5,>=4.5.0; extra == 'dev'
|
|
101
127
|
Provides-Extra: rl
|
|
102
128
|
Requires-Dist: bitsandbytes>=0.41.0; (sys_platform == 'linux') and extra == 'rl'
|
|
103
|
-
Requires-Dist: dotenv>=0.9.9; extra == 'rl'
|
|
104
|
-
Requires-Dist: ipykernel; extra == 'rl'
|
|
105
|
-
Requires-Dist: ipython<9; extra == 'rl'
|
|
106
|
-
Requires-Dist: jupyter-client; extra == 'rl'
|
|
107
|
-
Requires-Dist: jupyter-core; extra == 'rl'
|
|
108
|
-
Requires-Dist: langchain; extra == 'rl'
|
|
109
|
-
Requires-Dist: langchain-anthropic; extra == 'rl'
|
|
110
|
-
Requires-Dist: langchain-openai; extra == 'rl'
|
|
111
129
|
Requires-Dist: liger-kernel>=0.5.0; (sys_platform == 'linux') and extra == 'rl'
|
|
112
130
|
Requires-Dist: peft>=0.17.1; extra == 'rl'
|
|
113
131
|
Requires-Dist: vllm==0.10.1.1; extra == 'rl'
|
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
hud/__init__.py,sha256=JMDFUE1pP0J1Xl_miBdt7ERvoffZmTzSFe8yxz512A8,552
|
|
2
2
|
hud/__main__.py,sha256=YR8Dq8OhINOsVfQ55PmRXXg4fEK84Rt_-rMtJ5rvhWo,145
|
|
3
|
-
hud/settings.py,sha256=
|
|
3
|
+
hud/settings.py,sha256=disObWa-DgXzoDcCDp3y1dTPaNsbR0IvoMJL9Eg4zyo,3947
|
|
4
4
|
hud/types.py,sha256=RtNM2fPU1NAujTmZLOydQIU-ybk3gVRCoJ2TM2hJOlw,10752
|
|
5
|
-
hud/version.py,sha256=
|
|
5
|
+
hud/version.py,sha256=QvD3Kxp6mTnvL6PRc-jWAfX1KqPy6dGRkOd3_bXmXhI,105
|
|
6
6
|
hud/agents/__init__.py,sha256=UoIkljWdbq4bM0LD-mSaw6w826EqdEjOk7r6glNYwYQ,286
|
|
7
7
|
hud/agents/base.py,sha256=_u1zR3gXzZ1RlTCUYdMcvgHqdJBC4-AB1lZt0yBx8lg,35406
|
|
8
|
-
hud/agents/claude.py,sha256=
|
|
8
|
+
hud/agents/claude.py,sha256=TGhm5gE2ltINDAdEsDxKuT9iGMQ5G87R6kmabU3KPt8,16101
|
|
9
9
|
hud/agents/grounded_openai.py,sha256=U-FHjB2Nh1_o0gmlxY5F17lWJ3oHsNRIB2a7z-IKB64,11231
|
|
10
10
|
hud/agents/langchain.py,sha256=1EgCy8jfjunsWxlPC5XfvfLS6_XZVrIF1ZjtHcrvhYw,9584
|
|
11
|
-
hud/agents/openai.py,sha256=
|
|
11
|
+
hud/agents/openai.py,sha256=O1xV1h1l-W8lmnmXqTYr5CwnmnaniMqOxAZbl2CTTng,14576
|
|
12
12
|
hud/agents/openai_chat_generic.py,sha256=7n7timn3fvNRnL2xzWyOTeNTchej2r9cAL1mU6YnFdY,11605
|
|
13
13
|
hud/agents/misc/__init__.py,sha256=BYi4Ytp9b_vycpZFXnr5Oyw6ncKLNNGml8Jrb7bWUb4,136
|
|
14
14
|
hud/agents/misc/response_agent.py,sha256=uMuRDkz5QgaMQliNzBRepond5sb7KyqIiKm3LstjVnw,3753
|
|
15
15
|
hud/agents/tests/__init__.py,sha256=W-O-_4i34d9TTyEHV-O_q1Ai1gLhzwDaaPo02_TWQIY,34
|
|
16
16
|
hud/agents/tests/test_base.py,sha256=bDznxQDv2ickRkw98joH9zfuZT6ItHbmWvQ67iboa4g,28733
|
|
17
|
-
hud/agents/tests/test_claude.py,sha256=
|
|
17
|
+
hud/agents/tests/test_claude.py,sha256=0nZnfsbGoECvsLPdmaRnc9jVmrehVvc3kxeyiCQI2Cc,13807
|
|
18
18
|
hud/agents/tests/test_client.py,sha256=uikgh6yhjPPX2RBU4XJQMz1mNox9uXjuwsP8t93id18,13337
|
|
19
19
|
hud/agents/tests/test_grounded_openai_agent.py,sha256=VK8lUvHIjWicMX00VKPE-FZyjiJqTEhb80MuRRa9fVc,5437
|
|
20
|
-
hud/agents/tests/test_openai.py,sha256=
|
|
21
|
-
hud/cli/__init__.py,sha256=
|
|
20
|
+
hud/agents/tests/test_openai.py,sha256=Npbdr0acgLExGLbrleXze-k3w9LHfmqzQjPk9TnjN68,7620
|
|
21
|
+
hud/cli/__init__.py,sha256=_bJymobNdf_fHqAjhoC1J5t7lJwo6WDj969SJIIXElo,44908
|
|
22
22
|
hud/cli/__main__.py,sha256=fDH7XITyuDITwSDIVwRso06aouADO0CzTHKqp5TOwJE,143
|
|
23
23
|
hud/cli/analyze.py,sha256=4u5oYfJMquOjT9PzzRTYVcTZDxDi0ilNP_g532_hpOU,14716
|
|
24
|
-
hud/cli/build.py,sha256=
|
|
24
|
+
hud/cli/build.py,sha256=Zpe9LxQJ3MhmWxpbyQaheEc16kjX87UApyvwG8yxZ00,18781
|
|
25
25
|
hud/cli/clone.py,sha256=AwVDIuhr8mHb1oT2Af2HrD25SiTdwATpE6zd93vzLgA,6099
|
|
26
26
|
hud/cli/debug.py,sha256=jtFW8J5F_3rhq1Hf1_SkJ7aLS3wjnyIs_LsC8k5cnzc,14200
|
|
27
|
-
hud/cli/dev.py,sha256=
|
|
28
|
-
hud/cli/eval.py,sha256=
|
|
27
|
+
hud/cli/dev.py,sha256=VXNFDQjdsn6SLNYyNM3SsQH_vJ9QdfZo3COugmGvuJk,30670
|
|
28
|
+
hud/cli/eval.py,sha256=Gyk-mJKRGeDBA_77hszsyHXcZDbDrWhW8pJZHwA3uQM,22795
|
|
29
29
|
hud/cli/get.py,sha256=sksKrdzBGZa7ZuSoQkc0haj-CvOGVSSikoVXeaUd3N4,6274
|
|
30
|
-
hud/cli/init.py,sha256=
|
|
30
|
+
hud/cli/init.py,sha256=xReks9TF77kjjQKFs2l7iJ3AHUqmhbRkFJokyPitzSY,9795
|
|
31
31
|
hud/cli/list_func.py,sha256=EVi2Vc3Lb3glBNJxFx4MPnZknZ4xmuJz1OFg_dc8a_E,7177
|
|
32
|
-
hud/cli/pull.py,sha256=
|
|
33
|
-
hud/cli/push.py,sha256=
|
|
32
|
+
hud/cli/pull.py,sha256=XGEZ8n60tbzLQP_8d9h7XYmzyCW0e2-Rkr3_tLG7jvw,12449
|
|
33
|
+
hud/cli/push.py,sha256=0CXTGq0A4sQvWabd_EIPstqrlX7h6NxxjMNlktFoSwY,18486
|
|
34
34
|
hud/cli/remove.py,sha256=8vGQyXDqgtjz85_vtusoIG8zurH4RHz6z8UMevQRYM4,6861
|
|
35
35
|
hud/cli/flows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
|
-
hud/cli/flows/tasks.py,sha256=
|
|
36
|
+
hud/cli/flows/tasks.py,sha256=1WICQwHc1b3x7IcQZaC42f5ko6F6SsQ9F8-WslAaAh8,9021
|
|
37
37
|
hud/cli/rl/__init__.py,sha256=BeqXdmzPwVBptz4j796XJRxSC5B_9tQta5aKd0jDMvo,5000
|
|
38
38
|
hud/cli/rl/config.py,sha256=iNhCxotM33OEiP9gqPvn8A_AxrBVe6fcFCQTvc13xzA,2884
|
|
39
39
|
hud/cli/rl/display.py,sha256=hqJVGmO9csYinladhZwjF-GMvppYWngxDHajTyIJ_gM,5214
|
|
@@ -41,13 +41,13 @@ hud/cli/rl/gpu.py,sha256=peXS-NdUF5RyuSs0aZoCzGLboneBUpCy8f9f99WMrG0,2009
|
|
|
41
41
|
hud/cli/rl/gpu_utils.py,sha256=H5ckPwgj5EVP3yJ5eVihR5R7Y6Gp6pt8ZUfWCCwcLG4,11072
|
|
42
42
|
hud/cli/rl/local_runner.py,sha256=GssmDgCxGfFsi31aFj22vwCiwa9ELllEwQjbActxSXY,21514
|
|
43
43
|
hud/cli/rl/presets.py,sha256=DzOO82xL5QyzdVtlX-Do1CODMvDz9ILMPapjU92jcZg,3051
|
|
44
|
-
hud/cli/rl/remote_runner.py,sha256=
|
|
44
|
+
hud/cli/rl/remote_runner.py,sha256=C2RrM4tgg-C1eNlW8QuRXWQ8bARIDFdWU1tGGJ4981E,13772
|
|
45
45
|
hud/cli/rl/rl_api.py,sha256=INJobvSa50ccR037u_GPsDa_9WboWyNwqEaoh9hcXj0,4306
|
|
46
46
|
hud/cli/rl/vllm.py,sha256=Gq_M6KsQArGz7FNIdemuM5mk16mu3xe8abpO2GCCuOE,6093
|
|
47
47
|
hud/cli/tests/__init__.py,sha256=ZrGVkmH7DHXGqOvjOSNGZeMYaFIRB2K8c6hwr8FPJ-8,68
|
|
48
48
|
hud/cli/tests/test_analyze.py,sha256=inbRvi7KJKoMYrcqXU6RSayoh7mAOGVrRknm6BLQFes,11055
|
|
49
49
|
hud/cli/tests/test_analyze_metadata.py,sha256=RtJ5PiOWu-AyOijLyZZwNfYazqwSMvtDS0krMMw0mak,9943
|
|
50
|
-
hud/cli/tests/test_build.py,sha256=
|
|
50
|
+
hud/cli/tests/test_build.py,sha256=YbI8ICGgV7sYwkoE_sUpcf-ItTAB-i6vYAqziML68Mg,13552
|
|
51
51
|
hud/cli/tests/test_cli_init.py,sha256=_H0bAn5_skJ91Zj8P5P_wtZoPWvrN7jMhPZvmnnf0n8,11289
|
|
52
52
|
hud/cli/tests/test_cli_main.py,sha256=0wMho9p9NcGjp0jLiUtCQh_FYdbMaCJtSY3sBbSgPwA,697
|
|
53
53
|
hud/cli/tests/test_clone.py,sha256=oC2mf-41QQVc7ODJkjrWbVPNMB2fDW3nZ6jY6w93gvQ,4458
|
|
@@ -55,20 +55,23 @@ hud/cli/tests/test_cursor.py,sha256=ZfxAFKJesJ3UV1JBoASSRlv6BXbpvVEk_pjxUg1jnf4,
|
|
|
55
55
|
hud/cli/tests/test_debug.py,sha256=bQ76d_0HJfthHBSECmGNv499ZE57CIOKsanMlNfNHGk,18036
|
|
56
56
|
hud/cli/tests/test_list_func.py,sha256=pkG4TtJJBMi9Xk8KBNFBlGcam7kwz01IRsjfQBL2PxM,10700
|
|
57
57
|
hud/cli/tests/test_main_module.py,sha256=6RhwCcdRSN2uQV6-adti40ZcLd3u-mPR1ai6wL64c6Y,1105
|
|
58
|
-
hud/cli/tests/test_mcp_server.py,sha256=
|
|
58
|
+
hud/cli/tests/test_mcp_server.py,sha256=37rlL4aTDl1rFmDJOaHerIiK2NfiDktWsqgzkD1ZXnQ,3921
|
|
59
59
|
hud/cli/tests/test_pull.py,sha256=ToSJrlfn13pYnrWWt3W_S7qFFjwvoZC2UisrZVrxujo,13155
|
|
60
60
|
hud/cli/tests/test_push.py,sha256=V71KP5gEDo7Z9ccFpjidBjYliFg_KCfnZoZYbBXjguE,12875
|
|
61
61
|
hud/cli/tests/test_registry.py,sha256=-o9MvQTcBElteqrg0XW8Bg59KrHCt88ZyPqeaAlyyTg,9539
|
|
62
62
|
hud/cli/tests/test_utils.py,sha256=_oa2lTvgqJxXe0Mtovxb8x-Sug-f6oJJKvG67r5pFtA,13474
|
|
63
63
|
hud/cli/utils/__init__.py,sha256=L6s0oNzY2LugGp9faodCPnjzM-ZUorUH05-HmYOq5hY,35
|
|
64
|
+
hud/cli/utils/config.py,sha256=AnsN6FEa8V3jg3EWaqUJN38-UuYC6tVZxPfBb_5LFBs,2652
|
|
64
65
|
hud/cli/utils/cursor.py,sha256=fy850p0rVp5k_1wwOCI7rK1SggbselJrywFInSQ2gio,3009
|
|
65
|
-
hud/cli/utils/docker.py,sha256
|
|
66
|
-
hud/cli/utils/environment.py,sha256=
|
|
67
|
-
hud/cli/utils/interactive.py,sha256=
|
|
66
|
+
hud/cli/utils/docker.py,sha256=oGVzPfp0Rn89o9d6tgSEziKy9GXFrYaWn_mjBmGRHe4,6326
|
|
67
|
+
hud/cli/utils/environment.py,sha256=EfATQyAz8Jybj4N9QNaaADUrpiZ2JMp2elQYnAG9gU8,4371
|
|
68
|
+
hud/cli/utils/interactive.py,sha256=sHhTjaImxlwlZ5_DTXb23Jwrjy5oJ7diB-8duhHbImU,16647
|
|
69
|
+
hud/cli/utils/local_runner.py,sha256=jnPFoJu3sCq65LSUapKCkakdlEuz__96oJU_FfOYtEg,6542
|
|
68
70
|
hud/cli/utils/logging.py,sha256=DyOWuzZUg6HeKCqfs6ufb703XS3bW4G2pzaXVAvDqvA,9018
|
|
69
|
-
hud/cli/utils/metadata.py,sha256=
|
|
71
|
+
hud/cli/utils/metadata.py,sha256=niAS6gcVel0j4ceL3L3IBuDpyNcNKGTwzW6320usToQ,7937
|
|
72
|
+
hud/cli/utils/package_runner.py,sha256=1TE_iahDFjPZ4GydhpD8K-bV8bHSzL4iY3uE42Cv7nQ,10149
|
|
70
73
|
hud/cli/utils/registry.py,sha256=p6IaWmhUbf0Yh6aGa3jIPoSFT2uJPTOVBLS0jpKDUqc,4376
|
|
71
|
-
hud/cli/utils/remote_runner.py,sha256=
|
|
74
|
+
hud/cli/utils/remote_runner.py,sha256=OOSJ6wU_gS_hJaURDfxZcyekjIIwPQKGN_Pq64tin3E,9505
|
|
72
75
|
hud/cli/utils/runner.py,sha256=7HxVGa6OTflQnO0FSuRs273wnAmbm7cFRU9RTGL3-Wo,4390
|
|
73
76
|
hud/cli/utils/server.py,sha256=EE5DJ0RAmXCEjMcZycpAsAxxCj6sOdIsXqPh38kK2ew,7416
|
|
74
77
|
hud/cli/utils/tasks.py,sha256=bpH2mQkfgKUpgh1J0NtVxMxcM1jDZk2GAAPQMcqAUz4,826
|
|
@@ -76,7 +79,7 @@ hud/clients/README.md,sha256=XNE3mch95ozDgVqfwCGcrhlHY9CwT1GKfNANNboowto,3826
|
|
|
76
79
|
hud/clients/__init__.py,sha256=N5M_gZv4nP7dLRwpAiaqqaxyaLieGW6397FszeG7JGw,364
|
|
77
80
|
hud/clients/base.py,sha256=Q4iJ78wxDYj_RTnj000ILetvhxZpGX2mubcfGzp3JYw,14207
|
|
78
81
|
hud/clients/fastmcp.py,sha256=KJGi8bmds0Q6rHnkTXb_Hw9ZqWmSo0OfjW05SSuyEJU,9182
|
|
79
|
-
hud/clients/mcp_use.py,sha256=
|
|
82
|
+
hud/clients/mcp_use.py,sha256=WE_99LxilPnfYo2yXsxQOl3Rt8eNyYuvvIycVzpUzk0,14627
|
|
80
83
|
hud/clients/tests/__init__.py,sha256=sKOtJFFa4mDIXh1U6O8ZUHjigE8CiRMQ2PzJTIBZuVE,33
|
|
81
84
|
hud/clients/tests/test_client_integration.py,sha256=kohU6jfCNfwSnAushHeB1_CmDlRfQc7VBL0GEdJYSeI,4198
|
|
82
85
|
hud/clients/tests/test_fastmcp.py,sha256=4q3TzDjuieTZa89taiNJIrzbUncNkYOG4MaubypA21k,13030
|
|
@@ -87,8 +90,8 @@ hud/clients/utils/mcp_use_retry.py,sha256=knsgOTR3YFXshmPFfPQE6K6C5GpR1ZBJe2J7oz
|
|
|
87
90
|
hud/clients/utils/retry.py,sha256=mMs2T_mAlb8AYhSqMR4AmCw7838gqCC4mdG3zjMAYM4,5744
|
|
88
91
|
hud/clients/utils/retry_transport.py,sha256=Rsq25eiKKt_pM1bas78QEZvO0illK97X_3opmaS3A3w,6809
|
|
89
92
|
hud/datasets/__init__.py,sha256=-g05iDy76CU4JiRHjKBBhgh3STtiIjmWhUfPqgf5hJE,697
|
|
90
|
-
hud/datasets/parallel.py,sha256=
|
|
91
|
-
hud/datasets/runner.py,sha256=
|
|
93
|
+
hud/datasets/parallel.py,sha256=j-Zk3-aqGHxiqqvt7zQBma9jrG-prd72iVMQ_aZgRvk,25908
|
|
94
|
+
hud/datasets/runner.py,sha256=1ajF7u7lGepIwvm4x0DwozJ2703KxYM52rAfH0oNB00,4884
|
|
92
95
|
hud/datasets/utils.py,sha256=hdZfjWH5l3FVJaWBSHEEpjujAG7DqEam_vHgslL8MLs,4279
|
|
93
96
|
hud/misc/__init__.py,sha256=m_pprQQ-G-Y0Sd0NEiR8MtAMbElnuFZ2OWT8TXrw7c4,43
|
|
94
97
|
hud/misc/claude_plays_pokemon.py,sha256=IthAkjDVr2Q-GNvX-QLJyMzN7-0pHqqJbagGNv2m7yo,10453
|
|
@@ -100,7 +103,7 @@ hud/native/tests/test_native_init.py,sha256=Z-2dinbQYEkrbCcfBrBOLGdpXtWWOtkfPzp7
|
|
|
100
103
|
hud/otel/__init__.py,sha256=ii17ayoWiS5vAhA7UAmZ8TkmP52gs2pWyHsD46-uYbE,1003
|
|
101
104
|
hud/otel/collector.py,sha256=jLZymZ8r7xt2VDuWexfbnT7PY1-0aiyLMgjBy8KDY1M,4497
|
|
102
105
|
hud/otel/config.py,sha256=mricuAmtFd1yIfOYKw2aHI-u4piku0GXHWv6hjsWQLM,6806
|
|
103
|
-
hud/otel/context.py,sha256=
|
|
106
|
+
hud/otel/context.py,sha256=q7YIBb95UDMJvir8ds--YLpjW5dpAilntCtwsMJdZro,19124
|
|
104
107
|
hud/otel/exporters.py,sha256=RLAjWa8b2DJEU21740Idq4fmeIuabLEqGGUspcFDcH4,14331
|
|
105
108
|
hud/otel/instrumentation.py,sha256=fsFG9W89RdewFDxWKN9Ft4GUb7WbIKpfucTc16WxaZU,5093
|
|
106
109
|
hud/otel/processors.py,sha256=-gGRbwifplcExDQBLfx_9tqWreDImULJNcENgO9q7VU,4700
|
|
@@ -109,7 +112,7 @@ hud/otel/tests/test_processors.py,sha256=np0R4ssd9j6LJSJykJ5bNjl0POwNYNhgb7BqOZH
|
|
|
109
112
|
hud/rl/README.md,sha256=uFRpNFaEY8paq9k1C4miF7AGnbqHTGAsPmpcf9JIEeA,1189
|
|
110
113
|
hud/rl/__init__.py,sha256=yYL7U1WV6L3mr3Hig48-4lhnryTaWj4nCXm4lG5vrYI,25
|
|
111
114
|
hud/rl/actor.py,sha256=n2f2BI9IOK__x7Seirq6EQI0yyicMBYd5BjPsc4T9rQ,6946
|
|
112
|
-
hud/rl/buffer.py,sha256=
|
|
115
|
+
hud/rl/buffer.py,sha256=z47HOjOBJx3umUzzUfdtq_N4ZoJ8FMBPkX8YQKBtd3A,15457
|
|
113
116
|
hud/rl/chat_template.jinja,sha256=XTdzI8oFGEcSA-exKxyHaprwRDmX5Am1KEb0VxvUc6U,4965
|
|
114
117
|
hud/rl/config.py,sha256=PAKYPCsKl8yg_j3gJSE5SJUgLM7j0lFy0K_Vt4-otDM,5384
|
|
115
118
|
hud/rl/distributed.py,sha256=8avhrb0lHYkhW22Z7MfkqSnlczWj5jMrUMEtkcoCf74,2473
|
|
@@ -119,19 +122,19 @@ hud/rl/types.py,sha256=lrLKo7iaqodYth2EyeuOQfLiuzXfYM2eJjPmpObrD7c,3965
|
|
|
119
122
|
hud/rl/utils.py,sha256=IsgVUUibxnUzb32a4mu1sYrgJC1CwoG9E-Dd5y5VDOA,19115
|
|
120
123
|
hud/rl/vllm_adapter.py,sha256=O2_TdTGIyNr9zRGhCw18XWjOKYzEM3049wvlyL2x0sc,4751
|
|
121
124
|
hud/rl/tests/__init__.py,sha256=PXmD3Gs6xOAwaYKb4HnwZERDjX05N1QF-aU6ya0dBtE,27
|
|
122
|
-
hud/rl/tests/test_learner.py,sha256=
|
|
125
|
+
hud/rl/tests/test_learner.py,sha256=LfTwB626gWurYfZv91wk8ASETBNqrLh9i_GCMP4CB3E,6834
|
|
123
126
|
hud/rl/utils/start_vllm_server.sh,sha256=ThPokrLK_Qm_uh916fHXXBfMlw1TC97P57-AEI5MuOc,910
|
|
124
127
|
hud/samples/__init__.py,sha256=wgcN1IOLHhR4C1fFKqyvA7Yl9lJhJFf34zfKs-UMSus,128
|
|
125
128
|
hud/samples/browser.py,sha256=7LkzGx2G5dA8RogZwORnxxpVsxMV2gF18D_hGJIEow8,973
|
|
126
129
|
hud/server/__init__.py,sha256=8LUwgsXO8xiViWP7uImDwcOsWLu01r5F4r8U8qH3rSY,91
|
|
127
130
|
hud/server/context.py,sha256=6bCdSzv1FGyItu9472HbbYef279H7QuMGJDR8EtYg5Y,3210
|
|
128
131
|
hud/server/low_level.py,sha256=XYs2pOJ9kN4OcJ6ahDmXM5mWkzq5wJLpKFInUYrWEok,4701
|
|
129
|
-
hud/server/server.py,sha256=
|
|
132
|
+
hud/server/server.py,sha256=oX6jPYhJecbCcAINb_VAcWDG3wVShfbqA0FlEKZXV0o,17187
|
|
130
133
|
hud/server/helper/__init__.py,sha256=ZxO8VP3RZEBBp-q65VixuhzQgqEPSVzW0hEY9J9QqDA,116
|
|
131
134
|
hud/server/tests/__init__.py,sha256=eEYYkxX5Hz9woXVOBJ2H2_CQoEih0vH6nRt3sH2Z8v8,49
|
|
132
135
|
hud/shared/__init__.py,sha256=IPxPCqtPLguryN-nBq78Sakypw2bRiE2iHv3SXG8YRk,139
|
|
133
136
|
hud/shared/exceptions.py,sha256=dhmt5KMciQ2fmV-yqXtTNO868k-WzuZae6w7dOk3M44,12144
|
|
134
|
-
hud/shared/hints.py,sha256=
|
|
137
|
+
hud/shared/hints.py,sha256=ToKC9Xb9f_tX3lEmb_4NsgXyYFX2agY8fy1ZekckOyY,5090
|
|
135
138
|
hud/shared/requests.py,sha256=HWrPp7nBSK4jhv9wqZdFiNrVaaxV0vWS8fcgGtoztBc,9479
|
|
136
139
|
hud/shared/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
137
140
|
hud/shared/tests/test_exceptions.py,sha256=bCKGqw2RwBmlGIMNpddzyfnWAOQwSIYB76r6iaBE2is,15761
|
|
@@ -194,17 +197,17 @@ hud/utils/pretty_errors.py,sha256=WGeL4CTHtlA6KgPuV_JSX5l6H4-xbuTp6Y6tw1bkiFg,24
|
|
|
194
197
|
hud/utils/progress.py,sha256=suikwFM8sdSfkV10nAOEaInDhG4XKgOSvFePg4jSj1A,5927
|
|
195
198
|
hud/utils/tasks.py,sha256=JwFIq0cpPMpMYnICUmx_G4CF6uy9MtiCmmmN7eA6FsA,4682
|
|
196
199
|
hud/utils/telemetry.py,sha256=hrVIx2rUjSGyy9IVxTZ_3Jii83PiHjyFRd5ls2whimM,1863
|
|
197
|
-
hud/utils/tool_shorthand.py,sha256=
|
|
200
|
+
hud/utils/tool_shorthand.py,sha256=_haLgK3yazLR2Y0jlEHUUQjw9uZCxi9yTipAwdOAJ70,2148
|
|
198
201
|
hud/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
199
202
|
hud/utils/tests/test_async_utils.py,sha256=RkdSnYErRV3Jn7dfg6CPlcE1RSUL__2B627oIqAyy1s,5945
|
|
200
203
|
hud/utils/tests/test_init.py,sha256=2QLQSGgyP9wJhOvPCusm_zjJad0qApOZi1BXpxcdHXQ,383
|
|
201
204
|
hud/utils/tests/test_mcp.py,sha256=0pUa16mL-bqbZDXp5NHBnt1gO5o10BOg7zTMHZ1DNPM,4023
|
|
202
205
|
hud/utils/tests/test_progress.py,sha256=QSF7Kpi03Ff_l3mAeqW9qs1nhK50j9vBiSobZq7T4f4,7394
|
|
203
206
|
hud/utils/tests/test_telemetry.py,sha256=5jl7bEx8C8b-FfFUko5pf4UY-mPOR-9HaeL98dGtVHM,2781
|
|
204
|
-
hud/utils/tests/test_version.py,sha256=
|
|
207
|
+
hud/utils/tests/test_version.py,sha256=zcyyaHUOoWsGplxJebBOV8TNKFX35RThsdSv-hSq8M0,160
|
|
205
208
|
hud/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
206
|
-
hud_python-0.4.
|
|
207
|
-
hud_python-0.4.
|
|
208
|
-
hud_python-0.4.
|
|
209
|
-
hud_python-0.4.
|
|
210
|
-
hud_python-0.4.
|
|
209
|
+
hud_python-0.4.36.dist-info/METADATA,sha256=OO8BzYshkq20xZDLCfeSAtftxClBSOtjRIv0_o2O9GA,21787
|
|
210
|
+
hud_python-0.4.36.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
211
|
+
hud_python-0.4.36.dist-info/entry_points.txt,sha256=jJbodNFg1m0-CDofe5AHvB4zKBq7sSdP97-ohaQ3ae4,63
|
|
212
|
+
hud_python-0.4.36.dist-info/licenses/LICENSE,sha256=yIzBheVUf86FC1bztAcr7RYWWNxyd3B-UJQ3uddg1HA,1078
|
|
213
|
+
hud_python-0.4.36.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|