Files
Jonathan Boniface a24a44e28c
Some checks failed
validation / verify (push) Failing after 10s
refactored: to utilise the google adk and production grade agent
2026-09-02 21:42:10 +01:00

65 lines
2.4 KiB
Python

"""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,
]