@clappstore/connect 0.7.16 → 0.7.17

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.
@@ -4,6 +4,10 @@ export interface AgentClientOptions {
4
4
  agentToken?: string;
5
5
  onError?: (error: Error) => void;
6
6
  }
7
+ export interface StreamUpdate {
8
+ kind: "thought" | "status";
9
+ text: string;
10
+ }
7
11
  /** Communicate with the local OpenClaw agent via ACP (Agent Client Protocol) subprocess */
8
12
  export declare class AgentClient {
9
13
  private session;
@@ -15,20 +19,24 @@ export declare class AgentClient {
15
19
  private pending;
16
20
  private started;
17
21
  private loadedSessions;
18
- /** Accumulated text chunks from agent_message_chunk notifications during an active prompt */
19
- private messageChunks;
22
+ private streamListeners;
20
23
  constructor(options: AgentClientOptions);
21
24
  /** Spawn the ACP subprocess and run the initialize + session/load handshake */
22
25
  start(): Promise<void>;
23
26
  /** Send an intent to the agent via ACP session/prompt */
24
27
  sendIntent(intent: IntentMessage): Promise<string>;
25
28
  /** Send a chat message to the agent and get a response */
26
- sendMessage(text: string, sessionKey?: string): Promise<string>;
29
+ sendMessage(text: string, sessionKey?: string, onStreamUpdate?: (update: StreamUpdate) => void): Promise<string>;
30
+ private readAssistantReplyFromSessionLog;
31
+ private isUsableCandidate;
32
+ private isControlReply;
33
+ private readLatestAssistantMessage;
27
34
  private ensureSessionLoaded;
28
35
  /** Kill the ACP subprocess */
29
36
  stop(): void;
30
37
  private spawnProcess;
31
38
  private handleLine;
39
+ private handleSessionUpdate;
32
40
  private rpc;
33
41
  }
34
42
  //# sourceMappingURL=agent-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-client.d.ts","sourceRoot":"","sources":["../src/agent-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAoBD,2FAA2F;AAC3F,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAqB;IAC3C,6FAA6F;IAC7F,OAAO,CAAC,aAAa,CAAgB;gBAEzB,OAAO,EAAE,kBAAkB;IAMvC,+EAA+E;IACzE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB5B,yDAAyD;IACnD,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAkCxD,0DAA0D;IACpD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YA0CvD,mBAAmB;IAYjC,8BAA8B;IAC9B,IAAI,IAAI,IAAI;IAmBZ,OAAO,CAAC,YAAY;IAmDpB,OAAO,CAAC,UAAU;IAoClB,OAAO,CAAC,GAAG;CAyBZ"}
1
+ {"version":3,"file":"agent-client.d.ts","sourceRoot":"","sources":["../src/agent-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAOD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,2FAA2F;AAC3F,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,eAAe,CAAqD;gBAEhE,OAAO,EAAE,kBAAkB;IAMvC,+EAA+E;IACzE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB5B,yDAAyD;IACnD,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBxD,0DAA0D;IACpD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;YA4CxG,gCAAgC;IAiB9C,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,cAAc;YAKR,0BAA0B;YA8C1B,mBAAmB;IAYjC,8BAA8B;IAC9B,IAAI,IAAI,IAAI;IAkBZ,OAAO,CAAC,YAAY;IAmDpB,OAAO,CAAC,UAAU;IA4BlB,OAAO,CAAC,mBAAmB;IA8C3B,OAAO,CAAC,GAAG;CAyBZ"}
@@ -11,8 +11,7 @@ export class AgentClient {
11
11
  pending = new Map();
12
12
  started = false;
13
13
  loadedSessions = new Set();
14
- /** Accumulated text chunks from agent_message_chunk notifications during an active prompt */
15
- messageChunks = [];
14
+ streamListeners = new Map();
16
15
  constructor(options) {
17
16
  this.session = options.session;
18
17
  this.agentToken = options.agentToken;
@@ -45,63 +44,128 @@ export class AgentClient {
45
44
  }
46
45
  await this.ensureSessionLoaded(this.session);
47
46
  const prompt = `[CLAPP_INTENT] ${intent.intent} ${JSON.stringify(intent.payload)}`;
48
- // Clear chunk buffer before sending
49
- this.messageChunks = [];
50
47
  const result = (await this.rpc("session/prompt", {
51
48
  sessionId: this.session,
52
49
  prompt: [{ type: "text", text: prompt }],
53
50
  }));
54
- // 1) Use accumulated streamed chunks (primary path per ACP protocol)
55
- const streamed = this.messageChunks.join("").trim();
56
- this.messageChunks = [];
57
- if (streamed)
58
- return streamed;
59
- // 2) Fallback: try direct RPC content (some ACP versions may include it)
51
+ // Extract text from the response
60
52
  if (result && typeof result === "object" && "content" in result) {
61
53
  const texts = (result.content ?? [])
62
54
  .map((c) => c.text)
63
55
  .filter(Boolean);
64
- const joined = texts.join("\n").trim();
65
- if (joined)
66
- return joined;
56
+ return texts.join("\n");
67
57
  }
68
58
  return "";
69
59
  }
70
60
  /** Send a chat message to the agent and get a response */
71
- async sendMessage(text, sessionKey) {
61
+ async sendMessage(text, sessionKey, onStreamUpdate) {
72
62
  if (!this.proc) {
73
63
  throw new Error("AgentClient not started — call start() first");
74
64
  }
75
65
  const targetSession = sessionKey ?? this.session;
76
66
  await this.ensureSessionLoaded(targetSession);
67
+ const sentAt = Date.now();
68
+ const before = (await this.readLatestAssistantMessage(targetSession)) ?? (await this.readLatestAssistantMessage(this.session));
77
69
  console.log(`[acp:sendMessage] Sending to session ${targetSession}: "${text.slice(0, 50)}..."`);
78
- // Clear chunk buffer before sending
79
- this.messageChunks = [];
80
- const result = (await this.rpc("session/prompt", {
81
- sessionId: targetSession,
82
- prompt: [{ type: "text", text }],
83
- }));
84
- // 1) Use accumulated streamed chunks (primary path per ACP protocol)
85
- const streamed = this.messageChunks.join("").trim();
86
- this.messageChunks = [];
87
- if (streamed) {
88
- console.log(`[acp:sendMessage] Got streamed response (${streamed.length} chars)`);
89
- return streamed;
90
- }
91
- // 2) Fallback: try direct RPC content (some ACP versions may include it)
70
+ if (onStreamUpdate) {
71
+ this.streamListeners.set(targetSession, onStreamUpdate);
72
+ }
73
+ let result = null;
74
+ try {
75
+ result = (await this.rpc("session/prompt", {
76
+ sessionId: targetSession,
77
+ prompt: [{ type: "text", text }],
78
+ }));
79
+ }
80
+ finally {
81
+ if (onStreamUpdate) {
82
+ this.streamListeners.delete(targetSession);
83
+ }
84
+ }
85
+ console.log(`[acp:sendMessage] Got result:`, JSON.stringify(result)?.slice(0, 200));
86
+ // 1) Try direct RPC content first
92
87
  if (result && typeof result === "object" && "content" in result) {
93
88
  const texts = (result.content ?? [])
94
89
  .map((c) => c.text)
95
90
  .filter(Boolean);
96
91
  const joined = texts.join("\n").trim();
97
- if (joined) {
98
- console.log(`[acp:sendMessage] Got RPC content response (${joined.length} chars)`);
92
+ if (joined && !this.isControlReply(joined))
99
93
  return joined;
100
- }
101
94
  }
102
- console.warn(`[acp:sendMessage] No response content received. Result:`, JSON.stringify(result)?.slice(0, 200));
95
+ // 2) Fallback: pull latest assistant text from session logs (target first, then base session)
96
+ return await this.readAssistantReplyFromSessionLog(targetSession, before?.text, sentAt);
97
+ }
98
+ async readAssistantReplyFromSessionLog(sessionKey, previous, sentAtMs) {
99
+ const deadline = Date.now() + 10_000;
100
+ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
101
+ while (Date.now() < deadline) {
102
+ const candidate = await this.readLatestAssistantMessage(sessionKey);
103
+ if (this.isUsableCandidate(candidate?.text, previous, sentAtMs, candidate?.timestampMs))
104
+ return candidate.text;
105
+ const fallback = await this.readLatestAssistantMessage(this.session);
106
+ if (this.isUsableCandidate(fallback?.text, previous, sentAtMs, fallback?.timestampMs))
107
+ return fallback.text;
108
+ await sleep(500);
109
+ }
103
110
  return "";
104
111
  }
112
+ isUsableCandidate(text, previous, sentAtMs, candidateTs) {
113
+ if (!text || text === previous)
114
+ return false;
115
+ if (this.isControlReply(text))
116
+ return false;
117
+ if (sentAtMs && candidateTs && candidateTs < sentAtMs - 1000)
118
+ return false;
119
+ return true;
120
+ }
121
+ isControlReply(text) {
122
+ const normalized = text.trim().toLowerCase();
123
+ return normalized.startsWith("model reset to default") || normalized.startsWith("model set to ");
124
+ }
125
+ async readLatestAssistantMessage(sessionKey) {
126
+ try {
127
+ const { homedir } = await import("node:os");
128
+ const { resolve } = await import("node:path");
129
+ const { readFile } = await import("node:fs/promises");
130
+ const sessionsPath = resolve(homedir(), ".openclaw", "agents", "main", "sessions", "sessions.json");
131
+ const sessionsRaw = await readFile(sessionsPath, "utf-8");
132
+ const sessions = JSON.parse(sessionsRaw);
133
+ const meta = sessions[sessionKey];
134
+ if (!meta?.sessionId)
135
+ return null;
136
+ const jsonlPath = resolve(homedir(), ".openclaw", "agents", "main", "sessions", `${meta.sessionId}.jsonl`);
137
+ const jsonlRaw = await readFile(jsonlPath, "utf-8");
138
+ const lines = jsonlRaw.trim().split("\n");
139
+ for (let i = lines.length - 1; i >= 0; i--) {
140
+ try {
141
+ const row = JSON.parse(lines[i]);
142
+ if (row?.type !== "message")
143
+ continue;
144
+ const msg = row?.message;
145
+ if (!msg || msg.role !== "assistant")
146
+ continue;
147
+ const parts = Array.isArray(msg.content) ? msg.content : [];
148
+ const texts = parts
149
+ .filter((p) => p?.type === "text" && typeof p?.text === "string")
150
+ .map((p) => p.text)
151
+ .filter(Boolean);
152
+ const joined = texts.join("\n").trim();
153
+ if (!joined)
154
+ continue;
155
+ const tsRaw = msg.timestamp ?? row.timestamp ?? Date.now();
156
+ const ts = typeof tsRaw === "number" ? tsRaw : Date.parse(tsRaw);
157
+ return { text: joined, timestampMs: Number.isFinite(ts) ? ts : Date.now() };
158
+ }
159
+ catch {
160
+ // ignore malformed line
161
+ }
162
+ }
163
+ }
164
+ catch (err) {
165
+ console.warn(`[acp:sendMessage] Log read failed: ${err.message}`);
166
+ }
167
+ return null;
168
+ }
105
169
  async ensureSessionLoaded(sessionId) {
106
170
  if (this.loadedSessions.has(sessionId))
107
171
  return;
@@ -116,7 +180,6 @@ export class AgentClient {
116
180
  stop() {
117
181
  this.started = false;
118
182
  this.loadedSessions.clear();
119
- this.messageChunks = [];
120
183
  this.rl?.close();
121
184
  this.rl = null;
122
185
  if (this.proc) {
@@ -181,32 +244,70 @@ export class AgentClient {
181
244
  // Not JSON — ignore
182
245
  return;
183
246
  }
184
- // Handle notifications (no id field) — capture agent_message_chunk for streamed responses
247
+ // Notification path (no request id)
185
248
  if (msg.id == null) {
186
249
  if (msg.method === "session/update") {
187
- const params = msg.params;
188
- if (params?.update?.sessionUpdate === "agent_message_chunk") {
189
- const text = params?.update?.content?.text;
190
- if (typeof text === "string") {
191
- this.messageChunks.push(text);
192
- }
193
- }
250
+ this.handleSessionUpdate(msg.params);
194
251
  }
195
252
  return;
196
253
  }
197
- const id = msg.id;
198
- const pending = this.pending.get(id);
254
+ const pending = this.pending.get(msg.id);
199
255
  if (!pending)
200
256
  return;
201
- this.pending.delete(id);
257
+ this.pending.delete(msg.id);
202
258
  if (msg.error) {
203
- const errObj = msg.error;
204
- pending.reject(new Error(errObj.message));
259
+ pending.reject(new Error(msg.error.message));
205
260
  }
206
261
  else {
207
262
  pending.resolve(msg.result);
208
263
  }
209
264
  }
265
+ handleSessionUpdate(params) {
266
+ if (!params || typeof params !== "object")
267
+ return;
268
+ const sessionId = typeof params.sessionId === "string" ? params.sessionId : undefined;
269
+ const listener = sessionId
270
+ ? this.streamListeners.get(sessionId)
271
+ : (this.streamListeners.size === 1 ? Array.from(this.streamListeners.values())[0] : undefined);
272
+ if (!listener)
273
+ return;
274
+ const update = (params.update ?? {});
275
+ const tag = typeof update.sessionUpdate === "string" ? update.sessionUpdate : "";
276
+ const getText = () => {
277
+ const content = update.content;
278
+ if (typeof content === "string")
279
+ return content;
280
+ if (content && typeof content === "object" && typeof content.text === "string") {
281
+ return content.text;
282
+ }
283
+ if (typeof update.text === "string")
284
+ return update.text;
285
+ if (typeof update.title === "string" && typeof update.status === "string")
286
+ return `${update.title} (${update.status})`;
287
+ if (typeof update.title === "string")
288
+ return update.title;
289
+ if (typeof update.summary === "string")
290
+ return update.summary;
291
+ return "";
292
+ };
293
+ const text = getText().trim();
294
+ if (!text)
295
+ return;
296
+ if (tag === "agent_thought_chunk") {
297
+ listener({ kind: "thought", text });
298
+ return;
299
+ }
300
+ if (tag === "agent_message_chunk") {
301
+ listener({ kind: "status", text: `Drafting: ${text}` });
302
+ return;
303
+ }
304
+ if (tag === "tool_call" || tag === "tool_call_update" || tag === "session_info_update" || tag === "plan") {
305
+ listener({ kind: "status", text });
306
+ return;
307
+ }
308
+ // Fallback: surface any textual update so the UI doesn't stay static.
309
+ listener({ kind: "status", text });
310
+ }
210
311
  rpc(method, params) {
211
312
  return new Promise((resolve, reject) => {
212
313
  if (!this.proc?.stdin?.writable) {
@@ -1 +1 @@
1
- {"version":3,"file":"agent-client.js","sourceRoot":"","sources":["../src/agent-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-client.js","sourceRoot":"","sources":["../src/agent-client.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,13 @@ export interface ChatHandlerOptions {
5
5
  stateDir: string;
6
6
  store: StateStore;
7
7
  agentClient: AgentClient;
8
+ titleAgentClient: AgentClient;
8
9
  }
9
10
  export declare class ChatHandler {
10
11
  private stateDir;
11
12
  private store;
12
13
  private agentClient;
14
+ private titleAgentClient;
13
15
  private sessionsDir;
14
16
  constructor(options: ChatHandlerOptions);
15
17
  /** Returns true if the intent was handled */
@@ -28,7 +30,12 @@ export declare class ChatHandler {
28
30
  private loadOlder;
29
31
  /** Delete a session */
30
32
  private deleteSession;
31
- /** Generate a title from the first message */
33
+ /** Generate a smart title using LLM based on first exchange */
34
+ private generateSessionTitle;
35
+ private persistAttachments;
36
+ private extensionForMime;
37
+ private buildPromptWithAttachments;
38
+ /** Generate a title from the first message (fallback) */
32
39
  private generateTitle;
33
40
  /** Create a new session data object */
34
41
  private createSessionData;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-handler.d.ts","sourceRoot":"","sources":["../src/chat-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;CAC1B;AA8BD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE,kBAAkB;IAUvC,6CAA6C;IAC7C,YAAY,GAAI,QAAQ,aAAa,KAAG,OAAO,CAyC7C;IAEF,4BAA4B;IAC5B,OAAO,CAAC,QAAQ;IA6BhB,2CAA2C;IAC3C,OAAO,CAAC,WAAW;IA6CnB,mDAAmD;YACrC,oBAAoB;IAsElC,2BAA2B;IAC3B,OAAO,CAAC,gBAAgB;IAmBxB,oCAAoC;IACpC,OAAO,CAAC,aAAa;IAkBrB,iDAAiD;IACjD,OAAO,CAAC,SAAS;IAmBjB,uBAAuB;IACvB,OAAO,CAAC,aAAa;IAqCrB,8CAA8C;IAC9C,OAAO,CAAC,aAAa;IAMrB,uCAAuC;IACvC,OAAO,CAAC,iBAAiB;IAYzB,wBAAwB;IACxB,OAAO,CAAC,YAAY;IAoBpB,yBAAyB;IACzB,OAAO,CAAC,YAAY;IAKpB,kEAAkE;IAClE,OAAO,CAAC,wBAAwB;IAqBhC,kCAAkC;IAClC,OAAO,CAAC,mBAAmB;IAY3B,kCAAkC;IAClC,OAAO,CAAC,mBAAmB;IAK3B,2EAA2E;IAC3E,OAAO,CAAC,wBAAwB;IAuDhC,wBAAwB;IACxB,OAAO,CAAC,eAAe;IAsCvB,0BAA0B;IAC1B,OAAO,CAAC,SAAS;CAalB"}
1
+ {"version":3,"file":"chat-handler.d.ts","sourceRoot":"","sources":["../src/chat-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,WAAW,CAAC;CAC/B;AAiDD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE,kBAAkB;IAWvC,6CAA6C;IAC7C,YAAY,GAAI,QAAQ,aAAa,KAAG,OAAO,CA4C7C;IAEF,4BAA4B;IAC5B,OAAO,CAAC,QAAQ;IA6BhB,2CAA2C;IAC3C,OAAO,CAAC,WAAW;IAiDnB,mDAAmD;YACrC,oBAAoB;IAiGlC,2BAA2B;IAC3B,OAAO,CAAC,gBAAgB;IAmBxB,oCAAoC;IACpC,OAAO,CAAC,aAAa;IAkBrB,iDAAiD;IACjD,OAAO,CAAC,SAAS;IAmBjB,uBAAuB;IACvB,OAAO,CAAC,aAAa;IAqCrB,+DAA+D;YACjD,oBAAoB;IAoDlC,OAAO,CAAC,kBAAkB;IAyC1B,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,0BAA0B;IAelC,yDAAyD;IACzD,OAAO,CAAC,aAAa;IAMrB,uCAAuC;IACvC,OAAO,CAAC,iBAAiB;IAYzB,wBAAwB;IACxB,OAAO,CAAC,YAAY;IAoBpB,yBAAyB;IACzB,OAAO,CAAC,YAAY;IAKpB,kEAAkE;IAClE,OAAO,CAAC,wBAAwB;IAqBhC,kCAAkC;IAClC,OAAO,CAAC,mBAAmB;IAY3B,kCAAkC;IAClC,OAAO,CAAC,mBAAmB;IAK3B,2EAA2E;IAC3E,OAAO,CAAC,wBAAwB;IAuDhC,wBAAwB;IACxB,OAAO,CAAC,eAAe;IAwCvB,0BAA0B;IAC1B,OAAO,CAAC,SAAS;CAalB"}