forked from cleveragents/cleveragents-core
43 lines
1.1 KiB
Python
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")
|