## Прожарка: 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, ✗ опровергнуто.*
