@inline-openclaw/inline 0.0.3 → 0.0.5

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 CHANGED
@@ -12,6 +12,9 @@ Supports:
12
12
  - Inline DMs (`ChatType=direct`)
13
13
  - Inline chats (including top-level thread-style chats) as conversations (`ChatType=group`)
14
14
  - Message replies: OpenClaw `replyToId` is mapped to Inline `replyToMsgId` (message id).
15
+ - Native media upload/send for images, videos, and documents from `mediaUrl` payloads.
16
+ - Emoji reactions via message tool actions (`react`, `reactions`).
17
+ - Reaction events on bot-authored messages are surfaced back to the agent as inbound context.
15
18
 
16
19
  Non-goals (for now):
17
20
 
@@ -44,7 +47,7 @@ openclaw plugins install --link /path/to/inline/packages/openclaw-inline
44
47
 
45
48
  ## Configure
46
49
 
47
- Channel config lives under `channels.inline` (the plugin config schema is intentionally empty).
50
+ Channel config lives under `channels.inline` (supports account settings, block streaming/chunking, and group tool policy).
48
51
 
49
52
  Plugin id is `inline` (for `plugins.entries.*`).
50
53
  If you enable explicitly, use:
@@ -67,6 +70,7 @@ channels:
67
70
 
68
71
  `baseUrl` defaults to `https://api.inline.chat`.
69
72
  `dmPolicy` defaults to `pairing` (recommended starting point).
73
+ `requireMention` defaults to `false` for groups (set `true` to require explicit mentions).
70
74
 
71
75
  Example:
72
76
 
@@ -86,11 +90,52 @@ channels:
86
90
  groupPolicy: "allowlist" # allowlist|open|disabled
87
91
  groupAllowFrom:
88
92
  - "inline:123" # or "user:123" or just "123"
89
- requireMention: true
93
+ requireMention: true # optional: default is false
94
+ replyToBotWithoutMention: true # if true, replies to bot messages can bypass mention requirement
95
+
96
+ # Inbound context history (used to build richer thread context for the agent):
97
+ historyLimit: 12 # group chats
98
+ dmHistoryLimit: 6 # direct messages
99
+
100
+ # Streaming + chunking:
101
+ mediaMaxMb: 20
102
+ blockStreaming: true
103
+ chunkMode: "newline" # length|newline
104
+ blockStreamingCoalesce:
105
+ minChars: 600
106
+ idleMs: 700
107
+ maxChars: 2200
108
+
109
+ # Group-level tool policy (for agent tool access in group sessions):
110
+ groups:
111
+ "88":
112
+ requireMention: false
113
+ tools:
114
+ allow: ["message", "web.search"]
115
+ toolsBySender:
116
+ "42":
117
+ allow: ["message"]
90
118
  ```
91
119
 
92
120
  If you set `dmPolicy: "open"`, set `allowFrom: ["*"]`.
93
121
 
122
+ ## Message Tool RPC Actions
123
+
124
+ The plugin exposes Inline RPC-backed actions through the OpenClaw `message` tool:
125
+
126
+ - `read` (read recent messages in a thread/chat)
127
+ - `search` (search messages in a thread/chat)
128
+ - `reply` (reply to any earlier message by `messageId`/`replyToId`)
129
+ - `react` (add/remove a reaction on a message via `emoji`, `messageId`, optional `remove`)
130
+ - `reactions` (list reactions on a message by `messageId`)
131
+ - `edit` (edit a message by `messageId`)
132
+ - `channel-info` (fetch thread/chat metadata)
133
+ - `channel-edit` (rename thread/chat via `title`)
134
+ - `addParticipant` (add participant by `userId`)
135
+ - `member-info` (inspect participant/user info in a thread/chat)
136
+
137
+ These actions expect a numeric Inline chat id via `to`, `chatId`, or `channelId`.
138
+
94
139
  Multi-account:
95
140
 
96
141
  ```yaml
@@ -0,0 +1,3 @@
1
+ import { type ChannelMessageActionAdapter } from "openclaw/plugin-sdk";
2
+ export declare const inlineMessageActions: ChannelMessageActionAdapter;
3
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/inline/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,2BAA2B,EAGjC,MAAM,qBAAqB,CAAA;AAwM5B,eAAO,MAAM,oBAAoB,EAAE,2BAyVlC,CAAA"}
@@ -0,0 +1,480 @@
1
+ import { jsonResult, readReactionParams, readNumberParam, readStringParam, } from "openclaw/plugin-sdk";
2
+ import { InlineSdkClient, Method } from "@inline-chat/realtime-sdk";
3
+ import { resolveInlineAccount, resolveInlineToken } from "./accounts.js";
4
+ import { normalizeInlineTarget } from "./normalize.js";
5
+ const ACTIONS = [
6
+ "reply",
7
+ "react",
8
+ "reactions",
9
+ "read",
10
+ "search",
11
+ "edit",
12
+ "channel-info",
13
+ "channel-edit",
14
+ "addParticipant",
15
+ "member-info",
16
+ ];
17
+ function normalizeChatId(raw) {
18
+ const normalized = normalizeInlineTarget(raw) ?? raw.trim();
19
+ if (!/^[0-9]+$/.test(normalized)) {
20
+ throw new Error(`inline action: invalid chat target "${raw}" (expected numeric chat id)`);
21
+ }
22
+ return normalized;
23
+ }
24
+ function readFlexibleId(params, key) {
25
+ const direct = params[key];
26
+ if (typeof direct === "bigint")
27
+ return direct.toString();
28
+ if (typeof direct === "number") {
29
+ if (!Number.isFinite(direct) || !Number.isInteger(direct))
30
+ return undefined;
31
+ return String(direct);
32
+ }
33
+ if (typeof direct === "string") {
34
+ const trimmed = direct.trim();
35
+ return trimmed || undefined;
36
+ }
37
+ return undefined;
38
+ }
39
+ function parseInlineId(raw, label) {
40
+ if (typeof raw === "bigint")
41
+ return raw;
42
+ if (typeof raw === "number") {
43
+ if (!Number.isFinite(raw) || !Number.isInteger(raw)) {
44
+ throw new Error(`inline action: invalid ${label} "${String(raw)}"`);
45
+ }
46
+ return BigInt(raw);
47
+ }
48
+ if (typeof raw === "string") {
49
+ const trimmed = raw.trim();
50
+ if (!trimmed) {
51
+ throw new Error(`inline action: missing ${label}`);
52
+ }
53
+ if (!/^[0-9]+$/.test(trimmed)) {
54
+ throw new Error(`inline action: invalid ${label} "${raw}"`);
55
+ }
56
+ return BigInt(trimmed);
57
+ }
58
+ throw new Error(`inline action: missing ${label}`);
59
+ }
60
+ function parseOptionalInlineId(raw, label) {
61
+ if (raw == null)
62
+ return undefined;
63
+ return parseInlineId(raw, label);
64
+ }
65
+ function resolveChatIdFromParams(params) {
66
+ const raw = readFlexibleId(params, "chatId") ??
67
+ readFlexibleId(params, "channelId") ??
68
+ readFlexibleId(params, "to") ??
69
+ readStringParam(params, "to");
70
+ if (!raw) {
71
+ throw new Error("inline action requires chatId/channelId/to");
72
+ }
73
+ return BigInt(normalizeChatId(raw));
74
+ }
75
+ function buildChatPeer(chatId) {
76
+ return {
77
+ type: {
78
+ oneofKind: "chat",
79
+ chat: { chatId },
80
+ },
81
+ };
82
+ }
83
+ function mapMessage(message) {
84
+ const reactions = (message.reactions?.reactions ?? []).map((reaction) => ({
85
+ emoji: reaction.emoji ?? "",
86
+ userId: String(reaction.userId),
87
+ messageId: String(reaction.messageId),
88
+ chatId: String(reaction.chatId),
89
+ date: Number(reaction.date) * 1000,
90
+ }));
91
+ return {
92
+ id: String(message.id),
93
+ fromId: String(message.fromId),
94
+ date: Number(message.date) * 1000,
95
+ text: message.message ?? "",
96
+ out: Boolean(message.out),
97
+ replyToId: message.replyToMsgId != null ? String(message.replyToMsgId) : undefined,
98
+ reactions,
99
+ };
100
+ }
101
+ async function loadMessageReactions(params) {
102
+ const result = await params.client.invokeRaw(Method.GET_CHAT_HISTORY, {
103
+ oneofKind: "getChatHistory",
104
+ getChatHistory: {
105
+ peerId: buildChatPeer(params.chatId),
106
+ offsetId: params.messageId + 1n,
107
+ limit: 8,
108
+ },
109
+ });
110
+ if (result.oneofKind !== "getChatHistory") {
111
+ throw new Error(`inline action: expected getChatHistory result, got ${String(result.oneofKind)}`);
112
+ }
113
+ const target = (result.getChatHistory.messages ?? []).find((message) => message.id === params.messageId) ?? null;
114
+ if (!target) {
115
+ return [];
116
+ }
117
+ const byEmoji = new Map();
118
+ for (const reaction of target.reactions?.reactions ?? []) {
119
+ const emoji = reaction.emoji ?? "";
120
+ if (!emoji)
121
+ continue;
122
+ const existing = byEmoji.get(emoji);
123
+ if (existing) {
124
+ existing.count += 1;
125
+ existing.userIds.push(String(reaction.userId));
126
+ continue;
127
+ }
128
+ byEmoji.set(emoji, {
129
+ emoji,
130
+ count: 1,
131
+ userIds: [String(reaction.userId)],
132
+ });
133
+ }
134
+ return Array.from(byEmoji.values());
135
+ }
136
+ async function withInlineClient(params) {
137
+ const account = resolveInlineAccount({ cfg: params.cfg, accountId: params.accountId ?? null });
138
+ if (!account.configured || !account.baseUrl) {
139
+ throw new Error(`Inline not configured for account "${account.accountId}" (missing token or baseUrl)`);
140
+ }
141
+ const token = await resolveInlineToken(account);
142
+ const client = new InlineSdkClient({
143
+ baseUrl: account.baseUrl,
144
+ token,
145
+ });
146
+ await client.connect();
147
+ try {
148
+ return await params.fn(client);
149
+ }
150
+ finally {
151
+ await client.close().catch(() => { });
152
+ }
153
+ }
154
+ function toJsonSafe(value) {
155
+ if (typeof value === "bigint")
156
+ return value.toString();
157
+ if (Array.isArray(value))
158
+ return value.map((item) => toJsonSafe(item));
159
+ if (value && typeof value === "object") {
160
+ const out = {};
161
+ for (const [key, current] of Object.entries(value)) {
162
+ out[key] = toJsonSafe(current);
163
+ }
164
+ return out;
165
+ }
166
+ return value;
167
+ }
168
+ export const inlineMessageActions = {
169
+ listActions: ({ cfg }) => {
170
+ const account = resolveInlineAccount({ cfg, accountId: null });
171
+ if (!account.enabled || !account.configured)
172
+ return [];
173
+ return [...ACTIONS];
174
+ },
175
+ supportsAction: ({ action }) => ACTIONS.includes(action),
176
+ extractToolSend: ({ args }) => {
177
+ const action = typeof args.action === "string" ? args.action.trim() : "";
178
+ if (action !== "sendMessage")
179
+ return null;
180
+ const to = typeof args.to === "string" ? args.to.trim() : "";
181
+ if (!to)
182
+ return null;
183
+ const normalized = normalizeInlineTarget(to) ?? to;
184
+ if (!/^[0-9]+$/.test(normalized))
185
+ return null;
186
+ return { to: normalized };
187
+ },
188
+ handleAction: async ({ action, params, cfg, accountId }) => {
189
+ if (action === "reply") {
190
+ const parseMarkdown = resolveInlineAccount({ cfg, accountId: accountId ?? null }).config.parseMarkdown ?? true;
191
+ return await withInlineClient({
192
+ cfg,
193
+ accountId,
194
+ fn: async (client) => {
195
+ const chatId = resolveChatIdFromParams(params);
196
+ const replyToMsgId = parseInlineId(readFlexibleId(params, "messageId") ??
197
+ readFlexibleId(params, "replyTo") ??
198
+ readFlexibleId(params, "replyToId") ??
199
+ readStringParam(params, "messageId") ??
200
+ readStringParam(params, "replyTo") ??
201
+ readStringParam(params, "replyToId", { required: true }), "messageId");
202
+ const text = readStringParam(params, "message") ??
203
+ readStringParam(params, "text", { required: true, allowEmpty: true });
204
+ const sent = await client.sendMessage({
205
+ chatId,
206
+ text,
207
+ replyToMsgId,
208
+ parseMarkdown,
209
+ });
210
+ return jsonResult({
211
+ ok: true,
212
+ chatId: String(chatId),
213
+ messageId: sent.messageId != null ? String(sent.messageId) : null,
214
+ replyToId: String(replyToMsgId),
215
+ });
216
+ },
217
+ });
218
+ }
219
+ if (action === "react") {
220
+ return await withInlineClient({
221
+ cfg,
222
+ accountId,
223
+ fn: async (client) => {
224
+ const chatId = resolveChatIdFromParams(params);
225
+ const messageId = parseInlineId(readFlexibleId(params, "messageId") ?? readStringParam(params, "messageId", { required: true }), "messageId");
226
+ const { emoji, remove, isEmpty } = readReactionParams(params, {
227
+ removeErrorMessage: "Emoji is required to remove an Inline reaction.",
228
+ });
229
+ if (isEmpty) {
230
+ throw new Error("inline action: react requires emoji");
231
+ }
232
+ if (remove) {
233
+ const result = await client.invokeRaw(Method.DELETE_REACTION, {
234
+ oneofKind: "deleteReaction",
235
+ deleteReaction: {
236
+ emoji,
237
+ peerId: buildChatPeer(chatId),
238
+ messageId,
239
+ },
240
+ });
241
+ if (result.oneofKind !== "deleteReaction") {
242
+ throw new Error(`inline action: expected deleteReaction result, got ${String(result.oneofKind)}`);
243
+ }
244
+ }
245
+ else {
246
+ const result = await client.invokeRaw(Method.ADD_REACTION, {
247
+ oneofKind: "addReaction",
248
+ addReaction: {
249
+ emoji,
250
+ messageId,
251
+ peerId: buildChatPeer(chatId),
252
+ },
253
+ });
254
+ if (result.oneofKind !== "addReaction") {
255
+ throw new Error(`inline action: expected addReaction result, got ${String(result.oneofKind)}`);
256
+ }
257
+ }
258
+ return jsonResult({
259
+ ok: true,
260
+ chatId: String(chatId),
261
+ messageId: String(messageId),
262
+ emoji,
263
+ remove,
264
+ });
265
+ },
266
+ });
267
+ }
268
+ if (action === "reactions") {
269
+ return await withInlineClient({
270
+ cfg,
271
+ accountId,
272
+ fn: async (client) => {
273
+ const chatId = resolveChatIdFromParams(params);
274
+ const messageId = parseInlineId(readFlexibleId(params, "messageId") ?? readStringParam(params, "messageId", { required: true }), "messageId");
275
+ const reactions = await loadMessageReactions({
276
+ client,
277
+ chatId,
278
+ messageId,
279
+ });
280
+ return jsonResult({
281
+ ok: true,
282
+ chatId: String(chatId),
283
+ messageId: String(messageId),
284
+ reactions,
285
+ });
286
+ },
287
+ });
288
+ }
289
+ if (action === "read") {
290
+ return await withInlineClient({
291
+ cfg,
292
+ accountId,
293
+ fn: async (client) => {
294
+ const chatId = resolveChatIdFromParams(params);
295
+ const limit = Math.max(1, Math.min(100, readNumberParam(params, "limit", { integer: true }) ?? 20));
296
+ const offsetId = parseOptionalInlineId(readFlexibleId(params, "offsetId") ?? readFlexibleId(params, "before"), "offsetId");
297
+ const result = await client.invokeRaw(Method.GET_CHAT_HISTORY, {
298
+ oneofKind: "getChatHistory",
299
+ getChatHistory: {
300
+ peerId: buildChatPeer(chatId),
301
+ ...(offsetId != null ? { offsetId } : {}),
302
+ limit,
303
+ },
304
+ });
305
+ if (result.oneofKind !== "getChatHistory") {
306
+ throw new Error(`inline action: expected getChatHistory result, got ${String(result.oneofKind)}`);
307
+ }
308
+ return jsonResult(toJsonSafe({
309
+ ok: true,
310
+ chatId: String(chatId),
311
+ messages: (result.getChatHistory.messages ?? []).map((message) => mapMessage(message)),
312
+ }));
313
+ },
314
+ });
315
+ }
316
+ if (action === "search") {
317
+ return await withInlineClient({
318
+ cfg,
319
+ accountId,
320
+ fn: async (client) => {
321
+ const chatId = resolveChatIdFromParams(params);
322
+ const query = readStringParam(params, "query") ??
323
+ readStringParam(params, "q") ??
324
+ readStringParam(params, "message", { required: true });
325
+ const limit = Math.max(1, Math.min(100, readNumberParam(params, "limit", { integer: true }) ?? 20));
326
+ const offsetId = parseOptionalInlineId(readFlexibleId(params, "offsetId"), "offsetId");
327
+ const result = await client.invokeRaw(Method.SEARCH_MESSAGES, {
328
+ oneofKind: "searchMessages",
329
+ searchMessages: {
330
+ peerId: buildChatPeer(chatId),
331
+ queries: [query],
332
+ limit,
333
+ ...(offsetId != null ? { offsetId } : {}),
334
+ },
335
+ });
336
+ if (result.oneofKind !== "searchMessages") {
337
+ throw new Error(`inline action: expected searchMessages result, got ${String(result.oneofKind)}`);
338
+ }
339
+ return jsonResult(toJsonSafe({
340
+ ok: true,
341
+ chatId: String(chatId),
342
+ query,
343
+ messages: (result.searchMessages.messages ?? []).map((message) => mapMessage(message)),
344
+ }));
345
+ },
346
+ });
347
+ }
348
+ if (action === "edit") {
349
+ return await withInlineClient({
350
+ cfg,
351
+ accountId,
352
+ fn: async (client) => {
353
+ const chatId = resolveChatIdFromParams(params);
354
+ const messageId = parseInlineId(readFlexibleId(params, "messageId") ?? readStringParam(params, "messageId", { required: true }), "messageId");
355
+ const text = readStringParam(params, "message", { required: true, allowEmpty: true });
356
+ const result = await client.invokeRaw(Method.EDIT_MESSAGE, {
357
+ oneofKind: "editMessage",
358
+ editMessage: {
359
+ messageId,
360
+ peerId: buildChatPeer(chatId),
361
+ text,
362
+ },
363
+ });
364
+ if (result.oneofKind !== "editMessage") {
365
+ throw new Error(`inline action: expected editMessage result, got ${String(result.oneofKind)}`);
366
+ }
367
+ return jsonResult(toJsonSafe({ ok: true, chatId: String(chatId), messageId: String(messageId), text }));
368
+ },
369
+ });
370
+ }
371
+ if (action === "channel-info") {
372
+ return await withInlineClient({
373
+ cfg,
374
+ accountId,
375
+ fn: async (client) => {
376
+ const chatId = resolveChatIdFromParams(params);
377
+ const result = await client.invokeRaw(Method.GET_CHAT, {
378
+ oneofKind: "getChat",
379
+ getChat: { peerId: buildChatPeer(chatId) },
380
+ });
381
+ if (result.oneofKind !== "getChat") {
382
+ throw new Error(`inline action: expected getChat result, got ${String(result.oneofKind)}`);
383
+ }
384
+ return jsonResult(toJsonSafe({
385
+ ok: true,
386
+ chatId: String(chatId),
387
+ chat: result.getChat.chat ?? null,
388
+ dialog: result.getChat.dialog ?? null,
389
+ pinnedMessageIds: (result.getChat.pinnedMessageIds ?? []).map((id) => String(id)),
390
+ }));
391
+ },
392
+ });
393
+ }
394
+ if (action === "channel-edit") {
395
+ return await withInlineClient({
396
+ cfg,
397
+ accountId,
398
+ fn: async (client) => {
399
+ const chatId = resolveChatIdFromParams(params);
400
+ const title = readStringParam(params, "title") ??
401
+ readStringParam(params, "name") ??
402
+ readStringParam(params, "message", { required: true });
403
+ const result = await client.invokeRaw(Method.UPDATE_CHAT_INFO, {
404
+ oneofKind: "updateChatInfo",
405
+ updateChatInfo: {
406
+ chatId,
407
+ title,
408
+ },
409
+ });
410
+ if (result.oneofKind !== "updateChatInfo") {
411
+ throw new Error(`inline action: expected updateChatInfo result, got ${String(result.oneofKind)}`);
412
+ }
413
+ return jsonResult(toJsonSafe({
414
+ ok: true,
415
+ chatId: String(chatId),
416
+ title,
417
+ chat: result.updateChatInfo.chat ?? null,
418
+ }));
419
+ },
420
+ });
421
+ }
422
+ if (action === "addParticipant") {
423
+ return await withInlineClient({
424
+ cfg,
425
+ accountId,
426
+ fn: async (client) => {
427
+ const chatId = resolveChatIdFromParams(params);
428
+ const userId = parseInlineId(readFlexibleId(params, "userId") ??
429
+ readFlexibleId(params, "participant") ??
430
+ readFlexibleId(params, "memberId") ??
431
+ readStringParam(params, "userId", { required: true }), "userId");
432
+ const result = await client.invokeRaw(Method.ADD_CHAT_PARTICIPANT, {
433
+ oneofKind: "addChatParticipant",
434
+ addChatParticipant: {
435
+ chatId,
436
+ userId,
437
+ },
438
+ });
439
+ if (result.oneofKind !== "addChatParticipant") {
440
+ throw new Error(`inline action: expected addChatParticipant result, got ${String(result.oneofKind)}`);
441
+ }
442
+ return jsonResult(toJsonSafe({
443
+ ok: true,
444
+ chatId: String(chatId),
445
+ userId: String(userId),
446
+ participant: result.addChatParticipant.participant ?? null,
447
+ }));
448
+ },
449
+ });
450
+ }
451
+ if (action === "member-info") {
452
+ return await withInlineClient({
453
+ cfg,
454
+ accountId,
455
+ fn: async (client) => {
456
+ const chatId = resolveChatIdFromParams(params);
457
+ const userId = parseInlineId(readFlexibleId(params, "userId") ?? readStringParam(params, "userId", { required: true }), "userId");
458
+ const result = await client.invokeRaw(Method.GET_CHAT_PARTICIPANTS, {
459
+ oneofKind: "getChatParticipants",
460
+ getChatParticipants: { chatId },
461
+ });
462
+ if (result.oneofKind !== "getChatParticipants") {
463
+ throw new Error(`inline action: expected getChatParticipants result, got ${String(result.oneofKind)}`);
464
+ }
465
+ const user = (result.getChatParticipants.users ?? []).find((candidate) => candidate.id === userId) ?? null;
466
+ const participant = (result.getChatParticipants.participants ?? []).find((candidate) => candidate.userId === userId) ?? null;
467
+ return jsonResult(toJsonSafe({
468
+ ok: true,
469
+ chatId: String(chatId),
470
+ userId: String(userId),
471
+ user,
472
+ participant,
473
+ }));
474
+ },
475
+ });
476
+ }
477
+ throw new Error(`Action ${action} is not supported for provider inline.`);
478
+ },
479
+ };
480
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/inline/actions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/inline/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,eAAe,CAAA;AAgItB,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,qBAAqB,CAgMpE,CAAA"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/inline/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,eAAe,CAAA;AA0LtB,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,qBAAqB,CAyOpE,CAAA"}