@dev-sergeev/datalab-kit
A ready-to-use collection of Pi coding agent extensions
Package details
Install @dev-sergeev/datalab-kit from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@dev-sergeev/datalab-kit- Package
@dev-sergeev/datalab-kit- Version
0.1.7- Published
- Oct 20, 2026
- Downloads
- 869/mo · 77/wk
- Author
- dev-sergeev
- License
- MIT
- Types
- extension, skill
- Size
- 47.5 MB
- Dependencies
- 12 dependencies · 4 peers
Pi manifest JSON
{
"skills": [
"./skills"
],
"extensions": [
"./dist/extension.js",
"./node_modules/@narumitw/pi-plan-mode/dist/index.ts",
"./node_modules/@gotgenes/pi-permission-system/src/index.ts",
"./node_modules/@gotgenes/pi-subagents/src/index.ts",
"./node_modules/@juicesharp/rpiv-ask-user-question/index.ts",
"./node_modules/pi-powerline-footer/index.ts",
"./node_modules/@capdiem/pi-todo/index.min.js",
"./node_modules/pi-rewind/src/index.ts",
"./node_modules/@tifan/pi-recap/src/index.ts",
"./node_modules/@pi-plugins/elapsed/dist/index.mjs",
"./node_modules/pi-toggle-skills/toggle-skills.ts",
"./node_modules/@zigai/pi-mention-skill/src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
Datalab Kit
Готовый набор дополнений для Pi coding agent, опубликованный как @dev-sergeev/datalab-kit. История выпусков — в CHANGELOG.
Установка
Нужны Node.js ≥ 22.19 и установленный Pi строго 0.85.1. Peer-зависимости @earendil-works/pi-ai, @earendil-works/pi-coding-agent и @earendil-works/pi-tui закреплены на 0.85.1, без диапазонов версий, как в pi-gigachat 0.6.4. Это декларация совместимости npm, а не runtime-проверка: управляемый установщик Pi использует --legacy-peer-deps.
pi install npm:@dev-sergeev/datalab-kit
pi
После публикации первая команда устанавливает весь набор. До публикации можно проверить локальный архив:
npm ci --ignore-scripts --legacy-peer-deps
npm run build
npm pack
npm install --prefix /tmp/datalab-kit-local --legacy-peer-deps ./dev-sergeev-datalab-kit-0.1.7.tgz
pi install /tmp/datalab-kit-local/node_modules/@dev-sergeev/datalab-kit
Локальный архив сначала устанавливается через npm; Pi подключает полученный каталог пакета. В Pi 0.85.1 прямой путь к .tgz воспринимается как путь расширения, а не npm-архив.
Целевые системы — Linux и macOS; локальные интеграционные проверки выполнены на Linux. Проверка macOS включена в CI. Windows пока не заявляется.
Состав
| Пакет | Версия |
|---|---|
@dev-sergeev/pi-gigachat |
0.6.4 |
@juicesharp/rpiv-ask-user-question |
2.11.0 |
pi-powerline-footer |
0.17.2 |
@gotgenes/pi-permission-system |
33.0.5 |
@narumitw/pi-plan-mode |
0.58.3 |
@gotgenes/pi-subagents |
21.7.5 |
@capdiem/pi-todo |
0.3.2 |
pi-rewind |
0.5.0 |
@tifan/pi-recap |
0.4.7 |
@pi-plugins/elapsed |
0.1.1 |
pi-toggle-skills |
0.1.20 |
@zigai/pi-mention-skill |
0.10.4 |
Одиннадцать фиксированных компонентов включены в архив npm вместе с их зависимостями. GigaChat устанавливается отдельно с закреплением версии 0.6.4.
Datalab Kit загружает штатное расширение GigaChat 0.6.4 без изменения его кода. /gigachat открывает интерактивный мастер подключений, авторизации и выбора моделей из каталогов серверов; это не интерфейс настройки через аргументы. Сохранённые подключения и пользовательские настройки остаются под управлением upstream.
DataLab из окружения
Дополнительно Datalab Kit регистрирует отдельный провайдер с идентификатором и именем DataLab, только если обе переменные окружения процесса Pi — GIGACHAT_API_URL и JPY_API_TOKEN — непусты после удаления пробелов по краям. Если хотя бы одна отсутствует, пуста или содержит только пробелы, провайдер и его модели не появляются в /model.
Задайте окружение до запуска Pi, например:
export GIGACHAT_API_URL="https://your-server.example/v1"
export JPY_API_TOKEN="your-token"
pi
GIGACHAT_API_URL — корень API с необходимым серверу префиксом пути (например, /v1), но без /chat/completions: этот суффикс добавляет адаптер. JPY_API_TOKEN передаётся как Bearer-токен и не сохраняется в auth.json. Datalab Kit не загружает .env автоматически; после изменения окружения перезапустите Pi.
Модель в /model |
Model ID на сервере | Контекст | Максимальный вывод |
|---|---|---|---|
glm-5.2 [DataLab] |
glm-5.2 |
200000 токенов | 64000 токенов |
Qwen3.5-397b [DataLab] |
Qwen3.5-397b |
262144 токенов | 32768 токенов |
Этот фиксированный список не запрашивается у сервера. Регистрация не выбирает текущую модель и не меняет сохранённые defaults пользователя. При запуске нет HTTP-проверки сервера или пробной генерации; обычный запрос выполняется после обращения к модели, а ошибки сервера возвращаются пользователю. Штатный мастер /gigachat остаётся независимым от DataLab. Архитектурное решение — ADR 0003.
Значения по умолчанию
- Чтение файлов, просмотр каталогов и поиск разрешены в любых папках.
- Служебный
todoсоздаёт и обновляет список задач сессии без подтверждения. - Читающие цепочки вроде
grep foo *.ts | head, регулярные выражения, комментарии, чтение через<, объединение stderr со stdout и вывод в/dev/nullне требуют подтверждения. У команд с изменяющими опциями шаблоны файлов разрешаются с фиксированным префиксом пути или после--, когда это исключает внедрение опций из имён файлов. - Изменения через
write,edit,npm install,git commitтребуют подтверждения. rm,hadoop,hdfs, неизвестные команды и любой удалённыйcurlтребуют подтверждения.curlкlocalhost,127.0.0.1и::1разрешён только для GET/HEAD. Для автоматически разрешённых запросов отключаются.curlrcи прокси; перенаправления, вывод в файл и изменяющие запросы требуют подтверждения.- Составная команда проверяется целиком.
cat a > bиfind . -deleteтребуют подтверждения. Неизвестный синтаксис также требует подтверждения. - Подтверждения показывает штатный диалог
@gotgenes/pi-permission-system: разрешение одного запуска или на сессию, отказ и отказ с причиной. Настройки клавиш и повторного нажатия управляются самим расширением; собственного диалога Datalab Kit нет. - Одновременно работает один субагент. Инструмент
subagentпринимает одну задачу за вызов.
Уже заданные пользователем настройки имеют приоритет над значениями Datalab Kit, включая разрешения, настройки штатного диалога и число субагентов. Штатные подключения GigaChat управляются upstream; дополнительный DataLab не меняет выбор модели и defaults. Значения разрешений и числа субагентов действуют в памяти. Настройки разрешений остаются в штатных extensions/pi-permission-system/config.json внутри каталога агента и .pi/extensions/pi-permission-system/config.json внутри проекта. Субагенты используют <agentDir>/subagents.json и <project>/.pi/subagents.json.
В Plan mode допустимые инструменты и команды проверяет pi-plan-mode без дополнительных подтверждений по правилам набора. Явные пользовательские ask и deny продолжают действовать; некорректная конфигурация разрешений также не обходится. После выхода из Plan mode или перехода к реализации правила набора снова действуют. Это поведение сохраняется при восстановлении сессии и смене ветки. Plan mode допускает некоторые тесты и проверки, которые могут создавать артефакты.
Recap, время работы и навыки
/recap показывает краткое резюме сессии над редактором. По умолчанию используется текущая модель основной сессии; смена через /model учитывается при следующем запросе recap. Явный выбор через /recap config имеет приоритет. Пункт Use default возвращает наследование модели сессии сразу, без /reload. Проверить выбор можно через /recap status. Datalab Kit не создаёт и не дополняет <agentDir>/extensions/pi-recap.json; уже сохранённые настройки, включая Qwen от прежней версии набора, не очищаются автоматически. Если текущей модели или её авторизации нет, recap не переключается на другую модель.
Таймаут запроса recap — 60 секунд; задержка автоматического резюме после бездействия — 2 минуты. Recap не наследует thinking основной сессии и не передаёт уровень reasoning: для GigaChat это означает off, не меняя режим основного чата. Явные параметры тела запроса провайдера могут переопределить это поведение. Для других провайдеров и моделей отключение reasoning зависит от возможностей их адаптеров. GIGACHAT_TIMEOUT не переопределяет явно переданный recap лимит.
elapsed показывает время полного запроса в индикаторе Working..., включая все шаги агента и вызовы инструментов. Счётчик обнуляется для следующего запроса и исчезает после завершения. Работает только в TUI, не заменяет powerline footer и не требует настройки.
/toggle-skills управляет видимостью навыков для модели. Изменения сохраняются в disable-model-invocation внутри SKILL.md; после сохранения выполните /reload. Общие навыки в ~/.agents/skills изменяются и для других агентов, учитывающих этот флаг. Расширение сканирует стандартные каталоги навыков; навыки из npm-пакетов и произвольных путей настроек не перечисляются.
Введите $ для выбора навыка через pi-mention-skill. Скрытый от модели навык остаётся доступен через явное $имя-навыка. По умолчанию /skill:* скрываются из slash autocomplete; настройки самого расширения сохраняют приоритет над штатными значениями.
Встроенные навыки
После глобальной установки Datalab Kit навыки init и skill-creator доступны в Pi из любого каталога, без установки набора в каждый проект. В уже открытой сессии выполните /reload. Навыки поставляются внутри npm-пакета; набор не копирует их в пользовательские каталоги навыков.
/init [уточнения]изучает текущий проект и создаёт или актуализируетAGENTS.md: реальные команды, структуру и правила работы. Существующие инструкции и пользовательские требования сохраняются. Команда не устанавливает и не настраивает Datalab Kit./skill-creator [задача]создаёт и обновляет навыки, помогает оценивать их относительно baseline, просматривать результаты и улучшать описание. Это адаптация skill-creator Anthropic под Pi: оценка и оптимизация запускают Pi с выбранной моделью, без Claude Code. Лицензия Apache-2.0 и сведения об адаптации включены в пакет.
Новые навыки по умолчанию сохраняются в <agentDir>/skills/<имя>/ (~/.pi/agent/skills/ при стандартной конфигурации, либо каталог из PI_CODING_AGENT_DIR). Явно указанный пользователем путь важнее. После создания нужен /reload или новая сессия.
Для Python-утилит skill-creator нужны Python 3.10+ и PyYAML в используемом Python-окружении. Для /init Python не требуется. Утилиты используют установленный pi из PATH либо исполняемый файл из PI_EXECUTABLE_PATH; для запросов нужны авторизация и доступ к выбранной модели Pi. Оценки и оптимизация выполняют дополнительные модельные запросы. Результаты и рабочие файлы сохраняются вне каталога установленного пакета.
Короткие команды доступны независимо от скрытия /skill:* в autocomplete; штатные /skill:init и /skill:skill-creator также сохраняются. Явное отключение навыков (--no-skills или фильтры ресурсов пакета) не обходится короткими командами. Скрытие от автоматического выбора модели не запрещает явный вызов.
YOLO
YOLO управляется штатным @gotgenes/pi-permission-system: откройте /permission-system → YOLO mode или задайте "yoloMode": true в конфигурации расширения. Собственные сессионные команды /yolo on|off|status, добавленные в 0.1.1, удалены в 0.1.2.
YOLO автоматически разрешает ask. Явные deny и ограничения Plan mode сохраняются.
Обновление и ограничение Pi 0.85.1
После первого запуска Pi:
pi update --extensions
GigaChat закреплён на 0.6.4 в зависимостях набора и отдельном источнике Pi npm:@dev-sergeev/pi-gigachat@0.6.4. pi update --extensions не переводит его на более новую версию из latest; для смены версии нужен новый релиз набора либо явное пользовательское переопределение источника. Обычный запуск Pi не обращается к реестру npm и не устанавливает обновления.
Особенность Pi 0.85.1: установщик перезаписывает список пакетов из своего кеша после npm postinstall. Поэтому при первом запуске Pi набор восстанавливает отдельную закреплённую запись GigaChat. Прежний незакреплённый источник npm:@dev-sergeev/pi-gigachat заменяется на npm:@dev-sergeev/pi-gigachat@0.6.4 с сохранением фильтров ресурсов. Подробнее: ADR.
Явно закреплённый пользователем источник GigaChat сохраняется. При удалении набора отдельная запись GigaChat остаётся; её можно удалить стандартным pi remove npm:@dev-sergeev/pi-gigachat. Установка с -l пока не проверена.
GigaChat загружается через штатную точку входа как внутри набора, так и через отдельную запись пакета. Для 0.6.4 настройка подключений и моделей выполняется интерактивным /gigachat; прежние утверждения о встроенных GLM/Qwen и автоматическом default gigachat/Qwen3.5-397b относились к 0.5.1 и к этой версии неприменимы. Datalab Kit не переписывает исходники GigaChat, не очищает авторизацию или сохранённые подключения. Дополнительный провайдер DataLab не меняет текущую модель или defaults. Модель recap настраивается независимо.
Разработка
python3 -m venv /tmp/datalab-kit-python
. /tmp/datalab-kit-python/bin/activate
python3 -m pip install PyYAML
npm ci --ignore-scripts --legacy-peer-deps
npm run build
npm run typecheck
npm test
python3 skills/skill-creator/scripts/quick_validate.py skills/init
python3 skills/skill-creator/scripts/quick_validate.py skills/skill-creator
build применяет проверяемые адаптации к локальным permission-system, plan-mode, subagents и recap перед упаковкой. Для recap адаптируются наследование модели сессии, подпись пункта Use default и таймаут 60 секунд; исходный конфиг пользователя не переписывается. Номера версий и единственность каждого места изменения проверяются; несовпадение завершает сборку с ошибкой. Устаревшие выходные модули удаляются. Адаптации не меняют глобально установленные пакеты. Интеграционный тест использует изолированный каталог агента и локальный реестр npm, устанавливает настоящий архив штатной командой Pi и проверяет штатное обновление.
Тесты запускаются последовательно с --liftoff-only, чтобы оптимизирующая компиляция WASM-парсера bash не исчерпывала память в ограниченной среде CI. Параметр относится к тестовому процессу; запуск пользователя не меняется.