fast-jev-compaction: плагин для Claude Code для быстрой компакции данных
fast-jev-compaction — плагин для Claude Code, который заменяет сводку компакции решениями Jev и позволяет быстро обрабатывать результаты инструментов.
Проект решает проблему потери важной информации при традиционной компакции, где старые обращения к инструментам и их результаты могут быть изменены или потеряны. Этот плагин сохраняет все пользовательские и ассистентские сообщения в неизменном виде, просто удаляя устаревшие данные. Это полезно для разработчиков, которые хотят минимизировать шум в диалогах с LLM, сохраняя при этом все нужные детали.
Проект написан на JavaScript и доступен как npm-пакет и встроенный плагин для Claude Code. Как и в случае с любым проектом, у которого есть свои особенности, имей в виду, что он может не подойти для всех случаев, и поддержка ограничивается работой с Jev. Запуск осуществляется через npm, однако подробности по интеграции и настройке лучше уточнить в документации.
Проект fast-jev-compaction представляет собой плагин для Claude Code, который заменяет стандартное резюме компактации на решения от Jev. Он направлен на оптимизацию обработки старых сообщений в диалогах с помощью LLM, сохраняя актуальные вызовы инструментов и результаты, которые действительно нужны, без потери важной информации.
В отличие от традиционных методов, которые общие и могут терять детали, такие как пути к файлам или точные ошибки, этот плагин исключает ненужные данные, базируясь на рекомендациях Jev, который видит весь диалог и принимает решения о том, что можно удалить. Это позволяет сохранить лишь те сообщения, которые важны в контексте текущего обсуждения, сохраняя их в оригинальном виде.
Как это работает
Основные принципы работы плагина следующие:
- Каждый
tool_useсоответствует своемуtool_resultпоtool_use_id. Вызовы из первых сообщений или из последнихpreserveRecentMessagesсообщений остаются неизменными. - К Jev отправляется полное состояние разговора, где каждый инструмент заменён краткой заметкой, а сами тексты представлены без потерь.
- Чтобы вписаться в ограничения по количеству токенов, слишком длинные сообщения обрезаются, а старые и незащищённые сообщения сворачиваются в краткие заметки.
- Для каждого вызова без пиннинга Jev задаёт два вопроса: оставлять ли вызов и сохранять ли результат в оригинальном виде.
- Ответы от Jev собираются и обрабатываются, принимая во внимание максимальное количество токенов для запросов.
Установка и использование
Чтобы установить плагин, нужно выполнить следующие команды:
npm install fast-jev-compaction
export TYPESAFE_API_KEY=...
Пример использования в коде:
import { compactMessages, reductionRatio, type Message } from 'fast-jev-compaction';
const transcript: Message[] = [
{ role: 'user', text: 'Fix the failing test. Never edit src/generated.', toolUses: [] },
{
role: 'assistant',
text: '',
toolUses: [{ tool_use_id: 'toolu_1', tool: 'Read', input: { file_path: 'src/a.ts' } }],
},
];
const result = await compactMessages(transcript, { preserveRecentMessages: 4 });
console.log(result.messages, result.decisions, result.stats);
if (reductionRatio(result) < 0.25) {
// not worth it: keep the original transcript, or summarize instead
}
Плагин также предоставляет возможность использовать собственный транспорт для взаимодействия с Jev, что позволяет настраивать логику работы с запросами.
Ограничения
- Возможности функции ограничены только вызовами инструментов и их результатами; текстовые сообщения не удаляются и не сокращаются в результирующем выводе.
- Размеры токенов оцениваются лишь по количеству символов, что может привести к неточностям.
- Несмотря на Калибровку, вероятность не гарантирует, что результат безопасен для удаления: функция может всегда повторно запустить инструмент.
Этот проект удобен для тех, кто хочет сохранить диалоги на высоком уровне и избежать потерь важной информации при компактации сообщений, предоставляя более точный контроль за процессом удаления ненужных данных.
Радар проекта: 51 из 100 — рабочий, но с оговорками
- Импульс 91 ≈ 121 звезда в день
- Темп разработки 50 16 коммитов за 12 недель
- Зрелость 15 проекту 56 дней, релизов нет
- Сообщество 48 2 участника, 581 форк
- Свежесть 69 последний коммит — 2 месяца назад
- Быстрый старт 40 есть: команда установки, примеры
- Готовность к продакшену 30 тесты
- Безопасность и доверие 40 лицензия MIT
- Документация 77 README 8.7 тыс. знаков, 10 разделов
- Экосистема 53 14 подписчиков на обновления, 0 тем
Как считаем
Только открытые данные GitHub на 07.11.2026, без оценок нейросети. Каждая ось — от 0 до 100, итог — среднее.
- Импульс — звёзд в день: за время наших замеров, а пока их нет — за всю жизнь проекта; 200 в день — максимум.
- Темп разработки — коммитов за последние 12 недель; 300 — максимум. Пока GitHub не досчитал статистику, ось не учитывается.
- Зрелость — возраст проекта (3 года — максимум) и число релизов (30 — максимум), поровну.
- Сообщество — участников с коммитами (200 — максимум) и форков (5000 — максимум), поровну.
- Свежесть — дней с последнего коммита: сегодня — 100, полгода и больше или архив — 0.
- Быстрый старт — в README есть команда установки, раздел «быстрый старт» или примеры использования, в репозитории — Docker и папка примеров, у проекта есть сайт или демо.
- Готовность к продакшену — релизы, версия 1.0 и выше, автосборка (GitHub Actions), тесты, лицензия, журнал изменений.
- Безопасность и доверие — открытая лицензия (своя — половина балла), политика безопасности (SECURITY.md), проект организации, правила для участников, не в архиве.
- Документация — объём и структура README, папка docs или сайт, оценка «здоровья сообщества» GitHub.
- Экосистема — звёзды (50 тыс. — максимум), подписчики на обновления (1000 — максимум), темы репозитория.
Открыть на GitHub: tamaratran/fast-jev-compaction →
RepoRadar