"""ADK FunctionTool Wrappers for GCP Solution Architecture Agent. Uses google.adk.tools.FunctionTool primitives. """ from typing import Any, Dict from app.adk.compat import FunctionTool from app.tools.mcp_developer_knowledge import ( developerknowledge_answer_query as _mcp_answer, developerknowledge_get_documents as _mcp_get, developerknowledge_search_documents as _mcp_search, ) from app.tools.validation_tools import ( validate_mermaid_diagram as _validate_mermaid, validate_repository_artifacts as _validate_repo, validate_terraform_syntax as _validate_terraform, ) # Convert validation functions to ADK FunctionTools mermaid_tool = FunctionTool.from_defaults( fn=_validate_mermaid.func if hasattr(_validate_mermaid, "func") else _validate_mermaid, name="validate_mermaid_diagram", description="Validates syntax and graph directives of a Mermaid diagram.", ) terraform_tool = FunctionTool.from_defaults( fn=_validate_terraform.func if hasattr(_validate_terraform, "func") else _validate_terraform, name="validate_terraform_syntax", description="Validates Terraform HCL basic structure and required Google Cloud resources.", ) repo_artifacts_tool = FunctionTool.from_defaults( fn=_validate_repo.func if hasattr(_validate_repo, "func") else _validate_repo, name="validate_repository_artifacts", description="Validates offline file existence and required section headings across repository artifacts.", ) # Convert Developer Knowledge MCP tools to ADK FunctionTools mcp_search_tool = FunctionTool.from_defaults( fn=_mcp_search.func if hasattr(_mcp_search, "func") else _mcp_search, name="developerknowledge_search_documents", description="Searches Google Cloud reference architecture, decision-making, and best-practice documents.", ) mcp_get_tool = FunctionTool.from_defaults( fn=_mcp_get.func if hasattr(_mcp_get, "func") else _mcp_get, name="developerknowledge_get_documents", description="Retrieves official Google Cloud document content and citations by URI.", ) mcp_answer_tool = FunctionTool.from_defaults( fn=_mcp_answer.func if hasattr(_mcp_answer, "func") else _mcp_answer, name="developerknowledge_answer_query", description="Answers architectural questions and checks GCP product release statuses and best practices.", ) ADK_TOOLS = [ mermaid_tool, terraform_tool, repo_artifacts_tool, mcp_search_tool, mcp_get_tool, mcp_answer_tool, ]