# .importlinter — машинная защита границ слоёв (волна 0, задача 4).
#
# Запуск:  uv run --with import-linter lint-imports
#
# corekit — низ стека (L0): держит только stdlib. Ни один другой кит, ни
# внешний вендор (pydantic/httpx/cryptography/keyring) не должен просачиваться
# в его импорты — иначе низ стека начинает знать про верх, и "core" перестаёт
# быть тем, на что остальные киты могут опереться не оглядываясь.

[importlinter]
# include_external_packages нужен: forbidden_modules ниже перечисляет как
# другие киты (внешние относительно root_packages=corekit), так и настоящие
# третьи пакеты (pydantic/httpx/cryptography/keyring).
include_external_packages = True
root_packages =
    corekit
exclude_type_checking_imports = True

[importlinter:contract:corekit-is-floor]
name = corekit — низ стека, не знает ни про другие киты, ни про инфраструктуру
type = forbidden
source_modules =
    corekit
forbidden_modules =
    netkit
    librarykit
    clikit
    adapterkit
    browserkit
    accountpoolkit
    pydantic
    httpx
    cryptography
    keyring
