Files

43 lines
1.1 KiB
Python

"""Robot helper: verify WrappedToolExecutor delegates to wrapped tool."""
from cleveragents.domain.models.core.tool import (
Tool,
ToolCapability,
ToolSource,
ToolType,
Validation,
ValidationMode,
)
from cleveragents.tool.wrapping import WrappedToolExecutor
tool = Tool(
name="local/run",
description="run",
source=ToolSource.BUILTIN,
capability=ToolCapability(read_only=True),
)
val = Validation(
name="local/check",
description="check",
source=ToolSource.WRAPPED,
tool_type=ToolType.VALIDATION,
mode=ValidationMode.REQUIRED,
wraps="local/run",
transform='def transform(x):\n return {"passed": True, "data": x}\n',
)
lookup = lambda n: tool if n == "local/run" else None # noqa: E731
called: list[str] = []
def executor_fn(n: str, a: dict) -> dict: # type: ignore[type-arg]
"""Record tool call and return output."""
called.append(n)
return {"result": "ok"}
ex = WrappedToolExecutor(lookup, executor_fn)
r = ex.execute(val, {"a": 1})
assert r["passed"] is True
assert "local/run" in called
print("OK")