@autonav/core 1.1.4 → 1.1.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 +33 -0
- package/dist/adapter/claude-adapter.d.ts +30 -0
- package/dist/adapter/claude-adapter.d.ts.map +1 -1
- package/dist/adapter/claude-adapter.js +155 -0
- package/dist/adapter/claude-adapter.js.map +1 -1
- package/dist/cli/autonav.d.ts +1 -0
- package/dist/cli/autonav.d.ts.map +1 -1
- package/dist/cli/autonav.js +23 -4
- package/dist/cli/autonav.js.map +1 -1
- package/dist/cli/nav-init.js +19 -10
- package/dist/cli/nav-init.js.map +1 -1
- package/dist/cli/nav-install.d.ts +3 -0
- package/dist/cli/nav-install.d.ts.map +1 -0
- package/dist/cli/nav-install.js +101 -0
- package/dist/cli/nav-install.js.map +1 -0
- package/dist/cli/nav-uninstall.d.ts +3 -0
- package/dist/cli/nav-uninstall.d.ts.map +1 -0
- package/dist/cli/nav-uninstall.js +123 -0
- package/dist/cli/nav-uninstall.js.map +1 -0
- package/dist/cli/nav-update.d.ts +3 -0
- package/dist/cli/nav-update.d.ts.map +1 -0
- package/dist/cli/nav-update.js +131 -0
- package/dist/cli/nav-update.js.map +1 -0
- package/dist/interview/App.d.ts.map +1 -1
- package/dist/interview/App.js +139 -37
- package/dist/interview/App.js.map +1 -1
- package/dist/skill-generator/index.d.ts +89 -4
- package/dist/skill-generator/index.d.ts.map +1 -1
- package/dist/skill-generator/index.js +364 -143
- package/dist/skill-generator/index.js.map +1 -1
- package/package.json +9 -1
- package/dist/templates/CLAUDE-import.md.template +0 -90
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import * as path from "node:path";
|
|
5
|
+
import * as fs from "node:fs";
|
|
6
|
+
import { discoverLocalSkills, getLocalSkillPath, symlinkSkillToGlobal, } from "../skill-generator/index.js";
|
|
7
|
+
/**
|
|
8
|
+
* Main CLI program
|
|
9
|
+
*/
|
|
10
|
+
const program = new Command();
|
|
11
|
+
program
|
|
12
|
+
.name("autonav install")
|
|
13
|
+
.description("Install navigator skills by symlinking local skills to global location")
|
|
14
|
+
.version("1.0.0")
|
|
15
|
+
.argument("[path]", "Path to the navigator directory (default: current directory)", ".")
|
|
16
|
+
.option("-f, --force", "Overwrite existing skills if conflicts detected")
|
|
17
|
+
.option("-q, --quiet", "Suppress output")
|
|
18
|
+
.option("--no-color", "Disable colored output")
|
|
19
|
+
.action(async (navigatorPath, options) => {
|
|
20
|
+
await executeInstall(navigatorPath, options);
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Execute the install command
|
|
24
|
+
*/
|
|
25
|
+
async function executeInstall(navigatorPath, options) {
|
|
26
|
+
// Disable chalk if noColor is set
|
|
27
|
+
if (options.noColor) {
|
|
28
|
+
chalk.level = 0;
|
|
29
|
+
}
|
|
30
|
+
const resolvedPath = path.resolve(navigatorPath);
|
|
31
|
+
// Validate navigator exists
|
|
32
|
+
const configPath = path.join(resolvedPath, "config.json");
|
|
33
|
+
if (!fs.existsSync(configPath)) {
|
|
34
|
+
if (!options.quiet) {
|
|
35
|
+
console.error(chalk.red("Error:") + ` Not a navigator directory: ${resolvedPath}`);
|
|
36
|
+
console.error(chalk.dim(" Missing config.json"));
|
|
37
|
+
console.error("");
|
|
38
|
+
console.error(chalk.dim("To create a new navigator:"));
|
|
39
|
+
console.error(chalk.dim(" autonav init <name>"));
|
|
40
|
+
}
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
// Discover local skills
|
|
44
|
+
const localSkills = discoverLocalSkills(resolvedPath);
|
|
45
|
+
if (localSkills.length === 0) {
|
|
46
|
+
if (!options.quiet) {
|
|
47
|
+
console.log(chalk.yellow("No local skills found") + ` in ${resolvedPath}`);
|
|
48
|
+
console.log(chalk.dim(" Skills should be in .autonav/skills/ask-*/"));
|
|
49
|
+
console.log("");
|
|
50
|
+
console.log(chalk.dim("If this navigator was created with an older version:"));
|
|
51
|
+
console.log(chalk.dim(" Skills may only exist globally at ~/.claude/skills/"));
|
|
52
|
+
console.log(chalk.dim(" Re-run 'autonav init' to migrate to local storage."));
|
|
53
|
+
}
|
|
54
|
+
process.exit(0);
|
|
55
|
+
}
|
|
56
|
+
if (!options.quiet) {
|
|
57
|
+
console.log(chalk.bold(`Installing ${localSkills.length} skill(s) from ${resolvedPath}`));
|
|
58
|
+
console.log("");
|
|
59
|
+
}
|
|
60
|
+
// Track results
|
|
61
|
+
const results = [];
|
|
62
|
+
let hasErrors = false;
|
|
63
|
+
// Install each skill
|
|
64
|
+
for (const skillName of localSkills) {
|
|
65
|
+
const localPath = getLocalSkillPath(resolvedPath, skillName);
|
|
66
|
+
const result = symlinkSkillToGlobal(localPath, skillName, {
|
|
67
|
+
force: options.force,
|
|
68
|
+
quiet: options.quiet,
|
|
69
|
+
});
|
|
70
|
+
results.push(result);
|
|
71
|
+
if (!result.success && result.action !== "already_linked") {
|
|
72
|
+
hasErrors = true;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Summary
|
|
76
|
+
if (!options.quiet) {
|
|
77
|
+
console.log("");
|
|
78
|
+
const created = results.filter((r) => r.action === "created").length;
|
|
79
|
+
const alreadyLinked = results.filter((r) => r.action === "already_linked").length;
|
|
80
|
+
const conflicts = results.filter((r) => r.action === "conflict").length;
|
|
81
|
+
const errors = results.filter((r) => r.action === "error").length;
|
|
82
|
+
if (created > 0) {
|
|
83
|
+
console.log(chalk.green(` ${created} skill(s) installed`));
|
|
84
|
+
}
|
|
85
|
+
if (alreadyLinked > 0) {
|
|
86
|
+
console.log(chalk.dim(` ${alreadyLinked} skill(s) already linked`));
|
|
87
|
+
}
|
|
88
|
+
if (conflicts > 0) {
|
|
89
|
+
console.log(chalk.yellow(` ${conflicts} conflict(s) - use --force to overwrite`));
|
|
90
|
+
}
|
|
91
|
+
if (errors > 0) {
|
|
92
|
+
console.log(chalk.red(` ${errors} error(s)`));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (hasErrors) {
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Parse and execute
|
|
100
|
+
program.parse(process.argv);
|
|
101
|
+
//# sourceMappingURL=nav-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-install.js","sourceRoot":"","sources":["../../src/cli/nav-install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-uninstall.d.ts","sourceRoot":"","sources":["../../src/cli/nav-uninstall.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import * as path from "node:path";
|
|
5
|
+
import * as fs from "node:fs";
|
|
6
|
+
import { discoverLocalSkills, removeSkillSymlink, getSkillSymlinkTarget, getLocalSkillPath, getGlobalSkillsDir, } from "../skill-generator/index.js";
|
|
7
|
+
/**
|
|
8
|
+
* Main CLI program
|
|
9
|
+
*/
|
|
10
|
+
const program = new Command();
|
|
11
|
+
program
|
|
12
|
+
.name("autonav uninstall")
|
|
13
|
+
.description("Uninstall navigator skills by removing global symlinks (preserves local skills)")
|
|
14
|
+
.version("1.0.0")
|
|
15
|
+
.argument("[path]", "Path to the navigator directory (default: current directory)", ".")
|
|
16
|
+
.option("-q, --quiet", "Suppress output")
|
|
17
|
+
.option("--no-color", "Disable colored output")
|
|
18
|
+
.action(async (navigatorPath, options) => {
|
|
19
|
+
await executeUninstall(navigatorPath, options);
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* Execute the uninstall command
|
|
23
|
+
*/
|
|
24
|
+
async function executeUninstall(navigatorPath, options) {
|
|
25
|
+
// Disable chalk if noColor is set
|
|
26
|
+
if (options.noColor) {
|
|
27
|
+
chalk.level = 0;
|
|
28
|
+
}
|
|
29
|
+
const resolvedPath = path.resolve(navigatorPath);
|
|
30
|
+
// Validate navigator exists
|
|
31
|
+
const configPath = path.join(resolvedPath, "config.json");
|
|
32
|
+
if (!fs.existsSync(configPath)) {
|
|
33
|
+
if (!options.quiet) {
|
|
34
|
+
console.error(chalk.red("Error:") + ` Not a navigator directory: ${resolvedPath}`);
|
|
35
|
+
console.error(chalk.dim(" Missing config.json"));
|
|
36
|
+
}
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
// Discover local skills
|
|
40
|
+
const localSkills = discoverLocalSkills(resolvedPath);
|
|
41
|
+
if (localSkills.length === 0) {
|
|
42
|
+
if (!options.quiet) {
|
|
43
|
+
console.log(chalk.yellow("No local skills found") + ` in ${resolvedPath}`);
|
|
44
|
+
console.log(chalk.dim(" Nothing to uninstall."));
|
|
45
|
+
}
|
|
46
|
+
process.exit(0);
|
|
47
|
+
}
|
|
48
|
+
if (!options.quiet) {
|
|
49
|
+
console.log(chalk.bold(`Uninstalling ${localSkills.length} skill(s) from ${resolvedPath}`));
|
|
50
|
+
console.log("");
|
|
51
|
+
}
|
|
52
|
+
// Track results
|
|
53
|
+
let removed = 0;
|
|
54
|
+
let notLinked = 0;
|
|
55
|
+
let skipped = 0;
|
|
56
|
+
let errors = 0;
|
|
57
|
+
// Uninstall each skill
|
|
58
|
+
for (const skillName of localSkills) {
|
|
59
|
+
const localPath = getLocalSkillPath(resolvedPath, skillName);
|
|
60
|
+
const globalPath = path.join(getGlobalSkillsDir(), skillName);
|
|
61
|
+
// Check if the symlink points to THIS navigator
|
|
62
|
+
const target = getSkillSymlinkTarget(skillName);
|
|
63
|
+
if (!target) {
|
|
64
|
+
// No symlink exists or it's not a symlink
|
|
65
|
+
if (!fs.existsSync(globalPath)) {
|
|
66
|
+
notLinked++;
|
|
67
|
+
if (!options.quiet) {
|
|
68
|
+
console.log(chalk.dim(` ${skillName}: not linked`));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
// Regular directory exists - skip it
|
|
73
|
+
skipped++;
|
|
74
|
+
if (!options.quiet) {
|
|
75
|
+
console.log(chalk.yellow(` ${skillName}: skipped (not a symlink, may belong to another nav)`));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
// Check if symlink points to our local path
|
|
81
|
+
const resolvedTarget = path.resolve(path.dirname(globalPath), target);
|
|
82
|
+
if (resolvedTarget !== localPath) {
|
|
83
|
+
skipped++;
|
|
84
|
+
if (!options.quiet) {
|
|
85
|
+
console.log(chalk.yellow(` ${skillName}: skipped (points to different location)`));
|
|
86
|
+
}
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
// Remove the symlink
|
|
90
|
+
const result = removeSkillSymlink(skillName, { quiet: options.quiet });
|
|
91
|
+
if (result.success && result.wasSymlink) {
|
|
92
|
+
removed++;
|
|
93
|
+
}
|
|
94
|
+
else if (!result.success) {
|
|
95
|
+
errors++;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// Summary
|
|
99
|
+
if (!options.quiet) {
|
|
100
|
+
console.log("");
|
|
101
|
+
if (removed > 0) {
|
|
102
|
+
console.log(chalk.green(` ${removed} symlink(s) removed`));
|
|
103
|
+
}
|
|
104
|
+
if (notLinked > 0) {
|
|
105
|
+
console.log(chalk.dim(` ${notLinked} skill(s) were not linked`));
|
|
106
|
+
}
|
|
107
|
+
if (skipped > 0) {
|
|
108
|
+
console.log(chalk.yellow(` ${skipped} skill(s) skipped`));
|
|
109
|
+
}
|
|
110
|
+
if (errors > 0) {
|
|
111
|
+
console.log(chalk.red(` ${errors} error(s)`));
|
|
112
|
+
}
|
|
113
|
+
console.log("");
|
|
114
|
+
console.log(chalk.dim("Local skills preserved in .autonav/skills/"));
|
|
115
|
+
console.log(chalk.dim("Re-run 'autonav install' to restore symlinks."));
|
|
116
|
+
}
|
|
117
|
+
if (errors > 0) {
|
|
118
|
+
process.exit(1);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Parse and execute
|
|
122
|
+
program.parse(process.argv);
|
|
123
|
+
//# sourceMappingURL=nav-uninstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-uninstall.js","sourceRoot":"","sources":["../../src/cli/nav-uninstall.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-update.d.ts","sourceRoot":"","sources":["../../src/cli/nav-update.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import ora from "ora";
|
|
5
|
+
import { ClaudeAdapter } from "../adapter/index.js";
|
|
6
|
+
import { loadNavigator, formatErrorMessage, NavigatorLoadError, } from "../query-engine/index.js";
|
|
7
|
+
/**
|
|
8
|
+
* Parse a human-readable duration string into milliseconds
|
|
9
|
+
* Supports formats: "30s", "1m", "1m30s", "90", "90000" (plain ms)
|
|
10
|
+
* Max timeout: 10 minutes (600000ms) to prevent overflow issues
|
|
11
|
+
*/
|
|
12
|
+
function parseDuration(input) {
|
|
13
|
+
const MAX_TIMEOUT_MS = 600000; // 10 minutes
|
|
14
|
+
// Try plain number first (milliseconds)
|
|
15
|
+
const plainNumber = Number(input);
|
|
16
|
+
if (!isNaN(plainNumber) && Number.isFinite(plainNumber)) {
|
|
17
|
+
const ms = Math.floor(plainNumber);
|
|
18
|
+
if (ms <= 0) {
|
|
19
|
+
throw new Error("Timeout must be positive");
|
|
20
|
+
}
|
|
21
|
+
return Math.min(ms, MAX_TIMEOUT_MS);
|
|
22
|
+
}
|
|
23
|
+
// Parse human-readable format: 1m30s, 30s, 2m, etc.
|
|
24
|
+
const pattern = /^(?:(\d+)m)?(?:(\d+)s)?$/i;
|
|
25
|
+
const match = input.trim().match(pattern);
|
|
26
|
+
if (!match || (!match[1] && !match[2])) {
|
|
27
|
+
throw new Error(`Invalid duration format: "${input}". Use formats like: 30s, 1m, 1m30s, or milliseconds`);
|
|
28
|
+
}
|
|
29
|
+
const minutes = match[1] ? parseInt(match[1], 10) : 0;
|
|
30
|
+
const seconds = match[2] ? parseInt(match[2], 10) : 0;
|
|
31
|
+
// Calculate total milliseconds with overflow protection
|
|
32
|
+
const totalMs = (minutes * 60 + seconds) * 1000;
|
|
33
|
+
if (totalMs <= 0) {
|
|
34
|
+
throw new Error("Timeout must be positive");
|
|
35
|
+
}
|
|
36
|
+
if (totalMs > MAX_TIMEOUT_MS) {
|
|
37
|
+
console.error(`Warning: Timeout capped at 10 minutes (was ${input})`);
|
|
38
|
+
return MAX_TIMEOUT_MS;
|
|
39
|
+
}
|
|
40
|
+
return totalMs;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Main CLI program
|
|
44
|
+
*/
|
|
45
|
+
const program = new Command();
|
|
46
|
+
program
|
|
47
|
+
.name("autonav update")
|
|
48
|
+
.description("Update a Platform AI navigator's documentation")
|
|
49
|
+
.version("1.0.0")
|
|
50
|
+
.argument("<navigator>", "Path to the navigator directory")
|
|
51
|
+
.argument("<message>", "Update message or report")
|
|
52
|
+
.option("--timeout <duration>", "Update timeout (e.g., 30s, 1m, 1m30s, or milliseconds)", parseDuration, 120000 // 2 minutes default (longer than query since it may need to write files)
|
|
53
|
+
)
|
|
54
|
+
.option("--verbose", "Show additional debug information")
|
|
55
|
+
.action(async (navigator, message, options) => {
|
|
56
|
+
await executeUpdate(navigator, message, options);
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* Execute the update command
|
|
60
|
+
*/
|
|
61
|
+
async function executeUpdate(navigatorPath, message, options) {
|
|
62
|
+
let spinner;
|
|
63
|
+
try {
|
|
64
|
+
// Show loading spinner
|
|
65
|
+
spinner = ora("Loading navigator...").start();
|
|
66
|
+
// Load navigator (sync, from query-engine)
|
|
67
|
+
const navigator = loadNavigator(navigatorPath);
|
|
68
|
+
if (spinner) {
|
|
69
|
+
spinner.succeed(`Loaded: ${chalk.bold(navigator.config.name)}`);
|
|
70
|
+
if (options.verbose) {
|
|
71
|
+
console.error(chalk.dim(`Knowledge base: ${navigator.knowledgeBasePath}`));
|
|
72
|
+
}
|
|
73
|
+
console.error(""); // Blank line
|
|
74
|
+
}
|
|
75
|
+
// Show update message
|
|
76
|
+
console.error(chalk.blue("📝") + " Update: " + chalk.italic(message));
|
|
77
|
+
console.error(""); // Blank line
|
|
78
|
+
spinner = ora("Updating documentation...").start();
|
|
79
|
+
// Initialize adapter
|
|
80
|
+
const adapter = new ClaudeAdapter();
|
|
81
|
+
// Execute update with timeout
|
|
82
|
+
const updatePromise = adapter.update(navigator, message);
|
|
83
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
84
|
+
setTimeout(() => {
|
|
85
|
+
reject(new Error(`Update timed out after ${options.timeout}ms`));
|
|
86
|
+
}, options.timeout);
|
|
87
|
+
});
|
|
88
|
+
const result = await Promise.race([updatePromise, timeoutPromise]);
|
|
89
|
+
if (spinner) {
|
|
90
|
+
spinner.succeed("Update completed");
|
|
91
|
+
console.error(""); // Blank line
|
|
92
|
+
}
|
|
93
|
+
// Output the result
|
|
94
|
+
console.log(result);
|
|
95
|
+
// Success message
|
|
96
|
+
console.error(""); // Blank line
|
|
97
|
+
console.error(chalk.green("✅") + " Documentation updated successfully!");
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
if (spinner) {
|
|
101
|
+
spinner.fail("Update failed");
|
|
102
|
+
console.error(""); // Blank line
|
|
103
|
+
}
|
|
104
|
+
// Handle different error types
|
|
105
|
+
if (error instanceof NavigatorLoadError) {
|
|
106
|
+
console.error(formatErrorMessage(error.message));
|
|
107
|
+
console.error("");
|
|
108
|
+
if (error.context?.missingFile === "config.json") {
|
|
109
|
+
console.error(chalk.dim("Create a new navigator:"));
|
|
110
|
+
console.error(chalk.dim(" autonav init <navigator-name>"));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else if (error instanceof Error) {
|
|
114
|
+
console.error(formatErrorMessage(error.message));
|
|
115
|
+
// Timeout error suggestions
|
|
116
|
+
if (error.message.includes("timed out")) {
|
|
117
|
+
console.error("");
|
|
118
|
+
console.error(chalk.bold("Try:"));
|
|
119
|
+
console.error(chalk.dim(` Increase timeout: autonav update "${navigatorPath}" "${message}" --timeout 3m`));
|
|
120
|
+
console.error(chalk.dim(" Simplify the update"));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
console.error(formatErrorMessage(String(error)));
|
|
125
|
+
}
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// Parse and execute
|
|
130
|
+
program.parse(process.argv);
|
|
131
|
+
//# sourceMappingURL=nav-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-update.js","sourceRoot":"","sources":["../../src/cli/nav-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/interview/App.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/interview/App.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAgIhE,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B,UAAU,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;CAC/C;AAED,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,aAAa,EACb,WAAW,EACX,eAAe,EACf,eAAe,EACf,UAAU,GACX,EAAE,iBAAiB,2CA4WnB"}
|