mycontext-cli 4.2.1 → 4.2.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 -0
- package/dist/README.md +22 -0
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/doctor.d.ts +18 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +53 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +63 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/doctor/DoctorEngine.d.ts +5 -0
- package/dist/doctor/DoctorEngine.d.ts.map +1 -0
- package/dist/doctor/DoctorEngine.js +491 -0
- package/dist/doctor/DoctorEngine.js.map +1 -0
- package/dist/doctor/api.d.ts +4 -0
- package/dist/doctor/api.d.ts.map +1 -0
- package/dist/doctor/api.js +19 -0
- package/dist/doctor/api.js.map +1 -0
- package/dist/doctor/rules/dead-code-rules.d.ts +3 -0
- package/dist/doctor/rules/dead-code-rules.d.ts.map +1 -0
- package/dist/doctor/rules/dead-code-rules.js +269 -0
- package/dist/doctor/rules/dead-code-rules.js.map +1 -0
- package/dist/doctor/rules/index.d.ts +11 -0
- package/dist/doctor/rules/index.d.ts.map +1 -0
- package/dist/doctor/rules/index.js +21 -0
- package/dist/doctor/rules/index.js.map +1 -0
- package/dist/doctor/rules/nextjs-rules.d.ts +3 -0
- package/dist/doctor/rules/nextjs-rules.d.ts.map +1 -0
- package/dist/doctor/rules/nextjs-rules.js +357 -0
- package/dist/doctor/rules/nextjs-rules.js.map +1 -0
- package/dist/doctor/rules/node-rules.d.ts +3 -0
- package/dist/doctor/rules/node-rules.d.ts.map +1 -0
- package/dist/doctor/rules/node-rules.js +290 -0
- package/dist/doctor/rules/node-rules.js.map +1 -0
- package/dist/doctor/rules/turbo-rules.d.ts +3 -0
- package/dist/doctor/rules/turbo-rules.d.ts.map +1 -0
- package/dist/doctor/rules/turbo-rules.js +215 -0
- package/dist/doctor/rules/turbo-rules.js.map +1 -0
- package/dist/doctor/types.d.ts +87 -0
- package/dist/doctor/types.d.ts.map +1 -0
- package/dist/doctor/types.js +6 -0
- package/dist/doctor/types.js.map +1 -0
- package/dist/package.json +2 -2
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-rules.js","sourceRoot":"","sources":["../../../src/doctor/rules/node-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turbo-rules.d.ts","sourceRoot":"","sources":["../../../src/doctor/rules/turbo-rules.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,UAAU,CAAC;AAsMpE,eAAO,MAAM,UAAU,EAAE,UAAU,EAOlC,CAAC"}
|
|
@@ -0,0 +1,215 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.turboRules = void 0;
|
|
37
|
+
/**
|
|
38
|
+
* Turborepo Rules — Best practice checks for Turborepo monorepos
|
|
39
|
+
*/
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
function diag(rule, filePath, message, opts = {}) {
|
|
42
|
+
return {
|
|
43
|
+
ruleId: rule.id,
|
|
44
|
+
filePath,
|
|
45
|
+
line: opts.line,
|
|
46
|
+
severity: rule.severity,
|
|
47
|
+
message,
|
|
48
|
+
help: opts.help || rule.help,
|
|
49
|
+
autoFixable: opts.autoFixable ?? false,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// ─── Rules ────────────────────────────────────────────────────────
|
|
53
|
+
const hasTurboJson = {
|
|
54
|
+
id: "turbo/has-turbo-json",
|
|
55
|
+
name: "Has turbo.json",
|
|
56
|
+
category: "turbo",
|
|
57
|
+
severity: "error",
|
|
58
|
+
description: "Turborepo projects must have a turbo.json configuration",
|
|
59
|
+
help: "Create turbo.json with pipeline configuration at the project root",
|
|
60
|
+
appliesTo: ["turbo"],
|
|
61
|
+
async check(ctx) {
|
|
62
|
+
const results = [];
|
|
63
|
+
if (!(await ctx.fileExists("turbo.json"))) {
|
|
64
|
+
results.push(diag(this, "turbo.json", "Missing turbo.json configuration"));
|
|
65
|
+
}
|
|
66
|
+
return results;
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
const workspaceDeps = {
|
|
70
|
+
id: "turbo/workspace-deps",
|
|
71
|
+
name: "Workspace Protocol",
|
|
72
|
+
category: "turbo",
|
|
73
|
+
severity: "warning",
|
|
74
|
+
description: "Workspace packages should use workspace:* protocol for internal deps",
|
|
75
|
+
help: "Use \"workspace:*\" for local package dependencies instead of version numbers",
|
|
76
|
+
appliesTo: ["turbo"],
|
|
77
|
+
async check(ctx) {
|
|
78
|
+
const results = [];
|
|
79
|
+
if (!ctx.project.workspaces)
|
|
80
|
+
return results;
|
|
81
|
+
// Get all workspace package names
|
|
82
|
+
const wsNames = new Set(ctx.project.workspaces.map(ws => ws.name));
|
|
83
|
+
for (const ws of ctx.project.workspaces) {
|
|
84
|
+
const pkgPath = path.join(ws.path, "package.json");
|
|
85
|
+
const pkg = await ctx.readJson(pkgPath);
|
|
86
|
+
if (!pkg)
|
|
87
|
+
continue;
|
|
88
|
+
const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
89
|
+
for (const [dep, version] of Object.entries(allDeps)) {
|
|
90
|
+
if (wsNames.has(dep) && typeof version === "string" && !version.startsWith("workspace:")) {
|
|
91
|
+
results.push(diag(this, pkgPath, `${dep} should use "workspace:*" instead of "${version}"`, { autoFixable: true }));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return results;
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
const sharedTsConfig = {
|
|
99
|
+
id: "turbo/shared-tsconfig",
|
|
100
|
+
name: "Shared TypeScript Config",
|
|
101
|
+
category: "turbo",
|
|
102
|
+
severity: "warning",
|
|
103
|
+
description: "Workspace packages should extend a shared tsconfig",
|
|
104
|
+
help: "Create a shared tsconfig.base.json at root and have workspaces extend it",
|
|
105
|
+
appliesTo: ["turbo"],
|
|
106
|
+
async check(ctx) {
|
|
107
|
+
const results = [];
|
|
108
|
+
const hasBase = await ctx.fileExists("tsconfig.json") ||
|
|
109
|
+
await ctx.fileExists("tsconfig.base.json");
|
|
110
|
+
if (!hasBase)
|
|
111
|
+
return results;
|
|
112
|
+
if (!ctx.project.workspaces)
|
|
113
|
+
return results;
|
|
114
|
+
for (const ws of ctx.project.workspaces) {
|
|
115
|
+
const tsPath = path.join(ws.path, "tsconfig.json");
|
|
116
|
+
const content = await ctx.readFile(tsPath);
|
|
117
|
+
if (!content)
|
|
118
|
+
continue;
|
|
119
|
+
if (!content.includes('"extends"')) {
|
|
120
|
+
results.push(diag(this, tsPath, `${ws.name} tsconfig doesn't extend a shared base config`));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return results;
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
const noRootAppDeps = {
|
|
127
|
+
id: "turbo/no-root-app-deps",
|
|
128
|
+
name: "No Root App Dependencies",
|
|
129
|
+
category: "turbo",
|
|
130
|
+
severity: "warning",
|
|
131
|
+
description: "Root package.json should only have devDependencies, not app-level deps",
|
|
132
|
+
help: "Move application dependencies to workspace packages, keep only tooling in root",
|
|
133
|
+
appliesTo: ["turbo"],
|
|
134
|
+
async check(ctx) {
|
|
135
|
+
const results = [];
|
|
136
|
+
const pkg = await ctx.readJson("package.json");
|
|
137
|
+
if (!pkg?.dependencies)
|
|
138
|
+
return results;
|
|
139
|
+
// Common root-level deps that are fine
|
|
140
|
+
const allowedRootDeps = new Set(["turbo", "typescript"]);
|
|
141
|
+
const appDeps = Object.keys(pkg.dependencies).filter(d => !allowedRootDeps.has(d));
|
|
142
|
+
if (appDeps.length > 0) {
|
|
143
|
+
results.push(diag(this, "package.json", `Root has ${appDeps.length} application dependencies: ${appDeps.slice(0, 5).join(", ")}${appDeps.length > 5 ? "..." : ""}`, { help: "Move these to workspace packages; root should only have devDependencies" }));
|
|
144
|
+
}
|
|
145
|
+
return results;
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
const pipelineCoverage = {
|
|
149
|
+
id: "turbo/pipeline-coverage",
|
|
150
|
+
name: "Pipeline Coverage",
|
|
151
|
+
category: "turbo",
|
|
152
|
+
severity: "warning",
|
|
153
|
+
description: "All workspace scripts should be covered in turbo.json pipeline",
|
|
154
|
+
help: "Add missing tasks to turbo.json to benefit from caching",
|
|
155
|
+
appliesTo: ["turbo"],
|
|
156
|
+
async check(ctx) {
|
|
157
|
+
const results = [];
|
|
158
|
+
const turboConfig = await ctx.readJson("turbo.json");
|
|
159
|
+
if (!turboConfig)
|
|
160
|
+
return results;
|
|
161
|
+
// Turbo v2 uses "tasks", v1 uses "pipeline"
|
|
162
|
+
const pipeline = turboConfig.tasks || turboConfig.pipeline || {};
|
|
163
|
+
const pipelineKeys = new Set(Object.keys(pipeline));
|
|
164
|
+
if (!ctx.project.workspaces)
|
|
165
|
+
return results;
|
|
166
|
+
// Collect all unique script names across workspaces
|
|
167
|
+
const allScripts = new Set();
|
|
168
|
+
for (const ws of ctx.project.workspaces) {
|
|
169
|
+
const pkg = await ctx.readJson(path.join(ws.path, "package.json"));
|
|
170
|
+
if (pkg?.scripts) {
|
|
171
|
+
Object.keys(pkg.scripts).forEach(s => allScripts.add(s));
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// Common scripts that should be in pipeline
|
|
175
|
+
const importantScripts = ["build", "test", "lint", "dev"];
|
|
176
|
+
for (const script of importantScripts) {
|
|
177
|
+
if (allScripts.has(script) && !pipelineKeys.has(script)) {
|
|
178
|
+
results.push(diag(this, "turbo.json", `Script "${script}" exists in workspaces but not in turbo pipeline`));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return results;
|
|
182
|
+
},
|
|
183
|
+
};
|
|
184
|
+
const workspaceNaming = {
|
|
185
|
+
id: "turbo/workspace-naming",
|
|
186
|
+
name: "Consistent Workspace Naming",
|
|
187
|
+
category: "turbo",
|
|
188
|
+
severity: "warning",
|
|
189
|
+
description: "Workspace packages should use consistent naming (e.g. @scope/name)",
|
|
190
|
+
help: "Use @org/package-name format for workspace packages",
|
|
191
|
+
appliesTo: ["turbo"],
|
|
192
|
+
async check(ctx) {
|
|
193
|
+
const results = [];
|
|
194
|
+
if (!ctx.project.workspaces || ctx.project.workspaces.length < 2)
|
|
195
|
+
return results;
|
|
196
|
+
const scoped = ctx.project.workspaces.filter(ws => ws.name.startsWith("@"));
|
|
197
|
+
const unscoped = ctx.project.workspaces.filter(ws => !ws.name.startsWith("@"));
|
|
198
|
+
// If some are scoped and some aren't, warn about inconsistency
|
|
199
|
+
if (scoped.length > 0 && unscoped.length > 0) {
|
|
200
|
+
for (const ws of unscoped) {
|
|
201
|
+
results.push(diag(this, path.join(ws.path, "package.json"), `${ws.name} is not scoped — other packages use @scope/name format`));
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return results;
|
|
205
|
+
},
|
|
206
|
+
};
|
|
207
|
+
exports.turboRules = [
|
|
208
|
+
hasTurboJson,
|
|
209
|
+
workspaceDeps,
|
|
210
|
+
sharedTsConfig,
|
|
211
|
+
noRootAppDeps,
|
|
212
|
+
pipelineCoverage,
|
|
213
|
+
workspaceNaming,
|
|
214
|
+
];
|
|
215
|
+
//# sourceMappingURL=turbo-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turbo-rules.js","sourceRoot":"","sources":["../../../src/doctor/rules/turbo-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Doctor Types — Shared interfaces for the mycontext doctor system
|
|
3
|
+
*/
|
|
4
|
+
export type ProjectType = "nextjs" | "turbo" | "node";
|
|
5
|
+
export interface ProjectInfo {
|
|
6
|
+
type: ProjectType;
|
|
7
|
+
name: string;
|
|
8
|
+
root: string;
|
|
9
|
+
version?: string;
|
|
10
|
+
packageManager: "npm" | "pnpm" | "yarn" | "bun" | "unknown";
|
|
11
|
+
isMonorepo: boolean;
|
|
12
|
+
workspaces?: WorkspaceInfo[];
|
|
13
|
+
typescript: boolean;
|
|
14
|
+
nextVersion?: string;
|
|
15
|
+
reactVersion?: string;
|
|
16
|
+
turboVersion?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface WorkspaceInfo {
|
|
19
|
+
name: string;
|
|
20
|
+
path: string;
|
|
21
|
+
absolutePath: string;
|
|
22
|
+
type: ProjectType;
|
|
23
|
+
hasPackageJson: boolean;
|
|
24
|
+
}
|
|
25
|
+
export type DoctorCategory = "nextjs" | "turbo" | "node" | "dead";
|
|
26
|
+
export interface Diagnostic {
|
|
27
|
+
ruleId: string;
|
|
28
|
+
filePath: string;
|
|
29
|
+
line?: number;
|
|
30
|
+
column?: number;
|
|
31
|
+
severity: "error" | "warning";
|
|
32
|
+
message: string;
|
|
33
|
+
help: string;
|
|
34
|
+
autoFixable: boolean;
|
|
35
|
+
}
|
|
36
|
+
export interface RuleContext {
|
|
37
|
+
root: string;
|
|
38
|
+
project: ProjectInfo;
|
|
39
|
+
isWorkspace: boolean;
|
|
40
|
+
readFile(relativePath: string): Promise<string | null>;
|
|
41
|
+
fileExists(relativePath: string): Promise<boolean>;
|
|
42
|
+
findFiles(pattern: RegExp, maxDepth?: number): Promise<string[]>;
|
|
43
|
+
readJson(relativePath: string): Promise<any | null>;
|
|
44
|
+
}
|
|
45
|
+
export interface DoctorRule {
|
|
46
|
+
id: string;
|
|
47
|
+
name: string;
|
|
48
|
+
category: DoctorCategory;
|
|
49
|
+
severity: "error" | "warning";
|
|
50
|
+
description: string;
|
|
51
|
+
help: string;
|
|
52
|
+
appliesTo: ProjectType[];
|
|
53
|
+
check(ctx: RuleContext): Promise<Diagnostic[]>;
|
|
54
|
+
fix?(ctx: RuleContext, diag: Diagnostic): Promise<boolean>;
|
|
55
|
+
}
|
|
56
|
+
export interface DoctorResult {
|
|
57
|
+
score: number;
|
|
58
|
+
grade: string;
|
|
59
|
+
diagnostics: Diagnostic[];
|
|
60
|
+
project: ProjectInfo;
|
|
61
|
+
ruleResults: RuleResult[];
|
|
62
|
+
fixedCount?: number;
|
|
63
|
+
duration: number;
|
|
64
|
+
}
|
|
65
|
+
export interface RuleResult {
|
|
66
|
+
ruleId: string;
|
|
67
|
+
ruleName: string;
|
|
68
|
+
category: DoctorCategory;
|
|
69
|
+
passed: boolean;
|
|
70
|
+
diagnostics: Diagnostic[];
|
|
71
|
+
}
|
|
72
|
+
export interface DoctorOptions {
|
|
73
|
+
fix?: boolean;
|
|
74
|
+
verbose?: boolean;
|
|
75
|
+
score?: boolean;
|
|
76
|
+
project?: string;
|
|
77
|
+
category?: DoctorCategory;
|
|
78
|
+
dryRun?: boolean;
|
|
79
|
+
json?: boolean;
|
|
80
|
+
}
|
|
81
|
+
export interface DiagnoseOptions {
|
|
82
|
+
lint?: boolean;
|
|
83
|
+
deadCode?: boolean;
|
|
84
|
+
category?: DoctorCategory;
|
|
85
|
+
project?: string;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/doctor/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/doctor/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mycontext-cli",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.2",
|
|
4
4
|
"description": "CLI tool for spec-driven development - Generate comprehensive context, visual screens, and scaffolding for AI-powered coding",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
"typescript": "^5.0.0"
|
|
99
99
|
},
|
|
100
100
|
"engines": {
|
|
101
|
-
"node": ">=18
|
|
101
|
+
"node": ">=18"
|
|
102
102
|
},
|
|
103
103
|
"files": [
|
|
104
104
|
"dist/",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mycontext-cli",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.2",
|
|
4
4
|
"description": "CLI tool for spec-driven development - Generate comprehensive context, visual screens, and scaffolding for AI-powered coding",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
"typescript": "^5.0.0"
|
|
99
99
|
},
|
|
100
100
|
"engines": {
|
|
101
|
-
"node": ">=18
|
|
101
|
+
"node": ">=18"
|
|
102
102
|
},
|
|
103
103
|
"files": [
|
|
104
104
|
"dist/",
|