cli-jaw 2.2.9 → 2.2.11
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.ja.md +15 -0
- package/README.ko.md +15 -0
- package/README.md +19 -4
- package/dist/bin/cli-jaw.js +5 -1
- package/dist/bin/cli-jaw.js.map +1 -1
- package/dist/bin/commands/doctor.js +66 -1
- package/dist/bin/commands/doctor.js.map +1 -1
- package/dist/bin/commands/init.js +107 -8
- package/dist/bin/commands/init.js.map +1 -1
- package/dist/bin/commands/slack.js +190 -0
- package/dist/bin/commands/slack.js.map +1 -0
- package/dist/lib/upload.js +5 -1
- package/dist/lib/upload.js.map +1 -1
- package/dist/server.js +1 -0
- package/dist/server.js.map +1 -1
- package/dist/src/agent/alert-escalation.js +1 -1
- package/dist/src/agent/alert-escalation.js.map +1 -1
- package/dist/src/agent/codex-app-catalog.js +57 -0
- package/dist/src/agent/codex-app-catalog.js.map +1 -0
- package/dist/src/agent/codex-app-client.js +89 -7
- package/dist/src/agent/codex-app-client.js.map +1 -1
- package/dist/src/agent/pi-rpc-verdict.js +22 -0
- package/dist/src/agent/pi-rpc-verdict.js.map +1 -0
- package/dist/src/agent/pi-runtime.js +240 -0
- package/dist/src/agent/pi-runtime.js.map +1 -1
- package/dist/src/agent/runtime-pool.js +445 -0
- package/dist/src/agent/runtime-pool.js.map +1 -0
- package/dist/src/agent/spawn.js +395 -240
- package/dist/src/agent/spawn.js.map +1 -1
- package/dist/src/cli/command-context.js +5 -2
- package/dist/src/cli/command-context.js.map +1 -1
- package/dist/src/cli/commands.js +43 -39
- package/dist/src/cli/commands.js.map +1 -1
- package/dist/src/cli/handlers-runtime.js +15 -7
- package/dist/src/cli/handlers-runtime.js.map +1 -1
- package/dist/src/cli/handlers-search.js +1 -1
- package/dist/src/cli/handlers-search.js.map +1 -1
- package/dist/src/cli/handlers-skill-invoke.js +1 -1
- package/dist/src/cli/handlers-skill-invoke.js.map +1 -1
- package/dist/src/cli/handlers-workflows.js +1 -1
- package/dist/src/cli/handlers-workflows.js.map +1 -1
- package/dist/src/cli/handlers.js +1 -1
- package/dist/src/cli/handlers.js.map +1 -1
- package/dist/src/cli/opencodex-models.js +40 -7
- package/dist/src/cli/opencodex-models.js.map +1 -1
- package/dist/src/cli/registry-live.js +6 -5
- package/dist/src/cli/registry-live.js.map +1 -1
- package/dist/src/command-contract/catalog.js +4 -0
- package/dist/src/command-contract/catalog.js.map +1 -1
- package/dist/src/core/config.js +69 -4
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/core/runtime-settings.js +17 -0
- package/dist/src/core/runtime-settings.js.map +1 -1
- package/dist/src/core/settings-merge.js +1 -1
- package/dist/src/core/settings-merge.js.map +1 -1
- package/dist/src/discord/bot.js +29 -14
- package/dist/src/discord/bot.js.map +1 -1
- package/dist/src/discord/commands.js +5 -4
- package/dist/src/discord/commands.js.map +1 -1
- package/dist/src/discord/discord-file.js +8 -2
- package/dist/src/discord/discord-file.js.map +1 -1
- package/dist/src/discord/forwarder.js +17 -19
- package/dist/src/discord/forwarder.js.map +1 -1
- package/dist/src/discord/send-only-client.js +9 -1
- package/dist/src/discord/send-only-client.js.map +1 -1
- package/dist/src/manager/dashboard-service.js +38 -1
- package/dist/src/manager/dashboard-service.js.map +1 -1
- package/dist/src/manager/telegram-hub/hub-bot.js +47 -29
- package/dist/src/manager/telegram-hub/hub-bot.js.map +1 -1
- package/dist/src/messaging/channel-health.js +32 -0
- package/dist/src/messaging/channel-health.js.map +1 -1
- package/dist/src/messaging/chunk.js +376 -0
- package/dist/src/messaging/chunk.js.map +1 -0
- package/dist/src/messaging/dedupe.js +104 -0
- package/dist/src/messaging/dedupe.js.map +1 -0
- package/dist/src/messaging/fold.js +210 -0
- package/dist/src/messaging/fold.js.map +1 -0
- package/dist/src/messaging/redact.js +577 -0
- package/dist/src/messaging/redact.js.map +1 -0
- package/dist/src/messaging/retry.js +76 -0
- package/dist/src/messaging/retry.js.map +1 -0
- package/dist/src/messaging/runtime.js +6 -3
- package/dist/src/messaging/runtime.js.map +1 -1
- package/dist/src/messaging/send.js +45 -15
- package/dist/src/messaging/send.js.map +1 -1
- package/dist/src/messaging/slack-target.js +50 -0
- package/dist/src/messaging/slack-target.js.map +1 -0
- package/dist/src/messaging/types.js.map +1 -1
- package/dist/src/orchestrator/pipeline.js +4 -4
- package/dist/src/orchestrator/pipeline.js.map +1 -1
- package/dist/src/routes/command.js +11 -7
- package/dist/src/routes/command.js.map +1 -1
- package/dist/src/routes/messaging.js +28 -12
- package/dist/src/routes/messaging.js.map +1 -1
- package/dist/src/routes/settings.js +22 -6
- package/dist/src/routes/settings.js.map +1 -1
- package/dist/src/slack/api.js +116 -0
- package/dist/src/slack/api.js.map +1 -0
- package/dist/src/slack/bot.js +262 -0
- package/dist/src/slack/bot.js.map +1 -0
- package/dist/src/slack/commands.js +98 -0
- package/dist/src/slack/commands.js.map +1 -0
- package/dist/src/slack/events.js +116 -0
- package/dist/src/slack/events.js.map +1 -0
- package/dist/src/slack/format.js +58 -0
- package/dist/src/slack/format.js.map +1 -0
- package/dist/src/slack/forwarder.js +57 -0
- package/dist/src/slack/forwarder.js.map +1 -0
- package/dist/src/slack/manifest.js +84 -0
- package/dist/src/slack/manifest.js.map +1 -0
- package/dist/src/slack/register.js +13 -0
- package/dist/src/slack/register.js.map +1 -0
- package/dist/src/slack/send-handler.js +41 -0
- package/dist/src/slack/send-handler.js.map +1 -0
- package/dist/src/slack/send-only-client.js +46 -0
- package/dist/src/slack/send-only-client.js.map +1 -0
- package/dist/src/slack/slack-file.js +72 -0
- package/dist/src/slack/slack-file.js.map +1 -0
- package/dist/src/slack/socket.js +341 -0
- package/dist/src/slack/socket.js.map +1 -0
- package/dist/src/telegram/bot.js +117 -37
- package/dist/src/telegram/bot.js.map +1 -1
- package/dist/src/telegram/elicitation-buttons.js +7 -2
- package/dist/src/telegram/elicitation-buttons.js.map +1 -1
- package/dist/src/telegram/forwarder.js +15 -7
- package/dist/src/telegram/forwarder.js.map +1 -1
- package/dist/src/telegram/rich-message.js +209 -24
- package/dist/src/telegram/rich-message.js.map +1 -1
- package/dist/src/telegram/telegram-file.js +35 -4
- package/dist/src/telegram/telegram-file.js.map +1 -1
- package/dist/src/telegram/voice.js +4 -3
- package/dist/src/telegram/voice.js.map +1 -1
- package/package.json +7 -1
- package/public/assets/providers/slack.svg +1 -0
- package/public/dist/assets/ChannelsDiscord-D9FLnZso.js +1 -0
- package/public/dist/assets/ChannelsSlack-ybvupgdK.js +1 -0
- package/public/dist/assets/ChannelsTelegram-BOCOPrBc.js +1 -0
- package/public/dist/assets/HealthBadge-megTlF4n.js +1 -0
- package/public/dist/assets/TransportStatusChips-CjEySMis.js +1 -0
- package/public/dist/assets/app-BGIAy4he.js +55 -0
- package/public/dist/assets/{bgtask-badge-CdBqBy1L.js → bgtask-badge-DXca8E7c.js} +1 -1
- package/public/dist/assets/bgtask-badge-GRSiNILQ.js +1 -0
- package/public/dist/assets/{employees-C8qufeJl.js → employees-BL4qMxJj.js} +1 -1
- package/public/dist/assets/iframe-renderer-BUSk0Rw9.js +1 -0
- package/public/dist/assets/{iframe-renderer-CZ67aeTO.js → iframe-renderer-DUI0LYBy.js} +2 -2
- package/public/dist/assets/{manager-CLXT60M5.js → manager-B-gpf-3j.js} +3 -3
- package/public/dist/assets/{memory-lWramLVw.js → memory-B_Y0L0KD.js} +1 -1
- package/public/dist/assets/memory-CX6YahTc.js +1 -0
- package/public/dist/assets/message-history-Det7u76S.js +1 -0
- package/public/dist/assets/{message-history-2NUN3UxM.js → message-history-Dl8dJzez.js} +1 -1
- package/public/dist/assets/{provider-icons-stsNmQKx.js → provider-icons-VDfahiUp.js} +3 -2
- package/public/dist/assets/{render-CsF-ojLe.js → render-BI1aqKoc.js} +1 -1
- package/public/dist/assets/{settings-BMLowRCh.js → settings-B0Sj4sUH.js} +1 -1
- package/public/dist/assets/settings-C7NutP6X.js +1 -0
- package/public/dist/assets/settings-core-CyX-px6_.js +100 -0
- package/public/dist/assets/settings-core-DVpFmrhY.js +1 -0
- package/public/dist/assets/{sidebar-gKjYLv49.js → sidebar-DOR9fTgN.js} +3 -3
- package/public/dist/assets/skills-BWhKreQ2.js +1 -0
- package/public/dist/assets/{skills-CKTbomdm.js → skills-wt0fkV9Y.js} +1 -1
- package/public/dist/assets/slash-commands-BZbqTg3v.js +20 -0
- package/public/dist/assets/slash-commands-Di4NDA4w.js +1 -0
- package/public/dist/assets/{trace-drawer-C3G4mmB1.js → trace-drawer-kMYzaVFW.js} +1 -1
- package/public/dist/assets/ui-BghexWrB.js +1 -0
- package/public/dist/assets/{ui-CVVC_flX.js → ui-D4D5HUfo.js} +1 -1
- package/public/dist/index.html +62 -1
- package/public/dist/manager/index.html +1 -1
- package/public/index.html +61 -0
- package/public/js/features/command-info.ts +1 -0
- package/public/js/features/help-content.ts +8 -0
- package/public/js/features/settings-channel.ts +5 -1
- package/public/js/features/settings-core.ts +2 -0
- package/public/js/features/settings-slack.ts +74 -0
- package/public/js/features/settings-types.ts +5 -1
- package/public/js/features/settings.ts +1 -0
- package/public/js/features/transport-status-row.ts +15 -3
- package/public/js/main.ts +19 -0
- package/public/js/provider-icons.ts +4 -1
- package/public/js/ws.ts +1 -1
- package/public/locales/en.json +21 -0
- package/public/locales/ja.json +21 -0
- package/public/locales/ko.json +21 -0
- package/public/locales/zh.json +21 -0
- package/public/manager/src/settings/SettingsShell.tsx +1 -0
- package/public/manager/src/settings/SettingsSidebar.tsx +1 -0
- package/public/manager/src/settings/pages/ChannelsSlack.tsx +323 -0
- package/public/manager/src/settings/pages/components/ActiveChannelToggle.tsx +2 -1
- package/public/manager/src/settings/pages/components/TransportStatusChips.tsx +13 -4
- package/public/manager/src/settings/types.ts +1 -0
- package/scripts/bundle-sidecar.sh +13 -4
- package/scripts/check-redaction-sinks.mjs +276 -0
- package/scripts/check-sidecar-prune-safety.mjs +167 -0
- package/scripts/pi-rpc-probe.mts +361 -0
- package/scripts/pick-gyp-python.sh +61 -0
- package/scripts/release-gates.mjs +97 -0
- package/scripts/release-preview.sh +8 -1
- package/scripts/release.sh +13 -2
- package/scripts/sync-electron-version.cjs +93 -0
- package/public/dist/assets/ChannelsDiscord-Bt1_rtNC.js +0 -1
- package/public/dist/assets/ChannelsTelegram-BLV0m1oq.js +0 -1
- package/public/dist/assets/TransportStatusChips-Bld0yXi7.js +0 -1
- package/public/dist/assets/app-iSJhsP20.js +0 -55
- package/public/dist/assets/bgtask-badge-CSkSsoB6.js +0 -1
- package/public/dist/assets/iframe-renderer-DXdo0YXN.js +0 -1
- package/public/dist/assets/memory-DeKUlD2M.js +0 -1
- package/public/dist/assets/message-history-CWTQ2woA.js +0 -1
- package/public/dist/assets/settings-CDjs7hTT.js +0 -1
- package/public/dist/assets/settings-core-Cs_oq-b3.js +0 -99
- package/public/dist/assets/settings-core-D-TOh1a6.js +0 -1
- package/public/dist/assets/skills-GuIfNASs.js +0 -1
- package/public/dist/assets/slash-commands-BtZa093n.js +0 -20
- package/public/dist/assets/slash-commands-DGJKfpMT.js +0 -1
- package/public/dist/assets/ui-DJg5Q_NJ.js +0 -1
- /package/public/dist/assets/{DashboardMeta-B7CVqXcU.js → DashboardMeta-DennaaA_.js} +0 -0
- /package/public/dist/assets/{Display-BF-rACK6.js → Display-hGuSn_W5.js} +0 -0
- /package/public/dist/assets/{Employees-D3hnciP0.js → Employees-B5YXk5ma.js} +0 -0
- /package/public/dist/assets/{Heartbeat-D4Pn5O3O.js → Heartbeat-vDGhPfct.js} +0 -0
- /package/public/dist/assets/{Mcp-SfytKWGX.js → Mcp-BHWnJ6SP.js} +0 -0
- /package/public/dist/assets/{Memory-DNxBOQ7N.js → Memory-B_UZ-iCA.js} +0 -0
- /package/public/dist/assets/{ModelProvider-CXwtlG7l.js → ModelProvider-CgUvs6pE.js} +0 -0
- /package/public/dist/assets/{Network-DISUhige.js → Network-AWpSkALD.js} +0 -0
- /package/public/dist/assets/{Profile-B8yBO3Ju.js → Profile-DnIE2ios.js} +0 -0
- /package/public/dist/assets/{Prompts-5lNQ5qOm.js → Prompts-B9aKLall.js} +0 -0
- /package/public/dist/assets/{SpeechKeys-BepaIHBa.js → SpeechKeys-K4Be_o7z.js} +0 -0
- /package/public/dist/assets/{TelegramHub--DNjRAwW.js → TelegramHub-CFwSkzHP.js} +0 -0
- /package/public/dist/assets/{TerminalPanel-DQovYfwz.js → TerminalPanel-CdlFZHAK.js} +0 -0
package/dist/src/telegram/bot.js
CHANGED
|
@@ -32,6 +32,9 @@ import { orchestrateAndCollect, orchestrateAndCollectData } from '../orchestrato
|
|
|
32
32
|
import { log } from '../core/logger.js';
|
|
33
33
|
export { orchestrateAndCollect };
|
|
34
34
|
import { startPendingElicitation, handleElicitationCallback, discardPendingElicitation, } from './elicitation-buttons.js';
|
|
35
|
+
import { redactOutboundPayload, redactOutboundText, logErrorText, userErrorText } from '../messaging/redact.js';
|
|
36
|
+
import { createSeenSet, DELIVERY_DEDUPE_TTL_MS } from '../messaging/dedupe.js';
|
|
37
|
+
import { sendWithRetryPolicy } from '../messaging/retry.js';
|
|
35
38
|
// ─── State ───────────────────────────────────────────
|
|
36
39
|
export let telegramBot = null;
|
|
37
40
|
export const telegramActiveChatIds = new Set();
|
|
@@ -40,6 +43,31 @@ let tgInitLock = false;
|
|
|
40
43
|
let tg409RetryCount = 0;
|
|
41
44
|
const TG_MAX_RETRIES = 3;
|
|
42
45
|
let botUsername = null;
|
|
46
|
+
/**
|
|
47
|
+
* The bot's own user id, learned from getMe at startup.
|
|
48
|
+
*
|
|
49
|
+
* Needed for the self-echo guard. Until it is known the guard falls back to
|
|
50
|
+
* the is_bot flag, which is why those are two separate checks.
|
|
51
|
+
*/
|
|
52
|
+
let botUserId = null;
|
|
53
|
+
/**
|
|
54
|
+
* Whether an update should be dropped as our own output or another bot's.
|
|
55
|
+
*
|
|
56
|
+
* Extracted from the middleware so it can be exercised directly: the guard is
|
|
57
|
+
* two checks, and the reason for two is the window before getMe returns, which
|
|
58
|
+
* is exactly the case a test needs to reach.
|
|
59
|
+
*/
|
|
60
|
+
export function isSelfEcho(input) {
|
|
61
|
+
// Our own id, once we know it.
|
|
62
|
+
if (input.fromId !== undefined && input.botUserId !== null && input.fromId === input.botUserId)
|
|
63
|
+
return true;
|
|
64
|
+
// Until then — and for every other bot — fall back on the is_bot flag.
|
|
65
|
+
if (input.isBot && !input.allowBots)
|
|
66
|
+
return true;
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
/** Redelivered update_ids, so a reconnect replay does not run the agent twice. */
|
|
70
|
+
const telegramSeenUpdates = createSeenSet(DELIVERY_DEDUPE_TTL_MS);
|
|
43
71
|
let targetReplyForwarderInstalled = false;
|
|
44
72
|
const telegramForwarderLifecycle = createForwarderLifecycle({
|
|
45
73
|
addListener: addBroadcastListener,
|
|
@@ -102,7 +130,7 @@ function installTelegramTargetReplyForwarder() {
|
|
|
102
130
|
target,
|
|
103
131
|
}).then((result) => {
|
|
104
132
|
if (!result.ok)
|
|
105
|
-
log.error('[tg:target-reply]', result.error || 'send failed');
|
|
133
|
+
log.error('[tg:target-reply]', logErrorText(result.error || 'send failed'));
|
|
106
134
|
// Forward elicitation keyboards through hub if present.
|
|
107
135
|
const specs = data["elicitationSpecs"];
|
|
108
136
|
const raw = Array.isArray(specs) ? specs[0] : undefined;
|
|
@@ -116,7 +144,7 @@ function installTelegramTargetReplyForwarder() {
|
|
|
116
144
|
}
|
|
117
145
|
}
|
|
118
146
|
}).catch((err) => {
|
|
119
|
-
log.error('[tg:target-reply]', err
|
|
147
|
+
log.error('[tg:target-reply]', logErrorText(err));
|
|
120
148
|
});
|
|
121
149
|
});
|
|
122
150
|
}
|
|
@@ -135,7 +163,7 @@ export async function shutdownTelegram() {
|
|
|
135
163
|
await old.stop();
|
|
136
164
|
}
|
|
137
165
|
catch (e) {
|
|
138
|
-
log.warn('[telegram:stop]', e
|
|
166
|
+
log.warn('[telegram:stop]', logErrorText(e));
|
|
139
167
|
}
|
|
140
168
|
}
|
|
141
169
|
export function getLatestTelegramChatId() {
|
|
@@ -150,7 +178,7 @@ export async function sendTelegramText(chatId, text) {
|
|
|
150
178
|
const bot = resolveTelegramSendBot();
|
|
151
179
|
if (!bot)
|
|
152
180
|
throw new Error('Telegram not configured');
|
|
153
|
-
return bot.api.sendMessage(chatId, text);
|
|
181
|
+
return bot.api.sendMessage(chatId, redactOutboundText(text));
|
|
154
182
|
}
|
|
155
183
|
let telegramSendOnlyBot = null;
|
|
156
184
|
let telegramSendOnlyToken = null;
|
|
@@ -239,10 +267,12 @@ async function telegramSendHandler(req) {
|
|
|
239
267
|
const text = req.text?.trim();
|
|
240
268
|
if (!text || !req.reply_markup)
|
|
241
269
|
return { ok: false, error: 'text and reply_markup required for keyboard type' };
|
|
242
|
-
await bot.api.sendMessage(chatId, text, stripUndefined({
|
|
270
|
+
const sent = await sendWithRetryPolicy(() => bot.api.sendMessage(chatId, redactOutboundText(text), stripUndefined({
|
|
243
271
|
message_thread_id: messageThreadId,
|
|
244
|
-
reply_markup: req.reply_markup,
|
|
245
|
-
}));
|
|
272
|
+
reply_markup: redactOutboundPayload(req.reply_markup),
|
|
273
|
+
})), (err) => log.warn('[tg:keyboard] send failed:', logErrorText(err)));
|
|
274
|
+
if (!sent)
|
|
275
|
+
return { ok: false, error: 'keyboard send failed' };
|
|
246
276
|
return { ok: true, chat_id: chatId, type: 'keyboard' };
|
|
247
277
|
}
|
|
248
278
|
// File types
|
|
@@ -327,7 +357,7 @@ async function _initTelegramInner() {
|
|
|
327
357
|
await old.stop();
|
|
328
358
|
}
|
|
329
359
|
catch (e) {
|
|
330
|
-
log.warn('[telegram:stop]', e
|
|
360
|
+
log.warn('[telegram:stop]', logErrorText(e));
|
|
331
361
|
await new Promise(r => setTimeout(r, 2000));
|
|
332
362
|
}
|
|
333
363
|
}
|
|
@@ -389,10 +419,26 @@ async function _initTelegramInner() {
|
|
|
389
419
|
const bot = new Bot(settings["telegram"].token, {
|
|
390
420
|
client: { fetch: ipv4Fetch },
|
|
391
421
|
});
|
|
392
|
-
bot.catch((err) => log.error('[tg:error]', err
|
|
422
|
+
bot.catch((err) => log.error('[tg:error]', logErrorText(err)));
|
|
393
423
|
bot.use(sequentialize((ctx) => `tg:${ctx.chat?.id || 'unknown'}`));
|
|
424
|
+
// Never process our own output, and skip other bots unless allowed.
|
|
425
|
+
//
|
|
426
|
+
// Discord has had this since inception (see Events.MessageCreate below);
|
|
427
|
+
// Telegram did not, so a bridge that re-injects bot output — or simply
|
|
428
|
+
// another bot in the same group — could drive a loop. It sits ahead of the
|
|
429
|
+
// logging middleware so an echo does not pollute the log either.
|
|
430
|
+
//
|
|
431
|
+
// Two checks rather than one: botUserId is only known once getMe returns,
|
|
432
|
+
// and is_bot still covers the window before that.
|
|
433
|
+
bot.use(async (ctx, next) => {
|
|
434
|
+
const from = ctx.from;
|
|
435
|
+
if (isSelfEcho({ fromId: from?.id, isBot: from?.is_bot, botUserId, allowBots: settings["telegram"]?.allowBots }))
|
|
436
|
+
return;
|
|
437
|
+
await next();
|
|
438
|
+
});
|
|
394
439
|
bot.use(async (ctx, next) => {
|
|
395
|
-
|
|
440
|
+
// Inbound text is logged too, and a user can paste a token into chat.
|
|
441
|
+
log.info(`[tg:update] chat=${ctx.chat?.id} text=${redactOutboundText(ctx.message?.text || '').slice(0, 40)}`);
|
|
396
442
|
await next();
|
|
397
443
|
});
|
|
398
444
|
bot.use(async (ctx, next) => {
|
|
@@ -418,6 +464,23 @@ async function _initTelegramInner() {
|
|
|
418
464
|
}
|
|
419
465
|
await next();
|
|
420
466
|
});
|
|
467
|
+
// Drop a redelivered update. grammY replays from the last committed offset
|
|
468
|
+
// after a reconnect, so the same update_id can arrive twice — and each one
|
|
469
|
+
// would start another agent run.
|
|
470
|
+
//
|
|
471
|
+
// Placed AFTER the allowlist and mention gates deliberately: dedupe
|
|
472
|
+
// upstream of them lets traffic we never process fill the seen-set — memory
|
|
473
|
+
// an outsider controls, and a budget an unmentioned group message can
|
|
474
|
+
// exhaust before a real one arrives. A duplicate that WOULD be processed
|
|
475
|
+
// passes both gates too, so nothing is lost by checking later.
|
|
476
|
+
bot.use(async (ctx, next) => {
|
|
477
|
+
const updateId = ctx.update?.update_id;
|
|
478
|
+
if (updateId !== undefined && telegramSeenUpdates.seen(String(updateId))) {
|
|
479
|
+
log.info(`[tg:duplicate] update_id=${updateId}`);
|
|
480
|
+
return;
|
|
481
|
+
}
|
|
482
|
+
await next();
|
|
483
|
+
});
|
|
421
484
|
bot.command('start', (ctx) => ctx.reply(t('tg.connected', {}, currentLocale())));
|
|
422
485
|
bot.command('id', (ctx) => ctx.reply(`Chat ID: <code>${ctx.chat?.id ?? ''}</code>`, { parse_mode: 'HTML' }));
|
|
423
486
|
// Inline-keyboard elicitation answers (single_select fences → buttons).
|
|
@@ -432,7 +495,7 @@ async function _initTelegramInner() {
|
|
|
432
495
|
await ctx.answerCallbackQuery({ text: t('tg.elicitationExpired', {}, currentLocale()) }).catch(() => { });
|
|
433
496
|
return;
|
|
434
497
|
}
|
|
435
|
-
await ctx.answerCallbackQuery({ text: result.ack }).catch(() => { });
|
|
498
|
+
await ctx.answerCallbackQuery({ text: redactOutboundText(result.ack) }).catch(() => { });
|
|
436
499
|
// Best-effort: freeze the tapped question's keyboard so the choice reads as taken.
|
|
437
500
|
await ctx.editMessageReplyMarkup({ reply_markup: { inline_keyboard: [] } }).catch(() => { });
|
|
438
501
|
if (result.kind === 'complete') {
|
|
@@ -461,7 +524,7 @@ async function _initTelegramInner() {
|
|
|
461
524
|
return;
|
|
462
525
|
const keyboards = startPendingElicitation(String(targetChatId), raw);
|
|
463
526
|
for (const kb of keyboards ?? []) {
|
|
464
|
-
await ctx.api.sendMessage(targetChatId, kb.text, { ...replyOptsOf(ctx), reply_markup: kb.reply_markup })
|
|
527
|
+
await ctx.api.sendMessage(targetChatId, redactOutboundText(kb.text), { ...replyOptsOf(ctx), reply_markup: redactOutboundPayload(kb.reply_markup) })
|
|
465
528
|
.catch(() => { });
|
|
466
529
|
}
|
|
467
530
|
};
|
|
@@ -494,11 +557,11 @@ async function _initTelegramInner() {
|
|
|
494
557
|
markChatActive(chat.id, ctx);
|
|
495
558
|
await ctx.replyWithChatAction('typing')
|
|
496
559
|
.then(() => log.info('[tg:typing] ✅ sent'))
|
|
497
|
-
.catch((e) => log.info('[tg:typing] ❌', e
|
|
560
|
+
.catch((e) => log.info('[tg:typing] ❌', logErrorText(e)));
|
|
498
561
|
const typingInterval = setInterval(() => {
|
|
499
562
|
ctx.replyWithChatAction('typing')
|
|
500
563
|
.then(() => log.info('[tg:typing] ✅ refresh'))
|
|
501
|
-
.catch((e) => log.info('[tg:typing] ❌ refresh', e
|
|
564
|
+
.catch((e) => log.info('[tg:typing] ❌ refresh', logErrorText(e)));
|
|
502
565
|
}, 4000);
|
|
503
566
|
const showTools = settings["telegram"]?.showToolUse !== false;
|
|
504
567
|
let statusMsgId = null;
|
|
@@ -513,7 +576,7 @@ async function _initTelegramInner() {
|
|
|
513
576
|
return;
|
|
514
577
|
if (!statusMsgId) {
|
|
515
578
|
if (!statusMsgCreatePromise) {
|
|
516
|
-
statusMsgCreatePromise = ctx.reply(`🔄 ${display}`)
|
|
579
|
+
statusMsgCreatePromise = ctx.reply(`🔄 ${redactOutboundText(display)}`)
|
|
517
580
|
.then((m) => {
|
|
518
581
|
statusMsgId = m.message_id;
|
|
519
582
|
return statusMsgId;
|
|
@@ -526,7 +589,7 @@ async function _initTelegramInner() {
|
|
|
526
589
|
await statusMsgCreatePromise;
|
|
527
590
|
return;
|
|
528
591
|
}
|
|
529
|
-
await ctx.api.editMessageText(chat.id, statusMsgId, `🔄 ${display}`)
|
|
592
|
+
await ctx.api.editMessageText(chat.id, statusMsgId, `🔄 ${redactOutboundText(display)}`)
|
|
530
593
|
.catch(() => { });
|
|
531
594
|
};
|
|
532
595
|
const scheduleStatusUpdate = () => {
|
|
@@ -598,7 +661,7 @@ async function _initTelegramInner() {
|
|
|
598
661
|
await sendTelegramMarkdown(ctx.api, chat.id, result, replyOptsOf(ctx));
|
|
599
662
|
await relayTelegramImages(bot, chat.id, result, responseTarget);
|
|
600
663
|
await sendElicitationKeyboards(chat.id, doneData["elicitationSpecs"]);
|
|
601
|
-
log.info(`[tg:out] ${chat.id}: ${result.slice(0, 80)}`);
|
|
664
|
+
log.info(`[tg:out] ${chat.id}: ${redactOutboundText(result).slice(0, 80)}`);
|
|
602
665
|
}
|
|
603
666
|
catch (err) {
|
|
604
667
|
clearInterval(typingInterval);
|
|
@@ -611,8 +674,8 @@ async function _initTelegramInner() {
|
|
|
611
674
|
if (statusMsgId) {
|
|
612
675
|
ctx.api.deleteMessage(chat.id, statusMsgId).catch(() => { });
|
|
613
676
|
}
|
|
614
|
-
log.error('[tg:error]', err);
|
|
615
|
-
await ctx.reply(`❌ Error: ${err
|
|
677
|
+
log.error('[tg:error]', logErrorText(err));
|
|
678
|
+
await ctx.reply(`❌ Error: ${userErrorText(err)}`);
|
|
616
679
|
}
|
|
617
680
|
}
|
|
618
681
|
bot.on('message:text', async (ctx) => {
|
|
@@ -633,18 +696,18 @@ async function _initTelegramInner() {
|
|
|
633
696
|
// Just start tgOrchestrate for typing indicator + result delivery.
|
|
634
697
|
if (result?.steerPrompt) {
|
|
635
698
|
const steerPrompt = result.steerPrompt;
|
|
636
|
-
await ctx.reply(result.text || '🔄');
|
|
699
|
+
await ctx.reply(redactOutboundText(result.text || '🔄'));
|
|
637
700
|
try {
|
|
638
701
|
await tgOrchestrate(ctx, steerPrompt, steerPrompt);
|
|
639
702
|
}
|
|
640
703
|
catch (err) {
|
|
641
|
-
log.error('[tg:steer]', err
|
|
642
|
-
await ctx.reply(`❌ Steer failed: ${err
|
|
704
|
+
log.error('[tg:steer]', logErrorText(err));
|
|
705
|
+
await ctx.reply(`❌ Steer failed: ${userErrorText(err)}`.slice(0, 500)).catch(() => { });
|
|
643
706
|
}
|
|
644
707
|
return;
|
|
645
708
|
}
|
|
646
709
|
if (result?.text) {
|
|
647
|
-
const out = String(result.text);
|
|
710
|
+
const out = redactOutboundText(String(result.text));
|
|
648
711
|
try {
|
|
649
712
|
await ctx.reply(out);
|
|
650
713
|
}
|
|
@@ -654,7 +717,7 @@ async function _initTelegramInner() {
|
|
|
654
717
|
}
|
|
655
718
|
return;
|
|
656
719
|
}
|
|
657
|
-
log.info(`[tg:in] ${ctx.chat?.id}: ${text.slice(0, 80)}`);
|
|
720
|
+
log.info(`[tg:in] ${ctx.chat?.id}: ${redactOutboundText(text).slice(0, 80)}`);
|
|
658
721
|
// Typed reply supersedes any pending elicitation buttons (placed after the
|
|
659
722
|
// /command branch so slash commands do not discard the pending session).
|
|
660
723
|
discardPendingElicitation(String(ctx.chat.id));
|
|
@@ -675,7 +738,7 @@ async function _initTelegramInner() {
|
|
|
675
738
|
const photos = ctx.message.photo;
|
|
676
739
|
const largest = photos[photos.length - 1];
|
|
677
740
|
const caption = ctx.message.caption || '';
|
|
678
|
-
log.info(`[tg:photo] ${ctx.chat?.id}: fileId=${largest.file_id.slice(0, 20)}... caption=${caption.slice(0, 40)}`);
|
|
741
|
+
log.info(`[tg:photo] ${ctx.chat?.id}: fileId=${largest.file_id.slice(0, 20)}... caption=${redactOutboundText(caption).slice(0, 40)}`);
|
|
679
742
|
try {
|
|
680
743
|
const dlResult = await downloadTelegramFile(largest.file_id, settings["telegram"].token, stripUndefined({
|
|
681
744
|
kind: 'photo',
|
|
@@ -687,8 +750,8 @@ async function _initTelegramInner() {
|
|
|
687
750
|
tgOrchestrate(ctx, prompt, `${t('tg.imageCaption', { caption }, currentLocale())}`);
|
|
688
751
|
}
|
|
689
752
|
catch (err) {
|
|
690
|
-
log.error('[tg:photo:error]', err);
|
|
691
|
-
await ctx.reply(t('tg.imageFail', { msg: err
|
|
753
|
+
log.error('[tg:photo:error]', logErrorText(err));
|
|
754
|
+
await ctx.reply(t('tg.imageFail', { msg: userErrorText(err) }, currentLocale()));
|
|
692
755
|
}
|
|
693
756
|
});
|
|
694
757
|
bot.on('message:document', async (ctx) => {
|
|
@@ -706,24 +769,41 @@ async function _initTelegramInner() {
|
|
|
706
769
|
tgOrchestrate(ctx, prompt, `[📎 ${doc.file_name || 'file'}] ${caption}`);
|
|
707
770
|
}
|
|
708
771
|
catch (err) {
|
|
709
|
-
log.error('[tg:doc:error]', err);
|
|
710
|
-
await ctx.reply(t('tg.fileFail', { msg: err
|
|
772
|
+
log.error('[tg:doc:error]', logErrorText(err));
|
|
773
|
+
await ctx.reply(t('tg.fileFail', { msg: userErrorText(err) }, currentLocale()));
|
|
711
774
|
}
|
|
712
775
|
});
|
|
713
776
|
bot.on('message:voice', (ctx) => handleVoice(ctx, currentLocale, tgOrchestrate));
|
|
777
|
+
// Identity first: the self-echo guard needs it, and the refusal below has
|
|
778
|
+
// to happen BEFORE anything is attached. Returning after attaching left the
|
|
779
|
+
// forwarder wired to a bot that never starts, still trying to send.
|
|
780
|
+
//
|
|
781
|
+
// Reset before asking, so a restart cannot inherit the previous bot's
|
|
782
|
+
// identity and check incoming messages against the wrong id.
|
|
783
|
+
botUsername = null;
|
|
784
|
+
botUserId = null;
|
|
785
|
+
try {
|
|
786
|
+
const me = await bot.api.getMe();
|
|
787
|
+
botUsername = me.username || null;
|
|
788
|
+
botUserId = me.id ?? null;
|
|
789
|
+
}
|
|
790
|
+
catch (err) {
|
|
791
|
+
log.warn('[tg] getMe failed; bot identity unknown', logErrorText(err));
|
|
792
|
+
}
|
|
793
|
+
// Without an identity the guard has only the is_bot flag to work with — and
|
|
794
|
+
// allowBots turns that off. Starting anyway would leave the loop this guard
|
|
795
|
+
// exists to prevent wide open, so refuse instead.
|
|
796
|
+
if (botUserId === null && settings["telegram"]?.allowBots) {
|
|
797
|
+
log.error('[tg] refusing to start: allowBots is on but the bot identity could not be read');
|
|
798
|
+
return;
|
|
799
|
+
}
|
|
714
800
|
// ─── Global Forwarding: non-Telegram responses → Telegram ───
|
|
715
801
|
if (settings["telegram"]?.forwardAll !== false) {
|
|
716
802
|
attachTelegramForwarder(bot);
|
|
717
803
|
}
|
|
718
804
|
void syncTelegramCommands(bot).catch((e) => {
|
|
719
|
-
log.warn('[tg:commands] setMyCommands failed:', e
|
|
805
|
+
log.warn('[tg:commands] setMyCommands failed:', logErrorText(e));
|
|
720
806
|
});
|
|
721
|
-
botUsername = null;
|
|
722
|
-
try {
|
|
723
|
-
const me = await bot.api.getMe();
|
|
724
|
-
botUsername = me.username || null;
|
|
725
|
-
}
|
|
726
|
-
catch { /* noop */ }
|
|
727
807
|
try {
|
|
728
808
|
await bot.api.raw.deleteWebhook({ drop_pending_updates: true });
|
|
729
809
|
}
|
|
@@ -749,7 +829,7 @@ async function _initTelegramInner() {
|
|
|
749
829
|
}
|
|
750
830
|
}
|
|
751
831
|
else {
|
|
752
|
-
log.error('[tg:fatal]', err);
|
|
832
|
+
log.error('[tg:fatal]', logErrorText(err));
|
|
753
833
|
}
|
|
754
834
|
});
|
|
755
835
|
telegramBot = bot;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../../../src/telegram/bot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../../../src/telegram/bot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { parseElicitationSpec } from '../shared/elicitation-spec.js';
|
|
2
|
+
import { redactOutboundText } from '../messaging/redact.js';
|
|
2
3
|
const PENDING_TTL_MS = 10 * 60_000;
|
|
3
4
|
const MAX_BUTTON_OPTIONS = 8;
|
|
4
5
|
const pendingByChat = new Map();
|
|
@@ -45,14 +46,18 @@ export function handleElicitationCallback(chatId, callbackData) {
|
|
|
45
46
|
return { kind: 'stale' };
|
|
46
47
|
pending.answers.set(qIdx, oIdx);
|
|
47
48
|
if (pending.answers.size < pending.spec.questions.length) {
|
|
48
|
-
|
|
49
|
+
// The ack is echoed into a chat toast and an HTTP body, so the label
|
|
50
|
+
// is masked here even though the stored answer keeps its raw value.
|
|
51
|
+
return { kind: 'progress', ack: `${redactOutboundText(option.label)} ✓` };
|
|
49
52
|
}
|
|
50
53
|
pendingByChat.delete(chatId);
|
|
51
54
|
const combinedAnswer = pending.spec.questions.map((q, i) => {
|
|
52
55
|
const chosen = q.options[pending.answers.get(i)];
|
|
53
56
|
return `${q.question}: ${chosen.label}`;
|
|
54
57
|
}).join('\n');
|
|
55
|
-
|
|
58
|
+
// combinedAnswer is re-injected into the agent, so it keeps the literal
|
|
59
|
+
// answer; ack is shown to the user and takes the same masking as above.
|
|
60
|
+
return { kind: 'complete', combinedAnswer, ack: `${redactOutboundText(option.label)} ✓` };
|
|
56
61
|
}
|
|
57
62
|
/** Drop the pending session (user typed a reply instead of tapping, or a new turn started). */
|
|
58
63
|
export function discardPendingElicitation(chatId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elicitation-buttons.js","sourceRoot":"","sources":["../../../src/telegram/elicitation-buttons.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"elicitation-buttons.js","sourceRoot":"","sources":["../../../src/telegram/elicitation-buttons.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
// ─── Telegram Forwarding Utilities ───────────────────
|
|
2
|
+
import { safeCut } from '../messaging/chunk.js';
|
|
3
|
+
import { redactOutboundText, logErrorText } from '../messaging/redact.js';
|
|
2
4
|
export function escapeHtmlTg(text) {
|
|
3
5
|
return String(text || '')
|
|
4
6
|
.replace(/&/g, '&')
|
|
@@ -40,6 +42,7 @@ function isInsideTagToken(text, index) {
|
|
|
40
42
|
}
|
|
41
43
|
function findHtmlSafeSplit(raw, limit) {
|
|
42
44
|
if (isInsideTagToken(raw, limit)) {
|
|
45
|
+
// Always just past a '>', so never inside a surrogate pair.
|
|
43
46
|
const close = raw.indexOf('>', limit);
|
|
44
47
|
if (close >= 0)
|
|
45
48
|
return close + 1;
|
|
@@ -53,15 +56,18 @@ function findHtmlSafeSplit(raw, limit) {
|
|
|
53
56
|
continue;
|
|
54
57
|
candidates.push(i);
|
|
55
58
|
}
|
|
56
|
-
|
|
59
|
+
// Hard-split fallback must land on a code-point boundary: cutting between
|
|
60
|
+
// a surrogate pair ships half an emoji.
|
|
61
|
+
const hardSplit = safeCut(raw, limit);
|
|
62
|
+
candidates.push(hardSplit);
|
|
57
63
|
for (const candidate of candidates) {
|
|
58
|
-
if (candidate < limit * 0.3 && candidate !==
|
|
64
|
+
if (candidate < limit * 0.3 && candidate !== hardSplit)
|
|
59
65
|
continue;
|
|
60
66
|
const chunk = raw.slice(0, candidate);
|
|
61
67
|
if (isBalancedTelegramHtml(chunk))
|
|
62
68
|
return candidate;
|
|
63
69
|
}
|
|
64
|
-
return
|
|
70
|
+
return hardSplit;
|
|
65
71
|
}
|
|
66
72
|
export function chunkTelegramHtmlMessage(html, limit = 4096) {
|
|
67
73
|
const raw = String(html || '');
|
|
@@ -110,7 +116,7 @@ export async function relayTelegramImages(bot, chatId, text, target) {
|
|
|
110
116
|
catch (error) {
|
|
111
117
|
appLog.warn('[tg:image-relay] skipped', {
|
|
112
118
|
path: candidate,
|
|
113
|
-
error:
|
|
119
|
+
error: logErrorText(error),
|
|
114
120
|
});
|
|
115
121
|
}
|
|
116
122
|
}
|
|
@@ -163,7 +169,9 @@ export function createTelegramForwarder({ bot, getLastChatId, getLastTarget, sho
|
|
|
163
169
|
if (!chatId)
|
|
164
170
|
return;
|
|
165
171
|
const text = String(data["text"]);
|
|
166
|
-
|
|
172
|
+
// Redact BEFORE slicing: the preview goes to a log file, and
|
|
173
|
+
// a token in the first 200 characters would be stored raw.
|
|
174
|
+
const preview = redactOutboundText(text).slice(0, 200).replace(/\n/g, ' ');
|
|
167
175
|
log({ chatId, preview });
|
|
168
176
|
// Rich-first default; helper falls back to HTML then plaintext per chunk.
|
|
169
177
|
await sendTelegramMarkdown(bot.api, chatId, text, stripUndefined({
|
|
@@ -174,12 +182,12 @@ export function createTelegramForwarder({ bot, getLastChatId, getLastTarget, sho
|
|
|
174
182
|
}
|
|
175
183
|
catch (error) {
|
|
176
184
|
appLog.warn('[tg:forward] delivery failed', {
|
|
177
|
-
error:
|
|
185
|
+
error: logErrorText(error),
|
|
178
186
|
});
|
|
179
187
|
}
|
|
180
188
|
})().catch((error) => {
|
|
181
189
|
appLog.warn('[tg:forward] delivery failed', {
|
|
182
|
-
error:
|
|
190
|
+
error: logErrorText(error),
|
|
183
191
|
});
|
|
184
192
|
});
|
|
185
193
|
};
|