CodePilot1C EDT
АктивныйПлагин CodePilot1C для 1C:EDT с локальным MCP host и широким набором инструментов для разработки. Встроенные инструменты охватывают BSL/EDT-семантику, метаданные, формы, DCS, QA-сценарии, Git, файловые операции и динамические MCP-инструменты. Установка идёт через сайт обновлений или offline ZIP, а для сборки нужен JDK 17 и Maven. Особенность: это полноценная агентная среда внутри EDT, а не только шлюз к одной базе.
MCP tools
Описание
Плагин CodePilot1C для 1C:EDT с локальным MCP host и широким набором инструментов для разработки. Встроенные инструменты охватывают BSL/EDT-семантику, метаданные, формы, DCS, QA-сценарии, Git, файловые операции и динамические MCP-инструменты. Установка идёт через сайт обновлений или offline ZIP, а для сборки нужен JDK 17 и Maven. Особенность: это полноценная агентная среда внутри EDT, а не только шлюз к одной базе.
README
CodePilot1C (EDT plugin)
Плагин для 1C:EDT на базе Eclipse RCP/OSGi (open source).
Актуальные артефакты
- Последний релиз:
v0.1.7.20260329-0855— https://github.com/ondysss/codepilot1c-edt/releases/tag/v0.1.7.20260329-0855 - Update site (GitHub Pages): https://ondysss.github.io/codepilot1c-edt/
- GitHub Packages (Maven, ZIP): https://github.com/ondysss/codepilot1c-edt/packages/2846572
- Telegram-канал: https://t.me/codepilot1c
- Группа поддержки: https://t.me/ai_1c_dev
Установка
Вариант A (рекомендуется): Update Site (GitHub Pages)
URL update site: https://ondysss.github.io/codepilot1c-edt/
- В 1C:EDT откройте
Справка -> Установить новое ПО...(Help -> Install New Software...). - Нажмите
Добавить...(Add...) и добавьте сайт:Name:codepilotLocation:https://ondysss.github.io/codepilot1c-edt/
- В
Work with:выберитеcodepilot - https://ondysss.github.io/codepilot1c-edt/. - Отметьте
1C Copilot, нажмитеNext, примите лицензию и нажмитеFinish. - Подтвердите окна доверия (
Trust AuthoritiesиTrust Artifacts) кнопкойTrust Selected. - Перезапустите EDT.
Вариант B: ZIP (offline)
- Откройте GitHub Releases и скачайте update-site ZIP (обычно
com.codepilot1c.update-*.zip). - В 1C:EDT откройте
Help -> Install New Software.... - Нажмите
Add.... - Нажмите
Archive...и выберите скачанный ZIP. - Выберите
1C Copilot, нажмитеNextи пройдите мастер установки. - При необходимости подтвердите окна доверия и перезапустите EDT.
Сборка
Требования: JDK 17.
mvn -DskipTests package
Локальный E2E workflow для EDT
Для полного локального цикла build -> p2 update -> relaunch EDT -> MCP smoke -> qa_inspect(command=status) -> qa_run
используйте:
EDT_HOME=/path/to/test-1cedt \
EDT_WORKSPACE=/path/to/test-workspace \
EDT_PROJECT_PATHS=/abs/path/to/project \
QA_PROJECT_NAME=MyProject \
tools/run-edt-e2e-local.sh
Скрипт:
- собирает полный reactor через
mvn -DskipTests package; - обновляет выделенную test-инсталляцию EDT через локальный p2 site
repositories/com.codepilot1c.update/target/repository; - патчит
bundles.infoдля auto-startcom.codepilot1c.coreв headless режиме; - поднимает EDT с MCP host на
http://127.0.0.1:8765/mcp; - выполняет
tools/list, затемqa_inspect(command=status)иqa_runчерез MCP; - складывает логи и trace-артефакты в
.runs/edt-e2e/<run-id>/.
Ключевые переменные:
EDT_HOME— обязательная test-инсталляция 1C:EDT.EDT_WORKSPACE— отдельный workspace для прогона.EDT_PROJECT_PATHS— список проектов через:, которые будут смонтированы в workspace симлинками.QA_PROJECT_NAME— EDT project name дляqa_inspect(command=status)/qa_run.MCP_BEARER_TOKEN— опционально; если не задан, скрипт создаст временный токен на один прогон.RUN_QA=false— только build/update/launch/smoke без QA запуска.
Локальный flow: Implementer -> Codex review loop
Если нужно прогонять простые coding-задачи через внешний implementer, а затем автоматически отправлять diff на review в codex и возвращать найденные дефекты обратно в тот же session, используйте один из wrappers:
bash /Users/alexorlik/repo/codepilot1c-oss/tools/run-qwen-codex-flow.sh /abs/path/to/task.md
bash /Users/alexorlik/repo/codepilot1c-oss/tools/run-claude-codex-flow.sh /abs/path/to/task.md
или через stdin:
echo "Fix the failing test in MetadataSyncService and keep the scope minimal." \
| bash /Users/alexorlik/repo/codepilot1c-oss/tools/run-qwen-codex-flow.sh -
echo "Fix the failing test in MetadataSyncService and keep the scope minimal." \
| bash /Users/alexorlik/repo/codepilot1c-oss/tools/run-claude-codex-flow.sh -
Скрипт:
- создаёт отдельную
git worktreeотBASE_BRANCHдля задачи; - запускает выбранный implementer на реализацию в этой worktree;
- запускает
codex execс JSON schema на текущий diff; - если Codex возвращает
NEEDS_FIXES, отправляет review JSON обратно в тот же implementer session; - повторяет цикл до
MAX_ROUNDS, затем оставляет worktree на ручной разбор.
Основные переменные:
IMPLEMENTER=qwen|claude— базовый переключатель в общем flow script.BASE_BRANCH— базовая ветка для новой worktree; по умолчанию берётсяorigin/HEAD, затемmain/master.MAX_ROUNDS=3— максимум review/fix циклов.KEEP_WORKTREE=true|false— сохранять ли worktree после неуспеха.CLEAN_WORKTREE_ON_SUCCESS=true|false— удалять ли worktree после успешного review.QWEN_MODEL,QWEN_AUTH_TYPE,QWEN_APPROVAL_MODE— настройкиqwen.CLAUDE_MODEL=claude-sonnet-4-6— модель Claude дляtools/run-claude-codex-flow.sh.CLAUDE_PERMISSION_MODE=acceptEdits— permission mode для headless Claude Code.CLAUDE_ALLOWED_TOOLS=Read,Edit,MultiEdit,Write,Glob,Grep,LS,Bash— allowlist tool surface для Claude.CLAUDE_LAUNCH_MODE=auto|direct|host— как запускать Claude в flow.autoпо умолчанию запускает Claude напрямую, если текущий процесс может писать в~/.claude, и переключается на host launcher через Terminal, если flow идёт из sandbox и прямой запуск Claude там ломается.CODEX_MODEL— опциональная модель для review.
Для Claude-wrapper в sandbox-контуре важен отдельный нюанс: если процесс не может писать в ~/.claude, общий flow теперь автоматически запускает Claude через tools/run-claude-host.sh, то есть в отдельном macOS Terminal-процессе вне sandbox. Это нужно, чтобы не падать на ~/.claude/session-env и обычную Claude auth/session persistence.
Артефакты пишутся в .runs/qwen-codex-flow/<run-id>/ для Qwen-wrapper и в .runs/claude-codex-flow/<run-id>/ для Claude-wrapper:
task/— исходная задача;prompts/— prompt'ы, которыми гонялся flow;logs/— stdout/stderr implementer'а иcodex;reviews/— JSON-результаты review;snapshots/—git status,diff --statи patch после каждого этапа.
Batch queue для простых задач
Если нужно гонять не одну, а пачку простых задач, используйте queue runner:
bash /Users/alexorlik/repo/codepilot1c-oss/tools/run-qwen-codex-queue.sh
bash /Users/alexorlik/repo/codepilot1c-oss/tools/run-claude-codex-queue.sh
По умолчанию queue root:
/Users/alexorlik/repo/codepilot1c-oss/.runs/qwen-codex-queue/queue/
Для Claude-wrapper queue root по умолчанию:
/Users/alexorlik/repo/codepilot1c-oss/.runs/claude-codex-queue/queue/
Структура очереди:
todo/— входящие markdown-задачи;in_progress/— задачи, уже взятые в обработку;approved/— задачи, у которых итоговый diff одобрил Codex;no_changes/— implementer не сделал изменений;needs_human/— после лимита review/fix циклов нужны ручные действия;failed/— сбой orchestration/runtime.
Runner обрабатывает todo/*.md в лексикографическом порядке и на каждую задачу пишет:
- flow-артефакты в
.runs/qwen-codex-flow/<task-run-id>/или.runs/claude-codex-flow/<task-run-id>/; - queue summary в
.runs/qwen-codex-queue/runs/<run-id>/SUMMARY.mdили.runs/claude-codex-queue/runs/<run-id>/SUMMARY.md; - per-task result JSON рядом с задачей после перемещения по финальному статусу.
- если задача закончилась в
needs_human/, может автоматически сгенерировать новыеreview-followupзадачи обратно вtodo/по findings из последнего Codex review. Эти follow-up задачи подхватываются уже следующим запуском очереди, а не в том же проходе.
Полезные env:
QUEUE_DIR— альтернативный queue root;MAX_TASKS=10— ограничить число задач за один прогон;FLOW_MAX_ROUNDS=3— лимит review/fix раундов на одну задачу;BASE_BRANCH— базовая ветка для worktree каждой задачи.AUTO_GENERATE_REVIEW_FOLLOWUPS=true|false— порождать follow-up задачи изneeds_humanfindings;FOLLOWUP_MAX_FINDINGS=0— лимит числа follow-up задач на одинneeds_humantask;0означает все findings.
Versioned task templates
Versioned каталог шаблонов лежит в:
/Users/alexorlik/repo/codepilot1c-oss/tasks/qwen-codex-queue/
Шаблоны:
bugfix-minimaltest-gapnarrow-cleanupreview-followup
Быстро создать task в queue todo/ можно так:
bash /Users/alexorlik/repo/codepilot1c-oss/tools/new-qwen-codex-task.sh --list
bash /Users/alexorlik/repo/codepilot1c-oss/tools/new-qwen-codex-task.sh bugfix-minimal "fix metadata sync null guard"
Скрипт положит новый markdown-файл в .runs/qwen-codex-queue/queue/todo/ с очередным числовым префиксом.
Repo-local skills для этого flow
В репозиторий добавлены skills в .agents/skills, которые Codex может подхватывать прямо из repo:
.agents/skills/qwen-codex-simple-task— один простой task через implementer ->codex reviewflow; для Claude используйте wrappertools/run-claude-codex-flow.sh;.agents/skills/qwen-codex-queue— batch/queue обработка пачки простых задач; для Claude используйте wrappertools/run-claude-codex-queue.sh;.agents/skills/qwen-codex-review-gate— строгий Codex-only review gate для уже готового diff..agents/skills/qwen-codex-plan-bundle— запуск queue flow прямо из planning bundle с синхронизациейBACKLOG.mdи phase statuses; для Claude используйте wrappertools/run-claude-codex-plan.sh.
Это repo-scoped skills по официальной схеме Codex: агент сканирует .agents/skills от текущей директории вверх до корня репозитория. Для пользователей repo ничего дополнительно устанавливать не нужно, если запуск идёт из этого checkout.
Codex app automation
Versioned prompt для automation лежит в:
/Users/alexorlik/repo/codepilot1c-oss/tasks/qwen-codex-queue/automation/codex-app-queue-run.prompt.md
Он предназначен для периодического запуска очереди через Codex app внутри этого проекта.
Plan-driven flow for local planning bundles
Если source of truth лежит в planning bundle, например:
/Users/alexorlik/repo/codepilot1c-oss/.planning/local/qwen-runtime-surface
используйте:
bash /Users/alexorlik/repo/codepilot1c-oss/tools/run-qwen-codex-plan.sh \
/Users/alexorlik/repo/codepilot1c-oss/.planning/local/qwen-runtime-surface
bash /Users/alexorlik/repo/codepilot1c-oss/tools/run-claude-codex-plan.sh \
/Users/alexorlik/repo/codepilot1c-oss/.planning/local/qwen-runtime-surface
Этот runner:
- читает
BACKLOG.md; - берёт задачи в порядке
EXECUTION-SLICE.md, затем оставшиесяtodo; - создаёт plan-scoped queue tasks;
- гоняет их через implementer ->
codex review-> implementer fix; - пишет результат обратно в
BACKLOG.md; - синхронизирует
status:вphases/*/PLAN.md; - сохраняет
backlog-idmetadata в follow-up задачах, чтобы повторные проходы тоже закрывали исходный backlog item.
Готовый prompt для Codex app automation под background plan-run лежит в:
/Users/alexorlik/repo/codepilot1c-oss/tasks/qwen-codex-queue/automation/codex-app-plan-run.prompt.md
Полезные env:
ORDERING=slice|backlogMAX_TASKS=5APPROVED_PLAN_STATUS=doneNO_CHANGES_PLAN_STATUS=blockedNEEDS_HUMAN_PLAN_STATUS=blockedFAILED_PLAN_STATUS=blocked
Артефакты этого режима пишутся в:
/Users/alexorlik/repo/codepilot1c-oss/.runs/qwen-codex-plan/<plan-key>/
Для Claude-wrapper:
/Users/alexorlik/repo/codepilot1c-oss/.runs/claude-codex-plan/<plan-key>/
Публикация p2 из локальной сборки
Автоматическая публикация p2 из GitHub Actions отключена. Публикация выполняется локально:
Структура
bundles/— OSGi плагиныfeatures/— Eclipse featuresrepositories/— p2 update sitetargets/— target platform
Inbound MCP Host (Claude Code / Cursor / Codex)
Начиная с этой версии плагин поддерживает входящий MCP Host:
- Настройки:
Preferences -> 1C Copilot -> MCP Host - HTTP endpoint: по умолчанию
http://127.0.0.1:8765/mcp - Авторизация:
OAuth 2.1(MCP Auth / RFC 9728) - Резервный режим: статический
Bearertoken (опционально, для клиентов без OAuth)
Базовый сценарий: подключайте клиентов напрямую по HTTP.
Автозапуск MCP Host через 1cedt.ini
Откройте 1cedt.ini и добавьте параметры ниже.
-Dcodepilot.mcp.enabled=true
-Dcodepilot.mcp.host.http.enabled=true
-Dcodepilot.mcp.host.http.bindAddress=127.0.0.1
-Dcodepilot.mcp.host.http.port=8765
-Dcodepilot.mcp.host.policy.defaultMutationDecision=ALLOW
-Dcodepilot.mcp.host.policy.exposedTools=*
# опционально:
# -Dcodepilot.mcp.host.http.bearerToken=ваш_токен
Claude Code (глобально, профиль пользователя):
claude mcp add --transport http -s user codepilot1c http://127.0.0.1:8765/mcp
Пример для Cursor / Codex:
{
"mcpServers": {
"codepilot1c": {
"url": "http://127.0.0.1:8765/mcp"
}
}
}
Пример для Claude Code:
{
"mcpServers": {
"codepilot1c": {
"type": "http",
"url": "http://127.0.0.1:8765/mcp"
}
}
}
Если клиент не поддерживает OAuth и нужен статический токен:
{
"mcpServers": {
"codepilot1c": {
"url": "http://127.0.0.1:8765/mcp",
"headers": {
"Authorization": "Bearer <TOKEN>"
}
}
}
}
Публикация на Infostart
Комментарии
Войдите, чтобы оставить комментарий
ВойтиЗагрузка...