cli-jaw 2.17.14 → 2.17.16
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/src/agent/codex-app-events.js +6 -1
- package/dist/src/agent/codex-app-events.js.map +1 -1
- package/dist/src/agent/error-classifier.js +22 -4
- package/dist/src/agent/error-classifier.js.map +1 -1
- package/dist/src/agent/events/codex.js +14 -1
- package/dist/src/agent/events/codex.js.map +1 -1
- package/dist/src/agent/events/cursor.js +16 -0
- package/dist/src/agent/events/cursor.js.map +1 -1
- package/dist/src/agent/events/index.js +6 -0
- package/dist/src/agent/events/index.js.map +1 -1
- package/dist/src/agent/lifecycle-handler.js +9 -3
- package/dist/src/agent/lifecycle-handler.js.map +1 -1
- package/dist/src/agent/spawn-env.js +13 -0
- package/dist/src/agent/spawn-env.js.map +1 -1
- package/dist/src/discord/bot.js +147 -20
- package/dist/src/discord/bot.js.map +1 -1
- package/dist/src/discord/discord-file.js +7 -0
- package/dist/src/discord/discord-file.js.map +1 -1
- package/dist/src/discord/forwarder.js +4 -2
- package/dist/src/discord/forwarder.js.map +1 -1
- package/dist/src/discord/send-only-client.js +21 -1
- package/dist/src/discord/send-only-client.js.map +1 -1
- package/dist/src/messaging/outbound-lifecycle.js +106 -0
- package/dist/src/messaging/outbound-lifecycle.js.map +1 -0
- package/dist/src/slack/api.js +7 -0
- package/dist/src/slack/api.js.map +1 -1
- package/dist/src/slack/bot.js +114 -25
- package/dist/src/slack/bot.js.map +1 -1
- package/dist/src/slack/forwarder.js +4 -2
- package/dist/src/slack/forwarder.js.map +1 -1
- package/dist/src/slack/send-only-client.js +27 -3
- package/dist/src/slack/send-only-client.js.map +1 -1
- package/dist/src/slack/slack-file.js +11 -3
- package/dist/src/slack/slack-file.js.map +1 -1
- package/dist/src/telegram/bot.js +69 -8
- package/dist/src/telegram/bot.js.map +1 -1
- package/dist/src/telegram/forwarder.js +4 -2
- package/dist/src/telegram/forwarder.js.map +1 -1
- package/dist/src/telegram/rich-message.js +20 -5
- package/dist/src/telegram/rich-message.js.map +1 -1
- package/dist/src/telegram/telegram-file.js +9 -4
- package/dist/src/telegram/telegram-file.js.map +1 -1
- package/package.json +3 -1
- package/public/dist/assets/ChannelsSlack-U0_Sfkz0.js +1 -0
- package/public/dist/assets/{manager-CBSvWXYT.js → manager-C_EnQ0Fc.js} +1 -1
- package/public/dist/manager/index.html +1 -1
- package/public/locales/en.json +1 -1
- package/public/locales/ja.json +1 -1
- package/public/locales/ko.json +1 -1
- package/public/locales/zh.json +1 -1
- package/public/manager/src/settings/pages/ChannelsSlack.tsx +20 -0
- package/scripts/check-path-length.mjs +98 -0
- package/scripts/release-gates.mjs +17 -0
- package/public/dist/assets/ChannelsSlack-BOuoCfeN.js +0 -1
|
@@ -5,6 +5,7 @@ import { redactOutboundText } from '../messaging/redact.js';
|
|
|
5
5
|
import { classifySendFailure, retryAfterMs, MAX_INLINE_RATE_LIMIT_MS } from '../messaging/retry.js';
|
|
6
6
|
export const RICH_MESSAGE_LIMIT = 32000;
|
|
7
7
|
const HTML_MESSAGE_LIMIT = 4096;
|
|
8
|
+
import { abortableDelay } from '../messaging/outbound-lifecycle.js';
|
|
8
9
|
/**
|
|
9
10
|
* Send once, honouring what the failure actually was.
|
|
10
11
|
*
|
|
@@ -17,12 +18,16 @@ const HTML_MESSAGE_LIMIT = 4096;
|
|
|
17
18
|
* when it should not: a long rate limit or an ambiguous failure is the
|
|
18
19
|
* caller's to report, not to paper over with another send.
|
|
19
20
|
*/
|
|
20
|
-
async function attemptSend(send) {
|
|
21
|
+
async function attemptSend(send, signal) {
|
|
21
22
|
try {
|
|
22
23
|
await send();
|
|
23
24
|
return false;
|
|
24
25
|
}
|
|
25
26
|
catch (err) {
|
|
27
|
+
// A lifecycle abort is a cancellation, not a vendor failure: no
|
|
28
|
+
// fallback leg, no retry — surface it to the caller as-is (#417).
|
|
29
|
+
if (signal?.aborted)
|
|
30
|
+
throw err;
|
|
26
31
|
const kind = classifySendFailure(err);
|
|
27
32
|
if (kind === 'format')
|
|
28
33
|
return true;
|
|
@@ -31,7 +36,10 @@ async function attemptSend(send) {
|
|
|
31
36
|
const wait = retryAfterMs(err);
|
|
32
37
|
if (wait <= 0 || wait > MAX_INLINE_RATE_LIMIT_MS)
|
|
33
38
|
throw err;
|
|
34
|
-
|
|
39
|
+
// Abortable: a shutdown must not sit out a Telegram rate-limit window.
|
|
40
|
+
await abortableDelay(wait, signal);
|
|
41
|
+
if (signal?.aborted)
|
|
42
|
+
throw err;
|
|
35
43
|
// Retry the SAME form, once: waiting is what the server asked for, and
|
|
36
44
|
// switching format would add load rather than remove it.
|
|
37
45
|
try {
|
|
@@ -251,8 +259,13 @@ export async function sendTelegramMarkdown(api, chatId, rawMarkdown, opts) {
|
|
|
251
259
|
// fallback.
|
|
252
260
|
const chunks = chunkWithPrefixBudget(markdown, prefix, RICH_MESSAGE_LIMIT);
|
|
253
261
|
for (let i = 0; i < chunks.length; i += 1) {
|
|
262
|
+
if (opts?.signal?.aborted)
|
|
263
|
+
throw new Error('telegram_send_aborted');
|
|
254
264
|
const withPrefix = i === 0 ? `${prefix}${chunks[i]}` : chunks[i];
|
|
255
|
-
const needsFallback = await attemptSend(() =>
|
|
265
|
+
const needsFallback = await attemptSend(() =>
|
|
266
|
+
// grammY's declared AbortSignal is the abort-controller shim type;
|
|
267
|
+
// the reaction path (reactions.ts) uses the same `as never` cast.
|
|
268
|
+
api.sendRichMessage(chatId, { markdown: withPrefix }, richOpts(opts), opts?.signal), opts?.signal);
|
|
256
269
|
if (needsFallback) {
|
|
257
270
|
await sendHtmlFallback(api, chatId, chunks[i], opts, i === 0 ? prefix : '');
|
|
258
271
|
}
|
|
@@ -269,10 +282,12 @@ async function sendHtmlFallback(api, chatId, mdChunk, opts, prefix) {
|
|
|
269
282
|
? chunkTelegramMessage(html, HTML_MESSAGE_LIMIT - safePrefix.length)
|
|
270
283
|
: chunkTelegramMessage(html, HTML_MESSAGE_LIMIT);
|
|
271
284
|
for (let i = 0; i < chunks.length; i += 1) {
|
|
285
|
+
if (opts?.signal?.aborted)
|
|
286
|
+
throw new Error('telegram_send_aborted');
|
|
272
287
|
const withPrefix = i === 0 ? `${safePrefix}${chunks[i]}` : chunks[i];
|
|
273
|
-
const needsPlain = await attemptSend(() => api.sendMessage(chatId, withPrefix, htmlOpts));
|
|
288
|
+
const needsPlain = await attemptSend(() => api.sendMessage(chatId, withPrefix, htmlOpts, opts?.signal), opts?.signal);
|
|
274
289
|
if (needsPlain) {
|
|
275
|
-
await attemptSend(() => api.sendMessage(chatId, withPrefix.replace(/<[^>]+>/g, ''), plainOpts));
|
|
290
|
+
await attemptSend(() => api.sendMessage(chatId, withPrefix.replace(/<[^>]+>/g, ''), plainOpts, opts?.signal), opts?.signal);
|
|
276
291
|
}
|
|
277
292
|
}
|
|
278
293
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-message.js","sourceRoot":"","sources":["../../../src/telegram/rich-message.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAkB,MAAM,uBAAuB,CAAC;AAC1I,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEpG,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACxC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,WAAW,CAAC,IAA4B;
|
|
1
|
+
{"version":3,"file":"rich-message.js","sourceRoot":"","sources":["../../../src/telegram/rich-message.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import fs from 'node:fs';
|
|
|
3
3
|
import { stripUndefined } from '../core/strip-undefined.js';
|
|
4
4
|
import { log } from '../core/logger.js';
|
|
5
5
|
import { redactOutboundText, logErrorText, userErrorText } from '../messaging/redact.js';
|
|
6
|
+
import { abortableDelay } from '../messaging/outbound-lifecycle.js';
|
|
6
7
|
function asTgErr(err) {
|
|
7
8
|
return (err && typeof err === 'object') ? err : {};
|
|
8
9
|
}
|
|
@@ -99,13 +100,13 @@ export async function sendTelegramFile(bot, chatId, filePath, type, opts) {
|
|
|
99
100
|
const file = new InputFile(filePath);
|
|
100
101
|
switch (type) {
|
|
101
102
|
case 'voice':
|
|
102
|
-
await bot.api.sendVoice(chatId, file, stripUndefined({ caption, message_thread_id }));
|
|
103
|
+
await bot.api.sendVoice(chatId, file, stripUndefined({ caption, message_thread_id }), opts?.signal);
|
|
103
104
|
break;
|
|
104
105
|
case 'photo':
|
|
105
|
-
await bot.api.sendPhoto(chatId, file, stripUndefined({ caption, message_thread_id }));
|
|
106
|
+
await bot.api.sendPhoto(chatId, file, stripUndefined({ caption, message_thread_id }), opts?.signal);
|
|
106
107
|
break;
|
|
107
108
|
case 'document':
|
|
108
|
-
await bot.api.sendDocument(chatId, file, stripUndefined({ caption, message_thread_id }));
|
|
109
|
+
await bot.api.sendDocument(chatId, file, stripUndefined({ caption, message_thread_id }), opts?.signal);
|
|
109
110
|
break;
|
|
110
111
|
default:
|
|
111
112
|
return { ok: false, attempts: attempt, error: `unsupported type: ${type}`, statusCode: 400 };
|
|
@@ -150,7 +151,11 @@ export async function sendTelegramFile(bot, chatId, filePath, type, opts) {
|
|
|
150
151
|
};
|
|
151
152
|
}
|
|
152
153
|
log.warn(`[telegram:retry] attempt ${attempt}/${MAX_RETRIES} failed (${e.error_code || 'network'}), retrying in ${delay}ms...`);
|
|
153
|
-
|
|
154
|
+
// Abortable (#417): a shutdown must not sit out the backoff window.
|
|
155
|
+
await abortableDelay(delay, opts?.signal);
|
|
156
|
+
if (opts?.signal?.aborted) {
|
|
157
|
+
return { ok: false, attempts: attempt, error: 'telegram_send_aborted', statusCode: 499 };
|
|
158
|
+
}
|
|
154
159
|
}
|
|
155
160
|
}
|
|
156
161
|
return { ok: false, attempts: MAX_RETRIES, error: 'exhausted retries', statusCode: 502 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram-file.js","sourceRoot":"","sources":["../../../src/telegram/telegram-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"telegram-file.js","sourceRoot":"","sources":["../../../src/telegram/telegram-file.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cli-jaw",
|
|
3
|
-
"version": "2.17.
|
|
3
|
+
"version": "2.17.16",
|
|
4
4
|
"description": "Personal AI assistant powered by Pi, Antigravity, AI-E, Claude, Claude E, Codex, Codex App, Cursor, Grok, Kiro, OpenCode, and Copilot — Web, Terminal, Telegram, and Discord interfaces with 107 built-in skills",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
"check:copilot-gap": "tsx scripts/check-copilot-gap.ts",
|
|
62
62
|
"check:deps": "tsx scripts/check-deps-offline.ts",
|
|
63
63
|
"check:strict-baseline": "node scripts/check-strict-baseline.mjs",
|
|
64
|
+
"check:path-length": "node scripts/check-path-length.mjs",
|
|
64
65
|
"docs:check": "tsx scripts/docs/check-docs.mts",
|
|
65
66
|
"docs:windows": "tsx scripts/render-windows-support.mts",
|
|
66
67
|
"docs:channel-capabilities": "tsx scripts/generate-channel-capability-table.mts",
|
|
@@ -121,6 +122,7 @@
|
|
|
121
122
|
"gate:sidecar-smoke": "node scripts/release-gates.mjs sidecar-smoke",
|
|
122
123
|
"gate:install-integrity": "node scripts/release-gates.mjs install-integrity",
|
|
123
124
|
"gate:messaging-conformance": "node scripts/release-gates.mjs messaging-conformance",
|
|
125
|
+
"gate:path-length": "node scripts/release-gates.mjs path-length",
|
|
124
126
|
"test:messaging-conformance": "tsx --experimental-test-module-mocks tests/run.mts tests/unit/channel-contract-conformance.test.ts tests/unit/messaging-command-parity.test.ts tests/unit/messaging-durable-ingress.test.ts tests/unit/telegram-ingress-journal.test.ts tests/unit/discord-ingress-journal.test.ts tests/unit/ingress-generation.test.ts tests/unit/messaging-trace-context.test.ts tests/unit/messaging-metrics.test.ts",
|
|
125
127
|
"check:sidecar-prune-safety": "node scripts/check-sidecar-prune-safety.mjs",
|
|
126
128
|
"sync:electron-version": "node scripts/sync-electron-version.cjs",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-XQCOJYun.js";import{n as t,t as n}from"./jsx-runtime-CYoNlHAD.js";import{a as r,i,n as a,r as o,t as s}from"./page-shell-GpE8A-FA.js";import{a as c,n as l,o as u,s as d}from"./fields-BwOMlwS0.js";import{t as f}from"./path-utils-CHwADH-r.js";import{n as ee,t as p}from"./ChannelEnablementControl-Da_t_jq6.js";var m=e(t(),1),h=n(),g=[`channel`,`slack.enabled`,`slack.botToken`,`slack.appToken`,`slack.teamId`,`slack.channelIds`,`slack.forwardAll`,`slack.allowBots`,`slack.mentionOnly`,`slack.replyInThread`,`slack.ack.enabled`];function _(e){return e?/^[CGD][A-Z0-9]{6,20}$/.test(e.trim().toUpperCase()):!1}function v({port:e,client:t,dirty:n,registerSave:v}){let{state:b,refresh:x,setData:S}=r(t,`/api/settings`),[C,w]=(0,m.useState)([]),[T,E]=(0,m.useState)(`telegram`),[D,O]=(0,m.useState)(!1),[k,A]=(0,m.useState)(``),[j,M]=(0,m.useState)(``),[N,P]=(0,m.useState)(``),[F,I]=(0,m.useState)([]),[te,L]=(0,m.useState)(!0),[R,z]=(0,m.useState)(!1),[B,V]=(0,m.useState)(!0),[H,U]=(0,m.useState)(!0),[W,G]=(0,m.useState)(!1),K=(0,m.useCallback)(e=>{O(!!e.enabled),A(``),M(``),P(e.teamId??``),I(Array.isArray(e.channelIds)?[...e.channelIds]:[]),L(e.forwardAll!==!1),z(!!e.allowBots),V(e.mentionOnly!==!1),U(e.replyInThread!==!1),G(!!e.ack?.enabled)},[]);(0,m.useEffect)(()=>{if(b.kind!==`ready`)return;let e=b.data.messaging||{};w((Array.isArray(e.enabledChannels)?e.enabledChannels:[]).filter(y)),E(y(e.homeChannel)?e.homeChannel:`telegram`),K(b.data.slack||{})},[b,K]),(0,m.useEffect)(()=>()=>{for(let e of g)n.remove(e)},[n]);let q=(0,m.useCallback)((e,t)=>n.set(e,t),[n]),J=(0,m.useMemo)(()=>b.kind===`ready`&&b.data.slack||{},[b]),Y=b.kind===`ready`&&Array.isArray(b.data.slackEnvironmentVariables)?b.data.slackEnvironmentVariables:[],X=Y.length>0,Z=(0,m.useCallback)(async()=>{let e=n.saveBundle();if(Object.keys(e).length===0)return;let r=f(e),i=await t.put(`/api/settings`,r),a=i&&typeof i==`object`&&`data`in i?i.data:i;n.clear(),S(a),K(a.slack||{}),await x()},[t,n,x,S,K]);if((0,m.useEffect)(()=>{if(v)return v(Z),()=>v(null)},[v,Z]),b.kind===`loading`)return(0,h.jsx)(a,{});if(b.kind===`offline`)return(0,h.jsx)(o,{port:e});if(b.kind===`error`)return(0,h.jsx)(s,{message:b.message});let Q=e=>e?`••••••••${e.slice(-4)}`:`(empty)`,$=F.filter(e=>!_(e)),ne=$.length>0?`Slack conversation IDs only (C…/G…/D…) — invalid: ${$.join(`, `)}`:null,re=k&&!k.startsWith(`xoxb-`)?`Bot tokens start with xoxb-.`:null,ie=j&&!j.startsWith(`xapp-`)?`App-level tokens start with xapp-.`:null,ae=!!J.enabled&&!!J.botToken&&!J.appToken,oe=X?`Connection settings are read-only because they are managed by environment variables: ${Y.join(`, `)}.`:ae?`Currently OUTBOUND-ONLY: the app-level token (xapp-) is missing, so no inbound Slack events can arrive.`:`Slack needs TWO tokens: a bot token (xoxb-) for the Web API and an app-level token (xapp-) for Socket Mode.`;return(0,h.jsxs)(`form`,{className:`settings-page-form`,onSubmit:e=>{e.preventDefault(),Z()},children:[(0,h.jsxs)(i,{title:`Channels`,hint:`Choose which channels receive inbound chat. Outbound send can still work on any configured channel.`,children:[(0,h.jsx)(p,{pageChannel:`slack`,snapshot:b.kind===`ready`?b.data:{},enabledChannels:C,homeChannel:T,setEnabledChannels:w,setHomeChannel:E,dirty:n,idPrefix:`sl-channel`}),(0,h.jsx)(ee,{client:t,channel:`slack`})]}),(0,h.jsxs)(i,{title:`Slack`,hint:oe,children:[(0,h.jsx)(c,{id:`sl-enabled`,label:`Slack enabled`,value:D,disabled:X,onChange:e=>{O(e),q(`slack.enabled`,{value:e,original:!!J.enabled,valid:!0})}}),(0,h.jsx)(u,{id:`sl-botToken`,label:`Bot token`,value:k,placeholder:Q(J.botToken),error:re,disabled:X,onChange:e=>{if(A(e),e.length===0){n.remove(`slack.botToken`);return}q(`slack.botToken`,{value:e,original:J.botToken??``,valid:e.startsWith(`xoxb-`)})}}),(0,h.jsx)(u,{id:`sl-appToken`,label:`App-level token`,value:j,placeholder:Q(J.appToken),error:ie,disabled:X,onChange:e=>{if(M(e),e.length===0){n.remove(`slack.appToken`);return}q(`slack.appToken`,{value:e,original:J.appToken??``,valid:e.startsWith(`xapp-`)})}}),(0,h.jsx)(d,{id:`sl-teamId`,label:`Team ID`,value:N,placeholder:`T01234567 (optional)`,disabled:X,onChange:e=>{P(e),q(`slack.teamId`,{value:e,original:J.teamId??``,valid:!0})}}),(0,h.jsx)(l,{id:`sl-channelIds`,label:`Channel IDs`,value:F,placeholder:`C01234567`,error:ne,disabled:X,onChange:e=>{I(e),q(`slack.channelIds`,{value:e,original:J.channelIds??[],valid:e.every(_)})}}),(0,h.jsx)(c,{id:`sl-mentionOnly`,label:`Mention only`,value:B,onChange:e=>{V(e),q(`slack.mentionOnly`,{value:e,original:J.mentionOnly!==!1,valid:!0})}}),(0,h.jsx)(c,{id:`sl-replyInThread`,label:`Reply in thread`,value:H,onChange:e=>{U(e),q(`slack.replyInThread`,{value:e,original:J.replyInThread!==!1,valid:!0})}}),(0,h.jsx)(c,{id:`sl-forwardAll`,label:`Forward all`,value:te,onChange:e=>{L(e),q(`slack.forwardAll`,{value:e,original:J.forwardAll!==!1,valid:!0})}}),(0,h.jsx)(c,{id:`sl-allowBots`,label:`Allow bots`,value:R,onChange:e=>{z(e),q(`slack.allowBots`,{value:e,original:!!J.allowBots,valid:!0})}}),(0,h.jsx)(c,{id:`sl-ackEnabled`,label:`Emoji reactions (👀 → ✅)`,value:W,onChange:e=>{G(e),q(`slack.ack.enabled`,{value:e,original:!!J.ack?.enabled,valid:!0})}})]})]})}function y(e){return e===`telegram`||e===`discord`||e===`slack`}export{v as default,_ as isValidSlackConversationId};
|