cli-jaw 2.17.9 → 2.17.10

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.
Files changed (38) hide show
  1. package/dist/src/core/config.js +34 -3
  2. package/dist/src/core/config.js.map +1 -1
  3. package/dist/src/core/settings-merge.js +40 -0
  4. package/dist/src/core/settings-merge.js.map +1 -1
  5. package/dist/src/discord/bot.js +140 -26
  6. package/dist/src/discord/bot.js.map +1 -1
  7. package/dist/src/discord/reactions.js +92 -0
  8. package/dist/src/discord/reactions.js.map +1 -0
  9. package/dist/src/messaging/ack-reaction.js +192 -0
  10. package/dist/src/messaging/ack-reaction.js.map +1 -0
  11. package/dist/src/messaging/channel-capabilities.js +9 -3
  12. package/dist/src/messaging/channel-capabilities.js.map +1 -1
  13. package/dist/src/messaging/channel-validate.js +12 -0
  14. package/dist/src/messaging/channel-validate.js.map +1 -1
  15. package/dist/src/messaging/queue-notice.js +164 -0
  16. package/dist/src/messaging/queue-notice.js.map +1 -0
  17. package/dist/src/slack/api.js +93 -0
  18. package/dist/src/slack/api.js.map +1 -1
  19. package/dist/src/slack/auto-join.js +330 -0
  20. package/dist/src/slack/auto-join.js.map +1 -0
  21. package/dist/src/slack/bot.js +237 -21
  22. package/dist/src/slack/bot.js.map +1 -1
  23. package/dist/src/slack/manifest.js +12 -0
  24. package/dist/src/slack/manifest.js.map +1 -1
  25. package/dist/src/slack/send-only-client.js +14 -2
  26. package/dist/src/slack/send-only-client.js.map +1 -1
  27. package/dist/src/telegram/bot.js +146 -64
  28. package/dist/src/telegram/bot.js.map +1 -1
  29. package/dist/src/telegram/ipv4-fetch.js +74 -0
  30. package/dist/src/telegram/ipv4-fetch.js.map +1 -0
  31. package/dist/src/telegram/reactions.js +126 -0
  32. package/dist/src/telegram/reactions.js.map +1 -0
  33. package/package.json +1 -1
  34. package/public/locales/en.json +1 -0
  35. package/public/locales/ja.json +1 -0
  36. package/public/locales/ko.json +1 -0
  37. package/public/locales/zh.json +1 -0
  38. package/scripts/check-redaction-sinks.mjs +5 -0
@@ -7,6 +7,8 @@ import { DEFAULT_CLI, CLI_KEYS, buildDefaultPerCli } from '../cli/registry.js';
7
7
  import { pickFirstReadyCli } from '../cli/readiness.js';
8
8
  import { migrateLegacyClaudeValue } from '../cli/claude-models.js';
9
9
  import { resolveHomePath } from './path-expand.js';
10
+ import { cloneAckDefaults, mergeAckSettings, DISCORD_ACK_DEFAULTS, SLACK_ACK_DEFAULTS, TELEGRAM_ACK_DEFAULTS, } from '../messaging/ack-reaction.js';
11
+ import { SLACK_AUTO_JOIN_DEFAULTS, mergeSlackAutoJoin } from '../slack/auto-join.js';
10
12
  import { SETUP_STATE_FILE } from './install-integrity.js';
11
13
  import { sanitizeSettingsInput, } from './settings-merge.js';
12
14
  export { detectAllCli, detectCli, getClaudeExecHelperCandidates, getClaudeIHelperCandidates } from './cli-detection.js';
@@ -230,6 +232,10 @@ function createDefaultSettings() {
230
232
  forwardAll: true,
231
233
  allowBots: false,
232
234
  mentionOnly: true,
235
+ // Acknowledge an inbound command by reacting to it rather than
236
+ // posting a message. Off by default: reactions need their own
237
+ // permission and an existing install has not granted it.
238
+ ack: cloneAckDefaults(TELEGRAM_ACK_DEFAULTS),
233
239
  },
234
240
  discord: {
235
241
  enabled: false,
@@ -239,6 +245,7 @@ function createDefaultSettings() {
239
245
  forwardAll: true,
240
246
  allowBots: false,
241
247
  mentionOnly: false,
248
+ ack: cloneAckDefaults(DISCORD_ACK_DEFAULTS),
242
249
  },
243
250
  slack: {
244
251
  enabled: false,
@@ -268,6 +275,17 @@ function createDefaultSettings() {
268
275
  // /api/slack/members still serves the full roster on demand.
269
276
  channelRoster: false,
270
277
  identityCacheTtlMs: 21600000,
278
+ // Slack takes emoji NAMES without colons (reactions.add docs), so
279
+ // these defaults are names, not unicode like the other two.
280
+ ack: cloneAckDefaults(SLACK_ACK_DEFAULTS),
281
+ // Public-channel auto-join. A bot token gets not_in_channel from
282
+ // conversations.history unless it is a member, so joining is the
283
+ // only supported way to reach a channel nobody invited it to.
284
+ // On by default, and deliberately visible: each join posts a
285
+ // “has joined the channel” line. maxJoinsPerRun and exclude bound
286
+ // the blast radius; the inbound mention gate is unchanged, so this
287
+ // widens on-demand lookup rather than making the bot answer chatter.
288
+ autoJoin: { ...SLACK_AUTO_JOIN_DEFAULTS, exclude: [] },
271
289
  },
272
290
  messaging: {
273
291
  enabledChannels: [],
@@ -976,9 +994,22 @@ export function loadSettings() {
976
994
  ...(sourceVersion === 1 ? { cli: legacyCli } : {}),
977
995
  perCli: mergedPerCli,
978
996
  tui: { ...defaults.tui, ...(raw.tui || {}) },
979
- telegram: { ...defaults.telegram, ...(raw.telegram || {}) },
980
- discord: { ...defaults.discord, ...(raw.discord || {}) },
981
- slack: { ...defaults.slack, ...(raw.slack || {}) },
997
+ // The channel spreads are one level deep, which is right for flat
998
+ // credential fields and wrong for the nested ack group: a stored file
999
+ // carrying only {ack:{enabled:true}} would drop the rest. Merged here
1000
+ // rather than repaired later so migrateSettings below sees a complete
1001
+ // ack object.
1002
+ telegram: { ...defaults.telegram, ...(raw.telegram || {}),
1003
+ ack: mergeAckSettings(defaults.telegram.ack, raw.telegram?.ack) },
1004
+ discord: { ...defaults.discord, ...(raw.discord || {}),
1005
+ ack: mergeAckSettings(defaults.discord.ack, raw.discord?.ack) },
1006
+ slack: { ...defaults.slack, ...(raw.slack || {}),
1007
+ ack: mergeAckSettings(defaults.slack.ack, raw.slack?.ack),
1008
+ // Same one-level-deep problem as ack: a stored
1009
+ // {autoJoin:{enabled:false}} would erase maxJoinsPerRun and
1010
+ // exclude. Normalizes too — the budget reaches a loop that
1011
+ // mutates a live workspace, so NaN must not survive here.
1012
+ autoJoin: mergeSlackAutoJoin(defaults.slack.autoJoin, raw.slack?.autoJoin) },
982
1013
  dispatchApproval: {
983
1014
  ...defaults.dispatchApproval,
984
1015
  ...(raw.dispatchApproval || {}),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  // ─── Settings Merge Logic ────────────────────────────
2
2
  // Phase 9.4 — server.js의 applySettingsPatch에서 추출한 deep merge 로직
3
+ import { mergeAckSettings } from '../messaging/ack-reaction.js';
4
+ import { mergeSlackAutoJoin } from '../slack/auto-join.js';
3
5
  function isPlainRecord(value) {
4
6
  return !!value && typeof value === 'object' && !Array.isArray(value);
5
7
  }
@@ -117,6 +119,44 @@ export function mergeSettingsPatch(current, patch) {
117
119
  delete remaining[key];
118
120
  }
119
121
  }
122
+ // The loop above merges channel objects one level deep, so a patch carrying
123
+ // only {ack:{enabled:true}} would drop scope, emoji and removeAfterReply.
124
+ // Reads `patch` rather than `remaining` because the loop already deleted the
125
+ // key. Shares mergeAckSettings with the boot merge in config.ts so the three
126
+ // ingresses (boot/api/watch) cannot diverge.
127
+ for (const key of ['telegram', 'discord', 'slack']) {
128
+ const patchChannel = patch[key];
129
+ if (!patchChannel || typeof patchChannel !== 'object')
130
+ continue;
131
+ const patchAck = patchChannel["ack"];
132
+ const currentChannel = current[key];
133
+ if (patchAck && typeof patchAck === 'object' && !Array.isArray(patchAck)) {
134
+ result[key] = {
135
+ ...result[key],
136
+ ack: mergeAckSettings(currentChannel?.["ack"], patchAck),
137
+ };
138
+ }
139
+ // slack.autoJoin is the same nested-group case, and its budget reaches
140
+ // a loop that joins real channels — so this path normalizes as well as
141
+ // merges. A PUT carrying {autoJoin:{enabled:false}} must not erase
142
+ // maxJoinsPerRun, and {maxJoinsPerRun:-1} must not reach the runner.
143
+ if (key === 'slack') {
144
+ const slackPatch = patchChannel;
145
+ const patchAutoJoin = slackPatch["autoJoin"];
146
+ // Any mention of the key is repaired, including a malformed one.
147
+ // Testing for a well-formed object would let {autoJoin:null} and
148
+ // {autoJoin:'yes'} through the one-level spread above and survive
149
+ // to disk, where the next boot reads them as "absent" and quietly
150
+ // restores default-on. A patch that names the key gets a valid
151
+ // block or nothing.
152
+ if ('autoJoin' in slackPatch) {
153
+ result[key] = {
154
+ ...result[key],
155
+ autoJoin: mergeSlackAutoJoin(currentChannel?.["autoJoin"], patchAutoJoin),
156
+ };
157
+ }
158
+ }
159
+ }
120
160
  // Deep merge nested network.remoteAccess
121
161
  if (remaining["network"]?.remoteAccess && typeof remaining["network"].remoteAccess === 'object') {
122
162
  result["network"] = result["network"] || {};
@@ -1 +1 @@
1
- {"version":3,"file":"settings-merge.js","sourceRoot":"","sources":["../../../src/core/settings-merge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-merge.js","sourceRoot":"","sources":["../../../src/core/settings-merge.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,9 @@ import { sendDiscordFile } from './discord-file.js';
23
23
  import { getDiscordSendClient, sendDiscordFileRest, sendDiscordTextRest } from './send-only-client.js';
24
24
  import { asSendable, asThreadLike, asTypingChannel } from './channel-types.js';
25
25
  import { log } from '../core/logger.js';
26
+ import { createAckHandle, resolveAckConfig, shouldAck, DISCORD_ACK_DEFAULTS, } from '../messaging/ack-reaction.js';
27
+ import { createQueueNotice, QueueNoticeRegistry } from '../messaging/queue-notice.js';
28
+ import { createDiscordAckTransport, createDiscordNoticeTransport, DISCORD_REACTION_TIMEOUT_MS, } from './reactions.js';
26
29
  import { redactOutboundText, logErrorText, userErrorText } from '../messaging/redact.js';
27
30
  import { createSeenSet, DELIVERY_DEDUPE_TTL_MS } from '../messaging/dedupe.js';
28
31
  import { DiscordGatewaySupervisor, } from './gateway-supervisor.js';
@@ -86,13 +89,6 @@ function markChannelActive(channelId) {
86
89
  * most recently, and skipped when a live waiter would post the same result.
87
90
  */
88
91
  const pendingQueueRequestIds = new Set();
89
- /**
90
- * Disposers for listeners waiting on a queued result. Tracked so shutdown can
91
- * drop them at once instead of leaving them armed for their five-minute
92
- * timeout, which would let a post-shutdown result fire against a dead channel
93
- * and would keep a stale id blocking the standing forwarder.
94
- */
95
- const pendingQueueWaiters = new Set();
96
92
  let targetReplyForwarderInstalled = false;
97
93
  function installDiscordTargetReplyForwarder() {
98
94
  if (targetReplyForwarderInstalled)
@@ -166,56 +162,157 @@ function currentLocale() {
166
162
  return normalizeLocale(settings["locale"], 'ko');
167
163
  }
168
164
  // ─── Discord Orchestrate (full reply path) ──────────
165
+ /**
166
+ * Queue-notice teardowns, drained on shutdown so a turn that never answered gets
167
+ * its notice rewritten rather than left claiming the agent is still working.
168
+ */
169
+ const discordNoticeRegistry = new QueueNoticeRegistry();
170
+ /** Covers a notice edit plus a remove-then-add reaction chain. */
171
+ const DISCORD_NOTICE_DRAIN_MS = DISCORD_REACTION_TIMEOUT_MS * 2 + 3000;
169
172
  async function dcOrchestrate(msg, prompt, displayMsg) {
170
173
  const target = buildDiscordTarget(msg);
171
174
  const chatId = msg.channelId;
172
175
  const result = submitMessage(prompt, {
173
176
  origin: 'discord', displayText: displayMsg, skipOrchestrate: true, target, chatId,
174
177
  });
178
+ // Built before the queued/started split: a queued turn is exactly the case
179
+ // this acknowledgement exists for, so the handle cannot live inside the
180
+ // normal-path branch.
181
+ const ackConfig = resolveAckConfig(settings["discord"]?.ack, DISCORD_ACK_DEFAULTS);
182
+ const selfId = msg.client.user?.id;
183
+ const ack = shouldAck(ackConfig, {
184
+ isDirect: !msg.guildId,
185
+ isMention: !!selfId && msg.mentions.has(selfId),
186
+ })
187
+ ? createAckHandle(ackConfig, createDiscordAckTransport(msg), (e) => log.info('[discord:ack]', logErrorText(e)))
188
+ : null;
175
189
  if (result.action === 'queued') {
176
190
  log.info(`[discord:queue] agent busy, queued (${result.pending} pending)`);
177
- await msg.reply(t('tg.queued', { count: result.pending }, currentLocale()));
178
- // Listen for queued result — correlate by requestId (request-level isolation)
179
191
  const requestId = result.requestId;
180
192
  let queueTimeout;
181
193
  let disposed = false;
182
- const dispose = () => {
194
+ const notice = createQueueNotice({
195
+ expiredText: t('tg.queueExpired', {}, currentLocale()),
196
+ onError: (e) => log.info('[discord:queue-notice]', logErrorText(e)),
197
+ });
198
+ const disposeListener = () => {
183
199
  if (disposed)
184
200
  return;
185
201
  disposed = true;
186
202
  clearTimeout(queueTimeout);
187
203
  removeBroadcastListener(queueHandler);
188
- pendingQueueWaiters.delete(dispose);
189
204
  if (requestId)
190
205
  pendingQueueRequestIds.delete(requestId);
191
206
  };
207
+ // One terminal outcome per turn, shared by whoever reaches it first.
208
+ //
209
+ // A boolean would pick a winner and let the loser return immediately —
210
+ // and the loser here is the shutdown drain, which would then destroy the
211
+ // client while the winner is still sending. The broadcast bus never
212
+ // awaits listener promises, so nothing else would hold it.
213
+ let terminal = null;
214
+ const claimTerminal = (run) => {
215
+ if (!terminal) {
216
+ terminal = run().catch(e => log.info('[discord:queue]', logErrorText(e)));
217
+ }
218
+ return terminal;
219
+ };
220
+ // Registered before the closures that use it so the terminal winner can
221
+ // always unregister, whichever path wins.
222
+ let unregister = () => { };
223
+ const finishExpired = (signal) => claimTerminal(async () => {
224
+ disposeListener();
225
+ try {
226
+ // Started together, not in sequence: awaiting the notice first can
227
+ // eat the whole drain deadline before the reaction is attempted.
228
+ await Promise.allSettled([
229
+ notice.close('expired', signal),
230
+ ack?.settle('failure') ?? Promise.resolve(),
231
+ ]);
232
+ }
233
+ finally {
234
+ // Centralized here: every terminal path routes through a claim, so
235
+ // unregistering in one place is what makes "exactly once" true.
236
+ unregister();
237
+ }
238
+ });
239
+ unregister = discordNoticeRegistry.add((signal) => finishExpired(signal));
192
240
  const queueHandler = async (type, data) => {
193
- if (type === 'orchestrate_done' && data["text"] && data["origin"] === 'discord'
194
- && data["requestId"] === requestId) {
195
- // Dispose FIRST: the standing forwarder checks this id, so
196
- // releasing it before the send would let both post.
197
- if (disposed)
198
- return;
199
- dispose();
200
- const chunks = chunkDiscordMessage(data["text"]);
241
+ if (type !== 'orchestrate_done' || !data["text"] || data["origin"] !== 'discord'
242
+ || data["requestId"] !== requestId)
243
+ return;
244
+ if (disposed)
245
+ return;
246
+ // Dispose FIRST so a duplicate broadcast cannot double-post, but the
247
+ // notice deliberately outlives it: removing it before the answer is
248
+ // out would leave a failed send with neither answer nor notice.
249
+ disposeListener();
250
+ await claimTerminal(async () => {
251
+ try {
252
+ await deliverQueued(data);
253
+ }
254
+ finally {
255
+ unregister();
256
+ }
257
+ });
258
+ };
259
+ const deliverQueued = async (data) => {
260
+ {
261
+ const body = String(data["text"]);
201
262
  const channel = asSendable(msg.channel);
202
263
  if (!channel) {
203
264
  log.warn('[discord:queue-send] channel not sendable, dropping queued reply', { channelId: msg.channelId });
265
+ await Promise.allSettled([
266
+ notice.close('expired'),
267
+ ack?.settle('failure') ?? Promise.resolve(),
268
+ ]);
204
269
  return;
205
270
  }
206
- for (const chunk of chunks) {
271
+ let delivered = true;
272
+ for (const chunk of chunkDiscordMessage(body)) {
207
273
  await channel.send(chunk).catch((e) => {
274
+ delivered = false;
208
275
  log.error('[discord:queue-send]', logErrorText(e));
209
276
  });
210
277
  }
211
- await relayDiscordImages(msg.client, target, String(data["text"]));
278
+ // Settled before the relay for the same reason as the normal
279
+ // path: an uncancellable upload must not hold the reaction.
280
+ await Promise.allSettled([
281
+ notice.close(delivered ? 'answered' : 'expired'),
282
+ ack?.settle(delivered ? 'success' : 'failure') ?? Promise.resolve(),
283
+ ]);
284
+ await relayDiscordImages(msg.client, target, body).catch(e => log.error('[discord:queue-relay]', logErrorText(e)));
212
285
  }
213
286
  };
287
+ // Everything is armed SYNCHRONOUSLY, before any reaction or notice post.
288
+ // A reaction call that takes a moment must not outlive the completion it
289
+ // acknowledges: without the listener and the request-id claim in place, a
290
+ // fast queued job would be missed here or answered by the fallback.
214
291
  addBroadcastListener(queueHandler);
215
292
  if (requestId)
216
293
  pendingQueueRequestIds.add(requestId);
217
- pendingQueueWaiters.add(dispose);
218
- queueTimeout = setTimeout(dispose, 300000);
294
+ // The registry is the single shutdown path for the notice lifecycle: a
295
+ // signal-less trigger would pin QueueNotice's first close and make the
296
+ // drain's own cancellation unreachable.
297
+ queueTimeout = setTimeout(() => { void finishExpired(); }, 300000);
298
+ // Not awaited: the notice is what the user needs to see.
299
+ void ack?.to('running', { wasQueued: true });
300
+ const posted = await msg.reply(t('tg.queued', { count: result.pending }, currentLocale())).catch((e) => {
301
+ log.info('[discord:queue-notice] post failed', logErrorText(e));
302
+ return undefined;
303
+ });
304
+ if (posted) {
305
+ notice.bind(createDiscordNoticeTransport(posted));
306
+ }
307
+ else {
308
+ // No handle will ever arrive, so a deferred close would wait for a
309
+ // bind that cannot happen and the drain would burn its deadline.
310
+ notice.abandon();
311
+ // Then close the turn out properly: abandoning the notice alone would
312
+ // leave the listener, the request-id claim, the timer and the running
313
+ // reaction alive until the 5-minute timeout or shutdown.
314
+ await finishExpired();
315
+ }
219
316
  return;
220
317
  }
221
318
  if (result.action === 'rejected') {
@@ -234,6 +331,12 @@ async function dcOrchestrate(msg, prompt, displayMsg) {
234
331
  ?.then(() => log.info('[discord:typing] ✅ refresh'))
235
332
  ?.catch((e) => log.info('[discord:typing] ❌ refresh', logErrorText(e)));
236
333
  }, 8000);
334
+ // Recorded through the body, settled once in the finally below: the image
335
+ // relay can throw after the text is already out, and the user did get their
336
+ // answer in that case.
337
+ let ackOutcome = 'failure';
338
+ let ackSettled = false;
339
+ void ack?.to('running');
237
340
  try {
238
341
  const text = String(await orchestrateAndCollect(prompt, stripUndefined({
239
342
  origin: 'discord', target, chatId, requestId: result.requestId, _skipInsert: true,
@@ -248,6 +351,12 @@ async function dcOrchestrate(msg, prompt, displayMsg) {
248
351
  for (const chunk of chunks) {
249
352
  await channel.send(chunk);
250
353
  }
354
+ ackOutcome = 'success';
355
+ // Settled BEFORE the relay: image upload is uncancellable (#417), so
356
+ // awaiting it first can strand the reaction on `running` while the
357
+ // answer is already visible.
358
+ await ack?.settle(ackOutcome);
359
+ ackSettled = true;
251
360
  await relayDiscordImages(msg.client, target, text);
252
361
  log.info(`[discord:out] ${msg.channelId}: ${redactOutboundText(text).slice(0, 80)}`);
253
362
  }
@@ -257,6 +366,10 @@ async function dcOrchestrate(msg, prompt, displayMsg) {
257
366
  }
258
367
  finally {
259
368
  clearInterval(typingInterval);
369
+ // Exactly one settle per turn, whichever way the body exited.
370
+ // The happy path already settled before the image relay.
371
+ if (!ackSettled)
372
+ await ack?.settle(ackOutcome);
260
373
  }
261
374
  }
262
375
  // ─── Init / Shutdown ────────────────────────────────
@@ -531,10 +644,11 @@ export async function shutdownDiscord() {
531
644
  // Drop queued-result waiters immediately. Left armed, they would fire
532
645
  // against a destroyed channel for the next five minutes, and their claimed
533
646
  // request ids would keep the standing forwarder silent too.
534
- for (const dispose of [...pendingQueueWaiters])
535
- dispose();
536
- pendingQueueWaiters.clear();
537
647
  pendingQueueRequestIds.clear();
648
+ // Before the client goes away: a rewrite issued after destruction has no
649
+ // transport to travel on. Bounded, because a stuck cleanup must not hold
650
+ // shutdown open — the drain's signal cancels whatever is still in flight.
651
+ await discordNoticeRegistry.drain(DISCORD_NOTICE_DRAIN_MS);
538
652
  const supervisor = gatewaySupervisor;
539
653
  gatewaySupervisor = null;
540
654
  if (supervisor) {