Skip to content

Manifest discovery

manifest_discovery

Installed resource providers for the common AXM tool resolver.

DeclarativeToolReference dataclass

Entry-point-compatible reference without a Python class per tool.

Source code in packages/axm/src/axm/tools/manifest_discovery.py
Python
@dataclass(frozen=True)
class DeclarativeToolReference:
    """Entry-point-compatible reference without a Python class per tool."""

    name: str
    value: str
    definition: DeclarativeToolDefinition
    group: str = _GROUP

    def load(self) -> DeclarativeTool:
        """Return an unbound adapter: discoverable headless, never ambient."""
        return DeclarativeTool(self.definition)
load()

Return an unbound adapter: discoverable headless, never ambient.

Source code in packages/axm/src/axm/tools/manifest_discovery.py
Python
def load(self) -> DeclarativeTool:
    """Return an unbound adapter: discoverable headless, never ambient."""
    return DeclarativeTool(self.definition)

declarative_tool_references()

Read ui/tools.json; missing resources warn, invalid contracts fail.

Source code in packages/axm/src/axm/tools/manifest_discovery.py
Python
def declarative_tool_references() -> dict[str, DeclarativeToolReference]:
    """Read ui/tools.json; missing resources warn, invalid contracts fail."""
    providers: set[str] = set()
    resolved: dict[str, DeclarativeToolReference] = {}
    for ep in importlib.metadata.entry_points(group=_GROUP):
        if ep.name in providers:
            raise ValueError(f"duplicate declarative provider: {ep.name}")
        providers.add(ep.name)
        manifest = _read_provider(ep)
        if manifest is None:
            continue
        for definition in manifest.tools:
            if definition.name in resolved:
                raise ValueError(f"duplicate declarative tool: {definition.name}")
            resolved[definition.name] = DeclarativeToolReference(
                definition.name,
                ep.value,
                definition,
            )
    return resolved