cortex-tms 3.2.0 ā 4.0.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.
- package/README.md +245 -526
- package/dist/cli.js +52 -32
- package/dist/cli.js.map +1 -1
- package/dist/commands/archive.d.ts +5 -0
- package/dist/commands/archive.d.ts.map +1 -0
- package/dist/commands/archive.js +85 -0
- package/dist/commands/archive.js.map +1 -0
- package/dist/commands/auto-tier.d.ts +1 -1
- package/dist/commands/auto-tier.d.ts.map +1 -1
- package/dist/commands/auto-tier.js +77 -76
- package/dist/commands/auto-tier.js.map +1 -1
- package/dist/commands/dashboard.d.ts +3 -0
- package/dist/commands/dashboard.d.ts.map +1 -0
- package/dist/commands/dashboard.js +20 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +73 -73
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate.d.ts +2 -2
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +147 -136
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/prompt.d.ts +1 -1
- package/dist/commands/prompt.d.ts.map +1 -1
- package/dist/commands/prompt.js +32 -31
- package/dist/commands/prompt.js.map +1 -1
- package/dist/commands/review.d.ts +1 -1
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +76 -58
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/status.d.ts +2 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +54 -144
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/tutorial.d.ts +1 -1
- package/dist/commands/tutorial.js +168 -168
- package/dist/commands/tutorial.js.map +1 -1
- package/dist/commands/validate.d.ts +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +60 -60
- package/dist/commands/validate.js.map +1 -1
- package/dist/types/cli.d.ts +23 -15
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/types/guardian.d.ts +2 -2
- package/dist/ui/components/Dashboard.d.ts +11 -0
- package/dist/ui/components/Dashboard.d.ts.map +1 -0
- package/dist/ui/components/Dashboard.js +64 -0
- package/dist/ui/components/Dashboard.js.map +1 -0
- package/dist/ui/components/dashboard/ContextReductionCard.d.ts +9 -0
- package/dist/ui/components/dashboard/ContextReductionCard.d.ts.map +1 -0
- package/dist/ui/components/dashboard/ContextReductionCard.js +38 -0
- package/dist/ui/components/dashboard/ContextReductionCard.js.map +1 -0
- package/dist/ui/components/dashboard/CostSavingsCard.d.ts +10 -0
- package/dist/ui/components/dashboard/CostSavingsCard.d.ts.map +1 -0
- package/dist/ui/components/dashboard/CostSavingsCard.js +45 -0
- package/dist/ui/components/dashboard/CostSavingsCard.js.map +1 -0
- package/dist/ui/components/dashboard/FileDistributionCard.d.ts +10 -0
- package/dist/ui/components/dashboard/FileDistributionCard.d.ts.map +1 -0
- package/dist/ui/components/dashboard/FileDistributionCard.js +51 -0
- package/dist/ui/components/dashboard/FileDistributionCard.js.map +1 -0
- package/dist/ui/components/dashboard/FileSizeHealthCard.d.ts +15 -0
- package/dist/ui/components/dashboard/FileSizeHealthCard.d.ts.map +1 -0
- package/dist/ui/components/dashboard/FileSizeHealthCard.js +48 -0
- package/dist/ui/components/dashboard/FileSizeHealthCard.js.map +1 -0
- package/dist/ui/components/dashboard/Footer.d.ts +3 -0
- package/dist/ui/components/dashboard/Footer.d.ts.map +1 -0
- package/dist/ui/components/dashboard/Footer.js +13 -0
- package/dist/ui/components/dashboard/Footer.js.map +1 -0
- package/dist/ui/components/dashboard/GovernanceHealthCard.d.ts +10 -0
- package/dist/ui/components/dashboard/GovernanceHealthCard.d.ts.map +1 -0
- package/dist/ui/components/dashboard/GovernanceHealthCard.js +46 -0
- package/dist/ui/components/dashboard/GovernanceHealthCard.js.map +1 -0
- package/dist/ui/components/dashboard/GuardianStatusCard.d.ts +10 -0
- package/dist/ui/components/dashboard/GuardianStatusCard.d.ts.map +1 -0
- package/dist/ui/components/dashboard/GuardianStatusCard.js +71 -0
- package/dist/ui/components/dashboard/GuardianStatusCard.js.map +1 -0
- package/dist/ui/components/dashboard/Header.d.ts +7 -0
- package/dist/ui/components/dashboard/Header.d.ts.map +1 -0
- package/dist/ui/components/dashboard/Header.js +21 -0
- package/dist/ui/components/dashboard/Header.js.map +1 -0
- package/dist/ui/components/dashboard/HotFilesCard.d.ts +8 -0
- package/dist/ui/components/dashboard/HotFilesCard.d.ts.map +1 -0
- package/dist/ui/components/dashboard/HotFilesCard.js +28 -0
- package/dist/ui/components/dashboard/HotFilesCard.js.map +1 -0
- package/dist/ui/components/dashboard/NotConfiguredCard.d.ts +10 -0
- package/dist/ui/components/dashboard/NotConfiguredCard.d.ts.map +1 -0
- package/dist/ui/components/dashboard/NotConfiguredCard.js +13 -0
- package/dist/ui/components/dashboard/NotConfiguredCard.js.map +1 -0
- package/dist/ui/components/dashboard/SprintProgressCard.d.ts +11 -0
- package/dist/ui/components/dashboard/SprintProgressCard.d.ts.map +1 -0
- package/dist/ui/components/dashboard/SprintProgressCard.js +33 -0
- package/dist/ui/components/dashboard/SprintProgressCard.js.map +1 -0
- package/dist/ui/components/dashboard/StalenessCard.d.ts +10 -0
- package/dist/ui/components/dashboard/StalenessCard.d.ts.map +1 -0
- package/dist/ui/components/dashboard/StalenessCard.js +43 -0
- package/dist/ui/components/dashboard/StalenessCard.js.map +1 -0
- package/dist/ui/components/dashboard/TabBar.d.ts +8 -0
- package/dist/ui/components/dashboard/TabBar.d.ts.map +1 -0
- package/dist/ui/components/dashboard/TabBar.js +16 -0
- package/dist/ui/components/dashboard/TabBar.js.map +1 -0
- package/dist/ui/components/dashboard/ValidationCard.d.ts +10 -0
- package/dist/ui/components/dashboard/ValidationCard.d.ts.map +1 -0
- package/dist/ui/components/dashboard/ValidationCard.js +62 -0
- package/dist/ui/components/dashboard/ValidationCard.js.map +1 -0
- package/dist/ui/components/dashboard/ViewContainer.d.ts +14 -0
- package/dist/ui/components/dashboard/ViewContainer.d.ts.map +1 -0
- package/dist/ui/components/dashboard/ViewContainer.js +53 -0
- package/dist/ui/components/dashboard/ViewContainer.js.map +1 -0
- package/dist/ui/components/dashboard/index.d.ts +14 -0
- package/dist/ui/components/dashboard/index.d.ts.map +1 -0
- package/dist/ui/components/dashboard/index.js +14 -0
- package/dist/ui/components/dashboard/index.js.map +1 -0
- package/dist/ui/index.d.ts +5 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +46 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/utils/backup.d.ts.map +1 -1
- package/dist/utils/backup.js +20 -20
- package/dist/utils/backup.js.map +1 -1
- package/dist/utils/config.d.ts +1 -1
- package/dist/utils/config.js +68 -68
- package/dist/utils/detection.d.ts +1 -1
- package/dist/utils/detection.js +25 -25
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +4 -4
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/git-history.d.ts.map +1 -1
- package/dist/utils/git-history.js +9 -5
- package/dist/utils/git-history.js.map +1 -1
- package/dist/utils/git-staleness.d.ts +13 -0
- package/dist/utils/git-staleness.d.ts.map +1 -0
- package/dist/utils/git-staleness.js +129 -0
- package/dist/utils/git-staleness.js.map +1 -0
- package/dist/utils/guardian-prompt.d.ts.map +1 -1
- package/dist/utils/guardian-prompt.js +1 -1
- package/dist/utils/guardian-prompt.js.map +1 -1
- package/dist/utils/llm-client.d.ts +5 -5
- package/dist/utils/llm-client.d.ts.map +1 -1
- package/dist/utils/llm-client.js +56 -53
- package/dist/utils/llm-client.js.map +1 -1
- package/dist/utils/prompt-parser.d.ts.map +1 -1
- package/dist/utils/prompt-parser.js +13 -17
- package/dist/utils/prompt-parser.js.map +1 -1
- package/dist/utils/prompts.d.ts +1 -1
- package/dist/utils/prompts.d.ts.map +1 -1
- package/dist/utils/prompts.js +74 -49
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/sanitize.js +6 -6
- package/dist/utils/sanitize.js.map +1 -1
- package/dist/utils/stats-collector.d.ts +56 -0
- package/dist/utils/stats-collector.d.ts.map +1 -0
- package/dist/utils/stats-collector.js +244 -0
- package/dist/utils/stats-collector.js.map +1 -0
- package/dist/utils/status.d.ts +1 -1
- package/dist/utils/status.d.ts.map +1 -1
- package/dist/utils/status.js +16 -16
- package/dist/utils/status.js.map +1 -1
- package/dist/utils/templates.d.ts +3 -3
- package/dist/utils/templates.d.ts.map +1 -1
- package/dist/utils/templates.js +59 -54
- package/dist/utils/templates.js.map +1 -1
- package/dist/utils/tier-tags.d.ts +1 -1
- package/dist/utils/tier-tags.js +2 -2
- package/dist/utils/token-counter.d.ts +1 -43
- package/dist/utils/token-counter.d.ts.map +1 -1
- package/dist/utils/token-counter.js +32 -80
- package/dist/utils/token-counter.js.map +1 -1
- package/dist/utils/validation.d.ts +2 -11
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +26 -39
- package/dist/utils/validation.js.map +1 -1
- package/dist/utils/validator.d.ts +1 -1
- package/dist/utils/validator.d.ts.map +1 -1
- package/dist/utils/validator.js +145 -73
- package/dist/utils/validator.js.map +1 -1
- package/package.json +10 -5
- package/templates/CLAUDE.md +1 -1
- package/templates/FUTURE-ENHANCEMENTS.md +1 -1
- package/templates/NEXT-TASKS.md +1 -1
- package/templates/PROMPTS.md +1 -1
- package/templates/README.md +1 -1
- package/templates/docs/archive/v1.0-CHANGELOG.md +1 -1
- package/templates/docs/core/ARCHITECTURE.md +1 -1
- package/templates/docs/core/DECISIONS.md +1 -1
- package/templates/docs/core/DOMAIN-LOGIC.md +1 -1
- package/templates/docs/core/GLOSSARY.md +1 -1
- package/templates/docs/core/PATTERNS.md +1 -1
- package/templates/docs/core/SCHEMA.md +1 -1
- package/templates/docs/core/TROUBLESHOOTING.md +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { Command } from
|
|
3
|
-
import { readFileSync } from
|
|
4
|
-
import { fileURLToPath } from
|
|
5
|
-
import { dirname, join } from
|
|
6
|
-
import chalk from
|
|
7
|
-
import { CLIError, ValidationError, formatError } from
|
|
8
|
-
import { sanitizeApiKey } from
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import { readFileSync } from "fs";
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
5
|
+
import { dirname, join } from "path";
|
|
6
|
+
import chalk from "chalk";
|
|
7
|
+
import { CLIError, ValidationError, formatError } from "./utils/errors.js";
|
|
8
|
+
import { sanitizeApiKey } from "./utils/sanitize.js";
|
|
9
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
10
10
|
const __dirname = dirname(__filename);
|
|
11
|
-
const packageJson = JSON.parse(readFileSync(join(__dirname,
|
|
11
|
+
const packageJson = JSON.parse(readFileSync(join(__dirname, "../package.json"), "utf-8"));
|
|
12
12
|
const program = new Command();
|
|
13
13
|
program
|
|
14
|
-
.name(
|
|
15
|
-
.description(chalk.bold(
|
|
16
|
-
|
|
17
|
-
chalk.gray(
|
|
18
|
-
chalk.gray(
|
|
19
|
-
.version(packageJson.version,
|
|
20
|
-
.helpOption(
|
|
21
|
-
import { initCommand } from
|
|
22
|
-
import { validateCommand } from
|
|
23
|
-
import { statusCommand } from
|
|
24
|
-
import { migrateCommand } from
|
|
25
|
-
import { promptCommand } from
|
|
26
|
-
import { tutorialCommand } from
|
|
27
|
-
import { reviewCommand } from
|
|
28
|
-
import {
|
|
14
|
+
.name("cortex-tms")
|
|
15
|
+
.description(chalk.bold("š§ Cortex TMS") +
|
|
16
|
+
"\n" +
|
|
17
|
+
chalk.gray("The Universal AI-Optimized Project Boilerplate\n") +
|
|
18
|
+
chalk.gray("Initialize your project with TMS documentation structure"))
|
|
19
|
+
.version(packageJson.version, "-v, --version", "Output the current version")
|
|
20
|
+
.helpOption("-h, --help", "Display help for command");
|
|
21
|
+
import { initCommand } from "./commands/init.js";
|
|
22
|
+
import { validateCommand } from "./commands/validate.js";
|
|
23
|
+
import { statusCommand } from "./commands/status.js";
|
|
24
|
+
import { migrateCommand } from "./commands/migrate.js";
|
|
25
|
+
import { promptCommand } from "./commands/prompt.js";
|
|
26
|
+
import { tutorialCommand } from "./commands/tutorial.js";
|
|
27
|
+
import { reviewCommand } from "./commands/review.js";
|
|
28
|
+
import { archiveCommand } from "./commands/archive.js";
|
|
29
|
+
import { dashboardCommand } from "./commands/dashboard.js";
|
|
29
30
|
program.addCommand(initCommand);
|
|
30
31
|
program.addCommand(validateCommand);
|
|
31
32
|
program.addCommand(statusCommand);
|
|
@@ -33,10 +34,26 @@ program.addCommand(migrateCommand);
|
|
|
33
34
|
program.addCommand(promptCommand);
|
|
34
35
|
program.addCommand(tutorialCommand);
|
|
35
36
|
program.addCommand(reviewCommand);
|
|
36
|
-
program.addCommand(
|
|
37
|
-
program.
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
program.addCommand(archiveCommand);
|
|
38
|
+
program.addCommand(dashboardCommand);
|
|
39
|
+
const autoTierDeprecated = new Command("auto-tier")
|
|
40
|
+
.description(chalk.yellow('ā ļø DEPRECATED: Use "cortex-tms archive" instead'))
|
|
41
|
+
.option("--dry-run", "Preview what would be archived")
|
|
42
|
+
.action(async (options) => {
|
|
43
|
+
console.log(chalk.yellow("\nā ļø DEPRECATION WARNING"));
|
|
44
|
+
console.log(chalk.gray(' The "auto-tier" command is deprecated and will be removed in v5.0'));
|
|
45
|
+
console.log(chalk.gray(" Please use"), chalk.cyan("cortex-tms archive"), chalk.gray("instead\n"));
|
|
46
|
+
await archiveCommand.parseAsync([
|
|
47
|
+
"node",
|
|
48
|
+
"cortex-tms",
|
|
49
|
+
"archive",
|
|
50
|
+
...(options.dryRun ? ["--dry-run"] : []),
|
|
51
|
+
]);
|
|
52
|
+
});
|
|
53
|
+
program.addCommand(autoTierDeprecated);
|
|
54
|
+
program.on("command:*", () => {
|
|
55
|
+
throw new ValidationError("Invalid command", {
|
|
56
|
+
command: program.args.join(" "),
|
|
40
57
|
hint: 'Run "cortex-tms --help" to see available commands',
|
|
41
58
|
});
|
|
42
59
|
});
|
|
@@ -46,16 +63,19 @@ try {
|
|
|
46
63
|
}
|
|
47
64
|
catch (error) {
|
|
48
65
|
if (error instanceof CLIError) {
|
|
49
|
-
console.error(chalk.red(
|
|
66
|
+
console.error(chalk.red("\nā Error:"), formatError(error));
|
|
50
67
|
process.exit(error.exitCode);
|
|
51
68
|
}
|
|
52
69
|
if (error instanceof Error) {
|
|
53
|
-
if (
|
|
54
|
-
|
|
70
|
+
if ("code" in error && typeof error.code === "string") {
|
|
71
|
+
const exitCode = "exitCode" in error && typeof error.exitCode === "number"
|
|
72
|
+
? error.exitCode
|
|
73
|
+
: 1;
|
|
74
|
+
process.exit(exitCode);
|
|
55
75
|
}
|
|
56
|
-
if (!error.message.includes(
|
|
76
|
+
if (!error.message.includes("(outputHelp)")) {
|
|
57
77
|
const sanitizedMessage = sanitizeApiKey(error.message);
|
|
58
|
-
console.error(chalk.red(
|
|
78
|
+
console.error(chalk.red("\nā Error:"), sanitizedMessage);
|
|
59
79
|
}
|
|
60
80
|
}
|
|
61
81
|
process.exit(1);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AASA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAGtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAC1D,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAG9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CACV,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;IACzB,IAAI;IACJ,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CACzE;KACA,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,4BAA4B,CAAC;KAC3E,UAAU,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/commands/archive.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,oBAAoB,IAAI,OAAO,CAc9C;AA+GD,eAAO,MAAM,cAAc,SAAyB,CAAC;AACrD,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import ora from "ora";
|
|
4
|
+
import { readFile, writeFile, mkdir } from "fs/promises";
|
|
5
|
+
import { join } from "path";
|
|
6
|
+
import { existsSync } from "fs";
|
|
7
|
+
export function createArchiveCommand() {
|
|
8
|
+
const archiveCommand = new Command("archive");
|
|
9
|
+
archiveCommand
|
|
10
|
+
.description("Archive completed tasks and old content")
|
|
11
|
+
.option("--dry-run", "Preview what would be archived without making changes")
|
|
12
|
+
.action(async (options) => {
|
|
13
|
+
await runArchive(options);
|
|
14
|
+
});
|
|
15
|
+
return archiveCommand;
|
|
16
|
+
}
|
|
17
|
+
async function runArchive(options) {
|
|
18
|
+
const cwd = process.cwd();
|
|
19
|
+
const nextTasksPath = join(cwd, "NEXT-TASKS.md");
|
|
20
|
+
const archiveDir = join(cwd, "docs", "archive");
|
|
21
|
+
console.log(chalk.bold.cyan("\nš¦ Cortex TMS Archive\n"));
|
|
22
|
+
if (!existsSync(nextTasksPath)) {
|
|
23
|
+
console.log(chalk.yellow("ā ļø NEXT-TASKS.md not found in current directory"));
|
|
24
|
+
console.log(chalk.gray(" Run this command from your project root\n"));
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const spinner = ora("Analyzing tasks...").start();
|
|
28
|
+
try {
|
|
29
|
+
const content = await readFile(nextTasksPath, "utf-8");
|
|
30
|
+
const lines = content.split("\n");
|
|
31
|
+
const completedTaskLines = lines.filter((line) => line.includes("ā
") ||
|
|
32
|
+
/\[x\]/i.test(line) ||
|
|
33
|
+
line.includes("COMPLETED"));
|
|
34
|
+
spinner.succeed(`Found ${completedTaskLines.length} completed task markers`);
|
|
35
|
+
if (completedTaskLines.length === 0) {
|
|
36
|
+
console.log(chalk.green("\nā No completed tasks to archive"));
|
|
37
|
+
console.log(chalk.gray(" NEXT-TASKS.md is already clean\n"));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (options.dryRun) {
|
|
41
|
+
console.log(chalk.bold("\nš Archive Preview (Dry Run)\n"));
|
|
42
|
+
console.log(chalk.gray(" The following would be archived:\n"));
|
|
43
|
+
completedTaskLines.slice(0, 5).forEach((line) => {
|
|
44
|
+
console.log(chalk.gray(` ${line.trim().substring(0, 80)}...`));
|
|
45
|
+
});
|
|
46
|
+
if (completedTaskLines.length > 5) {
|
|
47
|
+
console.log(chalk.gray(` ... and ${completedTaskLines.length - 5} more\n`));
|
|
48
|
+
}
|
|
49
|
+
console.log(chalk.yellow("\nā ļø Run without --dry-run to actually archive\n"));
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (!existsSync(archiveDir)) {
|
|
53
|
+
await mkdir(archiveDir, { recursive: true });
|
|
54
|
+
}
|
|
55
|
+
const timestamp = new Date().toISOString().split("T")[0];
|
|
56
|
+
const archiveFilename = `completed-tasks-${timestamp}.md`;
|
|
57
|
+
const archivePath = join(archiveDir, archiveFilename);
|
|
58
|
+
const archiveContent = `# Completed Tasks - Archived ${timestamp}
|
|
59
|
+
|
|
60
|
+
This file contains tasks that were completed and archived from NEXT-TASKS.md.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
${completedTaskLines.join("\n")}
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
Archived on: ${new Date().toISOString()}
|
|
69
|
+
`;
|
|
70
|
+
await writeFile(archivePath, archiveContent, "utf-8");
|
|
71
|
+
console.log(chalk.bold("\n⨠Archive Complete\n"));
|
|
72
|
+
console.log(chalk.green(` ā Archived ${completedTaskLines.length} completed tasks`));
|
|
73
|
+
console.log(chalk.gray(` ā Saved to: ${archivePath.replace(cwd, ".")}\n`));
|
|
74
|
+
console.log(chalk.yellow("ā ļø Note: NEXT-TASKS.md was not modified"));
|
|
75
|
+
console.log(chalk.gray(" Manually remove completed tasks from NEXT-TASKS.md"));
|
|
76
|
+
console.log(chalk.gray(" Or use `cortex-tms validate` to check for cleanup recommendations\n"));
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
spinner.fail("Archive failed");
|
|
80
|
+
throw error instanceof Error ? error : new Error("Unknown error");
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
export const archiveCommand = createArchiveCommand();
|
|
84
|
+
export default createArchiveCommand;
|
|
85
|
+
//# sourceMappingURL=archive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/commands/archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-tier.d.ts","sourceRoot":"","sources":["../../src/commands/auto-tier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-tier.d.ts","sourceRoot":"","sources":["../../src/commands/auto-tier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6HpC,wBAAgB,qBAAqB,IAAI,OAAO,CAqB/C;AAiQD,eAAO,MAAM,eAAe,SAA0B,CAAC"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { Command } from
|
|
2
|
-
import chalk from
|
|
3
|
-
import ora from
|
|
4
|
-
import { glob } from
|
|
5
|
-
import { readFile, writeFile } from
|
|
6
|
-
import { isGitRepo, analyzeFileHistory } from
|
|
7
|
-
import { readTierTag, writeTierTag } from
|
|
8
|
-
import { GitError } from
|
|
9
|
-
import { autoTierOptionsSchema, validateOptions } from
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import ora from "ora";
|
|
4
|
+
import { glob } from "glob";
|
|
5
|
+
import { readFile, writeFile } from "fs/promises";
|
|
6
|
+
import { isGitRepo, analyzeFileHistory, } from "../utils/git-history.js";
|
|
7
|
+
import { readTierTag, writeTierTag } from "../utils/tier-tags.js";
|
|
8
|
+
import { GitError } from "../utils/errors.js";
|
|
9
|
+
import { autoTierOptionsSchema, validateOptions } from "../utils/validation.js";
|
|
10
10
|
const MANDATORY_HOT = [
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
"NEXT-TASKS.md",
|
|
12
|
+
"CLAUDE.md",
|
|
13
|
+
".github/copilot-instructions.md",
|
|
14
|
+
"docs/core/PATTERNS.md",
|
|
15
|
+
"docs/core/GLOSSARY.md",
|
|
16
16
|
];
|
|
17
17
|
function isCanonicalHot(filePath) {
|
|
18
18
|
return MANDATORY_HOT.includes(filePath);
|
|
@@ -22,12 +22,12 @@ function calculateFileScore(filePath, daysSinceChange, hotDays) {
|
|
|
22
22
|
if (isCanonicalHot(filePath)) {
|
|
23
23
|
score += 100;
|
|
24
24
|
}
|
|
25
|
-
if (filePath.startsWith(
|
|
25
|
+
if (filePath.startsWith("docs/")) {
|
|
26
26
|
score += 40;
|
|
27
|
-
if (filePath.startsWith(
|
|
27
|
+
if (filePath.startsWith("docs/core/")) {
|
|
28
28
|
score += 10;
|
|
29
29
|
}
|
|
30
|
-
if (filePath.startsWith(
|
|
30
|
+
if (filePath.startsWith("docs/archive/")) {
|
|
31
31
|
score -= 60;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -40,65 +40,65 @@ function calculateFileScore(filePath, daysSinceChange, hotDays) {
|
|
|
40
40
|
return score;
|
|
41
41
|
}
|
|
42
42
|
function getDirectoryBasedTier(filePath) {
|
|
43
|
-
if (filePath.startsWith(
|
|
44
|
-
return { tier:
|
|
43
|
+
if (filePath.startsWith("docs/archive/")) {
|
|
44
|
+
return { tier: "COLD", directory: "docs/archive/" };
|
|
45
45
|
}
|
|
46
|
-
if (filePath.startsWith(
|
|
47
|
-
return { tier:
|
|
46
|
+
if (filePath.startsWith("examples/")) {
|
|
47
|
+
return { tier: "COLD", directory: "examples/" };
|
|
48
48
|
}
|
|
49
|
-
if (filePath.startsWith(
|
|
50
|
-
return { tier:
|
|
49
|
+
if (filePath.startsWith("templates/")) {
|
|
50
|
+
return { tier: "WARM", directory: "templates/" };
|
|
51
51
|
}
|
|
52
|
-
if (filePath.startsWith(
|
|
53
|
-
return { tier:
|
|
52
|
+
if (filePath.startsWith("docs/guides/")) {
|
|
53
|
+
return { tier: "WARM", directory: "docs/guides/" };
|
|
54
54
|
}
|
|
55
|
-
if (filePath.startsWith(
|
|
56
|
-
return { tier:
|
|
55
|
+
if (filePath.startsWith("docs/tasks/")) {
|
|
56
|
+
return { tier: "WARM", directory: "docs/tasks/" };
|
|
57
57
|
}
|
|
58
58
|
return null;
|
|
59
59
|
}
|
|
60
60
|
export function createAutoTierCommand() {
|
|
61
|
-
const cmd = new Command(
|
|
61
|
+
const cmd = new Command("auto-tier");
|
|
62
62
|
cmd
|
|
63
|
-
.description(
|
|
64
|
-
.option(
|
|
65
|
-
.option(
|
|
66
|
-
.option(
|
|
67
|
-
.option(
|
|
68
|
-
.option(
|
|
69
|
-
.option(
|
|
70
|
-
.option(
|
|
63
|
+
.description("Analyze and apply tier tags based on git history (use --dry-run to preview)")
|
|
64
|
+
.option("--hot <days>", "Files modified ā¤N days ago get recency bonus", "7")
|
|
65
|
+
.option("--warm <days>", "Files modified ā¤N days ago ā WARM (aging beyond this stays WARM until --cold)", "30")
|
|
66
|
+
.option("--cold <days>", "Files older than N days ā COLD", "90")
|
|
67
|
+
.option("--max-hot <count>", "Maximum number of HOT files (capped)", "10")
|
|
68
|
+
.option("-d, --dry-run", "Preview changes without applying")
|
|
69
|
+
.option("-f, --force", "Overwrite existing tier tags")
|
|
70
|
+
.option("-v, --verbose", "Show detailed output")
|
|
71
71
|
.action(runAutoTier);
|
|
72
72
|
return cmd;
|
|
73
73
|
}
|
|
74
74
|
async function runAutoTier(options) {
|
|
75
75
|
const cwd = process.cwd();
|
|
76
|
-
const validated = validateOptions(autoTierOptionsSchema, options,
|
|
76
|
+
const validated = validateOptions(autoTierOptionsSchema, options, "auto-tier");
|
|
77
77
|
const hotDays = validated.hot;
|
|
78
78
|
const warmDays = validated.warm;
|
|
79
79
|
const coldDays = validated.cold;
|
|
80
80
|
const maxHotFiles = validated.maxHot ?? 10;
|
|
81
|
-
console.log(chalk.bold.cyan(
|
|
81
|
+
console.log(chalk.bold.cyan("\nš Git-Based Auto-Tiering\n"));
|
|
82
82
|
if (!isGitRepo(cwd)) {
|
|
83
|
-
throw new GitError(
|
|
83
|
+
throw new GitError("Not a git repository. Run this command in a git-initialized project.");
|
|
84
84
|
}
|
|
85
85
|
if (options.dryRun) {
|
|
86
|
-
console.log(chalk.yellow(
|
|
86
|
+
console.log(chalk.yellow("š DRY RUN MODE: No files will be modified.\n"));
|
|
87
87
|
}
|
|
88
|
-
const spinner = ora(
|
|
89
|
-
const files = await glob(
|
|
88
|
+
const spinner = ora("Analyzing git history...").start();
|
|
89
|
+
const files = await glob("**/*.md", {
|
|
90
90
|
cwd,
|
|
91
91
|
dot: true,
|
|
92
|
-
ignore: [
|
|
92
|
+
ignore: ["**/node_modules/**", ".git/**", "**/dist/**"],
|
|
93
93
|
});
|
|
94
94
|
const gitInfo = analyzeFileHistory(cwd, files);
|
|
95
|
-
spinner.text =
|
|
95
|
+
spinner.text = "Calculating tier suggestions...";
|
|
96
96
|
const scoredFiles = [];
|
|
97
97
|
for (const info of gitInfo) {
|
|
98
98
|
if (!info.isTracked) {
|
|
99
99
|
continue;
|
|
100
100
|
}
|
|
101
|
-
const content = await readFile(info.path,
|
|
101
|
+
const content = await readFile(info.path, "utf-8");
|
|
102
102
|
const currentTier = readTierTag(content);
|
|
103
103
|
if (currentTier && !options.force && !isCanonicalHot(info.path)) {
|
|
104
104
|
continue;
|
|
@@ -123,10 +123,11 @@ async function runAutoTier(options) {
|
|
|
123
123
|
const { info, currentTier } = scored;
|
|
124
124
|
let suggestedTier;
|
|
125
125
|
let reason;
|
|
126
|
-
if (hotCount < maxHotFiles &&
|
|
127
|
-
|
|
126
|
+
if (hotCount < maxHotFiles &&
|
|
127
|
+
(isCanonicalHot(info.path) || scored.score >= 40)) {
|
|
128
|
+
suggestedTier = "HOT";
|
|
128
129
|
reason = isCanonicalHot(info.path)
|
|
129
|
-
?
|
|
130
|
+
? "Canonical HOT file"
|
|
130
131
|
: `High-value doc (score: ${scored.score})`;
|
|
131
132
|
hotCount++;
|
|
132
133
|
}
|
|
@@ -137,27 +138,27 @@ async function runAutoTier(options) {
|
|
|
137
138
|
reason = `Directory convention: ${dirResult.directory}`;
|
|
138
139
|
}
|
|
139
140
|
else if (info.daysSinceChange <= warmDays) {
|
|
140
|
-
suggestedTier =
|
|
141
|
+
suggestedTier = "WARM";
|
|
141
142
|
reason = `Modified ${Math.round(info.daysSinceChange)} days ago`;
|
|
142
143
|
}
|
|
143
144
|
else if (info.daysSinceChange <= coldDays) {
|
|
144
|
-
suggestedTier =
|
|
145
|
+
suggestedTier = "WARM";
|
|
145
146
|
reason = `Modified ${Math.round(info.daysSinceChange)} days ago (aging)`;
|
|
146
147
|
}
|
|
147
148
|
else {
|
|
148
|
-
suggestedTier =
|
|
149
|
+
suggestedTier = "COLD";
|
|
149
150
|
reason = `No changes in ${Math.round(info.daysSinceChange)} days`;
|
|
150
151
|
}
|
|
151
152
|
}
|
|
152
153
|
let action;
|
|
153
154
|
if (!currentTier) {
|
|
154
|
-
action =
|
|
155
|
+
action = "CREATE";
|
|
155
156
|
}
|
|
156
157
|
else if (currentTier !== suggestedTier) {
|
|
157
|
-
action =
|
|
158
|
+
action = "UPDATE";
|
|
158
159
|
}
|
|
159
160
|
else {
|
|
160
|
-
action =
|
|
161
|
+
action = "SKIP";
|
|
161
162
|
}
|
|
162
163
|
suggestions.push({
|
|
163
164
|
path: info.path,
|
|
@@ -171,18 +172,18 @@ async function runAutoTier(options) {
|
|
|
171
172
|
for (const info of gitInfo) {
|
|
172
173
|
if (!info.isTracked)
|
|
173
174
|
continue;
|
|
174
|
-
const content = await readFile(info.path,
|
|
175
|
+
const content = await readFile(info.path, "utf-8");
|
|
175
176
|
const currentTier = readTierTag(content);
|
|
176
177
|
if (currentTier && !options.force) {
|
|
177
|
-
const alreadyAdded = suggestions.some(s => s.path === info.path);
|
|
178
|
+
const alreadyAdded = suggestions.some((s) => s.path === info.path);
|
|
178
179
|
if (!alreadyAdded) {
|
|
179
180
|
suggestions.push({
|
|
180
181
|
path: info.path,
|
|
181
182
|
currentTier,
|
|
182
183
|
suggestedTier: currentTier,
|
|
183
|
-
reason:
|
|
184
|
+
reason: "Explicit tier tag (use --force to override)",
|
|
184
185
|
daysSinceChange: info.daysSinceChange,
|
|
185
|
-
action:
|
|
186
|
+
action: "SKIP",
|
|
186
187
|
});
|
|
187
188
|
}
|
|
188
189
|
}
|
|
@@ -194,13 +195,13 @@ async function runAutoTier(options) {
|
|
|
194
195
|
}
|
|
195
196
|
}
|
|
196
197
|
function printSuggestions(suggestions, verbose) {
|
|
197
|
-
const toChange = suggestions.filter(s => s.action !==
|
|
198
|
+
const toChange = suggestions.filter((s) => s.action !== "SKIP");
|
|
198
199
|
const byTier = { HOT: [], WARM: [], COLD: [] };
|
|
199
|
-
toChange.forEach(s => byTier[s.suggestedTier].push(s));
|
|
200
|
-
console.log(chalk.bold(
|
|
200
|
+
toChange.forEach((s) => byTier[s.suggestedTier].push(s));
|
|
201
|
+
console.log(chalk.bold("\nš Tier Suggestions:\n"));
|
|
201
202
|
console.log(chalk.red.bold(`š„ HOT (${byTier.HOT.length} files)`));
|
|
202
|
-
byTier.HOT.slice(0, 10).forEach(s => {
|
|
203
|
-
const actionIcon = s.action ===
|
|
203
|
+
byTier.HOT.slice(0, 10).forEach((s) => {
|
|
204
|
+
const actionIcon = s.action === "CREATE" ? "āØ" : s.action === "UPDATE" ? "š" : "ā";
|
|
204
205
|
console.log(` ${actionIcon} ${s.path}`);
|
|
205
206
|
if (verbose)
|
|
206
207
|
console.log(chalk.gray(` ${s.reason}`));
|
|
@@ -208,8 +209,8 @@ function printSuggestions(suggestions, verbose) {
|
|
|
208
209
|
if (byTier.HOT.length > 10)
|
|
209
210
|
console.log(chalk.gray(` ... and ${byTier.HOT.length - 10} more`));
|
|
210
211
|
console.log(chalk.yellow.bold(`\nš WARM (${byTier.WARM.length} files)`));
|
|
211
|
-
byTier.WARM.slice(0, 10).forEach(s => {
|
|
212
|
-
const actionIcon = s.action ===
|
|
212
|
+
byTier.WARM.slice(0, 10).forEach((s) => {
|
|
213
|
+
const actionIcon = s.action === "CREATE" ? "āØ" : s.action === "UPDATE" ? "š" : "ā";
|
|
213
214
|
console.log(` ${actionIcon} ${s.path}`);
|
|
214
215
|
if (verbose)
|
|
215
216
|
console.log(chalk.gray(` ${s.reason}`));
|
|
@@ -217,31 +218,31 @@ function printSuggestions(suggestions, verbose) {
|
|
|
217
218
|
if (byTier.WARM.length > 10)
|
|
218
219
|
console.log(chalk.gray(` ... and ${byTier.WARM.length - 10} more`));
|
|
219
220
|
console.log(chalk.blue.bold(`\nāļø COLD (${byTier.COLD.length} files)`));
|
|
220
|
-
byTier.COLD.slice(0, 5).forEach(s => {
|
|
221
|
-
const actionIcon = s.action ===
|
|
221
|
+
byTier.COLD.slice(0, 5).forEach((s) => {
|
|
222
|
+
const actionIcon = s.action === "CREATE" ? "āØ" : s.action === "UPDATE" ? "š" : "ā";
|
|
222
223
|
console.log(` ${actionIcon} ${s.path}`);
|
|
223
224
|
if (verbose)
|
|
224
225
|
console.log(chalk.gray(` ${s.reason}`));
|
|
225
226
|
});
|
|
226
227
|
if (byTier.COLD.length > 5)
|
|
227
228
|
console.log(chalk.gray(` ... and ${byTier.COLD.length - 5} more`));
|
|
228
|
-
const toCreate = suggestions.filter(s => s.action ===
|
|
229
|
-
const toUpdate = suggestions.filter(s => s.action ===
|
|
230
|
-
console.log(chalk.bold(
|
|
231
|
-
console.log(` ${chalk.green(
|
|
232
|
-
console.log(` ${chalk.blue(
|
|
229
|
+
const toCreate = suggestions.filter((s) => s.action === "CREATE").length;
|
|
230
|
+
const toUpdate = suggestions.filter((s) => s.action === "UPDATE").length;
|
|
231
|
+
console.log(chalk.bold("\nš Summary:"));
|
|
232
|
+
console.log(` ${chalk.green("⨠CREATE:")} ${toCreate} new tier tags`);
|
|
233
|
+
console.log(` ${chalk.blue("š UPDATE:")} ${toUpdate} tier changes`);
|
|
233
234
|
}
|
|
234
235
|
async function applyChanges(suggestions) {
|
|
235
|
-
const toApply = suggestions.filter(s => s.action !==
|
|
236
|
+
const toApply = suggestions.filter((s) => s.action !== "SKIP");
|
|
236
237
|
if (toApply.length === 0) {
|
|
237
|
-
console.log(chalk.gray(
|
|
238
|
+
console.log(chalk.gray("\nā No changes to apply."));
|
|
238
239
|
return;
|
|
239
240
|
}
|
|
240
241
|
const spinner = ora(`Applying ${toApply.length} changes...`).start();
|
|
241
242
|
for (const suggestion of toApply) {
|
|
242
|
-
const content = await readFile(suggestion.path,
|
|
243
|
+
const content = await readFile(suggestion.path, "utf-8");
|
|
243
244
|
const updated = writeTierTag(content, suggestion.suggestedTier);
|
|
244
|
-
await writeFile(suggestion.path, updated,
|
|
245
|
+
await writeFile(suggestion.path, updated, "utf-8");
|
|
245
246
|
}
|
|
246
247
|
spinner.succeed(`Applied ${toApply.length} tier tags`);
|
|
247
248
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-tier.js","sourceRoot":"","sources":["../../src/commands/auto-tier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auto-tier.js","sourceRoot":"","sources":["../../src/commands/auto-tier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,gBAAgB,SAezB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { renderDashboard } from "../ui/index.js";
|
|
3
|
+
import { CLIError } from "../utils/errors.js";
|
|
4
|
+
export const dashboardCommand = new Command("dashboard")
|
|
5
|
+
.description("šØ Interactive terminal dashboard for TMS project stats")
|
|
6
|
+
.option("--live", "Enable live updates (refreshes every 5 seconds)", false)
|
|
7
|
+
.option("--cwd <path>", "Project directory (defaults to current directory)")
|
|
8
|
+
.action(async (options) => {
|
|
9
|
+
const cwd = options.cwd || process.cwd();
|
|
10
|
+
const live = options.live || false;
|
|
11
|
+
try {
|
|
12
|
+
await renderDashboard({ cwd, live });
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
throw new CLIError("Failed to render dashboard", 1, {
|
|
16
|
+
cause: error instanceof Error ? error.message : String(error),
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC;KACrD,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,QAAQ,EAAE,iDAAiD,EAAE,KAAK,CAAC;KAC1E,MAAM,CAAC,cAAc,EAAE,mDAAmD,CAAC;KAC3E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,4BAA4B,EAAE,CAAC,EAAE;YAClD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
|