@rethinkingstudio/clawpilot 2.1.3-beta.11 → 2.1.3-beta.12

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.
@@ -0,0 +1,25 @@
1
+ export type OpenClawVisibleReplyResult = {
2
+ kind: "drop";
3
+ emitLoading: boolean;
4
+ } | {
5
+ kind: "text";
6
+ text: string;
7
+ };
8
+ export declare class OpenClawVisibleReplyFilter {
9
+ private rawBuffers;
10
+ private buffers;
11
+ private loadingSignalsSent;
12
+ private markLoading;
13
+ private clear;
14
+ processStreaming(params: {
15
+ runId?: string;
16
+ text: string;
17
+ delta?: string;
18
+ }): OpenClawVisibleReplyResult;
19
+ processFinal(params: {
20
+ runId?: string;
21
+ text?: string | null;
22
+ hasMedia?: boolean;
23
+ }): OpenClawVisibleReplyResult;
24
+ finish(runId?: string): void;
25
+ }
@@ -0,0 +1,274 @@
1
+ const HEARTBEAT_TOKEN = "HEARTBEAT_OK";
2
+ const SILENT_REPLY_TOKEN = "NO_REPLY";
3
+ const SUPPRESSED_CONTROL_REPLY_TOKENS = [
4
+ SILENT_REPLY_TOKEN,
5
+ "ANNOUNCE_SKIP",
6
+ "REPLY_SKIP",
7
+ ];
8
+ function escapeRegExp(value) {
9
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
10
+ }
11
+ function isSilentReplyText(text, token = SILENT_REPLY_TOKEN) {
12
+ if (!text)
13
+ return false;
14
+ return new RegExp(`^\\s*${escapeRegExp(token)}\\s*$`, "i").test(text);
15
+ }
16
+ function isSilentReplyEnvelopeText(text, token = SILENT_REPLY_TOKEN) {
17
+ if (!text)
18
+ return false;
19
+ const trimmed = text.trim();
20
+ if (!trimmed || !trimmed.startsWith("{") || !trimmed.endsWith("}") || !trimmed.includes(token)) {
21
+ return false;
22
+ }
23
+ try {
24
+ const parsed = JSON.parse(trimmed);
25
+ const keys = Object.keys(parsed ?? {});
26
+ return (keys.length === 1 &&
27
+ keys[0] === "action" &&
28
+ typeof parsed.action === "string" &&
29
+ parsed.action.trim() === token);
30
+ }
31
+ catch {
32
+ return false;
33
+ }
34
+ }
35
+ function stripSilentToken(text, token = SILENT_REPLY_TOKEN) {
36
+ return text.replace(new RegExp(`(?:^|\\s+|\\*+)${escapeRegExp(token)}\\s*$`), "").trim();
37
+ }
38
+ function startsWithSilentToken(text, token = SILENT_REPLY_TOKEN) {
39
+ if (!text)
40
+ return false;
41
+ return new RegExp(`^\\s*(?:${escapeRegExp(token)}\\s+)*${escapeRegExp(token)}(?=[\\p{L}\\p{N}])`, "iu").test(text);
42
+ }
43
+ function stripLeadingSilentToken(text, token = SILENT_REPLY_TOKEN) {
44
+ return text.replace(new RegExp(`^(?:\\s*${escapeRegExp(token)})+\\s*`, "i"), "").trim();
45
+ }
46
+ function normalizeSuppressedControlReplyFragment(text) {
47
+ const trimmed = text.trim();
48
+ if (!trimmed)
49
+ return "";
50
+ const normalized = trimmed.toUpperCase();
51
+ if (/[^A-Z_]/.test(normalized)) {
52
+ return "";
53
+ }
54
+ return normalized;
55
+ }
56
+ function isSuppressedControlReplyText(text) {
57
+ const normalized = text.trim();
58
+ return SUPPRESSED_CONTROL_REPLY_TOKENS.some((token) => isSilentReplyText(normalized, token));
59
+ }
60
+ function isSuppressedControlReplyLeadFragment(text) {
61
+ const trimmed = text.trim();
62
+ const normalized = normalizeSuppressedControlReplyFragment(text);
63
+ if (!normalized) {
64
+ return false;
65
+ }
66
+ return SUPPRESSED_CONTROL_REPLY_TOKENS.some((token) => {
67
+ const tokenUpper = token.toUpperCase();
68
+ if (normalized === tokenUpper) {
69
+ return false;
70
+ }
71
+ if (!tokenUpper.startsWith(normalized)) {
72
+ return false;
73
+ }
74
+ if (normalized.includes("_")) {
75
+ return true;
76
+ }
77
+ if (token !== SILENT_REPLY_TOKEN && trimmed !== trimmed.toUpperCase()) {
78
+ return false;
79
+ }
80
+ return normalized.length >= (token === SILENT_REPLY_TOKEN ? 2 : 3);
81
+ });
82
+ }
83
+ function stripTokenAtEdges(raw) {
84
+ let text = raw.trim();
85
+ if (!text) {
86
+ return { text: "", didStrip: false };
87
+ }
88
+ const tokenAtEndWithOptionalTrailingPunctuation = new RegExp(`${escapeRegExp(HEARTBEAT_TOKEN)}[^\\w]{0,4}$`);
89
+ if (!text.includes(HEARTBEAT_TOKEN)) {
90
+ return { text, didStrip: false };
91
+ }
92
+ let didStrip = false;
93
+ let changed = true;
94
+ while (changed) {
95
+ changed = false;
96
+ const next = text.trim();
97
+ if (next.startsWith(HEARTBEAT_TOKEN)) {
98
+ text = next.slice(HEARTBEAT_TOKEN.length).trimStart();
99
+ didStrip = true;
100
+ changed = true;
101
+ continue;
102
+ }
103
+ if (tokenAtEndWithOptionalTrailingPunctuation.test(next)) {
104
+ const idx = next.lastIndexOf(HEARTBEAT_TOKEN);
105
+ const before = next.slice(0, idx).trimEnd();
106
+ if (!before) {
107
+ text = "";
108
+ }
109
+ else {
110
+ const after = next.slice(idx + HEARTBEAT_TOKEN.length).trimStart();
111
+ text = `${before}${after}`.trimEnd();
112
+ }
113
+ didStrip = true;
114
+ changed = true;
115
+ }
116
+ }
117
+ return { text: text.replace(/\s+/g, " ").trim(), didStrip };
118
+ }
119
+ function stripHeartbeatToken(raw) {
120
+ if (!raw) {
121
+ return { shouldSkip: true, text: "", didStrip: false };
122
+ }
123
+ const trimmed = raw.trim();
124
+ if (!trimmed) {
125
+ return { shouldSkip: true, text: "", didStrip: false };
126
+ }
127
+ const stripMarkup = (text) => text
128
+ .replace(/<[^>]*>/g, " ")
129
+ .replace(/&nbsp;/gi, " ")
130
+ .replace(/^[*`~_]+/, "")
131
+ .replace(/[*`~_]+$/, "");
132
+ const normalized = stripMarkup(trimmed);
133
+ if (!trimmed.includes(HEARTBEAT_TOKEN) && !normalized.includes(HEARTBEAT_TOKEN)) {
134
+ return { shouldSkip: false, text: trimmed, didStrip: false };
135
+ }
136
+ const strippedOriginal = stripTokenAtEdges(trimmed);
137
+ const strippedNormalized = stripTokenAtEdges(normalized);
138
+ const picked = strippedOriginal.didStrip && strippedOriginal.text ? strippedOriginal : strippedNormalized;
139
+ if (!picked.didStrip) {
140
+ return { shouldSkip: false, text: trimmed, didStrip: false };
141
+ }
142
+ if (!picked.text) {
143
+ return { shouldSkip: true, text: "", didStrip: true };
144
+ }
145
+ return { shouldSkip: false, text: picked.text.trim(), didStrip: true };
146
+ }
147
+ function resolveMergedAssistantText(params) {
148
+ const { previousText, nextText, nextDelta = "" } = params;
149
+ if (nextText && previousText) {
150
+ if (nextText.startsWith(previousText)) {
151
+ return nextText;
152
+ }
153
+ if (previousText.startsWith(nextText) && !nextDelta) {
154
+ return previousText;
155
+ }
156
+ }
157
+ if (nextDelta) {
158
+ return `${previousText}${nextDelta}`;
159
+ }
160
+ if (nextText) {
161
+ return nextText;
162
+ }
163
+ return previousText;
164
+ }
165
+ function isHeartbeatLeadFragment(text) {
166
+ const trimmed = text.trim();
167
+ if (!trimmed) {
168
+ return false;
169
+ }
170
+ const normalized = trimmed.toUpperCase();
171
+ if (/[^A-Z_]/.test(normalized)) {
172
+ return false;
173
+ }
174
+ return normalized !== HEARTBEAT_TOKEN && HEARTBEAT_TOKEN.startsWith(normalized);
175
+ }
176
+ export class OpenClawVisibleReplyFilter {
177
+ rawBuffers = new Map();
178
+ buffers = new Map();
179
+ loadingSignalsSent = new Set();
180
+ markLoading(runId) {
181
+ if (!runId || this.loadingSignalsSent.has(runId)) {
182
+ return false;
183
+ }
184
+ this.loadingSignalsSent.add(runId);
185
+ return true;
186
+ }
187
+ clear(runId) {
188
+ if (!runId)
189
+ return;
190
+ this.rawBuffers.delete(runId);
191
+ this.buffers.delete(runId);
192
+ this.loadingSignalsSent.delete(runId);
193
+ }
194
+ processStreaming(params) {
195
+ const runId = params.runId;
196
+ const previousRawText = runId ? this.rawBuffers.get(runId) ?? "" : "";
197
+ const mergedRawText = resolveMergedAssistantText({
198
+ previousText: previousRawText,
199
+ nextText: params.text,
200
+ nextDelta: params.delta,
201
+ });
202
+ if (!mergedRawText.trim()) {
203
+ return { kind: "drop", emitLoading: this.markLoading(runId) };
204
+ }
205
+ if (runId) {
206
+ this.rawBuffers.set(runId, mergedRawText);
207
+ }
208
+ if (isSuppressedControlReplyText(mergedRawText)) {
209
+ if (runId) {
210
+ this.buffers.set(runId, "");
211
+ }
212
+ return { kind: "drop", emitLoading: this.markLoading(runId) };
213
+ }
214
+ if (isSuppressedControlReplyLeadFragment(mergedRawText)) {
215
+ if (runId) {
216
+ this.buffers.set(runId, mergedRawText);
217
+ }
218
+ return { kind: "drop", emitLoading: this.markLoading(runId) };
219
+ }
220
+ const mergedText = startsWithSilentToken(mergedRawText, SILENT_REPLY_TOKEN)
221
+ ? stripLeadingSilentToken(mergedRawText, SILENT_REPLY_TOKEN)
222
+ : mergedRawText;
223
+ if (runId) {
224
+ this.buffers.set(runId, mergedText);
225
+ }
226
+ if (isSuppressedControlReplyText(mergedText) || isSuppressedControlReplyLeadFragment(mergedText)) {
227
+ return { kind: "drop", emitLoading: this.markLoading(runId) };
228
+ }
229
+ // Upstream webchat decides this with heartbeat run context. Relay does not
230
+ // have that context, so keep this explicit prefix suppression here to stop
231
+ // leaked HEARTBEAT_OK fragments (HE/HEART...) from reaching PocketClaw.
232
+ if (isHeartbeatLeadFragment(mergedText)) {
233
+ return { kind: "drop", emitLoading: this.markLoading(runId) };
234
+ }
235
+ return { kind: "text", text: mergedText };
236
+ }
237
+ processFinal(params) {
238
+ const bufferedText = params.runId ? this.buffers.get(params.runId) ?? "" : "";
239
+ let text = (params.text ?? bufferedText).trim();
240
+ if (text) {
241
+ const stripped = stripHeartbeatToken(text);
242
+ if (stripped.didStrip) {
243
+ if (stripped.shouldSkip) {
244
+ text = "";
245
+ }
246
+ else {
247
+ text = stripped.text.trim();
248
+ }
249
+ }
250
+ }
251
+ this.clear(params.runId);
252
+ if (!text) {
253
+ return params.hasMedia ? { kind: "text", text: "" } : { kind: "drop", emitLoading: false };
254
+ }
255
+ if (isSilentReplyEnvelopeText(text) || isSuppressedControlReplyText(text)) {
256
+ return params.hasMedia ? { kind: "text", text: "" } : { kind: "drop", emitLoading: false };
257
+ }
258
+ if (startsWithSilentToken(text, SILENT_REPLY_TOKEN)) {
259
+ text = stripLeadingSilentToken(text, SILENT_REPLY_TOKEN);
260
+ }
261
+ if (text.includes(SILENT_REPLY_TOKEN) && !isSilentReplyText(text, SILENT_REPLY_TOKEN)) {
262
+ text = stripSilentToken(text, SILENT_REPLY_TOKEN);
263
+ }
264
+ text = text.trim();
265
+ if (!text) {
266
+ return params.hasMedia ? { kind: "text", text: "" } : { kind: "drop", emitLoading: false };
267
+ }
268
+ return { kind: "text", text };
269
+ }
270
+ finish(runId) {
271
+ this.clear(runId);
272
+ }
273
+ }
274
+ //# sourceMappingURL=openclaw-visible-reply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw-visible-reply.js","sourceRoot":"","sources":["../../src/relay/openclaw-visible-reply.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { OpenClawGatewayClient } from "./gateway-client.js";
3
3
  import { handleLocalCommand } from "../commands/local-handlers.js";
4
4
  import { handleProviderCommand } from "../commands/provider-handlers.js";
5
5
  import { getServicePlatform } from "../platform/service-manager.js";
6
+ import { OpenClawVisibleReplyFilter } from "./openclaw-visible-reply.js";
6
7
  import { homedir } from "os";
7
8
  import { extname, join } from "path";
8
9
  import { mkdir, writeFile } from "fs/promises";
@@ -11,198 +12,6 @@ import { randomUUID } from "crypto";
11
12
  // Constants
12
13
  // ---------------------------------------------------------------------------
13
14
  const OUTBOUND_DIR = join(homedir(), ".openclaw", "media", "outbound");
14
- const HEARTBEAT_TOKEN = "HEARTBEAT_OK";
15
- const SILENT_REPLY_TOKEN = "NO_REPLY";
16
- const SUPPRESSED_CONTROL_REPLY_TOKENS = [
17
- SILENT_REPLY_TOKEN,
18
- "ANNOUNCE_SKIP",
19
- "REPLY_SKIP",
20
- ];
21
- function escapeRegExp(value) {
22
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
23
- }
24
- function isSilentReplyText(text, token = SILENT_REPLY_TOKEN) {
25
- if (!text)
26
- return false;
27
- return new RegExp(`^\\s*${escapeRegExp(token)}\\s*$`, "i").test(text);
28
- }
29
- function isSilentReplyEnvelopeText(text, token = SILENT_REPLY_TOKEN) {
30
- if (!text)
31
- return false;
32
- const trimmed = text.trim();
33
- if (!trimmed || !trimmed.startsWith("{") || !trimmed.endsWith("}") || !trimmed.includes(token)) {
34
- return false;
35
- }
36
- try {
37
- const parsed = JSON.parse(trimmed);
38
- const keys = Object.keys(parsed ?? {});
39
- return (keys.length === 1 &&
40
- keys[0] === "action" &&
41
- typeof parsed.action === "string" &&
42
- parsed.action.trim() === token);
43
- }
44
- catch {
45
- return false;
46
- }
47
- }
48
- function stripSilentToken(text, token = SILENT_REPLY_TOKEN) {
49
- return text
50
- .replace(new RegExp(`(?:^|\\s+|\\*+)${escapeRegExp(token)}\\s*$`), "")
51
- .trim();
52
- }
53
- function startsWithSilentToken(text, token = SILENT_REPLY_TOKEN) {
54
- if (!text)
55
- return false;
56
- return new RegExp(`^\\s*(?:${escapeRegExp(token)}\\s+)*${escapeRegExp(token)}(?=[\\p{L}\\p{N}])`, "iu").test(text);
57
- }
58
- function stripLeadingSilentToken(text, token = SILENT_REPLY_TOKEN) {
59
- return text.replace(new RegExp(`^(?:\\s*${escapeRegExp(token)})+\\s*`, "i"), "").trim();
60
- }
61
- function normalizeSuppressedControlReplyFragment(text) {
62
- const trimmed = text.trim();
63
- if (!trimmed)
64
- return "";
65
- const normalized = trimmed.toUpperCase();
66
- if (/[^A-Z_]/.test(normalized)) {
67
- return "";
68
- }
69
- return normalized;
70
- }
71
- function isSuppressedControlReplyText(text) {
72
- const normalized = text.trim();
73
- return SUPPRESSED_CONTROL_REPLY_TOKENS.some((token) => isSilentReplyText(normalized, token));
74
- }
75
- function isSuppressedControlReplyLeadFragment(text) {
76
- const trimmed = text.trim();
77
- const normalized = normalizeSuppressedControlReplyFragment(text);
78
- if (!normalized)
79
- return false;
80
- return SUPPRESSED_CONTROL_REPLY_TOKENS.some((token) => {
81
- const tokenUpper = token.toUpperCase();
82
- if (normalized === tokenUpper) {
83
- return false;
84
- }
85
- if (!tokenUpper.startsWith(normalized)) {
86
- return false;
87
- }
88
- if (normalized.includes("_")) {
89
- return true;
90
- }
91
- if (token !== SILENT_REPLY_TOKEN && trimmed !== trimmed.toUpperCase()) {
92
- return false;
93
- }
94
- return normalized.length >= (token === SILENT_REPLY_TOKEN ? 2 : 3);
95
- });
96
- }
97
- function stripHeartbeatToken(raw) {
98
- if (!raw) {
99
- return { shouldSkip: true, text: "", didStrip: false };
100
- }
101
- const trimmed = raw.trim();
102
- if (!trimmed) {
103
- return { shouldSkip: true, text: "", didStrip: false };
104
- }
105
- const stripMarkup = (text) => text
106
- .replace(/<[^>]*>/g, " ")
107
- .replace(/&nbsp;/gi, " ")
108
- .replace(/^[*`~_]+/, "")
109
- .replace(/[*`~_]+$/, "");
110
- const stripTokenAtEdges = (text) => {
111
- let current = text.trim();
112
- if (!current || !current.includes(HEARTBEAT_TOKEN)) {
113
- return { text: current, didStrip: false };
114
- }
115
- const tokenAtEnd = new RegExp(`${escapeRegExp(HEARTBEAT_TOKEN)}[^\\w]{0,4}$`);
116
- let didStrip = false;
117
- let changed = true;
118
- while (changed) {
119
- changed = false;
120
- const next = current.trim();
121
- if (next.startsWith(HEARTBEAT_TOKEN)) {
122
- current = next.slice(HEARTBEAT_TOKEN.length).trimStart();
123
- didStrip = true;
124
- changed = true;
125
- continue;
126
- }
127
- if (tokenAtEnd.test(next)) {
128
- const idx = next.lastIndexOf(HEARTBEAT_TOKEN);
129
- const before = next.slice(0, idx).trimEnd();
130
- const after = next.slice(idx + HEARTBEAT_TOKEN.length).trimStart();
131
- current = `${before}${after}`.trim();
132
- didStrip = true;
133
- changed = true;
134
- }
135
- }
136
- return { text: current.replace(/\s+/g, " ").trim(), didStrip };
137
- };
138
- const normalized = stripMarkup(trimmed);
139
- if (!trimmed.includes(HEARTBEAT_TOKEN) && !normalized.includes(HEARTBEAT_TOKEN)) {
140
- return { shouldSkip: false, text: trimmed, didStrip: false };
141
- }
142
- const strippedOriginal = stripTokenAtEdges(trimmed);
143
- const strippedNormalized = stripTokenAtEdges(normalized);
144
- const picked = strippedOriginal.didStrip && strippedOriginal.text ? strippedOriginal : strippedNormalized;
145
- if (!picked.didStrip) {
146
- return { shouldSkip: false, text: trimmed, didStrip: false };
147
- }
148
- if (!picked.text) {
149
- return { shouldSkip: true, text: "", didStrip: true };
150
- }
151
- return { shouldSkip: false, text: picked.text.trim(), didStrip: true };
152
- }
153
- function isHeartbeatLeadFragment(text) {
154
- const trimmed = text.trim();
155
- if (!trimmed) {
156
- return false;
157
- }
158
- const normalized = trimmed.toUpperCase();
159
- if (/[^A-Z_]/.test(normalized)) {
160
- return false;
161
- }
162
- return normalized.length < HEARTBEAT_TOKEN.length && HEARTBEAT_TOKEN.startsWith(normalized);
163
- }
164
- function normalizeVisibleReplyText(text, opts = {}) {
165
- let next = text ?? "";
166
- if (!next.trim()) {
167
- return { skip: !opts.hasMedia, text: opts.hasMedia ? "" : undefined };
168
- }
169
- if (isSilentReplyEnvelopeText(next) || isSuppressedControlReplyText(next)) {
170
- return { skip: !opts.hasMedia, text: opts.hasMedia ? "" : undefined };
171
- }
172
- if (startsWithSilentToken(next, SILENT_REPLY_TOKEN)) {
173
- next = stripLeadingSilentToken(next, SILENT_REPLY_TOKEN);
174
- }
175
- if (next.includes(SILENT_REPLY_TOKEN) && !isSilentReplyText(next, SILENT_REPLY_TOKEN)) {
176
- next = stripSilentToken(next, SILENT_REPLY_TOKEN);
177
- }
178
- if (opts.isStreaming && isSuppressedControlReplyLeadFragment(next)) {
179
- return { skip: true };
180
- }
181
- if (opts.isStreaming && isHeartbeatLeadFragment(next)) {
182
- return { skip: true };
183
- }
184
- if (next.includes(HEARTBEAT_TOKEN)) {
185
- const stripped = stripHeartbeatToken(next);
186
- if (stripped.shouldSkip) {
187
- return { skip: !opts.hasMedia, text: opts.hasMedia ? "" : undefined };
188
- }
189
- next = stripped.text;
190
- }
191
- next = next.trim();
192
- if (!next) {
193
- return { skip: !opts.hasMedia, text: opts.hasMedia ? "" : undefined };
194
- }
195
- return { skip: false, text: next };
196
- }
197
- function isSuspiciousShortReply(text) {
198
- const normalized = (text ?? "").replace(/\s+/g, " ").trim().toLowerCase();
199
- if (!normalized)
200
- return true;
201
- return normalized.length <= 4 || ["no", "ok", "nope", "n/a", "no_reply"].includes(normalized);
202
- }
203
- function isIgnoredInternalReply(text) {
204
- return normalizeVisibleReplyText(text, { isStreaming: false }).skip;
205
- }
206
15
  function extensionFromMimeType(mimeType) {
207
16
  const map = {
208
17
  "image/jpeg": ".jpg",
@@ -247,7 +56,7 @@ export async function runRelayManager(opts) {
247
56
  return;
248
57
  }
249
58
  let gatewayClient = null;
250
- const loadingSignalsSent = new Set();
59
+ const visibleReplyFilter = new OpenClawVisibleReplyFilter();
251
60
  function send(msg) {
252
61
  if (relayWs.readyState === WebSocket.OPEN) {
253
62
  relayWs.send(JSON.stringify(msg));
@@ -276,12 +85,13 @@ export async function runRelayManager(opts) {
276
85
  const agentPayload = payload;
277
86
  if (agentPayload.stream === "assistant" &&
278
87
  typeof agentPayload.data?.text === "string") {
279
- const normalized = normalizeVisibleReplyText(agentPayload.data.text, {
280
- isStreaming: true,
88
+ const filtered = visibleReplyFilter.processStreaming({
89
+ runId: agentPayload.runId,
90
+ text: agentPayload.data.text,
91
+ delta: agentPayload.data.delta,
281
92
  });
282
- if (normalized.skip) {
283
- if (agentPayload.runId && !loadingSignalsSent.has(agentPayload.runId)) {
284
- loadingSignalsSent.add(agentPayload.runId);
93
+ if (filtered.kind === "drop") {
94
+ if (filtered.emitLoading && agentPayload.runId) {
285
95
  send({
286
96
  type: "event",
287
97
  event: "chat",
@@ -295,29 +105,24 @@ export async function runRelayManager(opts) {
295
105
  }
296
106
  return;
297
107
  }
298
- if (normalized.text !== undefined && normalized.text !== agentPayload.data.text) {
299
- agentPayload.data.text = normalized.text;
108
+ if (filtered.text !== agentPayload.data.text) {
109
+ agentPayload.data.text = filtered.text;
300
110
  }
301
111
  }
302
112
  }
303
113
  if (event === "chat") {
304
114
  const chatPayload = payload;
305
- if (chatPayload.runId && chatPayload.state !== "delta") {
306
- loadingSignalsSent.delete(chatPayload.runId);
307
- }
308
115
  const content = chatPayload.message?.content;
309
116
  const textBlock = content?.find((block) => block.type === "text");
310
117
  const originalText = textBlock?.text;
311
- if (typeof originalText === "string") {
312
- const normalized = normalizeVisibleReplyText(originalText, {
313
- isStreaming: chatPayload.state === "delta",
314
- hasMedia: Array.isArray(chatPayload.attachments) && chatPayload.attachments.length > 0,
118
+ const hasMedia = Array.isArray(chatPayload.attachments) && chatPayload.attachments.length > 0;
119
+ if (chatPayload.state === "delta" && typeof originalText === "string") {
120
+ const filtered = visibleReplyFilter.processStreaming({
121
+ runId: chatPayload.runId,
122
+ text: originalText,
315
123
  });
316
- if (normalized.skip) {
317
- if (chatPayload.state === "delta" &&
318
- chatPayload.runId &&
319
- !loadingSignalsSent.has(chatPayload.runId)) {
320
- loadingSignalsSent.add(chatPayload.runId);
124
+ if (filtered.kind === "drop") {
125
+ if (filtered.emitLoading && chatPayload.runId) {
321
126
  send({
322
127
  type: "event",
323
128
  event: "chat",
@@ -331,8 +136,27 @@ export async function runRelayManager(opts) {
331
136
  }
332
137
  return;
333
138
  }
334
- if (textBlock && normalized.text !== undefined && normalized.text !== originalText) {
335
- textBlock.text = normalized.text;
139
+ if (textBlock && filtered.text !== originalText) {
140
+ textBlock.text = filtered.text;
141
+ }
142
+ }
143
+ if ((chatPayload.state === "final" || chatPayload.state === "aborted" || chatPayload.state === "error") &&
144
+ chatPayload.runId) {
145
+ const filtered = visibleReplyFilter.processFinal({
146
+ runId: chatPayload.runId,
147
+ text: originalText,
148
+ hasMedia,
149
+ });
150
+ if (filtered.kind === "drop" && !hasMedia) {
151
+ return;
152
+ }
153
+ if (!chatPayload.message && filtered.kind === "text" && filtered.text) {
154
+ chatPayload.message = {
155
+ content: [{ type: "text", text: filtered.text }],
156
+ };
157
+ }
158
+ else if (textBlock && filtered.kind === "text" && filtered.text !== originalText) {
159
+ textBlock.text = filtered.text;
336
160
  }
337
161
  }
338
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relay-manager.js","sourceRoot":"","sources":["../../src/relay/relay-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay-manager.js","sourceRoot":"","sources":["../../src/relay/relay-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAEvE,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,MAAM,GAAG,GAA2B;QAClC,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,MAAM;QACnB,YAAY,EAAE,OAAO;QACrB,WAAW,EAAE,MAAM;QACnB,iBAAiB,EAAE,MAAM;QACzB,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,MAAM;QACrB,WAAW,EAAE,MAAM;QACnB,iBAAiB,EAAE,MAAM;QACzB,YAAY,EAAE,MAAM;QACpB,eAAe,EAAE,KAAK;QACtB,kBAAkB,EAAE,OAAO;KAC5B,CAAC;IACF,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC;AACjC,CAAC;AAqCD,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAyB;IAC7D,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAEnF,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QACtC,IAAI,OAAkB,CAAC;QACvB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QAED,IAAI,aAAa,GAAiC,IAAI,CAAC;QACvD,MAAM,kBAAkB,GAAG,IAAI,0BAA0B,EAAE,CAAC;QAE5D,SAAS,IAAI,CAAC,GAAa;YACzB,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,wCAAwC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACvE,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAErB,qEAAqE;YACrE,mEAAmE;YACnE,aAAa,GAAG,IAAI,qBAAqB,CAAC;gBACxC,GAAG,EAAE,IAAI,CAAC,UAAU;gBACpB,KAAK,EAAE,IAAI,CAAC,YAAY;gBACxB,QAAQ,EAAE,IAAI,CAAC,eAAe;gBAE9B,WAAW,EAAE,GAAG,EAAE;oBAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;oBAClC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBACtC,CAAC;gBAED,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE;oBACzB,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;oBAC/C,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,CAAC;gBACjD,CAAC;gBAED,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;oBAC1B,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;wBACtB,MAAM,YAAY,GAAG,OAKpB,CAAC;wBACF,IACE,YAAY,CAAC,MAAM,KAAK,WAAW;4BACnC,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,KAAK,QAAQ,EAC3C,CAAC;4BACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,gBAAgB,CAAC;gCACnD,KAAK,EAAE,YAAY,CAAC,KAAK;gCACzB,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI;gCAC5B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK;6BAC/B,CAAC,CAAC;4BACH,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gCAC7B,IAAI,QAAQ,CAAC,WAAW,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;oCAC/C,IAAI,CAAC;wCACH,IAAI,EAAE,OAAO;wCACb,KAAK,EAAE,MAAM;wCACb,OAAO,EAAE;4CACP,KAAK,EAAE,YAAY,CAAC,KAAK;4CACzB,UAAU,EAAE,YAAY,CAAC,UAAU;4CACnC,KAAK,EAAE,OAAO;4CACd,OAAO,EAAE,IAAI;yCACd;qCACF,CAAC,CAAC;gCACL,CAAC;gCACD,OAAO;4BACT,CAAC;4BACD,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gCAC7C,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;4BACzC,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;wBACrB,MAAM,WAAW,GAAG,OAOnB,CAAC;wBACF,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC;wBAC7C,MAAM,SAAS,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;wBAClE,MAAM,YAAY,GAAG,SAAS,EAAE,IAAI,CAAC;wBACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;wBAE9F,IAAI,WAAW,CAAC,KAAK,KAAK,OAAO,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;4BACtE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,gBAAgB,CAAC;gCACnD,KAAK,EAAE,WAAW,CAAC,KAAK;gCACxB,IAAI,EAAE,YAAY;6BACnB,CAAC,CAAC;4BACH,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gCAC7B,IAAI,QAAQ,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;oCAC9C,IAAI,CAAC;wCACH,IAAI,EAAE,OAAO;wCACb,KAAK,EAAE,MAAM;wCACb,OAAO,EAAE;4CACP,KAAK,EAAE,WAAW,CAAC,KAAK;4CACxB,UAAU,EAAE,WAAW,CAAC,UAAU;4CAClC,KAAK,EAAE,OAAO;4CACd,OAAO,EAAE,IAAI;yCACd;qCACF,CAAC,CAAC;gCACL,CAAC;gCACD,OAAO;4BACT,CAAC;4BACD,IAAI,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gCAChD,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;4BACjC,CAAC;wBACH,CAAC;wBAED,IACE,CAAC,WAAW,CAAC,KAAK,KAAK,OAAO,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,KAAK,OAAO,CAAC;4BACnG,WAAW,CAAC,KAAK,EACjB,CAAC;4BACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAC;gCAC/C,KAAK,EAAE,WAAW,CAAC,KAAK;gCACxB,IAAI,EAAE,YAAY;gCAClB,QAAQ;6BACT,CAAC,CAAC;4BACH,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gCAC1C,OAAO;4BACT,CAAC;4BACD,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gCACtE,WAAW,CAAC,OAAO,GAAG;oCACpB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;iCACjD,CAAC;4BACJ,CAAC;iCAAM,IAAI,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gCACnF,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;4BACjC,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC1C,CAAC;aACF,CAAC,CAAC;YAEH,aAAa,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAClC,IAAI,GAAe,CAAC;YACpB,IAAI,CAAC;gBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAe,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;YAED,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM;gBAAE,OAAO;YAE9C,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,+BAA+B,GAAG,CAAC,MAAM,OAAO,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC;YAEtF,uDAAuD;YACvD,MAAM,eAAe,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACtE,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;gBACrC,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,CAAC;wBACH,IAAI,EAAE,KAAK;wBACX,EAAE,EAAE,SAAS;wBACb,EAAE,EAAE,MAAM,CAAC,EAAE;wBACb,GAAG,CAAC,MAAM,CAAC,EAAE;4BACX,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;4BAC7B,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;qBAC1C,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;YACT,CAAC;YAED,wEAAwE;YACxE,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;wBACnB,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC/E,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACzF,CAAC;gBACH,CAAC;gBACD,OAAO;YACT,CAAC;YAED,0EAA0E;YAC1E,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAa,CAAC;gBACjC,qFAAqF;gBACrF,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxD,MAAM,cAAc,GAAa,EAAE,CAAC;oBAEpC,mCAAmC;oBACnC,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAE/C,yDAAyD;oBACzD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;wBACrC,IAAI,CAAC;4BACH,0BAA0B;4BAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;4BAClD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;4BAC/E,MAAM,cAAc,GAAG,GAAG,UAAU,EAAE,GAAG,GAAG,EAAE,CAAC;4BAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;4BAEtD,gBAAgB;4BAChB,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;4BACpC,OAAO,CAAC,GAAG,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAC;4BAE1D,+CAA+C;4BAC/C,cAAc,CAAC,IAAI,CACjB,oBAAoB,UAAU,KAAK,GAAG,CAAC,QAAQ,OAAO,UAAU,GAAG,CACpE,CAAC;wBACJ,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;wBAC7D,CAAC;oBACH,CAAC;oBAED,oCAAoC;oBACpC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACvC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;wBACxE,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;YAEH,CAAC;YAED,aAAa;gBACX,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;iBAChC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,CAAC,MAAM,OAAO,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC;gBAChF,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACtB,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,CAAC,MAAM,OAAO,SAAS,IAAI,SAAS,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtG,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACnC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YACxB,aAAa,EAAE,IAAI,EAAE,CAAC;YACtB,aAAa,GAAG,IAAI,CAAC;YACrB,uEAAuE;YACvE,sEAAsE;YACtE,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC1B,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACrD,0BAA0B;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB,EAAE,SAAiB,EAAE,WAAmB;IAC9E,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClE,OAAO,GAAG,IAAI,UAAU,SAAS,WAAW,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;AAChF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rethinkingstudio/clawpilot",
3
- "version": "2.1.3-beta.11",
3
+ "version": "2.1.3-beta.12",
4
4
  "description": "ClawAI relay client for Mac mini",
5
5
  "type": "module",
6
6
  "bin": {