clawconnect-agent 0.1.39 → 0.1.41

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 (65) hide show
  1. package/README.md +11 -0
  2. package/README.zh-CN.md +10 -0
  3. package/dist/commands/install.js +7 -0
  4. package/dist/commands/install.js.map +1 -1
  5. package/dist/commands/pair.d.ts +1 -2
  6. package/dist/commands/pair.js +2 -16
  7. package/dist/commands/pair.js.map +1 -1
  8. package/dist/commands/run.js +26 -13
  9. package/dist/commands/run.js.map +1 -1
  10. package/dist/core/command-types.d.ts +2 -1
  11. package/dist/core/relay/assistant-stream-coalescer.d.ts +67 -0
  12. package/dist/core/relay/assistant-stream-coalescer.js +269 -0
  13. package/dist/core/relay/assistant-stream-coalescer.js.map +1 -0
  14. package/dist/core/relay/file-upload-utils.d.ts +1 -0
  15. package/dist/core/relay/file-upload-utils.js +15 -0
  16. package/dist/core/relay/file-upload-utils.js.map +1 -1
  17. package/dist/core/relay/office-payload.d.ts +1 -0
  18. package/dist/core/relay/office-payload.js +42 -3
  19. package/dist/core/relay/office-payload.js.map +1 -1
  20. package/dist/core/relay/reconnect.d.ts +1 -0
  21. package/dist/core/relay/reconnect.js +22 -4
  22. package/dist/core/relay/reconnect.js.map +1 -1
  23. package/dist/core/relay/relay-server-connection.d.ts +25 -1
  24. package/dist/core/relay/relay-server-connection.js +246 -3
  25. package/dist/core/relay/relay-server-connection.js.map +1 -1
  26. package/dist/core/relay/reliable-delivery-protocol.d.ts +17 -0
  27. package/dist/core/relay/reliable-delivery-protocol.js +25 -0
  28. package/dist/core/relay/reliable-delivery-protocol.js.map +1 -0
  29. package/dist/core/relay/reliable-relay-outbox-registry.d.ts +19 -0
  30. package/dist/core/relay/reliable-relay-outbox-registry.js +81 -0
  31. package/dist/core/relay/reliable-relay-outbox-registry.js.map +1 -0
  32. package/dist/core/relay/reliable-relay-outbox-store.d.ts +67 -0
  33. package/dist/core/relay/reliable-relay-outbox-store.js +527 -0
  34. package/dist/core/relay/reliable-relay-outbox-store.js.map +1 -0
  35. package/dist/core/relay/reliable-relay-outbox.d.ts +74 -0
  36. package/dist/core/relay/reliable-relay-outbox.js +442 -0
  37. package/dist/core/relay/reliable-relay-outbox.js.map +1 -0
  38. package/dist/core/relay/timeline-event-builder.d.ts +1 -0
  39. package/dist/core/relay/timeline-event-builder.js +1 -0
  40. package/dist/core/relay/timeline-event-builder.js.map +1 -1
  41. package/dist/hermes/hermes-relay-manager.d.ts +5 -0
  42. package/dist/hermes/hermes-relay-manager.js +105 -8
  43. package/dist/hermes/hermes-relay-manager.js.map +1 -1
  44. package/dist/hermes/runtime/hermes-runtime-api-client.js +54 -29
  45. package/dist/hermes/runtime/hermes-runtime-api-client.js.map +1 -1
  46. package/dist/openclaw/gateway-client.d.ts +1 -0
  47. package/dist/openclaw/gateway-client.js +27 -3
  48. package/dist/openclaw/gateway-client.js.map +1 -1
  49. package/dist/openclaw/relay/chat-history.js +18 -7
  50. package/dist/openclaw/relay/chat-history.js.map +1 -1
  51. package/dist/openclaw/relay/chat-run-identity.d.ts +19 -2
  52. package/dist/openclaw/relay/chat-run-identity.js +89 -4
  53. package/dist/openclaw/relay/chat-run-identity.js.map +1 -1
  54. package/dist/openclaw/relay/relay-manager-protocol.d.ts +24 -3
  55. package/dist/openclaw/relay-manager.js +264 -36
  56. package/dist/openclaw/relay-manager.js.map +1 -1
  57. package/dist/platform/service-manager-common.d.ts +4 -0
  58. package/dist/platform/service-manager-common.js +14 -1
  59. package/dist/platform/service-manager-common.js.map +1 -1
  60. package/dist/platform/service-manager-linux.d.ts +17 -5
  61. package/dist/platform/service-manager-linux.js +86 -73
  62. package/dist/platform/service-manager-linux.js.map +1 -1
  63. package/dist/platform/service-manager.js +21 -17
  64. package/dist/platform/service-manager.js.map +1 -1
  65. package/package.json +4 -3
@@ -1,6 +1,5 @@
1
- import { WebSocket } from "ws";
2
1
  import { OpenClawGatewayClient } from "./gateway-client.js";
3
- import { bindRelayAbortSignal, buildRelayUrl, parseRelayFrame, sendRelayJson, shouldRetryRelayClose, } from "../core/relay/relay-server-connection.js";
2
+ import { bindRelayAbortSignal, buildRelayUrl, createRelayWebSocket, disconnectRelaySocketForRecovery, parseRelayFrame, sendRelayJson, sendRelayJsonWithWriteConfirmation, shouldRetryRelayClose, } from "../core/relay/relay-server-connection.js";
4
3
  import { handleLocalCommand } from "./handlers/local-handlers.js";
5
4
  import { handleProviderCommand } from "./handlers/provider-handlers.js";
6
5
  import { DEFAULT_GATEWAY_SESSION_DEFAULTS, buildContextUsageFingerprint, readContextUsageSnapshot, canonicalizeRelayParams, canonicalizeSessionKey, extractGatewaySessionDefaults, } from "./relay/session-context.js";
@@ -8,6 +7,9 @@ import { appendUniqueSuffix, extractChatRole, extractChatText, normalizeChatEven
8
7
  import { extractHistoryOutcome, filterOpenClawHeartbeatHistoryResponse, readOpenClawTranscriptChatHistory, withTimeout, } from "./relay/chat-history.js";
9
8
  import { OpenClawChatSendDedupeCoordinator, } from "./relay/chat-send-dedupe-coordinator.js";
10
9
  import { buildMobileAssistantDeltaPayload, buildMobileAssistantErrorPayload, buildMobileAssistantFinalPayload, } from "../core/relay/mobile-chat-run-bridge.js";
10
+ import { LatestSnapshotCoalescer, buildAssistantStreamSnapshotKey, } from "../core/relay/assistant-stream-coalescer.js";
11
+ import { reliableRelayOutboxForGateway } from "../core/relay/reliable-relay-outbox-registry.js";
12
+ import { isValidRelayHello, reliableDeliveryModeFromRelayHello, RELAY_HELLO_NEGOTIATION_TIMEOUT_MS, } from "../core/relay/reliable-delivery-protocol.js";
11
13
  import { buildChatSendIdempotencyRequest, ChatSendIdempotencyGuard, } from "../core/relay/chat-send-idempotency.js";
12
14
  import { prepareChatSendParams } from "./relay/chat-send-attachments.js";
13
15
  import { relayOutgoingMediaInHistoryResponse, relayOutgoingMediaInPayload } from "./relay/outgoing-media-relay.js";
@@ -35,10 +37,19 @@ const openClawChatSendIdempotency = new ChatSendIdempotencyGuard();
35
37
  */
36
38
  export async function runRelayManager(opts) {
37
39
  const wsUrl = buildRelayUrl(opts.relayServerUrl, opts.gatewayId, opts.relaySecret);
40
+ const outboxLookup = reliableRelayOutboxForGateway(opts.gatewayId, {
41
+ storageDirectory: opts.reliableOutboxStorageDirectory,
42
+ relayIdentity: opts.relayServerUrl,
43
+ });
44
+ if (outboxLookup.status === "rejected") {
45
+ console.error(`[relay] cannot start reliable delivery: ${outboxLookup.error.message}`);
46
+ return true;
47
+ }
48
+ const deliveryOutbox = outboxLookup.outbox;
38
49
  return new Promise((resolve) => {
39
50
  let relayWs;
40
51
  try {
41
- relayWs = new WebSocket(wsUrl);
52
+ relayWs = createRelayWebSocket(wsUrl);
42
53
  }
43
54
  catch (err) {
44
55
  console.error("Failed to create relay WebSocket:", err);
@@ -48,13 +59,14 @@ export async function runRelayManager(opts) {
48
59
  bindRelayAbortSignal(relayWs, opts.signal);
49
60
  let gatewayClient = null;
50
61
  let sessionDefaults = { ...DEFAULT_GATEWAY_SESSION_DEFAULTS };
51
- const chatBuffers = new Map();
52
62
  const chatFallbacks = new Map();
53
63
  const chatRunContexts = new Map();
54
64
  const chatSendDedupe = new OpenClawChatSendDedupeCoordinator(() => sessionDefaults);
55
65
  const outgoingMediaUploadCache = new Map();
56
66
  const contextUsageRefreshes = new Map();
57
67
  const contextUsageFingerprints = new Map();
68
+ let relayHelloNegotiated = false;
69
+ let relayHelloTimer;
58
70
  const clearChatFallback = (runId) => {
59
71
  const timer = chatFallbacks.get(runId);
60
72
  if (timer) {
@@ -133,24 +145,29 @@ export async function runRelayManager(opts) {
133
145
  if (!outcome) {
134
146
  chatFallbacks.delete(providerRunId);
135
147
  chatRunContexts.delete(providerRunId);
148
+ openClawChatRunIdentities.clearTransient(opts.gatewayId, providerRunId);
136
149
  return;
137
150
  }
138
151
  clearChatFallback(providerRunId);
139
152
  chatRunContexts.delete(providerRunId);
140
153
  if (outcome.kind === "final") {
154
+ openClawChatRunIdentities.markTerminal(opts.gatewayId, providerRunId);
141
155
  const basePayload = buildMobileAssistantFinalPayload({
142
156
  run: { runId: context.canonicalRunId, sessionKey: context.sessionKey },
143
157
  text: outcome.text,
144
158
  includeTimelineEvents: true,
145
159
  });
146
160
  await publishAndSendGatewayEvent("chat", buildFinalPayloadFromHistoryOutcome(basePayload, outcome), true, context.promptText);
161
+ openClawChatRunIdentities.clearTransient(opts.gatewayId, providerRunId);
147
162
  return;
148
163
  }
164
+ openClawChatRunIdentities.markTerminal(opts.gatewayId, providerRunId);
149
165
  await publishAndSendGatewayEvent("chat", buildMobileAssistantErrorPayload({
150
166
  run: { runId: context.canonicalRunId, sessionKey: context.sessionKey },
151
167
  errorMessage: outcome.errorMessage,
152
168
  includeTimelineEvents: true,
153
169
  }), true);
170
+ openClawChatRunIdentities.clearTransient(opts.gatewayId, providerRunId);
154
171
  })
155
172
  .catch((err) => {
156
173
  if (attempt < CHAT_HISTORY_FALLBACK_MAX_ATTEMPTS) {
@@ -160,6 +177,7 @@ export async function runRelayManager(opts) {
160
177
  console.warn(`[relay] chat history fallback failed runId=${providerRunId}: ${String(err)}`);
161
178
  chatFallbacks.delete(providerRunId);
162
179
  chatRunContexts.delete(providerRunId);
180
+ openClawChatRunIdentities.clearTransient(opts.gatewayId, providerRunId);
163
181
  });
164
182
  }, attempt === 0 ? CHAT_HISTORY_FALLBACK_INITIAL_DELAY_MS : CHAT_HISTORY_FALLBACK_RETRY_DELAY_MS);
165
183
  timer.unref?.();
@@ -181,25 +199,148 @@ export async function runRelayManager(opts) {
181
199
  console.warn(`[relay] failed to load session defaults: ${String(err)}`);
182
200
  }
183
201
  };
202
+ let lastBackpressureWarningAt = 0;
203
+ function queueReliable(msg) {
204
+ const enqueue = deliveryOutbox.enqueueIfReliable(msg);
205
+ if (enqueue.status === "not_reliable")
206
+ return undefined;
207
+ if (enqueue.status === "accepted")
208
+ return { status: "delivered" };
209
+ console.error(`[relay] reliable frame rejected reason=${enqueue.reason}: ${enqueue.error.message}`);
210
+ disconnectRelaySocketForRecovery(relayWs, "reliable_outbox_overload");
211
+ return { status: "retryable", error: enqueue.error };
212
+ }
213
+ function reportSendResult(result) {
214
+ if (result.status === "backpressure_skipped" && Date.now() - lastBackpressureWarningAt >= 10_000) {
215
+ lastBackpressureWarningAt = Date.now();
216
+ console.warn(`[relay] stream snapshot skipped under backpressure buffered=${result.bufferedAmount} projected=${result.projectedBufferedAmount}`);
217
+ }
218
+ else if (result.status === "backpressure_disconnected") {
219
+ console.warn(`[relay] disconnected saturated WebSocket buffered=${result.bufferedAmount} projected=${result.projectedBufferedAmount}`);
220
+ }
221
+ else if (result.status === "socket_not_open" || result.status === "send_failed") {
222
+ console.warn(`[relay] best-effort frame not sent status=${result.status}`);
223
+ }
224
+ }
184
225
  function send(msg) {
185
- sendRelayJson(relayWs, msg);
226
+ const reliable = queueReliable(msg);
227
+ if (reliable)
228
+ return reliable;
229
+ const result = sendRelayJson(relayWs, msg, undefined, (error) => {
230
+ if (error)
231
+ console.warn(`[relay] WebSocket write failed: ${error.message}`);
232
+ });
233
+ reportSendResult(result);
234
+ return result.status === "sent"
235
+ ? { status: "delivered" }
236
+ : { status: "retryable", error: result.error ?? new Error(`relay_send_${result.status}`) };
186
237
  }
187
- async function publishAndSendGatewayEvent(eventName, payload, publishOffice, userMessage) {
188
- const outgoingPayload = eventName === "chat"
189
- ? await relayOutgoingMediaInPayload(payload, {
190
- relayServerUrl: opts.relayServerUrl,
191
- relaySecret: opts.relaySecret,
192
- gatewayId: opts.gatewayId,
193
- senderDisplayName: "OpenClaw",
194
- cache: outgoingMediaUploadCache,
195
- userMessage,
196
- })
197
- : payload;
238
+ async function sendWithWriteConfirmation(msg) {
239
+ const reliable = queueReliable(msg);
240
+ if (reliable)
241
+ return reliable;
242
+ const result = await sendRelayJsonWithWriteConfirmation(relayWs, msg);
243
+ reportSendResult(result);
244
+ return result.status === "sent"
245
+ ? { status: "delivered" }
246
+ : { status: "retryable", error: result.error ?? new Error(`relay_send_${result.status}`) };
247
+ }
248
+ async function publishAndSendGatewayEvent(eventName, payload, publishOffice, userMessage, confirmWrite = false) {
249
+ let outgoingPayload = payload;
250
+ if (eventName === "chat") {
251
+ try {
252
+ outgoingPayload = await relayOutgoingMediaInPayload(payload, {
253
+ relayServerUrl: opts.relayServerUrl,
254
+ relaySecret: opts.relaySecret,
255
+ gatewayId: opts.gatewayId,
256
+ senderDisplayName: "OpenClaw",
257
+ cache: outgoingMediaUploadCache,
258
+ userMessage,
259
+ });
260
+ }
261
+ catch (error) {
262
+ if (!hasCanonicalTerminalTimeline(payload))
263
+ throw error;
264
+ // The answer is already complete. Attachment enrichment must not keep
265
+ // the canonical terminal outside the ACK-backed outbox during a Relay
266
+ // disconnect; replay the original terminal and let history/file flows
267
+ // reconcile any media separately.
268
+ console.warn(`[relay] terminal media enrichment failed; sending canonical terminal without enrichment: ${String(error)}`);
269
+ outgoingPayload = payload;
270
+ }
271
+ }
198
272
  if (publishOffice) {
199
273
  publishOfficeSnapshot(send, eventName, outgoingPayload);
200
274
  }
201
- send({ type: "event", event: eventName, payload: outgoingPayload });
275
+ const message = {
276
+ type: "event",
277
+ event: eventName,
278
+ payload: outgoingPayload,
279
+ };
280
+ if (confirmWrite)
281
+ return sendWithWriteConfirmation(message);
282
+ send(message);
202
283
  }
284
+ const assistantSnapshots = new LatestSnapshotCoalescer({
285
+ emit: (_key, snapshot) => {
286
+ const publishOffice = snapshot.publishOffice;
287
+ snapshot.publishOffice = false;
288
+ return publishAndSendGatewayEvent(snapshot.eventName, snapshot.payload, publishOffice, snapshot.userMessage, true);
289
+ },
290
+ onError: (error, key) => {
291
+ console.warn(`[relay] assistant snapshot publish failed key=${key}: ${String(error)}`);
292
+ },
293
+ });
294
+ const assistantSnapshotKey = (runId, sessionKey) => {
295
+ if (!runId?.trim() || !sessionKey?.trim()) {
296
+ return undefined;
297
+ }
298
+ return buildAssistantStreamSnapshotKey({
299
+ sessionKey,
300
+ runId,
301
+ messageId: `assistant-${runId}`,
302
+ });
303
+ };
304
+ const runAfterAssistantSnapshot = (key, close, operation, releaseClosed = false) => {
305
+ let result;
306
+ try {
307
+ result = key
308
+ ? close
309
+ ? assistantSnapshots.closeAfterFlush(key, operation)
310
+ : assistantSnapshots.flushThen(key, operation)
311
+ : operation();
312
+ }
313
+ catch (error) {
314
+ console.warn(`[relay] ordered gateway event publish failed: ${String(error)}`);
315
+ return;
316
+ }
317
+ void Promise.resolve(result)
318
+ .catch((error) => {
319
+ console.warn(`[relay] ordered gateway event publish failed: ${String(error)}`);
320
+ })
321
+ .finally(() => {
322
+ if (key && close && releaseClosed)
323
+ assistantSnapshots.releaseClosed(key);
324
+ });
325
+ };
326
+ const snapshotKeyForGatewayPayload = (payload) => {
327
+ if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
328
+ return undefined;
329
+ }
330
+ const record = payload;
331
+ const providerRunId = typeof record.runId === "string" && record.runId.trim()
332
+ ? record.runId.trim()
333
+ : undefined;
334
+ const explicitCanonicalRunId = resolveExplicitMobileRunIdFromChatPayload(payload);
335
+ const runContext = providerRunId
336
+ ? chatRunContexts.get(providerRunId) ?? openClawChatRunIdentities.resolve(opts.gatewayId, providerRunId)
337
+ : undefined;
338
+ const runId = runContext?.canonicalRunId ?? explicitCanonicalRunId ?? providerRunId;
339
+ const sessionKey = typeof record.sessionKey === "string" && record.sessionKey.trim()
340
+ ? record.sessionKey.trim()
341
+ : runContext?.sessionKey;
342
+ return assistantSnapshotKey(runId, sessionKey);
343
+ };
203
344
  async function relayOutgoingMediaForResponse(method, payload) {
204
345
  if (method !== "chat.history") {
205
346
  return payload;
@@ -243,6 +384,13 @@ export async function runRelayManager(opts) {
243
384
  agentVersion: "1.0.0",
244
385
  capabilities: gatewayCapabilitiesForType("openclaw"),
245
386
  }));
387
+ relayHelloTimer = setTimeout(() => {
388
+ if (relayHelloNegotiated)
389
+ return;
390
+ console.warn("[relay] Relay hello negotiation timed out; reconnecting without protocol downgrade");
391
+ disconnectRelaySocketForRecovery(relayWs, "relay_hello_timeout");
392
+ }, opts.relayHelloTimeoutMs ?? RELAY_HELLO_NEGOTIATION_TIMEOUT_MS);
393
+ relayHelloTimer.unref?.();
246
394
  // Start the persistent gateway connection as soon as we're connected
247
395
  // to the relay server. Its lifetime is tied to this relay session.
248
396
  gatewayClient = new OpenClawGatewayClient({
@@ -271,30 +419,42 @@ export async function runRelayManager(opts) {
271
419
  const p = normalizedPayload;
272
420
  const state = normalizeChatState(normalizedPayload);
273
421
  const providerRunId = typeof p?.runId === "string" ? p.runId.trim() : "";
422
+ const isStreamingState = state === "delta" || state === "streaming" || state === "in_progress";
423
+ const isTerminalState = state === "final" || state === "error" || state === "failed" || state === "fail" || state === "aborted";
274
424
  const sessionKey = typeof p?.sessionKey === "string" && p.sessionKey.trim().length > 0 ? p.sessionKey.trim() : undefined;
275
425
  const explicitCanonicalRunId = resolveExplicitMobileRunIdFromChatPayload(normalizedPayload);
276
426
  let runContext = providerRunId
277
427
  ? chatRunContexts.get(providerRunId) ?? openClawChatRunIdentities.resolve(opts.gatewayId, providerRunId)
278
428
  : undefined;
279
- if (!runContext && providerRunId && explicitCanonicalRunId && sessionKey) {
429
+ if (!runContext && providerRunId && sessionKey) {
280
430
  runContext = {
281
431
  gatewayId: opts.gatewayId,
282
432
  providerRunId,
283
- canonicalRunId: explicitCanonicalRunId,
433
+ canonicalRunId: explicitCanonicalRunId ?? providerRunId,
284
434
  sessionKey,
285
435
  };
286
- openClawChatRunIdentities.register(runContext);
436
+ openClawChatRunIdentities.ensure(runContext);
287
437
  chatRunContexts.set(providerRunId, runContext);
288
438
  }
439
+ if (providerRunId && isStreamingState && openClawChatRunIdentities.isTerminal(opts.gatewayId, providerRunId)) {
440
+ return;
441
+ }
442
+ if (providerRunId && isTerminalState) {
443
+ openClawChatRunIdentities.markTerminal(opts.gatewayId, providerRunId);
444
+ }
289
445
  const canonicalRunId = runContext?.canonicalRunId ?? explicitCanonicalRunId ?? providerRunId;
290
446
  const resolvedSessionKey = sessionKey ?? runContext?.sessionKey;
291
447
  const currentText = extractChatText(normalizedPayload);
292
448
  const role = extractChatRole(normalizedPayload);
449
+ const runSnapshotKey = assistantSnapshotKey(canonicalRunId, resolvedSessionKey);
293
450
  if (isOpenClawHeartbeatText(currentText) || (runContext?.promptText && isOpenClawHeartbeatText(runContext.promptText))) {
294
451
  if (providerRunId && (state === "final" || state === "error" || state === "failed" || state === "fail" || state === "aborted")) {
295
- chatBuffers.delete(providerRunId);
452
+ openClawChatRunIdentities.clearTransient(opts.gatewayId, providerRunId);
296
453
  chatRunContexts.delete(providerRunId);
297
454
  }
455
+ if (runSnapshotKey) {
456
+ assistantSnapshots.clear(runSnapshotKey);
457
+ }
298
458
  return;
299
459
  }
300
460
  let realtimePayload = normalizedPayload;
@@ -306,9 +466,9 @@ export async function runRelayManager(opts) {
306
466
  clearChatFallback(providerRunId);
307
467
  }
308
468
  if (state === "delta" || state === "streaming" || state === "in_progress") {
309
- const previousText = chatBuffers.get(providerRunId) ?? "";
469
+ const previousText = openClawChatRunIdentities.accumulatedText(opts.gatewayId, providerRunId);
310
470
  const bufferedText = appendUniqueSuffix(previousText, currentText);
311
- chatBuffers.set(providerRunId, bufferedText);
471
+ openClawChatRunIdentities.setAccumulatedText(opts.gatewayId, providerRunId, bufferedText);
312
472
  if (role === "assistant" && bufferedText.trim()) {
313
473
  realtimePayload = resolvedSessionKey
314
474
  ? mergeCanonicalChatPayload(normalizedPayload, buildMobileAssistantDeltaPayload({
@@ -322,7 +482,6 @@ export async function runRelayManager(opts) {
322
482
  }
323
483
  }
324
484
  else if (state === "error" || state === "failed" || state === "fail" || state === "aborted") {
325
- chatBuffers.delete(providerRunId);
326
485
  if (role === "assistant" && resolvedSessionKey) {
327
486
  realtimePayload = mergeCanonicalChatPayload(normalizedPayload, buildMobileAssistantErrorPayload({
328
487
  run: { runId: canonicalRunId, sessionKey: resolvedSessionKey },
@@ -332,17 +491,25 @@ export async function runRelayManager(opts) {
332
491
  }
333
492
  }
334
493
  }
494
+ if (runSnapshotKey &&
495
+ role === "assistant" &&
496
+ (state === "delta" || state === "streaming" || state === "in_progress") &&
497
+ extractChatText(realtimePayload).trim()) {
498
+ assistantSnapshots.schedule(runSnapshotKey, {
499
+ eventName: event,
500
+ payload: realtimePayload,
501
+ publishOffice: shouldPublishOffice,
502
+ userMessage: runContext?.promptText,
503
+ });
504
+ return;
505
+ }
335
506
  if (state === "final" && resolvedSessionKey) {
336
507
  scheduleContextUsageRefresh(resolvedSessionKey, 450);
337
- const bufferedText = providerRunId ? chatBuffers.get(providerRunId) ?? "" : "";
338
- const resolvedText = currentText || bufferedText;
339
- if (providerRunId) {
340
- chatBuffers.delete(providerRunId);
341
- }
508
+ const bufferedText = providerRunId
509
+ ? openClawChatRunIdentities.accumulatedText(opts.gatewayId, providerRunId)
510
+ : "";
511
+ const resolvedText = appendUniqueSuffix(bufferedText, currentText);
342
512
  if (resolvedText.trim()) {
343
- if (providerRunId) {
344
- chatRunContexts.delete(providerRunId);
345
- }
346
513
  const outgoingPayload = providerRunId
347
514
  ? mergeCanonicalChatPayload(normalizedPayload, buildMobileAssistantFinalPayload({
348
515
  run: { runId: canonicalRunId, sessionKey: resolvedSessionKey },
@@ -352,11 +519,17 @@ export async function runRelayManager(opts) {
352
519
  ...mobileAssistantUsageFromPayload(normalizedPayload),
353
520
  }))
354
521
  : withMessageText(normalizedPayload, resolvedText);
355
- void publishAndSendGatewayEvent(event, outgoingPayload, shouldPublishOffice, runContext?.promptText);
522
+ runAfterAssistantSnapshot(runSnapshotKey, true, async () => {
523
+ await publishAndSendGatewayEvent(event, outgoingPayload, shouldPublishOffice, runContext?.promptText);
524
+ if (providerRunId) {
525
+ openClawChatRunIdentities.clearTransient(opts.gatewayId, providerRunId);
526
+ chatRunContexts.delete(providerRunId);
527
+ }
528
+ }, Boolean(providerRunId));
356
529
  return;
357
530
  }
358
531
  const fetchHistory = () => requestChatHistoryFromClawConnect({ sessionKey: resolvedSessionKey, limit: 10 });
359
- withTimeout(fetchHistory(), CHAT_HISTORY_FETCH_TIMEOUT_MS, "chat.history")
532
+ const publishHistoryTerminal = () => withTimeout(fetchHistory(), CHAT_HISTORY_FETCH_TIMEOUT_MS, "chat.history")
360
533
  .then(async (history) => {
361
534
  let outcome = runContext ? extractHistoryOutcome(history, runContext) : null;
362
535
  // Retry once if OpenClaw has emitted final before the transcript is committed.
@@ -380,6 +553,8 @@ export async function runRelayManager(opts) {
380
553
  : normalizedPayload;
381
554
  const outgoingPayload = buildFinalPayloadFromHistoryOutcome(basePayload, outcome);
382
555
  await publishAndSendGatewayEvent(event, outgoingPayload, shouldPublishOffice, runContext?.promptText);
556
+ if (providerRunId)
557
+ openClawChatRunIdentities.clearTransient(opts.gatewayId, providerRunId);
383
558
  return;
384
559
  }
385
560
  if (outcome?.kind === "error") {
@@ -395,6 +570,8 @@ export async function runRelayManager(opts) {
395
570
  errorMessage: outcome.errorMessage,
396
571
  };
397
572
  await publishAndSendGatewayEvent(event, outgoingPayload, shouldPublishOffice);
573
+ if (providerRunId)
574
+ openClawChatRunIdentities.clearTransient(opts.gatewayId, providerRunId);
398
575
  return;
399
576
  }
400
577
  if (providerRunId && runContext) {
@@ -411,16 +588,23 @@ export async function runRelayManager(opts) {
411
588
  }
412
589
  void publishAndSendGatewayEvent(event, normalizedPayload, shouldPublishOffice);
413
590
  });
591
+ runAfterAssistantSnapshot(runSnapshotKey, true, publishHistoryTerminal, Boolean(providerRunId));
414
592
  return;
415
593
  }
416
594
  if (providerRunId && (state === "error" || state === "failed" || state === "fail" || state === "aborted")) {
417
595
  chatRunContexts.delete(providerRunId);
418
596
  scheduleContextUsageRefresh(p?.sessionKey, 450);
419
597
  }
420
- void publishAndSendGatewayEvent(event, realtimePayload, shouldPublishOffice);
598
+ const isTerminal = state === "error" || state === "failed" || state === "fail" || state === "aborted";
599
+ runAfterAssistantSnapshot(runSnapshotKey, isTerminal, async () => {
600
+ await publishAndSendGatewayEvent(event, realtimePayload, shouldPublishOffice);
601
+ if (providerRunId && isTerminal) {
602
+ openClawChatRunIdentities.clearTransient(opts.gatewayId, providerRunId);
603
+ }
604
+ }, Boolean(providerRunId && isTerminal));
421
605
  return;
422
606
  }
423
- void publishAndSendGatewayEvent(event, normalizedPayload, shouldPublishOffice);
607
+ runAfterAssistantSnapshot(snapshotKeyForGatewayPayload(normalizedPayload), false, () => (publishAndSendGatewayEvent(event, normalizedPayload, shouldPublishOffice)));
424
608
  },
425
609
  });
426
610
  gatewayClient.start();
@@ -439,6 +623,29 @@ export async function runRelayManager(opts) {
439
623
  return;
440
624
  }
441
625
  if (msg.type === "hello") {
626
+ if (!isValidRelayHello(msg, opts.gatewayId)) {
627
+ console.warn("[relay] invalid Relay hello; reconnecting without protocol downgrade");
628
+ disconnectRelaySocketForRecovery(relayWs, "invalid_relay_hello");
629
+ return;
630
+ }
631
+ if (relayHelloNegotiated)
632
+ return;
633
+ relayHelloNegotiated = true;
634
+ if (relayHelloTimer) {
635
+ clearTimeout(relayHelloTimer);
636
+ relayHelloTimer = undefined;
637
+ }
638
+ const deliveryMode = reliableDeliveryModeFromRelayHello(msg);
639
+ deliveryOutbox.attach(relayWs, deliveryMode);
640
+ console.log(`[relay] reliable delivery mode=${deliveryMode}`);
641
+ return;
642
+ }
643
+ if (msg.type === "event_ack") {
644
+ deliveryOutbox.acknowledge(msg.id);
645
+ return;
646
+ }
647
+ if (msg.type === "response_ack") {
648
+ deliveryOutbox.acknowledgeResponse(msg.id, msg.responsePhase);
442
649
  return;
443
650
  }
444
651
  if (msg.type !== "cmd" || !msg.method)
@@ -659,6 +866,12 @@ export async function runRelayManager(opts) {
659
866
  clearTimeout(timer);
660
867
  }
661
868
  contextUsageRefreshes.clear();
869
+ if (relayHelloTimer) {
870
+ clearTimeout(relayHelloTimer);
871
+ relayHelloTimer = undefined;
872
+ }
873
+ assistantSnapshots.dispose();
874
+ deliveryOutbox.detach(relayWs);
662
875
  resolve(shouldRetryRelayClose(code, opts.signal));
663
876
  });
664
877
  function isOpenClawHeartbeatText(text) {
@@ -676,6 +889,21 @@ export async function runRelayManager(opts) {
676
889
  upper.startsWith("HEARTBEAT_OK") ||
677
890
  upper.startsWith("HEARTBEAT OK"));
678
891
  }
892
+ function hasCanonicalTerminalTimeline(payload) {
893
+ if (!payload || typeof payload !== "object" || Array.isArray(payload))
894
+ return false;
895
+ const record = payload;
896
+ const state = typeof record.state === "string" ? record.state.trim().toLowerCase() : "";
897
+ if (!["final", "error", "failed", "fail", "aborted"].includes(state))
898
+ return false;
899
+ return Array.isArray(record.timelineEvents) && record.timelineEvents.some((event) => {
900
+ if (!event || typeof event !== "object" || Array.isArray(event))
901
+ return false;
902
+ const eventType = event.eventType;
903
+ return typeof eventType === "string"
904
+ && ["message.completed", "run.completed", "run.failed", "run.aborted"].includes(eventType);
905
+ });
906
+ }
679
907
  relayWs.on("error", (err) => {
680
908
  console.error("Relay WebSocket error:", err.message);
681
909
  // close event will follow
@@ -1 +1 @@
1
- {"version":3,"file":"relay-manager.js","sourceRoot":"","sources":["../../src/openclaw/relay-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay-manager.js","sourceRoot":"","sources":["../../src/openclaw/relay-manager.ts"],"names":[],"mappings":"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"}