6
/10
Прожарка: agtop
Оценка: 6/10
Критично
- [✓ ФАКТ: Докер-Дед] Нет ни одного теста, ни CI, ни Dockerfile. Запускается только как
npx, а значит у пользователя нет гарантии, что код вообще стартует на его машине. - [⚠ МНЕНИЕ] Всё состояние живёт в
~/.cache/agtop/*.json, без блокировок файлов. Запустите два экземпляра – потеряете кеш или получите повреждённые JSON. - [⚠ МНЕНИЕ] Ручной парсинг вывода
ps auxиlsof(строки 1093-1134) ломается, если в пути к файлу встретится пробел или юникод. Это не просто «мелочь», а способ уронить весь UI.
Надо переделать
- [⚠ МНЕНИЕ] Кеш-папка создаётся синхронно при первом обращении, но если права доступа изменятся, исключение вылетит уже в рантайме и упадёт интерфейс. Делай
mkdirSyncсrecursive:trueи обрабатывай ошибки. - [⚠ МНЕНИЕ] Функция
sanitizeLine(index.js:878) — доморощенный экранизатор, но регулярка/[^a-zA-Z0-9 ]/gпропускает обратные кавычки и не покрывает Unicode. Либо используйstrip-ansi, либоhe.escape, либовалируй. - [⚠ МНЕНИЕ] Прайс-листы захардкожены в коде. При изменении цен придётся выпускать новую версию пакета. Вынеси в конфиг или тяни с litellm каждый запуск с защитой от падения по таймауту.
- [⚠ МНЕНИЕ] Скриншоты в repo весят 4,5 МБ – для CLI-утилиты это перебор. Публикуй релизы на GitHub и клади их в
assets, а не в исходники.
Мелочи
- [⚠ МНЕНИЕ] 56 файлов, но 42 – картинки. В
.npmignoreони не упомянуты, значит каждыйnpm iтащит их вnode_modules. - [⚠ МНЕНИЕ] В
package.jsonнет поляengines, поэтому пользователи на Node 14 получат синтаксическую ошибку наimport. - [⚠ МНЕНИЕ] UUID-регулярки дублируются (
UUID_RE,FULL_UUID_RE) – объедини. - [⚠ МНЕНИЕ] Нет
--helpи--version. Пользователь должен угадать, что утилита без параметров.
Что хорошо
- [⚠ МНЕНИЕ] Один самодостаточный файл без dependencies – ставится мгновенно и не тянет лес пакетов.
- [⚠ МНЕНИЕ] Читает сессии Codex и Claude из официальных директорий, не требует токенов и не лезет в приватные API.
- [⚠ МНЕНИЕ] Интерактивный TUI на
blessedс живым обновлением: сортировка, поиск, убийство процессов – приятнееwatch ps. - [⚠ МНЕНИЕ] Авторская идея: считать стоимость токенов прямо в терминале, где агенты работают.
- [⚠ МНЕНИЕ] Есть кеш цен и кеш расчёта стоимости, чтобы не гонять JSON-монструозный прайс-лист каждый раз.
- [⚠ МНЕНИЕ] Лицензия GPL-2.0, исходники открыты, ридми лаконичное, но срабатывает.
- [⚠ МНЕНИЕ] Скриншоты наглядно показывают, что делает инструмент – для CLI-утилиты это редкость.
Вердикт
Рабочий, но сырой инструмент: удобен сегодня, сломается завтра.
Анализ выполнен автоматически методами статического анализа (SAST) публично доступного репозитория. Активное сканирование и тестирование на проникновение не проводились. Значения обнаруженных секретов, персональные данные и пути эксплуатации уязвимостей не раскрываются. Цитирование кода — в соответствии со ст. 1274 ГК РФ. Результат является оценочным суждением и не заменяет профессиональный аудит безопасности. Пункты помечены: ✓ подтверждено линтером, ⚠ мнение AI, ✗ опровергнуто.