""" Agent Tools module for Personal Coach CrewAI Application Contains specialized tools for each agent's functionality. Supports modular class-based tool containers. """ # from typing import TYPE_CHECKING, Dict, Any # # Version info # __version__ = "1.0.0" # # Lazy imports for type checking and IDE intellisense # if TYPE_CHECKING: # from .voice_tools import VoiceTools # from .llm_tools import LLMTools # from .knowledge_tools import KnowledgeTools # from .validation_tools import ValidationTools # # Public API: expose only main class-based containers & API # __all__ = [ # # Tool containers # "VoiceTools", # "LLMTools", # "KnowledgeTools", # "ValidationTools", # # Factory and utility functions # "create_tool_suite", # "get_tool_by_name", # "register_tools_with_crew", # # Constants # "SUPPORTED_LANGUAGES", # "TOOL_CATEGORIES" # ] # # Constants # SUPPORTED_LANGUAGES = [ # "en", "es", "fr", "de", "it", "pt", "ru", "zh", # "ja", "ko", "hi", "ar", "bn", "pa", "te", "mr", # "ta", "ur", "gu", "kn", "ml", "or" # ] # TOOL_CATEGORIES = { # "VOICE": ["speech_to_text", "text_to_speech", "language_detection"], # "LLM": ["generate_response", "generate_questions", "summarize", "paraphrase"], # "KNOWLEDGE": ["search_knowledge", "extract_wisdom", "find_practices"], # "VALIDATION": ["validate_response", "check_safety", "analyze_tone"] # } # # Factory: unified tool suite # def create_tool_suite(config) -> Dict[str, Any]: # """ # Create a complete suite of tools for all agents. # Args: # config: Configuration object # Returns: # dict: Dictionary of initialized tool containers # """ # from .voice_tools import VoiceTools # from .llm_tools import LLMTools # from .knowledge_tools import KnowledgeTools # from .validation_tools import ValidationTools # return { # "voice": VoiceTools(config), # "llm": LLMTools(config), # "knowledge": KnowledgeTools(config), # "validation": ValidationTools(config) # } # def get_tool_by_name(tool_name: str, config): # """ # Get a specific tool container by name. # Args: # tool_name: Name of the tool container ('voice', 'llm', 'knowledge', 'validation') # config: Configuration object # Returns: # Tool container class instance or None # """ # tool_mapping = { # "voice": lambda c: __import__("agents.tools.voice_tools", fromlist=["VoiceTools"]).VoiceTools(c), # "llm": lambda c: __import__("agents.tools.llm_tools", fromlist=["LLMTools"]).LLMTools(c), # "knowledge": lambda c: __import__("agents.tools.knowledge_tools", fromlist=["KnowledgeTools"]).KnowledgeTools(c), # "validation": lambda c: __import__("agents.tools.validation_tools", fromlist=["ValidationTools"]).ValidationTools(c), # } # tool_factory = tool_mapping.get(tool_name.lower()) # if tool_factory: # return tool_factory(config) # return None # # Tool registry for CrewAI (for UI/metadata/documentation) # def register_tools_with_crew(): # """ # Register all tools with CrewAI framework. # Returns a list of tool configurations for CrewAI. # """ # return [ # { # "name": "speech_to_text", # "description": "Convert speech in any language to text", # "category": "VOICE" # }, # { # "name": "text_to_speech", # "description": "Convert text to natural speech in multiple languages", # "category": "VOICE" # }, # { # "name": "search_knowledge", # "description": "Search through spiritual and self-help texts", # "category": "KNOWLEDGE" # }, # { # "name": "generate_response", # "description": "Generate empathetic and helpful responses", # "category": "LLM" # }, # { # "name": "validate_response", # "description": "Ensure response safety and appropriateness", # "category": "VALIDATION" # } # ] # # Initialization check for debug mode # import os # if os.getenv("DEBUG_MODE", "false").lower() == "true": # print(f"Agent Tools module v{__version__} initialized") # print(f"Supported languages: {len(SUPPORTED_LANGUAGES)}") # print(f"Tool categories: {list(TOOL_CATEGORIES.keys())}") from .voice_tools import VoiceTools from .llm_tools import LLMTools from .knowledge_tools import KnowledgeTools from .validation_tools import ValidationTools __all__ = [ "VoiceTools", "LLMTools", "KnowledgeTools", "ValidationTools" ]