@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.
@@ -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._startPolling();
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 _startPolling() {
108
+ async startPolling({ dropPendingUpdates = this._dropPendingUpdates } = {}) {
109
+ if (this._polling)
110
+ return;
101
111
  this._polling = true;
102
- // Kick off a non-awaited loop. Each iteration long-polls getUpdates for
103
- // up to pollTimeoutSec, then loops immediately. We deliberately serialize
104
- // (no concurrent long-polls) because Telegram rejects that with 409.
105
- (async () => {
106
- while (this._polling) {
107
- this._abortController = new AbortController();
108
- try {
109
- const updates = await callApi(this._token, 'getUpdates', {
110
- offset: this._offset,
111
- timeout: this._pollTimeoutSec,
112
- allowed_updates: ['message', 'callback_query'],
113
- }, { signal: this._abortController.signal });
114
- for (const update of updates) {
115
- if (typeof update.update_id === 'number') {
116
- this._offset = Math.max(this._offset, update.update_id + 1);
117
- }
118
- if (update.message) {
119
- try {
120
- this.emit('message', update.message);
121
- }
122
- catch (err) {
123
- // Don't let a listener exception break the poll loop.
124
- this.emit('polling_error', err);
125
- }
126
- }
127
- if (update.callback_query) {
128
- try {
129
- this.emit('callback_query', update.callback_query);
130
- }
131
- catch (err) {
132
- this.emit('polling_error', err);
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
- catch (err) {
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":"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"}
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,SAAS,GAAG,EAAE,EAAE,kBAAkB,GAAG,IAAI,EAAE,GAAG,EAAE;QACxG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;QAC5B,IAAI,OAAO;YAAE,IAAI,CAAC,YAAY,EAAE,CAAC;IACnC,CAAC;IAED,2EAA2E;IAE3E,KAAK,CAAC,KAAK;QACT,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YACzC,OAAO,EAAE,MAAM;YACf,IAAI;YACJ,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE;QACpC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE;YAC7C,IAAI;YACJ,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,eAAe,EAAE,KAAK,GAAG,EAAE;QACnD,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,EAAE;YACjD,iBAAiB,EAAE,eAAe;YAClC,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE;QAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC;YAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,qCAAqC;IAErC,KAAK,CAAC,YAAY,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACvE,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACjE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,gCAAgC;QACpC,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;QAED,wEAAwE;QACxE,uDAAuD;QACvD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE;gBACvD,MAAM,EAAE,CAAC,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,CAAC;gBACV,eAAe,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;aAC/C,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAClE,IAAI,OAAO,UAAU,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC9C,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAE,kBAAkB,EAAE;QAC1C,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,gCAAgC,EAAE,CAAC;QAChD,CAAC;QAED,sEAAsE;QACtE,yEAAyE;QACzE,0EAA0E;QAC1E,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,IAAI,CAAC,MAAM,EACX,YAAY,EACZ;oBACE,MAAM,EAAE,IAAI,CAAC,OAAO;oBACpB,KAAK,EAAE,IAAI,CAAC,UAAU;oBACtB,OAAO,EAAE,IAAI,CAAC,eAAe;oBAC7B,eAAe,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;iBAC/C,EACD,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CACzC,CAAC;gBACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;wBACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;oBAC9D,CAAC;oBACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;oBACpD,CAAC;oBACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;wBAC1B,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;oBAClE,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,gEAAgE;gBAChE,IAAI,GAAG,EAAE,IAAI,KAAK,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAAE,MAAM;gBACxD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBAChC,MAAM,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,UAAU,IAAI,GAAG,EAAE,IAAI,CAAC;gBACtD,MAAM,SAAS,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACzE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -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",
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
- && source.includes("this.emit('callback_query'")
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
  ];
@@ -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 { language, notificationsEnabled, bridgeEnabled, controlEnabled, progressMode } = req.body || {};
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 && ['final', 'steps', 'all'].includes(progressMode)) {
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. Both mean we
211
- // should stop and surface the error rather than thrash.
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 = { code: code || 'polling_error', message: err?.message || String(err) };
214
- if (code === 401 || code === 409) {
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 });