Skip to content

symfonic.core.tools.registration

registration

Tool classification vocabulary and the per-tool registration record.

Split out of :mod:symfonic.core.tools.registry, which was 308 lines against the 300-line budget. The types here are the data a registry stores; ToolRegistry is the behaviour that stores it. Nothing here imports the registry, so the dependency runs one way.

SafetyLevel

Bases: str, Enum

Safety classification for tools.

ToolCategory

Bases: str, Enum

Categories for tool classification.

ToolRegistration dataclass

ToolRegistration(tool: BaseTool, category: ToolCategory = ToolCategory.CUSTOM, safety_level: SafetyLevel = SafetyLevel.RESTRICTED, max_calls_per_invocation: int | None = None, visible_to_agents: bool = True, cost_usd: float | None = None, requires: type | None = None)

Metadata for a registered tool.