mycontext-cli 0.1.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.
Files changed (94) hide show
  1. package/README.md +440 -0
  2. package/dist/cli/src/agents/implementations/CodeGenSubAgent.d.ts +43 -0
  3. package/dist/cli/src/agents/implementations/CodeGenSubAgent.d.ts.map +1 -0
  4. package/dist/cli/src/agents/implementations/CodeGenSubAgent.js +1440 -0
  5. package/dist/cli/src/agents/implementations/CodeGenSubAgent.js.map +1 -0
  6. package/dist/cli/src/agents/implementations/DocsSubAgent.d.ts +35 -0
  7. package/dist/cli/src/agents/implementations/DocsSubAgent.d.ts.map +1 -0
  8. package/dist/cli/src/agents/implementations/DocsSubAgent.js +351 -0
  9. package/dist/cli/src/agents/implementations/DocsSubAgent.js.map +1 -0
  10. package/dist/cli/src/agents/implementations/QASubAgent.d.ts +31 -0
  11. package/dist/cli/src/agents/implementations/QASubAgent.d.ts.map +1 -0
  12. package/dist/cli/src/agents/implementations/QASubAgent.js +190 -0
  13. package/dist/cli/src/agents/implementations/QASubAgent.js.map +1 -0
  14. package/dist/cli/src/agents/interfaces/SubAgent.d.ts +157 -0
  15. package/dist/cli/src/agents/interfaces/SubAgent.d.ts.map +1 -0
  16. package/dist/cli/src/agents/interfaces/SubAgent.js +7 -0
  17. package/dist/cli/src/agents/interfaces/SubAgent.js.map +1 -0
  18. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.d.ts +59 -0
  19. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.d.ts.map +1 -0
  20. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.js +305 -0
  21. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.js.map +1 -0
  22. package/dist/cli/src/agents/personalities/definitions.d.ts +34 -0
  23. package/dist/cli/src/agents/personalities/definitions.d.ts.map +1 -0
  24. package/dist/cli/src/agents/personalities/definitions.js +360 -0
  25. package/dist/cli/src/agents/personalities/definitions.js.map +1 -0
  26. package/dist/cli/src/cli.d.ts +3 -0
  27. package/dist/cli/src/cli.d.ts.map +1 -0
  28. package/dist/cli/src/cli.js +286 -0
  29. package/dist/cli/src/cli.js.map +1 -0
  30. package/dist/cli/src/commands/auth.d.ts +23 -0
  31. package/dist/cli/src/commands/auth.d.ts.map +1 -0
  32. package/dist/cli/src/commands/auth.js +212 -0
  33. package/dist/cli/src/commands/auth.js.map +1 -0
  34. package/dist/cli/src/commands/generate-components.d.ts +28 -0
  35. package/dist/cli/src/commands/generate-components.d.ts.map +1 -0
  36. package/dist/cli/src/commands/generate-components.js +680 -0
  37. package/dist/cli/src/commands/generate-components.js.map +1 -0
  38. package/dist/cli/src/commands/generate.d.ts +108 -0
  39. package/dist/cli/src/commands/generate.d.ts.map +1 -0
  40. package/dist/cli/src/commands/generate.js +1984 -0
  41. package/dist/cli/src/commands/generate.js.map +1 -0
  42. package/dist/cli/src/commands/init.d.ts +13 -0
  43. package/dist/cli/src/commands/init.d.ts.map +1 -0
  44. package/dist/cli/src/commands/init.js +91 -0
  45. package/dist/cli/src/commands/init.js.map +1 -0
  46. package/dist/cli/src/commands/list.d.ts +17 -0
  47. package/dist/cli/src/commands/list.d.ts.map +1 -0
  48. package/dist/cli/src/commands/list.js +209 -0
  49. package/dist/cli/src/commands/list.js.map +1 -0
  50. package/dist/cli/src/commands/preview.d.ts +23 -0
  51. package/dist/cli/src/commands/preview.d.ts.map +1 -0
  52. package/dist/cli/src/commands/preview.js +1200 -0
  53. package/dist/cli/src/commands/preview.js.map +1 -0
  54. package/dist/cli/src/commands/status.d.ts +21 -0
  55. package/dist/cli/src/commands/status.d.ts.map +1 -0
  56. package/dist/cli/src/commands/status.js +287 -0
  57. package/dist/cli/src/commands/status.js.map +1 -0
  58. package/dist/cli/src/commands/validate.d.ts +22 -0
  59. package/dist/cli/src/commands/validate.d.ts.map +1 -0
  60. package/dist/cli/src/commands/validate.js +259 -0
  61. package/dist/cli/src/commands/validate.js.map +1 -0
  62. package/dist/cli/src/types/index.d.ts +152 -0
  63. package/dist/cli/src/types/index.d.ts.map +1 -0
  64. package/dist/cli/src/types/index.js +3 -0
  65. package/dist/cli/src/types/index.js.map +1 -0
  66. package/dist/cli/src/utils/apiKeyManager.d.ts +137 -0
  67. package/dist/cli/src/utils/apiKeyManager.d.ts.map +1 -0
  68. package/dist/cli/src/utils/apiKeyManager.js +471 -0
  69. package/dist/cli/src/utils/apiKeyManager.js.map +1 -0
  70. package/dist/cli/src/utils/errorHandler.d.ts +105 -0
  71. package/dist/cli/src/utils/errorHandler.d.ts.map +1 -0
  72. package/dist/cli/src/utils/errorHandler.js +332 -0
  73. package/dist/cli/src/utils/errorHandler.js.map +1 -0
  74. package/dist/cli/src/utils/fileSystem.d.ts +58 -0
  75. package/dist/cli/src/utils/fileSystem.d.ts.map +1 -0
  76. package/dist/cli/src/utils/fileSystem.js +230 -0
  77. package/dist/cli/src/utils/fileSystem.js.map +1 -0
  78. package/dist/cli/src/utils/githubModels.d.ts +53 -0
  79. package/dist/cli/src/utils/githubModels.d.ts.map +1 -0
  80. package/dist/cli/src/utils/githubModels.js +239 -0
  81. package/dist/cli/src/utils/githubModels.js.map +1 -0
  82. package/dist/cli/src/utils/spinner.d.ts +28 -0
  83. package/dist/cli/src/utils/spinner.d.ts.map +1 -0
  84. package/dist/cli/src/utils/spinner.js +112 -0
  85. package/dist/cli/src/utils/spinner.js.map +1 -0
  86. package/dist/cli/src/utils/xaiClient.d.ts +59 -0
  87. package/dist/cli/src/utils/xaiClient.d.ts.map +1 -0
  88. package/dist/cli/src/utils/xaiClient.js +244 -0
  89. package/dist/cli/src/utils/xaiClient.js.map +1 -0
  90. package/dist/lib/analytics/usage-tracker.d.ts +125 -0
  91. package/dist/lib/analytics/usage-tracker.d.ts.map +1 -0
  92. package/dist/lib/analytics/usage-tracker.js +429 -0
  93. package/dist/lib/analytics/usage-tracker.js.map +1 -0
  94. package/package.json +64 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../../src/commands/preview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { CommandOptions } from "../types";
2
+ interface StatusOptions extends CommandOptions {
3
+ detailed?: boolean;
4
+ checkHealth?: boolean;
5
+ }
6
+ export declare class StatusCommand {
7
+ private fs;
8
+ execute(target: string, options: StatusOptions): Promise<void>;
9
+ private displayProjectStatus;
10
+ private displayProgress;
11
+ private displayFileStatus;
12
+ private displayNextSteps;
13
+ private getNextSteps;
14
+ private checkProjectHealth;
15
+ private checkConfigHealth;
16
+ private checkContextHealth;
17
+ private checkPermissions;
18
+ private getStatusBadge;
19
+ }
20
+ export {};
21
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/commands/status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,UAAU,aAAc,SAAQ,cAAc;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAA2B;IAE/B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAoCtD,oBAAoB;YA2BpB,eAAe;YAyCf,iBAAiB;IAwC/B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,YAAY;YA8CN,kBAAkB;YA4ClB,iBAAiB;YAIjB,kBAAkB;YASlB,gBAAgB;IAc9B,OAAO,CAAC,cAAc;CAYvB"}
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.StatusCommand = void 0;
40
+ const chalk_1 = __importDefault(require("chalk"));
41
+ const fileSystem_1 = require("../utils/fileSystem");
42
+ class StatusCommand {
43
+ constructor() {
44
+ this.fs = new fileSystem_1.FileSystemManager();
45
+ }
46
+ async execute(target, options) {
47
+ try {
48
+ console.log(chalk_1.default.blue.bold("šŸ“Š MyContext Project Status\n"));
49
+ // Check if we're in a MyContext project
50
+ const isProject = await this.fs.isMyContextProject(".");
51
+ if (!isProject) {
52
+ console.log(chalk_1.default.yellow("āŒ Not a MyContext project"));
53
+ console.log(chalk_1.default.gray('Run "mycontext init <project-name>" to create a new project.\n'));
54
+ return;
55
+ }
56
+ // Get project configuration
57
+ const config = await this.fs.getProjectConfig(".");
58
+ if (!config) {
59
+ console.log(chalk_1.default.red("āŒ Project configuration not found"));
60
+ return;
61
+ }
62
+ // Display project status
63
+ await this.displayProjectStatus(config, options);
64
+ // Check health if requested
65
+ if (options.checkHealth) {
66
+ await this.checkProjectHealth(config);
67
+ }
68
+ }
69
+ catch (error) {
70
+ console.error(chalk_1.default.red("āŒ Status check failed:"), error);
71
+ throw error;
72
+ }
73
+ }
74
+ async displayProjectStatus(config, options) {
75
+ // Project overview
76
+ console.log(chalk_1.default.cyan("šŸ“ Project Overview:"));
77
+ console.log(` Name: ${chalk_1.default.bold(config.name)}`);
78
+ console.log(` Description: ${chalk_1.default.gray(config.description)}`);
79
+ console.log(` Version: ${config.version}`);
80
+ console.log(` Status: ${this.getStatusBadge(config.status)}`);
81
+ console.log(` Created: ${new Date(config.createdAt).toLocaleDateString()}`);
82
+ console.log(` Updated: ${new Date(config.updatedAt).toLocaleDateString()}\n`);
83
+ // Progress tracking
84
+ await this.displayProgress(config);
85
+ // File status
86
+ await this.displayFileStatus();
87
+ // Next steps
88
+ this.displayNextSteps(config.status);
89
+ }
90
+ async displayProgress(config) {
91
+ console.log(chalk_1.default.cyan("šŸŽÆ Progress:"));
92
+ const progressSteps = [
93
+ { key: "initialized", label: "Project Initialized", icon: "āœ…" },
94
+ {
95
+ key: "context-generated",
96
+ label: "Context Files Generated",
97
+ icon: "šŸ“",
98
+ },
99
+ { key: "branded", label: "Branding Guidelines", icon: "šŸŽØ" },
100
+ { key: "components-planned", label: "Components Planned", icon: "🧩" },
101
+ { key: "generating", label: "Components Generating", icon: "⚔" },
102
+ { key: "completed", label: "Project Complete", icon: "šŸŽ‰" },
103
+ ];
104
+ const currentIndex = progressSteps.findIndex((step) => step.key === config.status);
105
+ progressSteps.forEach((step, index) => {
106
+ const isCompleted = index <= currentIndex;
107
+ const isCurrent = index === currentIndex;
108
+ let icon = step.icon;
109
+ let color = chalk_1.default.gray;
110
+ if (isCompleted) {
111
+ icon = "āœ…";
112
+ color = chalk_1.default.green;
113
+ }
114
+ else if (isCurrent) {
115
+ icon = "šŸ”„";
116
+ color = chalk_1.default.yellow;
117
+ }
118
+ console.log(` ${icon} ${color(step.label)}`);
119
+ });
120
+ console.log("");
121
+ }
122
+ async displayFileStatus() {
123
+ console.log(chalk_1.default.cyan("šŸ“„ Files Status:"));
124
+ const expectedFiles = [
125
+ { path: "context/prd.md", name: "PRD", required: true },
126
+ { path: "context/01_PRD.md", name: "PRD (v2)", required: false },
127
+ { path: "context/types.ts", name: "TypeScript Types", required: false },
128
+ {
129
+ path: "context/branding.md",
130
+ name: "Branding Guidelines",
131
+ required: false,
132
+ },
133
+ {
134
+ path: "context/component-list.json",
135
+ name: "Component List",
136
+ required: false,
137
+ },
138
+ {
139
+ path: "context/app-structure.json",
140
+ name: "App Structure",
141
+ required: false,
142
+ },
143
+ ];
144
+ for (const file of expectedFiles) {
145
+ try {
146
+ await this.fs.readFile(file.path);
147
+ console.log(` āœ… ${chalk_1.default.green(file.name)}`);
148
+ }
149
+ catch {
150
+ if (file.required) {
151
+ console.log(` āŒ ${chalk_1.default.red(file.name)} (Missing)`);
152
+ }
153
+ else {
154
+ console.log(` ⚪ ${chalk_1.default.gray(file.name)} (Not generated)`);
155
+ }
156
+ }
157
+ }
158
+ console.log("");
159
+ }
160
+ displayNextSteps(currentStatus) {
161
+ console.log(chalk_1.default.cyan("šŸŽÆ Next Steps:"));
162
+ const nextSteps = this.getNextSteps(currentStatus);
163
+ nextSteps.forEach((step, index) => {
164
+ console.log(` ${index + 1}. ${step}`);
165
+ });
166
+ console.log("");
167
+ }
168
+ getNextSteps(status) {
169
+ switch (status) {
170
+ case "initialized":
171
+ return [
172
+ 'Run "mycontext generate context" to create PRD and user stories',
173
+ "Edit the generated PRD to match your requirements",
174
+ 'Run "mycontext validate prd" to check quality',
175
+ ];
176
+ case "context-generated":
177
+ return [
178
+ 'Run "mycontext generate types" to create TypeScript definitions',
179
+ 'Run "mycontext generate brand" to create branding guidelines',
180
+ "Review and refine your context files",
181
+ ];
182
+ case "branded":
183
+ return [
184
+ 'Run "mycontext generate components" to plan your component library',
185
+ "Review the component list and adjust priorities",
186
+ 'Run "mycontext generate app-structure" to plan your app architecture',
187
+ ];
188
+ case "components-planned":
189
+ return [
190
+ "Start implementing components based on the generated list",
191
+ "Use the context files with your AI development tools",
192
+ 'Run "mycontext status" to track progress',
193
+ ];
194
+ case "generating":
195
+ return [
196
+ "Wait for component generation to complete",
197
+ "Review generated components",
198
+ "Start development with the generated context",
199
+ ];
200
+ case "completed":
201
+ return [
202
+ "Start development with your generated context",
203
+ "Use the context files with Claude, Cursor, or other AI tools",
204
+ "Update context files as requirements evolve",
205
+ ];
206
+ default:
207
+ return [
208
+ 'Run "mycontext init <project-name>" to start a new project',
209
+ "Check the documentation at https://mycontext.fbien.com/docs",
210
+ ];
211
+ }
212
+ }
213
+ async checkProjectHealth(config) {
214
+ console.log(chalk_1.default.cyan("šŸ„ Health Check:"));
215
+ const healthChecks = [
216
+ {
217
+ name: "Project Configuration",
218
+ check: () => this.checkConfigHealth(config),
219
+ },
220
+ { name: "Context Files", check: () => this.checkContextHealth() },
221
+ { name: "File Permissions", check: () => this.checkPermissions() },
222
+ ];
223
+ let allHealthy = true;
224
+ for (const healthCheck of healthChecks) {
225
+ try {
226
+ const isHealthy = await healthCheck.check();
227
+ const icon = isHealthy ? "āœ…" : "āŒ";
228
+ const color = isHealthy ? chalk_1.default.green : chalk_1.default.red;
229
+ console.log(` ${icon} ${color(healthCheck.name)}`);
230
+ if (!isHealthy) {
231
+ allHealthy = false;
232
+ }
233
+ }
234
+ catch (error) {
235
+ console.log(` āŒ ${chalk_1.default.red(healthCheck.name)} (Error)`);
236
+ allHealthy = false;
237
+ }
238
+ }
239
+ console.log("");
240
+ if (allHealthy) {
241
+ console.log(chalk_1.default.green("šŸŽ‰ Project is healthy!"));
242
+ }
243
+ else {
244
+ console.log(chalk_1.default.yellow("āš ļø Some issues found. Check the details above."));
245
+ }
246
+ console.log("");
247
+ }
248
+ async checkConfigHealth(config) {
249
+ return !!(config.name && config.description && config.id);
250
+ }
251
+ async checkContextHealth() {
252
+ try {
253
+ const files = await this.fs.listContextFiles(".");
254
+ return files.length > 0;
255
+ }
256
+ catch {
257
+ return false;
258
+ }
259
+ }
260
+ async checkPermissions() {
261
+ try {
262
+ // Try to write a test file
263
+ const testPath = ".mycontext/test-permissions.tmp";
264
+ await this.fs.writeFile(testPath, "test");
265
+ await this.fs.readFile(testPath);
266
+ // Clean up
267
+ await Promise.resolve().then(() => __importStar(require("fs-extra"))).then((fs) => fs.remove(testPath));
268
+ return true;
269
+ }
270
+ catch {
271
+ return false;
272
+ }
273
+ }
274
+ getStatusBadge(status) {
275
+ const badges = {
276
+ initialized: chalk_1.default.blue("ā— Initialized"),
277
+ "context-generated": chalk_1.default.green("ā— Context Generated"),
278
+ branded: chalk_1.default.cyan("ā— Branded"),
279
+ "components-planned": chalk_1.default.yellow("ā— Components Planned"),
280
+ generating: chalk_1.default.magenta("ā— Generating"),
281
+ completed: chalk_1.default.green("ā— Completed"),
282
+ };
283
+ return badges[status] || chalk_1.default.gray("ā— Unknown");
284
+ }
285
+ }
286
+ exports.StatusCommand = StatusCommand;
287
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { CommandOptions } from "../types";
2
+ interface ValidateOptions extends CommandOptions {
3
+ file?: string;
4
+ interactive?: boolean;
5
+ }
6
+ export declare class ValidateCommand {
7
+ private fs;
8
+ execute(target: string, options: ValidateOptions): Promise<void>;
9
+ private validatePRD;
10
+ private scoreTechnicalCompleteness;
11
+ private scoreNoveltyRisk;
12
+ private scoreResourceEstimate;
13
+ private scoreCompliance;
14
+ private scoreLanguageClarity;
15
+ private generateRecommendations;
16
+ private identifyRisks;
17
+ private findPRDFile;
18
+ private displayValidationResults;
19
+ private handleValidationIssues;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../src/commands/validate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAuB,MAAM,UAAU,CAAC;AAE/D,UAAU,eAAgB,SAAQ,cAAc;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAA2B;IAE/B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YA+CxD,WAAW;IA2BzB,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,uBAAuB;IA8B/B,OAAO,CAAC,aAAa;YAsBP,WAAW;IAsBzB,OAAO,CAAC,wBAAwB;YA8ClB,sBAAsB;CAyBrC"}
@@ -0,0 +1,259 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ValidateCommand = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const prompts_1 = __importDefault(require("prompts"));
9
+ const spinner_1 = require("../utils/spinner");
10
+ const fileSystem_1 = require("../utils/fileSystem");
11
+ class ValidateCommand {
12
+ constructor() {
13
+ this.fs = new fileSystem_1.FileSystemManager();
14
+ }
15
+ async execute(target, options) {
16
+ const spinner = new spinner_1.EnhancedSpinner("Validating PRD...");
17
+ try {
18
+ console.log(chalk_1.default.blue.bold("šŸ” MyContext PRD Validation\n"));
19
+ // Determine what to validate
20
+ let prdContent;
21
+ let source;
22
+ if (target === "prd") {
23
+ // Validate PRD file
24
+ const prdPath = options.file || (await this.findPRDFile());
25
+ if (!prdPath) {
26
+ throw new Error('No PRD file found. Run "mycontext generate context" first.');
27
+ }
28
+ prdContent = await this.fs.readFile(prdPath);
29
+ source = prdPath;
30
+ }
31
+ else {
32
+ // Validate provided content
33
+ prdContent = target;
34
+ source = "input";
35
+ }
36
+ spinner.start();
37
+ // Perform validation
38
+ const validationResult = await this.validatePRD(prdContent);
39
+ spinner.success({ text: "PRD validation completed!" });
40
+ // Display results
41
+ this.displayValidationResults(validationResult, source);
42
+ // Interactive mode
43
+ if (options.interactive && !validationResult.isValid) {
44
+ await this.handleValidationIssues(validationResult, prdContent);
45
+ }
46
+ }
47
+ catch (error) {
48
+ spinner.error({ text: "PRD validation failed" });
49
+ throw error;
50
+ }
51
+ }
52
+ async validatePRD(content) {
53
+ // This would integrate with your existing validation logic
54
+ // For now, implementing a basic validation
55
+ const dimensions = {
56
+ technicalCompleteness: this.scoreTechnicalCompleteness(content),
57
+ noveltyRisk: this.scoreNoveltyRisk(content),
58
+ resourceEstimate: this.scoreResourceEstimate(content),
59
+ compliance: this.scoreCompliance(content),
60
+ languageClarity: this.scoreLanguageClarity(content),
61
+ };
62
+ const overall = Object.values(dimensions).reduce((sum, score) => sum + score, 0) / 5;
63
+ const recommendations = this.generateRecommendations(dimensions);
64
+ const risks = this.identifyRisks(dimensions);
65
+ return {
66
+ overall: Math.round(overall),
67
+ dimensions,
68
+ recommendations,
69
+ risks,
70
+ isValid: overall >= 70,
71
+ };
72
+ }
73
+ scoreTechnicalCompleteness(content) {
74
+ let score = 0;
75
+ // Check for technical sections
76
+ if (content.includes("technology") || content.includes("tech stack"))
77
+ score += 20;
78
+ if (content.includes("architecture") || content.includes("system design"))
79
+ score += 20;
80
+ if (content.includes("database") || content.includes("data model"))
81
+ score += 15;
82
+ if (content.includes("API") || content.includes("integration"))
83
+ score += 15;
84
+ if (content.includes("deployment") || content.includes("infrastructure"))
85
+ score += 15;
86
+ if (content.includes("security") || content.includes("authentication"))
87
+ score += 15;
88
+ return Math.min(score, 100);
89
+ }
90
+ scoreNoveltyRisk(content) {
91
+ let score = 50; // Start with neutral score
92
+ // Check for innovative features
93
+ const innovativeKeywords = [
94
+ "AI",
95
+ "machine learning",
96
+ "blockchain",
97
+ "AR",
98
+ "VR",
99
+ "IoT",
100
+ ];
101
+ const innovativeCount = innovativeKeywords.filter((keyword) => content.toLowerCase().includes(keyword.toLowerCase())).length;
102
+ score += innovativeCount * 10;
103
+ // Check for risk indicators
104
+ const riskKeywords = ["experimental", "unproven", "cutting-edge", "beta"];
105
+ const riskCount = riskKeywords.filter((keyword) => content.toLowerCase().includes(keyword.toLowerCase())).length;
106
+ score -= riskCount * 5;
107
+ return Math.max(0, Math.min(score, 100));
108
+ }
109
+ scoreResourceEstimate(content) {
110
+ let score = 0;
111
+ // Check for resource planning
112
+ if (content.includes("timeline") || content.includes("deadline"))
113
+ score += 20;
114
+ if (content.includes("budget") || content.includes("cost"))
115
+ score += 20;
116
+ if (content.includes("team") || content.includes("resources"))
117
+ score += 20;
118
+ if (content.includes("milestone") || content.includes("phase"))
119
+ score += 20;
120
+ if (content.includes("risk") || content.includes("mitigation"))
121
+ score += 20;
122
+ return Math.min(score, 100);
123
+ }
124
+ scoreCompliance(content) {
125
+ let score = 100; // Start with perfect score
126
+ // Check for compliance considerations
127
+ const complianceKeywords = [
128
+ "GDPR",
129
+ "HIPAA",
130
+ "SOX",
131
+ "PCI",
132
+ "compliance",
133
+ "regulation",
134
+ ];
135
+ const hasCompliance = complianceKeywords.some((keyword) => content.toLowerCase().includes(keyword.toLowerCase()));
136
+ if (!hasCompliance)
137
+ score -= 30;
138
+ // Check for legal considerations
139
+ if (!content.toLowerCase().includes("legal") &&
140
+ !content.toLowerCase().includes("terms")) {
141
+ score -= 20;
142
+ }
143
+ return Math.max(0, score);
144
+ }
145
+ scoreLanguageClarity(content) {
146
+ let score = 0;
147
+ // Check for clear structure
148
+ if (content.includes("##") || content.includes("###"))
149
+ score += 20;
150
+ if (content.includes("1.") ||
151
+ content.includes("2.") ||
152
+ content.includes("•"))
153
+ score += 20;
154
+ if (content.includes("objective") || content.includes("goal"))
155
+ score += 20;
156
+ if (content.includes("requirement") || content.includes("feature"))
157
+ score += 20;
158
+ if (content.includes("user story") ||
159
+ content.includes("acceptance criteria"))
160
+ score += 20;
161
+ return Math.min(score, 100);
162
+ }
163
+ generateRecommendations(dimensions) {
164
+ const recommendations = [];
165
+ if (dimensions.technicalCompleteness < 70) {
166
+ recommendations.push("Add more technical specifications and architecture details");
167
+ }
168
+ if (dimensions.noveltyRisk < 50) {
169
+ recommendations.push("Consider the risks and feasibility of innovative features");
170
+ }
171
+ if (dimensions.resourceEstimate < 60) {
172
+ recommendations.push("Include timeline, budget, and resource planning");
173
+ }
174
+ if (dimensions.compliance < 80) {
175
+ recommendations.push("Address compliance and legal requirements");
176
+ }
177
+ if (dimensions.languageClarity < 70) {
178
+ recommendations.push("Improve structure and clarity of requirements");
179
+ }
180
+ return recommendations;
181
+ }
182
+ identifyRisks(dimensions) {
183
+ const risks = [];
184
+ if (dimensions.noveltyRisk > 80) {
185
+ risks.push("High innovation risk - consider feasibility and market validation");
186
+ }
187
+ if (dimensions.technicalCompleteness < 50) {
188
+ risks.push("Insufficient technical detail may lead to implementation issues");
189
+ }
190
+ if (dimensions.resourceEstimate < 40) {
191
+ risks.push("Lack of resource planning may cause project delays");
192
+ }
193
+ return risks;
194
+ }
195
+ async findPRDFile() {
196
+ const possiblePaths = [
197
+ "context/prd.md",
198
+ "context/PRD.md",
199
+ "context/01_PRD.md",
200
+ ".mycontext/context/prd.md",
201
+ "prd.md",
202
+ "PRD.md",
203
+ ];
204
+ for (const path of possiblePaths) {
205
+ try {
206
+ await this.fs.readFile(path);
207
+ return path;
208
+ }
209
+ catch {
210
+ continue;
211
+ }
212
+ }
213
+ return null;
214
+ }
215
+ displayValidationResults(result, source) {
216
+ console.log(chalk_1.default.cyan(`\nšŸ“Š Validation Results for: ${source}\n`));
217
+ // Overall score
218
+ const scoreColor = result.isValid ? chalk_1.default.green : chalk_1.default.red;
219
+ console.log(`Overall Score: ${scoreColor(`${result.overall}/100`)} ${result.isValid ? "āœ…" : "āŒ"}\n`);
220
+ // Dimension scores
221
+ console.log(chalk_1.default.yellow("Dimension Scores:"));
222
+ Object.entries(result.dimensions).forEach(([dimension, score]) => {
223
+ const color = score >= 70 ? chalk_1.default.green : score >= 50 ? chalk_1.default.yellow : chalk_1.default.red;
224
+ const icon = score >= 70 ? "āœ…" : score >= 50 ? "āš ļø" : "āŒ";
225
+ console.log(` ${dimension.replace(/([A-Z])/g, " $1").trim()}: ${color(`${score}/100`)} ${icon}`);
226
+ });
227
+ // Recommendations
228
+ if (result.recommendations.length > 0) {
229
+ console.log(chalk_1.default.blue("\nšŸ’” Recommendations:"));
230
+ result.recommendations.forEach((rec) => {
231
+ console.log(` • ${rec}`);
232
+ });
233
+ }
234
+ // Risks
235
+ if (result.risks.length > 0) {
236
+ console.log(chalk_1.default.red("\nāš ļø Risks:"));
237
+ result.risks.forEach((risk) => {
238
+ console.log(` • ${risk}`);
239
+ });
240
+ }
241
+ console.log("\n");
242
+ }
243
+ async handleValidationIssues(result, content) {
244
+ console.log(chalk_1.default.yellow("Would you like to improve your PRD?"));
245
+ const response = await (0, prompts_1.default)({
246
+ type: "confirm",
247
+ name: "improve",
248
+ message: "Open interactive PRD improvement mode?",
249
+ initial: true,
250
+ });
251
+ if (response.improve) {
252
+ console.log(chalk_1.default.blue("\nšŸ”§ Interactive PRD Improvement Mode\n"));
253
+ console.log(chalk_1.default.gray("This feature will be implemented in a future version."));
254
+ console.log(chalk_1.default.gray("For now, please manually address the recommendations above.\n"));
255
+ }
256
+ }
257
+ }
258
+ exports.ValidateCommand = ValidateCommand;
259
+ //# sourceMappingURL=validate.js.map