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.
- package/README.md +11 -0
- package/README.zh-CN.md +10 -0
- package/dist/commands/install.js +7 -0
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/pair.d.ts +1 -2
- package/dist/commands/pair.js +2 -16
- package/dist/commands/pair.js.map +1 -1
- package/dist/commands/run.js +26 -13
- package/dist/commands/run.js.map +1 -1
- package/dist/core/command-types.d.ts +2 -1
- package/dist/core/relay/assistant-stream-coalescer.d.ts +67 -0
- package/dist/core/relay/assistant-stream-coalescer.js +269 -0
- package/dist/core/relay/assistant-stream-coalescer.js.map +1 -0
- package/dist/core/relay/file-upload-utils.d.ts +1 -0
- package/dist/core/relay/file-upload-utils.js +15 -0
- package/dist/core/relay/file-upload-utils.js.map +1 -1
- package/dist/core/relay/office-payload.d.ts +1 -0
- package/dist/core/relay/office-payload.js +42 -3
- package/dist/core/relay/office-payload.js.map +1 -1
- package/dist/core/relay/reconnect.d.ts +1 -0
- package/dist/core/relay/reconnect.js +22 -4
- package/dist/core/relay/reconnect.js.map +1 -1
- package/dist/core/relay/relay-server-connection.d.ts +25 -1
- package/dist/core/relay/relay-server-connection.js +246 -3
- package/dist/core/relay/relay-server-connection.js.map +1 -1
- package/dist/core/relay/reliable-delivery-protocol.d.ts +17 -0
- package/dist/core/relay/reliable-delivery-protocol.js +25 -0
- package/dist/core/relay/reliable-delivery-protocol.js.map +1 -0
- package/dist/core/relay/reliable-relay-outbox-registry.d.ts +19 -0
- package/dist/core/relay/reliable-relay-outbox-registry.js +81 -0
- package/dist/core/relay/reliable-relay-outbox-registry.js.map +1 -0
- package/dist/core/relay/reliable-relay-outbox-store.d.ts +67 -0
- package/dist/core/relay/reliable-relay-outbox-store.js +527 -0
- package/dist/core/relay/reliable-relay-outbox-store.js.map +1 -0
- package/dist/core/relay/reliable-relay-outbox.d.ts +74 -0
- package/dist/core/relay/reliable-relay-outbox.js +442 -0
- package/dist/core/relay/reliable-relay-outbox.js.map +1 -0
- package/dist/core/relay/timeline-event-builder.d.ts +1 -0
- package/dist/core/relay/timeline-event-builder.js +1 -0
- package/dist/core/relay/timeline-event-builder.js.map +1 -1
- package/dist/hermes/hermes-relay-manager.d.ts +5 -0
- package/dist/hermes/hermes-relay-manager.js +105 -8
- package/dist/hermes/hermes-relay-manager.js.map +1 -1
- package/dist/hermes/runtime/hermes-runtime-api-client.js +54 -29
- package/dist/hermes/runtime/hermes-runtime-api-client.js.map +1 -1
- package/dist/openclaw/gateway-client.d.ts +1 -0
- package/dist/openclaw/gateway-client.js +27 -3
- package/dist/openclaw/gateway-client.js.map +1 -1
- package/dist/openclaw/relay/chat-history.js +18 -7
- package/dist/openclaw/relay/chat-history.js.map +1 -1
- package/dist/openclaw/relay/chat-run-identity.d.ts +19 -2
- package/dist/openclaw/relay/chat-run-identity.js +89 -4
- package/dist/openclaw/relay/chat-run-identity.js.map +1 -1
- package/dist/openclaw/relay/relay-manager-protocol.d.ts +24 -3
- package/dist/openclaw/relay-manager.js +264 -36
- package/dist/openclaw/relay-manager.js.map +1 -1
- package/dist/platform/service-manager-common.d.ts +4 -0
- package/dist/platform/service-manager-common.js +14 -1
- package/dist/platform/service-manager-common.js.map +1 -1
- package/dist/platform/service-manager-linux.d.ts +17 -5
- package/dist/platform/service-manager-linux.js +86 -73
- package/dist/platform/service-manager-linux.js.map +1 -1
- package/dist/platform/service-manager.js +21 -17
- package/dist/platform/service-manager.js.map +1 -1
- 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 =
|
|
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
|
-
|
|
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
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
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
|
-
|
|
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 &&
|
|
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.
|
|
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
|
-
|
|
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 =
|
|
469
|
+
const previousText = openClawChatRunIdentities.accumulatedText(opts.gatewayId, providerRunId);
|
|
310
470
|
const bufferedText = appendUniqueSuffix(previousText, currentText);
|
|
311
|
-
|
|
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
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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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"}
|