cortex-tms 3.1.0 ā 4.0.0
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 +248 -442
- package/dist/cli.js +26 -6
- 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 +83 -0
- package/dist/commands/archive.js.map +1 -0
- package/dist/commands/auto-tier.d.ts.map +1 -1
- package/dist/commands/auto-tier.js +132 -58
- 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.map +1 -1
- package/dist/commands/init.js +23 -27
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +26 -7
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/prompt.d.ts.map +1 -1
- package/dist/commands/prompt.js +2 -0
- package/dist/commands/prompt.js.map +1 -1
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +44 -26
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/status.d.ts +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +4 -98
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/tutorial.js +54 -3
- package/dist/commands/tutorial.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +10 -3
- package/dist/commands/validate.js.map +1 -1
- package/dist/types/cli.d.ts +8 -0
- package/dist/types/cli.d.ts.map +1 -1
- 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 +63 -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 +43 -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 +58 -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/errors.d.ts +20 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +54 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/git-history.d.ts.map +1 -1
- package/dist/utils/git-history.js +7 -3
- 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/llm-client.d.ts.map +1 -1
- package/dist/utils/llm-client.js +5 -2
- package/dist/utils/llm-client.js.map +1 -1
- package/dist/utils/sanitize.d.ts +4 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/sanitize.js +44 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/dist/utils/stats-collector.d.ts +62 -0
- package/dist/utils/stats-collector.d.ts.map +1 -0
- package/dist/utils/stats-collector.js +253 -0
- package/dist/utils/stats-collector.js.map +1 -0
- package/dist/utils/templates.d.ts.map +1 -1
- package/dist/utils/templates.js +11 -1
- package/dist/utils/templates.js.map +1 -1
- package/dist/utils/validation.d.ts +159 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +172 -0
- package/dist/utils/validation.js.map +1 -0
- package/dist/utils/validator.d.ts.map +1 -1
- package/dist/utils/validator.js +66 -1
- package/dist/utils/validator.js.map +1 -1
- package/package.json +10 -3
- 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/__tests__/init.test.d.ts +0 -2
- package/dist/__tests__/init.test.d.ts.map +0 -1
- package/dist/__tests__/init.test.js +0 -173
- package/dist/__tests__/init.test.js.map +0 -1
- package/dist/__tests__/release.test.d.ts +0 -2
- package/dist/__tests__/release.test.d.ts.map +0 -1
- package/dist/__tests__/release.test.js +0 -484
- package/dist/__tests__/release.test.js.map +0 -1
- package/dist/__tests__/utils/temp-dir.d.ts +0 -6
- package/dist/__tests__/utils/temp-dir.d.ts.map +0 -1
- package/dist/__tests__/utils/temp-dir.js +0 -34
- package/dist/__tests__/utils/temp-dir.js.map +0 -1
- package/dist/__tests__/validate.test.d.ts +0 -2
- package/dist/__tests__/validate.test.d.ts.map +0 -1
- package/dist/__tests__/validate.test.js +0 -209
- package/dist/__tests__/validate.test.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -4,6 +4,8 @@ import { readFileSync } from 'fs';
|
|
|
4
4
|
import { fileURLToPath } from 'url';
|
|
5
5
|
import { dirname, join } from 'path';
|
|
6
6
|
import chalk from 'chalk';
|
|
7
|
+
import { CLIError, ValidationError, formatError } from './utils/errors.js';
|
|
8
|
+
import { sanitizeApiKey } from './utils/sanitize.js';
|
|
7
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
8
10
|
const __dirname = dirname(__filename);
|
|
9
11
|
const packageJson = JSON.parse(readFileSync(join(__dirname, '../package.json'), 'utf-8'));
|
|
@@ -23,7 +25,8 @@ import { migrateCommand } from './commands/migrate.js';
|
|
|
23
25
|
import { promptCommand } from './commands/prompt.js';
|
|
24
26
|
import { tutorialCommand } from './commands/tutorial.js';
|
|
25
27
|
import { reviewCommand } from './commands/review.js';
|
|
26
|
-
import {
|
|
28
|
+
import { archiveCommand } from './commands/archive.js';
|
|
29
|
+
import { dashboardCommand } from './commands/dashboard.js';
|
|
27
30
|
program.addCommand(initCommand);
|
|
28
31
|
program.addCommand(validateCommand);
|
|
29
32
|
program.addCommand(statusCommand);
|
|
@@ -31,23 +34,40 @@ program.addCommand(migrateCommand);
|
|
|
31
34
|
program.addCommand(promptCommand);
|
|
32
35
|
program.addCommand(tutorialCommand);
|
|
33
36
|
program.addCommand(reviewCommand);
|
|
34
|
-
program.addCommand(
|
|
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(['node', 'cortex-tms', 'archive', ...(options.dryRun ? ['--dry-run'] : [])]);
|
|
47
|
+
});
|
|
48
|
+
program.addCommand(autoTierDeprecated);
|
|
35
49
|
program.on('command:*', () => {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
50
|
+
throw new ValidationError('Invalid command', {
|
|
51
|
+
command: program.args.join(' '),
|
|
52
|
+
hint: 'Run "cortex-tms --help" to see available commands',
|
|
53
|
+
});
|
|
39
54
|
});
|
|
40
55
|
program.exitOverride();
|
|
41
56
|
try {
|
|
42
57
|
await program.parseAsync(process.argv);
|
|
43
58
|
}
|
|
44
59
|
catch (error) {
|
|
60
|
+
if (error instanceof CLIError) {
|
|
61
|
+
console.error(chalk.red('\nā Error:'), formatError(error));
|
|
62
|
+
process.exit(error.exitCode);
|
|
63
|
+
}
|
|
45
64
|
if (error instanceof Error) {
|
|
46
65
|
if ('code' in error && typeof error.code === 'string') {
|
|
47
66
|
process.exit(1);
|
|
48
67
|
}
|
|
49
68
|
if (!error.message.includes('(outputHelp)')) {
|
|
50
|
-
|
|
69
|
+
const sanitizedMessage = sanitizeApiKey(error.message);
|
|
70
|
+
console.error(chalk.red('\nā Error:'), sanitizedMessage);
|
|
51
71
|
}
|
|
52
72
|
}
|
|
53
73
|
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;
|
|
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,CAW9C;AA6FD,eAAO,MAAM,cAAc,SAAyB,CAAC;AACrD,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
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('ā
') || /\[x\]/i.test(line) || line.includes('COMPLETED'));
|
|
32
|
+
spinner.succeed(`Found ${completedTaskLines.length} completed task markers`);
|
|
33
|
+
if (completedTaskLines.length === 0) {
|
|
34
|
+
console.log(chalk.green('\nā No completed tasks to archive'));
|
|
35
|
+
console.log(chalk.gray(' NEXT-TASKS.md is already clean\n'));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (options.dryRun) {
|
|
39
|
+
console.log(chalk.bold('\nš Archive Preview (Dry Run)\n'));
|
|
40
|
+
console.log(chalk.gray(' The following would be archived:\n'));
|
|
41
|
+
completedTaskLines.slice(0, 5).forEach(line => {
|
|
42
|
+
console.log(chalk.gray(` ${line.trim().substring(0, 80)}...`));
|
|
43
|
+
});
|
|
44
|
+
if (completedTaskLines.length > 5) {
|
|
45
|
+
console.log(chalk.gray(` ... and ${completedTaskLines.length - 5} more\n`));
|
|
46
|
+
}
|
|
47
|
+
console.log(chalk.yellow('\nā ļø Run without --dry-run to actually archive\n'));
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (!existsSync(archiveDir)) {
|
|
51
|
+
await mkdir(archiveDir, { recursive: true });
|
|
52
|
+
}
|
|
53
|
+
const timestamp = new Date().toISOString().split('T')[0];
|
|
54
|
+
const archiveFilename = `completed-tasks-${timestamp}.md`;
|
|
55
|
+
const archivePath = join(archiveDir, archiveFilename);
|
|
56
|
+
const archiveContent = `# Completed Tasks - Archived ${timestamp}
|
|
57
|
+
|
|
58
|
+
This file contains tasks that were completed and archived from NEXT-TASKS.md.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
${completedTaskLines.join('\n')}
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
Archived on: ${new Date().toISOString()}
|
|
67
|
+
`;
|
|
68
|
+
await writeFile(archivePath, archiveContent, 'utf-8');
|
|
69
|
+
console.log(chalk.bold('\n⨠Archive Complete\n'));
|
|
70
|
+
console.log(chalk.green(` ā Archived ${completedTaskLines.length} completed tasks`));
|
|
71
|
+
console.log(chalk.gray(` ā Saved to: ${archivePath.replace(cwd, '.')}\n`));
|
|
72
|
+
console.log(chalk.yellow('ā ļø Note: NEXT-TASKS.md was not modified'));
|
|
73
|
+
console.log(chalk.gray(' Manually remove completed tasks from NEXT-TASKS.md'));
|
|
74
|
+
console.log(chalk.gray(' Or use `cortex-tms validate` to check for cleanup recommendations\n'));
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
spinner.fail('Archive failed');
|
|
78
|
+
throw error instanceof Error ? error : new Error('Unknown error');
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export const archiveCommand = createArchiveCommand();
|
|
82
|
+
export default createArchiveCommand;
|
|
83
|
+
//# 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;AAmHpC,wBAAgB,qBAAqB,IAAI,OAAO,CAe/C;AA4OD,eAAO,MAAM,eAAe,SAA0B,CAAC"}
|
|
@@ -5,14 +5,66 @@ import { glob } from 'glob';
|
|
|
5
5
|
import { readFile, writeFile } from 'fs/promises';
|
|
6
6
|
import { isGitRepo, analyzeFileHistory } from '../utils/git-history.js';
|
|
7
7
|
import { readTierTag, writeTierTag } from '../utils/tier-tags.js';
|
|
8
|
-
|
|
8
|
+
import { GitError } from '../utils/errors.js';
|
|
9
|
+
import { autoTierOptionsSchema, validateOptions } from '../utils/validation.js';
|
|
10
|
+
const MANDATORY_HOT = [
|
|
11
|
+
'NEXT-TASKS.md',
|
|
12
|
+
'CLAUDE.md',
|
|
13
|
+
'.github/copilot-instructions.md',
|
|
14
|
+
'docs/core/PATTERNS.md',
|
|
15
|
+
'docs/core/GLOSSARY.md',
|
|
16
|
+
];
|
|
17
|
+
function isCanonicalHot(filePath) {
|
|
18
|
+
return MANDATORY_HOT.includes(filePath);
|
|
19
|
+
}
|
|
20
|
+
function calculateFileScore(filePath, daysSinceChange, hotDays) {
|
|
21
|
+
let score = 0;
|
|
22
|
+
if (isCanonicalHot(filePath)) {
|
|
23
|
+
score += 100;
|
|
24
|
+
}
|
|
25
|
+
if (filePath.startsWith('docs/')) {
|
|
26
|
+
score += 40;
|
|
27
|
+
if (filePath.startsWith('docs/core/')) {
|
|
28
|
+
score += 10;
|
|
29
|
+
}
|
|
30
|
+
if (filePath.startsWith('docs/archive/')) {
|
|
31
|
+
score -= 60;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (daysSinceChange <= hotDays) {
|
|
35
|
+
score += 15;
|
|
36
|
+
}
|
|
37
|
+
else if (daysSinceChange <= hotDays * 2) {
|
|
38
|
+
score += 5;
|
|
39
|
+
}
|
|
40
|
+
return score;
|
|
41
|
+
}
|
|
42
|
+
function getDirectoryBasedTier(filePath) {
|
|
43
|
+
if (filePath.startsWith('docs/archive/')) {
|
|
44
|
+
return { tier: 'COLD', directory: 'docs/archive/' };
|
|
45
|
+
}
|
|
46
|
+
if (filePath.startsWith('examples/')) {
|
|
47
|
+
return { tier: 'COLD', directory: 'examples/' };
|
|
48
|
+
}
|
|
49
|
+
if (filePath.startsWith('templates/')) {
|
|
50
|
+
return { tier: 'WARM', directory: 'templates/' };
|
|
51
|
+
}
|
|
52
|
+
if (filePath.startsWith('docs/guides/')) {
|
|
53
|
+
return { tier: 'WARM', directory: 'docs/guides/' };
|
|
54
|
+
}
|
|
55
|
+
if (filePath.startsWith('docs/tasks/')) {
|
|
56
|
+
return { tier: 'WARM', directory: 'docs/tasks/' };
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
9
60
|
export function createAutoTierCommand() {
|
|
10
61
|
const cmd = new Command('auto-tier');
|
|
11
62
|
cmd
|
|
12
63
|
.description('Analyze and apply tier tags based on git history (use --dry-run to preview)')
|
|
13
|
-
.option('--hot <days>', 'Files modified
|
|
14
|
-
.option('--warm <days>', 'Files modified
|
|
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')
|
|
15
66
|
.option('--cold <days>', 'Files older than N days ā COLD', '90')
|
|
67
|
+
.option('--max-hot <count>', 'Maximum number of HOT files (capped)', '10')
|
|
16
68
|
.option('-d, --dry-run', 'Preview changes without applying')
|
|
17
69
|
.option('-f, --force', 'Overwrite existing tier tags')
|
|
18
70
|
.option('-v, --verbose', 'Show detailed output')
|
|
@@ -21,36 +73,14 @@ export function createAutoTierCommand() {
|
|
|
21
73
|
}
|
|
22
74
|
async function runAutoTier(options) {
|
|
23
75
|
const cwd = process.cwd();
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
process.exit(1);
|
|
30
|
-
}
|
|
31
|
-
if (isNaN(warmDays) || warmDays < 0) {
|
|
32
|
-
console.log(chalk.red('ā Error: --warm must be a positive number'));
|
|
33
|
-
process.exit(1);
|
|
34
|
-
}
|
|
35
|
-
if (isNaN(coldDays) || coldDays < 0) {
|
|
36
|
-
console.log(chalk.red('ā Error: --cold must be a positive number'));
|
|
37
|
-
process.exit(1);
|
|
38
|
-
}
|
|
39
|
-
if (hotDays > warmDays) {
|
|
40
|
-
console.log(chalk.red('ā Error: --hot threshold must be ⤠--warm threshold'));
|
|
41
|
-
console.log(chalk.gray(` Got: hot=${hotDays}, warm=${warmDays}`));
|
|
42
|
-
process.exit(1);
|
|
43
|
-
}
|
|
44
|
-
if (warmDays > coldDays) {
|
|
45
|
-
console.log(chalk.red('ā Error: --warm threshold must be ⤠--cold threshold'));
|
|
46
|
-
console.log(chalk.gray(` Got: warm=${warmDays}, cold=${coldDays}`));
|
|
47
|
-
process.exit(1);
|
|
48
|
-
}
|
|
76
|
+
const validated = validateOptions(autoTierOptionsSchema, options, 'auto-tier');
|
|
77
|
+
const hotDays = validated.hot;
|
|
78
|
+
const warmDays = validated.warm;
|
|
79
|
+
const coldDays = validated.cold;
|
|
80
|
+
const maxHotFiles = validated.maxHot ?? 10;
|
|
49
81
|
console.log(chalk.bold.cyan('\nš Git-Based Auto-Tiering\n'));
|
|
50
82
|
if (!isGitRepo(cwd)) {
|
|
51
|
-
|
|
52
|
-
console.log(chalk.gray(' Run this command in a git-initialized project.'));
|
|
53
|
-
process.exit(1);
|
|
83
|
+
throw new GitError('Not a git repository. Run this command in a git-initialized project.');
|
|
54
84
|
}
|
|
55
85
|
if (options.dryRun) {
|
|
56
86
|
console.log(chalk.yellow('š DRY RUN MODE: No files will be modified.\n'));
|
|
@@ -58,50 +88,74 @@ async function runAutoTier(options) {
|
|
|
58
88
|
const spinner = ora('Analyzing git history...').start();
|
|
59
89
|
const files = await glob('**/*.md', {
|
|
60
90
|
cwd,
|
|
61
|
-
|
|
91
|
+
dot: true,
|
|
92
|
+
ignore: ['**/node_modules/**', '.git/**', '**/dist/**'],
|
|
62
93
|
});
|
|
63
94
|
const gitInfo = analyzeFileHistory(cwd, files);
|
|
64
95
|
spinner.text = 'Calculating tier suggestions...';
|
|
65
|
-
const
|
|
96
|
+
const scoredFiles = [];
|
|
66
97
|
for (const info of gitInfo) {
|
|
98
|
+
if (!info.isTracked) {
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
67
101
|
const content = await readFile(info.path, 'utf-8');
|
|
68
102
|
const currentTier = readTierTag(content);
|
|
103
|
+
if (currentTier && !options.force && !isCanonicalHot(info.path)) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
const score = calculateFileScore(info.path, info.daysSinceChange, hotDays);
|
|
107
|
+
scoredFiles.push({
|
|
108
|
+
info,
|
|
109
|
+
content,
|
|
110
|
+
currentTier,
|
|
111
|
+
score,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
scoredFiles.sort((a, b) => {
|
|
115
|
+
const scoreDiff = b.score - a.score;
|
|
116
|
+
if (scoreDiff !== 0)
|
|
117
|
+
return scoreDiff;
|
|
118
|
+
return a.info.path.localeCompare(b.info.path);
|
|
119
|
+
});
|
|
120
|
+
const suggestions = [];
|
|
121
|
+
let hotCount = 0;
|
|
122
|
+
for (const scored of scoredFiles) {
|
|
123
|
+
const { info, currentTier } = scored;
|
|
69
124
|
let suggestedTier;
|
|
70
125
|
let reason;
|
|
71
|
-
if (
|
|
72
|
-
suggestedTier = 'HOT';
|
|
73
|
-
reason = 'Mandatory HOT file';
|
|
74
|
-
}
|
|
75
|
-
else if (info.isNewFile) {
|
|
76
|
-
suggestedTier = 'HOT';
|
|
77
|
-
reason = 'New/untracked file (active work)';
|
|
78
|
-
}
|
|
79
|
-
else if (info.daysSinceChange <= hotDays) {
|
|
126
|
+
if (hotCount < maxHotFiles && (isCanonicalHot(info.path) || scored.score >= 40)) {
|
|
80
127
|
suggestedTier = 'HOT';
|
|
81
|
-
reason =
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
reason = `Modified ${Math.round(info.daysSinceChange)} days ago`;
|
|
86
|
-
}
|
|
87
|
-
else if (info.daysSinceChange <= coldDays) {
|
|
88
|
-
suggestedTier = 'WARM';
|
|
89
|
-
reason = `Modified ${Math.round(info.daysSinceChange)} days ago (aging)`;
|
|
128
|
+
reason = isCanonicalHot(info.path)
|
|
129
|
+
? 'Canonical HOT file'
|
|
130
|
+
: `High-value doc (score: ${scored.score})`;
|
|
131
|
+
hotCount++;
|
|
90
132
|
}
|
|
91
133
|
else {
|
|
92
|
-
|
|
93
|
-
|
|
134
|
+
const dirResult = getDirectoryBasedTier(info.path);
|
|
135
|
+
if (dirResult) {
|
|
136
|
+
suggestedTier = dirResult.tier;
|
|
137
|
+
reason = `Directory convention: ${dirResult.directory}`;
|
|
138
|
+
}
|
|
139
|
+
else if (info.daysSinceChange <= warmDays) {
|
|
140
|
+
suggestedTier = 'WARM';
|
|
141
|
+
reason = `Modified ${Math.round(info.daysSinceChange)} days ago`;
|
|
142
|
+
}
|
|
143
|
+
else if (info.daysSinceChange <= coldDays) {
|
|
144
|
+
suggestedTier = 'WARM';
|
|
145
|
+
reason = `Modified ${Math.round(info.daysSinceChange)} days ago (aging)`;
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
suggestedTier = 'COLD';
|
|
149
|
+
reason = `No changes in ${Math.round(info.daysSinceChange)} days`;
|
|
150
|
+
}
|
|
94
151
|
}
|
|
95
152
|
let action;
|
|
96
153
|
if (!currentTier) {
|
|
97
154
|
action = 'CREATE';
|
|
98
155
|
}
|
|
99
|
-
else if (currentTier !== suggestedTier
|
|
156
|
+
else if (currentTier !== suggestedTier) {
|
|
100
157
|
action = 'UPDATE';
|
|
101
158
|
}
|
|
102
|
-
else if (currentTier === suggestedTier) {
|
|
103
|
-
action = 'SKIP';
|
|
104
|
-
}
|
|
105
159
|
else {
|
|
106
160
|
action = 'SKIP';
|
|
107
161
|
}
|
|
@@ -114,6 +168,25 @@ async function runAutoTier(options) {
|
|
|
114
168
|
action,
|
|
115
169
|
});
|
|
116
170
|
}
|
|
171
|
+
for (const info of gitInfo) {
|
|
172
|
+
if (!info.isTracked)
|
|
173
|
+
continue;
|
|
174
|
+
const content = await readFile(info.path, 'utf-8');
|
|
175
|
+
const currentTier = readTierTag(content);
|
|
176
|
+
if (currentTier && !options.force) {
|
|
177
|
+
const alreadyAdded = suggestions.some(s => s.path === info.path);
|
|
178
|
+
if (!alreadyAdded) {
|
|
179
|
+
suggestions.push({
|
|
180
|
+
path: info.path,
|
|
181
|
+
currentTier,
|
|
182
|
+
suggestedTier: currentTier,
|
|
183
|
+
reason: 'Explicit tier tag (use --force to override)',
|
|
184
|
+
daysSinceChange: info.daysSinceChange,
|
|
185
|
+
action: 'SKIP',
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
117
190
|
spinner.succeed(`Analyzed ${files.length} files`);
|
|
118
191
|
printSuggestions(suggestions, options.verbose || false);
|
|
119
192
|
if (!options.dryRun) {
|
|
@@ -121,8 +194,9 @@ async function runAutoTier(options) {
|
|
|
121
194
|
}
|
|
122
195
|
}
|
|
123
196
|
function printSuggestions(suggestions, verbose) {
|
|
197
|
+
const toChange = suggestions.filter(s => s.action !== 'SKIP');
|
|
124
198
|
const byTier = { HOT: [], WARM: [], COLD: [] };
|
|
125
|
-
|
|
199
|
+
toChange.forEach(s => byTier[s.suggestedTier].push(s));
|
|
126
200
|
console.log(chalk.bold('\nš Tier Suggestions:\n'));
|
|
127
201
|
console.log(chalk.red.bold(`š„ HOT (${byTier.HOT.length} files)`));
|
|
128
202
|
byTier.HOT.slice(0, 10).forEach(s => {
|
|
@@ -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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC,wBAAgB,iBAAiB,IAAI,OAAO,CAe3C;AA+RD,eAAO,MAAM,WAAW,SAAsB,CAAC"}
|