by icesixgod (community) Claude Desktop, Claude Code, OpenCode, macOS, Linux, Windows, uv
Приватность-ориентированный просмотрщик траекторий локальных задач Codex.
Официальный open-source MCP-сервер от Grafana Labs. Позволяет LLM читать дашборды, выполнять PromQL/LogQL-запросы, получать алёрты и анализировать …
Плагин Codex и локальный MCP runtime для контекстно-ограниченной генерации и инспекции изображений.
MCP-сервер для взаимодействия LLM с Prometheus — запросы метрик и мониторинг из AI-агентов.
Позволяет чату напрямую диспетчеризовать и контролировать локальные Codex / DSH: не нужно вручную переносить промпты и …
codex plugin marketplace add icesixgod/codex-trajectory codex plugin add codex-trajectory@icesixgod
Читайте на русском.
Codex Trajectory — это плагин для Codex с учётом конфиденциальности, чьи инструменты MCP превращают локальные логи задач в журнал событий и интерактивную временную шкалу. Он отображает ходы, приблизительные шаги модели, сводки рассуждений, сообщения ассистента, время выполнения инструментов, субагентов, уплотнение, использование токенов и сбои, не изменяя исходные логи. Дополнительные элементы управления остановкой в реальном времени используют явно включённый петлевой путь CDP для приостановки активной цели и прерывания текущего хода напрямую; они никогда не отправляют последующее сообщение, не попадают в очередь управления, не удаляют рабочие деревья и не изменяют файлы задач.

Требования: Codex и uv на macOS, Linux или Windows.
codex plugin marketplace add icesixgod/codex-trajectory
codex plugin add codex-trajectory@icesixgod
Откройте новую задачу в Codex, чтобы загрузились установленные инструменты и навык. Затем спросите:
Покажи безопасную сводку траектории для этой задачи Codex.
Режим безопасной сводки установлен по умолчанию. Он возвращает имена событий, время, статус, использование токенов и ограниченные сводки, скрывая входные данные инструментов, выходные данные инструментов, метаданные исходных записей, абсолютные пути к логам, Git-репозитории, базовые инструкции и зашифрованные рассуждения.
Полные детали доступны по выбору через detailLevel: "full" или кнопку подтверждения в просмотрщике. Они раскрывают ограниченные детали записей в активном диалоге Codex, но по-прежнему никогда не возвращают базовые инструкции или зашифрованные рассуждения. Python-рантайм не имеет телеметрии и, если не включена дополнительная интеграция панели инструментов CDP, не выполняет сетевые запросы приложения; эта интеграция подключается только к выбранному пользователем петлевому порту отладки. Лаунчер uv может установить совместимую версию Python в соответствии с конфигурацией пользователя uv. См. PRIVACY.md.
| Инструмент | Назначение |
|---|---|
list_codex_sessions |
Выводит метаданные недавних задач без тел транскриптов. |
get_codex_trajectory |
Возвращает структурированные данные траектории для анализа. |
show_codex_trajectory |
Возвращает траекторию с интерактивным просмотрщиком MCP Apps. |
get_codex_trajectory и show_codex_trajectory принимают sessionId, maxRecords (50–1000), эксклюзивный курсор beforeRecord, includeArchived и detailLevel (summary или full). Опустите sessionId для последней задачи и опустите beforeRecord для её новейшего хвоста; передайте pagination.nextBeforeRecord для получения непосредственно предшествующей страницы.
Выходные данные используют schemaVersion: 1. Поддерживаются как устаревшие развёртывания, так и текущие пагинированные линии history_base. Перед объединением унаследованной истории проверяются пагинированные идентификаторы, границы байтов и последовательные порядковые номера; скопированный родительский контекст до subagent_history_start_ordinal субагента исключается из траектории дочернего элемента. Логи Codex не раскрывают границы шагов DeepSeek Harness напрямую, поэтому новый приблизительный шаг начинается, когда вывод модели возобновляется после одного или нескольких результатов инструментов. Неизвестные управляющие события игнорируются; повреждённые завершённые строки JSONL или UTF-8 сообщаются в warnings, в то время как незавершённый хвост JSON или UTF-8 допускается во время активной записи. См. справочник интерфейса.
По умолчанию журнал событий расширяет только последний загруженный ход. Если существует более ранняя страница, Загрузить более ранние записи добавляет следующую страницу из 500 записей в начало, удаляет дубликаты по стабильному индексу записей и сохраняет текущий вид журнала; повторяйте это действие, чтобы загрузить задачу полностью. Заголовок каждого хода отображает используемую модель, а также отдельные итоги по некэшированным входам, чтению из кэша и выходам, а вся сводная полоса — включая все три итога по токенам — сворачивает этот ход. Развёрнутый ход имеет собственный заголовок столбца, который остаётся закреплённым только пока записи этого хода находятся в поле зрения, поэтому свёрнутые ходы никогда не отделяют глобальный заголовок от описываемых им записей. Поскольку ход уже идентифицируется этим заголовком, строки записей показывают только приблизительный Шаг вместо повторения Ход/шаг. События и Содержимое используют компактные пропорциональные столбцы, чтобы все три столбца с токенами оставались видимыми без горизонтальной прокрутки; наведение на любое усечённое поле показывает его полное значение, а выбор записи раскрывает оба значения одновременно. Более ранние ходы и таблица деталей по токенам для каждого хода рендерятся лениво при открытии, сокращая нагрузку на DOM для больших задач. Поиск, фильтры по типу, выбор на временной шкале и прямой выбор записей автоматически раскрывают соответствующие свёрнутые ходы.
Нажмите Окно в реальном времени, чтобы оставить текущую задачу видимой без запуска отдельного приложения. Внутри Codex компонент использует поддерживаемое хостом представление fullscreen для заполнения боковой панели; закреплённый заголовок отображает совокупную разбивку токенов по всей задаче и текущий курсор хода/шага/записи, а оставшаяся высота представляет собой отдельно прокручиваемый поток событий с безопасной сводкой. Когда Codex записывает окна ограничения скорости, значок квоты в правом верхнем углу заголовка показывает оставшийся процент для каждого окна — обычно 5-часовое и недельное — с временем сброса в подсказке; значок скрывается, если эти данные недоступны. Однократная кнопка Стоп и необязательная защита от автоматической остановки требуют экспериментальной интеграции CDP через loopback. Они приостанавливают активную Цель через thread/goal/set, а затем вызывают turn/interrupt; стандартные поверхности Apps используют приватный помощник request_codex_task_stop, тогда как настроенный Браузер использует привязанную к сеансу конечную точку. Ни один из путей не отправляет последующее сообщение, не вызывает модель, не ожидает диалога подтверждения и не попадает в очередь управления. Защита отключена по умолчанию с порогом в 10% и останавливает задачу не более одного раза, пока отображаемый цикл квоты остаётся на уровне этого порога или ниже. Устаревший прогнозируемый ход перепривязывается один раз, а временные автоматические сбои повторяются с ограниченным откатом. Когда ход завершается, Остановлено меняется на Ожидание, а более поздний запущенный ход снова активирует ручную кнопку Стоп. Автоматическая защёлка намеренно сохраняется для последующих ходов — включая продолжения /goal — до тех пор, пока все отображаемые окна не восстановятся выше порога, не сбросится окно квоты или пользователь не изменит настройки защиты. Элементы управления отключаются с явным сообщением о настройке, если прямой CDP недоступен или если зритель переключается на задачу, отличную от той, которая его открыла.
Каждое событие отображает свой статус, продолжительность и разницу токенов на уровне записи в виде трёхстрочной разбивки по Итогу/Вводу/Выводу: Ввод разделяет некэшированный ввод и чтение из кэша, а Вывод — видимый вывод и рассуждения. Записи только с точкой без измеренного интервала показывают — вместо вводящего в заблуждение 0 мс; записи с реально измеренной нулевой продолжительностью остаются 0 мс. Самая новая запись остаётся внизу с автоматическим поведением следования за последней. Компактный прозрачный 32-кадровый талисман для майнинга полностью помещается в верхнем левом углу самой новой карточки и воспроизводит один цикл только при изменении идентификатора последней записи; неизменённые опросы оставляют его бездействующим, а настройки уменьшения движения отключают анимацию. Компонент никогда не запрашивает неподдерживаемый режим хоста pip. На обычной странице Chromium без моста отображения Codex он предпочитает встроенное в браузер видео «картинка в картинке» и отображает тот же сводный отчёт о квоте в правом верхнем углу; если этот API недоступен или отклонён во время выполнения, он возвращается к той же панели с полной высотой в текущей странице. Элементы управления остановкой не отображаются на неинтерактивной видео-поверхности; интерактивный запасной вариант внутри страницы включает их, если присутствует любой из поддерживаемых мостов остановки. Полные входные данные, вывод и необработанные метаданные остаются за пределами каждой активной поверхности. Окно проверяет изменения последовательно каждую секунду, приостанавливается при скрытии или после выхода и замедляется после ошибок. Его смонтированная боковая панель обновляется на месте, поэтому неизменённые опросы не воссоздают и не перемещают строку статуса. Вспомогательный инструмент обновления только для приложений сначала сравнивает непрозрачную ревизию происхождения; неизменённые задачи не переразбираются, а изменённые задачи возвращают только безопасный хвост из 50 записей. Стандартный вход всё ещё требует явного клика.
Встроенный просмотрщик имеет отключённую по умолчанию настройку «Автоматическая остановка и ярлык браузера в приложении». При включении его частный помощник остановки приложения и независимый локальный наблюдатель подключаются только к выбранному порту 127.0.0.1 протокола Chrome DevTools. Помощник предоставляет стандартной боковой панели приложений ту же последовательность фиксированного намерения Пауза цели плюс поворот/прерывание, что и страница браузера, включая одно повторное связывание устаревшего поворота; он принимает только ограниченные идентификаторы, ручной/автоматический источник, порог и локаль, но никогда произвольный текст подсказки. Наблюдатель также переживает перерисовки React в Codex и внедряет Просмотр траектории сразу после Полного доступа. Он обслуживает полный интерфейс траектории с токенизированного случайного порта обратной петли с тем же безопасным сводным режимом по умолчанию, выбором задачи, статистикой, деталями токенов, обзором времени, фильтрами, реестром, обновлением, постраничной навигацией, явным подтверждением полной детализации и элементами управления остановкой. Открытие или остановка никогда не изменяют композитор, не отправляют сообщение задачи, не вызывают модель и не создают управляющий поворот. Конечная точка браузера остаётся привязанной к сеансу и активному повороту, который её открыл; лёгкое чтение статуса сервера приложений поддерживает актуальность состояния Остановка/Бездействие без многократного материализации истории поворотов. Если активную цель невозможно приостановить, поворот не прерывается, и интерфейс сообщает об ограниченной ошибке. Отключение настройки удаляет внедрённый DOM, закрывает локальный сервер страницы и останавливает наблюдатель. Обновлённые среды выполнения MCP согласовывают опцию и безопасно заменяют проверенный старый наблюдатель. Настройки, пульс и блокировка наблюдателя остаются ограниченными односвязными обычными файлами в CODEX_HOME/codex-trajectory; журналы задач, черновики, вложения и значения темы остаются нетронутыми.
Протокол CDP должен быть уже включён при запуске приложения. Сначала полностью завершите работу ChatGPT/Codex. На macOS перезапустите его из Terminal с помощью:
open -a ChatGPT --args --remote-debugging-address=127.0.0.1 --remote-debugging-port=9222
Для сборки из Microsoft Store на Windows используйте PowerShell (имя установленного пакета или путь к исполняемому файлу могут отличаться в будущих сборках):
$codex = Get-AppxPackage -Name OpenAI.Codex
$exe = Join-Path $codex.InstallLocation 'app\ChatGPT.exe'
Start-Process -FilePath $exe -ArgumentList '--remote-debugging-address=127.0.0.1','--remote-debugging-port=9222'
Просмотрщик отображает эту команду, если выбранный порт недоступен. Отладочный порт может управлять страницей приложения, поэтому держите его привязанным к обратной петле, не открывайте его через туннель или адрес, отличный от обратной петли, и отключайте настройку, когда она не нужна. Это экспериментальная интеграция с текущим DOM Codex, а не документированный API панели инструментов плагина. Журналы сессий обрабатываются инкрементально. В памяти сохраняются только запрошенная страница записей и ограниченное состояние ходов/предупреждений/вызовов, в то время как совокупная статистика по-прежнему описывает полностью разобранную задачу. Объекты JSON должны быть однозначными и совместимыми: дублирующиеся ключи, неконечные числа, чрезмерно большие целые числа и полные строки размером более 16 МиБ отклоняются или фиксируются в отчётах. Повторяющиеся накопительные снимки токенов удаляются, частичные допустимые снимки сохраняют последние корректные счётчики, а неизменённые обзоры сессий кэшируются с использованием метаданных каждого файла линейки. Поиск ограничен обычными односсылочными файлами в настроенных корневых каталогах сессий; символические ссылки, жёсткие ссылки и селекторы сессий в виде путей отклоняются. Полные обновления представления начинаются с ограниченного хвоста в 500 записей вместо запроса максимальных 1000 записей, а более ранние страницы загружаются только по запросу.
uv sync --group dev
uv run ruff format --check .
uv run ruff check .
uv run mypy
uv run pytest --cov --cov-report=term-missing
В рантайме нет сторонних зависимостей Python. Разработка и тесты зафиксированы в uv.lock. См. CONTRIBUTING.md.
Части реализации реестра событий, временной шкалы, выбора и инспектора адаптированы из @deepseek-ai/dsh-client-ui-trajectory, авторские права (c) 2026 DeepSeek, под лицензией MIT. Полная лицензия вышестоящего проекта включена в LICENSES/DeepSeek-Harness.txt, дополнительные сведения содержатся в NOTICE.
Codex Trajectory — независимый проект и не связан с DeepSeek, а также не поддерживается им. Codex использует другой словарь сохраняемых событий, и в этом репозитории не содержится пакетов DeepSeek Harness, рантайма Cordis, рантайма React, пакета TanStack Virtual или пакета diff.
Дружественные ссылки