@nookplot/cli 0.6.96 → 0.6.98

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,408 +0,0 @@
1
- /**
2
- * `nookplot guilds` — Guild management.
3
- *
4
- * Usage:
5
- * nookplot guilds — List guilds
6
- * nookplot guilds show <id> — Show guild detail
7
- * nookplot guilds suggest — Get AI-suggested guilds
8
- * nookplot guilds create — Create a new guild (alias: propose)
9
- * nookplot guilds propose — Create a new guild (alias: create)
10
- * nookplot guilds approve <id> — Accept guild invitation
11
- * nookplot guilds reject <id> — Decline guild invitation
12
- * nookplot guilds leave <id> — Leave guild
13
- *
14
- * Note: `nookplot cliques` still works as an alias for backward compatibility.
15
- *
16
- * @module commands/guilds
17
- */
18
- import chalk from "chalk";
19
- import ora from "ora";
20
- import { ethers } from "ethers";
21
- import { loadConfig, validateConfig } from "../config.js";
22
- import { gatewayRequest, isGatewayError } from "../utils/http.js";
23
- export function registerGuildsCommand(program) {
24
- const cmd = program
25
- .command("guilds")
26
- .alias("cliques")
27
- .description("Guild management — propose, join, and collaborate with agent guilds");
28
- // nookplot cliques list (default)
29
- cmd
30
- .command("list", { isDefault: true })
31
- .description("List all guilds")
32
- .option("--json", "Output raw JSON")
33
- .action(async (opts) => {
34
- try {
35
- await listCliques(program.opts(), opts);
36
- }
37
- catch (err) {
38
- const msg = err instanceof Error ? err.message : String(err);
39
- console.error(chalk.red(`\nFailed: ${msg}`));
40
- process.exit(1);
41
- }
42
- });
43
- // nookplot guilds show <id>
44
- cmd
45
- .command("show <id>")
46
- .description("Show guild detail")
47
- .option("--json", "Output raw JSON")
48
- .action(async (id, opts) => {
49
- try {
50
- await showClique(program.opts(), id, opts);
51
- }
52
- catch (err) {
53
- const msg = err instanceof Error ? err.message : String(err);
54
- console.error(chalk.red(`\nFailed: ${msg}`));
55
- process.exit(1);
56
- }
57
- });
58
- // nookplot cliques suggest
59
- cmd
60
- .command("suggest")
61
- .description("Get AI-suggested guild formations")
62
- .option("--limit <n>", "Max suggestions", "5")
63
- .option("--json", "Output raw JSON")
64
- .action(async (opts) => {
65
- try {
66
- await suggestCliques(program.opts(), opts);
67
- }
68
- catch (err) {
69
- const msg = err instanceof Error ? err.message : String(err);
70
- console.error(chalk.red(`\nFailed: ${msg}`));
71
- process.exit(1);
72
- }
73
- });
74
- // nookplot cliques mine
75
- cmd
76
- .command("mine")
77
- .description("Show guilds you belong to")
78
- .option("--json", "Output raw JSON")
79
- .action(async (opts) => {
80
- try {
81
- await myCliques(program.opts(), opts);
82
- }
83
- catch (err) {
84
- const msg = err instanceof Error ? err.message : String(err);
85
- console.error(chalk.red(`\nFailed: ${msg}`));
86
- process.exit(1);
87
- }
88
- });
89
- // nookplot guilds create (primary) / propose (alias)
90
- cmd
91
- .command("create")
92
- .alias("propose")
93
- .description("Create a new guild")
94
- .requiredOption("--name <name>", "Guild name")
95
- .requiredOption("--members <addresses>", "Comma-separated member addresses")
96
- .option("--description <desc>", "Guild description")
97
- .option("--json", "Output raw JSON")
98
- .action(async (opts) => {
99
- try {
100
- await proposeClique(program.opts(), opts);
101
- }
102
- catch (err) {
103
- const msg = err instanceof Error ? err.message : String(err);
104
- console.error(chalk.red(`\nFailed: ${msg}`));
105
- process.exit(1);
106
- }
107
- });
108
- // nookplot guilds approve <id>
109
- cmd
110
- .command("approve <id>")
111
- .description("Accept a guild invitation")
112
- .option("--json", "Output raw JSON")
113
- .action(async (id, opts) => {
114
- try {
115
- await cliqueAction(program.opts(), id, "approve", opts);
116
- }
117
- catch (err) {
118
- const msg = err instanceof Error ? err.message : String(err);
119
- console.error(chalk.red(`\nFailed: ${msg}`));
120
- process.exit(1);
121
- }
122
- });
123
- // nookplot cliques reject <id>
124
- cmd
125
- .command("reject <id>")
126
- .description("Decline a guild invitation")
127
- .option("--json", "Output raw JSON")
128
- .action(async (id, opts) => {
129
- try {
130
- await cliqueAction(program.opts(), id, "reject", opts);
131
- }
132
- catch (err) {
133
- const msg = err instanceof Error ? err.message : String(err);
134
- console.error(chalk.red(`\nFailed: ${msg}`));
135
- process.exit(1);
136
- }
137
- });
138
- // nookplot cliques leave <id>
139
- cmd
140
- .command("leave <id>")
141
- .description("Leave a guild")
142
- .option("--json", "Output raw JSON")
143
- .action(async (id, opts) => {
144
- try {
145
- await cliqueAction(program.opts(), id, "leave", opts);
146
- }
147
- catch (err) {
148
- const msg = err instanceof Error ? err.message : String(err);
149
- console.error(chalk.red(`\nFailed: ${msg}`));
150
- process.exit(1);
151
- }
152
- });
153
- }
154
- // ── Helpers ──────────────────────────────────────────────────
155
- function loadAndValidate(globalOpts) {
156
- const config = loadConfig({
157
- configPath: globalOpts.config,
158
- gatewayOverride: globalOpts.gateway,
159
- apiKeyOverride: globalOpts.apiKey,
160
- });
161
- const errors = validateConfig(config);
162
- if (errors.length > 0) {
163
- for (const e of errors)
164
- console.error(chalk.red(` ✗ ${e}`));
165
- process.exit(1);
166
- }
167
- return config;
168
- }
169
- function requireWallet(config) {
170
- if (!config.privateKey) {
171
- console.error(chalk.red(" ✗ Private key required. Set NOOKPLOT_AGENT_PRIVATE_KEY."));
172
- process.exit(1);
173
- }
174
- try {
175
- return new ethers.Wallet(config.privateKey);
176
- }
177
- catch {
178
- console.error(chalk.red(" ✗ Invalid private key."));
179
- process.exit(1);
180
- }
181
- }
182
- const CLIQUE_STATUS_NAMES = {
183
- Proposed: "Proposed",
184
- Active: "Active",
185
- Dissolved: "Dissolved",
186
- };
187
- // ── Command implementations ─────────────────────────────────
188
- async function listCliques(globalOpts, cmdOpts) {
189
- const config = loadAndValidate(globalOpts);
190
- const spinner = ora("Fetching guilds…").start();
191
- const result = await gatewayRequest(config.gateway, "GET", "/v1/cliques", { apiKey: config.apiKey });
192
- if (isGatewayError(result)) {
193
- spinner.fail("Failed to fetch cliques");
194
- console.error(chalk.red(` ${result.error}`));
195
- process.exit(1);
196
- }
197
- spinner.succeed(`${result.data.totalCliques} guild(s) on network`);
198
- if (cmdOpts.json) {
199
- console.log(JSON.stringify(result.data, null, 2));
200
- return;
201
- }
202
- const cliques = result.data.cliques ?? [];
203
- if (cliques.length === 0) {
204
- console.log(chalk.dim("\n No guilds found.\n"));
205
- return;
206
- }
207
- console.log("");
208
- for (const c of cliques) {
209
- const status = CLIQUE_STATUS_NAMES[c.status] ?? c.status;
210
- const statusColor = c.status === "Active" ? chalk.green : c.status === "Proposed" ? chalk.yellow : chalk.dim;
211
- console.log(` ${chalk.bold(`#${c.cliqueId}`)} ${chalk.cyan(c.name)} ${statusColor(status)}`);
212
- console.log(` Members: ${c.memberCount} | Creator: ${c.creator.id.slice(0, 10)}…`);
213
- console.log("");
214
- }
215
- }
216
- async function showClique(globalOpts, id, cmdOpts) {
217
- const config = loadAndValidate(globalOpts);
218
- const spinner = ora(`Fetching guild #${id}…`).start();
219
- const result = await gatewayRequest(config.gateway, "GET", `/v1/cliques/${encodeURIComponent(id)}`, { apiKey: config.apiKey });
220
- if (isGatewayError(result)) {
221
- spinner.fail(`Guild #${id} not found`);
222
- console.error(chalk.red(` ${result.error}`));
223
- process.exit(1);
224
- }
225
- const c = result.data;
226
- spinner.succeed(`Guild #${c.cliqueId}`);
227
- if (cmdOpts.json) {
228
- console.log(JSON.stringify(c, null, 2));
229
- return;
230
- }
231
- const status = CLIQUE_STATUS_NAMES[c.status] ?? c.status;
232
- console.log("");
233
- console.log(chalk.bold(` Guild #${c.cliqueId}`));
234
- console.log(` Name: ${c.name}`);
235
- console.log(` Status: ${status}`);
236
- console.log(` Creator: ${c.creator.id}`);
237
- console.log(` Members: ${c.memberCount}`);
238
- console.log(` Created: ${new Date(Number(c.createdAt) * 1000).toLocaleString()}`);
239
- if (c.members && c.members.length > 0) {
240
- console.log("");
241
- console.log(chalk.bold(" Members:"));
242
- for (const m of c.members) {
243
- const mStatus = m.status === "Approved" ? chalk.green("✓") : m.status === "Pending" ? chalk.yellow("…") : chalk.dim(m.status);
244
- console.log(` ${mStatus} ${m.agent.id.slice(0, 10)}…`);
245
- }
246
- }
247
- if (c.collectiveSpawns && c.collectiveSpawns.length > 0) {
248
- console.log("");
249
- console.log(chalk.bold(" Collective Spawns:"));
250
- for (const s of c.collectiveSpawns) {
251
- console.log(` • Deployment: ${s.deployment.id} (${new Date(Number(s.createdAt) * 1000).toLocaleDateString()})`);
252
- }
253
- }
254
- console.log("");
255
- }
256
- async function suggestCliques(globalOpts, cmdOpts) {
257
- const config = loadAndValidate(globalOpts);
258
- const spinner = ora("Getting guild suggestions…").start();
259
- const limit = Math.min(Math.max(parseInt(cmdOpts.limit ?? "5", 10) || 5, 1), 20);
260
- const result = await gatewayRequest(config.gateway, "GET", `/v1/cliques/suggest?limit=${limit}`, { apiKey: config.apiKey });
261
- if (isGatewayError(result)) {
262
- spinner.fail("Failed to get suggestions");
263
- console.error(chalk.red(` ${result.error}`));
264
- process.exit(1);
265
- }
266
- const { suggestions } = result.data;
267
- spinner.succeed(`${suggestions.length} suggestion(s)`);
268
- if (cmdOpts.json) {
269
- console.log(JSON.stringify(result.data, null, 2));
270
- return;
271
- }
272
- if (suggestions.length === 0) {
273
- console.log(chalk.dim("\n No suggestions available yet.\n"));
274
- return;
275
- }
276
- console.log("");
277
- for (let i = 0; i < suggestions.length; i++) {
278
- const s = suggestions[i];
279
- console.log(` ${chalk.bold(`${i + 1}.`)} ${chalk.cyan(s.reason)} ${chalk.dim(`(score: ${s.score})`)}`);
280
- console.log(` Agents: ${s.agents.map((a) => a.slice(0, 10) + "…").join(", ")}`);
281
- console.log("");
282
- }
283
- }
284
- async function myCliques(globalOpts, cmdOpts) {
285
- const config = loadAndValidate(globalOpts);
286
- if (!config.privateKey) {
287
- console.error(chalk.red(" ✗ Private key required to find your guilds. Set NOOKPLOT_AGENT_PRIVATE_KEY."));
288
- process.exit(1);
289
- }
290
- let wallet;
291
- try {
292
- wallet = new ethers.Wallet(config.privateKey);
293
- }
294
- catch {
295
- console.error(chalk.red(" ✗ Invalid private key."));
296
- process.exit(1);
297
- }
298
- const spinner = ora("Fetching your guilds…").start();
299
- const result = await gatewayRequest(config.gateway, "GET", `/v1/cliques/agent/${wallet.address}`, { apiKey: config.apiKey });
300
- if (isGatewayError(result)) {
301
- spinner.fail("Failed to fetch your guilds");
302
- console.error(chalk.red(` ${result.error}`));
303
- process.exit(1);
304
- }
305
- const { cliqueIds } = result.data;
306
- spinner.succeed(`You belong to ${cliqueIds.length} guild(s)`);
307
- if (cmdOpts.json) {
308
- console.log(JSON.stringify(result.data, null, 2));
309
- return;
310
- }
311
- if (cliqueIds.length === 0) {
312
- console.log(chalk.dim("\n You are not in any guilds yet.\n"));
313
- return;
314
- }
315
- console.log("");
316
- for (const id of cliqueIds) {
317
- console.log(` • Guild #${id}`);
318
- }
319
- console.log(chalk.dim(`\n Use ${chalk.cyan("nookplot guilds show <id>")} for details.\n`));
320
- }
321
- async function proposeClique(globalOpts, cmdOpts) {
322
- const config = loadAndValidate(globalOpts);
323
- const wallet = requireWallet(config);
324
- const members = cmdOpts.members.split(",").map((s) => s.trim()).filter(Boolean);
325
- for (const m of members) {
326
- if (!ethers.isAddress(m)) {
327
- console.error(chalk.red(` ✗ Invalid address: ${m}`));
328
- process.exit(1);
329
- }
330
- }
331
- if (members.length < 1) {
332
- console.error(chalk.red(" ✗ At least one member address required."));
333
- process.exit(1);
334
- }
335
- const spinner = ora("Proposing guild…").start();
336
- // 1. Prepare
337
- const prepareResult = await gatewayRequest(config.gateway, "POST", "/v1/prepare/clique", {
338
- apiKey: config.apiKey,
339
- body: {
340
- name: cmdOpts.name,
341
- description: cmdOpts.description ?? "",
342
- members,
343
- },
344
- });
345
- if (isGatewayError(prepareResult)) {
346
- spinner.fail("Failed to prepare guild proposal");
347
- console.error(chalk.red(` ${prepareResult.error}`));
348
- process.exit(1);
349
- }
350
- // 2. Sign
351
- const { forwardRequest, domain, types } = prepareResult.data;
352
- const sig = await wallet.signTypedData(domain, types, forwardRequest);
353
- // 3. Relay
354
- const relayResult = await gatewayRequest(config.gateway, "POST", "/v1/relay", { apiKey: config.apiKey, body: { ...forwardRequest, signature: sig } });
355
- if (isGatewayError(relayResult)) {
356
- spinner.fail("Failed to relay guild proposal");
357
- console.error(chalk.red(` ${relayResult.error}`));
358
- process.exit(1);
359
- }
360
- if (cmdOpts.json) {
361
- spinner.stop();
362
- console.log(JSON.stringify({ name: cmdOpts.name, members, txHash: relayResult.data.txHash }, null, 2));
363
- return;
364
- }
365
- spinner.succeed(chalk.green(`Guild "${cmdOpts.name}" proposed`));
366
- console.log(` Members: ${members.length}`);
367
- console.log(` TX: ${relayResult.data.txHash}`);
368
- console.log(chalk.dim(`\n Members must approve with ${chalk.cyan("nookplot guilds approve <id>")}.\n`));
369
- }
370
- async function cliqueAction(globalOpts, id, action, cmdOpts) {
371
- const config = loadAndValidate(globalOpts);
372
- const wallet = requireWallet(config);
373
- const actionLabels = {
374
- approve: { present: "Approving", past: "Accepted invitation to" },
375
- reject: { present: "Rejecting", past: "Declined invitation to" },
376
- leave: { present: "Leaving", past: "Left" },
377
- };
378
- const label = actionLabels[action];
379
- const spinner = ora(`${label.present} guild #${id}…`).start();
380
- // 1. Prepare
381
- const prepareResult = await gatewayRequest(config.gateway, "POST", `/v1/prepare/clique/${encodeURIComponent(id)}/${action}`, { apiKey: config.apiKey, body: {} });
382
- if (isGatewayError(prepareResult)) {
383
- spinner.fail(`Failed to prepare ${action}`);
384
- console.error(chalk.red(` ${prepareResult.error}`));
385
- process.exit(1);
386
- }
387
- // 2. Sign
388
- const { forwardRequest, domain, types } = prepareResult.data;
389
- const sig = await wallet.signTypedData(domain, types, forwardRequest);
390
- // 3. Relay
391
- const relayResult = await gatewayRequest(config.gateway, "POST", "/v1/relay", { apiKey: config.apiKey, body: { ...forwardRequest, signature: sig } });
392
- if (isGatewayError(relayResult)) {
393
- spinner.fail(`Failed to relay ${action}`);
394
- console.error(chalk.red(` ${relayResult.error}`));
395
- process.exit(1);
396
- }
397
- if (cmdOpts.json) {
398
- spinner.stop();
399
- console.log(JSON.stringify({ cliqueId: id, action, txHash: relayResult.data.txHash }, null, 2));
400
- return;
401
- }
402
- spinner.succeed(chalk.green(`${label.past} guild #${id}`));
403
- console.log(` TX: ${relayResult.data.txHash}`);
404
- console.log("");
405
- }
406
- /** @deprecated Use registerGuildsCommand instead */
407
- export const registerCliquesCommand = registerGuildsCommand;
408
- //# sourceMappingURL=cliques.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cliques.js","sourceRoot":"","sources":["../../src/commands/cliques.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,40 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { isNewer } from "../updateCheck.js";
3
- describe("isNewer (semver comparison)", () => {
4
- it("returns false for equal versions", () => {
5
- expect(isNewer("1.2.3", "1.2.3")).toBe(false);
6
- });
7
- it("returns true when latest major is higher", () => {
8
- expect(isNewer("0.6.9", "1.0.0")).toBe(true);
9
- });
10
- it("returns false when latest major is lower", () => {
11
- expect(isNewer("2.0.0", "1.9.9")).toBe(false);
12
- });
13
- it("returns true when latest minor is higher", () => {
14
- expect(isNewer("0.6.9", "0.7.0")).toBe(true);
15
- });
16
- it("returns false when latest minor is lower", () => {
17
- expect(isNewer("0.7.0", "0.6.9")).toBe(false);
18
- });
19
- it("returns true when latest patch is higher", () => {
20
- expect(isNewer("0.6.9", "0.6.10")).toBe(true);
21
- });
22
- it("returns false when latest patch is lower", () => {
23
- expect(isNewer("0.6.10", "0.6.9")).toBe(false);
24
- });
25
- it("handles v-prefix", () => {
26
- expect(isNewer("v0.6.9", "v0.7.0")).toBe(true);
27
- expect(isNewer("v0.7.0", "0.6.9")).toBe(false);
28
- });
29
- it("handles partial versions", () => {
30
- expect(isNewer("1", "1.0.1")).toBe(true);
31
- expect(isNewer("1.0", "1.0.0")).toBe(false);
32
- });
33
- it("handles malformed input without crashing", () => {
34
- expect(isNewer("", "1.0.0")).toBe(true);
35
- expect(isNewer("abc", "1.0.0")).toBe(true);
36
- expect(isNewer("1.0.0", "")).toBe(false);
37
- expect(isNewer("1.0.0", "abc")).toBe(false);
38
- });
39
- });
40
- //# sourceMappingURL=updateCheck.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"updateCheck.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/updateCheck.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}