Класс: ComposerStateReader
Чтение установленных пакетов из composer.lock.
Namespace: DevCraft\Core\Composer
Путь: devcraft/src/classes/Composer/ComposerStateReader.php
installedPackages(): array — map vendor/package → { name, installedVersion, isInstalled, source }
Отсутствующий или пустой lock → пустой массив (без исключения).