cortex-tms 4.0.0 → 4.0.2
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 +22 -12
- package/dist/cli.js +45 -37
- package/dist/cli.js.map +1 -1
- package/dist/commands/archive.d.ts +1 -1
- package/dist/commands/archive.d.ts.map +1 -1
- package/dist/commands/archive.js +36 -34
- package/dist/commands/archive.js.map +1 -1
- 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 +1 -1
- package/dist/commands/dashboard.js +8 -8
- 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 +60 -60
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/status.d.ts +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +51 -45
- 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 +15 -15
- package/dist/types/guardian.d.ts +2 -2
- package/dist/ui/components/Dashboard.d.ts +2 -2
- package/dist/ui/components/Dashboard.d.ts.map +1 -1
- package/dist/ui/components/Dashboard.js +24 -23
- package/dist/ui/components/Dashboard.js.map +1 -1
- package/dist/ui/components/dashboard/ContextReductionCard.d.ts +1 -1
- package/dist/ui/components/dashboard/ContextReductionCard.d.ts.map +1 -1
- package/dist/ui/components/dashboard/ContextReductionCard.js +5 -5
- package/dist/ui/components/dashboard/ContextReductionCard.js.map +1 -1
- package/dist/ui/components/dashboard/CostSavingsCard.d.ts +1 -1
- package/dist/ui/components/dashboard/CostSavingsCard.d.ts.map +1 -1
- package/dist/ui/components/dashboard/CostSavingsCard.js +7 -7
- package/dist/ui/components/dashboard/CostSavingsCard.js.map +1 -1
- package/dist/ui/components/dashboard/FileDistributionCard.d.ts +1 -1
- package/dist/ui/components/dashboard/FileDistributionCard.d.ts.map +1 -1
- package/dist/ui/components/dashboard/FileDistributionCard.js +10 -10
- package/dist/ui/components/dashboard/FileDistributionCard.js.map +1 -1
- package/dist/ui/components/dashboard/FileSizeHealthCard.d.ts +2 -2
- package/dist/ui/components/dashboard/FileSizeHealthCard.d.ts.map +1 -1
- package/dist/ui/components/dashboard/FileSizeHealthCard.js +12 -12
- package/dist/ui/components/dashboard/FileSizeHealthCard.js.map +1 -1
- package/dist/ui/components/dashboard/Footer.d.ts +1 -1
- package/dist/ui/components/dashboard/Footer.d.ts.map +1 -1
- package/dist/ui/components/dashboard/Footer.js +2 -2
- package/dist/ui/components/dashboard/Footer.js.map +1 -1
- package/dist/ui/components/dashboard/GovernanceHealthCard.d.ts +3 -3
- package/dist/ui/components/dashboard/GovernanceHealthCard.d.ts.map +1 -1
- package/dist/ui/components/dashboard/GovernanceHealthCard.js +17 -14
- package/dist/ui/components/dashboard/GovernanceHealthCard.js.map +1 -1
- package/dist/ui/components/dashboard/GuardianStatusCard.d.ts +2 -2
- package/dist/ui/components/dashboard/GuardianStatusCard.d.ts.map +1 -1
- package/dist/ui/components/dashboard/GuardianStatusCard.js +29 -16
- package/dist/ui/components/dashboard/GuardianStatusCard.js.map +1 -1
- package/dist/ui/components/dashboard/Header.d.ts +1 -1
- package/dist/ui/components/dashboard/Header.js +2 -2
- package/dist/ui/components/dashboard/HotFilesCard.d.ts +1 -1
- package/dist/ui/components/dashboard/HotFilesCard.d.ts.map +1 -1
- package/dist/ui/components/dashboard/HotFilesCard.js +6 -6
- package/dist/ui/components/dashboard/HotFilesCard.js.map +1 -1
- package/dist/ui/components/dashboard/NotConfiguredCard.d.ts +2 -2
- package/dist/ui/components/dashboard/NotConfiguredCard.d.ts.map +1 -1
- package/dist/ui/components/dashboard/NotConfiguredCard.js +3 -3
- package/dist/ui/components/dashboard/NotConfiguredCard.js.map +1 -1
- package/dist/ui/components/dashboard/SprintProgressCard.d.ts +1 -1
- package/dist/ui/components/dashboard/SprintProgressCard.d.ts.map +1 -1
- package/dist/ui/components/dashboard/SprintProgressCard.js +4 -4
- package/dist/ui/components/dashboard/SprintProgressCard.js.map +1 -1
- package/dist/ui/components/dashboard/StalenessCard.d.ts +1 -1
- package/dist/ui/components/dashboard/StalenessCard.d.ts.map +1 -1
- package/dist/ui/components/dashboard/StalenessCard.js +9 -9
- package/dist/ui/components/dashboard/StalenessCard.js.map +1 -1
- package/dist/ui/components/dashboard/TabBar.d.ts +2 -2
- package/dist/ui/components/dashboard/TabBar.js +7 -7
- package/dist/ui/components/dashboard/TabBar.js.map +1 -1
- package/dist/ui/components/dashboard/ValidationCard.d.ts +2 -2
- package/dist/ui/components/dashboard/ValidationCard.d.ts.map +1 -1
- package/dist/ui/components/dashboard/ValidationCard.js +22 -22
- package/dist/ui/components/dashboard/ValidationCard.js.map +1 -1
- package/dist/ui/components/dashboard/ViewContainer.d.ts +3 -3
- package/dist/ui/components/dashboard/ViewContainer.d.ts.map +1 -1
- package/dist/ui/components/dashboard/ViewContainer.js +20 -20
- package/dist/ui/components/dashboard/ViewContainer.js.map +1 -1
- package/dist/ui/components/dashboard/index.d.ts +13 -13
- package/dist/ui/components/dashboard/index.js +13 -13
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +10 -10
- package/dist/ui/index.js.map +1 -1
- 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.map +1 -1
- package/dist/utils/git-staleness.js +21 -21
- package/dist/utils/git-staleness.js.map +1 -1
- 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 +3 -9
- package/dist/utils/stats-collector.d.ts.map +1 -1
- package/dist/utils/stats-collector.js +74 -83
- package/dist/utils/stats-collector.js.map +1 -1
- 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 +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +25 -24
- 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 +97 -90
- package/dist/utils/validator.js.map +1 -1
- package/package.json +7 -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
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { Command } from
|
|
2
|
-
import chalk from
|
|
3
|
-
import ora from
|
|
4
|
-
import { validateProject } from
|
|
5
|
-
import { ValidationError } from
|
|
6
|
-
import { validateOptionsSchema, validateOptions } from
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import ora from "ora";
|
|
4
|
+
import { validateProject } from "../utils/validator.js";
|
|
5
|
+
import { ValidationError } from "../utils/errors.js";
|
|
6
|
+
import { validateOptionsSchema, validateOptions } from "../utils/validation.js";
|
|
7
7
|
function getCheckEmoji(level, passed) {
|
|
8
8
|
if (passed) {
|
|
9
|
-
return chalk.green(
|
|
9
|
+
return chalk.green("✓");
|
|
10
10
|
}
|
|
11
|
-
if (level ===
|
|
12
|
-
return chalk.red(
|
|
11
|
+
if (level === "error") {
|
|
12
|
+
return chalk.red("✗");
|
|
13
13
|
}
|
|
14
|
-
return chalk.yellow(
|
|
14
|
+
return chalk.yellow("⚠");
|
|
15
15
|
}
|
|
16
16
|
function getColorForLevel(level) {
|
|
17
17
|
switch (level) {
|
|
18
|
-
case
|
|
18
|
+
case "error":
|
|
19
19
|
return chalk.red;
|
|
20
|
-
case
|
|
20
|
+
case "warning":
|
|
21
21
|
return chalk.yellow;
|
|
22
|
-
case
|
|
22
|
+
case "info":
|
|
23
23
|
return chalk.gray;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -33,12 +33,12 @@ function formatCheck(check, verbose) {
|
|
|
33
33
|
return output;
|
|
34
34
|
}
|
|
35
35
|
export function createValidateCommand() {
|
|
36
|
-
const validateCommand = new Command(
|
|
36
|
+
const validateCommand = new Command("validate");
|
|
37
37
|
validateCommand
|
|
38
|
-
.description(
|
|
39
|
-
.option(
|
|
40
|
-
.option(
|
|
41
|
-
.option(
|
|
38
|
+
.description("Validate TMS project health and compliance")
|
|
39
|
+
.option("-s, --strict", "Treat warnings as errors")
|
|
40
|
+
.option("-v, --verbose", "Show detailed check information")
|
|
41
|
+
.option("-f, --fix", "Auto-fix issues where possible (e.g., recreate missing files)")
|
|
42
42
|
.action(async (options) => {
|
|
43
43
|
await runValidate(options);
|
|
44
44
|
});
|
|
@@ -46,9 +46,9 @@ export function createValidateCommand() {
|
|
|
46
46
|
}
|
|
47
47
|
async function runValidate(options) {
|
|
48
48
|
const cwd = process.cwd();
|
|
49
|
-
validateOptions(validateOptionsSchema, options,
|
|
50
|
-
console.log(chalk.bold.cyan(
|
|
51
|
-
const spinner = ora(
|
|
49
|
+
validateOptions(validateOptionsSchema, options, "validate");
|
|
50
|
+
console.log(chalk.bold.cyan("\n🔍 Cortex TMS Validation\n"));
|
|
51
|
+
const spinner = ora("Running health checks...").start();
|
|
52
52
|
try {
|
|
53
53
|
const result = await validateProject(cwd, {
|
|
54
54
|
strict: options.strict || false,
|
|
@@ -65,11 +65,11 @@ async function runValidate(options) {
|
|
|
65
65
|
fixSpinner.succeed(chalk.green(`Fixed: ${check.file || check.name}`));
|
|
66
66
|
}
|
|
67
67
|
catch (error) {
|
|
68
|
-
fixSpinner.fail(chalk.red(`Failed to fix ${check.file || check.name}: ${error instanceof Error ? error.message :
|
|
68
|
+
fixSpinner.fail(chalk.red(`Failed to fix ${check.file || check.name}: ${error instanceof Error ? error.message : "Unknown error"}`));
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
console.log(chalk.bold.green(
|
|
72
|
-
const revalidateSpinner = ora(
|
|
71
|
+
console.log(chalk.bold.green("\n✨ Auto-fix complete! Re-running validation...\n"));
|
|
72
|
+
const revalidateSpinner = ora("Re-validating...").start();
|
|
73
73
|
const updatedResult = await validateProject(cwd, {
|
|
74
74
|
strict: options.strict || false,
|
|
75
75
|
});
|
|
@@ -79,34 +79,34 @@ async function runValidate(options) {
|
|
|
79
79
|
result.passed = updatedResult.passed;
|
|
80
80
|
}
|
|
81
81
|
else {
|
|
82
|
-
console.log(chalk.gray(
|
|
82
|
+
console.log(chalk.gray("\nNo auto-fixable issues found.\n"));
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
const mandatoryChecks = result.checks.filter((c) => c.name.startsWith(
|
|
86
|
-
const configChecks = result.checks.filter((c) => c.name ===
|
|
87
|
-
const fileSizeChecks = result.checks.filter((c) => c.name.startsWith(
|
|
88
|
-
const placeholderChecks = result.checks.filter((c) => c.name.startsWith(
|
|
89
|
-
const archiveChecks = result.checks.filter((c) => c.name ===
|
|
85
|
+
const mandatoryChecks = result.checks.filter((c) => c.name.startsWith("Mandatory File"));
|
|
86
|
+
const configChecks = result.checks.filter((c) => c.name === "Configuration File");
|
|
87
|
+
const fileSizeChecks = result.checks.filter((c) => c.name.startsWith("File Size"));
|
|
88
|
+
const placeholderChecks = result.checks.filter((c) => c.name.startsWith("Completion:"));
|
|
89
|
+
const archiveChecks = result.checks.filter((c) => c.name === "Archive Status" || c.name === "Archive Directory");
|
|
90
90
|
if (mandatoryChecks.length > 0) {
|
|
91
|
-
console.log(chalk.bold(
|
|
91
|
+
console.log(chalk.bold("\n📋 Mandatory Files"));
|
|
92
92
|
mandatoryChecks.forEach((check) => {
|
|
93
93
|
console.log(formatCheck(check, options.verbose || false));
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
96
|
if (configChecks.length > 0) {
|
|
97
|
-
console.log(chalk.bold(
|
|
97
|
+
console.log(chalk.bold("\n⚙️ Configuration"));
|
|
98
98
|
configChecks.forEach((check) => {
|
|
99
99
|
console.log(formatCheck(check, options.verbose || false));
|
|
100
100
|
});
|
|
101
101
|
}
|
|
102
102
|
if (fileSizeChecks.length > 0 && options.verbose) {
|
|
103
|
-
console.log(chalk.bold(
|
|
103
|
+
console.log(chalk.bold("\n📏 File Size Limits (Rule 4)"));
|
|
104
104
|
fileSizeChecks.forEach((check) => {
|
|
105
105
|
console.log(formatCheck(check, options.verbose || false));
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
108
|
else if (fileSizeChecks.some((c) => !c.passed)) {
|
|
109
|
-
console.log(chalk.bold(
|
|
109
|
+
console.log(chalk.bold("\n📏 File Size Limits (Rule 4)"));
|
|
110
110
|
fileSizeChecks
|
|
111
111
|
.filter((c) => !c.passed)
|
|
112
112
|
.forEach((check) => {
|
|
@@ -114,13 +114,13 @@ async function runValidate(options) {
|
|
|
114
114
|
});
|
|
115
115
|
}
|
|
116
116
|
if (placeholderChecks.length > 0 && options.verbose) {
|
|
117
|
-
console.log(chalk.bold(
|
|
117
|
+
console.log(chalk.bold("\n🔧 Placeholder Completion"));
|
|
118
118
|
placeholderChecks.forEach((check) => {
|
|
119
119
|
console.log(formatCheck(check, options.verbose || false));
|
|
120
120
|
});
|
|
121
121
|
}
|
|
122
122
|
else if (placeholderChecks.some((c) => !c.passed)) {
|
|
123
|
-
console.log(chalk.bold(
|
|
123
|
+
console.log(chalk.bold("\n🔧 Placeholder Completion"));
|
|
124
124
|
placeholderChecks
|
|
125
125
|
.filter((c) => !c.passed)
|
|
126
126
|
.forEach((check) => {
|
|
@@ -128,57 +128,57 @@ async function runValidate(options) {
|
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
130
|
if (archiveChecks.length > 0) {
|
|
131
|
-
console.log(chalk.bold(
|
|
131
|
+
console.log(chalk.bold("\n📦 Archive Status"));
|
|
132
132
|
archiveChecks.forEach((check) => {
|
|
133
133
|
console.log(formatCheck(check, options.verbose || false));
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
|
-
console.log(chalk.bold(
|
|
136
|
+
console.log(chalk.bold("\n📊 Summary\n"));
|
|
137
137
|
const { summary } = result;
|
|
138
138
|
console.log(` Total Checks: ${chalk.bold(summary.total)}`);
|
|
139
|
-
console.log(` ${chalk.green(
|
|
139
|
+
console.log(` ${chalk.green("✓")} Passed: ${chalk.bold(summary.passed)}`);
|
|
140
140
|
if (summary.warnings > 0) {
|
|
141
|
-
console.log(` ${chalk.yellow(
|
|
141
|
+
console.log(` ${chalk.yellow("⚠")} Warnings: ${chalk.bold(summary.warnings)}`);
|
|
142
142
|
}
|
|
143
143
|
if (summary.errors > 0) {
|
|
144
|
-
console.log(` ${chalk.red(
|
|
144
|
+
console.log(` ${chalk.red("✗")} Errors: ${chalk.bold(summary.errors)}`);
|
|
145
145
|
}
|
|
146
146
|
console.log();
|
|
147
147
|
if (result.passed) {
|
|
148
|
-
console.log(chalk.green.bold(
|
|
148
|
+
console.log(chalk.green.bold("✨ Validation passed!"), chalk.gray("Your TMS project is healthy."));
|
|
149
149
|
}
|
|
150
150
|
else {
|
|
151
151
|
if (options.strict && summary.warnings > 0) {
|
|
152
|
-
console.log(chalk.red.bold(
|
|
152
|
+
console.log(chalk.red.bold("❌ Validation failed!"), chalk.gray("(Strict mode: warnings treated as errors)"));
|
|
153
153
|
}
|
|
154
154
|
else {
|
|
155
|
-
console.log(chalk.red.bold(
|
|
155
|
+
console.log(chalk.red.bold("❌ Validation failed!"), chalk.gray("Please fix the errors above."));
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
158
|
if (summary.errors > 0 || summary.warnings > 0) {
|
|
159
|
-
console.log(chalk.bold(
|
|
159
|
+
console.log(chalk.bold("\n💡 Tips:\n"));
|
|
160
160
|
const hasFixableIssues = result.checks.some((c) => !c.passed && c.fix);
|
|
161
161
|
if (hasFixableIssues && !options.fix) {
|
|
162
|
-
console.log(chalk.gray(
|
|
162
|
+
console.log(chalk.gray(" • Run"), chalk.cyan("cortex-tms validate --fix"), chalk.gray("to auto-fix common issues"));
|
|
163
163
|
}
|
|
164
|
-
if (result.checks.some((c) => c.message.includes(
|
|
165
|
-
console.log(chalk.gray(
|
|
164
|
+
if (result.checks.some((c) => c.message.includes("missing"))) {
|
|
165
|
+
console.log(chalk.gray(" • Run"), chalk.cyan("cortex-tms init"), chalk.gray("to create missing files"));
|
|
166
166
|
}
|
|
167
|
-
if (result.checks.some((c) => c.message.includes(
|
|
168
|
-
console.log(chalk.gray(
|
|
167
|
+
if (result.checks.some((c) => c.message.includes("placeholders"))) {
|
|
168
|
+
console.log(chalk.gray(" • Replace [Placeholders] with actual values"));
|
|
169
169
|
}
|
|
170
|
-
if (result.checks.some((c) => c.message.includes(
|
|
171
|
-
console.log(chalk.gray(
|
|
172
|
-
console.log(chalk.gray(
|
|
170
|
+
if (result.checks.some((c) => c.message.includes("exceeds"))) {
|
|
171
|
+
console.log(chalk.gray(" • Archive completed tasks to reduce file size"));
|
|
172
|
+
console.log(chalk.gray(" • Move to"), chalk.cyan("docs/archive/"), chalk.gray("for historical reference"));
|
|
173
173
|
}
|
|
174
|
-
if (result.checks.some((c) => c.message.includes(
|
|
175
|
-
console.log(chalk.gray(
|
|
176
|
-
console.log(chalk.gray(
|
|
174
|
+
if (result.checks.some((c) => c.message.includes("completed tasks"))) {
|
|
175
|
+
console.log(chalk.gray(" • Archive completed tasks from NEXT-TASKS.md"));
|
|
176
|
+
console.log(chalk.gray(" • Create"), chalk.cyan("docs/archive/sprint-YYYY-MM.md"), chalk.gray("if needed"));
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
console.log();
|
|
180
180
|
if (!result.passed) {
|
|
181
|
-
throw new ValidationError(
|
|
181
|
+
throw new ValidationError("Validation failed", {
|
|
182
182
|
errors: summary.errors,
|
|
183
183
|
warnings: summary.warnings,
|
|
184
184
|
strict: options.strict ?? false,
|
|
@@ -186,12 +186,12 @@ async function runValidate(options) {
|
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
catch (error) {
|
|
189
|
-
spinner.fail(
|
|
189
|
+
spinner.fail("Validation failed");
|
|
190
190
|
if (options.verbose && error instanceof Error && error.stack) {
|
|
191
|
-
console.error(chalk.gray(
|
|
191
|
+
console.error(chalk.gray("\nStack trace:"));
|
|
192
192
|
console.error(chalk.gray(error.stack));
|
|
193
193
|
}
|
|
194
|
-
throw error instanceof Error ? error : new Error(
|
|
194
|
+
throw error instanceof Error ? error : new Error("Unknown error");
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
197
|
export const validateCommand = createValidateCommand();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAKhF,SAAS,aAAa,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
|
package/dist/types/cli.d.ts
CHANGED
|
@@ -6,18 +6,18 @@ export interface InitPromptAnswers {
|
|
|
6
6
|
overwrite: boolean;
|
|
7
7
|
installSnippets?: boolean;
|
|
8
8
|
}
|
|
9
|
-
export type TemplateSelection =
|
|
9
|
+
export type TemplateSelection = "all" | "minimal" | "core-docs" | "workflow-files" | "example-app";
|
|
10
10
|
export interface ProjectContext {
|
|
11
11
|
isGitRepo: boolean;
|
|
12
12
|
hasPackageJson: boolean;
|
|
13
|
-
packageManager:
|
|
13
|
+
packageManager: "npm" | "pnpm" | "yarn" | "bun" | "unknown";
|
|
14
14
|
existingFiles: string[];
|
|
15
15
|
}
|
|
16
16
|
export interface TemplateFile {
|
|
17
17
|
source: string;
|
|
18
18
|
destination: string;
|
|
19
19
|
hasPlaceholders: boolean;
|
|
20
|
-
category:
|
|
20
|
+
category: "core" | "workflow" | "example";
|
|
21
21
|
}
|
|
22
22
|
export interface InitCommandOptions {
|
|
23
23
|
force?: boolean;
|
|
@@ -34,7 +34,7 @@ export interface CliConfig {
|
|
|
34
34
|
export interface ValidationCheck {
|
|
35
35
|
name: string;
|
|
36
36
|
passed: boolean;
|
|
37
|
-
level:
|
|
37
|
+
level: "info" | "warning" | "error";
|
|
38
38
|
message: string;
|
|
39
39
|
details?: string;
|
|
40
40
|
file?: string;
|
|
@@ -52,24 +52,24 @@ export interface ValidationResult {
|
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
54
|
export interface LineLimits {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
55
|
+
"NEXT-TASKS.md": number;
|
|
56
|
+
"FUTURE-ENHANCEMENTS.md": number;
|
|
57
|
+
"ARCHITECTURE.md": number;
|
|
58
|
+
"PATTERNS.md": number;
|
|
59
|
+
"DOMAIN-LOGIC.md": number;
|
|
60
|
+
"DECISIONS.md": number;
|
|
61
|
+
"GLOSSARY.md": number;
|
|
62
|
+
"SCHEMA.md": number;
|
|
63
|
+
"TROUBLESHOOTING.md": number;
|
|
64
64
|
[key: string]: number;
|
|
65
65
|
}
|
|
66
|
-
export type MandatoryFile =
|
|
66
|
+
export type MandatoryFile = "NEXT-TASKS.md" | ".github/copilot-instructions.md" | "CLAUDE.md";
|
|
67
67
|
export interface ValidateCommandOptions {
|
|
68
68
|
fix?: boolean;
|
|
69
69
|
strict?: boolean;
|
|
70
70
|
verbose?: boolean;
|
|
71
71
|
}
|
|
72
|
-
export type ProjectScope =
|
|
72
|
+
export type ProjectScope = "nano" | "standard" | "enterprise" | "custom";
|
|
73
73
|
export interface CortexConfig {
|
|
74
74
|
version: string;
|
|
75
75
|
scope: ProjectScope;
|
package/dist/types/guardian.d.ts
CHANGED
|
@@ -4,12 +4,12 @@ export interface Violation {
|
|
|
4
4
|
line?: number;
|
|
5
5
|
issue: string;
|
|
6
6
|
recommendation: string;
|
|
7
|
-
severity:
|
|
7
|
+
severity: "minor" | "major";
|
|
8
8
|
confidence?: number;
|
|
9
9
|
}
|
|
10
10
|
export interface GuardianResult {
|
|
11
11
|
summary: {
|
|
12
|
-
status:
|
|
12
|
+
status: "compliant" | "minor_issues" | "major_violations";
|
|
13
13
|
message: string;
|
|
14
14
|
};
|
|
15
15
|
violations: Violation[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../../src/ui/components/Dashboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAK1D,UAAU,cAAc;IACtB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAKD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../../src/ui/components/Dashboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAK1D,UAAU,cAAc;IACtB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAKD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA4G9C,CAAC"}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import React, { useState } from
|
|
2
|
-
import { Box, Text, Newline, useInput } from
|
|
3
|
-
import Spinner from
|
|
4
|
-
import { Header, Footer } from
|
|
5
|
-
import { TabBar } from
|
|
6
|
-
import { ViewContainer } from
|
|
7
|
-
export const Dashboard = ({ stats, loading, error, hotFiles = [] }) => {
|
|
8
|
-
const [activeView, setActiveView] = useState(
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
import { Box, Text, Newline, useInput } from "ink";
|
|
3
|
+
import Spinner from "ink-spinner";
|
|
4
|
+
import { Header, Footer } from "./dashboard/index.js";
|
|
5
|
+
import { TabBar } from "./dashboard/TabBar.js";
|
|
6
|
+
import { ViewContainer } from "./dashboard/ViewContainer.js";
|
|
7
|
+
export const Dashboard = ({ stats, loading, error, hotFiles = [], }) => {
|
|
8
|
+
const [activeView, setActiveView] = useState("overview");
|
|
9
9
|
useInput((input, key) => {
|
|
10
|
-
if (input ===
|
|
11
|
-
setActiveView(
|
|
10
|
+
if (input === "1") {
|
|
11
|
+
setActiveView("overview");
|
|
12
12
|
}
|
|
13
|
-
else if (input ===
|
|
14
|
-
setActiveView(
|
|
13
|
+
else if (input === "2") {
|
|
14
|
+
setActiveView("files");
|
|
15
15
|
}
|
|
16
|
-
else if (input ===
|
|
17
|
-
setActiveView(
|
|
16
|
+
else if (input === "3") {
|
|
17
|
+
setActiveView("health");
|
|
18
18
|
}
|
|
19
|
-
else if (input ===
|
|
19
|
+
else if (input === "q") {
|
|
20
20
|
process.exit(0);
|
|
21
21
|
}
|
|
22
22
|
else if (key.tab) {
|
|
23
|
-
if (activeView ===
|
|
24
|
-
setActiveView(
|
|
25
|
-
else if (activeView ===
|
|
26
|
-
setActiveView(
|
|
23
|
+
if (activeView === "overview")
|
|
24
|
+
setActiveView("files");
|
|
25
|
+
else if (activeView === "files")
|
|
26
|
+
setActiveView("health");
|
|
27
27
|
else
|
|
28
|
-
setActiveView(
|
|
28
|
+
setActiveView("overview");
|
|
29
29
|
}
|
|
30
30
|
});
|
|
31
31
|
if (error) {
|
|
@@ -41,7 +41,7 @@ export const Dashboard = ({ stats, loading, error, hotFiles = [] }) => {
|
|
|
41
41
|
}
|
|
42
42
|
if (!stats.project.hasTMS) {
|
|
43
43
|
return (React.createElement(Box, { flexDirection: "column", padding: 1, borderStyle: "round", borderColor: "yellow" },
|
|
44
|
-
React.createElement(Text, { color: "yellow", bold: true }, "\u26A0\uFE0F
|
|
44
|
+
React.createElement(Text, { color: "yellow", bold: true }, "\u26A0\uFE0F No TMS Detected"),
|
|
45
45
|
React.createElement(Newline, null),
|
|
46
46
|
React.createElement(Text, null, "This directory doesn't appear to have Cortex TMS initialized."),
|
|
47
47
|
React.createElement(Newline, null),
|
|
@@ -50,13 +50,14 @@ export const Dashboard = ({ stats, loading, error, hotFiles = [] }) => {
|
|
|
50
50
|
}
|
|
51
51
|
const { files } = stats;
|
|
52
52
|
const total = files.total || 1;
|
|
53
|
-
const contextReduction = 100 -
|
|
53
|
+
const contextReduction = 100 -
|
|
54
|
+
Math.round(((files.hot + Math.round(files.warm * 0.3)) / total) * 100);
|
|
54
55
|
const typicalReads = files.hot + Math.round(files.warm * 0.3);
|
|
55
56
|
return (React.createElement(Box, { flexDirection: "column", padding: 1, borderStyle: "double", borderColor: "cyan" },
|
|
56
57
|
React.createElement(Header, { projectName: stats.project.name }),
|
|
57
58
|
React.createElement(TabBar, { activeView: activeView }),
|
|
58
59
|
React.createElement(Box, { paddingTop: 1 },
|
|
59
|
-
React.createElement(Text, { dimColor: true },
|
|
60
|
+
React.createElement(Text, { dimColor: true }, "─".repeat(60))),
|
|
60
61
|
React.createElement(ViewContainer, { view: activeView, stats: stats, contextReduction: contextReduction, typicalReads: typicalReads, total: total, hotFiles: hotFiles }),
|
|
61
62
|
React.createElement(Footer, null)));
|
|
62
63
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dashboard.js","sourceRoot":"","sources":["../../../src/ui/components/Dashboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,OAAO,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAiB,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAY7D,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,
|
|
1
|
+
{"version":3,"file":"Dashboard.js","sourceRoot":"","sources":["../../../src/ui/components/Dashboard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextReductionCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/ContextReductionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,yBAAyB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,
|
|
1
|
+
{"version":3,"file":"ContextReductionCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/ContextReductionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,yBAAyB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA4DpE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import { Box, Text, Newline } from
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Box, Text, Newline } from "ink";
|
|
3
3
|
export const ContextReductionCard = ({ contextReduction, typicalReads, total, }) => {
|
|
4
4
|
return (React.createElement(React.Fragment, null,
|
|
5
5
|
React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "green", padding: 1 },
|
|
@@ -7,7 +7,7 @@ export const ContextReductionCard = ({ contextReduction, typicalReads, total, })
|
|
|
7
7
|
React.createElement(Text, { bold: true, color: "green" }, "\uD83D\uDCCA CONTEXT REDUCTION")),
|
|
8
8
|
React.createElement(Newline, null),
|
|
9
9
|
React.createElement(Box, { justifyContent: "center" },
|
|
10
|
-
React.createElement(Text, { bold: true, color: "green", dimColor: false },
|
|
10
|
+
React.createElement(Text, { bold: true, color: "green", dimColor: false }, "█".repeat(Math.min(40, Math.round(contextReduction / 2.5))))),
|
|
11
11
|
React.createElement(Newline, null),
|
|
12
12
|
React.createElement(Box, { justifyContent: "center" },
|
|
13
13
|
React.createElement(Text, { bold: true, color: "green" },
|
|
@@ -18,7 +18,7 @@ export const ContextReductionCard = ({ contextReduction, typicalReads, total, })
|
|
|
18
18
|
React.createElement(Box, { justifyContent: "center" },
|
|
19
19
|
React.createElement(Text, { dimColor: true },
|
|
20
20
|
"Typical AI session:",
|
|
21
|
-
|
|
21
|
+
" ",
|
|
22
22
|
React.createElement(Text, { color: "cyan" },
|
|
23
23
|
typicalReads,
|
|
24
24
|
"/",
|
|
@@ -27,7 +27,7 @@ export const ContextReductionCard = ({ contextReduction, typicalReads, total, })
|
|
|
27
27
|
React.createElement(Box, { justifyContent: "center" },
|
|
28
28
|
React.createElement(Text, { dimColor: true },
|
|
29
29
|
"Estimated token savings:",
|
|
30
|
-
|
|
30
|
+
" ",
|
|
31
31
|
React.createElement(Text, { color: "green" },
|
|
32
32
|
"~",
|
|
33
33
|
Math.round(contextReduction * 0.8),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextReductionCard.js","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/ContextReductionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAQzC,MAAM,CAAC,MAAM,oBAAoB,GAAwC,CAAC,EACxE,gBAAgB,EAChB,YAAY,EACZ,KAAK,GACN,EAAE,EAAE;IACH,OAAO,CACL;QACE,oBAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"ContextReductionCard.js","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/ContextReductionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAQzC,MAAM,CAAC,MAAM,oBAAoB,GAAwC,CAAC,EACxE,gBAAgB,EAChB,YAAY,EACZ,KAAK,GACN,EAAE,EAAE;IACH,OAAO,CACL;QACE,oBAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,OAAO,EACnB,OAAO,EAAE,CAAC;YAEV,oBAAC,GAAG,IAAC,cAAc,EAAC,QAAQ;gBAC1B,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,qCAEjB,CACH;YAEN,oBAAC,OAAO,OAAG;YAEX,oBAAC,GAAG,IAAC,cAAc,EAAC,QAAQ;gBAC1B,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,EAAE,KAAK,IACrC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,CACxD,CACH;YAEN,oBAAC,OAAO,OAAG;YAEX,oBAAC,GAAG,IAAC,cAAc,EAAC,QAAQ;gBAC1B,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO;oBACtB,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,QAAC,SAAS;wBAC/B,gBAAgB;4BACZ,CACF,CACH;YAEN,oBAAC,OAAO,OAAG;YAEX,oBAAC,GAAG,IAAC,cAAc,EAAC,QAAQ;gBAC1B,oBAAC,IAAI,IAAC,QAAQ;;oBACQ,GAAG;oBACvB,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;wBACf,YAAY;;wBAAG,KAAK;iCAChB,CACF,CACH;YAEN,oBAAC,GAAG,IAAC,cAAc,EAAC,QAAQ;gBAC1B,oBAAC,IAAI,IAAC,QAAQ;;oBACa,GAAG;oBAC5B,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO;;wBAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC;4BAAS,CAC5D,CACH,CACF;QAEN,oBAAC,OAAO,OAAG;QACX,oBAAC,OAAO,OAAG,CACV,CACJ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CostSavingsCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/CostSavingsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,oBAAoB;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAKD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"CostSavingsCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/CostSavingsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,oBAAoB;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAKD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgE1D,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import { Box, Text } from
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
3
|
export const CostSavingsCard = ({ monthlyCost, tokensAvoided, percentReduction, model, }) => {
|
|
4
4
|
const formatTokens = (tokens) => {
|
|
5
5
|
if (tokens >= 1_000_000) {
|
|
@@ -12,14 +12,14 @@ export const CostSavingsCard = ({ monthlyCost, tokensAvoided, percentReduction,
|
|
|
12
12
|
};
|
|
13
13
|
const formatCost = (cost) => {
|
|
14
14
|
if (cost < 0.01)
|
|
15
|
-
return
|
|
15
|
+
return "<$0.01";
|
|
16
16
|
return `$${cost.toFixed(2)}`;
|
|
17
17
|
};
|
|
18
18
|
const modelDisplay = model
|
|
19
|
-
.replace(
|
|
20
|
-
.replace(
|
|
21
|
-
.replace(
|
|
22
|
-
.replace(
|
|
19
|
+
.replace("claude-", "Claude ")
|
|
20
|
+
.replace("sonnet-", "Sonnet ")
|
|
21
|
+
.replace("opus-", "Opus ")
|
|
22
|
+
.replace("haiku-", "Haiku ");
|
|
23
23
|
return (React.createElement(Box, { flexDirection: "column", paddingY: 1, borderStyle: "round", borderColor: "green" },
|
|
24
24
|
React.createElement(Box, { paddingX: 2 },
|
|
25
25
|
React.createElement(Text, { bold: true, color: "green" }, "\uD83D\uDCB0 MONTHLY SAVINGS (ESTIMATED)")),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CostSavingsCard.js","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/CostSavingsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAYhC,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,EAC9D,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,KAAK,GACN,EAAE,EAAE;IAEH,MAAM,YAAY,GAAG,CAAC,MAAc,EAAU,EAAE;QAC9C,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/C,CAAC;aAAM,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3C,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC,CAAC;IAGF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE;QAC1C,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,QAAQ,CAAC;QACjC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,CAAC,CAAC;IAGF,MAAM,YAAY,GAAG,KAAK;SACvB,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;SAC7B,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;SAC7B,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;SACzB,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE/B,OAAO,CACL,oBAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"CostSavingsCard.js","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/CostSavingsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAYhC,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,EAC9D,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,KAAK,GACN,EAAE,EAAE;IAEH,MAAM,YAAY,GAAG,CAAC,MAAc,EAAU,EAAE;QAC9C,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/C,CAAC;aAAM,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3C,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC,CAAC;IAGF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE;QAC1C,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,QAAQ,CAAC;QACjC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,CAAC,CAAC;IAGF,MAAM,YAAY,GAAG,KAAK;SACvB,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;SAC7B,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;SAC7B,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;SACzB,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE/B,OAAO,CACL,oBAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,OAAO;QAEnB,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;YACd,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,+CAEjB,CACH;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAC,QAAQ;YACtD,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI;;gBACpB,UAAU,CAAC,WAAW,CAAC,CACpB,CACH;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAC,QAAQ;YACvC,oBAAC,IAAI,IAAC,QAAQ,wCAAmC,CAC7C;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;YAC7B,oBAAC,IAAI,IAAC,QAAQ;;gBAAW,YAAY;qCAA0B,CAC3D;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;YACd,oBAAC,IAAI,IAAC,QAAQ;;gBACK,YAAY,CAAC,aAAa,CAAC;;gBAC3C,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;+BACvB,CACH,CACF,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileDistributionCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/FileDistributionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,yBAAyB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,
|
|
1
|
+
{"version":3,"file":"FileDistributionCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/FileDistributionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,yBAAyB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAwEpE,CAAC"}
|