"""IEUM Tools - LangChain tools for AI agent integration.

These tools allow the AI agent to directly invoke IEUM functionality.
"""

# Basic tools (fetch, http, ripgrep, etc.)
from ieum.tools.basic import (
    fetch_url,
    http_request,
    python_repl,
    ripgrep,
    web_search,
)

# Interview tool (AskUserQuestion)
from ieum.tools.interview import ask_user_question

from ieum.tools.git_tools import (
    git_status_tool,
    git_diff_tool,
    git_commit_tool,
    generate_commit_message_tool,
)
from ieum.tools.ast_tools import (
    analyze_python_tool,
    analyze_cpp_tool,
    analyze_mfc_tool,
)
from ieum.tools.index_tools import (
    index_file_tool,
    search_symbols_tool,
)
from ieum.tools.review_tools import (
    review_code_tool,
    check_security_tool,
)
from ieum.tools.docs_tools import (
    generate_docstring_tool,
    generate_readme_tool,
    generate_api_docs_tool,
)
from ieum.tools.analysis_tools import (
    analyze_project,
    build_call_graph,
    analyze_dependencies,
    lsp_get_definition,
    lsp_find_references,
    lsp_get_hover,
    lsp_get_symbols,
    lsp_search_workspace,
    check_lsp_servers,
    ANALYSIS_TOOLS,
)

# All available tools
ALL_TOOLS = [
    # Interview tool
    ask_user_question,
    # Git tools
    git_status_tool,
    git_diff_tool,
    git_commit_tool,
    generate_commit_message_tool,
    # AST tools
    analyze_python_tool,
    analyze_cpp_tool,
    analyze_mfc_tool,
    # Index tools
    index_file_tool,
    search_symbols_tool,
    # Review tools
    review_code_tool,
    check_security_tool,
    # Docs tools
    generate_docstring_tool,
    generate_readme_tool,
    generate_api_docs_tool,
    # Analysis tools (Tree-sitter + LSP)
    analyze_project,
    build_call_graph,
    analyze_dependencies,
    lsp_get_definition,
    lsp_find_references,
    lsp_get_hover,
    lsp_get_symbols,
    lsp_search_workspace,
    check_lsp_servers,
]

__all__ = [
    "ALL_TOOLS",
    "ANALYSIS_TOOLS",
    # Interview
    "ask_user_question",
    # Basic
    "fetch_url",
    "http_request",
    "python_repl",
    "ripgrep",
    "web_search",
    # Git
    "git_status_tool",
    "git_diff_tool",
    "git_commit_tool",
    "generate_commit_message_tool",
    # AST
    "analyze_python_tool",
    "analyze_cpp_tool",
    "analyze_mfc_tool",
    # Index
    "index_file_tool",
    "search_symbols_tool",
    # Review
    "review_code_tool",
    "check_security_tool",
    # Docs
    "generate_docstring_tool",
    "generate_readme_tool",
    "generate_api_docs_tool",
    # Analysis (Tree-sitter + LSP)
    "analyze_project",
    "build_call_graph",
    "analyze_dependencies",
    "lsp_get_definition",
    "lsp_find_references",
    "lsp_get_hover",
    "lsp_get_symbols",
    "lsp_search_workspace",
    "check_lsp_servers",
]
