mycontext-cli 2.0.25 → 2.0.27
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 +184 -37
- package/dist/cli.js +92 -80
- package/dist/cli.js.map +1 -1
- package/dist/commands/build-app.d.ts +6 -1
- package/dist/commands/build-app.d.ts.map +1 -1
- package/dist/commands/build-app.js +97 -9
- package/dist/commands/build-app.js.map +1 -1
- package/dist/commands/compile-prd.d.ts.map +1 -1
- package/dist/commands/compile-prd.js +7 -0
- package/dist/commands/compile-prd.js.map +1 -1
- package/dist/commands/export-progress.d.ts +34 -0
- package/dist/commands/export-progress.d.ts.map +1 -0
- package/dist/commands/export-progress.js +552 -0
- package/dist/commands/export-progress.js.map +1 -0
- package/dist/commands/generate-context-files.d.ts.map +1 -1
- package/dist/commands/generate-context-files.js +10 -2
- package/dist/commands/generate-context-files.js.map +1 -1
- package/dist/commands/generate.d.ts +8 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +212 -0
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/help.d.ts +17 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +329 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/import-project-plan.d.ts +27 -0
- package/dist/commands/import-project-plan.d.ts.map +1 -0
- package/dist/commands/import-project-plan.js +411 -0
- package/dist/commands/import-project-plan.js.map +1 -0
- package/dist/commands/pm-integration.d.ts +18 -0
- package/dist/commands/pm-integration.d.ts.map +1 -0
- package/dist/commands/pm-integration.js +385 -0
- package/dist/commands/pm-integration.js.map +1 -0
- package/dist/commands/setup-complete.d.ts +16 -0
- package/dist/commands/setup-complete.d.ts.map +1 -0
- package/dist/commands/setup-complete.js +468 -0
- package/dist/commands/setup-complete.js.map +1 -0
- package/dist/commands/setup-shadcn.d.ts +20 -0
- package/dist/commands/setup-shadcn.d.ts.map +1 -0
- package/dist/commands/setup-shadcn.js +241 -0
- package/dist/commands/setup-shadcn.js.map +1 -0
- package/dist/commands/suggest.d.ts +15 -0
- package/dist/commands/suggest.d.ts.map +1 -0
- package/dist/commands/suggest.js +288 -0
- package/dist/commands/suggest.js.map +1 -0
- package/dist/commands/update.d.ts +0 -4
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +7 -197
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/workflow.d.ts +16 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +464 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/package.json +1 -1
- package/dist/services/PMIntegrationService.d.ts +46 -0
- package/dist/services/PMIntegrationService.d.ts.map +1 -0
- package/dist/services/PMIntegrationService.js +363 -0
- package/dist/services/PMIntegrationService.js.map +1 -0
- package/dist/services/WebhookServer.d.ts +37 -0
- package/dist/services/WebhookServer.d.ts.map +1 -0
- package/dist/services/WebhookServer.js +231 -0
- package/dist/services/WebhookServer.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/pm-integration.d.ts +241 -0
- package/dist/types/pm-integration.d.ts.map +1 -0
- package/dist/types/pm-integration.js +24 -0
- package/dist/types/pm-integration.js.map +1 -0
- package/dist/utils/NextJSProjectValidator.d.ts.map +1 -1
- package/dist/utils/NextJSProjectValidator.js +14 -7
- package/dist/utils/NextJSProjectValidator.js.map +1 -1
- package/dist/utils/ProjectStateAnalyzer.d.ts +46 -0
- package/dist/utils/ProjectStateAnalyzer.d.ts.map +1 -0
- package/dist/utils/ProjectStateAnalyzer.js +311 -0
- package/dist/utils/ProjectStateAnalyzer.js.map +1 -0
- package/dist/utils/ProjectStructureValidator.d.ts +12 -0
- package/dist/utils/ProjectStructureValidator.d.ts.map +1 -1
- package/dist/utils/ProjectStructureValidator.js +111 -14
- package/dist/utils/ProjectStructureValidator.js.map +1 -1
- package/dist/utils/claudeAgentClient.d.ts +4 -0
- package/dist/utils/claudeAgentClient.d.ts.map +1 -1
- package/dist/utils/claudeAgentClient.js +90 -20
- package/dist/utils/claudeAgentClient.js.map +1 -1
- package/dist/utils/errorHandler.d.ts +31 -74
- package/dist/utils/errorHandler.d.ts.map +1 -1
- package/dist/utils/errorHandler.js +190 -276
- package/dist/utils/errorHandler.js.map +1 -1
- package/dist/utils/hybridAIClient.js +1 -1
- package/dist/utils/hybridAIClient.js.map +1 -1
- package/dist/utils/mcpTools.d.ts +9 -9
- package/dist/utils/nextStepsSuggester.d.ts +52 -0
- package/dist/utils/nextStepsSuggester.d.ts.map +1 -0
- package/dist/utils/nextStepsSuggester.js +438 -0
- package/dist/utils/nextStepsSuggester.js.map +1 -0
- package/dist/utils/progress.d.ts +31 -1
- package/dist/utils/progress.d.ts.map +1 -1
- package/dist/utils/progress.js +110 -2
- package/dist/utils/progress.js.map +1 -1
- package/dist/utils/workflowEngine.d.ts +96 -0
- package/dist/utils/workflowEngine.d.ts.map +1 -0
- package/dist/utils/workflowEngine.js +793 -0
- package/dist/utils/workflowEngine.js.map +1 -0
- package/package.json +1 -1
package/dist/commands/update.js
CHANGED
|
@@ -6,193 +6,26 @@ const logger_1 = require("../utils/logger");
|
|
|
6
6
|
class UpdateCommand {
|
|
7
7
|
async execute() {
|
|
8
8
|
logger_1.logger.info("Updating mycontext CLI...");
|
|
9
|
-
// Check if we're in a project directory that might interfere
|
|
10
|
-
const fs = require("fs-extra");
|
|
11
|
-
const path = require("path");
|
|
12
|
-
const packageJsonPath = path.join(process.cwd(), "package.json");
|
|
13
|
-
if (await fs.pathExists(packageJsonPath)) {
|
|
14
|
-
try {
|
|
15
|
-
const packageJson = await fs.readJson(packageJsonPath);
|
|
16
|
-
if (packageJson.packageManager &&
|
|
17
|
-
packageJson.packageManager.includes("pnpm")) {
|
|
18
|
-
logger_1.logger.warn("⚠️ You're in a project that uses pnpm. This might interfere with global updates.");
|
|
19
|
-
logger_1.logger.info("💡 Try running the update from your home directory or use: npm i -g mycontext-cli@latest");
|
|
20
|
-
}
|
|
21
|
-
else if (packageJson.packageManager &&
|
|
22
|
-
packageJson.packageManager.includes("npm")) {
|
|
23
|
-
logger_1.logger.warn("⚠️ You're in a project that uses npm. This might interfere with global updates.");
|
|
24
|
-
logger_1.logger.info("💡 Try running the update from your home directory or use: npm i -g mycontext-cli@latest");
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
catch (e) {
|
|
28
|
-
// Ignore errors reading package.json
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
// Check current version first
|
|
32
|
-
const currentVersion = this.getCurrentVersion();
|
|
33
|
-
const latestVersion = this.getLatestVersion();
|
|
34
|
-
logger_1.logger.info(`Current version: ${currentVersion}`);
|
|
35
|
-
if (latestVersion !== "unknown") {
|
|
36
|
-
logger_1.logger.info(`Latest version: ${latestVersion}`);
|
|
37
|
-
if (currentVersion === latestVersion) {
|
|
38
|
-
logger_1.logger.info("✅ You're already up to date!");
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
// Try pnpm first (cleaner output)
|
|
43
|
-
try {
|
|
44
|
-
logger_1.logger.progress("Checking for updates via pnpm...");
|
|
45
|
-
await this.runCommand("pnpm", ["add", "-g", "mycontext-cli@latest"]);
|
|
46
|
-
// Wait a moment for the update to take effect
|
|
47
|
-
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
48
|
-
// Verify the update actually happened
|
|
49
|
-
const newVersion = this.getCurrentVersion();
|
|
50
|
-
if (newVersion !== currentVersion) {
|
|
51
|
-
logger_1.logger.success(`Updated successfully via pnpm: ${currentVersion} → ${newVersion}`);
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
logger_1.logger.info("Already up to date via pnpm");
|
|
55
|
-
}
|
|
56
|
-
this.printNextCommands();
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
catch (e) {
|
|
60
|
-
logger_1.logger.verbose("pnpm not available or failed, trying npm...");
|
|
61
|
-
}
|
|
62
|
-
// Fallback to npm
|
|
63
9
|
try {
|
|
64
|
-
logger_1.logger.progress("
|
|
65
|
-
await this.runCommand("
|
|
66
|
-
|
|
67
|
-
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
68
|
-
// Verify the update actually happened
|
|
69
|
-
const newVersion = this.getCurrentVersion();
|
|
70
|
-
if (newVersion !== currentVersion) {
|
|
71
|
-
logger_1.logger.success(`Updated successfully via npm: ${currentVersion} → ${newVersion}`);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
logger_1.logger.info("Already up to date via npm");
|
|
75
|
-
}
|
|
76
|
-
this.printNextCommands();
|
|
10
|
+
logger_1.logger.progress("Running update via pnpm dlx...");
|
|
11
|
+
await this.runCommand("pnpm", ["dlx", "mycontext-cli@latest", "--up"]);
|
|
12
|
+
logger_1.logger.success("Update command executed successfully");
|
|
77
13
|
}
|
|
78
14
|
catch (error) {
|
|
79
|
-
|
|
80
|
-
logger_1.logger.warn("Standard update failed, trying alternative methods...");
|
|
81
|
-
try {
|
|
82
|
-
// Try with --force flag
|
|
83
|
-
logger_1.logger.progress("Trying npm with --force flag...");
|
|
84
|
-
await this.runCommand("npm", [
|
|
85
|
-
"i",
|
|
86
|
-
"-g",
|
|
87
|
-
"mycontext-cli@latest",
|
|
88
|
-
"--force",
|
|
89
|
-
]);
|
|
90
|
-
const newVersion = this.getCurrentVersion();
|
|
91
|
-
if (newVersion !== currentVersion) {
|
|
92
|
-
logger_1.logger.success(`Updated successfully via npm --force: ${currentVersion} → ${newVersion}`);
|
|
93
|
-
this.printNextCommands();
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
catch (e) {
|
|
98
|
-
logger_1.logger.verbose("npm --force also failed");
|
|
99
|
-
}
|
|
100
|
-
// Try clearing cache and updating
|
|
101
|
-
try {
|
|
102
|
-
logger_1.logger.progress("Clearing npm cache and trying again...");
|
|
103
|
-
await this.runCommand("npm", ["cache", "clean", "--force"]);
|
|
104
|
-
await this.runCommand("npm", ["i", "-g", "mycontext-cli@latest"]);
|
|
105
|
-
const newVersion = this.getCurrentVersion();
|
|
106
|
-
if (newVersion !== currentVersion) {
|
|
107
|
-
logger_1.logger.success(`Updated successfully after cache clear: ${currentVersion} → ${newVersion}`);
|
|
108
|
-
this.printNextCommands();
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
catch (e) {
|
|
113
|
-
logger_1.logger.verbose("Cache clear approach also failed");
|
|
114
|
-
}
|
|
115
|
-
logger_1.logger.error("Failed to update CLI automatically");
|
|
15
|
+
logger_1.logger.error("Failed to run update command");
|
|
116
16
|
logger_1.logger.info("Try manually:");
|
|
117
|
-
logger_1.logger.info(" pnpm
|
|
118
|
-
logger_1.logger.info(" npm i -g mycontext-cli@latest");
|
|
119
|
-
logger_1.logger.info(" npm i -g mycontext-cli@latest --force");
|
|
120
|
-
logger_1.logger.info(" npm cache clean --force && npm i -g mycontext-cli@latest");
|
|
121
|
-
logger_1.logger.info("");
|
|
122
|
-
logger_1.logger.info("💡 If you're in a project directory, try running from your home directory:");
|
|
123
|
-
logger_1.logger.info(" cd ~ && mycontext --up");
|
|
17
|
+
logger_1.logger.info(" pnpm dlx mycontext-cli@latest --up");
|
|
124
18
|
throw error;
|
|
125
19
|
}
|
|
126
20
|
}
|
|
127
|
-
getCurrentVersion() {
|
|
128
|
-
try {
|
|
129
|
-
// Get the installed version from the actual CLI
|
|
130
|
-
const { execSync } = require("child_process");
|
|
131
|
-
const result = execSync("mycontext --version", { encoding: "utf8" });
|
|
132
|
-
const lines = result.trim().split("\n");
|
|
133
|
-
const lastLine = lines[lines.length - 1];
|
|
134
|
-
const versionMatch = lastLine.match(/(\d+\.\d+\.\d+)/);
|
|
135
|
-
if (versionMatch) {
|
|
136
|
-
return versionMatch[1];
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
catch (error) {
|
|
140
|
-
// Fallback to package.json
|
|
141
|
-
try {
|
|
142
|
-
return require("../../package.json").version;
|
|
143
|
-
}
|
|
144
|
-
catch {
|
|
145
|
-
return "unknown";
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
return "unknown";
|
|
149
|
-
}
|
|
150
|
-
getLatestVersion() {
|
|
151
|
-
try {
|
|
152
|
-
// Get the latest version from npm registry
|
|
153
|
-
const { execSync } = require("child_process");
|
|
154
|
-
const result = execSync("npm view mycontext-cli version", {
|
|
155
|
-
encoding: "utf8",
|
|
156
|
-
});
|
|
157
|
-
const versionMatch = result.trim().match(/(\d+\.\d+\.\d+)/);
|
|
158
|
-
if (versionMatch) {
|
|
159
|
-
return versionMatch[1];
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
catch (error) {
|
|
163
|
-
return "unknown";
|
|
164
|
-
}
|
|
165
|
-
return "unknown";
|
|
166
|
-
}
|
|
167
21
|
async runCommand(command, args) {
|
|
168
22
|
return new Promise((resolve, reject) => {
|
|
169
23
|
const child = (0, child_process_1.spawn)(command, args, {
|
|
170
|
-
stdio:
|
|
171
|
-
timeout:
|
|
24
|
+
stdio: "inherit",
|
|
25
|
+
timeout: 180000,
|
|
172
26
|
});
|
|
173
|
-
let stdout = "";
|
|
174
|
-
let stderr = "";
|
|
175
|
-
if (child.stdout) {
|
|
176
|
-
child.stdout.on("data", (data) => {
|
|
177
|
-
stdout += data.toString();
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
if (child.stderr) {
|
|
181
|
-
child.stderr.on("data", (data) => {
|
|
182
|
-
stderr += data.toString();
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
27
|
child.on("close", (code) => {
|
|
186
28
|
if (code === 0) {
|
|
187
|
-
// Filter out common warnings and verbose output
|
|
188
|
-
const cleanStdout = this.filterOutput(stdout);
|
|
189
|
-
const cleanStderr = this.filterOutput(stderr);
|
|
190
|
-
if (cleanStdout && !cleanStdout.includes("Already up to date")) {
|
|
191
|
-
logger_1.logger.verbose(cleanStdout);
|
|
192
|
-
}
|
|
193
|
-
if (cleanStderr) {
|
|
194
|
-
logger_1.logger.verbose(cleanStderr);
|
|
195
|
-
}
|
|
196
29
|
resolve();
|
|
197
30
|
}
|
|
198
31
|
else {
|
|
@@ -204,29 +37,6 @@ class UpdateCommand {
|
|
|
204
37
|
});
|
|
205
38
|
});
|
|
206
39
|
}
|
|
207
|
-
filterOutput(output) {
|
|
208
|
-
const lines = output.split("\n").filter((line) => {
|
|
209
|
-
// Filter out common verbose/noisy lines
|
|
210
|
-
return (!line.includes("deprecated subdependencies") &&
|
|
211
|
-
!line.includes("Failed to create bin") &&
|
|
212
|
-
!line.includes("Progress: resolved") &&
|
|
213
|
-
!line.includes("Done in") &&
|
|
214
|
-
!line.includes("npm verbose") &&
|
|
215
|
-
!line.includes("npm info") &&
|
|
216
|
-
line.trim() !== "");
|
|
217
|
-
});
|
|
218
|
-
return lines.join("\n").trim();
|
|
219
|
-
}
|
|
220
|
-
printNextCommands() {
|
|
221
|
-
try {
|
|
222
|
-
logger_1.logger.step("Next commands:");
|
|
223
|
-
logger_1.logger.info(" mycontext --version");
|
|
224
|
-
logger_1.logger.info(" mycontext init my-app --yes");
|
|
225
|
-
logger_1.logger.info(" mycontext generate-context-files --description 'Your project'");
|
|
226
|
-
logger_1.logger.info(" mycontext compile-prd");
|
|
227
|
-
}
|
|
228
|
-
catch { }
|
|
229
|
-
}
|
|
230
40
|
}
|
|
231
41
|
exports.UpdateCommand = UpdateCommand;
|
|
232
42
|
//# sourceMappingURL=update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":";;;AACA,iDAAgD;AAChD,4CAAyC;AAEzC,MAAa,aAAa;IACxB,KAAK,CAAC,OAAO;QACX,eAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAEzC,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":";;;AACA,iDAAgD;AAChD,4CAAyC;AAEzC,MAAa,aAAa;IACxB,KAAK,CAAC,OAAO;QACX,eAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,eAAM,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;YAClD,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC;YACvE,eAAM,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC7C,eAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7B,eAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACpD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,IAAc;QACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE;gBACjC,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,MAAM;aAChB,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1B,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AApCD,sCAoCC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
export declare class WorkflowCommand {
|
|
3
|
+
private ai;
|
|
4
|
+
constructor();
|
|
5
|
+
register(program: Command): void;
|
|
6
|
+
private analyzeProject;
|
|
7
|
+
private generateWorkflow;
|
|
8
|
+
private interactiveWorkflow;
|
|
9
|
+
private gatherProjectContext;
|
|
10
|
+
private performAIAnalysis;
|
|
11
|
+
private displayAnalysis;
|
|
12
|
+
private executeWorkflow;
|
|
13
|
+
private generateContextDescription;
|
|
14
|
+
static getHelpText(): string;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/commands/workflow.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkDpC,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAAiB;;IAMpB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;YAkGzB,cAAc;YAcd,gBAAgB;YAoChB,mBAAmB;YAiDnB,oBAAoB;YA2CpB,iBAAiB;IAkF/B,OAAO,CAAC,eAAe;YAiHT,eAAe;IAoE7B,OAAO,CAAC,0BAA0B;WAqBpB,WAAW,IAAI,MAAM;CAuDpC"}
|