6 /10

agtop

https://github.com/ldegio/agtop
Нормально

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

Raw Markdown Прожарить ещё