@sumeai/sumeclaw 1.1.19 → 1.2.0

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.
@@ -1,621 +0,0 @@
1
- "use strict";
2
- /**
3
- * 友虾名片 OpenClaw Channel 插件 — Gateway 层
4
- *
5
- * WebSocket 连接管理:
6
- * - 出站连接到 wss://api.gixin.cc/api/channel/{registrationToken}
7
- * - 心跳保活(30s 间隔)
8
- * - 断线自动重连(指数退避,最大 60s)
9
- * - 平台下发的消息注入 OpenClaw Agent
10
- * - Agent 回复通过 WS 推回平台
11
- */
12
- var __importDefault = (this && this.__importDefault) || function (mod) {
13
- return (mod && mod.__esModule) ? mod : { "default": mod };
14
- };
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.getWebSocket = getWebSocket;
17
- exports.rememberPendingReplyContext = rememberPendingReplyContext;
18
- exports.getPendingReplyContext = getPendingReplyContext;
19
- exports.consumePendingReplyContext = consumePendingReplyContext;
20
- exports.appendPendingReplyText = appendPendingReplyText;
21
- exports.connectGateway = connectGateway;
22
- const ws_1 = __importDefault(require("ws"));
23
- const direct_dm_1 = require("openclaw/plugin-sdk/direct-dm");
24
- const runtime_js_1 = require("./runtime.js");
25
- /**
26
- * 全局 WS 管理
27
- */
28
- const wsMap = {};
29
- // const __filename = fileURLToPath(import.meta.url);
30
- // const __dirname = dirname(__filename);
31
- // const pkg = JSON.parse(readFileSync(join(__dirname, "..", "..", "package.json"), "utf-8"));
32
- // ─── 配置常量 ────────────────────────────────────────────────────────────────
33
- const DEFAULT_PLATFORM_URL = "wss://api.gixin.cc";
34
- const HEARTBEAT_MS = 30_000;
35
- const MAX_RECONNECT_MS = 60_000;
36
- const BASE_BACKOFF_MS = 1_000;
37
- // ─── 连接池 ──────────────────────────────────────────────────────────────────
38
- /** key: accountId → WebSocket */
39
- const connections = new Map();
40
- const connectingAccounts = new Set();
41
- const pendingReplyContexts = new Map();
42
- function replyContextKey(accountId, userId) {
43
- return `${accountId}:${userId}`;
44
- }
45
- function getWebSocket(accountId) {
46
- return connections.get(accountId);
47
- }
48
- function rememberPendingReplyContext(params) {
49
- const key = replyContextKey(params.accountId, params.userId);
50
- pendingReplyContexts.set(replyContextKey(params.accountId, params.userId), {
51
- requestId: params.requestId,
52
- sessionKey: params.sessionKey,
53
- stream: params.stream,
54
- accumulatedText: "",
55
- });
56
- }
57
- function getPendingReplyContext(accountId, userId) {
58
- return pendingReplyContexts.get(replyContextKey(accountId, userId));
59
- }
60
- function consumePendingReplyContext(accountId, userId) {
61
- const key = replyContextKey(accountId, userId);
62
- const ctx = pendingReplyContexts.get(key);
63
- pendingReplyContexts.delete(key);
64
- return ctx;
65
- }
66
- function appendPendingReplyText(accountId, userId, text) {
67
- const ctx = getPendingReplyContext(accountId, userId);
68
- if (!ctx)
69
- return "";
70
- if (!ctx.accumulatedText) {
71
- ctx.accumulatedText = text;
72
- }
73
- else if (text.startsWith(ctx.accumulatedText)) {
74
- ctx.accumulatedText = text;
75
- }
76
- else if (!ctx.accumulatedText.endsWith(text)) {
77
- ctx.accumulatedText += text;
78
- }
79
- return ctx.accumulatedText;
80
- }
81
- function connectGateway(opts) {
82
- const { accountId, registrationToken, api } = opts;
83
- const platformUrl = opts.platformUrl || DEFAULT_PLATFORM_URL;
84
- const existing = connections.get(accountId);
85
- if (existing &&
86
- (existing.readyState === ws_1.default.OPEN ||
87
- existing.readyState === ws_1.default.CONNECTING)) {
88
- console.log(`[sumeclaw] ♻️ reuse existing connection: ${accountId}`);
89
- return;
90
- }
91
- if (connectingAccounts.has(accountId)) {
92
- console.log(`[sumeclaw] ♻️ connection already starting: ${accountId}`);
93
- return;
94
- }
95
- let ws = null;
96
- let heartbeatTimer = null;
97
- let reconnectTimer = null;
98
- const HEARTBEAT_INTERVAL = 30_000;
99
- const RECONNECT_DELAY = 5_000;
100
- function start() {
101
- const url = `${platformUrl.replace(/\/$/, "")}/api/channel/${registrationToken}`;
102
- console.log(`[sumeclaw] 🌐 connecting -> ${url} (${accountId})`);
103
- connectingAccounts.add(accountId);
104
- ws = new ws_1.default(url);
105
- connections.set(accountId, ws);
106
- ws.on("open", () => {
107
- console.log(`[sumeclaw] ✅ connected: ${accountId}`);
108
- connectingAccounts.delete(accountId);
109
- connections.set(accountId, ws);
110
- // 🔐 上报本地插件/Agent 信息。平台端会据此刷新在线状态。
111
- ws?.send(JSON.stringify({
112
- type: "register_info",
113
- token: registrationToken,
114
- agentId: "main",
115
- version: "1.1.19",
116
- }));
117
- // ❤️ 心跳
118
- heartbeatTimer = setInterval(() => {
119
- if (ws?.readyState === ws_1.default.OPEN) {
120
- ws.send(JSON.stringify({ type: "heartbeat" }));
121
- }
122
- }, HEARTBEAT_INTERVAL);
123
- });
124
- ws.on("message", (data) => {
125
- try {
126
- const msg = JSON.parse(data.toString());
127
- // 🔍 调试
128
- console.log("[sumeclaw] 📩 message:", msg);
129
- handleMessage(msg).catch((err) => {
130
- console.error("[sumeclaw] ❌ handle message error", err);
131
- });
132
- }
133
- catch (err) {
134
- console.error("[sumeclaw] ❌ parse message error", err);
135
- }
136
- });
137
- ws.on("close", (code, reasonBuffer) => {
138
- const reason = reasonBuffer.toString();
139
- console.warn(`[sumeclaw] ⚠️ disconnected: ${accountId}`, { code, reason });
140
- cleanup();
141
- if (code === 4000 || reason.includes("replaced by a newer OpenClaw plugin connection")) {
142
- console.warn(`[sumeclaw] 🛑 connection replaced, stop reconnecting: ${accountId}`);
143
- return;
144
- }
145
- scheduleReconnect();
146
- });
147
- ws.on("error", (err) => {
148
- console.error(`[sumeclaw] ❌ ws error: ${accountId}`, err);
149
- connectingAccounts.delete(accountId);
150
- ws?.close();
151
- });
152
- }
153
- async function handleMessage(msg) {
154
- switch (msg.type) {
155
- case "heartbeat_ack":
156
- // 心跳回应
157
- break;
158
- case "hooks_agent":
159
- await handleHooksAgent(msg.payload ?? msg);
160
- break;
161
- case "message":
162
- // 👉 这里接入 OpenClaw
163
- console.log("[sumeclaw] 💬 收到消息:", msg);
164
- await dispatchToOpenClaw({
165
- agentId: msg.agentId || "main",
166
- message: msg.text || msg.message || "",
167
- messageId: msg.id || msg.messageId,
168
- sessionKey: msg.sessionKey ||
169
- `agent:${msg.agentId || "main"}:user:${msg.from || msg.userId || "unknown"}`,
170
- userId: msg.from || msg.userId || msg.senderId || "unknown",
171
- raw: msg,
172
- requestId: msg.requestId,
173
- stream: Boolean(msg.stream),
174
- });
175
- break;
176
- case "registered":
177
- console.log(`[sumeclaw] 🔐 注册成功: ${accountId}`);
178
- break;
179
- default:
180
- console.log("[sumeclaw] ❓ 未处理消息:", msg);
181
- }
182
- }
183
- async function handleHooksAgent(payload) {
184
- const meta = payload?.meta ?? {};
185
- const userId = String(meta.user_id || payload.userId || payload.from || "unknown");
186
- const agentId = String(payload.agentId || meta.agent_id || "main");
187
- const text = String(payload.message || payload.text || "");
188
- const sessionKey = payload.sessionKey || `agent:${agentId}:user:${userId}`;
189
- console.log("[sumeclaw] 🧠 hooks_agent -> OpenClaw", {
190
- accountId,
191
- agentId,
192
- sessionKey,
193
- userId,
194
- text: text.slice(0, 100),
195
- });
196
- rememberPendingReplyContext({
197
- accountId,
198
- userId,
199
- requestId: payload.requestId,
200
- sessionKey,
201
- stream: Boolean(payload.stream),
202
- });
203
- await dispatchToOpenClaw({
204
- agentId,
205
- message: text,
206
- messageId: payload.messageId || `${sessionKey}:${Date.now()}`,
207
- sessionKey,
208
- userId,
209
- raw: payload,
210
- requestId: payload.requestId,
211
- stream: Boolean(payload.stream),
212
- });
213
- }
214
- function sendAgentReply(input) {
215
- const activeWs = connections.get(accountId) ?? ws;
216
- if (!activeWs || activeWs.readyState !== ws_1.default.OPEN) {
217
- console.error("[sumeclaw] ❌ cannot send agent_reply, websocket is not open", {
218
- accountId,
219
- requestId: input.requestId,
220
- readyState: activeWs?.readyState,
221
- });
222
- return false;
223
- }
224
- activeWs.send(JSON.stringify({
225
- type: "agent_reply",
226
- requestId: input.requestId,
227
- userId: input.userId,
228
- sessionKey: input.sessionKey,
229
- text: input.text,
230
- messageId: input.messageId ?? `sumeclaw-${Date.now()}`,
231
- ok: input.ok ?? true,
232
- }));
233
- console.log("[sumeclaw] 📤 agent_reply sent", {
234
- accountId,
235
- requestId: input.requestId,
236
- userId: input.userId,
237
- textLength: input.text.length,
238
- });
239
- return true;
240
- }
241
- function sendAgentDelta(input) {
242
- const activeWs = connections.get(accountId) ?? ws;
243
- if (!activeWs || activeWs.readyState !== ws_1.default.OPEN) {
244
- console.error("[sumeclaw] ❌ cannot send agent_delta, websocket is not open", {
245
- accountId,
246
- requestId: input.requestId,
247
- readyState: activeWs?.readyState,
248
- });
249
- return false;
250
- }
251
- activeWs.send(JSON.stringify({
252
- type: "agent_delta",
253
- requestId: input.requestId,
254
- userId: input.userId,
255
- sessionKey: input.sessionKey,
256
- text: input.text,
257
- messageId: input.messageId ?? `sumeclaw-${Date.now()}`,
258
- }));
259
- console.log("[sumeclaw] 📤 agent_delta sent", {
260
- accountId,
261
- requestId: input.requestId,
262
- userId: input.userId,
263
- textLength: input.text.length,
264
- });
265
- return true;
266
- }
267
- function sendAgentDone(input) {
268
- const activeWs = connections.get(accountId) ?? ws;
269
- if (!activeWs || activeWs.readyState !== ws_1.default.OPEN) {
270
- console.error("[sumeclaw] ❌ cannot send agent_done, websocket is not open", {
271
- accountId,
272
- requestId: input.requestId,
273
- readyState: activeWs?.readyState,
274
- });
275
- return false;
276
- }
277
- activeWs.send(JSON.stringify({
278
- type: "agent_done",
279
- requestId: input.requestId,
280
- userId: input.userId,
281
- sessionKey: input.sessionKey,
282
- text: input.text,
283
- messageId: input.messageId ?? `sumeclaw-${Date.now()}`,
284
- ok: input.ok ?? true,
285
- }));
286
- console.log("[sumeclaw] 📤 agent_done sent", {
287
- accountId,
288
- requestId: input.requestId,
289
- userId: input.userId,
290
- textLength: input.text.length,
291
- });
292
- return true;
293
- }
294
- function finishStreamReply(input) {
295
- const latest = consumePendingReplyContext(accountId, input.userId);
296
- if (!latest) {
297
- console.warn("[sumeclaw] ⚠️ no pending stream context to finish", {
298
- accountId,
299
- requestId: input.requestId,
300
- userId: input.userId,
301
- });
302
- return false;
303
- }
304
- return sendAgentDone({
305
- requestId: latest.requestId ?? input.requestId,
306
- userId: input.userId,
307
- sessionKey: latest.sessionKey ?? input.sessionKey,
308
- text: latest.accumulatedText,
309
- ok: input.ok,
310
- });
311
- }
312
- function finishBufferedReply(input) {
313
- const latest = consumePendingReplyContext(accountId, input.userId);
314
- if (!latest) {
315
- console.warn("[sumeclaw] ⚠️ no pending reply context to finish", {
316
- accountId,
317
- requestId: input.requestId,
318
- userId: input.userId,
319
- });
320
- return false;
321
- }
322
- return sendAgentReply({
323
- requestId: latest.requestId ?? input.requestId,
324
- userId: input.userId,
325
- sessionKey: latest.sessionKey ?? input.sessionKey,
326
- text: latest.accumulatedText,
327
- ok: input.ok,
328
- });
329
- }
330
- async function dispatchToOpenClaw(input) {
331
- const runtime = (0, runtime_js_1.tryGetSumeclawRuntime)() ?? api?.runtime;
332
- const turn = runtime?.channel?.turn;
333
- if (!turn?.run) {
334
- const directReplyDispatcher = runtime?.channel?.reply?.dispatchReplyWithBufferedBlockDispatcher;
335
- if (directReplyDispatcher) {
336
- await dispatchViaDirectDmRuntime(runtime, input);
337
- return;
338
- }
339
- console.error("[sumeclaw] ❌ 当前 OpenClaw runtime 不提供可用的 channel 入站分发能力");
340
- console.error("[sumeclaw] runtime debug:", {
341
- hasStoredRuntime: Boolean((0, runtime_js_1.tryGetSumeclawRuntime)()),
342
- apiKeys: api ? Object.keys(api) : [],
343
- runtimeKeys: runtime ? Object.keys(runtime) : [],
344
- channelKeys: runtime?.channel ? Object.keys(runtime.channel) : [],
345
- });
346
- sendAgentReply({
347
- requestId: input.requestId,
348
- userId: input.userId,
349
- sessionKey: input.sessionKey,
350
- text: "OpenClaw 插件未获得运行时分发能力,请升级插件入口后重启 OpenClaw Gateway。",
351
- ok: false,
352
- });
353
- return;
354
- }
355
- const now = Date.now();
356
- const messageId = String(input.messageId || `${input.sessionKey}:${now}`);
357
- const senderLabel = `友虾用户 ${input.userId}`;
358
- try {
359
- const result = await turn.run({
360
- channel: "sumeclaw",
361
- accountId,
362
- raw: input.raw,
363
- adapter: {
364
- ingest() {
365
- return {
366
- id: messageId,
367
- timestamp: now,
368
- rawText: input.message,
369
- textForAgent: input.message,
370
- textForCommands: input.message,
371
- raw: input.raw,
372
- };
373
- },
374
- classify(turnInput) {
375
- return {
376
- kind: "message",
377
- canStartAgentTurn: Boolean(turnInput.rawText),
378
- };
379
- },
380
- resolveTurn(turnInput) {
381
- return {
382
- sender: {
383
- id: input.userId,
384
- name: senderLabel,
385
- displayLabel: senderLabel,
386
- isBot: false,
387
- isSelf: false,
388
- },
389
- conversation: {
390
- kind: "direct",
391
- id: input.userId,
392
- label: senderLabel,
393
- routePeer: input.userId,
394
- },
395
- route: {
396
- agentId: input.agentId,
397
- accountId,
398
- routeSessionKey: input.sessionKey,
399
- dispatchSessionKey: input.sessionKey,
400
- persistedSessionKey: input.sessionKey,
401
- mainSessionKey: input.sessionKey,
402
- createIfMissing: true,
403
- },
404
- reply: {
405
- to: input.userId,
406
- originatingTo: input.userId,
407
- replyTarget: input.userId,
408
- sourceReplyDeliveryMode: "direct",
409
- },
410
- access: {
411
- dm: {
412
- policy: "open",
413
- allowed: true,
414
- allowFrom: [],
415
- },
416
- group: {
417
- isGroup: false,
418
- routeAllowed: true,
419
- senderAllowed: true,
420
- requireMention: false,
421
- },
422
- commands: {
423
- authorized: true,
424
- },
425
- mentions: {
426
- canDetectMention: false,
427
- wasMentioned: true,
428
- },
429
- },
430
- message: {
431
- body: turnInput.rawText,
432
- rawBody: turnInput.rawText,
433
- bodyForAgent: turnInput.textForAgent,
434
- commandBody: turnInput.textForCommands,
435
- envelopeFrom: senderLabel,
436
- senderLabel,
437
- preview: turnInput.rawText.slice(0, 120),
438
- },
439
- delivery: {
440
- deliver: async (payload) => {
441
- const text = String(payload?.text || payload?.body || "");
442
- if (!text)
443
- return { visibleReplySent: false };
444
- const replyId = `sumeclaw-${Date.now()}`;
445
- if (input.stream) {
446
- appendPendingReplyText(accountId, input.userId, text);
447
- sendAgentDelta({
448
- requestId: input.requestId,
449
- userId: input.userId,
450
- sessionKey: input.sessionKey,
451
- text,
452
- messageId: replyId,
453
- });
454
- }
455
- else {
456
- appendPendingReplyText(accountId, input.userId, text);
457
- }
458
- return {
459
- messageIds: [replyId],
460
- visibleReplySent: true,
461
- };
462
- },
463
- onError(err) {
464
- console.error("[sumeclaw] ❌ deliver error", err);
465
- },
466
- },
467
- };
468
- },
469
- },
470
- });
471
- console.log("[sumeclaw] ✅ OpenClaw turn dispatched", result?.admission ?? "");
472
- if (input.stream) {
473
- finishStreamReply(input);
474
- }
475
- else {
476
- finishBufferedReply(input);
477
- }
478
- }
479
- catch (err) {
480
- console.error("[sumeclaw] ❌ OpenClaw turn dispatch failed", err);
481
- sendAgentReply({
482
- requestId: input.requestId,
483
- userId: input.userId,
484
- sessionKey: input.sessionKey,
485
- text: "OpenClaw 本地处理消息失败,请稍后再试。",
486
- ok: false,
487
- });
488
- }
489
- }
490
- async function dispatchViaDirectDmRuntime(runtime, input) {
491
- const now = Date.now();
492
- const messageId = String(input.messageId || `${input.sessionKey}:${now}`);
493
- const senderLabel = `友虾用户 ${input.userId}`;
494
- const baseCfg = api?.getConfig?.() ?? api?.config ?? runtime?.config ?? {};
495
- const cfg = input.stream
496
- ? {
497
- ...baseCfg,
498
- agents: {
499
- ...(baseCfg.agents ?? {}),
500
- defaults: {
501
- ...(baseCfg.agents?.defaults ?? {}),
502
- blockStreamingDefault: "on",
503
- blockStreamingBreak: "text_end",
504
- blockStreamingChunk: {
505
- minChars: 12,
506
- maxChars: 80,
507
- breakPreference: "sentence",
508
- ...(baseCfg.agents?.defaults?.blockStreamingChunk ?? {}),
509
- },
510
- },
511
- },
512
- channels: {
513
- ...(baseCfg.channels ?? {}),
514
- sumeclaw: {
515
- ...(baseCfg.channels?.sumeclaw ?? {}),
516
- blockStreaming: true,
517
- },
518
- },
519
- }
520
- : baseCfg;
521
- try {
522
- await (0, direct_dm_1.dispatchInboundDirectDmWithRuntime)({
523
- cfg,
524
- runtime,
525
- channel: "sumeclaw",
526
- channelLabel: "友虾名片",
527
- accountId,
528
- peer: {
529
- kind: "direct",
530
- id: input.userId,
531
- },
532
- senderId: input.userId,
533
- senderAddress: input.userId,
534
- recipientAddress: "sumeclaw",
535
- conversationLabel: senderLabel,
536
- rawBody: input.message,
537
- messageId,
538
- timestamp: now,
539
- bodyForAgent: input.message,
540
- commandBody: input.message,
541
- commandAuthorized: true,
542
- provider: "sumeclaw",
543
- surface: "sumeclaw",
544
- originatingChannel: "sumeclaw",
545
- originatingTo: input.userId,
546
- extraContext: {
547
- AccountId: accountId,
548
- RouteAgentId: input.agentId,
549
- RequestId: input.requestId,
550
- },
551
- deliver: async (payload) => {
552
- const text = String(payload?.text || payload?.body || "");
553
- if (!text)
554
- return { visibleReplySent: false };
555
- const replyId = `sumeclaw-${Date.now()}`;
556
- if (input.stream) {
557
- appendPendingReplyText(accountId, input.userId, text);
558
- sendAgentDelta({
559
- requestId: input.requestId,
560
- userId: input.userId,
561
- sessionKey: input.sessionKey,
562
- text,
563
- messageId: replyId,
564
- });
565
- }
566
- else {
567
- appendPendingReplyText(accountId, input.userId, text);
568
- }
569
- return {
570
- messageIds: [replyId],
571
- visibleReplySent: true,
572
- };
573
- },
574
- onDispatchError: (err) => {
575
- console.error("[sumeclaw] ❌ Direct DM dispatch error", err);
576
- },
577
- onRecordError: (err) => {
578
- console.error("[sumeclaw] ❌ Direct DM record error", err);
579
- },
580
- });
581
- console.log("[sumeclaw] ✅ OpenClaw Direct DM dispatched");
582
- if (input.stream) {
583
- finishStreamReply(input);
584
- }
585
- else {
586
- finishBufferedReply(input);
587
- }
588
- }
589
- catch (err) {
590
- console.error("[sumeclaw] ❌ Direct DM dispatch failed", err);
591
- sendAgentReply({
592
- requestId: input.requestId,
593
- userId: input.userId,
594
- sessionKey: input.sessionKey,
595
- text: "OpenClaw 本地处理消息失败,请稍后再试。",
596
- ok: false,
597
- });
598
- }
599
- }
600
- function cleanup() {
601
- connectingAccounts.delete(accountId);
602
- if (heartbeatTimer) {
603
- clearInterval(heartbeatTimer);
604
- heartbeatTimer = null;
605
- }
606
- if (connections.get(accountId) === ws) {
607
- connections.delete(accountId);
608
- }
609
- }
610
- function scheduleReconnect() {
611
- if (reconnectTimer)
612
- return;
613
- console.log(`[sumeclaw] 🔁 reconnecting in ${RECONNECT_DELAY / 1000}s`);
614
- reconnectTimer = setTimeout(() => {
615
- reconnectTimer = null;
616
- start();
617
- }, RECONNECT_DELAY);
618
- }
619
- start();
620
- }
621
- //# sourceMappingURL=gateway.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare function setSumeclawRuntime(runtime: any): void;
2
- export declare function tryGetSumeclawRuntime(): any;
3
- //# sourceMappingURL=runtime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,GAAG,QAE9C;AAED,wBAAgB,qBAAqB,QAEpC"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setSumeclawRuntime = setSumeclawRuntime;
4
- exports.tryGetSumeclawRuntime = tryGetSumeclawRuntime;
5
- let runtimeRef = null;
6
- function setSumeclawRuntime(runtime) {
7
- runtimeRef = runtime;
8
- }
9
- function tryGetSumeclawRuntime() {
10
- return runtimeRef;
11
- }
12
- //# sourceMappingURL=runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":";;AAEA,gDAEC;AAED,sDAEC;AARD,IAAI,UAAU,GAAQ,IAAI,CAAC;AAE3B,SAAgB,kBAAkB,CAAC,OAAY;IAC7C,UAAU,GAAG,OAAO,CAAC;AACvB,CAAC;AAED,SAAgB,qBAAqB;IACnC,OAAO,UAAU,CAAC;AACpB,CAAC"}