@deadragdoll/tellymcp 0.0.12 → 0.0.14
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/.env.example.client +5 -1
- package/.env.example.gateway +16 -1
- package/CHANGELOG.md +30 -0
- package/README-ru.md +33 -0
- package/README.md +33 -0
- package/TOOLS.md +384 -9
- package/config/templates/env.both.template +15 -2
- package/config/templates/env.client.template +5 -2
- package/config/templates/env.gateway.template +15 -2
- package/dist/cli.js +137 -2
- package/dist/services/features/telegram-mcp/browser.service.js +56 -1
- package/dist/services/features/telegram-mcp/file-content.service.js +94 -0
- package/dist/services/features/telegram-mcp/gateway-delivery.service.js +5 -1
- package/dist/services/features/telegram-mcp/gateway-socket.service.js +43 -11
- package/dist/services/features/telegram-mcp/mcp-http.service.js +1 -0
- package/dist/services/features/telegram-mcp/mcp-server.service.js +30 -0
- package/dist/services/features/telegram-mcp/src/app/bootstrap/runtime.js +23 -1
- package/dist/services/features/telegram-mcp/src/app/config/env.js +132 -2
- package/dist/services/features/telegram-mcp/src/app/http.js +139 -99
- package/dist/services/features/telegram-mcp/src/app/oauthFacade.js +642 -0
- package/dist/services/features/telegram-mcp/src/app/webapp/assets.js +151 -170
- package/dist/services/features/telegram-mcp/src/app/webapp/auth.js +96 -99
- package/dist/services/features/telegram-mcp/src/entities/request/model/schema.js +205 -17
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserAttachActiveTabTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserAttachTabTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserClickTool.js +1 -1
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserDetachTabTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserDomTool.js +1 -1
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserFillTool.js +1 -1
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserInjectScriptTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserListAttachedInstancesTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserListTabsTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserPressTool.js +1 -1
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserRecordingStartTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserRecordingStatusTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserRecordingStopTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserScreenshotTool.js +1 -1
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserService.js +890 -23
- package/dist/services/features/telegram-mcp/src/features/browser-attach/model/browserRecordingBundle.js +536 -0
- package/dist/services/features/telegram-mcp/src/features/browser-attach/model/firefoxAttachRegistry.js +80 -0
- package/dist/services/features/telegram-mcp/src/features/browser-attach/model/firefoxAttachServer.js +736 -0
- package/dist/services/features/telegram-mcp/src/features/browser-attach/model/types.js +188 -0
- package/dist/services/features/telegram-mcp/src/features/collaboration/model/collaborationService.js +2 -0
- package/dist/services/features/telegram-mcp/src/features/collaboration/model/sendPartnerFileService.js +6 -3
- package/dist/services/features/telegram-mcp/src/features/distributed-client/model/gatewayClientAccess.js +4 -1
- package/dist/services/features/telegram-mcp/src/features/distributed-gateway/model/gatewayHttpService.js +33 -35
- package/dist/services/features/telegram-mcp/src/features/file-content/model/getFileListTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/file-content/model/getFileService.js +327 -0
- package/dist/services/features/telegram-mcp/src/features/file-content/model/getFileTool.js +81 -0
- package/dist/services/features/telegram-mcp/src/features/file-content/model/temporaryFileLinkStore.js +307 -0
- package/dist/services/features/telegram-mcp/src/features/file-content/model/workspaceFilePolicy.js +115 -0
- package/dist/services/features/telegram-mcp/src/features/notify/model/notifyService.js +5 -1
- package/dist/services/features/telegram-mcp/src/shared/integrations/redis/stateStore.js +28 -0
- package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transport.js +3 -0
- package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportFileHandoffActions.js +6 -3
- package/dist/services/features/telegram-mcp/src/shared/integrations/terminal/client.js +29 -6
- package/dist/services/features/telegram-mcp/src/shared/integrations/terminal/ptyRegistry.js +100 -2
- package/dist/services/features/telegram-mcp/src/shared/lib/bodyLimits.js +63 -0
- package/dist/services/features/telegram-mcp/src/shared/lib/gatewayAuth.js +13 -0
- package/dist/services/features/telegram-mcp/src/shared/lib/time/localTimestamp.js +21 -0
- package/docs/CHAT_CONNECTOR.md +134 -0
- package/docs/STANDALONE-ru.md +55 -6
- package/docs/STANDALONE.md +55 -6
- package/package.json +10 -5
- package/packages/chrome-attach-extension/dist/background.js +1735 -0
- package/packages/chrome-attach-extension/dist/icon.svg +6 -0
- package/packages/chrome-attach-extension/dist/manifest.json +37 -0
- package/packages/chrome-attach-extension/dist/options.html +312 -0
- package/packages/chrome-attach-extension/dist/options.js +606 -0
- package/packages/chrome-attach-extension/dist/popup.html +93 -0
- package/packages/chrome-attach-extension/dist/popup.js +79 -0
- package/packages/chrome-attach-extension/dist/recorder-content.js +96 -0
- package/packages/chrome-attach-extension/dist/recorder-page.js +282 -0
- package/packages/firefox-attach-extension/README.md +13 -0
- package/packages/firefox-attach-extension/dist/background.js +1622 -0
- package/packages/firefox-attach-extension/dist/icon.svg +6 -0
- package/packages/firefox-attach-extension/dist/manifest.json +44 -0
- package/packages/firefox-attach-extension/dist/options.html +312 -0
- package/packages/firefox-attach-extension/dist/options.js +540 -0
- package/packages/firefox-attach-extension/dist/popup.html +93 -0
- package/packages/firefox-attach-extension/dist/popup.js +64 -0
- package/packages/firefox-attach-extension/dist/recorder-content.js +90 -0
- package/packages/firefox-attach-extension/dist/recorder-page.js +318 -0
package/.env.example.client
CHANGED
|
@@ -29,7 +29,7 @@ GATEWAY_WS_URL=wss://your-domain.example/api/gateway/ws
|
|
|
29
29
|
GATEWAY_WS_PATH=/api/gateway/ws
|
|
30
30
|
GATEWAY_TOKEN=change_me_gateway_token
|
|
31
31
|
GATEWAY_USER_UUID=
|
|
32
|
-
|
|
32
|
+
GATEWAY_AUTH_TOKEN=
|
|
33
33
|
|
|
34
34
|
TERMINAL_SHELL=bash
|
|
35
35
|
TERMINAL_COLS=120
|
|
@@ -71,6 +71,10 @@ BROWSER_WAIT_UNTIL=load
|
|
|
71
71
|
# BROWSER_EXECUTABLE_PATH=
|
|
72
72
|
# BROWSER_CHANNEL=chrome
|
|
73
73
|
BROWSER_SLOW_MO_MS=0
|
|
74
|
+
# BROWSER_ATTACH_ENABLED=true
|
|
75
|
+
# BROWSER_ATTACH_WS_HOST=127.0.0.1
|
|
76
|
+
# BROWSER_ATTACH_WS_PORT=9999
|
|
77
|
+
# BROWSER_ATTACH_WS_PATH=/browser-attach/ws
|
|
74
78
|
|
|
75
79
|
NAMESPACE=mcp
|
|
76
80
|
NODE_ID=agent
|
package/.env.example.gateway
CHANGED
|
@@ -29,12 +29,27 @@ MCP_HTTP_PATH=/mcp
|
|
|
29
29
|
MCP_HTTP_ENABLE_DEBUG_ROUTES=false
|
|
30
30
|
MCP_HTTP_ENABLE_PRUNE_ROUTE=false
|
|
31
31
|
|
|
32
|
+
# ChatGPT / Claude OAuth connector. Setting any OAuth value enables the facade.
|
|
33
|
+
# TELLYMCP_PUBLIC_URL=https://your-domain.example/api
|
|
34
|
+
# TELLYMCP_OAUTH_ISSUER=https://your-domain.example/api
|
|
35
|
+
# TELLYMCP_OAUTH_AUDIENCE=https://your-domain.example/api
|
|
36
|
+
# TELLYMCP_MAGIC_TOKEN=change_me_private_connector_token
|
|
37
|
+
# TELLYMCP_MAGIC_TOKEN_HASH=sha256:<hex>
|
|
38
|
+
# TELLYMCP_OAUTH_CLIENT_ID=tellymcp
|
|
39
|
+
# TELLYMCP_OAUTH_CLIENT_SECRET=
|
|
40
|
+
# TELLYMCP_ALLOWED_REDIRECT_URIS=https://chatgpt.com/connector/oauth/...,https://claude.ai/api/mcp/auth_callback
|
|
41
|
+
# TELLYMCP_OAUTH_PRIVATE_KEY_PEM="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"
|
|
42
|
+
# TELLYMCP_AUTH_CODE_TTL_SECONDS=300
|
|
43
|
+
# TELLYMCP_OAUTH_SCOPES=tellymcp:read tellymcp:write
|
|
44
|
+
# TELLYMCP_OAUTH_KEY_ID=tellymcp-oauth
|
|
45
|
+
|
|
32
46
|
DISTRIBUTED_MODE=gateway
|
|
47
|
+
# Also used to derive short-lived file URLs under /api/files/.
|
|
33
48
|
GATEWAY_PUBLIC_URL=https://your-domain.example/api/gateway
|
|
34
49
|
GATEWAY_WS_URL=wss://your-domain.example/api/gateway/ws
|
|
35
50
|
GATEWAY_WS_PATH=/api/gateway/ws
|
|
36
51
|
GATEWAY_TOKEN=change_me_gateway_token
|
|
37
|
-
|
|
52
|
+
GATEWAY_AUTH_TOKEN=
|
|
38
53
|
|
|
39
54
|
ROOT_PREFIX=/api
|
|
40
55
|
PORT=8080
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,27 @@
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
5
|
### Added
|
|
6
|
+
|
|
7
|
+
- Добавлены связанные MCP tools `get_file_list` и `get_file` для получения
|
|
8
|
+
файлов из workspace выбранной live-консоли через gateway. Первый возвращает
|
|
9
|
+
список managed files и точные пути, второй принимает `file_path` либо
|
|
10
|
+
`selector=latest_screenshot`. По умолчанию `get_file(type="url")` возвращает
|
|
11
|
+
короткоживущую download-ссылку в `data`; временная gateway-копия хранится в
|
|
12
|
+
`.tellymcp/tmp/file-links`, а `type="base64"` остаётся fallback.
|
|
13
|
+
- Добавлен явный режим `get_file(type="image")`: download URL остаётся в
|
|
14
|
+
`structuredContent.data`, сам structured type равен `image`, а изображение
|
|
15
|
+
возвращается отдельным нативным MCP-блоком, чтобы Claude и другие совместимые
|
|
16
|
+
клиенты могли рендерить его inline.
|
|
17
|
+
- Для Claude.ai сохранён совместимый `type="base64"`: полный JSON вместе с raw
|
|
18
|
+
base64 в `data` возвращается обычным MCP text-блоком без native image, поскольку
|
|
19
|
+
некоторые MCP-host адаптеры заменяют изображение на `[image]` и скрывают
|
|
20
|
+
structured output от модели.
|
|
21
|
+
- Добавлен `get_file(type="text")` для прямого чтения UTF-8 Markdown и исходников
|
|
22
|
+
через native MCP text-блок. Для `.ts`, `.tsx` и других source-расширений добавлены
|
|
23
|
+
текстовые MIME overrides.
|
|
24
|
+
- Доступ к live `.env`, credential stores, private-key расширениям и чувствительным
|
|
25
|
+
директориям теперь блокируется на клиенте до чтения или отправки файла; выход
|
|
26
|
+
за workspace и через symlink по-прежнему запрещён.
|
|
6
27
|
- Перенос `telegram_mcp` на сервисную архитектуру `Moleculer`:
|
|
7
28
|
- `telegramMcp.runtime`
|
|
8
29
|
- `telegramMcp.http`
|
|
@@ -74,6 +95,14 @@
|
|
|
74
95
|
- безопасные packaged templates для `.env`
|
|
75
96
|
|
|
76
97
|
### Changed
|
|
98
|
+
|
|
99
|
+
- Общее чтение workspace-файлов теперь проверяет реальный путь после разрешения
|
|
100
|
+
symlink и не позволяет выйти за пределы workspace.
|
|
101
|
+
- Telegram Mini App Live Console переведена на WS-only rendering:
|
|
102
|
+
- HTTP polling и `/api/view` удалены
|
|
103
|
+
- после разрыва WebSocket автоматически восстанавливается с exponential backoff
|
|
104
|
+
- размеры xterm рассчитываются официальным `@xterm/addon-fit`
|
|
105
|
+
- resize колонок и строк передаётся локальным и relay PTY
|
|
77
106
|
- Полностью убран legacy standalone MCP transport. `telegram_mcp` работает только через REST/MCP over HTTP.
|
|
78
107
|
- Локальный standalone HTTP listener убран; `telegram_mcp` больше не поднимает отдельный сервер вне Moleculer gateway.
|
|
79
108
|
- UI Telegram переосмыслен по двум режимам:
|
|
@@ -113,6 +142,7 @@
|
|
|
113
142
|
- старый `go/node terminal-proxy` path полностью удалён, поддерживается только прямой локальный terminal runtime
|
|
114
143
|
|
|
115
144
|
### Fixed
|
|
145
|
+
|
|
116
146
|
- Исправлен `Headers have already sent` при работе MCP/WebApp через общий HTTP runtime.
|
|
117
147
|
- Исправлены route/alias проблемы после перехода под `${ROOT_PREFIX}`.
|
|
118
148
|
- Исправлены зависания Mini App bootstrap и проблемы с relative WebApp routes.
|
package/README-ru.md
CHANGED
|
@@ -27,8 +27,12 @@
|
|
|
27
27
|
|
|
28
28
|
- даёт MCP tools для human-in-the-loop через Telegram
|
|
29
29
|
- позволяет одной консоли агента ставить задачу другой консоли
|
|
30
|
+
- позволяет MCP chat-клиенту получать проектный текст, изображения и артефакты выбранной консоли
|
|
30
31
|
- хранит structured xchange records в `.mcp-xchange`
|
|
31
32
|
- поддерживает browser automation через Playwright
|
|
33
|
+
- умеет attach к уже открытому Firefox или Chrome через bundled local extensions
|
|
34
|
+
- умеет писать structured browser bundles в `.mcp-xchange/web/...` с HTML, network и console артефактами
|
|
35
|
+
- умеет инжектить helper scripts в attached tabs или Playwright pages через `browser_inject_script`
|
|
32
36
|
- отдаёт Telegram Mini App / Live View с gateway
|
|
33
37
|
- поддерживает polling и webhook на gateway
|
|
34
38
|
- поставляет встроенный Codex plugin со skills под типовые workflow
|
|
@@ -63,6 +67,7 @@ Gateway
|
|
|
63
67
|
- `telegram_message`
|
|
64
68
|
- `notify_telegram`
|
|
65
69
|
- `browser_screenshot(send_to_telegram=true)`
|
|
70
|
+
- `get_file` для возврата скриншотов и артефактов в MCP chat-клиент
|
|
66
71
|
|
|
67
72
|
Для agent-to-agent:
|
|
68
73
|
|
|
@@ -76,9 +81,22 @@ Gateway
|
|
|
76
81
|
- `browser_open`
|
|
77
82
|
- `browser_click`
|
|
78
83
|
- `browser_fill`
|
|
84
|
+
- `browser_inject_script`
|
|
79
85
|
- `browser_press`
|
|
80
86
|
- `browser_wait_for`
|
|
81
87
|
- `browser_screenshot`
|
|
88
|
+
- `browser_recording_start`
|
|
89
|
+
- `browser_recording_stop`
|
|
90
|
+
- `browser_recording_status`
|
|
91
|
+
|
|
92
|
+
Файлы:
|
|
93
|
+
|
|
94
|
+
- `get_file_list(source=..., limit=...)`
|
|
95
|
+
- `get_file(file_path=..., type="url")`
|
|
96
|
+
- `get_file(file_path=..., type="image")`
|
|
97
|
+
- `get_file(file_path=..., type="text")`
|
|
98
|
+
- `get_file(file_path=..., type="base64")`
|
|
99
|
+
- `get_file(selector="latest_screenshot")`
|
|
82
100
|
|
|
83
101
|
Синхронизация инструкций:
|
|
84
102
|
|
|
@@ -105,6 +123,18 @@ npm install -g @deadragdoll/tellymcp
|
|
|
105
123
|
tellymcp browser install
|
|
106
124
|
```
|
|
107
125
|
|
|
126
|
+
Если нужны attach extensions для существующего Firefox/Chrome:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
tellymcp extension firefox
|
|
130
|
+
tellymcp extension chrome
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Команда выгружает готовые unpacked bundles в текущий каталог:
|
|
134
|
+
|
|
135
|
+
- `./tellymcp-firefox-attach`
|
|
136
|
+
- `./tellymcp-chrome-attach`
|
|
137
|
+
|
|
108
138
|
Если используешь Codex:
|
|
109
139
|
|
|
110
140
|
```bash
|
|
@@ -138,6 +168,7 @@ tellymcp init gateway
|
|
|
138
168
|
- `GATEWAY_PUBLIC_URL`
|
|
139
169
|
- `GATEWAY_WS_URL`
|
|
140
170
|
- `GATEWAY_TOKEN`
|
|
171
|
+
- `GATEWAY_AUTH_TOKEN`
|
|
141
172
|
|
|
142
173
|
Запуск:
|
|
143
174
|
|
|
@@ -164,6 +195,7 @@ tellymcp init client
|
|
|
164
195
|
- `GATEWAY_PUBLIC_URL`
|
|
165
196
|
- `GATEWAY_WS_URL`
|
|
166
197
|
- `GATEWAY_TOKEN`
|
|
198
|
+
- `GATEWAY_AUTH_TOKEN` (тот же transport-токен, который задан на gateway)
|
|
167
199
|
- `GATEWAY_USER_UUID`, если консоль должна быть видна конкретному владельцу в gateway-боте
|
|
168
200
|
|
|
169
201
|
Рекомендуется:
|
|
@@ -356,6 +388,7 @@ tellymcp system-prune --env .env --yes
|
|
|
356
388
|
- [README.md](./README.md)
|
|
357
389
|
- [STANDALONE.md](./docs/STANDALONE.md)
|
|
358
390
|
- [STANDALONE-ru.md](./docs/STANDALONE-ru.md)
|
|
391
|
+
- [CHAT_CONNECTOR.md](./docs/CHAT_CONNECTOR.md) — OAuth-коннектор ChatGPT/Claude
|
|
359
392
|
- [TOOLS.md](./TOOLS.md)
|
|
360
393
|
- [screenshots/README.md](./screenshots/README.md)
|
|
361
394
|
|
package/README.md
CHANGED
|
@@ -27,8 +27,12 @@ The current model is gateway-first:
|
|
|
27
27
|
|
|
28
28
|
- exposes MCP tools for human Telegram interaction
|
|
29
29
|
- lets one agent ask another agent to do work and return files or notes
|
|
30
|
+
- lets MCP chat clients retrieve project text, images, and artifacts from a selected console
|
|
30
31
|
- stores structured xchange records in `.mcp-xchange`
|
|
31
32
|
- supports browser automation with Playwright
|
|
33
|
+
- can attach to an already running Firefox or Chrome tab through bundled local extensions
|
|
34
|
+
- records browser sessions into structured `.mcp-xchange/web/...` bundles with HTML, network and console artifacts
|
|
35
|
+
- can inject helper scripts into attached tabs or Playwright pages through `browser_inject_script`
|
|
32
36
|
- serves the Telegram Mini App / Live View from the gateway
|
|
33
37
|
- supports Telegram polling or webhook mode on the gateway
|
|
34
38
|
- ships a bundled Codex workflow plugin for better agent behavior
|
|
@@ -63,6 +67,7 @@ Human-facing:
|
|
|
63
67
|
- `telegram_message` records
|
|
64
68
|
- `notify_telegram`
|
|
65
69
|
- `browser_screenshot(send_to_telegram=true)`
|
|
70
|
+
- `get_file` for returning screenshots and artifacts to MCP chat clients
|
|
66
71
|
|
|
67
72
|
Agent-to-agent:
|
|
68
73
|
|
|
@@ -76,9 +81,22 @@ Browser:
|
|
|
76
81
|
- `browser_open`
|
|
77
82
|
- `browser_click`
|
|
78
83
|
- `browser_fill`
|
|
84
|
+
- `browser_inject_script`
|
|
79
85
|
- `browser_press`
|
|
80
86
|
- `browser_wait_for`
|
|
81
87
|
- `browser_screenshot`
|
|
88
|
+
- `browser_recording_start`
|
|
89
|
+
- `browser_recording_stop`
|
|
90
|
+
- `browser_recording_status`
|
|
91
|
+
|
|
92
|
+
Files:
|
|
93
|
+
|
|
94
|
+
- `get_file_list(source=..., limit=...)`
|
|
95
|
+
- `get_file(file_path=..., type="url")`
|
|
96
|
+
- `get_file(file_path=..., type="image")`
|
|
97
|
+
- `get_file(file_path=..., type="text")`
|
|
98
|
+
- `get_file(file_path=..., type="base64")`
|
|
99
|
+
- `get_file(selector="latest_screenshot")`
|
|
82
100
|
|
|
83
101
|
Tools sync:
|
|
84
102
|
|
|
@@ -105,6 +123,18 @@ Optional browser runtime:
|
|
|
105
123
|
tellymcp browser install
|
|
106
124
|
```
|
|
107
125
|
|
|
126
|
+
Optional attached-browser extensions:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
tellymcp extension firefox
|
|
130
|
+
tellymcp extension chrome
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
This exports unpacked extension bundles into the current directory:
|
|
134
|
+
|
|
135
|
+
- `./tellymcp-firefox-attach`
|
|
136
|
+
- `./tellymcp-chrome-attach`
|
|
137
|
+
|
|
108
138
|
Optional Codex workflow plugin:
|
|
109
139
|
|
|
110
140
|
```bash
|
|
@@ -138,6 +168,7 @@ Required gateway values:
|
|
|
138
168
|
- `GATEWAY_PUBLIC_URL`
|
|
139
169
|
- `GATEWAY_WS_URL`
|
|
140
170
|
- `GATEWAY_TOKEN`
|
|
171
|
+
- `GATEWAY_AUTH_TOKEN`
|
|
141
172
|
|
|
142
173
|
Then run:
|
|
143
174
|
|
|
@@ -164,6 +195,7 @@ Required client values:
|
|
|
164
195
|
- `GATEWAY_PUBLIC_URL`
|
|
165
196
|
- `GATEWAY_WS_URL`
|
|
166
197
|
- `GATEWAY_TOKEN`
|
|
198
|
+
- `GATEWAY_AUTH_TOKEN` (the same transport token configured on the gateway)
|
|
167
199
|
- `GATEWAY_USER_UUID` if this console should be scoped to a specific Telegram owner
|
|
168
200
|
|
|
169
201
|
Recommended:
|
|
@@ -355,6 +387,7 @@ tellymcp system-prune --env .env --yes
|
|
|
355
387
|
- [README-ru.md](./README-ru.md)
|
|
356
388
|
- [STANDALONE.md](./docs/STANDALONE.md)
|
|
357
389
|
- [STANDALONE-ru.md](./docs/STANDALONE-ru.md)
|
|
390
|
+
- [CHAT_CONNECTOR.md](./docs/CHAT_CONNECTOR.md) — ChatGPT/Claude OAuth connector
|
|
358
391
|
- [TOOLS.md](./TOOLS.md)
|
|
359
392
|
- [screenshots/README.md](./screenshots/README.md)
|
|
360
393
|
|