@pixelbyte-software/pixcode 1.53.3 → 1.53.5
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/dist/assets/{index-CZZiJpxs.js → index-CyeODv14.js} +155 -155
- package/dist/index.html +1 -1
- package/dist-server/server/database/db.js +28 -0
- package/dist-server/server/database/db.js.map +1 -1
- package/dist-server/server/routes/telegram.js +16 -2
- package/dist-server/server/routes/telegram.js.map +1 -1
- package/dist-server/server/services/telegram/bot.js +15 -9
- package/dist-server/server/services/telegram/bot.js.map +1 -1
- package/dist-server/server/services/telegram/control-center.js +406 -67
- package/dist-server/server/services/telegram/control-center.js.map +1 -1
- package/dist-server/server/services/telegram/telegram-gateway.js +220 -0
- package/dist-server/server/services/telegram/telegram-gateway.js.map +1 -0
- package/dist-server/server/services/telegram/telegram-http-client.js +91 -48
- package/dist-server/server/services/telegram/telegram-http-client.js.map +1 -1
- package/dist-server/server/services/telegram/translations.js +18 -0
- package/dist-server/server/services/telegram/translations.js.map +1 -1
- package/package.json +1 -1
- package/scripts/smoke/telegram-control.mjs +10 -1
- package/server/database/db.js +28 -0
- package/server/routes/telegram.js +25 -2
- package/server/services/telegram/bot.js +14 -9
- package/server/services/telegram/control-center.js +427 -66
- package/server/services/telegram/telegram-gateway.js +250 -0
- package/server/services/telegram/telegram-http-client.js +95 -45
- package/server/services/telegram/translations.js +18 -0
|
@@ -53,17 +53,21 @@ async function callApi(token, method, params, { signal } = {}) {
|
|
|
53
53
|
return body.result;
|
|
54
54
|
}
|
|
55
55
|
export class TelegramHttpBot extends EventEmitter {
|
|
56
|
-
constructor(token, { polling = true, pollTimeoutSec = 30 } = {}) {
|
|
56
|
+
constructor(token, { polling = true, pollTimeoutSec = 30, pollLimit = 25, dropPendingUpdates = true } = {}) {
|
|
57
57
|
super();
|
|
58
58
|
if (!token)
|
|
59
59
|
throw new Error('TelegramHttpBot: token is required');
|
|
60
60
|
this._token = token;
|
|
61
61
|
this._pollTimeoutSec = pollTimeoutSec;
|
|
62
|
+
this._pollLimit = pollLimit;
|
|
63
|
+
this._dropPendingUpdates = dropPendingUpdates;
|
|
62
64
|
this._offset = 0;
|
|
63
65
|
this._polling = false;
|
|
64
66
|
this._abortController = null;
|
|
67
|
+
this._pollingLoop = null;
|
|
68
|
+
this._pollingErrorCount = 0;
|
|
65
69
|
if (polling)
|
|
66
|
-
this.
|
|
70
|
+
this.startPolling();
|
|
67
71
|
}
|
|
68
72
|
// ---------- Public API (mirrors node-telegram-bot-api surface) ----------
|
|
69
73
|
async getMe() {
|
|
@@ -95,58 +99,97 @@ export class TelegramHttpBot extends EventEmitter {
|
|
|
95
99
|
}
|
|
96
100
|
catch { /* ignore */ }
|
|
97
101
|
this._abortController = null;
|
|
102
|
+
if (this._pollingLoop) {
|
|
103
|
+
await this._pollingLoop.catch(() => { });
|
|
104
|
+
this._pollingLoop = null;
|
|
105
|
+
}
|
|
98
106
|
}
|
|
99
107
|
// ---------- Polling loop ----------
|
|
100
|
-
async
|
|
108
|
+
async startPolling({ dropPendingUpdates = this._dropPendingUpdates } = {}) {
|
|
109
|
+
if (this._polling)
|
|
110
|
+
return;
|
|
101
111
|
this._polling = true;
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
112
|
+
this._pollingLoop = this._runPollingLoop({ dropPendingUpdates });
|
|
113
|
+
await Promise.resolve();
|
|
114
|
+
}
|
|
115
|
+
async _dropPendingUpdatesBeforePolling() {
|
|
116
|
+
try {
|
|
117
|
+
await callApi(this._token, 'deleteWebhook', { drop_pending_updates: true });
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
121
|
+
this.emit('polling_error', err);
|
|
122
|
+
}
|
|
123
|
+
// Fallback for environments where deleteWebhook is rejected: a negative
|
|
124
|
+
// offset asks Telegram to forget older queued updates.
|
|
125
|
+
try {
|
|
126
|
+
const updates = await callApi(this._token, 'getUpdates', {
|
|
127
|
+
offset: -1,
|
|
128
|
+
limit: 1,
|
|
129
|
+
timeout: 0,
|
|
130
|
+
allowed_updates: ['message', 'callback_query'],
|
|
131
|
+
});
|
|
132
|
+
const lastUpdate = Array.isArray(updates) ? updates.at(-1) : null;
|
|
133
|
+
if (typeof lastUpdate?.update_id === 'number') {
|
|
134
|
+
this._offset = lastUpdate.update_id + 1;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
this.emit('polling_error', err);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
async _emitSerial(eventName, payload) {
|
|
142
|
+
const listeners = this.listeners(eventName);
|
|
143
|
+
for (const listener of listeners) {
|
|
144
|
+
try {
|
|
145
|
+
await listener(payload);
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
this.emit('polling_error', err);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
async _runPollingLoop({ dropPendingUpdates }) {
|
|
153
|
+
if (dropPendingUpdates) {
|
|
154
|
+
await this._dropPendingUpdatesBeforePolling();
|
|
155
|
+
}
|
|
156
|
+
// Each iteration long-polls getUpdates for up to pollTimeoutSec, then
|
|
157
|
+
// loops immediately. We deliberately serialize update handling because a
|
|
158
|
+
// stale Telegram backlog can otherwise fan out into many expensive scans.
|
|
159
|
+
while (this._polling) {
|
|
160
|
+
this._abortController = new AbortController();
|
|
161
|
+
try {
|
|
162
|
+
const updates = await callApi(this._token, 'getUpdates', {
|
|
163
|
+
offset: this._offset,
|
|
164
|
+
limit: this._pollLimit,
|
|
165
|
+
timeout: this._pollTimeoutSec,
|
|
166
|
+
allowed_updates: ['message', 'callback_query'],
|
|
167
|
+
}, { signal: this._abortController.signal });
|
|
168
|
+
for (const update of updates) {
|
|
169
|
+
if (typeof update.update_id === 'number') {
|
|
170
|
+
this._offset = Math.max(this._offset, update.update_id + 1);
|
|
171
|
+
}
|
|
172
|
+
if (update.message) {
|
|
173
|
+
await this._emitSerial('message', update.message);
|
|
174
|
+
}
|
|
175
|
+
if (update.callback_query) {
|
|
176
|
+
await this._emitSerial('callback_query', update.callback_query);
|
|
135
177
|
}
|
|
136
178
|
}
|
|
137
|
-
|
|
138
|
-
// AbortError is the expected path when stopPolling() is called.
|
|
139
|
-
if (err?.name === 'AbortError' || !this._polling)
|
|
140
|
-
break;
|
|
141
|
-
this.emit('polling_error', err);
|
|
142
|
-
// Back off before retrying — rapid retries on 401/409 would
|
|
143
|
-
// otherwise spin at 100% CPU. Upstream consumer's polling_error
|
|
144
|
-
// handler may also call stopBot() on 401/409 which flips _polling
|
|
145
|
-
// off and breaks the loop on the next tick.
|
|
146
|
-
await new Promise((r) => setTimeout(r, 2000));
|
|
147
|
-
}
|
|
179
|
+
this._pollingErrorCount = 0;
|
|
148
180
|
}
|
|
149
|
-
|
|
181
|
+
catch (err) {
|
|
182
|
+
// AbortError is the expected path when stopPolling() is called.
|
|
183
|
+
if (err?.name === 'AbortError' || !this._polling)
|
|
184
|
+
break;
|
|
185
|
+
this.emit('polling_error', err);
|
|
186
|
+
const status = err?.response?.statusCode || err?.code;
|
|
187
|
+
const baseDelay = status === 409 ? 2000 : 1000;
|
|
188
|
+
const delay = Math.min(60_000, baseDelay * 2 ** this._pollingErrorCount);
|
|
189
|
+
this._pollingErrorCount = Math.min(this._pollingErrorCount + 1, 6);
|
|
190
|
+
await new Promise((r) => setTimeout(r, delay));
|
|
191
|
+
}
|
|
192
|
+
}
|
|
150
193
|
}
|
|
151
194
|
}
|
|
152
195
|
//# sourceMappingURL=telegram-http-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram-http-client.js","sourceRoot":"","sources":["../../../../server/services/telegram/telegram-http-client.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;;;;;;;;;GAcG;AAEH,MAAM,QAAQ,GAAG,8BAA8B,CAAC;AAEhD,MAAM,gBAAiB,SAAQ,KAAK;IAClC,YAAY,MAAM,EAAE,IAAI,EAAE,UAAU;QAClC,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,QAAQ,UAAU,EAAE,CAAC;QAC9D,KAAK,CAAC,YAAY,MAAM,YAAY,WAAW,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,mEAAmE;QACnE,+DAA+D;QAC/D,IAAI,CAAC,QAAQ,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,UAAU,IAAI,UAAU,CAAC;IAC7C,CAAC;CACF;AAED;;;GAGG;AACH,KAAK,UAAU,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;IAC3D,MAAM,GAAG,GAAG,GAAG,QAAQ,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;QAClC,MAAM;KACP,CAAC,CAAC;IACH,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QAAC,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,IAAI,GAAG,IAAI,CAAC;IAAC,CAAC;IACvD,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;QACzB,MAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC/C,YAAY,KAAK,EAAE,EAAE,OAAO,GAAG,IAAI,EAAE,cAAc,GAAG,EAAE,EAAE,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"telegram-http-client.js","sourceRoot":"","sources":["../../../../server/services/telegram/telegram-http-client.js"],"names":[],"mappings":"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"}
|
|
@@ -54,8 +54,11 @@ const EN = {
|
|
|
54
54
|
'control.button.refresh': 'Refresh',
|
|
55
55
|
'control.button.approve': 'Approve',
|
|
56
56
|
'control.button.deny': 'Deny',
|
|
57
|
+
'control.button.confirm': 'Confirm',
|
|
58
|
+
'control.button.cancel': 'Cancel',
|
|
57
59
|
'control.noProjects': 'No Pixcode projects were found yet. Add/open a project in Pixcode first.',
|
|
58
60
|
'control.pickProject': 'Pick the project Telegram should control:',
|
|
61
|
+
'control.projectNotFound': 'No project matched "{{query}}". Pick one from the list.',
|
|
59
62
|
'control.pickProvider': 'Pick the CLI provider Telegram should use:',
|
|
60
63
|
'control.modelsFor': 'Models for {{provider}}:',
|
|
61
64
|
'control.pickWorkflow': 'Pick an orchestration workflow:',
|
|
@@ -82,6 +85,12 @@ const EN = {
|
|
|
82
85
|
'control.authMenu': 'Pick a provider for OAuth/login instructions:',
|
|
83
86
|
'control.manualInstall': 'Manual install for {{provider}}:\n{{manual}}',
|
|
84
87
|
'control.installStarted': 'Install started for {{provider}}.\nJob: {{jobId}}\nCommand: {{command}}',
|
|
88
|
+
'control.confirmationRequired': 'This action needs confirmation before it can run.',
|
|
89
|
+
'control.confirmInstall': 'Confirm CLI install/repair for {{provider}}?',
|
|
90
|
+
'control.confirmCancelRun': 'Confirm cancel for workflow run {{runId}}?',
|
|
91
|
+
'control.confirmationExpired': 'That confirmation expired. Start the action again.',
|
|
92
|
+
'control.confirmationMissing': 'No matching confirmation is pending. Start the action again.',
|
|
93
|
+
'control.confirmationCanceled': 'Action canceled.',
|
|
85
94
|
'control.settingsTitle': 'Telegram settings',
|
|
86
95
|
'control.pickLanguage': 'Pick Telegram language:',
|
|
87
96
|
'control.menuExpired': 'This menu expired. Send /menu.',
|
|
@@ -155,8 +164,11 @@ const TR = {
|
|
|
155
164
|
'control.button.refresh': 'Yenile',
|
|
156
165
|
'control.button.approve': 'Onayla',
|
|
157
166
|
'control.button.deny': 'Reddet',
|
|
167
|
+
'control.button.confirm': 'Onayla',
|
|
168
|
+
'control.button.cancel': 'Vazgeç',
|
|
158
169
|
'control.noProjects': 'Henüz Pixcode projesi bulunamadı. Önce Pixcode içinde proje ekle/aç.',
|
|
159
170
|
'control.pickProject': 'Telegramın kontrol edeceği projeyi seç:',
|
|
171
|
+
'control.projectNotFound': '"{{query}}" ile eşleşen proje bulunamadı. Listeden birini seç.',
|
|
160
172
|
'control.pickProvider': 'Telegramın kullanacağı CLI sağlayıcısını seç:',
|
|
161
173
|
'control.modelsFor': '{{provider}} modelleri:',
|
|
162
174
|
'control.pickWorkflow': 'Bir orkestrasyon iş akışı seç:',
|
|
@@ -183,6 +195,12 @@ const TR = {
|
|
|
183
195
|
'control.authMenu': 'OAuth/giriş yönergeleri için sağlayıcı seç:',
|
|
184
196
|
'control.manualInstall': '{{provider}} manuel kurulum:\n{{manual}}',
|
|
185
197
|
'control.installStarted': '{{provider}} kurulumu başladı.\nİş: {{jobId}}\nKomut: {{command}}',
|
|
198
|
+
'control.confirmationRequired': 'Bu işlem çalışmadan önce onay gerektiriyor.',
|
|
199
|
+
'control.confirmInstall': '{{provider}} için CLI kurulum/onarım işlemini onaylıyor musun?',
|
|
200
|
+
'control.confirmCancelRun': '{{runId}} workflow çalışmasını iptal etmeyi onaylıyor musun?',
|
|
201
|
+
'control.confirmationExpired': 'Bu onayın süresi doldu. İşlemi yeniden başlat.',
|
|
202
|
+
'control.confirmationMissing': 'Bekleyen eşleşen bir onay yok. İşlemi yeniden başlat.',
|
|
203
|
+
'control.confirmationCanceled': 'İşlem iptal edildi.',
|
|
186
204
|
'control.settingsTitle': 'Telegram ayarları',
|
|
187
205
|
'control.pickLanguage': 'Telegram dilini seç:',
|
|
188
206
|
'control.menuExpired': 'Bu menünün süresi doldu. /menu gönder.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.js","sourceRoot":"","sources":["../../../../server/services/telegram/translations.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"translations.js","sourceRoot":"","sources":["../../../../server/services/telegram/translations.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixelbyte-software/pixcode",
|
|
3
|
-
"version": "1.53.
|
|
3
|
+
"version": "1.53.5",
|
|
4
4
|
"description": "Self-hosted AI coding agent control room for Claude Code, Cursor CLI, OpenAI Codex, Gemini CLI, Qwen Code, and OpenCode with chat, files, shell, Git, orchestration, API keys, Telegram, MCP, plugins, themes, and desktop/server deployment.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist-server/server/index.js",
|
|
@@ -25,7 +25,10 @@ const checks = [
|
|
|
25
25
|
source.includes("allowed_updates: ['message', 'callback_query']")
|
|
26
26
|
&& source.includes('answerCallbackQuery')
|
|
27
27
|
&& source.includes('editMessageText')
|
|
28
|
-
&&
|
|
28
|
+
&& (
|
|
29
|
+
source.includes("this.emit('callback_query'")
|
|
30
|
+
|| source.includes("_emitSerial('callback_query'")
|
|
31
|
+
)
|
|
29
32
|
),
|
|
30
33
|
},
|
|
31
34
|
{
|
|
@@ -41,6 +44,8 @@ const checks = [
|
|
|
41
44
|
&& source.includes('updateTelegramControlState')
|
|
42
45
|
&& source.includes('/api/agent')
|
|
43
46
|
&& source.includes('/api/orchestration/workflows')
|
|
47
|
+
&& source.includes('TELEGRAM_CONTROL_SCOPES')
|
|
48
|
+
&& source.includes('confirm_action')
|
|
44
49
|
),
|
|
45
50
|
},
|
|
46
51
|
{
|
|
@@ -51,6 +56,8 @@ const checks = [
|
|
|
51
56
|
&& source.includes('getControlState')
|
|
52
57
|
&& source.includes('updateControlState')
|
|
53
58
|
&& source.includes('remoteControlEnabled')
|
|
59
|
+
&& source.includes('routerEnabled')
|
|
60
|
+
&& source.includes('pendingConfirmation')
|
|
54
61
|
),
|
|
55
62
|
},
|
|
56
63
|
{
|
|
@@ -59,8 +66,10 @@ const checks = [
|
|
|
59
66
|
test: (source) => (
|
|
60
67
|
source.includes('controlEnabled')
|
|
61
68
|
&& source.includes('progressMode')
|
|
69
|
+
&& source.includes('routerEnabled')
|
|
62
70
|
&& source.includes('telegram.control.title')
|
|
63
71
|
&& source.includes('telegram.control.progressMode')
|
|
72
|
+
&& source.includes('telegram.router.title')
|
|
64
73
|
),
|
|
65
74
|
},
|
|
66
75
|
];
|
package/server/database/db.js
CHANGED
|
@@ -762,6 +762,12 @@ const appConfigDb = {
|
|
|
762
762
|
// ---------------------------------------------------------------------------
|
|
763
763
|
const DEFAULT_TELEGRAM_CONTROL_STATE = {
|
|
764
764
|
remoteControlEnabled: true,
|
|
765
|
+
routerEnabled: true,
|
|
766
|
+
routerMode: 'hybrid',
|
|
767
|
+
routerProvider: null,
|
|
768
|
+
routerModel: null,
|
|
769
|
+
confirmationPolicy: 'strict',
|
|
770
|
+
pendingConfirmation: null,
|
|
765
771
|
progressMode: 'final',
|
|
766
772
|
selectedProjectName: null,
|
|
767
773
|
selectedProjectPath: null,
|
|
@@ -776,14 +782,36 @@ function normalizeTelegramControlState(value = {}) {
|
|
|
776
782
|
const selectedProvider = ['claude', 'cursor', 'codex', 'gemini', 'qwen', 'opencode'].includes(raw.selectedProvider)
|
|
777
783
|
? raw.selectedProvider
|
|
778
784
|
: DEFAULT_TELEGRAM_CONTROL_STATE.selectedProvider;
|
|
785
|
+
const routerProvider = ['claude', 'cursor', 'codex', 'gemini', 'qwen', 'opencode'].includes(raw.routerProvider)
|
|
786
|
+
? raw.routerProvider
|
|
787
|
+
: null;
|
|
779
788
|
const progressMode = ['final', 'steps', 'all', 'errors'].includes(raw.progressMode)
|
|
780
789
|
? raw.progressMode
|
|
781
790
|
: DEFAULT_TELEGRAM_CONTROL_STATE.progressMode;
|
|
791
|
+
const pendingConfirmation = raw.pendingConfirmation && typeof raw.pendingConfirmation === 'object'
|
|
792
|
+
&& typeof raw.pendingConfirmation.id === 'string'
|
|
793
|
+
&& typeof raw.pendingConfirmation.action === 'string'
|
|
794
|
+
&& typeof raw.pendingConfirmation.expiresAt === 'string'
|
|
795
|
+
? {
|
|
796
|
+
id: raw.pendingConfirmation.id,
|
|
797
|
+
action: raw.pendingConfirmation.action,
|
|
798
|
+
payload: raw.pendingConfirmation.payload && typeof raw.pendingConfirmation.payload === 'object'
|
|
799
|
+
? raw.pendingConfirmation.payload
|
|
800
|
+
: {},
|
|
801
|
+
expiresAt: raw.pendingConfirmation.expiresAt,
|
|
802
|
+
}
|
|
803
|
+
: null;
|
|
782
804
|
|
|
783
805
|
return {
|
|
784
806
|
...DEFAULT_TELEGRAM_CONTROL_STATE,
|
|
785
807
|
...raw,
|
|
786
808
|
remoteControlEnabled: raw.remoteControlEnabled !== false,
|
|
809
|
+
routerEnabled: raw.routerEnabled !== false,
|
|
810
|
+
routerMode: raw.routerMode === 'hybrid' ? 'hybrid' : DEFAULT_TELEGRAM_CONTROL_STATE.routerMode,
|
|
811
|
+
routerProvider,
|
|
812
|
+
routerModel: typeof raw.routerModel === 'string' && raw.routerModel.trim() ? raw.routerModel.trim() : null,
|
|
813
|
+
confirmationPolicy: 'strict',
|
|
814
|
+
pendingConfirmation,
|
|
787
815
|
progressMode,
|
|
788
816
|
selectedProvider,
|
|
789
817
|
selectedProjectName: typeof raw.selectedProjectName === 'string' ? raw.selectedProjectName : null,
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
startBot,
|
|
10
10
|
stopBot,
|
|
11
11
|
} from '../services/telegram/bot.js';
|
|
12
|
+
import { TELEGRAM_PROGRESS_MODES, TELEGRAM_PROVIDERS } from '../services/telegram/telegram-gateway.js';
|
|
12
13
|
import { SUPPORTED_LANGUAGES } from '../services/telegram/translations.js';
|
|
13
14
|
|
|
14
15
|
const router = express.Router();
|
|
@@ -99,7 +100,17 @@ router.post('/pairing-code', (req, res) => {
|
|
|
99
100
|
// PATCH /api/telegram/link — update language / toggles on the user's link
|
|
100
101
|
router.patch('/link', (req, res) => {
|
|
101
102
|
try {
|
|
102
|
-
const {
|
|
103
|
+
const {
|
|
104
|
+
language,
|
|
105
|
+
notificationsEnabled,
|
|
106
|
+
bridgeEnabled,
|
|
107
|
+
controlEnabled,
|
|
108
|
+
progressMode,
|
|
109
|
+
routerEnabled,
|
|
110
|
+
routerProvider,
|
|
111
|
+
routerModel,
|
|
112
|
+
confirmationPolicy,
|
|
113
|
+
} = req.body || {};
|
|
103
114
|
const payload = {};
|
|
104
115
|
if (language !== undefined) payload.language = sanitizeLanguage(language);
|
|
105
116
|
if (notificationsEnabled !== undefined) payload.notificationsEnabled = Boolean(notificationsEnabled);
|
|
@@ -108,9 +119,21 @@ router.patch('/link', (req, res) => {
|
|
|
108
119
|
|
|
109
120
|
const controlPatch = {};
|
|
110
121
|
if (controlEnabled !== undefined) controlPatch.remoteControlEnabled = Boolean(controlEnabled);
|
|
111
|
-
if (progressMode !== undefined &&
|
|
122
|
+
if (progressMode !== undefined && TELEGRAM_PROGRESS_MODES.includes(progressMode)) {
|
|
112
123
|
controlPatch.progressMode = progressMode;
|
|
113
124
|
}
|
|
125
|
+
if (routerEnabled !== undefined) controlPatch.routerEnabled = Boolean(routerEnabled);
|
|
126
|
+
if (routerProvider !== undefined) {
|
|
127
|
+
controlPatch.routerProvider = TELEGRAM_PROVIDERS.includes(routerProvider) ? routerProvider : null;
|
|
128
|
+
}
|
|
129
|
+
if (routerModel !== undefined) {
|
|
130
|
+
controlPatch.routerModel = typeof routerModel === 'string' && routerModel.trim()
|
|
131
|
+
? routerModel.trim()
|
|
132
|
+
: null;
|
|
133
|
+
}
|
|
134
|
+
if (confirmationPolicy !== undefined) {
|
|
135
|
+
controlPatch.confirmationPolicy = 'strict';
|
|
136
|
+
}
|
|
114
137
|
if (Object.keys(controlPatch).length > 0) {
|
|
115
138
|
telegramLinksDb.updateControlState(req.user.id, controlPatch);
|
|
116
139
|
}
|
|
@@ -207,13 +207,17 @@ export const handleIncomingTelegramMessage = handleMessage;
|
|
|
207
207
|
const wirePollingErrors = () => {
|
|
208
208
|
if (!bot) return;
|
|
209
209
|
bot.on('polling_error', (err) => {
|
|
210
|
-
// 401 = bad token. 409 = another polling instance exists
|
|
211
|
-
//
|
|
210
|
+
// 401 = bad token. 409 = another polling instance exists; the HTTP
|
|
211
|
+
// client keeps retrying with backoff so an old poller can disappear.
|
|
212
212
|
const code = err?.response?.statusCode || err?.code;
|
|
213
|
-
lastError =
|
|
214
|
-
|
|
213
|
+
lastError = code === 409
|
|
214
|
+
? { code: 409, message: 'Another Telegram poller detected; retrying with backoff.' }
|
|
215
|
+
: { code: code || 'polling_error', message: err?.message || String(err) };
|
|
216
|
+
if (code === 401) {
|
|
215
217
|
console.error('[telegram] fatal polling error, stopping:', lastError);
|
|
216
218
|
stopBot().catch(() => {});
|
|
219
|
+
} else if (code === 409) {
|
|
220
|
+
console.warn('[telegram] polling conflict:', lastError);
|
|
217
221
|
} else {
|
|
218
222
|
console.warn('[telegram] polling error:', lastError);
|
|
219
223
|
}
|
|
@@ -234,7 +238,7 @@ export const startBot = async ({ token, persist = true } = {}) => {
|
|
|
234
238
|
// 409 conflicts on every long-poll.
|
|
235
239
|
if (bot) await stopBot();
|
|
236
240
|
|
|
237
|
-
const instance = new TelegramHttpBot(token, { polling: true });
|
|
241
|
+
const instance = new TelegramHttpBot(token, { polling: false, dropPendingUpdates: true });
|
|
238
242
|
// Validate the token first — if getMe fails we never want to persist a
|
|
239
243
|
// broken token or leave the poller running.
|
|
240
244
|
let me;
|
|
@@ -255,17 +259,18 @@ export const startBot = async ({ token, persist = true } = {}) => {
|
|
|
255
259
|
|
|
256
260
|
if (persist) telegramConfigDb.set(token, me.username);
|
|
257
261
|
|
|
258
|
-
bot.on('message', (msg) => {
|
|
259
|
-
handleMessage(msg).catch((err) => {
|
|
262
|
+
bot.on('message', async (msg) => {
|
|
263
|
+
await handleMessage(msg).catch((err) => {
|
|
260
264
|
console.error('[telegram] handleMessage crashed:', err);
|
|
261
265
|
});
|
|
262
266
|
});
|
|
263
|
-
bot.on('callback_query', (query) => {
|
|
264
|
-
handleCallbackQuery(query).catch((err) => {
|
|
267
|
+
bot.on('callback_query', async (query) => {
|
|
268
|
+
await handleCallbackQuery(query).catch((err) => {
|
|
265
269
|
console.error('[telegram] handleCallbackQuery crashed:', err);
|
|
266
270
|
});
|
|
267
271
|
});
|
|
268
272
|
wirePollingErrors();
|
|
273
|
+
await bot.startPolling({ dropPendingUpdates: true });
|
|
269
274
|
|
|
270
275
|
console.log(`[telegram] bot started as @${me.username}`);
|
|
271
276
|
telegramEvents.emit('started', { username: me.username });
|