clawconnect-agent 0.1.32 → 0.1.34

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 (46) hide show
  1. package/dist/core/relay/timeline-event-builder.js +3 -1
  2. package/dist/core/relay/timeline-event-builder.js.map +1 -1
  3. package/dist/hermes/hermes-runtime.d.ts +1 -1
  4. package/dist/hermes/hermes-runtime.js +1 -1
  5. package/dist/hermes/hermes-runtime.js.map +1 -1
  6. package/dist/hermes/relay/hermes-state-db-realtime.d.ts +30 -1
  7. package/dist/hermes/relay/hermes-state-db-realtime.js +439 -72
  8. package/dist/hermes/relay/hermes-state-db-realtime.js.map +1 -1
  9. package/dist/hermes/runtime/hermes-runtime-api-client.d.ts +14 -1
  10. package/dist/hermes/runtime/hermes-runtime-api-client.js +155 -26
  11. package/dist/hermes/runtime/hermes-runtime-api-client.js.map +1 -1
  12. package/dist/hermes/runtime/hermes-runtime-chat.d.ts +1 -0
  13. package/dist/hermes/runtime/hermes-runtime-chat.js +1 -0
  14. package/dist/hermes/runtime/hermes-runtime-chat.js.map +1 -1
  15. package/dist/hermes/runtime/hermes-runtime-command-router.js +5 -2
  16. package/dist/hermes/runtime/hermes-runtime-command-router.js.map +1 -1
  17. package/dist/hermes/runtime/hermes-runtime-history-completion.d.ts +2 -0
  18. package/dist/hermes/runtime/hermes-runtime-history-completion.js +49 -2
  19. package/dist/hermes/runtime/hermes-runtime-history-completion.js.map +1 -1
  20. package/dist/hermes/runtime/hermes-runtime-history.js +82 -9
  21. package/dist/hermes/runtime/hermes-runtime-history.js.map +1 -1
  22. package/dist/hermes/runtime/hermes-runtime-process.js +14 -2
  23. package/dist/hermes/runtime/hermes-runtime-process.js.map +1 -1
  24. package/dist/hermes/runtime/hermes-runtime-sessions.d.ts +5 -0
  25. package/dist/hermes/runtime/hermes-runtime-sessions.js +38 -6
  26. package/dist/hermes/runtime/hermes-runtime-sessions.js.map +1 -1
  27. package/dist/hermes/runtime/hermes-runtime-state-db.d.ts +14 -0
  28. package/dist/hermes/runtime/hermes-runtime-state-db.js +116 -0
  29. package/dist/hermes/runtime/hermes-runtime-state-db.js.map +1 -1
  30. package/dist/hermes/runtime/hermes-state-db-message-identity.d.ts +12 -0
  31. package/dist/hermes/runtime/hermes-state-db-message-identity.js +11 -0
  32. package/dist/hermes/runtime/hermes-state-db-message-identity.js.map +1 -0
  33. package/dist/openclaw/gateway-client.d.ts +3 -1
  34. package/dist/openclaw/gateway-client.js +16 -4
  35. package/dist/openclaw/gateway-client.js.map +1 -1
  36. package/dist/openclaw/relay/chat-history.d.ts +2 -1
  37. package/dist/openclaw/relay/chat-history.js +26 -13
  38. package/dist/openclaw/relay/chat-history.js.map +1 -1
  39. package/dist/openclaw/relay/chat-run-identity.d.ts +25 -0
  40. package/dist/openclaw/relay/chat-run-identity.js +81 -0
  41. package/dist/openclaw/relay/chat-run-identity.js.map +1 -0
  42. package/dist/openclaw/relay-manager.js +128 -73
  43. package/dist/openclaw/relay-manager.js.map +1 -1
  44. package/dist/openclaw/runtime/local-runtime.js +4 -1
  45. package/dist/openclaw/runtime/local-runtime.js.map +1 -1
  46. package/package.json +2 -2
@@ -0,0 +1,81 @@
1
+ /**
2
+ * OpenClaw 的 provider runId 只负责关联 Gateway 事件;移动端幂等键才是跨 Relay
3
+ * 重连仍然有效的对外身份。该注册表位于连接实例之外,并按显式运行身份保留到进程结束,
4
+ * 避免长运行或迟到事件因时间窗口、容量淘汰而退化为 provider 身份。
5
+ */
6
+ export class OpenClawChatRunIdentityRegistry {
7
+ identitiesByProvider = new Map();
8
+ providerRunsByCanonical = new Map();
9
+ register(identity) {
10
+ const gatewayId = identity.gatewayId.trim();
11
+ const providerRunId = identity.providerRunId.trim();
12
+ const canonicalRunId = identity.canonicalRunId.trim();
13
+ if (!gatewayId || !providerRunId || !canonicalRunId) {
14
+ return;
15
+ }
16
+ this.identitiesByProvider.set(this.key(gatewayId, providerRunId), {
17
+ ...identity,
18
+ gatewayId,
19
+ providerRunId,
20
+ canonicalRunId,
21
+ });
22
+ this.providerRunsByCanonical.set(this.key(gatewayId, canonicalRunId), providerRunId);
23
+ }
24
+ resolve(gatewayId, providerRunId) {
25
+ return this.identitiesByProvider.get(this.key(gatewayId.trim(), providerRunId.trim()));
26
+ }
27
+ resolveProviderRunId(gatewayId, canonicalRunId) {
28
+ return this.providerRunsByCanonical.get(this.key(gatewayId.trim(), canonicalRunId.trim()));
29
+ }
30
+ clear() {
31
+ this.identitiesByProvider.clear();
32
+ this.providerRunsByCanonical.clear();
33
+ }
34
+ key(gatewayId, providerRunId) {
35
+ return `${gatewayId}\u0000${providerRunId}`;
36
+ }
37
+ }
38
+ export function normalizeOpenClawMobileRunId(value) {
39
+ if (typeof value !== "string" || !value.trim()) {
40
+ return undefined;
41
+ }
42
+ return value.trim().replace(/:(?:user|assistant|tool|system)$/i, "") || undefined;
43
+ }
44
+ export function resolveExplicitMobileRunIdFromChatPayload(payload) {
45
+ if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
46
+ return undefined;
47
+ }
48
+ const record = payload;
49
+ const message = record.message && typeof record.message === "object" && !Array.isArray(record.message)
50
+ ? record.message
51
+ : undefined;
52
+ return normalizeOpenClawMobileRunId(record.idempotencyKey)
53
+ ?? normalizeOpenClawMobileRunId(record.clientRunId)
54
+ ?? normalizeOpenClawMobileRunId(message?.idempotencyKey)
55
+ ?? normalizeOpenClawMobileRunId(message?.clientRunId);
56
+ }
57
+ export function canonicalizeOpenClawChatSendResult(result, canonicalRunId) {
58
+ const record = result && typeof result === "object" && !Array.isArray(result)
59
+ ? result
60
+ : {};
61
+ return {
62
+ ...record,
63
+ runId: canonicalRunId,
64
+ };
65
+ }
66
+ export function restoreOpenClawProviderRunIdForCommand(method, params, gatewayId, registry) {
67
+ if (method !== "chat.abort" || !params || typeof params !== "object" || Array.isArray(params)) {
68
+ return params;
69
+ }
70
+ const record = params;
71
+ const canonicalRunId = normalizeOpenClawMobileRunId(record.runId);
72
+ if (!canonicalRunId) {
73
+ return params;
74
+ }
75
+ const providerRunId = registry.resolveProviderRunId(gatewayId, canonicalRunId);
76
+ return providerRunId
77
+ ? { ...record, runId: providerRunId }
78
+ : params;
79
+ }
80
+ export const openClawChatRunIdentities = new OpenClawChatRunIdentityRegistry();
81
+ //# sourceMappingURL=chat-run-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-run-identity.js","sourceRoot":"","sources":["../../../src/openclaw/relay/chat-run-identity.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ import { voiceInputSetupMessage } from "../core/relay/voice-input.js";
16
16
  import { gatewayCapabilitiesForType } from "../gateway-profiles.js";
17
17
  import { buildRelayHelloMessage } from "./relay/relay-manager-hello.js";
18
18
  import { CHAT_HISTORY_FALLBACK_INITIAL_DELAY_MS, CHAT_HISTORY_FALLBACK_MAX_ATTEMPTS, CHAT_HISTORY_FALLBACK_RETRY_DELAY_MS, CHAT_HISTORY_FETCH_TIMEOUT_MS, CHAT_HISTORY_FINAL_RETRY_DELAY_MS, } from "./relay/relay-manager-history-timing.js";
19
+ import { canonicalizeOpenClawChatSendResult, normalizeOpenClawMobileRunId, openClawChatRunIdentities, resolveExplicitMobileRunIdFromChatPayload, restoreOpenClawProviderRunIdForCommand, } from "./relay/chat-run-identity.js";
19
20
  import { publishOfficeSnapshot } from "./relay/relay-manager-office-events.js";
20
21
  export { buildRelayHelloMessage } from "./relay/relay-manager-hello.js";
21
22
  import { buildEmptyHistoryPage, buildFinalPayloadFromHistoryOutcome, buildLegacyOpenClawHistoryParams, extractChatErrorMessage, hasHistoryCursor, mergeCanonicalChatPayload, mobileAssistantUsageFromPayload, nonTextContentBlocks, nonTextContentBlocksFromHistory, resolveChatPayloadSeq, resolveChatPayloadTimestamp, shouldUseLegacyOpenClawHistoryFallback, } from "./relay/relay-manager-payload-helpers.js";
@@ -110,15 +111,15 @@ export async function runRelayManager(opts) {
110
111
  timer.unref?.();
111
112
  contextUsageRefreshes.set(key, timer);
112
113
  };
113
- const scheduleChatHistoryFallback = (runId, context, attempt = 0) => {
114
- if (!runId || !context.sessionKey) {
114
+ const scheduleChatHistoryFallback = (providerRunId, context, attempt = 0) => {
115
+ if (!providerRunId || !context.sessionKey) {
115
116
  return;
116
117
  }
117
- clearChatFallback(runId);
118
- chatRunContexts.set(runId, context);
118
+ clearChatFallback(providerRunId);
119
+ chatRunContexts.set(providerRunId, context);
119
120
  const timer = setTimeout(() => {
120
121
  if (!gatewayClient) {
121
- chatFallbacks.delete(runId);
122
+ chatFallbacks.delete(providerRunId);
122
123
  return;
123
124
  }
124
125
  const fetchHistory = () => requestChatHistoryFromClawConnect({ sessionKey: context.sessionKey, limit: 10 });
@@ -126,19 +127,19 @@ export async function runRelayManager(opts) {
126
127
  .then(async (history) => {
127
128
  const outcome = extractHistoryOutcome(history, context);
128
129
  if (!outcome && attempt < CHAT_HISTORY_FALLBACK_MAX_ATTEMPTS) {
129
- scheduleChatHistoryFallback(runId, context, attempt + 1);
130
+ scheduleChatHistoryFallback(providerRunId, context, attempt + 1);
130
131
  return;
131
132
  }
132
133
  if (!outcome) {
133
- chatFallbacks.delete(runId);
134
- chatRunContexts.delete(runId);
134
+ chatFallbacks.delete(providerRunId);
135
+ chatRunContexts.delete(providerRunId);
135
136
  return;
136
137
  }
137
- clearChatFallback(runId);
138
- chatRunContexts.delete(runId);
138
+ clearChatFallback(providerRunId);
139
+ chatRunContexts.delete(providerRunId);
139
140
  if (outcome.kind === "final") {
140
141
  const basePayload = buildMobileAssistantFinalPayload({
141
- run: { runId, sessionKey: context.sessionKey },
142
+ run: { runId: context.canonicalRunId, sessionKey: context.sessionKey },
142
143
  text: outcome.text,
143
144
  includeTimelineEvents: true,
144
145
  });
@@ -146,23 +147,23 @@ export async function runRelayManager(opts) {
146
147
  return;
147
148
  }
148
149
  await publishAndSendGatewayEvent("chat", buildMobileAssistantErrorPayload({
149
- run: { runId, sessionKey: context.sessionKey },
150
+ run: { runId: context.canonicalRunId, sessionKey: context.sessionKey },
150
151
  errorMessage: outcome.errorMessage,
151
152
  includeTimelineEvents: true,
152
153
  }), true);
153
154
  })
154
155
  .catch((err) => {
155
156
  if (attempt < CHAT_HISTORY_FALLBACK_MAX_ATTEMPTS) {
156
- scheduleChatHistoryFallback(runId, context, attempt + 1);
157
+ scheduleChatHistoryFallback(providerRunId, context, attempt + 1);
157
158
  return;
158
159
  }
159
- console.warn(`[relay] chat history fallback failed runId=${runId}: ${String(err)}`);
160
- chatFallbacks.delete(runId);
161
- chatRunContexts.delete(runId);
160
+ console.warn(`[relay] chat history fallback failed runId=${providerRunId}: ${String(err)}`);
161
+ chatFallbacks.delete(providerRunId);
162
+ chatRunContexts.delete(providerRunId);
162
163
  });
163
164
  }, attempt === 0 ? CHAT_HISTORY_FALLBACK_INITIAL_DELAY_MS : CHAT_HISTORY_FALLBACK_RETRY_DELAY_MS);
164
165
  timer.unref?.();
165
- chatFallbacks.set(runId, timer);
166
+ chatFallbacks.set(providerRunId, timer);
166
167
  };
167
168
  const refreshSessionDefaults = async () => {
168
169
  if (!gatewayClient) {
@@ -269,28 +270,42 @@ export async function runRelayManager(opts) {
269
270
  if (event === "chat") {
270
271
  const p = normalizedPayload;
271
272
  const state = normalizeChatState(normalizedPayload);
272
- const runId = typeof p?.runId === "string" ? p.runId : "";
273
+ const providerRunId = typeof p?.runId === "string" ? p.runId.trim() : "";
273
274
  const sessionKey = typeof p?.sessionKey === "string" && p.sessionKey.trim().length > 0 ? p.sessionKey.trim() : undefined;
274
- const runContext = runId ? chatRunContexts.get(runId) : undefined;
275
+ const explicitCanonicalRunId = resolveExplicitMobileRunIdFromChatPayload(normalizedPayload);
276
+ let runContext = providerRunId
277
+ ? chatRunContexts.get(providerRunId) ?? openClawChatRunIdentities.resolve(opts.gatewayId, providerRunId)
278
+ : undefined;
279
+ if (!runContext && providerRunId && explicitCanonicalRunId && sessionKey) {
280
+ runContext = {
281
+ gatewayId: opts.gatewayId,
282
+ providerRunId,
283
+ canonicalRunId: explicitCanonicalRunId,
284
+ sessionKey,
285
+ };
286
+ openClawChatRunIdentities.register(runContext);
287
+ chatRunContexts.set(providerRunId, runContext);
288
+ }
289
+ const canonicalRunId = runContext?.canonicalRunId ?? explicitCanonicalRunId ?? providerRunId;
275
290
  const resolvedSessionKey = sessionKey ?? runContext?.sessionKey;
276
291
  const currentText = extractChatText(normalizedPayload);
277
292
  const role = extractChatRole(normalizedPayload);
278
293
  let realtimePayload = normalizedPayload;
279
- if (runId) {
294
+ if (providerRunId) {
280
295
  if (state === "final" || state === "error" || state === "failed" || state === "fail" || state === "aborted") {
281
- chatSendDedupe.scheduleForRun(runId, 100);
296
+ chatSendDedupe.scheduleForRun(providerRunId, 100);
282
297
  }
283
298
  if (role === "assistant" && (state === "delta" || state === "final" || state === "error" || state === "failed" || state === "fail")) {
284
- clearChatFallback(runId);
299
+ clearChatFallback(providerRunId);
285
300
  }
286
301
  if (state === "delta" || state === "streaming" || state === "in_progress") {
287
- const previousText = chatBuffers.get(runId) ?? "";
302
+ const previousText = chatBuffers.get(providerRunId) ?? "";
288
303
  const bufferedText = appendUniqueSuffix(previousText, currentText);
289
- chatBuffers.set(runId, bufferedText);
304
+ chatBuffers.set(providerRunId, bufferedText);
290
305
  if (role === "assistant" && bufferedText.trim()) {
291
306
  realtimePayload = resolvedSessionKey
292
307
  ? mergeCanonicalChatPayload(normalizedPayload, buildMobileAssistantDeltaPayload({
293
- run: { runId, sessionKey: resolvedSessionKey },
308
+ run: { runId: canonicalRunId, sessionKey: resolvedSessionKey },
294
309
  seq: resolveChatPayloadSeq(normalizedPayload),
295
310
  timestampMs: resolveChatPayloadTimestamp(normalizedPayload),
296
311
  delta: bufferedText,
@@ -300,10 +315,10 @@ export async function runRelayManager(opts) {
300
315
  }
301
316
  }
302
317
  else if (state === "error" || state === "failed" || state === "fail" || state === "aborted") {
303
- chatBuffers.delete(runId);
318
+ chatBuffers.delete(providerRunId);
304
319
  if (role === "assistant" && resolvedSessionKey) {
305
320
  realtimePayload = mergeCanonicalChatPayload(normalizedPayload, buildMobileAssistantErrorPayload({
306
- run: { runId, sessionKey: resolvedSessionKey },
321
+ run: { runId: canonicalRunId, sessionKey: resolvedSessionKey },
307
322
  errorMessage: extractChatErrorMessage(normalizedPayload),
308
323
  includeTimelineEvents: true,
309
324
  }));
@@ -312,18 +327,18 @@ export async function runRelayManager(opts) {
312
327
  }
313
328
  if (state === "final" && resolvedSessionKey) {
314
329
  scheduleContextUsageRefresh(resolvedSessionKey, 450);
315
- const bufferedText = runId ? chatBuffers.get(runId) ?? "" : "";
330
+ const bufferedText = providerRunId ? chatBuffers.get(providerRunId) ?? "" : "";
316
331
  const resolvedText = currentText || bufferedText;
317
- if (runId) {
318
- chatBuffers.delete(runId);
332
+ if (providerRunId) {
333
+ chatBuffers.delete(providerRunId);
319
334
  }
320
335
  if (resolvedText.trim()) {
321
- if (runId) {
322
- chatRunContexts.delete(runId);
336
+ if (providerRunId) {
337
+ chatRunContexts.delete(providerRunId);
323
338
  }
324
- const outgoingPayload = runId
339
+ const outgoingPayload = providerRunId
325
340
  ? mergeCanonicalChatPayload(normalizedPayload, buildMobileAssistantFinalPayload({
326
- run: { runId, sessionKey: resolvedSessionKey },
341
+ run: { runId: canonicalRunId, sessionKey: resolvedSessionKey },
327
342
  text: resolvedText,
328
343
  contentBlocks: nonTextContentBlocks(normalizedPayload),
329
344
  includeTimelineEvents: true,
@@ -343,13 +358,13 @@ export async function runRelayManager(opts) {
343
358
  const retryHistory = await withTimeout(fetchHistory(), CHAT_HISTORY_FETCH_TIMEOUT_MS, "chat.history retry");
344
359
  outcome = runContext ? extractHistoryOutcome(retryHistory, runContext) : null;
345
360
  }
346
- if (runId && outcome) {
347
- chatRunContexts.delete(runId);
361
+ if (providerRunId && outcome) {
362
+ chatRunContexts.delete(providerRunId);
348
363
  }
349
364
  if (outcome?.kind === "final") {
350
- const basePayload = runId
365
+ const basePayload = providerRunId
351
366
  ? buildMobileAssistantFinalPayload({
352
- run: { runId, sessionKey: resolvedSessionKey },
367
+ run: { runId: canonicalRunId, sessionKey: resolvedSessionKey },
353
368
  text: outcome.text,
354
369
  contentBlocks: nonTextContentBlocksFromHistory(outcome.message),
355
370
  includeTimelineEvents: true,
@@ -361,9 +376,9 @@ export async function runRelayManager(opts) {
361
376
  return;
362
377
  }
363
378
  if (outcome?.kind === "error") {
364
- const outgoingPayload = runId
379
+ const outgoingPayload = providerRunId
365
380
  ? mergeCanonicalChatPayload(normalizedPayload, buildMobileAssistantErrorPayload({
366
- run: { runId, sessionKey: resolvedSessionKey },
381
+ run: { runId: canonicalRunId, sessionKey: resolvedSessionKey },
367
382
  errorMessage: outcome.errorMessage,
368
383
  includeTimelineEvents: true,
369
384
  }))
@@ -375,24 +390,24 @@ export async function runRelayManager(opts) {
375
390
  await publishAndSendGatewayEvent(event, outgoingPayload, shouldPublishOffice);
376
391
  return;
377
392
  }
378
- if (runId && runContext) {
379
- scheduleChatHistoryFallback(runId, runContext, 0);
393
+ if (providerRunId && runContext) {
394
+ scheduleChatHistoryFallback(providerRunId, runContext, 0);
380
395
  return;
381
396
  }
382
397
  await publishAndSendGatewayEvent(event, normalizedPayload, shouldPublishOffice);
383
398
  })
384
399
  .catch((err) => {
385
400
  console.error(`[relay] chat.history fetch failed: ${err}`);
386
- if (runId && runContext) {
387
- scheduleChatHistoryFallback(runId, runContext, 0);
401
+ if (providerRunId && runContext) {
402
+ scheduleChatHistoryFallback(providerRunId, runContext, 0);
388
403
  return;
389
404
  }
390
405
  void publishAndSendGatewayEvent(event, normalizedPayload, shouldPublishOffice);
391
406
  });
392
407
  return;
393
408
  }
394
- if (runId && (state === "error" || state === "failed" || state === "fail" || state === "aborted")) {
395
- chatRunContexts.delete(runId);
409
+ if (providerRunId && (state === "error" || state === "failed" || state === "fail" || state === "aborted")) {
410
+ chatRunContexts.delete(providerRunId);
396
411
  scheduleContextUsageRefresh(p?.sessionKey, 450);
397
412
  }
398
413
  void publishAndSendGatewayEvent(event, realtimePayload, shouldPublishOffice);
@@ -497,51 +512,88 @@ export async function runRelayManager(opts) {
497
512
  relaySecret: opts.relaySecret,
498
513
  })
499
514
  : rawCommandParams;
500
- const params = canonicalizeRelayParams(commandMethod, preparedParams, sessionDefaults);
515
+ const providerIdentifiedParams = restoreOpenClawProviderRunIdForCommand(commandMethod, preparedParams, opts.gatewayId, openClawChatRunIdentities);
516
+ const params = canonicalizeRelayParams(commandMethod, providerIdentifiedParams, sessionDefaults);
501
517
  if (!gatewayClient && commandMethod !== "chat.history") {
502
518
  throw new Error("gateway not connected");
503
519
  }
520
+ const paramsRecord = params && typeof params === "object" && !Array.isArray(params)
521
+ ? params
522
+ : undefined;
523
+ const registerIdentity = (result) => {
524
+ const resultRecord = result && typeof result === "object" && !Array.isArray(result)
525
+ ? result
526
+ : undefined;
527
+ const providerRunId = typeof resultRecord?.runId === "string" && resultRecord.runId.trim().length > 0
528
+ ? resultRecord.runId.trim()
529
+ : requestId;
530
+ const canonicalRunId = commandMethod === "chat.send"
531
+ ? normalizeOpenClawMobileRunId(paramsRecord?.idempotencyKey)
532
+ ?? normalizeOpenClawMobileRunId(voiceInputRun?.runId)
533
+ ?? providerRunId
534
+ : providerRunId;
535
+ if ((commandMethod !== "chat.send" && commandMethod !== "agent") || !providerRunId || !canonicalRunId) {
536
+ return undefined;
537
+ }
538
+ const identity = {
539
+ gatewayId: opts.gatewayId,
540
+ providerRunId,
541
+ canonicalRunId,
542
+ sessionKey: typeof paramsRecord?.sessionKey === "string" && paramsRecord.sessionKey.trim().length > 0
543
+ ? paramsRecord.sessionKey.trim()
544
+ : sessionDefaults.mainSessionKey,
545
+ promptText: typeof paramsRecord?.message === "string" && paramsRecord.message.trim().length > 0
546
+ ? paramsRecord.message.trim()
547
+ : undefined,
548
+ };
549
+ openClawChatRunIdentities.register(identity);
550
+ chatRunContexts.set(identity.providerRunId, identity);
551
+ return identity;
552
+ };
553
+ let identity;
504
554
  const result = commandMethod === "chat.history"
505
555
  ? await requestChatHistoryFromClawConnect(params)
506
- : await gatewayClient.request(commandMethod, params);
507
- return { params, result };
556
+ : await gatewayClient.request(commandMethod, params, {
557
+ // response 帧内同步登记,保证紧随其后的首个 delta 已能解析 canonical 身份。
558
+ onResponse: (response) => {
559
+ identity = registerIdentity(response);
560
+ },
561
+ });
562
+ identity ??= registerIdentity(result);
563
+ return { params, result, identity };
508
564
  };
509
565
  const commandExecution = chatSendIdempotencyRequest
510
566
  ? openClawChatSendIdempotency.execute(chatSendIdempotencyRequest, executeCommand)
511
567
  : { status: "started", promise: executeCommand() };
512
568
  commandExecution.promise
513
- .then(async ({ params, result }) => {
569
+ .then(async ({ params, result, identity }) => {
570
+ const paramsRecord = params && typeof params === "object" && !Array.isArray(params)
571
+ ? params
572
+ : undefined;
573
+ const resultRecord = result && typeof result === "object" && !Array.isArray(result)
574
+ ? result
575
+ : undefined;
576
+ const providerRunId = typeof resultRecord?.runId === "string" && resultRecord.runId.trim().length > 0
577
+ ? resultRecord.runId.trim()
578
+ : requestId;
579
+ const canonicalRunId = commandMethod === "chat.send"
580
+ ? normalizeOpenClawMobileRunId(paramsRecord?.idempotencyKey)
581
+ ?? normalizeOpenClawMobileRunId(voiceInputRun?.runId)
582
+ ?? providerRunId
583
+ : providerRunId;
514
584
  if (commandExecution.status === "started") {
515
- const paramsRecord = params && typeof params === "object" && !Array.isArray(params)
516
- ? params
517
- : undefined;
518
585
  const chatSendDedupeRequest = commandMethod === "chat.send"
519
586
  ? chatSendDedupe.buildRequest(paramsRecord)
520
587
  : undefined;
521
588
  if ((commandMethod === "chat.send" || commandMethod === "agent") && params && typeof params === "object" && !Array.isArray(params)) {
522
- const paramsRecord = params;
523
- const sessionKey = typeof paramsRecord.sessionKey === "string" && paramsRecord.sessionKey.trim().length > 0
589
+ const sessionKey = typeof paramsRecord?.sessionKey === "string" && paramsRecord.sessionKey.trim().length > 0
524
590
  ? paramsRecord.sessionKey.trim()
525
591
  : sessionDefaults.mainSessionKey;
526
- const resultRecord = result && typeof result === "object" && !Array.isArray(result)
527
- ? result
528
- : undefined;
529
- const runId = typeof resultRecord?.runId === "string" && resultRecord.runId.trim().length > 0
530
- ? resultRecord.runId.trim()
531
- : requestId;
532
- if (runId) {
533
- const promptText = typeof paramsRecord.message === "string" && paramsRecord.message.trim().length > 0
534
- ? paramsRecord.message.trim()
535
- : undefined;
536
- const runContext = {
537
- sessionKey,
538
- requestedAtMs: Date.now(),
539
- promptText,
540
- };
541
- scheduleChatHistoryFallback(runId, runContext);
592
+ if (providerRunId && identity) {
593
+ scheduleChatHistoryFallback(providerRunId, identity);
542
594
  }
543
595
  if (commandMethod === "chat.send" && chatSendDedupeRequest) {
544
- chatSendDedupe.register(chatSendDedupeRequest, runId);
596
+ chatSendDedupe.register(chatSendDedupeRequest, providerRunId);
545
597
  }
546
598
  // Let a model switch settle before publishing context usage again.
547
599
  // Forced refreshes can replay a stale model snapshot and overwrite the new selection.
@@ -549,7 +601,10 @@ export async function runRelayManager(opts) {
549
601
  }
550
602
  }
551
603
  if (requestId) {
552
- const responsePayload = await relayOutgoingMediaForResponse(commandMethod, result);
604
+ const externallyIdentifiedResult = commandMethod === "chat.send" && canonicalRunId
605
+ ? canonicalizeOpenClawChatSendResult(result, canonicalRunId)
606
+ : result;
607
+ const responsePayload = await relayOutgoingMediaForResponse(commandMethod, externallyIdentifiedResult);
553
608
  send({ type: "res", id: requestId, ok: true, payload: responsePayload });
554
609
  }
555
610
  })
@@ -1 +1 @@
1
- {"version":3,"file":"relay-manager.js","sourceRoot":"","sources":["../../src/openclaw/relay-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,aAAa,EACb,qBAAqB,GACtB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EACL,gCAAgC,EAChC,4BAA4B,EAC5B,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,6BAA6B,GAE9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,qBAAqB,EACrB,sCAAsC,EACtC,iCAAiC,EACjC,WAAW,GAGZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iCAAiC,GAClC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,gCAAgC,GACjC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,+BAA+B,EAC/B,wBAAwB,GACzB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,mCAAmC,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AACnH,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EACL,sCAAsC,EACtC,kCAAkC,EAClC,oCAAoC,EACpC,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAM/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EACL,qBAAqB,EACrB,mCAAmC,EACnC,gCAAgC,EAChC,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EACzB,+BAA+B,EAC/B,oBAAoB,EACpB,+BAA+B,EAC/B,qBAAqB,EACrB,2BAA2B,EAC3B,sCAAsC,GACvC,MAAM,0CAA0C,CAAC;AAOlD,kDAAkD;AAClD,MAAM,2BAA2B,GAAG,IAAI,wBAAwB,EAAgC,CAAC;AAEjG,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,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,aAAa,GAAiC,IAAI,CAAC;QACvD,IAAI,eAAe,GAA2B,EAAE,GAAG,gCAAgC,EAAE,CAAC;QACtF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAyC,CAAC;QACvE,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;QAC1D,MAAM,cAAc,GAAG,IAAI,iCAAiC,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;QACpF,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAA4B,CAAC;QACrE,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAyC,CAAC;QAC/E,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE3D,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAQ,EAAE;YAChD,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,2BAA2B,GAAG,KAAK,EAAE,UAAkB,EAAE,KAAK,GAAG,KAAK,EAAiB,EAAE;YAC7F,MAAM,oBAAoB,GAAG,sBAAsB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;YACjF,IAAI,OAAO,oBAAoB,KAAK,QAAQ,IAAI,oBAAoB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzF,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC;YAC9F,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,KAAK,IAAI,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,WAAW,EAAE,CAAC;gBAChF,OAAO;YACT,CAAC;YACD,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAE/D,IAAI,CAAC;gBACH,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE;oBACP,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY;oBAC5D,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,cAAc,EAAE,QAAQ,CAAC,YAAY;iBACtC;aACF,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,2BAA2B,GAAG,CAAC,UAA8B,EAAE,OAAO,GAAG,GAAG,EAAE,KAAK,GAAG,KAAK,EAAQ,EAAE;YACzG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,MAAM,oBAAoB,GAAG,sBAAsB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;YACjF,IAAI,OAAO,oBAAoB,KAAK,QAAQ,IAAI,oBAAoB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzF,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,YAAY,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;YAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAClC,KAAK,2BAA2B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC3D,OAAO,CAAC,IAAI,CAAC,uDAAuD,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC/F,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,OAAO,CAAC,CAAC;YACZ,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YAChB,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,MAAM,2BAA2B,GAAG,CAAC,KAAa,EAAE,OAAuB,EAAE,OAAO,GAAG,CAAC,EAAQ,EAAE;YAChG,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAClC,OAAO;YACT,CAAC;YACD,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACpC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5B,OAAO;gBACT,CAAC;gBACD,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,iCAAiC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBACnF,WAAW,CAAC,YAAY,EAAE,EAAE,6BAA6B,EAAE,uBAAuB,CAAC;qBAChF,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;oBACtB,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACxD,IAAI,CAAC,OAAO,IAAI,OAAO,GAAG,kCAAkC,EAAE,CAAC;wBAC7D,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;wBACzD,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC5B,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC9B,OAAO;oBACT,CAAC;oBACD,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBACzB,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC9B,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC7B,MAAM,WAAW,GAAG,gCAAgC,CAAC;4BACnD,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;4BAC9C,IAAI,EAAE,OAAO,CAAC,IAAI;4BAClB,qBAAqB,EAAE,IAAI;yBAC5B,CAAC,CAAC;wBACH,MAAM,0BAA0B,CAC9B,MAAM,EACN,mCAAmC,CAAC,WAAW,EAAE,OAAO,CAAC,EACzD,IAAI,EACJ,OAAO,CAAC,UAAU,CACnB,CAAC;wBACF,OAAO;oBACT,CAAC;oBACD,MAAM,0BAA0B,CAC9B,MAAM,EACN,gCAAgC,CAAC;wBAC/B,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;wBAC9C,YAAY,EAAE,OAAO,CAAC,YAAY;wBAClC,qBAAqB,EAAE,IAAI;qBAC5B,CAAC,EACF,IAAI,CACL,CAAC;gBACJ,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACb,IAAI,OAAO,GAAG,kCAAkC,EAAE,CAAC;wBACjD,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;wBACzD,OAAO;oBACT,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,8CAA8C,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACpF,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5B,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;YACP,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC;YAClG,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YAChB,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC;QAEF,MAAM,sBAAsB,GAAG,KAAK,IAAmB,EAAE;YACvD,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBAC9D,MAAM,YAAY,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;gBAC5D,IAAI,YAAY,EAAE,CAAC;oBACjB,eAAe,GAAG,YAAY,CAAC;gBACjC,CAAC;gBACD,2BAA2B,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACxE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,4CAA4C,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC,CAAC;QAEF,SAAS,IAAI,CAAC,GAA0B;YACtC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;QAED,KAAK,UAAU,0BAA0B,CACvC,SAAiB,EACjB,OAAgB,EAChB,aAAsB,EACtB,WAAoB;YAEpB,MAAM,eAAe,GAAG,SAAS,KAAK,MAAM;gBAC1C,CAAC,CAAC,MAAM,2BAA2B,CAAC,OAAO,EAAE;oBACzC,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,iBAAiB,EAAE,UAAU;oBAC7B,KAAK,EAAE,wBAAwB;oBAC/B,WAAW;iBACZ,CAAC;gBACJ,CAAC,CAAC,OAAO,CAAC;YACZ,IAAI,aAAa,EAAE,CAAC;gBAClB,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,KAAK,UAAU,6BAA6B,CAAC,MAAc,EAAE,OAAgB;YAC3E,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;gBAC9B,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,OAAO,mCAAmC,CAAC,OAAO,EAAE;gBAClD,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,iBAAiB,EAAE,UAAU;gBAC7B,KAAK,EAAE,wBAAwB;aAChC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,UAAU,iCAAiC,CAAC,MAAe;YAC9D,IAAI,CAAC;gBACH,MAAM,cAAc,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBACrD,MAAM,iBAAiB,GAAG,MAAM,iCAAiC,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;gBAC3F,IAAI,iBAAiB,EAAE,CAAC;oBACtB,OAAO,iBAAiB,CAAC;gBAC3B,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,gDAAgD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,OAAO,qBAAqB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,CAAC,sCAAsC,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC;gBACrE,OAAO,qBAAqB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,OAAO,CACzC,cAAc,EACd,gCAAgC,CAAC,MAAM,EAAE,eAAe,CAAC,CAC1D,CAAC;YACF,OAAO,sCAAsC,CAAC,OAAO,CAAC,CAAC;QACzD,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,WAAW,EAAE,EAAE,CAAC;YACrB,IAAI,CACF,sBAAsB,CAAC;gBACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,YAAY,EAAE,OAAO;gBACrB,YAAY,EAAE,0BAA0B,CAAC,UAAU,CAAC;aACrD,CAAC,CACH,CAAC;YAEF,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;oBACpC,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,EAAE;wBAC/C,UAAU,EAAE,eAAe,CAAC,cAAc;qBAC3C,CAAC,CAAC;oBACH,KAAK,sBAAsB,EAAE,CAAC;gBAChC,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;oBAC/C,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,EAAE;wBAClD,MAAM;qBACP,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;oBAC1B,MAAM,iBAAiB,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC1F,MAAM,mBAAmB,GAAG,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,eAAe,CAAC;oBAC/F,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;wBACrB,MAAM,CAAC,GAAG,iBAA4D,CAAC;wBACvE,MAAM,KAAK,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;wBACpD,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;wBACzH,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBAClE,MAAM,kBAAkB,GAAG,UAAU,IAAI,UAAU,EAAE,UAAU,CAAC;wBAChE,MAAM,WAAW,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;wBACvD,MAAM,IAAI,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;wBAChD,IAAI,eAAe,GAAG,iBAAiB,CAAC;wBAExC,IAAI,KAAK,EAAE,CAAC;4BACV,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gCAC5G,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;4BAC5C,CAAC;4BACD,IAAI,IAAI,KAAK,WAAW,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,CAAC,EAAE,CAAC;gCACpI,iBAAiB,CAAC,KAAK,CAAC,CAAC;4BAC3B,CAAC;4BACD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;gCAC1E,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gCAClD,MAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;gCACnE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gCACrC,IAAI,IAAI,KAAK,WAAW,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;oCAChD,eAAe,GAAG,kBAAkB;wCAClC,CAAC,CAAC,yBAAyB,CACvB,iBAAiB,EACjB,gCAAgC,CAAC;4CAC/B,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE;4CAC9C,GAAG,EAAE,qBAAqB,CAAC,iBAAiB,CAAC;4CAC7C,WAAW,EAAE,2BAA2B,CAAC,iBAAiB,CAAC;4CAC3D,KAAK,EAAE,YAAY;4CACnB,qBAAqB,EAAE,IAAI;yCAC5B,CAAC,CACH;wCACH,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;gCACvD,CAAC;4BACH,CAAC;iCAAM,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gCAC9F,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gCAC1B,IAAI,IAAI,KAAK,WAAW,IAAI,kBAAkB,EAAE,CAAC;oCAC/C,eAAe,GAAG,yBAAyB,CACzC,iBAAiB,EACjB,gCAAgC,CAAC;wCAC/B,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE;wCAC9C,YAAY,EAAE,uBAAuB,CAAC,iBAAiB,CAAC;wCACxD,qBAAqB,EAAE,IAAI;qCAC5B,CAAC,CACH,CAAC;gCACJ,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,IAAI,KAAK,KAAK,OAAO,IAAI,kBAAkB,EAAE,CAAC;4BAC5C,2BAA2B,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;4BACrD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC/D,MAAM,YAAY,GAAG,WAAW,IAAI,YAAY,CAAC;4BACjD,IAAI,KAAK,EAAE,CAAC;gCACV,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC5B,CAAC;4BACD,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;gCACxB,IAAI,KAAK,EAAE,CAAC;oCACV,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gCAChC,CAAC;gCACD,MAAM,eAAe,GAAG,KAAK;oCAC3B,CAAC,CAAC,yBAAyB,CACvB,iBAAiB,EACjB,gCAAgC,CAAC;wCAC/B,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE;wCAC9C,IAAI,EAAE,YAAY;wCAClB,aAAa,EAAE,oBAAoB,CAAC,iBAAiB,CAAC;wCACtD,qBAAqB,EAAE,IAAI;wCAC3B,GAAG,+BAA+B,CAAC,iBAAiB,CAAC;qCACtD,CAAC,CACH;oCACH,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;gCACrD,KAAK,0BAA0B,CAAC,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;gCACrG,OAAO;4BACT,CAAC;4BAED,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,iCAAiC,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;4BACnF,WAAW,CAAC,YAAY,EAAE,EAAE,6BAA6B,EAAE,cAAc,CAAC;iCACvE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gCACtB,IAAI,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gCAC7E,+EAA+E;gCAC/E,IAAI,CAAC,OAAO,EAAE,CAAC;oCACb,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAC,CAAC;oCACvF,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,EAAE,6BAA6B,EAAE,oBAAoB,CAAC,CAAC;oCAC5G,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gCAChF,CAAC;gCACD,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;oCACrB,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gCAChC,CAAC;gCACD,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;oCAC9B,MAAM,WAAW,GAAG,KAAK;wCACvB,CAAC,CAAC,gCAAgC,CAAC;4CAC/B,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE;4CAC9C,IAAI,EAAE,OAAO,CAAC,IAAI;4CAClB,aAAa,EAAE,+BAA+B,CAAC,OAAO,CAAC,OAAO,CAAC;4CAC/D,qBAAqB,EAAE,IAAI;4CAC3B,GAAG,+BAA+B,CAAC,iBAAiB,CAAC;yCACtD,CAAC;wCACJ,CAAC,CAAC,iBAAiB,CAAC;oCACtB,MAAM,eAAe,GAAG,mCAAmC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;oCAClF,MAAM,0BAA0B,CAAC,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;oCACtG,OAAO;gCACT,CAAC;gCACD,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;oCAC9B,MAAM,eAAe,GAAG,KAAK;wCAC3B,CAAC,CAAC,yBAAyB,CACvB,iBAAiB,EACjB,gCAAgC,CAAC;4CAC/B,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE;4CAC9C,YAAY,EAAE,OAAO,CAAC,YAAY;4CAClC,qBAAqB,EAAE,IAAI;yCAC5B,CAAC,CACH;wCACH,CAAC,CAAC;4CACE,GAAI,iBAA6C;4CACjD,KAAK,EAAE,OAAO;4CACd,YAAY,EAAE,OAAO,CAAC,YAAY;yCACnC,CAAC;oCACN,MAAM,0BAA0B,CAAC,KAAK,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;oCAC9E,OAAO;gCACT,CAAC;gCACD,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;oCACxB,2BAA2B,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oCAClD,OAAO;gCACT,CAAC;gCACD,MAAM,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;4BAClF,CAAC,CAAC;iCACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gCACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;gCAC3D,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;oCACxB,2BAA2B,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oCAClD,OAAO;gCACT,CAAC;gCACD,KAAK,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;4BACjF,CAAC,CAAC,CAAC;4BACL,OAAO;wBACT,CAAC;wBAED,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC;4BAClG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC9B,2BAA2B,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;wBAClD,CAAC;wBACD,KAAK,0BAA0B,CAAC,KAAK,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;wBAC7E,OAAO;oBACT,CAAC;oBACD,KAAK,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;gBACjF,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,SAA6B,CAAC;YAClC,IAAI,YAAgC,CAAC;YACrC,IAAI,aAAgE,CAAC;YACrE,IAAI,CAAC;gBACL,MAAM,GAAG,GAAG,eAAe,CAA0B,GAAG,CAAC,CAAC;gBAC1D,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,OAAO;gBACT,CAAC;gBAED,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC7B,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;oBAC5B,OAAO;gBACT,CAAC;gBAED,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACzB,OAAO;gBACT,CAAC;gBAED,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM;oBAAE,OAAO;gBAE9C,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC;gBACnB,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC;gBAE1B,uDAAuD;gBACvD,MAAM,eAAe,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBACtE,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;oBACrC,IAAI,SAAS,EAAE,CAAC;wBACd,IAAI,CAAC;4BACH,IAAI,EAAE,KAAK;4BACX,EAAE,EAAE,SAAS;4BACb,EAAE,EAAE,MAAM,CAAC,EAAE;4BACb,GAAG,CAAC,MAAM,CAAC,EAAE;gCACX,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;gCAC7B,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;yBAC1C,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,2DAA2D;gBAC3D,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;oBACnE,SAAS;oBACT,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;iBACrC,CAAC,CAAC;gBACH,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBACzB,IAAI,SAAS,EAAE,CAAC;wBACd,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;4BACnB,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC/E,CAAC;6BAAM,CAAC;4BACN,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;wBACzF,CAAC;oBACH,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,IAAI,GAAG,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;oBACrC,MAAM,UAAU,GAAG,MAAM,gCAAgC,CAAC,GAAG,CAAC,MAAM,EAAE;wBACpE,SAAS;wBACT,eAAe;qBAChB,CAAC,CAAC;oBACH,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC;oBAC/B,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;oBAC/B,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;gBACjC,CAAC;gBAED,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC;gBACjC,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC;gBACpC,MAAM,eAAe,GAAG,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;oBAClH,CAAC,CAAE,gBAA4C;oBAC/C,CAAC,CAAC,SAAS,CAAC;gBACd,MAAM,aAAa,GAAG,OAAO,eAAe,EAAE,UAAU,KAAK,QAAQ,IAAI,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE;oBACxG,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE;oBACnC,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC;gBACnC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;gBACpF,MAAM,0BAA0B,GAAG,aAAa,KAAK,WAAW,IAAI,eAAe;oBACjF,CAAC,CAAC,+BAA+B,CAAC;wBAChC,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,UAAU,EAAE,OAAO,oBAAoB,KAAK,QAAQ,IAAI,oBAAoB,CAAC,IAAI,EAAE;4BACjF,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE;4BAC7B,CAAC,CAAC,eAAe,CAAC,cAAc;wBAClC,cAAc,EAAE,eAAe,CAAC,cAAc;wBAC9C,OAAO,EAAE;4BACP,MAAM,EAAE,WAAW;4BACnB,MAAM,EAAE;gCACN,GAAG,eAAe;gCAClB,UAAU,EAAE,oBAAoB;6BACjC;yBACF;qBACF,CAAC;oBACF,CAAC,CAAC,SAAS,CAAC;gBAEd,MAAM,cAAc,GAAG,KAAK,IAA2C,EAAE;oBACvE,MAAM,cAAc,GAAG,aAAa,KAAK,WAAW;wBAClD,CAAC,CAAC,MAAM,qBAAqB,CAAC,gBAAgB,EAAE;4BAC9C,cAAc,EAAE,IAAI,CAAC,cAAc;4BACnC,WAAW,EAAE,IAAI,CAAC,WAAW;yBAC9B,CAAC;wBACF,CAAC,CAAC,gBAAgB,CAAC;oBACrB,MAAM,MAAM,GAAG,uBAAuB,CAAC,aAAa,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;oBACvF,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,cAAc,EAAE,CAAC;wBACvD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBAC3C,CAAC;oBACD,MAAM,MAAM,GAAG,aAAa,KAAK,cAAc;wBAC7C,CAAC,CAAC,MAAM,iCAAiC,CAAC,MAAM,CAAC;wBACjD,CAAC,CAAC,MAAM,aAAc,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;oBACxD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBAC5B,CAAC,CAAC;gBACF,MAAM,gBAAgB,GAAG,0BAA0B;oBACjD,CAAC,CAAC,2BAA2B,CAAC,OAAO,CAAC,0BAA0B,EAAE,cAAc,CAAC;oBACjF,CAAC,CAAC,EAAE,MAAM,EAAE,SAAkB,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC;gBAE9D,gBAAgB,CAAC,OAAO;qBACrB,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;oBACjC,IAAI,gBAAgB,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC1C,MAAM,YAAY,GAChB,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;4BAC5D,CAAC,CAAE,MAAkC;4BACrC,CAAC,CAAC,SAAS,CAAC;wBAChB,MAAM,qBAAqB,GAAG,aAAa,KAAK,WAAW;4BACzD,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC;4BAC3C,CAAC,CAAC,SAAS,CAAC;wBACd,IAAI,CAAC,aAAa,KAAK,WAAW,IAAI,aAAa,KAAK,OAAO,CAAC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;4BACnI,MAAM,YAAY,GAAG,MAAiC,CAAC;4BACvD,MAAM,UAAU,GACd,OAAO,YAAY,CAAC,UAAU,KAAK,QAAQ,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;gCACtF,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE;gCAChC,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC;4BACrC,MAAM,YAAY,GAAG,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gCACjF,CAAC,CAAE,MAAkC;gCACrC,CAAC,CAAC,SAAS,CAAC;4BACd,MAAM,KAAK,GACT,OAAO,YAAY,EAAE,KAAK,KAAK,QAAQ,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;gCAC7E,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE;gCAC3B,CAAC,CAAC,SAAS,CAAC;4BAChB,IAAI,KAAK,EAAE,CAAC;gCACV,MAAM,UAAU,GACd,OAAO,YAAY,CAAC,OAAO,KAAK,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;oCAChF,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE;oCAC7B,CAAC,CAAC,SAAS,CAAC;gCAChB,MAAM,UAAU,GAAG;oCACjB,UAAU;oCACV,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;oCACzB,UAAU;iCACX,CAAC;gCACF,2BAA2B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;4BACjD,CAAC;4BACD,IAAI,aAAa,KAAK,WAAW,IAAI,qBAAqB,EAAE,CAAC;gCAC3D,cAAc,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;4BACxD,CAAC;4BACD,mEAAmE;4BACnE,sFAAsF;4BACtF,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;wBAChD,CAAC;oBACH,CAAC;oBACD,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,eAAe,GAAG,MAAM,6BAA6B,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;wBACnF,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;oBAC3E,CAAC;gBACH,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;oBACtB,OAAO,CAAC,KAAK,CAAC,6BAA6B,aAAa,OAAO,SAAS,IAAI,SAAS,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACzG,IAAI,SAAS,EAAE,CAAC;wBACd,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;oBACnF,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,OAAO,CAAC,KAAK,CAAC,6BAA6B,YAAY,IAAI,WAAW,OAAO,SAAS,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;gBACnH,MAAM,YAAY,GAAG,sBAAsB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBAC7D,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;oBAClC,IAAI,CAAC;wBACH,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,MAAM;wBACb,OAAO,EAAE,gCAAgC,CAAC;4BACxC,GAAG,EAAE,aAAa;4BAClB,YAAY,EAAE,YAAY;4BAC1B,qBAAqB,EAAE,IAAI;yBAC5B,CAAC;qBACH,CAAC,CAAC;oBACH,IAAI,SAAS,EAAE,CAAC;wBACd,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;oBACzE,CAAC;gBACH,CAAC;qBAAM,IAAI,SAAS,EAAE,CAAC;oBACrB,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,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,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC3C,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YACD,aAAa,CAAC,KAAK,EAAE,CAAC;YACtB,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC1B,KAAK,MAAM,KAAK,IAAI,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnD,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YACD,qBAAqB,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,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"}
1
+ {"version":3,"file":"relay-manager.js","sourceRoot":"","sources":["../../src/openclaw/relay-manager.ts"],"names":[],"mappings":"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"}
@@ -99,7 +99,10 @@ export function selectOpenclawBinCandidate(options) {
99
99
  const exists = options.exists ?? existsSync;
100
100
  const canRun = options.canRun ?? canRunOpenclawBin;
101
101
  const explicitBin = options.explicitBin?.trim();
102
- if (explicitBin && exists(explicitBin) && canRun(explicitBin)) {
102
+ // OPENCLAW_BIN 是运维侧的权威选择。高负载下 `--version` 探测可能瞬时超时;
103
+ // 若因此静默回退到 PATH 中另一套 OpenClaw,会对错误的 runtime 执行 start/restart。
104
+ // 显式路径只校验存在性,真实执行失败应原样暴露,不能换目标。
105
+ if (explicitBin && exists(explicitBin)) {
103
106
  return explicitBin;
104
107
  }
105
108
  const candidates = [