@xgjktech/xg_cwork_im 1.15.1 → 1.15.3
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.md +3 -2
- package/dist/src/block-streaming-config.test.js +7 -1
- package/dist/src/block-streaming-config.test.js.map +1 -1
- package/dist/src/channel-config.d.ts +18 -0
- package/dist/src/channel-config.d.ts.map +1 -1
- package/dist/src/channel-config.js +10 -0
- package/dist/src/channel-config.js.map +1 -1
- package/dist/src/deliver-text.d.ts +18 -1
- package/dist/src/deliver-text.d.ts.map +1 -1
- package/dist/src/deliver-text.js +43 -4
- package/dist/src/deliver-text.js.map +1 -1
- package/dist/src/deliver-text.test.js +77 -3
- package/dist/src/deliver-text.test.js.map +1 -1
- package/dist/src/dispatch-mentioned-reply.d.ts.map +1 -1
- package/dist/src/dispatch-mentioned-reply.js +157 -38
- package/dist/src/dispatch-mentioned-reply.js.map +1 -1
- package/dist/src/inbound-terminal-delivery.d.ts +2 -0
- package/dist/src/inbound-terminal-delivery.d.ts.map +1 -1
- package/dist/src/inbound-terminal-delivery.js +1 -0
- package/dist/src/inbound-terminal-delivery.js.map +1 -1
- package/dist/src/inbound-terminal-state.test.js +1 -16
- package/dist/src/inbound-terminal-state.test.js.map +1 -1
- package/dist/src/thinking-ws-progress.test.js +1 -4
- package/dist/src/thinking-ws-progress.test.js.map +1 -1
- package/dist/src/turn-deliver-buffer.d.ts +41 -0
- package/dist/src/turn-deliver-buffer.d.ts.map +1 -0
- package/dist/src/turn-deliver-buffer.js +66 -0
- package/dist/src/turn-deliver-buffer.js.map +1 -0
- package/dist/src/turn-deliver-buffer.test.d.ts +2 -0
- package/dist/src/turn-deliver-buffer.test.d.ts.map +1 -0
- package/dist/src/turn-deliver-buffer.test.js +116 -0
- package/dist/src/turn-deliver-buffer.test.js.map +1 -0
- package/dist/src/types.d.ts +7 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/user-facing-errors.d.ts +7 -0
- package/dist/src/user-facing-errors.d.ts.map +1 -1
- package/dist/src/user-facing-errors.js +10 -1
- package/dist/src/user-facing-errors.js.map +1 -1
- package/dist/src/user-facing-errors.test.js +6 -0
- package/dist/src/user-facing-errors.test.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -247,14 +247,15 @@ openclaw gateway restart
|
|
|
247
247
|
| `initialReconnectDelay` | number | `1000` | 初始重连延迟(ms) |
|
|
248
248
|
| `maxReconnectDelay` | number | `60000` | 最大重连延迟(ms) |
|
|
249
249
|
| `reconnectJitter` | number | `0.3` | 重连抖动因子(0-1) |
|
|
250
|
-
| `firstReplyTimeoutMs` | number | `1800000`(30 分钟) | **首条
|
|
250
|
+
| `firstReplyTimeoutMs` | number | `1800000`(30 分钟) | **首条 HTTP 回复超时(毫秒)**:在尚未通过 `deliver` 发出任何业务回复时触发。超时文案按插件观测分为:`never_started`(模型未启动)、`in_progress`(dispatch 仍在进行,可能仍在处理)、`ended_without_http_reply`(dispatch 已结束但仍无 HTTP 回复)。**不是** OpenClaw 运行态 API,长任务仍可能随后继续产出回复。IM 工具进度走 WS,与 HTTP 首包超时相互独立。 |
|
|
251
251
|
| `inboundMediaWorkspaceSubdir` | string | — | **可选**。非空时,将入站附件先下载到**当前 Agent workspace** 下该**相对子目录**(如 `xg_im_inbound`),路径约定:`{子目录}/{发送者 userId}/{YYYY-MM-DD}/{文件名}_{HHmmssmmm}.ext`(时间为本机写入时刻),再向 OpenClaw 传入 **MediaPath**;默认使用 **workspace 相对路径**(如 `./xg_im_inbound/...`),便于 **沙箱** 将 `/workspace` 映射到同一套目录树;未配置则仍使用 IM 返回的 URL。需 runtime 提供 `resolveAgentWorkspaceDir`。 |
|
|
252
252
|
| `inboundMediaOpenClawPath` | string | `workspaceRelative`(默认) | `workspaceRelative`:入站落盘后 `MediaPath` 为 `./子目录/...`(若配置了 `inboundMediaSandboxRootPrefix` 则为该前缀 + 相对路径,如 `/workspace/xg_im_inbound/...`);`absoluteFileUrl`:宿主机 `file://...`(仅适合无沙箱、网关与 Agent 同盘场景)。 |
|
|
253
253
|
| `inboundMediaSandboxRootPrefix` | string | — | **可选**。沙箱内 workspace 挂载根,填 `**/workspace`** 时,在 `workspaceRelative` 模式下 `MediaPath` 为 `**/workspace/xg_im_inbound/...**`,避免 `./` 被 `read` 等工具按**进程 cwd**解析导致「不可访问」。须以 `/` 开头。 |
|
|
254
254
|
| `syncServiceBaseUrl` | string | — | **可选**。openclaw-xgkb-sync **管理 API** 根地址(如 `http://127.0.0.1:9090`)。配置后插件可处理 IM 下发的 `openclawApplySyncMapping` 信令并登记目录映射。详见 `docs/im服务接口说明.md`。 |
|
|
255
255
|
| `projectPromptMaxChars` | number | `15000` | `agentContext.background` 与 `userInfo.background` 单段最大字符数;超出尾部截断。 |
|
|
256
|
-
| `blockStreaming` | boolean | `true`(未配置时) |
|
|
256
|
+
| `blockStreaming` | boolean | `true`(未配置时) | 开启后 OpenClaw 在 assistant **text 块结束(tool 调用前)** 即调用 `deliver`;插件默认经 **段缓冲** 在 `onToolStart` / 轮次结束再 HTTP(见 `deliverSegmentBuffer`)。tool 过程走 WS `TOOL_PHASE`。设为 `false` 恢复整轮结束才 deliver 一次。 |
|
|
257
257
|
| `blockStreamingCoalesce` | object | 不配 | 可选:合并同一 text 块内 token 碎片(`minChars` / `maxChars` / `idleMs`)。IM 默认不配;**若未在通道配置,插件会自动注入 `minChars:1 idleMs:0`,覆盖 `agents.defaults` 里偏大的 coalesce**。 |
|
|
258
|
+
| `deliverSegmentBuffer` | boolean | `true`(未配置时) | `blockStreaming` 开启时,同一段 assistant 正文先写入 buffer,在 **tool 开始前**(interim)与 **dispatch 结束**(final)各冲刷一次 HTTP,避免修稿重复气泡。设为 `false` 恢复「每次 deliver 即 HTTP + C7 去重」。详见 `docs/段缓冲投递策略.md`。 |
|
|
258
259
|
| `deliverModelFallbackNotice` | boolean | `false`(未配置时) | 为 `true` 时向 IM 用户发送 OpenClaw 模型降级运营通知(`↪️ Model Fallback: …`)。默认不发送,仅保留 gateway 日志。 |
|
|
259
260
|
|
|
260
261
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from "node:assert/strict";
|
|
2
2
|
import { describe, it } from "node:test";
|
|
3
|
-
import { IM_BLOCK_STREAMING_COALESCE_DEFAULT, isInboundBlockStreamingEnabled, resolveBlockStreamingReplyOptions, resolveDispatchOpenClawCfg, } from "./channel-config.js";
|
|
3
|
+
import { IM_BLOCK_STREAMING_COALESCE_DEFAULT, isDeliverSegmentBufferEnabled, isInboundBlockStreamingEnabled, resolveBlockStreamingReplyOptions, resolveDispatchOpenClawCfg, } from "./channel-config.js";
|
|
4
4
|
function cfg(overrides = {}) {
|
|
5
5
|
return { baseUrl: "https://example.com", ...overrides };
|
|
6
6
|
}
|
|
@@ -37,5 +37,11 @@ describe("block streaming config", () => {
|
|
|
37
37
|
const patched = resolveDispatchOpenClawCfg(baseOpenClawCfg, cfg({ blockStreamingCoalesce: custom }));
|
|
38
38
|
assert.equal(patched, baseOpenClawCfg);
|
|
39
39
|
});
|
|
40
|
+
it("deliverSegmentBuffer enabled by default when unset", () => {
|
|
41
|
+
assert.equal(isDeliverSegmentBufferEnabled(cfg()), true);
|
|
42
|
+
});
|
|
43
|
+
it("deliverSegmentBuffer disabled when false", () => {
|
|
44
|
+
assert.equal(isDeliverSegmentBufferEnabled(cfg({ deliverSegmentBuffer: false })), false);
|
|
45
|
+
});
|
|
40
46
|
});
|
|
41
47
|
//# sourceMappingURL=block-streaming-config.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-streaming-config.test.js","sourceRoot":"","sources":["../../src/block-streaming-config.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACH,mCAAmC,EACnC,8BAA8B,EAC9B,iCAAiC,EACjC,0BAA0B,GAC7B,MAAM,qBAAqB,CAAC;AAG7B,SAAS,GAAG,CAAC,YAAiC,EAAE;IAC5C,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,SAAS,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,eAAe,GAAG;IACpB,MAAM,EAAE;QACJ,QAAQ,EAAE;YACN,sBAAsB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;SAC5E;KACJ;IACD,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE;CACL,CAAC;AAE7D,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,CAAC,iCAAiC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACpF,MAAM,CAAC,SAAS,CAAC,iCAAiC,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE;YAChF,qBAAqB,EAAE,IAAI;SAC9B,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC5E,MAAM,OAAO,GAAG,0BAA0B,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;QACnE,MAAM,EAAE,GAAI,OAAiF;aACxF,QAAQ,EAAE,WAAW,CAAC;QAC3B,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,sBAAsB,EAAE,EAAE,GAAG,mCAAmC,EAAE,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACvE,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,0BAA0B,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACrG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"block-streaming-config.test.js","sourceRoot":"","sources":["../../src/block-streaming-config.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
44
44
|
idleMs?: number | undefined;
|
|
45
45
|
}>>;
|
|
46
46
|
deliverModelFallbackNotice: z.ZodOptional<z.ZodBoolean>;
|
|
47
|
+
deliverSegmentBuffer: z.ZodOptional<z.ZodBoolean>;
|
|
47
48
|
accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
48
49
|
robotKey: z.ZodOptional<z.ZodString>;
|
|
49
50
|
appKey: z.ZodOptional<z.ZodString>;
|
|
@@ -83,6 +84,11 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
83
84
|
* 未配置时默认不发送(仅 gateway 日志)。
|
|
84
85
|
*/
|
|
85
86
|
deliverModelFallbackNotice: z.ZodOptional<z.ZodBoolean>;
|
|
87
|
+
/**
|
|
88
|
+
* 为 false 时关闭段缓冲:blockStreaming 下每次 deliver 仍立即 HTTP(配合 C7 去重)。
|
|
89
|
+
* 未配置且 blockStreaming 开启时默认开启。
|
|
90
|
+
*/
|
|
91
|
+
deliverSegmentBuffer: z.ZodOptional<z.ZodBoolean>;
|
|
86
92
|
}, "strip", z.ZodTypeAny, {
|
|
87
93
|
agentId: string;
|
|
88
94
|
groupPolicy: "open" | "mention";
|
|
@@ -105,6 +111,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
105
111
|
idleMs?: number | undefined;
|
|
106
112
|
} | undefined;
|
|
107
113
|
deliverModelFallbackNotice?: boolean | undefined;
|
|
114
|
+
deliverSegmentBuffer?: boolean | undefined;
|
|
108
115
|
}, {
|
|
109
116
|
robotKey?: string | undefined;
|
|
110
117
|
appKey?: string | undefined;
|
|
@@ -127,6 +134,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
127
134
|
idleMs?: number | undefined;
|
|
128
135
|
} | undefined;
|
|
129
136
|
deliverModelFallbackNotice?: boolean | undefined;
|
|
137
|
+
deliverSegmentBuffer?: boolean | undefined;
|
|
130
138
|
}>>>;
|
|
131
139
|
}, "strip", z.ZodTypeAny, {
|
|
132
140
|
agentId: string;
|
|
@@ -162,6 +170,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
162
170
|
idleMs?: number | undefined;
|
|
163
171
|
} | undefined;
|
|
164
172
|
deliverModelFallbackNotice?: boolean | undefined;
|
|
173
|
+
deliverSegmentBuffer?: boolean | undefined;
|
|
165
174
|
}> | undefined;
|
|
166
175
|
robotKey?: string | undefined;
|
|
167
176
|
appKey?: string | undefined;
|
|
@@ -182,6 +191,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
182
191
|
idleMs?: number | undefined;
|
|
183
192
|
} | undefined;
|
|
184
193
|
deliverModelFallbackNotice?: boolean | undefined;
|
|
194
|
+
deliverSegmentBuffer?: boolean | undefined;
|
|
185
195
|
}, {
|
|
186
196
|
baseUrl: string;
|
|
187
197
|
accounts?: Record<string, {
|
|
@@ -206,6 +216,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
206
216
|
idleMs?: number | undefined;
|
|
207
217
|
} | undefined;
|
|
208
218
|
deliverModelFallbackNotice?: boolean | undefined;
|
|
219
|
+
deliverSegmentBuffer?: boolean | undefined;
|
|
209
220
|
}> | undefined;
|
|
210
221
|
robotKey?: string | undefined;
|
|
211
222
|
appKey?: string | undefined;
|
|
@@ -236,6 +247,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
236
247
|
idleMs?: number | undefined;
|
|
237
248
|
} | undefined;
|
|
238
249
|
deliverModelFallbackNotice?: boolean | undefined;
|
|
250
|
+
deliverSegmentBuffer?: boolean | undefined;
|
|
239
251
|
}>, {
|
|
240
252
|
agentId: string;
|
|
241
253
|
baseUrl: string;
|
|
@@ -270,6 +282,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
270
282
|
idleMs?: number | undefined;
|
|
271
283
|
} | undefined;
|
|
272
284
|
deliverModelFallbackNotice?: boolean | undefined;
|
|
285
|
+
deliverSegmentBuffer?: boolean | undefined;
|
|
273
286
|
}> | undefined;
|
|
274
287
|
robotKey?: string | undefined;
|
|
275
288
|
appKey?: string | undefined;
|
|
@@ -290,6 +303,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
290
303
|
idleMs?: number | undefined;
|
|
291
304
|
} | undefined;
|
|
292
305
|
deliverModelFallbackNotice?: boolean | undefined;
|
|
306
|
+
deliverSegmentBuffer?: boolean | undefined;
|
|
293
307
|
}, {
|
|
294
308
|
baseUrl: string;
|
|
295
309
|
accounts?: Record<string, {
|
|
@@ -314,6 +328,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
314
328
|
idleMs?: number | undefined;
|
|
315
329
|
} | undefined;
|
|
316
330
|
deliverModelFallbackNotice?: boolean | undefined;
|
|
331
|
+
deliverSegmentBuffer?: boolean | undefined;
|
|
317
332
|
}> | undefined;
|
|
318
333
|
robotKey?: string | undefined;
|
|
319
334
|
appKey?: string | undefined;
|
|
@@ -344,6 +359,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
344
359
|
idleMs?: number | undefined;
|
|
345
360
|
} | undefined;
|
|
346
361
|
deliverModelFallbackNotice?: boolean | undefined;
|
|
362
|
+
deliverSegmentBuffer?: boolean | undefined;
|
|
347
363
|
}>;
|
|
348
364
|
/** 将 `robotKey`(推荐)或旧字段 `appKey` 归一为鉴权可用的密钥(两字段同步为同一非空值)。 */
|
|
349
365
|
export declare function normalizeRobotKey<T extends {
|
|
@@ -356,6 +372,8 @@ export declare function getXgImConfig(cfg: OpenClawConfig, accountId?: string |
|
|
|
356
372
|
export declare function isInboundBlockStreamingEnabled(config: XgImConfig): boolean;
|
|
357
373
|
/** 是否向 IM 投递 OpenClaw 模型降级运营通知(仅显式 true 时发送)。 */
|
|
358
374
|
export declare function shouldDeliverModelFallbackNoticeToIm(config: XgImConfig): boolean;
|
|
375
|
+
/** blockStreaming 开启时是否启用段缓冲(未显式 false 时默认开启)。 */
|
|
376
|
+
export declare function isDeliverSegmentBufferEnabled(config: XgImConfig): boolean;
|
|
359
377
|
/** IM 通道未配置 coalesce 时,用于覆盖 agents.defaults 中偏大值的即时 flush 策略 */
|
|
360
378
|
export declare const IM_BLOCK_STREAMING_COALESCE_DEFAULT: {
|
|
361
379
|
readonly minChars: 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-config.d.ts","sourceRoot":"","sources":["../../src/channel-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"channel-config.d.ts","sourceRoot":"","sources":["../../src/channel-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA4C7C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAnBzB;;;WAGG;;QAEH,8DAA8D;;;;;;;;;;;;;;QAE9D;;;WAGG;;QAEH;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwFD,CAAC;AAEP,6DAA6D;AAC7D,wBAAgB,iBAAiB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAIhG;AAED,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,CAuBxF;AAED,gDAAgD;AAChD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE1E;AAED,iDAAiD;AACjD,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEhF;AAED,kDAAkD;AAClD,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEzE;AAED,gEAAgE;AAChE,eAAO,MAAM,mCAAmC;;;;CAItC,CAAC;AAEX,6DAA6D;AAC7D,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,qBAAqB,EAAE,OAAO,CAAA;CAAE,CAExG;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,GAAG,cAAc,CAsBlG;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAmBvG;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAOzD;AAUD,wBAAgB,+BAA+B,CAC3C,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,cAAc,EACnB,CAAC,EAAE;IACC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,iEAAiE;IACjE,QAAQ,EAAE,gBAAgB,CAAC;CAC9B,GACF,OAAO,CA6BT"}
|
|
@@ -37,6 +37,11 @@ const XgImAccountConfigSchema = z.object({
|
|
|
37
37
|
* 未配置时默认不发送(仅 gateway 日志)。
|
|
38
38
|
*/
|
|
39
39
|
deliverModelFallbackNotice: z.boolean().optional(),
|
|
40
|
+
/**
|
|
41
|
+
* 为 false 时关闭段缓冲:blockStreaming 下每次 deliver 仍立即 HTTP(配合 C7 去重)。
|
|
42
|
+
* 未配置且 blockStreaming 开启时默认开启。
|
|
43
|
+
*/
|
|
44
|
+
deliverSegmentBuffer: z.boolean().optional(),
|
|
40
45
|
});
|
|
41
46
|
export const XgImConfigSchema = z
|
|
42
47
|
.object({
|
|
@@ -66,6 +71,7 @@ export const XgImConfigSchema = z
|
|
|
66
71
|
blockStreaming: z.boolean().optional(),
|
|
67
72
|
blockStreamingCoalesce: blockStreamingCoalesceSchema,
|
|
68
73
|
deliverModelFallbackNotice: z.boolean().optional(),
|
|
74
|
+
deliverSegmentBuffer: z.boolean().optional(),
|
|
69
75
|
accounts: z.record(z.string(), XgImAccountConfigSchema).optional(),
|
|
70
76
|
})
|
|
71
77
|
.superRefine((val, ctx) => {
|
|
@@ -154,6 +160,10 @@ export function isInboundBlockStreamingEnabled(config) {
|
|
|
154
160
|
export function shouldDeliverModelFallbackNoticeToIm(config) {
|
|
155
161
|
return config.deliverModelFallbackNotice === true;
|
|
156
162
|
}
|
|
163
|
+
/** blockStreaming 开启时是否启用段缓冲(未显式 false 时默认开启)。 */
|
|
164
|
+
export function isDeliverSegmentBufferEnabled(config) {
|
|
165
|
+
return config.deliverSegmentBuffer !== false;
|
|
166
|
+
}
|
|
157
167
|
/** IM 通道未配置 coalesce 时,用于覆盖 agents.defaults 中偏大值的即时 flush 策略 */
|
|
158
168
|
export const IM_BLOCK_STREAMING_COALESCE_DEFAULT = {
|
|
159
169
|
minChars: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-config.js","sourceRoot":"","sources":["../../src/channel-config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"channel-config.js","sourceRoot":"","sources":["../../src/channel-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* deliver 正文预处理:剥离 OpenClaw MEDIA
|
|
2
|
+
* deliver 正文预处理:剥离 OpenClaw MEDIA 指令行、用量 footer、同轮重复纯文本抑制。
|
|
3
3
|
*/
|
|
4
4
|
/** 从用户可见正文中移除 `MEDIA:<path>` 独立行(OpenClaw 媒体指令不应出现在 IM 正文里)。 */
|
|
5
5
|
export declare function stripMediaDirectiveLines(text: string): string;
|
|
6
|
+
/** 移除模型用量 footer 行(仅用于同轮去重比较,不用于改写发给 IM 的正文)。 */
|
|
7
|
+
export declare function stripModelUsageFooter(text: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* 用于同轮去重的正文归一化:剥 MEDIA / footer,折叠空白与空行差异。
|
|
10
|
+
* footer 在发给用户时保留;去重时忽略 footer 差异。
|
|
11
|
+
*/
|
|
12
|
+
export declare function normalizeDeliverComparableText(text: string): string;
|
|
6
13
|
/** 同轮内:若本条与上一条已发正文相同且本条无媒体,则视为重复 deliver,应跳过。 */
|
|
7
14
|
export declare function shouldSuppressDuplicateTextDeliver(args: {
|
|
8
15
|
textPart: string;
|
|
@@ -10,4 +17,14 @@ export declare function shouldSuppressDuplicateTextDeliver(args: {
|
|
|
10
17
|
lastDeliveredText: string;
|
|
11
18
|
lastDeliveredHadMedia: boolean;
|
|
12
19
|
}): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* 带附件 deliver:若 caption 与同轮已发纯文归一化后相同,则只发文件、省略重复 caption。
|
|
22
|
+
* 典型:先 HTTP 纯文 (#3),再文+附件 (#4) → 用户只应看到「说明 + 文件」,而非说明两次。
|
|
23
|
+
*/
|
|
24
|
+
export declare function shouldOmitDuplicateFileCaption(args: {
|
|
25
|
+
textPart: string;
|
|
26
|
+
hasMedia: boolean;
|
|
27
|
+
lastDeliveredText: string;
|
|
28
|
+
lastDeliveredHadMedia: boolean;
|
|
29
|
+
}): boolean;
|
|
13
30
|
//# sourceMappingURL=deliver-text.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliver-text.d.ts","sourceRoot":"","sources":["../../src/deliver-text.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"deliver-text.d.ts","sourceRoot":"","sources":["../../src/deliver-text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,gEAAgE;AAChE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7D;AAED,iDAAiD;AACjD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASnE;AAED,iDAAiD;AACjD,wBAAgB,kCAAkC,CAAC,IAAI,EAAE;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,OAAO,CAAC;CAClC,GAAG,OAAO,CAQV;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,OAAO,CAAC;CAClC,GAAG,OAAO,CAQV"}
|
package/dist/src/deliver-text.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* deliver 正文预处理:剥离 OpenClaw MEDIA
|
|
2
|
+
* deliver 正文预处理:剥离 OpenClaw MEDIA 指令行、用量 footer、同轮重复纯文本抑制。
|
|
3
3
|
*/
|
|
4
4
|
const MEDIA_LINE_RE = /^\s*MEDIA:\s*.+/i;
|
|
5
|
+
/** OpenClaw 模型用量 footer,例如 `_🟡 ↑111k ↓164 · 63%ctx · openai/gpt-5.5_` */
|
|
6
|
+
const MODEL_USAGE_FOOTER_LINE_RE = /^\s*_?\s*[🟢🟡🔴]\s*↑[\d.]+[kmKM]?\s*↓\d+.*(?:ctx|·).+$/u;
|
|
5
7
|
/** 从用户可见正文中移除 `MEDIA:<path>` 独立行(OpenClaw 媒体指令不应出现在 IM 正文里)。 */
|
|
6
8
|
export function stripMediaDirectiveLines(text) {
|
|
7
9
|
const lines = text.split(/\r?\n/);
|
|
@@ -11,18 +13,55 @@ export function stripMediaDirectiveLines(text) {
|
|
|
11
13
|
.replace(/\n{3,}/g, "\n\n")
|
|
12
14
|
.trim();
|
|
13
15
|
}
|
|
16
|
+
/** 移除模型用量 footer 行(仅用于同轮去重比较,不用于改写发给 IM 的正文)。 */
|
|
17
|
+
export function stripModelUsageFooter(text) {
|
|
18
|
+
const lines = text.split(/\r?\n/);
|
|
19
|
+
const kept = lines.filter((line) => !MODEL_USAGE_FOOTER_LINE_RE.test(line));
|
|
20
|
+
return kept.join("\n").trim();
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 用于同轮去重的正文归一化:剥 MEDIA / footer,折叠空白与空行差异。
|
|
24
|
+
* footer 在发给用户时保留;去重时忽略 footer 差异。
|
|
25
|
+
*/
|
|
26
|
+
export function normalizeDeliverComparableText(text) {
|
|
27
|
+
let t = stripModelUsageFooter(stripMediaDirectiveLines(text));
|
|
28
|
+
t = t.replace(/\r\n/g, "\n");
|
|
29
|
+
t = t
|
|
30
|
+
.split("\n")
|
|
31
|
+
.map((line) => line.replace(/[ \t]+/g, " ").trim())
|
|
32
|
+
.filter((line) => line.length > 0 && !/^-{3,}$/.test(line))
|
|
33
|
+
.join("\n");
|
|
34
|
+
return t.trim();
|
|
35
|
+
}
|
|
14
36
|
/** 同轮内:若本条与上一条已发正文相同且本条无媒体,则视为重复 deliver,应跳过。 */
|
|
15
37
|
export function shouldSuppressDuplicateTextDeliver(args) {
|
|
16
38
|
if (args.hasMedia)
|
|
17
39
|
return false;
|
|
18
|
-
const text =
|
|
40
|
+
const text = normalizeDeliverComparableText(args.textPart);
|
|
19
41
|
if (!text)
|
|
20
42
|
return false;
|
|
21
43
|
if (!args.lastDeliveredText)
|
|
22
44
|
return false;
|
|
23
|
-
|
|
45
|
+
const last = normalizeDeliverComparableText(args.lastDeliveredText);
|
|
46
|
+
if (text !== last)
|
|
24
47
|
return false;
|
|
25
|
-
// 上一条已发过同文(含「文+附件」caption 或纯文),本条纯文重复
|
|
26
48
|
return args.lastDeliveredHadMedia || text.length > 0;
|
|
27
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* 带附件 deliver:若 caption 与同轮已发纯文归一化后相同,则只发文件、省略重复 caption。
|
|
52
|
+
* 典型:先 HTTP 纯文 (#3),再文+附件 (#4) → 用户只应看到「说明 + 文件」,而非说明两次。
|
|
53
|
+
*/
|
|
54
|
+
export function shouldOmitDuplicateFileCaption(args) {
|
|
55
|
+
if (!args.hasMedia)
|
|
56
|
+
return false;
|
|
57
|
+
const caption = normalizeDeliverComparableText(args.textPart);
|
|
58
|
+
if (caption.length < 16)
|
|
59
|
+
return false;
|
|
60
|
+
if (!args.lastDeliveredText)
|
|
61
|
+
return false;
|
|
62
|
+
const last = normalizeDeliverComparableText(args.lastDeliveredText);
|
|
63
|
+
if (!last)
|
|
64
|
+
return false;
|
|
65
|
+
return caption === last;
|
|
66
|
+
}
|
|
28
67
|
//# sourceMappingURL=deliver-text.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliver-text.js","sourceRoot":"","sources":["../../src/deliver-text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAEzC,gEAAgE;AAChE,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,OAAO,IAAI;SACN,IAAI,CAAC,IAAI,CAAC;SACV,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;SAC1B,IAAI,EAAE,CAAC;AAChB,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,kCAAkC,CAAC,IAKlD;IACG,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"deliver-text.js","sourceRoot":"","sources":["../../src/deliver-text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAEzC,0EAA0E;AAC1E,MAAM,0BAA0B,GAC5B,0DAA0D,CAAC;AAE/D,gEAAgE;AAChE,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,OAAO,IAAI;SACN,IAAI,CAAC,IAAI,CAAC;SACV,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;SAC1B,IAAI,EAAE,CAAC;AAChB,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAAY;IACvD,IAAI,CAAC,GAAG,qBAAqB,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC,GAAG,CAAC;SACA,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;SAClD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1D,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,kCAAkC,CAAC,IAKlD;IACG,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,IAAI,GAAG,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,IAAI,GAAG,8BAA8B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpE,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAK9C;IACG,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACjC,MAAM,OAAO,GAAG,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,CAAC,IAAI,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,IAAI,GAAG,8BAA8B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,OAAO,KAAK,IAAI,CAAC;AAC5B,CAAC"}
|
|
@@ -1,13 +1,53 @@
|
|
|
1
1
|
import assert from "node:assert/strict";
|
|
2
2
|
import { describe, it } from "node:test";
|
|
3
|
-
import { shouldSuppressDuplicateTextDeliver, stripMediaDirectiveLines } from "./deliver-text.js";
|
|
3
|
+
import { normalizeDeliverComparableText, shouldOmitDuplicateFileCaption, shouldSuppressDuplicateTextDeliver, stripMediaDirectiveLines, stripModelUsageFooter, } from "./deliver-text.js";
|
|
4
|
+
// 生产 incident 回归:侯桐 2026-07-10 终态三连发(空行/footer 微差)
|
|
5
|
+
const HOUTONG_BODY_LOOSE = `确实是这个问题:昨天那版虽然用了内嵌 SVG,但你现在的文档预览器没有把 SVG 正常渲染出来,所以流程看不到。
|
|
6
|
+
|
|
7
|
+
我已经重新生成了一版**纯 Markdown 可读版**:
|
|
8
|
+
|
|
9
|
+
- 不用 SVG
|
|
10
|
+
- 不用 Mermaid
|
|
11
|
+
- 不用图片
|
|
12
|
+
- 全部用 Markdown 表格 + 文本流程图 + 状态表表达
|
|
13
|
+
|
|
14
|
+
这样在 IM 文件预览里也能直接看懂完整流程。
|
|
15
|
+
|
|
16
|
+
新文件:
|
|
17
|
+
|
|
18
|
+
-----`;
|
|
19
|
+
const HOUTONG_BODY_TIGHT = `确实是这个问题:昨天那版虽然用了内嵌 SVG,但你现在的文档预览器没有把 SVG 正常渲染出来,所以流程看不到。
|
|
20
|
+
我已经重新生成了一版**纯 Markdown 可读版**:
|
|
21
|
+
- 不用 SVG
|
|
22
|
+
- 不用 Mermaid
|
|
23
|
+
- 不用图片
|
|
24
|
+
- 全部用 Markdown 表格 + 文本流程图 + 状态表表达
|
|
25
|
+
这样在 IM 文件预览里也能直接看懂完整流程。
|
|
26
|
+
新文件:`;
|
|
27
|
+
const HOUTONG_BODY_WITH_FOOTER = `${HOUTONG_BODY_TIGHT}
|
|
28
|
+
|
|
29
|
+
_🟡 ↑111k ↓164 · 63%ctx · openai/gpt-5.5_`;
|
|
4
30
|
describe("stripMediaDirectiveLines", () => {
|
|
5
31
|
it("removes MEDIA directive lines", () => {
|
|
6
32
|
const input = "文件在这里\nMEDIA:./xg-cwork-im/report.md\n";
|
|
7
33
|
assert.equal(stripMediaDirectiveLines(input), "文件在这里");
|
|
8
34
|
});
|
|
9
|
-
it("keeps text
|
|
10
|
-
|
|
35
|
+
it("keeps usage footer in user-visible text (footer only stripped for dedup)", () => {
|
|
36
|
+
const withFooter = "正文\n\n_🟡 ↑111k ↓164 · 63%ctx · openai/gpt-5.5_";
|
|
37
|
+
assert.equal(stripMediaDirectiveLines(withFooter), withFooter);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
describe("stripModelUsageFooter", () => {
|
|
41
|
+
it("removes usage footer line", () => {
|
|
42
|
+
assert.equal(stripModelUsageFooter("正文\n\n_🟡 ↑111k ↓164 · 63%ctx · openai/gpt-5.5_"), "正文");
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe("normalizeDeliverComparableText", () => {
|
|
46
|
+
it("treats loose vs tight newlines as same (Houtong case)", () => {
|
|
47
|
+
assert.equal(normalizeDeliverComparableText(HOUTONG_BODY_LOOSE), normalizeDeliverComparableText(HOUTONG_BODY_TIGHT));
|
|
48
|
+
});
|
|
49
|
+
it("ignores usage footer when comparing", () => {
|
|
50
|
+
assert.equal(normalizeDeliverComparableText(HOUTONG_BODY_TIGHT), normalizeDeliverComparableText(HOUTONG_BODY_WITH_FOOTER));
|
|
11
51
|
});
|
|
12
52
|
});
|
|
13
53
|
describe("shouldSuppressDuplicateTextDeliver", () => {
|
|
@@ -27,5 +67,39 @@ describe("shouldSuppressDuplicateTextDeliver", () => {
|
|
|
27
67
|
lastDeliveredHadMedia: true,
|
|
28
68
|
}), false);
|
|
29
69
|
});
|
|
70
|
+
it("suppresses third pure-text burst after text+file (Houtong #5)", () => {
|
|
71
|
+
assert.equal(shouldSuppressDuplicateTextDeliver({
|
|
72
|
+
textPart: HOUTONG_BODY_TIGHT,
|
|
73
|
+
hasMedia: false,
|
|
74
|
+
lastDeliveredText: HOUTONG_BODY_WITH_FOOTER,
|
|
75
|
+
lastDeliveredHadMedia: true,
|
|
76
|
+
}), true);
|
|
77
|
+
});
|
|
78
|
+
it("does not suppress distinct tool-before progress", () => {
|
|
79
|
+
assert.equal(shouldSuppressDuplicateTextDeliver({
|
|
80
|
+
textPart: "我先读一下原文档",
|
|
81
|
+
hasMedia: false,
|
|
82
|
+
lastDeliveredText: HOUTONG_BODY_TIGHT,
|
|
83
|
+
lastDeliveredHadMedia: false,
|
|
84
|
+
}), false);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
describe("shouldOmitDuplicateFileCaption", () => {
|
|
88
|
+
it("omits caption when same text was just sent as RICH_TEXT (#4 after #3)", () => {
|
|
89
|
+
assert.equal(shouldOmitDuplicateFileCaption({
|
|
90
|
+
textPart: HOUTONG_BODY_WITH_FOOTER,
|
|
91
|
+
hasMedia: true,
|
|
92
|
+
lastDeliveredText: HOUTONG_BODY_LOOSE,
|
|
93
|
+
lastDeliveredHadMedia: false,
|
|
94
|
+
}), true);
|
|
95
|
+
});
|
|
96
|
+
it("keeps caption when preceding text differed", () => {
|
|
97
|
+
assert.equal(shouldOmitDuplicateFileCaption({
|
|
98
|
+
textPart: HOUTONG_BODY_TIGHT,
|
|
99
|
+
hasMedia: true,
|
|
100
|
+
lastDeliveredText: "现在生成一个纯 Markdown 版本",
|
|
101
|
+
lastDeliveredHadMedia: false,
|
|
102
|
+
}), false);
|
|
103
|
+
});
|
|
30
104
|
});
|
|
31
105
|
//# sourceMappingURL=deliver-text.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliver-text.test.js","sourceRoot":"","sources":["../../src/deliver-text.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"deliver-text.test.js","sourceRoot":"","sources":["../../src/deliver-text.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch-mentioned-reply.d.ts","sourceRoot":"","sources":["../../src/dispatch-mentioned-reply.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAA2C,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatch-mentioned-reply.d.ts","sourceRoot":"","sources":["../../src/dispatch-mentioned-reply.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAA2C,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAiCtG,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAyF3E,mDAAmD;AACnD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IAC/C,EAAE,EAAE,GAAG,CAAC;IACR,GAAG,EAAE,cAAc,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,eAAe,EAAE,WAAW,CAAC;IAC7B,YAAY,EAAE,cAAc,CAAC;IAC7B,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,cAAc,CAAC,EAAE,cAAc,CAAC;CACnC,GAAG,OAAO,CAAC,IAAI,CAAC,CA4oBhB"}
|