@xgjktech/xg_cwork_im 1.15.2 → 1.16.1

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 (45) hide show
  1. package/README.md +2 -1
  2. package/dist/src/block-streaming-config.test.js +7 -1
  3. package/dist/src/block-streaming-config.test.js.map +1 -1
  4. package/dist/src/channel-config.d.ts +18 -0
  5. package/dist/src/channel-config.d.ts.map +1 -1
  6. package/dist/src/channel-config.js +10 -0
  7. package/dist/src/channel-config.js.map +1 -1
  8. package/dist/src/connection.d.ts +10 -7
  9. package/dist/src/connection.d.ts.map +1 -1
  10. package/dist/src/connection.js +35 -4
  11. package/dist/src/connection.js.map +1 -1
  12. package/dist/src/deliver-text.d.ts +1 -1
  13. package/dist/src/deliver-text.d.ts.map +1 -1
  14. package/dist/src/deliver-text.js +13 -4
  15. package/dist/src/deliver-text.js.map +1 -1
  16. package/dist/src/deliver-text.test.js +14 -2
  17. package/dist/src/deliver-text.test.js.map +1 -1
  18. package/dist/src/dispatch-mentioned-reply.d.ts +2 -2
  19. package/dist/src/dispatch-mentioned-reply.d.ts.map +1 -1
  20. package/dist/src/dispatch-mentioned-reply.js +165 -52
  21. package/dist/src/dispatch-mentioned-reply.js.map +1 -1
  22. package/dist/src/run-usage-session.d.ts +10 -0
  23. package/dist/src/run-usage-session.d.ts.map +1 -0
  24. package/dist/src/run-usage-session.js +29 -0
  25. package/dist/src/run-usage-session.js.map +1 -0
  26. package/dist/src/run-usage.d.ts +52 -0
  27. package/dist/src/run-usage.d.ts.map +1 -0
  28. package/dist/src/run-usage.js +93 -0
  29. package/dist/src/run-usage.js.map +1 -0
  30. package/dist/src/run-usage.test.d.ts +2 -0
  31. package/dist/src/run-usage.test.d.ts.map +1 -0
  32. package/dist/src/run-usage.test.js +90 -0
  33. package/dist/src/run-usage.test.js.map +1 -0
  34. package/dist/src/turn-deliver-buffer.d.ts +42 -0
  35. package/dist/src/turn-deliver-buffer.d.ts.map +1 -0
  36. package/dist/src/turn-deliver-buffer.js +66 -0
  37. package/dist/src/turn-deliver-buffer.js.map +1 -0
  38. package/dist/src/turn-deliver-buffer.test.d.ts +2 -0
  39. package/dist/src/turn-deliver-buffer.test.d.ts.map +1 -0
  40. package/dist/src/turn-deliver-buffer.test.js +130 -0
  41. package/dist/src/turn-deliver-buffer.test.js.map +1 -0
  42. package/dist/src/types.d.ts +7 -0
  43. package/dist/src/types.d.ts.map +1 -1
  44. package/dist/src/types.js.map +1 -1
  45. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-usage.js","sourceRoot":"","sources":["../../src/run-usage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=run-usage.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-usage.test.d.ts","sourceRoot":"","sources":["../../src/run-usage.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,90 @@
1
+ import assert from "node:assert/strict";
2
+ import { describe, it } from "node:test";
3
+ import { buildRunUsageFromSessionEntry, hasReportableUsage, toImStreamRunUsageData, } from "./run-usage.js";
4
+ describe("buildRunUsageFromSessionEntry", () => {
5
+ it("maps session store fields to RUN_USAGE snapshot", () => {
6
+ const u = buildRunUsageFromSessionEntry({
7
+ modelProvider: "openai",
8
+ model: "gpt-5.5",
9
+ inputTokens: 1_200,
10
+ outputTokens: 89,
11
+ cacheRead: 10_000,
12
+ cacheWrite: 0,
13
+ estimatedCostUsd: 0.0123,
14
+ }, { runId: "run-1" });
15
+ assert.ok(u);
16
+ assert.equal(u.source, "session");
17
+ assert.equal(u.provider, "openai");
18
+ assert.equal(u.model, "gpt-5.5");
19
+ assert.equal(u.modelRef, "openai/gpt-5.5");
20
+ assert.equal(u.inputTokens, 1_200);
21
+ assert.equal(u.outputTokens, 89);
22
+ assert.equal(u.totalTokens, 1_289);
23
+ assert.equal(u.cacheReadTokens, 10_000);
24
+ assert.equal(u.cacheWriteTokens, 0);
25
+ assert.equal(u.estimatedCostUsd, 0.0123);
26
+ assert.equal(u.runId, "run-1");
27
+ });
28
+ it("prefers explicit totalTokens from session", () => {
29
+ const u = buildRunUsageFromSessionEntry({
30
+ modelProvider: "xgjk-newapi",
31
+ model: "MiniMax-M2.7-Cloud",
32
+ inputTokens: 100,
33
+ outputTokens: 20,
34
+ totalTokens: 26_002,
35
+ });
36
+ assert.ok(u);
37
+ assert.equal(u.totalTokens, 26_002);
38
+ });
39
+ it("accepts model-only entry", () => {
40
+ const u = buildRunUsageFromSessionEntry({
41
+ modelProvider: "openai",
42
+ model: "gpt-5.5",
43
+ });
44
+ assert.ok(u);
45
+ assert.equal(u.modelRef, "openai/gpt-5.5");
46
+ assert.equal(u.inputTokens, undefined);
47
+ assert.equal(hasReportableUsage(u), true);
48
+ });
49
+ it("accepts tokens-only entry", () => {
50
+ const u = buildRunUsageFromSessionEntry({
51
+ inputTokens: 10,
52
+ outputTokens: 2,
53
+ });
54
+ assert.ok(u);
55
+ assert.equal(u.totalTokens, 12);
56
+ assert.equal(u.modelRef, undefined);
57
+ });
58
+ it("returns undefined for empty entry", () => {
59
+ assert.equal(buildRunUsageFromSessionEntry({}), undefined);
60
+ assert.equal(buildRunUsageFromSessionEntry(null), undefined);
61
+ assert.equal(buildRunUsageFromSessionEntry(undefined), undefined);
62
+ });
63
+ });
64
+ describe("toImStreamRunUsageData", () => {
65
+ it("omits undefined optional fields", () => {
66
+ const data = toImStreamRunUsageData({
67
+ provider: "openai",
68
+ model: "gpt-5.5",
69
+ modelRef: "openai/gpt-5.5",
70
+ inputTokens: 100,
71
+ outputTokens: 5,
72
+ totalTokens: 105,
73
+ source: "session",
74
+ }, { groupId: "g1", replyToMsgId: "m1" });
75
+ assert.deepEqual(data, {
76
+ groupId: "g1",
77
+ replyToMsgId: "m1",
78
+ usage: {
79
+ provider: "openai",
80
+ model: "gpt-5.5",
81
+ modelRef: "openai/gpt-5.5",
82
+ inputTokens: 100,
83
+ outputTokens: 5,
84
+ totalTokens: 105,
85
+ source: "session",
86
+ },
87
+ });
88
+ });
89
+ });
90
+ //# sourceMappingURL=run-usage.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-usage.test.js","sourceRoot":"","sources":["../../src/run-usage.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * 一轮 dispatch 内的 assistant 正文段缓冲:同段多次 deliver 覆盖,在 tool 边界或轮次结束冲刷 HTTP。
3
+ */
4
+ import type { ReplyDeliverPayload } from "./send-service.js";
5
+ export type DeliverFlushKind = "interim" | "final";
6
+ export type BufferedDeliverEntry = {
7
+ payload: ReplyDeliverPayload;
8
+ textPart: string;
9
+ hasMedia: boolean;
10
+ };
11
+ export type TurnDeliverBufferStats = {
12
+ writeCount: number;
13
+ flushInterimCount: number;
14
+ flushFinalCount: number;
15
+ skippedDuplicateFlushCount: number;
16
+ };
17
+ export type TakeForFlushResult = {
18
+ status: "empty";
19
+ } | {
20
+ status: "skipped_duplicate";
21
+ entry: BufferedDeliverEntry;
22
+ } | {
23
+ status: "ready";
24
+ entry: BufferedDeliverEntry;
25
+ };
26
+ /** deliver 正文/附件是否值得写入 buffer 或立即 HTTP。 */
27
+ export declare function isDeliverPayloadSendable(args: {
28
+ textPart: string;
29
+ hasMedia: boolean;
30
+ isThinking?: boolean;
31
+ }): boolean;
32
+ export declare class TurnDeliverBuffer {
33
+ private buffer;
34
+ private lastFlushedComparable;
35
+ private readonly stats;
36
+ hasContent(): boolean;
37
+ getStats(): TurnDeliverBufferStats;
38
+ write(entry: BufferedDeliverEntry): void;
39
+ takeForFlush(kind: DeliverFlushKind): TakeForFlushResult;
40
+ clear(): void;
41
+ }
42
+ //# sourceMappingURL=turn-deliver-buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-deliver-buffer.d.ts","sourceRoot":"","sources":["../../src/turn-deliver-buffer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnD,MAAM,MAAM,oBAAoB,GAAG;IAC/B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,0BAA0B,EAAE,MAAM,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GACxB;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GACnB;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,oBAAoB,CAAA;CAAE,GAC5D;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAEvD,2CAA2C;AAC3C,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAEV;AAED,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,qBAAqB,CAAM;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAKpB;IAEF,UAAU,IAAI,OAAO;IAIrB,QAAQ,IAAI,sBAAsB;IAIlC,KAAK,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI;IAKxC,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,kBAAkB;IAiCxD,KAAK,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * 一轮 dispatch 内的 assistant 正文段缓冲:同段多次 deliver 覆盖,在 tool 边界或轮次结束冲刷 HTTP。
3
+ */
4
+ import { normalizeDeliverComparableText } from "./deliver-text.js";
5
+ /** deliver 正文/附件是否值得写入 buffer 或立即 HTTP。 */
6
+ export function isDeliverPayloadSendable(args) {
7
+ return Boolean(args.textPart) || (args.hasMedia && !args.isThinking);
8
+ }
9
+ export class TurnDeliverBuffer {
10
+ buffer;
11
+ lastFlushedComparable = "";
12
+ stats = {
13
+ writeCount: 0,
14
+ flushInterimCount: 0,
15
+ flushFinalCount: 0,
16
+ skippedDuplicateFlushCount: 0,
17
+ };
18
+ hasContent() {
19
+ return this.buffer !== undefined;
20
+ }
21
+ getStats() {
22
+ return { ...this.stats };
23
+ }
24
+ write(entry) {
25
+ this.buffer = entry;
26
+ this.stats.writeCount++;
27
+ }
28
+ takeForFlush(kind) {
29
+ if (!this.buffer) {
30
+ return { status: "empty" };
31
+ }
32
+ const comparable = buildFlushComparable(this.buffer);
33
+ const entry = this.buffer;
34
+ // 仅抑制「纯文重复」;带附件的 flush 必须发出(interim 纯文 → final 文+附件)。
35
+ if (comparable.length > 0 &&
36
+ comparable === this.lastFlushedComparable &&
37
+ !entry.hasMedia) {
38
+ this.stats.skippedDuplicateFlushCount++;
39
+ this.clear();
40
+ return { status: "skipped_duplicate", entry };
41
+ }
42
+ this.clear();
43
+ if (kind === "interim") {
44
+ this.stats.flushInterimCount++;
45
+ }
46
+ else {
47
+ this.stats.flushFinalCount++;
48
+ }
49
+ if (comparable.length > 0) {
50
+ this.lastFlushedComparable = comparable;
51
+ }
52
+ return { status: "ready", entry };
53
+ }
54
+ clear() {
55
+ this.buffer = undefined;
56
+ }
57
+ }
58
+ function buildFlushComparable(entry) {
59
+ const text = normalizeDeliverComparableText(entry.textPart);
60
+ if (text)
61
+ return text;
62
+ if (entry.hasMedia)
63
+ return "[media-only]";
64
+ return "";
65
+ }
66
+ //# sourceMappingURL=turn-deliver-buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-deliver-buffer.js","sourceRoot":"","sources":["../../src/turn-deliver-buffer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAuBnE,2CAA2C;AAC3C,MAAM,UAAU,wBAAwB,CAAC,IAIxC;IACG,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,OAAO,iBAAiB;IAClB,MAAM,CAAmC;IACzC,qBAAqB,GAAG,EAAE,CAAC;IAClB,KAAK,GAA2B;QAC7C,UAAU,EAAE,CAAC;QACb,iBAAiB,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;QAClB,0BAA0B,EAAE,CAAC;KAChC,CAAC;IAEF,UAAU;QACN,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;IACrC,CAAC;IAED,QAAQ;QACJ,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,KAA2B;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,IAAsB;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,sDAAsD;QACtD,IACI,UAAU,CAAC,MAAM,GAAG,CAAC;YACrB,UAAU,KAAK,IAAI,CAAC,qBAAqB;YACzC,CAAC,KAAK,CAAC,QAAQ,EACjB,CAAC;YACC,IAAI,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;QACnC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC;QAC5C,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACtC,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC5B,CAAC;CACJ;AAED,SAAS,oBAAoB,CAAC,KAA2B;IACrD,MAAM,IAAI,GAAG,8BAA8B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,KAAK,CAAC,QAAQ;QAAE,OAAO,cAAc,CAAC;IAC1C,OAAO,EAAE,CAAC;AACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=turn-deliver-buffer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-deliver-buffer.test.d.ts","sourceRoot":"","sources":["../../src/turn-deliver-buffer.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,130 @@
1
+ import assert from "node:assert/strict";
2
+ import { describe, it } from "node:test";
3
+ import { isDeliverPayloadSendable, TurnDeliverBuffer, } from "./turn-deliver-buffer.js";
4
+ const HOUTONG_BODY_LOOSE = `确实是这个问题:昨天那版虽然用了内嵌 SVG,但你现在的文档预览器没有把 SVG 正常渲染出来,所以流程看不到。
5
+
6
+ 我已经重新生成了一版**纯 Markdown 可读版**:
7
+
8
+ - 不用 SVG
9
+ 新文件:
10
+
11
+ -----`;
12
+ const HOUTONG_BODY_TIGHT = `确实是这个问题:昨天那版虽然用了内嵌 SVG,但你现在的文档预览器没有把 SVG 正常渲染出来,所以流程看不到。
13
+ 我已经重新生成了一版**纯 Markdown 可读版**:
14
+ - 不用 SVG
15
+ 新文件:`;
16
+ const WORLD_CUP_PARTIAL = `| 场次 | 时间 |
17
+ | --- | --- |
18
+ | 1 | 21:00 |
19
+ | 2 |`;
20
+ const WORLD_CUP_FULL = `| 场次 | 时间 |
21
+ | --- | --- |
22
+ | 1 | 21:00 |
23
+ | 2 | 00:00 |
24
+ | 3 | 03:00 |`;
25
+ function entry(textPart, hasMedia = false) {
26
+ return {
27
+ payload: { text: textPart, ...(hasMedia ? { mediaUrl: "/tmp/a.md" } : {}) },
28
+ textPart,
29
+ hasMedia,
30
+ };
31
+ }
32
+ describe("isDeliverPayloadSendable", () => {
33
+ it("accepts text or non-thinking media", () => {
34
+ assert.equal(isDeliverPayloadSendable({ textPart: "hi", hasMedia: false }), true);
35
+ assert.equal(isDeliverPayloadSendable({ textPart: "", hasMedia: true }), true);
36
+ assert.equal(isDeliverPayloadSendable({ textPart: "", hasMedia: true, isThinking: true }), false);
37
+ assert.equal(isDeliverPayloadSendable({ textPart: "", hasMedia: false }), false);
38
+ });
39
+ });
40
+ describe("TurnDeliverBuffer", () => {
41
+ it("overwrites on multiple writes; final flush returns last version only", () => {
42
+ const buf = new TurnDeliverBuffer();
43
+ buf.write(entry(HOUTONG_BODY_LOOSE));
44
+ buf.write(entry(HOUTONG_BODY_TIGHT));
45
+ buf.write(entry(HOUTONG_BODY_TIGHT, true));
46
+ const final = buf.takeForFlush("final");
47
+ assert.equal(final.status, "ready");
48
+ if (final.status === "ready") {
49
+ assert.equal(final.entry.textPart, HOUTONG_BODY_TIGHT);
50
+ assert.equal(final.entry.hasMedia, true);
51
+ }
52
+ assert.deepEqual(buf.getStats(), {
53
+ writeCount: 3,
54
+ flushInterimCount: 0,
55
+ flushFinalCount: 1,
56
+ skippedDuplicateFlushCount: 0,
57
+ });
58
+ });
59
+ it("interim flush clears buffer; final holds post-tool segment", () => {
60
+ const buf = new TurnDeliverBuffer();
61
+ buf.write(entry("先说明"));
62
+ const interim = buf.takeForFlush("interim");
63
+ assert.equal(interim.status, "ready");
64
+ buf.write(entry("最终结论"));
65
+ const final = buf.takeForFlush("final");
66
+ assert.equal(final.status, "ready");
67
+ if (final.status === "ready") {
68
+ assert.equal(final.entry.textPart, "最终结论");
69
+ }
70
+ assert.equal(buf.getStats().flushInterimCount, 1);
71
+ assert.equal(buf.getStats().flushFinalCount, 1);
72
+ });
73
+ it("skips final flush when comparable matches last interim (text-only)", () => {
74
+ const buf = new TurnDeliverBuffer();
75
+ buf.write(entry("正在查询…"));
76
+ assert.equal(buf.takeForFlush("interim").status, "ready");
77
+ buf.write(entry("正在查询…"));
78
+ assert.equal(buf.takeForFlush("final").status, "skipped_duplicate");
79
+ assert.equal(buf.getStats().skippedDuplicateFlushCount, 1);
80
+ assert.equal(buf.getStats().flushFinalCount, 0);
81
+ const dup = buf.takeForFlush("final");
82
+ assert.equal(dup.status, "empty");
83
+ });
84
+ it("skipped_duplicate still exposes entry for callers", () => {
85
+ const buf = new TurnDeliverBuffer();
86
+ buf.write(entry("说明文字"));
87
+ assert.equal(buf.takeForFlush("interim").status, "ready");
88
+ const withNoise = "说明文字\n\n_🟡 ↑111k ↓164 · 63%ctx · openai/gpt-5.5_";
89
+ buf.write(entry(withNoise));
90
+ const skipped = buf.takeForFlush("final");
91
+ assert.equal(skipped.status, "skipped_duplicate");
92
+ if (skipped.status === "skipped_duplicate") {
93
+ assert.equal(skipped.entry.textPart, withNoise);
94
+ }
95
+ });
96
+ it("does not skip final when same text gains attachment after interim", () => {
97
+ const buf = new TurnDeliverBuffer();
98
+ buf.write(entry("说明文字"));
99
+ assert.equal(buf.takeForFlush("interim").status, "ready");
100
+ buf.write(entry("说明文字", true));
101
+ const final = buf.takeForFlush("final");
102
+ assert.equal(final.status, "ready");
103
+ if (final.status === "ready") {
104
+ assert.equal(final.entry.hasMedia, true);
105
+ assert.equal(final.entry.textPart, "说明文字");
106
+ }
107
+ });
108
+ it("world cup table revision: only full table in final flush", () => {
109
+ const buf = new TurnDeliverBuffer();
110
+ buf.write(entry(WORLD_CUP_PARTIAL));
111
+ buf.write(entry(WORLD_CUP_FULL));
112
+ const final = buf.takeForFlush("final");
113
+ assert.equal(final.status, "ready");
114
+ if (final.status === "ready") {
115
+ assert.equal(final.entry.textPart, WORLD_CUP_FULL);
116
+ }
117
+ });
118
+ it("multi-tool: two interim + one final", () => {
119
+ const buf = new TurnDeliverBuffer();
120
+ buf.write(entry("段1"));
121
+ assert.equal(buf.takeForFlush("interim").status, "ready");
122
+ buf.write(entry("段2"));
123
+ assert.equal(buf.takeForFlush("interim").status, "ready");
124
+ buf.write(entry("结论"));
125
+ assert.equal(buf.takeForFlush("final").status, "ready");
126
+ assert.equal(buf.getStats().flushInterimCount, 2);
127
+ assert.equal(buf.getStats().flushFinalCount, 1);
128
+ });
129
+ });
130
+ //# sourceMappingURL=turn-deliver-buffer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-deliver-buffer.test.js","sourceRoot":"","sources":["../../src/turn-deliver-buffer.test.ts"],"names":[],"mappings":"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"}
@@ -62,6 +62,8 @@ export interface XgImAccountConfig {
62
62
  blockStreamingCoalesce?: BlockStreamingCoalesceConfig;
63
63
  /** 见 {@link XgImConfig.deliverModelFallbackNotice} */
64
64
  deliverModelFallbackNotice?: boolean;
65
+ /** 见 {@link XgImConfig.deliverSegmentBuffer} */
66
+ deliverSegmentBuffer?: boolean;
65
67
  }
66
68
  /** OpenClaw block reply 合并阈值(可选;IM 默认不配) */
67
69
  export interface BlockStreamingCoalesceConfig {
@@ -160,6 +162,11 @@ export interface XgImConfig extends OpenClawConfig {
160
162
  * 默认 `false`(不发送);设为 `true` 时与旧版行为一致。
161
163
  */
162
164
  deliverModelFallbackNotice?: boolean;
165
+ /**
166
+ * 是否在 `blockStreaming` 开启时,将同一段 assistant 正文缓冲后在 tool 边界 / 轮次结束再 HTTP。
167
+ * 默认 `true`;设为 `false` 恢复「每次 deliver 即 HTTP + C7 去重」。
168
+ */
169
+ deliverSegmentBuffer?: boolean;
163
170
  }
164
171
  /** GET /user/login/appkey 的响应 */
165
172
  export interface GetTokenResponse {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACR,cAAc,EACd,iBAAiB,EACjB,sBAAsB,IAAI,yBAAyB,EACnD,qBAAqB,IAAI,wBAAwB,EACjD,aAAa,IAAI,gBAAgB,EACjC,aAAa,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAA6B,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAIpG,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED,kDAAkD;AAClD,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAIrD,gBAAgB;AAChB,MAAM,WAAW,iBAAiB;IAC9B,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kDAAkD;IAClD,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,mBAAmB,GAAG,iBAAiB,CAAC;IACnE;;;;OAIG;IACH,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,sBAAsB,CAAC,EAAE,4BAA4B,CAAC;IACtD,sDAAsD;IACtD,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACxC;AAED,4CAA4C;AAC5C,MAAM,WAAW,4BAA4B;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,cAAc;IAC9C,YAAY;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAE7C,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oBAAoB;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yBAAyB;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0BAA0B;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2BAA2B;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gCAAgC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,mBAAmB,GAAG,iBAAiB,CAAC;IACnE,gEAAgE;IAChE,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0EAA0E;IAC1E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,4BAA4B,CAAC;IACtD;;;OAGG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACxC;AAID,iCAAiC;AACjC,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,uBAAuB;AACvB,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CAChB;AAID,yCAAyC;AACzC,MAAM,WAAW,SAAS;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,eAAe,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,yEAAyE;IACzE,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CACxC;AAED,uCAAuC;AACvC,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAE1C,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAyBjF;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC7B,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED,sDAAsD;AACtD,YAAY,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpG,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,YAAY;IACZ,QAAQ,EAAE;QACN,aAAa;QACb,EAAE,EAAE,MAAM,CAAC;QACX,aAAa;QACb,IAAI,EAAE,MAAM,CAAC;QACb;;;WAGG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,UAAU,EAAE,gBAAgB,CAAC;IAC7B,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAItE,gCAAgC;AAChC,MAAM,WAAW,gBAAgB;IAC7B,cAAc;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc;IACd,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,uCAAuC;AACvC,MAAM,WAAW,yBAAyB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,MAAM,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GACrB;IACI,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC5B,GACD;IACI,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,yBAAyB,EAAE,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AAER,+CAA+C;AAC/C,MAAM,WAAW,wBAAwB;IACrC,IAAI,CAAC,EAAE,eAAe,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,eAAe,GAAG;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAE5F,4CAA4C;AAC5C,YAAY,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8PH,2DAA2D;AAC3D,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IACzD,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,MAAM,GAAG,GAA2B;QAChC,GAAG,EAAE,iBAAiB;QACtB,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,YAAY;QACjB,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,oBAAoB;QACzB,IAAI,EAAE,yEAAyE;QAC/E,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,2EAA2E;QACjF,GAAG,EAAE,0BAA0B;QAC/B,IAAI,EAAE,mEAAmE;QACzE,GAAG,EAAE,YAAY;QACjB,EAAE,EAAE,eAAe;QACnB,GAAG,EAAE,UAAU;QACf,GAAG,EAAE,iBAAiB;QACtB,GAAG,EAAE,YAAY;QACjB,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,WAAW;KACnB,CAAC;IACF,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqQH,2DAA2D;AAC3D,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IACzD,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,MAAM,GAAG,GAA2B;QAChC,GAAG,EAAE,iBAAiB;QACtB,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,YAAY;QACjB,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,oBAAoB;QACzB,IAAI,EAAE,yEAAyE;QAC/E,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,2EAA2E;QACjF,GAAG,EAAE,0BAA0B;QAC/B,IAAI,EAAE,mEAAmE;QACzE,GAAG,EAAE,YAAY;QACjB,EAAE,EAAE,eAAe;QACnB,GAAG,EAAE,UAAU;QACf,GAAG,EAAE,iBAAiB;QACtB,GAAG,EAAE,YAAY;QACjB,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,WAAW;KACnB,CAAC;IACF,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xgjktech/xg_cwork_im",
3
- "version": "1.15.2",
3
+ "version": "1.16.1",
4
4
  "description": "XG CWork IM channel plugin for OpenClaw",
5
5
  "keywords": [
6
6
  "bot",
@@ -22,7 +22,7 @@
22
22
  "build": "tsc -p tsconfig.json",
23
23
  "type-check": "tsc -p tsconfig.json --noEmit",
24
24
  "lint": "tsc -p tsconfig.json --noEmit",
25
- "test": "npm run build && node --test dist/src/inbound-terminal-state.test.js dist/src/user-facing-errors.test.js dist/src/deliver-text.test.js dist/src/agent-context-types.test.js dist/src/block-streaming-config.test.js dist/src/per-message-fallback-notice.test.js dist/src/thinking-ws-progress.test.js dist/src/resource-file.test.js",
25
+ "test": "npm run build && node --test dist/src/inbound-terminal-state.test.js dist/src/user-facing-errors.test.js dist/src/deliver-text.test.js dist/src/agent-context-types.test.js dist/src/block-streaming-config.test.js dist/src/per-message-fallback-notice.test.js dist/src/thinking-ws-progress.test.js dist/src/resource-file.test.js dist/src/turn-deliver-buffer.test.js dist/src/run-usage.test.js",
26
26
  "install:prod": "npm install --omit=dev",
27
27
  "prepublishOnly": "npm run build"
28
28
  },