内容
<div align="center">
[Русский](README.md) · [English](README.en.md)
<img src="docs/assets/readme/ai-edt-hero-agentic.svg" alt="AI-EDT - агентная разработка для 1C:EDT: AI-агент получает доступ к проекту и конфигурации через MCP-сервер" width="100%">
[](https://github.com/Desko77/ai-edt/actions/workflows/build.yml)
[](https://github.com/Desko77/ai-edt/releases/latest)
[](https://desko77.github.io/ai-edt/)
[](#-1-требования)
[](#-1-требования)
[](#-как-это-работает)
[](LICENSE)
**Дайте AI-ассистенту структурированный доступ к проекту 1С через службы запущенного экземпляра EDT.**
[Быстрый старт](#-быстрый-старт) · [Возможности](#-что-можно-делать) · [Архитектура](#-как-это-работает) · [Участие в разработке](#-участие-в-разработке)
</div>
---
AI-EDT - MCP-сервер в виде плагина, работающего **внутри запущенного экземпляра 1C:EDT**. Он позволяет Claude, Cursor, GitHub Copilot и другим MCP-клиентам исследовать и изменять метаданные и BSL, переходить по семантическим ссылкам, управлять отладчиком, проверять проекты и работать с подключенной информационной базой.
Вместо того чтобы воспринимать рабочее пространство EDT как каталог XML- и BSL-файлов, ассистент использует семантическую модель, индексы, валидаторы и службы отладки самой EDT.
> [!IMPORTANT]
> Текущая версия работает на **1C:EDT 2026.2** и **2026.1**. Сборка идет против 2026.1, поэтому один артефакт ставится на обе. Плагин работает везде, где работает EDT; на Windows рассчитаны только описанные ниже скрипты сборки и установки.
## 🎯 Зачем нужен AI-EDT
Ассистент с доступом только к тексту может искать по файлам, но не способен надежно отвечать на вопросы, зависящие от модели IDE:
- На какой объект метаданных указывает эта ссылка?
- Какие формы, роли и подсистемы зависят от справочника?
- Какой тип EDT вывела в этой позиции BSL?
- Почему валидатор проекта отклоняет объект?
- Что происходит в приостановленной отладочной сессии 1С?
- Можно ли применить изменение метаданных без ручного редактирования XML EDT?
- Соберется ли этот запрос именно на этой конфигурации - есть ли в ней такие таблицы и поля?
- Что скажет о новом коде валидатор EDT, а не текстовый линтер со стороны?
- Откроется ли эта форма у пользователя или развалится при загрузке конфигурации в базу?
- Соберется ли схема компоновки так, чтобы отчет заработал, а не просто существовал в файле?
AI-EDT дает для этого специализированные MCP-инструменты - те же службы, которыми пользуется сама среда. Ассистент не просто пишет BSL, запрос, форму, схему компоновки или объект метаданных: он тут же проверяет результат валидаторами EDT, поэтому ошибка всплывает на месте, а не в тот момент, когда конфигурацию впервые загружают в информационную базу. Меньше гадания, меньше хрупких текстовых правок, и вся работа идет в той же модели, которую видит разработчик в IDE.
## ⚡ Что можно делать
| Сценарий | Что может сделать ассистент |
|---|---|
| 🔍 **Исследовать код и метаданные** | Искать по BSL, разрешать символы, находить семантические ссылки, строить иерархии вызовов, получать список модулей и структуру объектов. |
| 🏗️ **Создавать и изменять метаданные** | Создавать справочники, документы, регистры, формы, роли, команды, сервисы и другие объекты через `edit_metadata`, включая предпросмотр и пакетные операции. |
| 🐞 **Отлаживать BSL** | Запускать или подключать отладочную сессию, ставить обычные и exception breakpoints, смотреть переменные, вычислять выражения, выполнять шаги и собирать профилирование. |
| 🩺 **Диагностировать конфигурацию** | Получать проблемы EDT, перевалидировать объекты, исследовать граф зависимостей, находить антипаттерны запросов и оценивать влияние изменений. |
| 🧱 **Собирать сложные артефакты** | Работать со СКД, MXL, XDTO, расширениями, внешними объектами и внешними источниками данных через специализированные мастерские. |
| 🧪 **Тестировать и исследовать данные** | Запускать и отлаживать тесты YAxUnit, выполнять сценарии Vanessa Automation и исследовать состояние исполнения в приостановленной сессии отладки. |
| 🛡️ **Проверять границы доступа** | Аудировать роли и RLS, искать потенциально чувствительные данные в коде и метаданных, отключать записывающие инструменты пресетами. |
| 📦 **Забирать поставку одним файлом** | Импортировать конфигурацию или расширение из `.cf` и `.cfe` прямо в проект - последний сценарий, ради которого приходилось открывать Конфигуратор. |
| 👀 **Видеть, что делал агент** | Открыть историю вызовов из строки состояния: что вызывалось, с какими аргументами и что ответило. |
Сервер предоставляет более ста операций. Родственные действия объединены фасадами `code_search`, `edit_metadata`, `launch_debugger`, `diagnostics`, `insights` и `security_audit`, поэтому MCP-клиент видит компактный набор инструментов вместо длинного списка почти одинаковых команд.
### 🧮 Метаданные, запросы и формы - там, где текстовый ассистент ломается чаще всего
**Метаданные создаются по описанию, а не правкой XML.** Разработчику достаточно сказать, что нужно: справочник с такими-то реквизитами, документ с движениями, форма списка к нему. Ассистент раскладывает это в план операций `edit_metadata` и выполняет его одним пакетом, а не десятком разрозненных вызовов. Любой шаг заранее прогоняется с `dryRun=true` и показывает, что именно будет затронуто; удаление и прочие деструктивные операции требуют отдельного подтверждения. Изменения идут через модель EDT, а не текстом по `.mdo`, и сразу после применения объекты перевалидируются, так что ошибка видна на месте, а не при первой загрузке в информационную базу.
**Запрос проверяется до того, как его кто-то запустит.** `validate_query` разбирает текст в контексте проекта и возвращает синтаксические и семантические ошибки с номерами строк, отдельно для обычных запросов и для запросов СКД. Вместе с ними приходит список подсказок на типовые промахи: слова SQL вместо языка запросов 1С, `УБЫВАНИЕ` вместо `УБЫВ`. Ассистенту не нужно запускать конфигурацию, чтобы выяснить, что запрос не соберется.
**И что этот запрос вернет - тоже.** С `describeResult=true` тот же инструмент сообщает колонки каждого результата и их типы, взятые из модели конструктора запросов EDT, а не вычитанные из текста. Пакет разбирается целиком: временные таблицы не выдаются за результат, но занимают свою позицию в `ВыполнитьПакет()`, поэтому индексы совпадают с реальными. Тип, который определить нельзя, не указывается вовсе - уверенная неправда обошлась бы дороже честного пробела. Ассистент перестает угадывать имена колонок, а с ними уходит целый класс ошибок, которые иначе доживают до рантайма.
**Форму собирает генератор EDT, а не ассистент.** Достаточно описать, какая форма нужна: `create_form` принимает назначение - форма объекта, форма списка, форма выбора, русские синонимы тоже принимаются, - и форму строит тот же генератор, которым пользуется мастер IDE, с основным реквизитом и рабочей раскладкой. Дальше она правится по частям: реквизиты и колонки, поля, таблицы динамических списков, команды, обработчики событий, параметры, командный интерфейс, функциональные опции. Результат читается через `get_form_structure` и просматривается глазами через `get_form_screenshot`, а `validate_for_export` ловит дефекты формы, которые проходят валидацию EDT и проявляются только при загрузке в информационную базу.
## 🔄 Типичный цикл работы агента
```mermaid
flowchart TD
Q["Разработчик описывает задачу"] --> S["AI исследует модель EDT:<br/>код, метаданные, зависимости"]
S --> P["Показывает предлагаемые изменения"]
P --> E["Изменяет BSL или метаданные"]
E --> V["Запускает валидацию EDT и тесты"]
V --> D{"Найдена проблема?"}
D -- Да --> B["Отлаживает сессию 1С"]
B --> E
D -- Нет --> R["Возвращает проверенный результат"]
```
## 🧩 Как это работает
```mermaid
flowchart TD
subgraph Client["MCP-клиент"]
AI["Claude · Cursor · Copilot · Cline"]
end
subgraph Plugin["Плагин AI-EDT · внутри процесса EDT"]
direction LR
HTTP["MCP endpoint<br/>Streamable HTTP + SSE"] --> GATE["Политика доступа<br/>пресеты и разрешения"] --> TOOLS["Фасады<br/>и мастерские"]
end
subgraph EDT["Службы 1C:EDT"]
direction LR
BM["Семантическая<br/>модель"]
AST["Парсер BSL"]
CHECKS["Валидация"]
DEBUG["Отладчик"]
end
subgraph Runtime["1С:Предприятие"]
APP["Клиент · сервер · задания · тесты"]
end
AI <-->|"JSON-RPC · localhost:12250"| HTTP
TOOLS --> BM
TOOLS --> AST
TOOLS --> CHECKS
TOOLS --> DEBUG
DEBUG <--> APP
```
По умолчанию сервер доступен по адресу `http://localhost:12250/mcp`. Плагин не является отдельным headless-сервером: EDT должна быть запущена, а целевой проект - загружен. Благодаря этому инструментам доступны разрешенные ссылки, выведенные типы, текущие маркеры валидации и состояние живой отладки.
## 🚀 Быстрый старт
### 📋 1. Требования
- 1C:EDT
- **2026.2**
- **2026.1**
- Java / JDK
- **25** - для 1C:EDT 2026.2
- **17** - для 1C:EDT 2026.1
- Maven **3.9+** для сборки из исходников
- MCP-совместимый клиент
- ОС - любая, где работает 1C:EDT. Плагин собирается и полностью прогоняет тесты на Linux в CI. Windows нужна только вспомогательным скриптам `build.cmd` и `scripts/edt-selfupdate.ps1`, а команды установки ниже записаны для PowerShell; сама установка через p2 director от ОС не зависит
Для дополнительных возможностей потребуются YAxUnit, Vanessa Automation или конфигурация Attach. Подробнее - в разделе [Дополнительные интеграции](#-дополнительные-интеграции).
### 🔨 2. Сборка
В корне репозитория выполните:
```cmd
build.cmd [EDT_INSTALL_DIR]
```
Альтернативный вариант - собрать Maven-реактор напрямую:
```cmd
cd mcp
mvn clean verify
```
Сгенерированный P2-репозиторий:
```text
mcp/repositories/ru.aiedt.mcp.server.repository/target/repository
```
### 📦 3. Установка в EDT
#### 🤖 Просто попросите агента установить плагин
**Установка сводится к одному сообщению агенту: он поставит плагин сам, без единого щелчка мышью.** Нужен AI-агент с доступом к оболочке на той машине, где стоит EDT.
Скопируйте ему этот промпт:
```text
Установи мне плагин AI-EDT в 1C:EDT.
Рецепт: https://github.com/Desko77/ai-edt/blob/main/docs/agent-install.md
Прочитай его целиком и следуй ему.
Ставь с update site https://desko77.github.io/ai-edt/ через Equinox p2 director
(1cedtc.exe из каталога установки EDT). Мастер "Установить новое ПО" не используй.
Это первая установка, поэтому -uninstallIU не передавай.
Перед установкой закрой запущенный сеанс EDT, запомнив его командную строку;
после установки запусти его теми же аргументами и дождись ответа status: ok
от health endpoint.
После этого поставь себе скил из каталога skills/ai-edt репозитория - без него
ты будешь пользоваться сервером вслепую. Порядок в skills/README.md.
Ничего не завершай принудительно. Если EDT не закрывается сам - остановись и скажи мне.
```
Если плагин уже установлен и вы его обновляете, замените предложение про первую установку на: `Плагин уже установлен, обновляй его одним запросом director с -uninstallIU и -installIU.`
Полный рецепт вместе с правилами обращения с запущенной средой - в [docs/agent-install.md](docs/agent-install.md).
#### 🖱️ Через интерфейс EDT
Оба ручных пути - мастер EDT и командная строка - ставят ту же фичу с того же update site, поэтому собирать плагин самостоятельно не обязательно:
```text
https://desko77.github.io/ai-edt/
```
Этот адрес указывается в EDT так же, как локальный архив.
**Шаг 1.** Запустите EDT и откройте **Справка → Установить новое ПО**.

**Шаг 2.** Нажмите **Добавить** рядом с полем **Работать с**.

**Шаг 3.** В диалоге **Добавить репозиторий** укажите, откуда ставить. Подходит любой из вариантов:
- поле **Расположение** и адрес update site `https://desko77.github.io/ai-edt/`;
- то же поле и адрес прямо на архив последнего релиза - p2 умеет читать репозиторий внутри zip по HTTP:
```text
jar:https://github.com/Desko77/ai-edt/releases/latest/download/AI-EDT-update-site.zip!/
```
Этот вариант всегда указывает на свежий выпуск и не зависит от публикации страницы, поэтому отстать от релиза не может. Обратите внимание на префикс `jar:` и завершающие символы `!/` - без них адрес не работает.
- **Архив...** и файл `mcp/repositories/ru.aiedt.mcp.server.repository/target/AI-EDT-<версия>.zip` из локальной сборки;
- **Расположение...** и каталог `mcp/repositories/ru.aiedt.mcp.server.repository/target/repository`.
Имя репозитория произвольное, например `AI-EDT`.

**Шаг 4.** Отметьте категорию **AI-EDT** или фичу **AI-EDT (1C AI tools for EDT)** внутри нее и нажмите **Далее**. Если список выглядит пустым, снимите флажок **Группировать элементы по категории**.

**Шаг 5.** Проверьте состав установки, примите лицензионное соглашение и нажмите **Готово**.

**Шаг 6.** Сборка не подписана, поэтому при первой установке EDT просит подтвердить установку неподписанного содержимого. Согласитесь, чтобы продолжить.
**Шаг 7.** Когда установщик предложит перезапустить EDT, нажмите **Перезапустить**.

После перезапуска переходите к разделу **4. Запуск и проверка**.
#### ⌨️ Из командной строки
Equinox P2 director ставит ту же фичу без интерфейса. Сначала закройте обновляемый сеанс EDT: запущенный экземпляр держит старый плагин в памяти до перезапуска, то есть перезапуск все равно понадобится, а сеанс, который сам выполняет операцию установки, удерживает блокировку профиля.
```powershell
& "<EDT>\1cedtc.exe" -nosplash `
-application org.eclipse.equinox.p2.director `
-repository "file:///C:/path/to/AI-EDT/mcp/repositories/ru.aiedt.mcp.server.repository/target/repository" `
-uninstallIU ru.aiedt.mcp.server.feature.feature.group `
-installIU ru.aiedt.mcp.server.feature.feature.group `
-profileProperties org.eclipse.update.reconcile=true
```
Фича - это p2-синглтон, поэтому установка новой версии поверх существующей не пройдет, если в том же запросе не удалить старую. При самой первой установке строку `-uninstallIU` нужно убрать: удалять еще нечего.
Для рабочей среды разработки скрипт `scripts/edt-selfupdate.ps1` выполняет весь цикл: аккуратное закрытие, установку, перезапуск и проверку состояния.
#### 🎓 И сразу поставьте скил агенту
Каким бы путем вы ни поставили плагин, установка на этом не заканчивается. Плагин дает агенту инструменты, но не объясняет, как ими пользоваться: какой фасад брать под задачу, какие проверки обязательны после правки, что означает ответ с ключом возврата. Это знание лежит в скиле `skills/ai-edt` и ставится копированием каталога:
```powershell
Copy-Item -Recurse skills\ai-edt "$env:USERPROFILE\.claude\skills\ai-edt"
```
```bash
cp -r skills/ai-edt ~/.claude/skills/ai-edt
```
Это расположение для Claude Code на уровне пользователя; каталог `.claude/skills/ai-edt` внутри проекта ограничит скил одним проектом. Если вы ставили плагин с update site и чекаута рядом нет, заберите каталог поверхностным клоном:
```powershell
git clone --depth 1 https://github.com/Desko77/ai-edt.git "$env:TEMP\ai-edt-skill"
Copy-Item -Recurse "$env:TEMP\ai-edt-skill\skills\ai-edt" "$env:USERPROFILE\.claude\skills\ai-edt"
Remove-Item -Recurse -Force "$env:TEMP\ai-edt-skill"
```
Для другого агента действует его собственное соглашение: `SKILL.md` - обычный Markdown с именем и описанием во front matter, файлы `references/` подгружаются по мере надобности. Подробности - [skills/README.md](skills/README.md).
Скил необязателен: без него агент тоже работает, просто дороже - читает модули целиком, правит руками файлы, которыми владеет EDT, и повторяет вызов, который уже вернул ключ возврата.
### ▶️ 4. Запуск и проверка
Откройте **Window → Preferences → AI-EDT** и проверьте:
1. порт сервера, обычно `12250`;
2. нажмите **Start**, чтобы запустить сервер сейчас, либо включите **Auto-start** и перезапустите EDT;
3. **Plain text mode** для клиентов без поддержки MCP resources;
4. активный пресет инструментов.

После этого проверьте health endpoint:
```powershell
curl.exe http://localhost:12250/health
```
Готовый экземпляр возвращает ответ со значениями `status: ok` и `phase: ready`. Если указано `phase: indexing`, дождитесь завершения загрузки проекта в EDT.


### 🔗 5. Подключение AI-клиента
#### Claude Code
Добавьте сервер в `%USERPROFILE%\.claude.json`:
```json
{
"mcpServers": {
"AI-EDT": {
"type": "http",
"url": "http://localhost:12250/mcp"
}
}
}
```
#### Cursor
Создайте `.cursor/mcp.json` в корне проекта и включите **Plain text mode** в настройках AI-EDT:
```json
{
"mcpServers": {
"AI-EDT": {
"url": "http://localhost:12250/mcp"
}
}
}
```
#### VS Code / GitHub Copilot
Создайте `.vscode/mcp.json`:
```json
{
"servers": {
"AI-EDT": {
"type": "http",
"url": "http://localhost:12250/mcp"
}
}
}
```
Конфигурации для Claude Desktop, Cline и Antigravity находятся в [docs/clients.md](docs/clients.md).
### 🎓 5a. Проверьте, что скил на месте
Скил **[skills/ai-edt](skills/ai-edt)** ставится на шаге установки - [И сразу поставьте скил
агенту](#-и-сразу-поставьте-скил-агенту). Если вы его пропустили, сейчас самый момент: клиент уже
подключен, и разница видна с первого задания. Проверить просто - в Claude Code скил появляется в
списке доступных под именем `ai-edt`.
### 💬 6. Первый вызов
Попросите клиента вывести список проектов EDT или версию EDT. Успешный ответ должен содержать структурированную информацию о проекте, а не сообщение "инструмент недоступен".
Примеры запросов:
```text
Покажи проекты EDT в текущем рабочем пространстве и кратко опиши состояние их валидации.
```
```text
Найди все семантические ссылки на Справочник.Номенклатура и сгруппируй их по метаданным, формам и модулям BSL.
```

## 🧰 Набор инструментов
В основе API AI-EDT лежат фасады. Фасад принимает дискриминатор операции и направляет родственные действия через единую стабильную точку входа.
> [!TIP]
> **[Открыть полный каталог инструментов →](docs/tools/README.ru.md)**
> Все группы инструментов, режимы доступа и раскрываемые описания ключевых фасадов.
| Фасад | Область применения |
|---|---|
| `code_search` | Текстовый поиск, ссылки, разрешение символов, иерархия вызовов, информация о символах и content assist. |
| `edit_metadata` | Изменение метаданных, форм, команд, ролей, сервисов, макетов и других элементов модели. |
| `launch_debugger` | Запуск/подключение, точки останова, шаги, переменные, вычисление выражений и профилирование. |
| `diagnostics` | Проблемы проекта, документация проверок, очистка и точечная перевалидация. |
| `insights` | Зависимости, метрики, антипаттерны, сравнение и анализ влияния. |
| `security_audit` | Права ролей, нарушения RLS и поиск чувствительных данных. |
| `project_admin` / `infobase_admin` | Проекты рабочего пространства, конфигурации запуска, обновление ИБ и синхронизация. |
| `dcs_workshop` / `mxl_workshop` / `xdto_workshop` | Программные конструкторы сложных артефактов 1С. |
| `extension_workshop` / `external_object_workshop` | Жизненный цикл расширений, внешних отчетов и обработок. |
| `yaxunit_tests` | Запуск или отладка выбранных тестов YAxUnit и чтение отчетов. |
Прежние отдельные имена инструментов сохранены как алиасы для обратной совместимости. Пресет **Canonical** скрывает их из `tools/list`, уменьшая расход контекста без потери возможностей.

## 🔐 Пресеты инструментов и безопасность
На странице настроек **Tools** инструменты сгруппированы по назначению и доступны следующие пресеты:
| Пресет | Назначение |
|---|---|
| **Canonical** | Рекомендуемый вариант. В списке видны фасады, а алиасы совместимости остаются вызываемыми, но скрытыми. |
| **All Tools** | Показывает каждый зарегистрированный инструмент и алиас. Полезно для исследования API. |
| **Read-only** | Поиск, навигация и валидация без правок, отладки и обновления ИБ. |
| **Editing** | Чтение и запись без отладки. |
| **Debug & Test** | Чтение, отладка и тесты без изменения исходников и метаданных. |
| **Code Review** | Анализ кода и метаданных без записи. |
У каждого инструмента может быть состояние **listed**, **callable-hidden** или **disabled**. Скрытые инструменты продолжают принимать вызовы, отключенные - отклоняются. Благодаря этому Canonical уменьшает шум в каталоге, а ограничивающие пресеты действительно устанавливают границы доступа.


> [!CAUTION]
> Плагин работает с правами процесса EDT. Он может изменять исходники, метаданные и информационные базы. Храните проект в системе контроля версий, проверяйте предпросмотр перед подтверждением разрушающих операций и не публикуйте локальный порт без аутентификации за пределами loopback-интерфейса.
### Токен доступа и привязка к интерфейсу
По умолчанию сервер слушает только `127.0.0.1` и не требует аутентификации: за пределы машины он не выходит. Если endpoint нужно открыть наружу, на странице **Preferences → AI-EDT** есть две настройки, и включать их следует вместе:
- **Bearer-токен.** Кнопка генерации создает случайный токен; клиент передает его заголовком `Authorization: Bearer <токен>`. Сравнение идет за константное время, чтобы токен нельзя было подобрать по времени ответа. Запрос без верного токена отклоняется до того, как дойдет до инструмента.
- **Привязка ко всем интерфейсам.** Снимает ограничение loopback. Если ее включить без токена, плагин пишет предупреждение в лог: любой хост, который дотянется до машины, получит право читать и менять исходники и информационную базу.
### Маскирование персональных данных
Отдельная настройка включает маскирование данных, попадающих в ответ инструмента, - по категориям 152-ФЗ: ИНН, СНИЛС, номер карты, паспорт, телефон, email. По умолчанию выключена.
Что важно понимать про нее честно:
- Маскирование сделано с приоритетом точности над полнотой. ИНН, СНИЛС и карта проверяются по контрольной сумме, у паспорта и телефона обязателен разделитель - поэтому произвольный числовой идентификатор не будет испорчен. Обратная сторона: это не ловит ФИО, адреса и прочие персональные данные в свободном тексте.
- Маскируется собственный вывод инструмента и текст ошибок, но не конверт JSON-RPC и не бинарные изображения: структура ответа не меняется, только содержимое строк.
- Это снижает риск утечки в облачную модель, но не заменяет решение о том, какие данные вообще показывать ассистенту.
### История вызовов
Каждый вызов инструмента записывается: что вызвали, с какими аргументами, что ответили, сколько заняло. Открыть - из индикатора AI-EDT в строке состояния, пункт **Call history**. Окно немодальное: агент продолжает работать, пока вы читаете.

Заголовок окна показывает, сколько вызовов хранится и по скольку символов запроса и ответа, а над панелью ответа видно, какая часть сохранена: `Response (303 of 1957 characters)`. Так урезанную запись нельзя принять за короткий ответ.
Настройки в **Window -> Preferences -> AI-EDT**, раздел **Call history**: вести ли запись вообще, сколько вызовов хранить, сколько символов запроса и ответа сохранять. Умолчания рассчитаны на вопрос "какие инструменты отработали", а не "что именно они ответили" - если нужен полный ответ, увеличьте число символов, оно и решает, что вы увидите.
Глубина и объем ограничены совместно: буфер целиком не превышает заданного предела памяти, и если запрошенные значения в него не помещаются, число символов уменьшается пропорционально. Фактические значения показаны в заголовке окна истории, так что урезание видно. Умолчания до этого предела не достают.
Отдельная настройка дописывает каждый вызов в файл в служебном каталоге плагина, чтобы запись пережила перезапуск EDT. По умолчанию выключена. Файл ограничен по размеру и ротируется. Пароли информационных баз в него не попадают: значения аргументов с ключом вида `password`, `token`, `secret` заменяются на `***` до записи. Персональные данные в файле маскируются - это можно отключить, но по умолчанию включено, потому что файл живет дольше сессии и уезжает вместе с приложением к отчету об ошибке.
### Прочие меры
- Инструменты рефакторинга метаданных используют сценарий preview/confirm.
- Для незнакомых проектов рекомендуется пресет Read-only.
- `evaluate_expression` выполняет код в живой сессии 1С.
- Удаление ИБ, импорт конфигурации и синхронизацию можно отключить отдельно.
- Перед структурными обновлениями, которые нельзя отменить через Git, сделайте резервную копию ИБ.
## 🐞 Отладка клиентского и серверного кода
Фасад отладки поддерживает обычные клиентские запуски и конфигурации **Attach to 1C:Enterprise Debug Server**. Attach необходим для HTTP-сервисов, серверных вызовов, фоновых и регламентных заданий, а также кода, выполняемого в `rphost`.
Агент получает список конфигураций запуска EDT, подключается к серверу отладки 1С, устанавливает точку останова и ждет приостановки. После этого AI-EDT возвращает стабильные ссылки на поток, стек и кадр, чтобы агент мог исследовать переменные, вычислять выражения, выполнять код по шагам и продолжать выполнение.
## 🔌 Дополнительные интеграции
| Интеграция | Что становится доступно | Что нужно настроить |
|---|---|---|
| **YAxUnit** | Запуск и отладка unit-тестов, фильтрация наборов и разбор JUnit-отчетов. | Установить расширение YAxUnit в целевую информационную базу. |
| **Vanessa Automation** | Выполнение сценарных UI-тестов. | Отдельно настроить Vanessa и требуемую конфигурацию запуска. |
| **Сервер отладки 1С** | Отладка серверного BSL через Attach. | Запустить `ragent` с `-debug -http` и создать конфигурацию Attach в EDT. |
| **BSL Language Server** | Дополнительный анализ исходников через `code_review`. | Указать внешний JAR в настройках AI-EDT. |
## ⚠️ Ограничения
- AI-EDT зависит от внутренних и публичных служб EDT; после крупного обновления EDT может потребоваться новая версия плагина.
- Сервер доступен только при запущенной EDT.
- Для части семантических инструментов необходимо дождаться завершения индексации проекта.
- По умолчанию endpoint слушает loopback и не требует аутентификации. Bearer-токен и привязка ко всем интерфейсам есть в настройках, но включать их нужно осознанно - см. раздел про безопасность.
- Update site публикуется автоматически при выпуске релиза. Промежуточные сборки между релизами ставятся из исходников или из локального P2-репозитория.
## 🤝 Участие в разработке
Проект принимает воспроизводимые сообщения об ошибках, сфокусированные предложения возможностей, улучшения документации и pull request.
Начните с документов:
- [CHANGELOG.md](CHANGELOG.md) - что изменилось в каждом выпуске, одной строкой со ссылкой на подробности;
- [CONTRIBUTING.md](CONTRIBUTING.md) - сборка, стиль кода и правила участия;
- [SECURITY.md](SECURITY.md) - закрытая передача уязвимостей и модель угроз;
- [docs/PROVENANCE.md](docs/PROVENANCE.md) - происхождение исходников и история переимплементации.
Структура репозитория:
```text
mcp/
├── bundles/ # реализация OSGi-плагина
├── features/ # устанавливаемая Eclipse feature
├── repositories/ # генерируемый P2-репозиторий
├── targets/ # target platform EDT
└── tests/ # тесты плагина и контрактов
docs/ # руководства, аудиты и release notes
scripts/ # автоматизация разработки и обновления
```
Перед созданием pull request соберите Maven-реактор и опишите, как изменение было проверено на запущенном экземпляре EDT.
## 📜 Происхождение проекта
AI-EDT - самостоятельный продукт, созданный на основе [EDT-MCP](https://github.com/DitriXNew/EDT-MCP) автора DitriX. Проект распространяется под лицензией AGPL-3.0-or-later; сохраненные уведомления и подробная история исходников описаны в [LICENSE](LICENSE) и [docs/PROVENANCE.md](docs/PROVENANCE.md).
## ⚖️ Лицензия
GNU Affero General Public License версии 3.0 или новее. Полный текст - в [LICENSE](LICENSE).
连接信息
猜你喜欢
暂无推荐服务器