bitrix24-mcp-bridge 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -5
- package/actions.example.json +4 -1
- package/dist/cli.js +5086 -333
- package/docs/api-notes.md +235 -220
- package/extension/dist/connector.js +68 -10
- package/extension/dist/connector.js.map +2 -2
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -52,6 +52,19 @@ bitrix24-mcp-bridge`.
|
|
|
52
52
|
портал по умолчанию, `[p]` порт, `[t]` ротировать токен, `[u]` обновить
|
|
53
53
|
расширение из установленного пакета, `[q]` выход.
|
|
54
54
|
|
|
55
|
+
**Обновление пакета** почти полностью автоматическое:
|
|
56
|
+
|
|
57
|
+
- **Каталог** — новые записи дописываются в ваш `~/.bitrix24-mcp-bridge/actions.json` при следующем
|
|
58
|
+
старте (в stderr — `[catalog] added N new entries…`). Ваши записи и правки не трогаются, а запись,
|
|
59
|
+
которую вы удалили сами, назад не возвращается: доставленные ключи помечаются в
|
|
60
|
+
`catalog-state.json`, поэтому удаление считается решением, а не пробелом.
|
|
61
|
+
- **Файлы расширения** в `~/.bitrix24-mcp-bridge/extension/` обновляются там же автоматически, если
|
|
62
|
+
версия пакета изменилась (`[extension] refreshed …`), — запускать `setup` → `[u]` вручную больше не нужно.
|
|
63
|
+
- **Один ручной шаг остаётся:** нажать «Обновить» на расширении в `chrome://extensions` и перезагрузить
|
|
64
|
+
вкладку портала. Программно это сделать нельзя — Chrome перечитывает файлы unpacked-расширения только
|
|
65
|
+
сам. Пока этого не сделано, `bitrix_status` возвращает `warning` с версиями моста и расширения, так
|
|
66
|
+
что рассинхрон виден сразу, а не всплывает необъяснимой ошибкой.
|
|
67
|
+
|
|
55
68
|
**Мультипортальность** поддержана: каждый портал — отдельная запись, а в манифесте
|
|
56
69
|
расширения `matches`/`host_permissions` перечисляют ровно сконфигурированные origin'ы
|
|
57
70
|
(least-privilege на origin).
|
|
@@ -97,6 +110,7 @@ daemon после любой правки, затрагивающей конфи
|
|
|
97
110
|
| *Люди / поиск* | |
|
|
98
111
|
| `bitrix_user_get` | карточка пользователя |
|
|
99
112
|
| `bitrix_entity_selector` / `bitrix_entity_search` | загрузка селектора / текстовый поиск сущностей |
|
|
113
|
+
| `bitrix_entity_chat` | chatId чата связанного объекта (задача/группа/CRM) через `im.chat.get` |
|
|
100
114
|
|
|
101
115
|
`bitrix_help` — единственный источник конвенций params (select/filter/order/пагинация,
|
|
102
116
|
имена полей). Он отдаёт `docs/api-notes.md`, так что любому агенту не нужен доступ к репозиторию.
|
|
@@ -181,13 +195,23 @@ bun run src/index.ts --daemon # daemon вручную
|
|
|
181
195
|
bun run src/index.ts setup # интерактивная настройка
|
|
182
196
|
bun test # юнит-тесты (bun:test)
|
|
183
197
|
bun run typecheck # tsc --noEmit (сервер + extension)
|
|
184
|
-
bun run build:
|
|
198
|
+
bun run build:dist # бандл сервера → dist/cli.js
|
|
199
|
+
bun run build:ext # dev-сборка расширения → extension/dev/ (загружаемое)
|
|
200
|
+
bun run sync:runtime # применить репо-изменения к живому daemon (см. ниже)
|
|
185
201
|
```
|
|
186
202
|
|
|
187
|
-
`.env` — **только dev
|
|
188
|
-
`
|
|
203
|
+
`.env` — **только dev-оверрайды** (gitignored). Токен / origin / порт берутся из общего
|
|
204
|
+
`~/.bitrix24-mcp-bridge/config.json` (через `loadConfig`) — дублировать их в `.env` не нужно, иначе
|
|
205
|
+
dev-токен разойдётся с daemon. Осмысленно держать там лишь `BITRIX_CATALOG` (указывает
|
|
206
|
+
dev-сборку/daemon на репозиторный `actions.json`). В проде весь конфиг — в
|
|
189
207
|
`~/.bitrix24-mcp-bridge/config.json`, который пишет `setup`.
|
|
190
208
|
|
|
209
|
+
**Репо ≠ живой daemon.** Daemon, к которому ходят агенты, читает **runtime-папку**
|
|
210
|
+
(`~/.bitrix24-mcp-bridge/actions.json` + запущенный `dist/cli.js`), а не файлы репозитория. После
|
|
211
|
+
правки каталога или кода сервера выполни **`bun run sync:runtime`**: она пересоберёт бандл, скопирует
|
|
212
|
+
репо-`actions.json` в runtime-папку и погасит daemon (следующий вызов агента поднимет свежий). Без
|
|
213
|
+
этого новые инструменты/методы агенту не видны.
|
|
214
|
+
|
|
191
215
|
Дистрибуция: `bin` `bitrix24-bridge` → `dist/cli.js`; npm-хук `prepare` при установке
|
|
192
216
|
собирает и `dist/cli.js`, и статичные бандлы расширения (`extension/dist/`), которые
|
|
193
217
|
`setup` затем копирует в runtime-домашнюю папку. Публикуемые файлы перечислены в `files`
|
|
@@ -205,6 +229,6 @@ Trusted Publisher** (с provenance, без токенов). CI ([`.github/workfl
|
|
|
205
229
|
## Документация
|
|
206
230
|
|
|
207
231
|
- [docs/RUNBOOK.md](docs/RUNBOOK.md) — установка, настройка, повседневная работа, диагностика
|
|
208
|
-
- [docs/api-notes.md](docs/api-notes.md) — карта API Bitrix24 (единый источник для `bitrix_help`)
|
|
209
|
-
- [docs/reconnaissance.md](docs/reconnaissance.md) —
|
|
232
|
+
- [docs/api-notes.md](docs/api-notes.md) — карта API Bitrix24 для агента (единый источник для `bitrix_help`)
|
|
233
|
+
- [docs/reconnaissance.md](docs/reconnaissance.md) — capture, транспорт записи каталога, расширение `actions.json`
|
|
210
234
|
- [extension/README.md](extension/README.md) — устройство расширения и модель доверия
|
package/actions.example.json
CHANGED
|
@@ -23,7 +23,10 @@
|
|
|
23
23
|
"chat.dialogId": { "action": "im.v2.Chat.getDialogId", "method": "POST" },
|
|
24
24
|
"chat.read.all": { "action": "im.v2.Chat.readAll", "method": "POST" },
|
|
25
25
|
"im.user.get": { "endpoint": "/rest/im.user.get.json", "method": "POST" },
|
|
26
|
+
"im.chat.get": { "endpoint": "/rest/im.chat.get.json", "method": "POST" },
|
|
26
27
|
|
|
27
28
|
"task.subtasks": { "action": "tasks.v2.Task.Relation.Child.list", "method": "POST", "bodyType": "json" },
|
|
28
|
-
"task.related": { "action": "tasks.v2.Task.Relation.Related.list", "method": "POST", "bodyType": "json" }
|
|
29
|
+
"task.related": { "action": "tasks.v2.Task.Relation.Related.list", "method": "POST", "bodyType": "json" },
|
|
30
|
+
|
|
31
|
+
"call.detail": { "endpoint": "/call/detail/{callId}", "method": "GET", "params": { "IFRAME": "Y", "IFRAME_TYPE": "SIDE_SLIDER" }, "responseType": "text" }
|
|
29
32
|
}
|