@keyou007/agent-bot 0.1.13-alpha.0 → 0.1.13-alpha.1

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 (66) hide show
  1. package/.env.example +2 -2
  2. package/CHANGELOG.md +9 -0
  3. package/README.md +10 -4
  4. package/README.zh.md +10 -4
  5. package/dist/cli/ServerStarter.js +17 -2
  6. package/dist/cli/ServerStarter.js.map +1 -1
  7. package/dist/cli/controlProtocol.js.map +1 -1
  8. package/dist/cli/help.js +12 -2
  9. package/dist/cli/help.js.map +1 -1
  10. package/dist/cli.js +39 -0
  11. package/dist/cli.js.map +1 -1
  12. package/dist/commands/CommandRouter.js +5 -0
  13. package/dist/commands/CommandRouter.js.map +1 -1
  14. package/dist/config/FeishuUserOpenIdStore.js +76 -0
  15. package/dist/config/FeishuUserOpenIdStore.js.map +1 -0
  16. package/dist/config/loadConfig.js +3 -0
  17. package/dist/config/loadConfig.js.map +1 -1
  18. package/dist/feishu/CardRenderer.js +82 -22
  19. package/dist/feishu/CardRenderer.js.map +1 -1
  20. package/dist/index.js +103 -23
  21. package/dist/index.js.map +1 -1
  22. package/dist/presentation/turnGraph.js +36 -0
  23. package/dist/presentation/turnGraph.js.map +1 -0
  24. package/dist/proxy/ProxySessionController.js +270 -47
  25. package/dist/proxy/ProxySessionController.js.map +1 -1
  26. package/dist/startup/StartupNotifier.js +16 -7
  27. package/dist/startup/StartupNotifier.js.map +1 -1
  28. package/dist/startup/startFeishu.js +2 -2
  29. package/dist/startup/startFeishu.js.map +1 -1
  30. package/dist/state/StateStore.js +169 -0
  31. package/dist/state/StateStore.js.map +1 -1
  32. package/dist/state/migrations.js +21 -0
  33. package/dist/state/migrations.js.map +1 -1
  34. package/dist/supervision/SafeRestartNotifier.js +46 -3
  35. package/dist/supervision/SafeRestartNotifier.js.map +1 -1
  36. package/dist/supervision/SafeRestartScheduler.js +65 -6
  37. package/dist/supervision/SafeRestartScheduler.js.map +1 -1
  38. package/dist/supervision/replacementSupervisor.js +27 -2
  39. package/dist/supervision/replacementSupervisor.js.map +1 -1
  40. package/dist/supervisor.js +27 -2
  41. package/dist/supervisor.js.map +1 -1
  42. package/docs/technical-reference.md +11 -4
  43. package/docs/technical-reference.zh.md +11 -4
  44. package/npm-shrinkwrap.json +2 -2
  45. package/package.json +1 -1
  46. package/skills/agent-bot/SKILL.md +10 -4
  47. package/src/cli/ServerStarter.ts +25 -2
  48. package/src/cli/controlProtocol.ts +6 -1
  49. package/src/cli/help.ts +12 -2
  50. package/src/cli.ts +57 -0
  51. package/src/commands/CommandRouter.ts +4 -0
  52. package/src/commands/commandTypes.ts +1 -0
  53. package/src/config/FeishuUserOpenIdStore.ts +81 -0
  54. package/src/config/loadConfig.ts +3 -0
  55. package/src/feishu/CardRenderer.ts +109 -22
  56. package/src/index.ts +161 -21
  57. package/src/presentation/turnGraph.ts +48 -0
  58. package/src/proxy/ProxySessionController.ts +323 -55
  59. package/src/startup/StartupNotifier.ts +23 -7
  60. package/src/startup/startFeishu.ts +3 -2
  61. package/src/state/StateStore.ts +221 -0
  62. package/src/state/migrations.ts +21 -0
  63. package/src/supervision/SafeRestartNotifier.ts +53 -4
  64. package/src/supervision/SafeRestartScheduler.ts +78 -7
  65. package/src/supervision/replacementSupervisor.ts +27 -1
  66. package/src/supervisor.ts +33 -2
package/dist/index.js CHANGED
@@ -5,6 +5,8 @@ import { LocalControlServer } from "./cli/LocalControlServer.js";
5
5
  import { controlEndpoint } from "./cli/controlProtocol.js";
6
6
  import { readPackageVersion } from "./cli/packageVersion.js";
7
7
  import { loadConfig } from "./config/loadConfig.js";
8
+ import { persistFeishuUserOpenIdIfMissing } from "./config/FeishuUserOpenIdStore.js";
9
+ import { defaultDotEnvPath } from "./config/paths.js";
8
10
  import { ConsoleConnector } from "./console/ConsoleConnector.js";
9
11
  import { ConsoleTurnPresenter } from "./console/ConsoleTurnPresenter.js";
10
12
  import { CardRenderer } from "./feishu/CardRenderer.js";
@@ -12,6 +14,7 @@ import { ConsoleFeishuClient } from "./feishu/ConsoleFeishuClient.js";
12
14
  import { FeishuConnector } from "./feishu/FeishuConnector.js";
13
15
  import { FeishuMessageClient } from "./feishu/FeishuMessageClient.js";
14
16
  import { FeishuTurnPresenter } from "./feishu/FeishuTurnPresenter.js";
17
+ import { baseChatContextKey, isThreadContextKey } from "./feishu/contextKey.js";
15
18
  import { requireServerFeishuTransport } from "./feishu/transport.js";
16
19
  import { createLogger } from "./logging/logger.js";
17
20
  import { OutboundRouter } from "./presentation/OutboundRouter.js";
@@ -22,7 +25,7 @@ import { StartupNotifier } from "./startup/StartupNotifier.js";
22
25
  import { SessionMetadataHydrator } from "./startup/SessionMetadataHydrator.js";
23
26
  import { startFeishu } from "./startup/startFeishu.js";
24
27
  import { STOP_EXIT_CODE } from "./supervision/restartPolicy.js";
25
- import { replacementSupervisorEnvironment } from "./supervision/replacementSupervisor.js";
28
+ import { RESTART_GROUP_CONTEXTS_ENV, replacementSupervisorEnvironment, restartGroupContextKeysFromEnvironment, } from "./supervision/replacementSupervisor.js";
26
29
  import { SafeRestartScheduler } from "./supervision/SafeRestartScheduler.js";
27
30
  import { SafeRestartNotifier } from "./supervision/SafeRestartNotifier.js";
28
31
  import { nodeDiagnosticReportArguments, prepareCrashReportDirectory, resolveSupervisorDiagnosticsPaths, } from "./supervision/SupervisorDiagnostics.js";
@@ -32,6 +35,7 @@ const agentBotVersion = readPackageVersion();
32
35
  const supervised = process.env.AGENT_BOT_SUPERVISED === "1";
33
36
  const startupReason = process.env.AGENT_BOT_RESTART_REASON?.trim()
34
37
  || (supervised ? "Supervisor 启动" : "直接启动");
38
+ const restartGroupContextKeys = restartGroupContextKeysFromEnvironment(process.env[RESTART_GROUP_CONTEXTS_ENV]);
35
39
  const consoleOnly = process.env.AGENT_BOT_CONSOLE_ONLY === "1";
36
40
  const config = loadConfig();
37
41
  const transport = consoleOnly ? "console" : requireServerFeishuTransport(config.feishu);
@@ -83,7 +87,7 @@ let shuttingDown = false;
83
87
  let restartRequested = false;
84
88
  const safeRestart = new SafeRestartScheduler({
85
89
  readActivity: () => store.getServerActivityState(),
86
- onReady: (reason) => initiateRestart(reason),
90
+ onReady: (reason, notificationTargets) => initiateRestart(reason, notificationTargets),
87
91
  onStatus: (status) => safeRestartNotifier?.update(status),
88
92
  onStatusError: (error) => logger.warn({ error }, "Failed to publish safe restart status."),
89
93
  });
@@ -91,6 +95,14 @@ const controller = new ProxySessionController(config, store, runtimes, outbound,
91
95
  supervised,
92
96
  restart: requestRestart,
93
97
  cancelSafeRestart: (scheduleId) => safeRestart.cancelScheduled(scheduleId),
98
+ rememberFeishuUserOpenId: (userOpenId) => {
99
+ if (config.feishu.userOpenId?.startsWith("ou_"))
100
+ return;
101
+ const persisted = persistFeishuUserOpenIdIfMissing(defaultDotEnvPath(), userOpenId);
102
+ config.feishu.userOpenId = persisted.userOpenId;
103
+ process.env.FEISHU_USER_OPEN_ID = persisted.userOpenId;
104
+ logger.info({ status: persisted.status }, "Stored the default Lark user Open ID from the first private chat message.");
105
+ },
94
106
  });
95
107
  if (feishuOutbound)
96
108
  feishuConnector = new FeishuConnector(config, controller, logger);
@@ -106,7 +118,7 @@ const startControlServer = async () => {
106
118
  logger.info({ endpoint: controlEndpoint(config.storage.sqlitePath) }, "Local Agent Bot control endpoint started.");
107
119
  };
108
120
  if (feishuConnector && startupNotifier) {
109
- await startFeishu(feishuConnector, startupNotifier, processStartedAt, startupReason, startControlServer, () => { serverReady = true; });
121
+ await startFeishu(feishuConnector, startupNotifier, processStartedAt, startupReason, startControlServer, () => { serverReady = true; }, restartGroupContextKeys);
110
122
  }
111
123
  else {
112
124
  await startControlServer();
@@ -114,37 +126,38 @@ else {
114
126
  serverReady = true;
115
127
  }
116
128
  consoleConnector?.start();
117
- async function requestRestart(contextKey, force) {
129
+ async function requestRestart(contextKey, force, replyTarget) {
130
+ const notificationTarget = {
131
+ contextKey,
132
+ ...(replyTarget ? { replyMessageId: replyTarget.messageId } : {}),
133
+ };
118
134
  if (restartRequested) {
119
135
  await outbound.sendText(contextKey, "Agent Bot 已在重启中,请稍候。").catch(() => undefined);
120
136
  return;
121
137
  }
122
138
  if (force) {
123
- await initiateRestart("用户执行 /restart --force 命令", contextKey);
139
+ await initiateRestart("用户执行 /restart --force 命令", [notificationTarget]);
124
140
  return;
125
141
  }
126
- const newlyScheduled = safeRestart.schedule("用户执行 /restart 命令");
142
+ const newlyScheduled = safeRestart.schedule("用户执行 /restart 命令", notificationTarget);
127
143
  await outbound.sendText(contextKey, newlyScheduled
128
144
  ? "已安排安全重启。Agent Bot 会等待所有任务完成、最终结果投递完成,并保持 15 秒无新消息后重启。"
129
- : "安全重启已在等待中,已更新重启原因。").catch((error) => {
145
+ : "安全重启已在等待中;当前会话已加入通知范围,并已更新重启原因。").catch((error) => {
130
146
  logger.warn({ error, contextKey }, "Failed to send safe restart acknowledgement.");
131
147
  });
132
148
  }
133
- async function initiateRestart(reason, contextKey) {
149
+ async function initiateRestart(reason, notificationTargets = []) {
134
150
  if (restartRequested) {
135
- if (contextKey)
136
- await outbound.sendText(contextKey, "Agent Bot 已在重启中,请稍候。").catch(() => undefined);
151
+ await sendRestartTexts(notificationTargets, "Agent Bot 已在重启中,请稍候。");
137
152
  return;
138
153
  }
139
154
  restartRequested = true;
140
155
  await safeRestart.cancelCurrent();
141
156
  await safeRestartNotifier?.flush();
142
- if (contextKey) {
143
- await outbound.sendText(contextKey, "Agent Bot 正在重启,恢复在线后会发送启动状态通知。").catch((error) => {
144
- logger.warn({ error, contextKey }, "Failed to send restart acknowledgement.");
145
- });
146
- }
147
- setTimeout(() => void shutdown(supervised ? STOP_EXIT_CODE : 0, reason), 100);
157
+ const allNotificationTargets = mergeRestartNotificationTargets(notificationTargets, safeRestartNotifier?.getNotificationTargets() ?? []);
158
+ const restartGroupContextKeys = groupContextKeysForRestartTargets(allNotificationTargets);
159
+ await sendRestartTexts(allNotificationTargets, "Agent Bot 正在重启,恢复在线后会发送启动状态通知。");
160
+ setTimeout(() => void shutdown(supervised ? STOP_EXIT_CODE : 0, reason, restartGroupContextKeys), 100);
148
161
  }
149
162
  async function handleControlRequest(request) {
150
163
  switch (request.action) {
@@ -163,9 +176,10 @@ async function handleControlRequest(request) {
163
176
  activity: store.getServerActivityState(),
164
177
  },
165
178
  };
166
- case "server_restart":
179
+ case "server_restart": {
180
+ const notificationTarget = inferControlRestartTarget(request.notificationSessionId);
167
181
  if (request.mode === "safe") {
168
- const newlyScheduled = safeRestart.schedule(request.reason);
182
+ const newlyScheduled = safeRestart.schedule(request.reason, notificationTarget);
169
183
  return {
170
184
  ok: true,
171
185
  message: newlyScheduled
@@ -173,8 +187,9 @@ async function handleControlRequest(request) {
173
187
  : "A safe restart is already pending. Its reason has been updated.",
174
188
  };
175
189
  }
176
- setTimeout(() => void initiateRestart(request.reason), 25);
190
+ setTimeout(() => void initiateRestart(request.reason, notificationTarget ? [notificationTarget] : []), 25);
177
191
  return { ok: true, message: "Immediate restart requested." };
192
+ }
178
193
  case "server_stop":
179
194
  safeRestart.cancel();
180
195
  setTimeout(() => void shutdown(STOP_EXIT_CODE), 25);
@@ -199,7 +214,7 @@ async function handleControlRequest(request) {
199
214
  };
200
215
  }
201
216
  }
202
- async function shutdown(exitCode, restartReason) {
217
+ async function shutdown(exitCode, restartReason, restartGroupContextKeys = []) {
203
218
  if (shuttingDown)
204
219
  return;
205
220
  shuttingDown = true;
@@ -216,10 +231,10 @@ async function shutdown(exitCode, restartReason) {
216
231
  await controlServer?.close().catch((error) => logger.warn({ error }, "Failed to close local control endpoint."));
217
232
  store.close();
218
233
  if (restartReason)
219
- startReplacementSupervisor(restartReason);
234
+ startReplacementSupervisor(restartReason, restartGroupContextKeys);
220
235
  process.exit(exitCode);
221
236
  }
222
- function startReplacementSupervisor(restartReason) {
237
+ function startReplacementSupervisor(restartReason, restartGroupContextKeys) {
223
238
  const supervisorEntry = fileURLToPath(new URL("./supervisor.js", import.meta.url));
224
239
  const reportDirectory = resolveSupervisorDiagnosticsPaths(config).crashReportDirectory;
225
240
  prepareCrashReportDirectory(reportDirectory);
@@ -238,10 +253,75 @@ function startReplacementSupervisor(restartReason) {
238
253
  detached: true,
239
254
  windowsHide: true,
240
255
  stdio: "ignore",
241
- env: replacementSupervisorEnvironment(restartReason, environmentRefresh.environment),
256
+ env: replacementSupervisorEnvironment(restartReason, environmentRefresh.environment, restartGroupContextKeys),
242
257
  });
243
258
  supervisor.unref();
244
259
  }
260
+ function inferControlRestartTarget(notificationSessionId) {
261
+ const requestedSessionId = notificationSessionId?.trim();
262
+ if (requestedSessionId) {
263
+ const requested = store.getSession(requestedSessionId)
264
+ ?? store.findSessionByRemoteSessionId(requestedSessionId);
265
+ if (!requested)
266
+ throw new Error(`Cannot route restart notifications: unknown task ${requestedSessionId}.`);
267
+ return restartNotificationTargetForSession(requested);
268
+ }
269
+ const runningSessions = store.listAllSessions().filter((session) => session.status === "running");
270
+ const runningContexts = new Set(runningSessions.map((session) => session.contextKey));
271
+ if (runningContexts.size > 1) {
272
+ throw new Error("Cannot determine which conversation requested the restart because multiple conversations are running. Pass --task <task>.");
273
+ }
274
+ const contextKey = runningContexts.size === 1 ? runningContexts.values().next().value : undefined;
275
+ const session = contextKey
276
+ ? runningSessions.find((candidate) => candidate.contextKey === contextKey)
277
+ : undefined;
278
+ return session ? restartNotificationTargetForSession(session) : undefined;
279
+ }
280
+ function restartNotificationTargetForSession(session) {
281
+ const replyMessageId = isThreadContextKey(session.contextKey)
282
+ ? store.findLatestMessageIdForSession(session.localSessionId, session.contextKey)
283
+ ?? store.findLatestMessageIdForContext(session.contextKey)
284
+ : undefined;
285
+ if (isThreadContextKey(session.contextKey) && !replyMessageId) {
286
+ throw new Error("Cannot route restart notifications to the task topic because it has no message anchor. Send /restart in that topic instead.");
287
+ }
288
+ return {
289
+ contextKey: session.contextKey,
290
+ ...(replyMessageId ? { replyMessageId } : {}),
291
+ };
292
+ }
293
+ async function sendRestartText(target, text) {
294
+ if (isThreadContextKey(target.contextKey) && !target.replyMessageId) {
295
+ throw new Error("Cannot send a restart notice to a topic without a reply message anchor.");
296
+ }
297
+ const replyTarget = target.replyMessageId
298
+ ? { messageId: target.replyMessageId, replyInThread: true }
299
+ : undefined;
300
+ return outbound.withReplyTarget(target.contextKey, replyTarget, () => outbound.sendText(target.contextKey, text));
301
+ }
302
+ async function sendRestartTexts(targets, text) {
303
+ await Promise.all(targets.map(async (target) => {
304
+ await sendRestartText(target, text).catch((error) => {
305
+ logger.warn({ error, contextKey: target.contextKey }, "Failed to send restart acknowledgement.");
306
+ });
307
+ }));
308
+ }
309
+ function groupContextKeysForRestartTargets(targets) {
310
+ const knownGroupContextKeys = new Set(store.listChatContexts("group").map((chat) => chat.contextKey));
311
+ return [...new Set(targets
312
+ .map((target) => baseChatContextKey(target.contextKey))
313
+ .filter((contextKey) => knownGroupContextKeys.has(contextKey)))];
314
+ }
315
+ function mergeRestartNotificationTargets(...targetGroups) {
316
+ const targets = new Map();
317
+ for (const target of targetGroups.flat()) {
318
+ const existing = targets.get(target.contextKey);
319
+ if (!existing || (!existing.replyMessageId && target.replyMessageId)) {
320
+ targets.set(target.contextKey, { ...target });
321
+ }
322
+ }
323
+ return [...targets.values()];
324
+ }
245
325
  function delay(milliseconds) {
246
326
  return new Promise((resolve) => setTimeout(resolve, milliseconds));
247
327
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ export function buildTurnGraphRows(nodes) {
2
+ const visibleTurnIds = new Set(nodes.map((node) => node.turnId));
3
+ const lanes = [];
4
+ return nodes.map((node, index) => {
5
+ let lane = lanes.indexOf(node.turnId);
6
+ if (lane < 0) {
7
+ lane = lanes.length;
8
+ lanes.push(node.turnId);
9
+ }
10
+ const sequence = index + 1;
11
+ const nodeLine = `${lanes.map((_, laneIndex) => laneIndex === lane ? "●" : "│").join(" ")} ${sequence}`;
12
+ const parentTurnId = node.parentTurnId && visibleTurnIds.has(node.parentTurnId)
13
+ ? node.parentTurnId
14
+ : undefined;
15
+ let connectorLine;
16
+ if (!parentTurnId) {
17
+ lanes.splice(lane, 1);
18
+ connectorLine = lanes.length > 0 ? lanes.map(() => "│").join(" ") : undefined;
19
+ }
20
+ else {
21
+ const existingParentLane = lanes.indexOf(parentTurnId);
22
+ if (existingParentLane < 0 || existingParentLane === lane) {
23
+ lanes[lane] = parentTurnId;
24
+ connectorLine = lanes.map(() => "│").join(" ");
25
+ }
26
+ else {
27
+ const connectorLanes = lanes.map(() => "│");
28
+ connectorLanes[lane] = lane > existingParentLane ? "╱" : "╲";
29
+ connectorLine = connectorLanes.join(" ");
30
+ lanes.splice(lane, 1);
31
+ }
32
+ }
33
+ return { sequence, nodeLine, ...(connectorLine ? { connectorLine } : {}) };
34
+ });
35
+ }
36
+ //# sourceMappingURL=turnGraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turnGraph.js","sourceRoot":"","sources":["../../src/presentation/turnGraph.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,kBAAkB,CAAC,KAA+B;IAChE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC/B,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;QACxG,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;YAC7E,CAAC,CAAC,IAAI,CAAC,YAAY;YACnB,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,aAAiC,CAAC;QAEtC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtB,aAAa,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACvD,IAAI,kBAAkB,GAAG,CAAC,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;gBAC1D,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;gBAC3B,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC5C,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC7D,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC"}