mycontext-cli 2.0.25 → 2.0.26
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 +169 -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
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// PM Integration Command
|
|
3
|
+
// Manages the integration between MyContext CLI and mycontext PM
|
|
4
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6
|
+
};
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.PMIntegrationCommand = void 0;
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
const PMIntegrationService_1 = require("../services/PMIntegrationService");
|
|
13
|
+
const WebhookServer_1 = require("../services/WebhookServer");
|
|
14
|
+
class PMIntegrationCommand {
|
|
15
|
+
register(program) {
|
|
16
|
+
const command = program
|
|
17
|
+
.command("pm-integration")
|
|
18
|
+
.description("Manage mycontext PM integration with MyContext CLI")
|
|
19
|
+
.option("-c, --config <file>", "Path to integration config file")
|
|
20
|
+
.option("--pm-endpoint <url>", "mycontext PM API endpoint")
|
|
21
|
+
.option("--webhook-url <url>", "Webhook URL for progress updates")
|
|
22
|
+
.option("--api-key <key>", "API key for PM authentication")
|
|
23
|
+
.option("--project-id <id>", "Project ID for integration")
|
|
24
|
+
.option("-p, --port <number>", "Port for webhook server", "8080")
|
|
25
|
+
.option("--enable-webhook-server", "Enable local webhook server")
|
|
26
|
+
.option("--sync-interval <minutes>", "Sync interval in minutes", "60")
|
|
27
|
+
.option("--verbose", "Enable verbose output");
|
|
28
|
+
command
|
|
29
|
+
.command("start")
|
|
30
|
+
.description("Start PM integration service")
|
|
31
|
+
.action(async (options) => {
|
|
32
|
+
await this.startIntegration(options);
|
|
33
|
+
});
|
|
34
|
+
command
|
|
35
|
+
.command("stop")
|
|
36
|
+
.description("Stop PM integration service")
|
|
37
|
+
.action(async () => {
|
|
38
|
+
await this.stopIntegration();
|
|
39
|
+
});
|
|
40
|
+
command
|
|
41
|
+
.command("status")
|
|
42
|
+
.description("Show integration status")
|
|
43
|
+
.action(async () => {
|
|
44
|
+
await this.showStatus();
|
|
45
|
+
});
|
|
46
|
+
command
|
|
47
|
+
.command("test")
|
|
48
|
+
.description("Test connection to mycontext PM")
|
|
49
|
+
.action(async (options) => {
|
|
50
|
+
await this.testConnection(options);
|
|
51
|
+
});
|
|
52
|
+
command
|
|
53
|
+
.command("sync")
|
|
54
|
+
.description("Manually sync with mycontext PM")
|
|
55
|
+
.option("--project-id <id>", "Project ID to sync")
|
|
56
|
+
.option("--include-tasks", "Include task details in sync")
|
|
57
|
+
.option("--include-components", "Include component details in sync")
|
|
58
|
+
.action(async (syncOptions) => {
|
|
59
|
+
await this.manualSync(syncOptions);
|
|
60
|
+
});
|
|
61
|
+
command
|
|
62
|
+
.command("config")
|
|
63
|
+
.description("Manage integration configuration")
|
|
64
|
+
.option("--create", "Create default config file")
|
|
65
|
+
.option("--validate", "Validate existing config file")
|
|
66
|
+
.option("--path <file>", "Config file path", "./pm-integration.json")
|
|
67
|
+
.action(async (configOptions) => {
|
|
68
|
+
await this.manageConfig(configOptions);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
async startIntegration(options) {
|
|
72
|
+
try {
|
|
73
|
+
console.log(chalk_1.default.blue.bold("🚀 Starting mycontext PM Integration...\n"));
|
|
74
|
+
// Load configuration
|
|
75
|
+
const config = await this.loadConfiguration(options);
|
|
76
|
+
// Initialize integration service
|
|
77
|
+
this.integrationService = new PMIntegrationService_1.PMIntegrationService(config);
|
|
78
|
+
// Start integration service
|
|
79
|
+
await this.integrationService.initialize();
|
|
80
|
+
// Start webhook server if enabled
|
|
81
|
+
if (options.enableWebhookServer || config.webhookUrl) {
|
|
82
|
+
await this.startWebhookServer({
|
|
83
|
+
port: options.port || 8080,
|
|
84
|
+
authToken: config.apiKey,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
console.log(chalk_1.default.green.bold("\n✅ PM Integration started successfully!"));
|
|
88
|
+
console.log(chalk_1.default.cyan("🔗 Integration Status:"));
|
|
89
|
+
console.log(` Service: ${chalk_1.default.green("Running")}`);
|
|
90
|
+
console.log(` Webhook Server: ${this.webhookServer ? chalk_1.default.green("Running") : chalk_1.default.gray("Disabled")}`);
|
|
91
|
+
console.log(` Project ID: ${config.projectId || chalk_1.default.gray("Not set")}`);
|
|
92
|
+
console.log(` Sync Interval: ${config.syncInterval} minutes`);
|
|
93
|
+
if (this.webhookServer) {
|
|
94
|
+
const status = this.webhookServer.getStatus();
|
|
95
|
+
if (status.url) {
|
|
96
|
+
console.log(` Webhook URL: ${chalk_1.default.white(status.url + "/webhook")}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Keep process alive for real-time sync
|
|
100
|
+
console.log(chalk_1.default.gray("\n📡 Integration active. Press Ctrl+C to stop."));
|
|
101
|
+
console.log(chalk_1.default.gray(" Real-time sync and webhook handling enabled.\n"));
|
|
102
|
+
// Handle graceful shutdown
|
|
103
|
+
process.on("SIGINT", async () => {
|
|
104
|
+
console.log(chalk_1.default.blue("\n🛑 Shutting down PM integration..."));
|
|
105
|
+
await this.stopIntegration();
|
|
106
|
+
process.exit(0);
|
|
107
|
+
});
|
|
108
|
+
process.on("SIGTERM", async () => {
|
|
109
|
+
console.log(chalk_1.default.blue("\n🛑 Shutting down PM integration..."));
|
|
110
|
+
await this.stopIntegration();
|
|
111
|
+
process.exit(0);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
console.error(chalk_1.default.red("❌ Failed to start PM integration:"), error);
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
async stopIntegration() {
|
|
120
|
+
try {
|
|
121
|
+
if (this.integrationService) {
|
|
122
|
+
this.integrationService.disconnect();
|
|
123
|
+
this.integrationService = undefined;
|
|
124
|
+
}
|
|
125
|
+
if (this.webhookServer) {
|
|
126
|
+
await this.webhookServer.stop();
|
|
127
|
+
this.webhookServer = undefined;
|
|
128
|
+
}
|
|
129
|
+
console.log(chalk_1.default.green("✅ PM Integration stopped successfully"));
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
console.error(chalk_1.default.red("❌ Error stopping integration:"), error);
|
|
133
|
+
throw error;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
async showStatus() {
|
|
137
|
+
console.log(chalk_1.default.blue.bold("📊 mycontext PM Integration Status\n"));
|
|
138
|
+
if (!this.integrationService) {
|
|
139
|
+
console.log(chalk_1.default.red("❌ Integration service not running"));
|
|
140
|
+
console.log(chalk_1.default.gray(" Run 'mycontext pm-integration start' to start the service"));
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const serviceStatus = this.integrationService.getStatus();
|
|
144
|
+
const webhookStatus = this.webhookServer?.getStatus();
|
|
145
|
+
console.log(chalk_1.default.cyan("🔗 Service Status:"));
|
|
146
|
+
console.log(` Connected: ${serviceStatus.connected ? chalk_1.default.green("Yes") : chalk_1.default.red("No")}`);
|
|
147
|
+
console.log(` Last Sync: ${serviceStatus.lastSync || chalk_1.default.gray("Never")}`);
|
|
148
|
+
console.log(` Project ID: ${serviceStatus.projectId || chalk_1.default.gray("Not set")}`);
|
|
149
|
+
console.log(` Pending Updates: ${serviceStatus.pendingUpdates || 0}`);
|
|
150
|
+
if (webhookStatus) {
|
|
151
|
+
console.log(chalk_1.default.cyan("\n🌐 Webhook Server:"));
|
|
152
|
+
console.log(` Running: ${webhookStatus.running ? chalk_1.default.green("Yes") : chalk_1.default.red("No")}`);
|
|
153
|
+
console.log(` URL: ${webhookStatus.url || chalk_1.default.gray("Not available")}`);
|
|
154
|
+
console.log(` Active Connections: ${webhookStatus.connections}`);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
console.log(chalk_1.default.cyan("\n🌐 Webhook Server:"));
|
|
158
|
+
console.log(` Status: ${chalk_1.default.gray("Not enabled")}`);
|
|
159
|
+
}
|
|
160
|
+
if (serviceStatus.errors && serviceStatus.errors.length > 0) {
|
|
161
|
+
console.log(chalk_1.default.cyan("\n🚨 Recent Errors:"));
|
|
162
|
+
serviceStatus.errors.forEach((error, index) => {
|
|
163
|
+
console.log(` ${index + 1}. ${chalk_1.default.red(error)}`);
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
async testConnection(options) {
|
|
168
|
+
try {
|
|
169
|
+
console.log(chalk_1.default.blue("🔍 Testing connection to mycontext PM..."));
|
|
170
|
+
const config = await this.loadConfiguration(options);
|
|
171
|
+
const testService = new PMIntegrationService_1.PMIntegrationService(config);
|
|
172
|
+
await testService.initialize();
|
|
173
|
+
testService.disconnect();
|
|
174
|
+
console.log(chalk_1.default.green("✅ Connection test successful!"));
|
|
175
|
+
console.log(chalk_1.default.gray(" mycontext PM is reachable and responding"));
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
console.error(chalk_1.default.red("❌ Connection test failed:"), error);
|
|
179
|
+
console.log(chalk_1.default.gray(" Check your configuration and network connection"));
|
|
180
|
+
process.exit(1);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
async manualSync(syncOptions) {
|
|
184
|
+
if (!this.integrationService) {
|
|
185
|
+
console.error(chalk_1.default.red("❌ Integration service not running"));
|
|
186
|
+
console.log(chalk_1.default.gray(" Start the service first with 'mycontext pm-integration start'"));
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
try {
|
|
190
|
+
console.log(chalk_1.default.blue("🔄 Starting manual sync..."));
|
|
191
|
+
const syncRequest = {
|
|
192
|
+
projectId: syncOptions.projectId ||
|
|
193
|
+
this.integrationService.getStatus().projectId,
|
|
194
|
+
syncTimestamp: new Date().toISOString(),
|
|
195
|
+
includeTasks: syncOptions.includeTasks,
|
|
196
|
+
includeComponents: syncOptions.includeComponents,
|
|
197
|
+
includeMetrics: true,
|
|
198
|
+
};
|
|
199
|
+
const result = await this.integrationService.syncProgress(syncRequest);
|
|
200
|
+
console.log(chalk_1.default.green("✅ Manual sync completed!"));
|
|
201
|
+
console.log(chalk_1.default.cyan("📊 Sync Results:"));
|
|
202
|
+
console.log(` New Tasks: ${result.changes.newTasks?.length || 0}`);
|
|
203
|
+
console.log(` Updated Tasks: ${result.changes.updatedTasks?.length || 0}`);
|
|
204
|
+
console.log(` Completed Tasks: ${result.changes.completedTasks?.length || 0}`);
|
|
205
|
+
console.log(` Total Tasks: ${result.changes.metrics.totalTasks}`);
|
|
206
|
+
console.log(` Completion: ${result.changes.metrics.completionPercentage}%`);
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
console.error(chalk_1.default.red("❌ Manual sync failed:"), error);
|
|
210
|
+
throw error;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
async manageConfig(options) {
|
|
214
|
+
const configPath = options.path || "./pm-integration.json";
|
|
215
|
+
if (options.create) {
|
|
216
|
+
await this.createDefaultConfig(configPath);
|
|
217
|
+
}
|
|
218
|
+
else if (options.validate) {
|
|
219
|
+
await this.validateConfig(configPath);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
console.log(chalk_1.default.yellow("Usage:"));
|
|
223
|
+
console.log(" mycontext pm-integration config --create");
|
|
224
|
+
console.log(" mycontext pm-integration config --validate");
|
|
225
|
+
console.log(" mycontext pm-integration config --path <file>");
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
async createDefaultConfig(configPath) {
|
|
229
|
+
try {
|
|
230
|
+
// Load template config
|
|
231
|
+
const templatePath = path_1.default.join(__dirname, "../templates/pm-integration-config.json");
|
|
232
|
+
const templateData = fs_1.default.readFileSync(templatePath, "utf-8");
|
|
233
|
+
const defaultConfig = JSON.parse(templateData);
|
|
234
|
+
// Remove comments from the config
|
|
235
|
+
const { _comments, ...cleanConfig } = defaultConfig;
|
|
236
|
+
fs_1.default.writeFileSync(configPath, JSON.stringify(cleanConfig, null, 2));
|
|
237
|
+
console.log(chalk_1.default.green(`✅ Default config created: ${configPath}`));
|
|
238
|
+
console.log(chalk_1.default.yellow("⚠️ Please edit the config file with your actual values"));
|
|
239
|
+
console.log(chalk_1.default.gray(" Required: pmEndpoint, apiKey, projectId"));
|
|
240
|
+
console.log(chalk_1.default.gray(" See template at: src/templates/pm-integration-config.json"));
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
console.error(chalk_1.default.red("❌ Failed to create config file:"), error);
|
|
244
|
+
throw error;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
async validateConfig(configPath) {
|
|
248
|
+
try {
|
|
249
|
+
if (!fs_1.default.existsSync(configPath)) {
|
|
250
|
+
throw new Error(`Config file not found: ${configPath}`);
|
|
251
|
+
}
|
|
252
|
+
const configData = fs_1.default.readFileSync(configPath, "utf-8");
|
|
253
|
+
const config = JSON.parse(configData);
|
|
254
|
+
// Validate required fields
|
|
255
|
+
const requiredFields = ["pmEndpoint", "apiKey", "projectId"];
|
|
256
|
+
const missingFields = requiredFields.filter((field) => !config[field]);
|
|
257
|
+
if (missingFields.length > 0) {
|
|
258
|
+
throw new Error(`Missing required fields: ${missingFields.join(", ")}`);
|
|
259
|
+
}
|
|
260
|
+
console.log(chalk_1.default.green(`✅ Config file is valid: ${configPath}`));
|
|
261
|
+
console.log(chalk_1.default.cyan("📋 Configuration:"));
|
|
262
|
+
console.log(` PM Endpoint: ${config.pmEndpoint}`);
|
|
263
|
+
console.log(` Project ID: ${config.projectId}`);
|
|
264
|
+
console.log(` Sync Interval: ${config.syncInterval} minutes`);
|
|
265
|
+
console.log(` Real-time Sync: ${config.enableRealTimeSync ? "Enabled" : "Disabled"}`);
|
|
266
|
+
}
|
|
267
|
+
catch (error) {
|
|
268
|
+
console.error(chalk_1.default.red("❌ Config validation failed:"), error);
|
|
269
|
+
throw error;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
async loadConfiguration(options) {
|
|
273
|
+
let config = {};
|
|
274
|
+
// Load from config file if specified
|
|
275
|
+
if (options.config) {
|
|
276
|
+
if (!fs_1.default.existsSync(options.config)) {
|
|
277
|
+
throw new Error(`Config file not found: ${options.config}`);
|
|
278
|
+
}
|
|
279
|
+
const configData = fs_1.default.readFileSync(options.config, "utf-8");
|
|
280
|
+
config = JSON.parse(configData);
|
|
281
|
+
}
|
|
282
|
+
// Override with command line options
|
|
283
|
+
if (options.pmEndpoint)
|
|
284
|
+
config.pmEndpoint = options.pmEndpoint;
|
|
285
|
+
if (options.webhookUrl)
|
|
286
|
+
config.webhookUrl = options.webhookUrl;
|
|
287
|
+
if (options.apiKey)
|
|
288
|
+
config.apiKey = options.apiKey;
|
|
289
|
+
if (options.projectId)
|
|
290
|
+
config.projectId = options.projectId;
|
|
291
|
+
if (options.syncInterval)
|
|
292
|
+
config.syncInterval = options.syncInterval;
|
|
293
|
+
// Set defaults
|
|
294
|
+
config.syncInterval = config.syncInterval || 60;
|
|
295
|
+
config.enableRealTimeSync = config.enableRealTimeSync !== false;
|
|
296
|
+
return config;
|
|
297
|
+
}
|
|
298
|
+
async startWebhookServer(config) {
|
|
299
|
+
this.webhookServer = new WebhookServer_1.WebhookServer(config);
|
|
300
|
+
// Set up event handlers
|
|
301
|
+
this.webhookServer.on("webhook_received", (event) => {
|
|
302
|
+
console.log(chalk_1.default.blue(`📨 Webhook received: ${event.type}`));
|
|
303
|
+
// Forward to integration service
|
|
304
|
+
if (this.integrationService) {
|
|
305
|
+
this.integrationService.emit("webhook_received", event);
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
this.webhookServer.on("error", (error) => {
|
|
309
|
+
console.error(chalk_1.default.red("🌐 Webhook server error:"), error);
|
|
310
|
+
});
|
|
311
|
+
await this.webhookServer.start();
|
|
312
|
+
}
|
|
313
|
+
static getHelpText() {
|
|
314
|
+
return `
|
|
315
|
+
${chalk_1.default.blue.bold("📡 MyContext PM Integration Command")}
|
|
316
|
+
|
|
317
|
+
${chalk_1.default.yellow("Description:")}
|
|
318
|
+
Manage the integration between MyContext CLI and mycontext PM for real-time
|
|
319
|
+
project management and progress synchronization.
|
|
320
|
+
|
|
321
|
+
${chalk_1.default.yellow("Usage:")}
|
|
322
|
+
mycontext pm-integration <command> [options]
|
|
323
|
+
|
|
324
|
+
${chalk_1.default.yellow("Commands:")}
|
|
325
|
+
start Start the integration service
|
|
326
|
+
stop Stop the integration service
|
|
327
|
+
status Show current integration status
|
|
328
|
+
test Test connection to mycontext PM
|
|
329
|
+
sync Manually sync with mycontext PM
|
|
330
|
+
config Manage integration configuration
|
|
331
|
+
|
|
332
|
+
${chalk_1.default.yellow("Global Options:")}
|
|
333
|
+
-c, --config <file> Path to integration config file
|
|
334
|
+
--pm-endpoint <url> mycontext PM API endpoint
|
|
335
|
+
--webhook-url <url> Webhook URL for progress updates
|
|
336
|
+
--api-key <key> API key for PM authentication
|
|
337
|
+
--project-id <id> Project ID for integration
|
|
338
|
+
-p, --port <number> Port for webhook server (default: 8080)
|
|
339
|
+
--enable-webhook-server Enable local webhook server
|
|
340
|
+
--sync-interval <min> Sync interval in minutes (default: 60)
|
|
341
|
+
--verbose Enable verbose output
|
|
342
|
+
|
|
343
|
+
${chalk_1.default.yellow("Configuration File:")}
|
|
344
|
+
Create a config file with: \`mycontext pm-integration config --create\`
|
|
345
|
+
Example config file:
|
|
346
|
+
\`\`\`json
|
|
347
|
+
{
|
|
348
|
+
"pmEndpoint": "https://your-pm-instance.com",
|
|
349
|
+
"webhookUrl": "https://your-pm-instance.com/webhook",
|
|
350
|
+
"apiKey": "your-api-key",
|
|
351
|
+
"projectId": "your-project-id",
|
|
352
|
+
"syncInterval": 60,
|
|
353
|
+
"enableRealTimeSync": true
|
|
354
|
+
}
|
|
355
|
+
\`\`\`
|
|
356
|
+
|
|
357
|
+
${chalk_1.default.yellow("Examples:")}
|
|
358
|
+
${chalk_1.default.gray("# Start integration with config file")}
|
|
359
|
+
${chalk_1.default.cyan("mycontext pm-integration start --config ./pm-integration.json")}
|
|
360
|
+
|
|
361
|
+
${chalk_1.default.gray("# Start with webhook server")}
|
|
362
|
+
${chalk_1.default.cyan("mycontext pm-integration start --enable-webhook-server --port 8080")}
|
|
363
|
+
|
|
364
|
+
${chalk_1.default.gray("# Test connection")}
|
|
365
|
+
${chalk_1.default.cyan("mycontext pm-integration test --pm-endpoint https://pm.example.com")}
|
|
366
|
+
|
|
367
|
+
${chalk_1.default.gray("# Manual sync")}
|
|
368
|
+
${chalk_1.default.cyan("mycontext pm-integration sync --project-id my-project")}
|
|
369
|
+
|
|
370
|
+
${chalk_1.default.gray("# Show status")}
|
|
371
|
+
${chalk_1.default.cyan("mycontext pm-integration status")}
|
|
372
|
+
|
|
373
|
+
${chalk_1.default.yellow("Integration Features:")}
|
|
374
|
+
• Real-time progress synchronization
|
|
375
|
+
• Webhook-based event handling
|
|
376
|
+
• Automatic retry with exponential backoff
|
|
377
|
+
• Rate limiting protection
|
|
378
|
+
• Authentication and authorization
|
|
379
|
+
• Bidirectional communication
|
|
380
|
+
• Configurable sync intervals
|
|
381
|
+
`;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
exports.PMIntegrationCommand = PMIntegrationCommand;
|
|
385
|
+
//# sourceMappingURL=pm-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pm-integration.js","sourceRoot":"","sources":["../../src/commands/pm-integration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
export declare class SetupCompleteCommand {
|
|
3
|
+
private spinner;
|
|
4
|
+
constructor();
|
|
5
|
+
register(program: Command): void;
|
|
6
|
+
private execute;
|
|
7
|
+
private gatherProjectPreferences;
|
|
8
|
+
private getDefaultFeatures;
|
|
9
|
+
private confirmSetup;
|
|
10
|
+
private executeCompleteSetup;
|
|
11
|
+
private estimateTotalTime;
|
|
12
|
+
private buildContextDescription;
|
|
13
|
+
private showSetupComplete;
|
|
14
|
+
static getHelpText(): string;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=setup-complete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-complete.d.ts","sourceRoot":"","sources":["../../src/commands/setup-complete.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6BpC,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAkB;;IAM1B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;YAmBzB,OAAO;YA+BP,wBAAwB;IAyGtC,OAAO,CAAC,kBAAkB;YAqBZ,YAAY;YA0BZ,oBAAoB;IAsIlC,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,uBAAuB;YAwBjB,iBAAiB;WAqEjB,WAAW,IAAI,MAAM;CAwEpC"}
|