# Tach configuration for architectural boundaries
source_roots = ["src"]
exact = false
forbid_circular_dependencies = true

# Define layers
[[layers]]
name = "entry_point"

[[layers]]
name = "server"

[[layers]]
name = "tool_implementation"

[[layers]]
name = "utilities"

# Define architectural modules
[[modules]]
path = "mcp_tools_py.code_checker_pytest"
layer = "tool_implementation"
depends_on = [
    { path = "mcp_tools_py.utils" },
    { path = "mcp_tools_py.log_utils" }
]

[[modules]]
path = "mcp_tools_py.code_checker_pylint"
layer = "tool_implementation"
depends_on = [
    { path = "mcp_tools_py.utils" },
    { path = "mcp_tools_py.log_utils" }
]

[[modules]]
path = "mcp_tools_py.code_checker_mypy"
layer = "tool_implementation"
depends_on = [
    { path = "mcp_tools_py.utils" },
    { path = "mcp_tools_py.log_utils" }
]

[[modules]]
path = "mcp_tools_py.code_checker_vulture"
layer = "tool_implementation"
depends_on = [
    { path = "mcp_tools_py.utils" },
    { path = "mcp_tools_py.log_utils" }
]

[[modules]]
path = "mcp_tools_py.checker_tools"
layer = "tool_implementation"
depends_on = [
    { path = "mcp_tools_py.code_checker_pytest" },
    { path = "mcp_tools_py.code_checker_pylint" },
    { path = "mcp_tools_py.code_checker_mypy" },
    { path = "mcp_tools_py.code_checker_vulture" },
    { path = "mcp_tools_py.utils" },
    { path = "mcp_tools_py.log_utils" }
]

[[modules]]
path = "mcp_tools_py.refactoring"
layer = "tool_implementation"
depends_on = [
    { path = "mcp_tools_py.log_utils" },
    { path = "mcp_tools_py.utils" }
]

[[modules]]
path = "mcp_tools_py.utility_tools"
layer = "tool_implementation"
depends_on = [
    { path = "mcp_tools_py.log_utils" }
]

[[modules]]
path = "mcp_tools_py.inspect_library"
layer = "tool_implementation"
depends_on = [
    { path = "mcp_tools_py.log_utils" }
]

[[modules]]
path = "mcp_tools_py.formatter"
layer = "tool_implementation"
depends_on = [
    { path = "mcp_tools_py.utils" },
    { path = "mcp_tools_py.log_utils" }
]

[[modules]]
path = "mcp_tools_py.server"
layer = "server"
depends_on = [
    { path = "mcp_tools_py.checker_tools" },
    { path = "mcp_tools_py.formatter" },
    { path = "mcp_tools_py.refactoring" },
    { path = "mcp_tools_py.utility_tools" },
    { path = "mcp_tools_py.inspect_library" },
    { path = "mcp_tools_py.utils" },
    { path = "mcp_tools_py.log_utils" }
]

[[modules]]
path = "mcp_tools_py.main"
layer = "entry_point"
depends_on = [
    { path = "mcp_tools_py.server" }
]

[[modules]]
path = "mcp_tools_py.utils"
layer = "utilities"
depends_on = [
    { path = "mcp_tools_py.log_utils" }
]

[[modules]]
path = "mcp_tools_py.log_utils"
layer = "utilities"
depends_on = []