17 lines
544 B
Python
17 lines
544 B
Python
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
|
|
def validate_tool_spec(spec: dict[str, Any]) -> None:
|
|
name = spec["name"]
|
|
target = spec["execution_target"]
|
|
|
|
if not (name.startswith("ui.") or name.startswith("srv.")):
|
|
raise ValueError("Tool name must be in ui.* or srv.* namespace")
|
|
|
|
if name.startswith("ui.") and target != "frontend":
|
|
raise ValueError("ui.* must use frontend target")
|
|
if name.startswith("srv.") and target != "backend":
|
|
raise ValueError("srv.* must use backend target")
|