[importlinter]
root_package = mcp_tools_py
root_package_paths = src

[importlinter:contract:layers]
name = Layered Architecture
type = layers
layers =
    mcp_tools_py.main
    mcp_tools_py.server
    mcp_tools_py.checker_tools | mcp_tools_py.refactoring | mcp_tools_py.utility_tools | mcp_tools_py.inspect_library | mcp_tools_py.formatter
    mcp_tools_py.code_checker_pytest | mcp_tools_py.code_checker_pylint | mcp_tools_py.code_checker_mypy
    mcp_tools_py.utils
    mcp_tools_py.log_utils
ignore_imports =
    mcp_tools_py.checker_tools -> mcp_tools_py.server
    mcp_tools_py.formatter.formatter_tools -> mcp_tools_py.server
    mcp_tools_py.refactoring -> mcp_tools_py.server
    mcp_tools_py.utility_tools -> mcp_tools_py.server
    mcp_tools_py.inspect_library -> mcp_tools_py.server

[importlinter:contract:forbidden-imports]
name = Forbidden external imports
type = forbidden
source_modules =
    mcp_tools_py.utils
forbidden_modules =
    mcp_tools_py.code_checker_pytest
    mcp_tools_py.code_checker_pylint
    mcp_tools_py.code_checker_mypy
    mcp_tools_py.checker_tools
    mcp_tools_py.refactoring
    mcp_tools_py.utility_tools
    mcp_tools_py.inspect_library
    mcp_tools_py.formatter
    mcp_tools_py.server
