@tencent-weixin/openclaw-weixin 2.4.3 → 2.4.4

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 (48) hide show
  1. package/dist/src/api/api.js +44 -3
  2. package/dist/src/api/api.js.map +1 -1
  3. package/dist/src/api/types.js +2 -0
  4. package/dist/src/api/types.js.map +1 -1
  5. package/dist/src/channel.js +7 -1
  6. package/dist/src/channel.js.map +1 -1
  7. package/dist/src/config/config-schema.js +1 -0
  8. package/dist/src/config/config-schema.js.map +1 -1
  9. package/dist/src/config/reply-progress.js +5 -0
  10. package/dist/src/config/reply-progress.js.map +1 -0
  11. package/dist/src/media/voice-outbound.js +98 -1
  12. package/dist/src/media/voice-outbound.js.map +1 -1
  13. package/dist/src/messaging/batch-session.js +271 -0
  14. package/dist/src/messaging/batch-session.js.map +1 -0
  15. package/dist/src/messaging/error-notice.js +1 -0
  16. package/dist/src/messaging/error-notice.js.map +1 -1
  17. package/dist/src/messaging/outbound-hooks.js +2 -0
  18. package/dist/src/messaging/outbound-hooks.js.map +1 -1
  19. package/dist/src/messaging/process-message.js +32 -7
  20. package/dist/src/messaging/process-message.js.map +1 -1
  21. package/dist/src/messaging/reply-progress-sender.js +93 -0
  22. package/dist/src/messaging/reply-progress-sender.js.map +1 -0
  23. package/dist/src/messaging/run-context.js +9 -0
  24. package/dist/src/messaging/run-context.js.map +1 -0
  25. package/dist/src/messaging/run-report-session.js +123 -0
  26. package/dist/src/messaging/run-report-session.js.map +1 -0
  27. package/dist/src/messaging/send.js +40 -2
  28. package/dist/src/messaging/send.js.map +1 -1
  29. package/dist/src/monitor/monitor.js +3 -0
  30. package/dist/src/monitor/monitor.js.map +1 -1
  31. package/dist/src/streaming/batch-session.js +271 -0
  32. package/dist/src/streaming/batch-session.js.map +1 -0
  33. package/dist/src/streaming/stream-piece.js +54 -0
  34. package/dist/src/streaming/stream-piece.js.map +1 -0
  35. package/openclaw.plugin.json +1 -1
  36. package/package.json +1 -1
  37. package/src/api/api.ts +52 -3
  38. package/src/api/types.ts +16 -0
  39. package/src/channel.ts +7 -1
  40. package/src/config/config-schema.ts +1 -0
  41. package/src/config/reply-progress.ts +10 -0
  42. package/src/messaging/error-notice.ts +2 -0
  43. package/src/messaging/outbound-hooks.ts +4 -0
  44. package/src/messaging/process-message.ts +32 -7
  45. package/src/messaging/reply-progress-sender.ts +122 -0
  46. package/src/messaging/send-media.ts +1 -1
  47. package/src/messaging/send.ts +60 -7
  48. package/src/monitor/monitor.ts +3 -0
@@ -0,0 +1,123 @@
1
+ import { MessageItemType } from "../api/types.js";
2
+ import { logger } from "../util/logger.js";
3
+ import { sendMessageItemWeixin } from "./send.js";
4
+ function normalizeToolStatus(status) {
5
+ if (status === "completed")
6
+ return "completed";
7
+ if (status === "failed")
8
+ return "failed";
9
+ if (status === "blocked")
10
+ return "blocked";
11
+ return "unknown";
12
+ }
13
+ export class RunReportSession {
14
+ runId;
15
+ to;
16
+ accountId;
17
+ opts;
18
+ thinkingText = "";
19
+ thinkingSent = false;
20
+ finalized = false;
21
+ sendChain = Promise.resolve();
22
+ constructor(deps) {
23
+ this.runId = deps.runId;
24
+ this.to = deps.to;
25
+ this.accountId = deps.accountId;
26
+ this.opts = { ...deps.opts, runId: deps.runId };
27
+ }
28
+ get replyOptions() {
29
+ return {
30
+ runId: this.runId,
31
+ suppressDefaultToolProgressMessages: true,
32
+ onReasoningStream: (payload) => this.handleReasoningStream(payload),
33
+ onReasoningEnd: () => this.handleReasoningEnd(),
34
+ onItemEvent: (payload) => this.handleToolItemEvent(payload),
35
+ };
36
+ }
37
+ enqueueSend(item, label) {
38
+ if (this.finalized)
39
+ return;
40
+ this.sendChain = this.sendChain
41
+ .then(async () => {
42
+ await sendMessageItemWeixin({
43
+ to: this.to,
44
+ item,
45
+ opts: this.opts,
46
+ label,
47
+ });
48
+ })
49
+ .catch((err) => {
50
+ logger.warn(`${label}: failed to=${this.to} accountId=${this.accountId} runId=${this.runId} err=${String(err)}`);
51
+ });
52
+ }
53
+ handleReasoningStream(payload) {
54
+ if (this.finalized)
55
+ return;
56
+ const text = typeof payload.text === "string" ? payload.text : "";
57
+ if (text) {
58
+ this.thinkingText = text;
59
+ }
60
+ }
61
+ handleReasoningEnd() {
62
+ this.sendThinkingIfNeeded();
63
+ }
64
+ sendThinkingIfNeeded() {
65
+ if (this.finalized || this.thinkingSent)
66
+ return;
67
+ const text = this.thinkingText.trim();
68
+ if (!text)
69
+ return;
70
+ this.thinkingSent = true;
71
+ this.enqueueSend({
72
+ type: MessageItemType.THINKING,
73
+ is_completed: true,
74
+ thinking_item: { text },
75
+ }, "sendThinkingReport");
76
+ }
77
+ handleToolItemEvent(payload) {
78
+ if (this.finalized)
79
+ return;
80
+ if (payload.kind !== "tool")
81
+ return;
82
+ if (payload.phase !== "start" && payload.phase !== "end")
83
+ return;
84
+ const now = Date.now();
85
+ const toolName = payload.name?.trim() || payload.title?.trim() || "tool";
86
+ const toolCallId = payload.itemId?.trim() || undefined;
87
+ if (payload.phase === "start") {
88
+ this.enqueueSend({
89
+ type: MessageItemType.TOOL_CALL_START,
90
+ create_time_ms: now,
91
+ is_completed: false,
92
+ tool_call_start_item: {
93
+ tool_name: toolName,
94
+ tool_call_id: toolCallId,
95
+ },
96
+ }, "sendToolCallStartReport");
97
+ return;
98
+ }
99
+ this.enqueueSend({
100
+ type: MessageItemType.TOOL_CALL_RESULT,
101
+ create_time_ms: now,
102
+ is_completed: true,
103
+ tool_call_result_item: {
104
+ tool_name: toolName,
105
+ tool_call_id: toolCallId,
106
+ status: normalizeToolStatus(payload.status),
107
+ },
108
+ }, "sendToolCallResultReport");
109
+ }
110
+ async finalize() {
111
+ if (this.finalized)
112
+ return;
113
+ this.sendThinkingIfNeeded();
114
+ this.finalized = true;
115
+ try {
116
+ await this.sendChain;
117
+ }
118
+ catch (err) {
119
+ logger.warn(`RunReportSession.finalize: send drain failed runId=${this.runId} err=${String(err)}`);
120
+ }
121
+ }
122
+ }
123
+ //# sourceMappingURL=run-report-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-report-session.js","sourceRoot":"","sources":["../../../src/messaging/run-report-session.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ function generateClientId() {
8
8
  }
9
9
  /** Build a SendMessageReq containing a single text message. */
10
10
  function buildTextMessageReq(params) {
11
- const { to, text, contextToken, clientId } = params;
11
+ const { to, text, contextToken, runId, clientId } = params;
12
12
  const item_list = text
13
13
  ? [{ type: MessageItemType.TEXT, text_item: { text } }]
14
14
  : [];
@@ -21,16 +21,18 @@ function buildTextMessageReq(params) {
21
21
  message_state: MessageState.FINISH,
22
22
  item_list: item_list.length ? item_list : undefined,
23
23
  context_token: contextToken ?? undefined,
24
+ run_id: runId ?? undefined,
24
25
  },
25
26
  };
26
27
  }
27
28
  /** Build a SendMessageReq from a reply payload (text only; image send uses sendImageMessageWeixin). */
28
29
  function buildSendMessageReq(params) {
29
- const { to, contextToken, payload, clientId } = params;
30
+ const { to, contextToken, runId, payload, clientId } = params;
30
31
  return buildTextMessageReq({
31
32
  to,
32
33
  text: payload.text ?? "",
33
34
  contextToken,
35
+ runId,
34
36
  clientId,
35
37
  });
36
38
  }
@@ -46,6 +48,7 @@ export async function sendMessageWeixin(params) {
46
48
  const req = buildSendMessageReq({
47
49
  to,
48
50
  contextToken: opts.contextToken,
51
+ runId: opts.runId,
49
52
  payload: { text },
50
53
  clientId,
51
54
  });
@@ -63,12 +66,46 @@ export async function sendMessageWeixin(params) {
63
66
  }
64
67
  return { messageId: clientId };
65
68
  }
69
+ /** Send a single structured MessageItem downstream. */
70
+ export async function sendMessageItemWeixin(params) {
71
+ const { to, item, opts } = params;
72
+ if (!opts.contextToken) {
73
+ logger.warn(`sendMessageItemWeixin: contextToken missing for to=${to}, sending without context`);
74
+ }
75
+ const clientId = params.clientId ?? generateClientId();
76
+ const req = {
77
+ msg: {
78
+ from_user_id: "",
79
+ to_user_id: to,
80
+ client_id: clientId,
81
+ message_type: MessageType.BOT,
82
+ message_state: MessageState.FINISH,
83
+ item_list: [item],
84
+ context_token: opts.contextToken ?? undefined,
85
+ run_id: opts.runId,
86
+ },
87
+ };
88
+ try {
89
+ await sendMessageApi({
90
+ baseUrl: opts.baseUrl,
91
+ token: opts.token,
92
+ timeoutMs: opts.timeoutMs,
93
+ body: req,
94
+ });
95
+ }
96
+ catch (err) {
97
+ logger.error(`${params.label ?? "sendMessageItemWeixin"}: failed to=${to} clientId=${clientId} err=${String(err)}`);
98
+ throw err;
99
+ }
100
+ return { messageId: clientId };
101
+ }
66
102
  /**
67
103
  * Send one or more MessageItems (optionally preceded by a text caption) downstream.
68
104
  * Each item is sent as its own request so that item_list always has exactly one entry.
69
105
  */
70
106
  async function sendMediaItems(params) {
71
107
  const { to, text, mediaItem, opts, label } = params;
108
+ const runId = opts.runId;
72
109
  const items = [];
73
110
  if (text) {
74
111
  items.push({ type: MessageItemType.TEXT, text_item: { text } });
@@ -86,6 +123,7 @@ async function sendMediaItems(params) {
86
123
  message_state: MessageState.FINISH,
87
124
  item_list: [item],
88
125
  context_token: opts.contextToken ?? undefined,
126
+ run_id: runId,
89
127
  },
90
128
  };
91
129
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/messaging/send.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/messaging/send.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,9 @@ export async function monitorWeixinProvider(opts) {
48
48
  token,
49
49
  get_updates_buf: getUpdatesBuf,
50
50
  timeoutMs: nextTimeoutMs,
51
+ // Stop/hot-reload should cancel the in-flight long-poll immediately
52
+ // instead of waiting for the server-side long-poll timeout.
53
+ abortSignal,
51
54
  });
52
55
  aLog.debug(`getUpdates response: ret=${resp.ret}, msgs=${resp.msgs?.length ?? 0}, get_updates_buf_length=${resp.get_updates_buf?.length ?? 0}`);
53
56
  if (resp.longpolling_timeout_ms != null && resp.longpolling_timeout_ms > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../src/monitor/monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../src/monitor/monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,271 @@
1
+ import crypto from "node:crypto";
2
+ import { onAgentEvent, } from "openclaw/plugin-sdk/agent-harness-runtime";
3
+ import { MessageItemType } from "../api/types.js";
4
+ import { logger } from "../util/logger.js";
5
+ /** Max chars for a tool result summary before truncation. */
6
+ const TOOL_OUTPUT_CHAR_LIMIT = 120_000;
7
+ /** Default size budget for a single batch sendMessage (bytes, JSON estimate). */
8
+ export const BATCH_SIZE_LIMIT_BYTES = 200 * 1024;
9
+ function estimateSizeBytes(items) {
10
+ try {
11
+ return Buffer.byteLength(JSON.stringify(items), "utf8");
12
+ }
13
+ catch {
14
+ return 0;
15
+ }
16
+ }
17
+ function truncateText(text, limit) {
18
+ if (text.length <= limit)
19
+ return text;
20
+ return `${text.slice(0, limit)}\n\n… truncated (${text.length} chars, showing first ${limit}).`;
21
+ }
22
+ function formatToolOutput(value) {
23
+ if (value === null || value === undefined)
24
+ return "";
25
+ if (typeof value === "number" || typeof value === "boolean")
26
+ return String(value);
27
+ let text;
28
+ if (typeof value === "string") {
29
+ text = value;
30
+ }
31
+ else {
32
+ if (typeof value === "object") {
33
+ const rec = value;
34
+ if (typeof rec.text === "string") {
35
+ text = rec.text;
36
+ }
37
+ else if (Array.isArray(rec.content)) {
38
+ const parts = rec.content
39
+ .map((item) => {
40
+ if (item && typeof item === "object") {
41
+ const e = item;
42
+ if (e.type === "text" && typeof e.text === "string")
43
+ return e.text;
44
+ }
45
+ return null;
46
+ })
47
+ .filter((p) => p !== null);
48
+ text = parts.length > 0 ? parts.join("\n") : JSON.stringify(value, null, 2);
49
+ }
50
+ else {
51
+ text = JSON.stringify(value, null, 2);
52
+ }
53
+ }
54
+ else {
55
+ text = String(value);
56
+ }
57
+ }
58
+ return truncateText(text, TOOL_OUTPUT_CHAR_LIMIT);
59
+ }
60
+ function tryStringifyArgs(args) {
61
+ if (args === undefined)
62
+ return undefined;
63
+ try {
64
+ return JSON.stringify(args);
65
+ }
66
+ catch {
67
+ return undefined;
68
+ }
69
+ }
70
+ /**
71
+ * BatchSession — accumulates thinking, tool calls, and text payloads during
72
+ * an AI turn and sends them all in a single sendMessage at finalize time.
73
+ *
74
+ * Drop priority when item_list > BATCH_SIZE_LIMIT_BYTES:
75
+ * 1. Drop ThinkingItem (largest, optional for client UX)
76
+ * 2. Drop all ToolCallStart/Result items
77
+ * 3. Always keep TextItem(s) — the actual reply
78
+ *
79
+ * Usage:
80
+ * const session = new BatchSession({ onSendBatch });
81
+ * // spread replyCallbacks + runId into replyOptions
82
+ * replyOptions = { ...replyOptions, runId: session.runId, ...session.replyCallbacks }
83
+ * // in deliver(): session.addTextPayload(text)
84
+ * // after dispatchReplyFromConfig: await session.finalize()
85
+ * // on error: await session.abort()
86
+ */
87
+ export class BatchSession {
88
+ /** Run id this session listens for on the global agent event bus. */
89
+ runId;
90
+ thinkingText = null;
91
+ toolStarts = [];
92
+ toolResults = [];
93
+ textPayloads = [];
94
+ done = false;
95
+ unsubscribeAgentEvent;
96
+ onSendBatch;
97
+ constructor(deps) {
98
+ this.runId = deps.runId ?? crypto.randomUUID();
99
+ this.onSendBatch = deps.onSendBatch;
100
+ this.unsubscribeAgentEvent = onAgentEvent((evt) => this.handleRawAgentEvent(evt));
101
+ logger.debug(`BatchSession.ctor: runId=${this.runId} agentEventListener=registered`);
102
+ }
103
+ /**
104
+ * Spread into replyOptions so the SDK delivers thinking/tool events here.
105
+ * Also set `replyOptions.runId = session.runId` so agent events carry the
106
+ * matching runId.
107
+ */
108
+ get replyCallbacks() {
109
+ return {
110
+ onReasoningStream: (payload) => this.handleReasoningStream(payload),
111
+ onReasoningEnd: () => { },
112
+ };
113
+ }
114
+ /**
115
+ * Store a text payload from deliver(). Each call appends one TextItem to the
116
+ * final item_list in call order. Skips empty strings.
117
+ */
118
+ addTextPayload(text) {
119
+ if (!text.trim())
120
+ return;
121
+ this.textPayloads.push(text);
122
+ logger.debug(`BatchSession.addTextPayload: len=${text.length} total=${this.textPayloads.length}`);
123
+ }
124
+ // ---- private callbacks --------------------------------------------------
125
+ handleReasoningStream(payload) {
126
+ if (this.done)
127
+ return;
128
+ const text = typeof payload.text === "string" ? payload.text : "";
129
+ if (text) {
130
+ this.thinkingText = text;
131
+ }
132
+ }
133
+ handleRawAgentEvent(evt) {
134
+ if (this.done)
135
+ return;
136
+ if (evt.runId !== this.runId)
137
+ return;
138
+ if (evt.stream !== "tool")
139
+ return;
140
+ const data = evt.data;
141
+ if (typeof data.toolCallId !== "string" || !data.toolCallId)
142
+ return;
143
+ if (data.phase === "start") {
144
+ this.toolStarts.push({
145
+ tool_call_id: data.toolCallId,
146
+ tool_name: typeof data.name === "string" && data.name ? data.name : "tool",
147
+ args_json: tryStringifyArgs(data.args),
148
+ });
149
+ logger.debug(`BatchSession: tool_call_start tool=${data.name ?? "?"} id=${data.toolCallId}` +
150
+ ` totalStarts=${this.toolStarts.length}`);
151
+ return;
152
+ }
153
+ if (data.phase === "result") {
154
+ this.toolResults.push({
155
+ tool_call_id: data.toolCallId,
156
+ summary: formatToolOutput(data.result),
157
+ });
158
+ logger.debug(`BatchSession: tool_call_result id=${data.toolCallId}` +
159
+ ` totalResults=${this.toolResults.length}`);
160
+ }
161
+ }
162
+ // ---- item_list assembly -------------------------------------------------
163
+ /**
164
+ * Build the item_list applying the 200 KB budget.
165
+ *
166
+ * Order: [ThinkingItem?, ToolCallStart+Result pairs..., TextItem(s)...]
167
+ *
168
+ * If full list > maxBytes:
169
+ * - drop ThinkingItem and retry
170
+ * - if still > maxBytes, drop all tool items too
171
+ * - TextItem(s) are always kept
172
+ */
173
+ buildItemList(maxBytes = BATCH_SIZE_LIMIT_BYTES) {
174
+ const textItems = this.textPayloads.map((t) => ({
175
+ type: MessageItemType.TEXT,
176
+ text_item: { text: t },
177
+ }));
178
+ const toolItems = [];
179
+ for (const start of this.toolStarts) {
180
+ toolItems.push({
181
+ type: MessageItemType.TOOL_CALL_START,
182
+ tool_call_start_item: {
183
+ tool_name: start.tool_name,
184
+ tool_call_id: start.tool_call_id,
185
+ args_json: start.args_json,
186
+ },
187
+ });
188
+ const result = this.toolResults.find((r) => r.tool_call_id === start.tool_call_id);
189
+ if (result) {
190
+ toolItems.push({
191
+ type: MessageItemType.TOOL_CALL_RESULT,
192
+ tool_call_result_item: {
193
+ tool_call_id: result.tool_call_id,
194
+ summary: result.summary,
195
+ },
196
+ });
197
+ }
198
+ }
199
+ const thinkingItem = this.thinkingText
200
+ ? { type: MessageItemType.THINKING, thinking_item: { text: this.thinkingText } }
201
+ : null;
202
+ // Attempt 1: full list
203
+ const full = [
204
+ ...(thinkingItem ? [thinkingItem] : []),
205
+ ...toolItems,
206
+ ...textItems,
207
+ ];
208
+ if (full.length === 0)
209
+ return [];
210
+ const fullSize = estimateSizeBytes(full);
211
+ logger.debug(`BatchSession.buildItemList: items=${full.length} size=${fullSize}B` +
212
+ ` thinking=${thinkingItem !== null} tools=${this.toolStarts.length}` +
213
+ ` texts=${this.textPayloads.length}`);
214
+ if (fullSize <= maxBytes)
215
+ return full;
216
+ // Attempt 2: drop thinking
217
+ logger.warn(`BatchSession.buildItemList: size=${fullSize}B > limit=${maxBytes}B,` +
218
+ ` dropping ThinkingItem (len=${this.thinkingText?.length ?? 0} chars).` +
219
+ ` Full thinking content is in the log: ${logger.getLogFilePath()}`);
220
+ const withoutThinking = [...toolItems, ...textItems];
221
+ if (withoutThinking.length === 0)
222
+ return [];
223
+ const noThinkingSize = estimateSizeBytes(withoutThinking);
224
+ if (noThinkingSize <= maxBytes)
225
+ return withoutThinking;
226
+ // Attempt 3: drop tool items too
227
+ logger.warn(`BatchSession.buildItemList: size=${noThinkingSize}B still > limit=${maxBytes}B,` +
228
+ ` dropping ${this.toolStarts.length} tool call(s) (${toolItems.length} items).` +
229
+ ` Full tool content is in the log: ${logger.getLogFilePath()}`);
230
+ return textItems.length > 0 ? textItems : [];
231
+ }
232
+ // ---- lifecycle ----------------------------------------------------------
233
+ /**
234
+ * Assemble item_list, call onSendBatch once, then clean up. Idempotent.
235
+ */
236
+ async finalize() {
237
+ if (this.done)
238
+ return;
239
+ this.done = true;
240
+ this.cleanup();
241
+ const items = this.buildItemList();
242
+ if (items.length === 0) {
243
+ logger.debug("BatchSession.finalize: item_list empty, skipping send");
244
+ return;
245
+ }
246
+ logger.debug(`BatchSession.finalize: sending ${items.length} item(s)` +
247
+ ` thinking=${this.thinkingText !== null}` +
248
+ ` toolStarts=${this.toolStarts.length}` +
249
+ ` texts=${this.textPayloads.length}`);
250
+ await this.onSendBatch(items);
251
+ }
252
+ /**
253
+ * Discard all buffered data, release event listener. Does not send. Idempotent.
254
+ */
255
+ async abort() {
256
+ if (this.done)
257
+ return;
258
+ this.done = true;
259
+ this.cleanup();
260
+ logger.debug("BatchSession.abort: discarded without send");
261
+ }
262
+ cleanup() {
263
+ try {
264
+ this.unsubscribeAgentEvent();
265
+ }
266
+ catch (err) {
267
+ logger.warn(`BatchSession.cleanup: unsubscribe failed err=${String(err)}`);
268
+ }
269
+ }
270
+ }
271
+ //# sourceMappingURL=batch-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-session.js","sourceRoot":"","sources":["../../../src/streaming/batch-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Stream piece JSON schema — what gets base64-encoded into PieceItem.piece_data
3
+ * and pushed onto the ilink uplink stream.
4
+ *
5
+ * The protocol distinguishes 7 `kind`s:
6
+ *
7
+ * Lifecycle (streaming, accumulative — multiple pieces per node):
8
+ * - "result" agent's final reply text stream
9
+ * - "thinking" agent's reasoning block stream
10
+ *
11
+ * Discrete (single-frame — exactly 1 piece per occurrence):
12
+ * - "tool_call_start" tool invocation start snapshot
13
+ * - "tool_call_result" tool invocation result snapshot
14
+ *
15
+ * Piece-only (no companion sendMessage / KV write):
16
+ * - "tool_progress" command stdout slices / patch file list
17
+ * - "compaction_start" context compaction begin signal
18
+ * - "compaction_end" context compaction end signal
19
+ *
20
+ * Each piece carries `client_id` (the renderer node id; equals the companion
21
+ * sendMessage's client_id when one exists), `root_id` (= the stream_start
22
+ * signal's client_id, shared across the whole stream), and an optional
23
+ * `parent_id` (subagent only, unused this iteration).
24
+ *
25
+ * Field naming follows pb conventions (snake_case) so the same wire format is
26
+ * readable on every consumer language.
27
+ */
28
+ /**
29
+ * Parse the SDK's `itemId` (as seen on `onItemEvent`) and extract the
30
+ * `tool_call_id` + `item_kind` so the channel can build a `tool_progress` piece.
31
+ *
32
+ * The SDK encodes the source kind as a prefix:
33
+ * - "command:<callId>" → command output progress
34
+ * - "patch:<callId>" → apply_patch file list summary
35
+ *
36
+ * Other prefixes (e.g. "tool:..." / "search:..." / "analysis:...") and
37
+ * unprefixed values return null — the caller MUST then no-op (skip the piece)
38
+ * to honor the "only command + patch" filter described in the plan.
39
+ */
40
+ export function parseToolCallIdFromItemId(itemId) {
41
+ if (typeof itemId !== "string" || itemId.length === 0)
42
+ return null;
43
+ const m = /^(command|patch):(.+)$/.exec(itemId);
44
+ if (!m)
45
+ return null;
46
+ return { item_kind: m[1], tool_call_id: m[2] };
47
+ }
48
+ /**
49
+ * Encode a `StreamPiece` to the base64 string consumed by `PieceItem.piece_data`.
50
+ */
51
+ export function encodeStreamPiece(piece) {
52
+ return Buffer.from(JSON.stringify(piece), "utf-8").toString("base64");
53
+ }
54
+ //# sourceMappingURL=stream-piece.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-piece.js","sourceRoot":"","sources":["../../../src/streaming/stream-piece.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AA2HH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAc;IACtD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAwB,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAkB;IAClD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "id": "openclaw-weixin",
3
- "version": "2.4.3",
3
+ "version": "2.4.4",
4
4
  "channels": [
5
5
  "openclaw-weixin"
6
6
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tencent-weixin/openclaw-weixin",
3
- "version": "2.4.3",
3
+ "version": "2.4.4",
4
4
  "description": "OpenClaw Weixin channel",
5
5
  "license": "MIT",
6
6
  "author": "Tencent",