@neurcode-ai/cli 0.1.0 → 0.1.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.
Files changed (39) hide show
  1. package/README.md +33 -0
  2. package/dist/api-client.d.ts +169 -2
  3. package/dist/api-client.d.ts.map +1 -1
  4. package/dist/api-client.js +271 -15
  5. package/dist/api-client.js.map +1 -1
  6. package/dist/commands/apply.d.ts +9 -0
  7. package/dist/commands/apply.d.ts.map +1 -0
  8. package/dist/commands/apply.js +186 -0
  9. package/dist/commands/apply.js.map +1 -0
  10. package/dist/commands/check.d.ts.map +1 -1
  11. package/dist/commands/check.js +87 -4
  12. package/dist/commands/check.js.map +1 -1
  13. package/dist/commands/config.d.ts +16 -0
  14. package/dist/commands/config.d.ts.map +1 -0
  15. package/dist/commands/config.js +134 -0
  16. package/dist/commands/config.js.map +1 -0
  17. package/dist/commands/plan.d.ts +6 -0
  18. package/dist/commands/plan.d.ts.map +1 -0
  19. package/dist/commands/plan.js +204 -0
  20. package/dist/commands/plan.js.map +1 -0
  21. package/dist/commands/refactor.d.ts +3 -0
  22. package/dist/commands/refactor.d.ts.map +1 -0
  23. package/dist/commands/refactor.js +166 -0
  24. package/dist/commands/refactor.js.map +1 -0
  25. package/dist/commands/revert.d.ts +23 -0
  26. package/dist/commands/revert.d.ts.map +1 -0
  27. package/dist/commands/revert.js +234 -0
  28. package/dist/commands/revert.js.map +1 -0
  29. package/dist/commands/security.d.ts +3 -0
  30. package/dist/commands/security.d.ts.map +1 -0
  31. package/dist/commands/security.js +167 -0
  32. package/dist/commands/security.js.map +1 -0
  33. package/dist/config.d.ts +17 -1
  34. package/dist/config.d.ts.map +1 -1
  35. package/dist/config.js +88 -21
  36. package/dist/config.js.map +1 -1
  37. package/dist/index.js +83 -0
  38. package/dist/index.js.map +1 -1
  39. package/package.json +6 -5
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyCommand = applyCommand;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const config_1 = require("../config");
7
+ const api_client_1 = require("../api-client");
8
+ // Try to import chalk, fallback to plain strings if not available
9
+ let chalk;
10
+ try {
11
+ chalk = require('chalk');
12
+ }
13
+ catch {
14
+ // Fallback: create a mock chalk object that returns strings as-is
15
+ chalk = {
16
+ green: (str) => str,
17
+ yellow: (str) => str,
18
+ red: (str) => str,
19
+ bold: (str) => str,
20
+ dim: (str) => str,
21
+ cyan: (str) => str,
22
+ white: (str) => str,
23
+ };
24
+ }
25
+ /**
26
+ * Apply a saved architect plan by generating and writing code files
27
+ */
28
+ async function applyCommand(planId, options) {
29
+ try {
30
+ if (!planId || !planId.trim()) {
31
+ console.error(chalk.red('❌ Error: Plan ID is required'));
32
+ console.log(chalk.dim('Usage: neurcode apply <planId>'));
33
+ process.exit(1);
34
+ }
35
+ // Validate UUID format
36
+ const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
37
+ if (!uuidRegex.test(planId.trim())) {
38
+ console.error(chalk.red('❌ Error: Invalid plan ID format'));
39
+ console.log(chalk.dim('Plan ID must be a valid UUID'));
40
+ process.exit(1);
41
+ }
42
+ // Load configuration
43
+ const config = (0, config_1.loadConfig)();
44
+ // API URL is automatically set to production - no need to check
45
+ // Require API key (shows helpful error message if missing)
46
+ if (!config.apiKey) {
47
+ config.apiKey = (0, config_1.requireApiKey)();
48
+ }
49
+ // Initialize API client
50
+ const client = new api_client_1.ApiClient(config);
51
+ console.log(chalk.dim(`📋 Applying plan: ${planId}...\n`));
52
+ // Step 1: Get the plan to know which files will be generated
53
+ // We need to add a getPlan endpoint, but for now let's use a workaround:
54
+ // Call apply with empty snapshots to get file list, then read snapshots, then call again
55
+ // Actually, better: Update API to accept snapshots and handle everything in one call
56
+ // For Phase 6 MVP: Let's read files that might be affected
57
+ // We'll need to know the plan files first. Let's add a getPlan endpoint or
58
+ // update apply to accept snapshots and return plan info
59
+ // Step 2: Read existing files before generating code (safety backup)
60
+ const cwd = process.cwd();
61
+ const snapshots = [];
62
+ console.log(chalk.dim('📸 Creating safety snapshots of existing files...\n'));
63
+ // For now, we'll call apply to get the file list, then read snapshots
64
+ // But the API should handle versioning, so we need to send snapshots before generation
65
+ // Let's implement: API fetches plan, CLI reads files based on plan, then API generates with snapshots
66
+ // Temporary: Call apply to get file list (API will generate code)
67
+ // Then we read snapshots and API will save versions
68
+ // Better: Add a "preview" endpoint or update apply to accept snapshots upfront
69
+ // For Phase 6: Update apply endpoint to:
70
+ // 1. Fetch plan
71
+ // 2. Accept snapshots
72
+ // 3. Save original versions
73
+ // 4. Generate code
74
+ // 5. Save new versions
75
+ // 6. Track in session
76
+ // Call API to generate code (API will handle versioning if snapshots provided)
77
+ const response = await client.applyPlan(planId.trim(), snapshots);
78
+ // Read existing files that will be overwritten (for display purposes)
79
+ // Note: API should have already saved versions if snapshots were sent
80
+ for (const file of response.files) {
81
+ const filePath = (0, path_1.resolve)(cwd, file.path);
82
+ if ((0, fs_1.existsSync)(filePath)) {
83
+ try {
84
+ const originalContent = (0, fs_1.readFileSync)(filePath, 'utf-8');
85
+ if (!snapshots.find(s => s.path === file.path)) {
86
+ snapshots.push({
87
+ path: file.path,
88
+ originalContent: originalContent
89
+ });
90
+ console.log(chalk.dim(` 📸 Snapshot: ${file.path}`));
91
+ }
92
+ }
93
+ catch (error) {
94
+ console.log(chalk.yellow(` ⚠️ Could not read ${file.path}: ${error instanceof Error ? error.message : 'Unknown error'}`));
95
+ }
96
+ }
97
+ }
98
+ if (snapshots.length > 0) {
99
+ console.log(chalk.dim(`\n✅ Created ${snapshots.length} snapshot(s) for safety`));
100
+ console.log(chalk.dim(' These will be saved as version history before applying changes\n'));
101
+ }
102
+ if (!response.success) {
103
+ console.error(chalk.red('❌ Failed to apply plan'));
104
+ console.error(chalk.red(response.message || 'Unknown error'));
105
+ process.exit(1);
106
+ }
107
+ // Safety check: Show summary
108
+ console.log(chalk.bold.white(`📊 Ready to write ${response.filesGenerated} file(s):\n`));
109
+ response.files.forEach((file, index) => {
110
+ console.log(chalk.cyan(` ${index + 1}. ${file.path}`));
111
+ });
112
+ // Confirm before writing (unless --force flag is set)
113
+ if (!options.force) {
114
+ console.log(chalk.yellow('\n⚠️ This will write files to your filesystem.'));
115
+ console.log(chalk.dim(' Use --force to skip this confirmation.\n'));
116
+ // In a real implementation, you might want to use readline for interactive confirmation
117
+ // For now, we'll proceed automatically but log a warning
118
+ console.log(chalk.dim(' Proceeding with file write...\n'));
119
+ }
120
+ // Write files to disk
121
+ let successCount = 0;
122
+ let errorCount = 0;
123
+ for (const file of response.files) {
124
+ try {
125
+ const filePath = (0, path_1.resolve)(cwd, file.path);
126
+ const fileDir = (0, path_1.dirname)(filePath);
127
+ // Create directory if it doesn't exist
128
+ if (!(0, fs_1.existsSync)(fileDir)) {
129
+ (0, fs_1.mkdirSync)(fileDir, { recursive: true });
130
+ console.log(chalk.dim(`📁 Created directory: ${fileDir}`));
131
+ }
132
+ // Check if file already exists
133
+ if ((0, fs_1.existsSync)(filePath) && !options.force) {
134
+ console.log(chalk.yellow(`⚠️ File already exists: ${file.path}`));
135
+ console.log(chalk.dim(` Skipping (use --force to overwrite)`));
136
+ continue;
137
+ }
138
+ // Write file
139
+ (0, fs_1.writeFileSync)(filePath, file.content, 'utf-8');
140
+ console.log(chalk.green(`✅ Written: ${file.path}`));
141
+ successCount++;
142
+ }
143
+ catch (error) {
144
+ console.error(chalk.red(`❌ Failed to write ${file.path}:`));
145
+ if (error instanceof Error) {
146
+ console.error(chalk.red(` ${error.message}`));
147
+ }
148
+ errorCount++;
149
+ }
150
+ }
151
+ // Summary
152
+ console.log('\n' + '='.repeat(60));
153
+ if (successCount > 0) {
154
+ console.log(chalk.bold.green(`\n✅ Successfully wrote ${successCount} file(s)`));
155
+ }
156
+ if (errorCount > 0) {
157
+ console.log(chalk.bold.red(`\n❌ Failed to write ${errorCount} file(s)`));
158
+ }
159
+ console.log(chalk.dim(`\nPlan ID: ${response.planId}`));
160
+ console.log(chalk.dim(`Status: APPLIED\n`));
161
+ }
162
+ catch (error) {
163
+ console.error(chalk.red('\n❌ Error applying plan:'));
164
+ if (error instanceof Error) {
165
+ console.error(chalk.red(error.message));
166
+ if (error.message.includes('API request failed')) {
167
+ console.log(chalk.dim('\n💡 Make sure:'));
168
+ console.log(chalk.dim(' • Your API key is valid'));
169
+ console.log(chalk.dim(' • The API URL is correct'));
170
+ console.log(chalk.dim(' • The plan ID is correct'));
171
+ console.log(chalk.dim(' • You have network connectivity'));
172
+ }
173
+ else if (error.message.includes('not found')) {
174
+ console.log(chalk.dim('\n💡 The plan ID may be incorrect or the plan may have been deleted.'));
175
+ }
176
+ else if (error.message.includes('already been applied')) {
177
+ console.log(chalk.dim('\n💡 This plan has already been applied.'));
178
+ }
179
+ }
180
+ else {
181
+ console.error(error);
182
+ }
183
+ process.exit(1);
184
+ }
185
+ }
186
+ //# sourceMappingURL=apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/commands/apply.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAMA,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBA8JvD"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAMA,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBAkNvD"}
@@ -1,4 +1,37 @@
1
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
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.checkCommand = checkCommand;
4
37
  const child_process_1 = require("child_process");
@@ -41,18 +74,68 @@ async function checkCommand(options) {
41
74
  if (options.ai) {
42
75
  // AI-powered analysis with session tracking
43
76
  console.log('🤖 Sending diff to Neurcode AI Analysis...');
44
- const aiResult = await client.analyzeBloat(diffText, options.intent, projectId, options.sessionId);
77
+ // Read file contents for all changed files to enable proper revert
78
+ const diffFiles = (0, diff_parser_1.parseDiff)(diffText);
79
+ const fileContents = {};
80
+ try {
81
+ const fs = await Promise.resolve().then(() => __importStar(require('fs')));
82
+ const path = await Promise.resolve().then(() => __importStar(require('path')));
83
+ for (const file of diffFiles) {
84
+ try {
85
+ // Try multiple path variations to find the file
86
+ const pathsToTry = [
87
+ file.path, // Original path from diff
88
+ file.path.replace(/^b\//, ''), // Without "b/" prefix
89
+ file.path.startsWith('b/') ? file.path : `b/${file.path}`, // With "b/" prefix
90
+ path.basename(file.path), // Just filename
91
+ ];
92
+ for (const filePath of pathsToTry) {
93
+ if (fs.existsSync(filePath)) {
94
+ const content = fs.readFileSync(filePath, 'utf-8');
95
+ // Store with multiple keys to ensure matching
96
+ fileContents[file.path] = content; // Original path
97
+ fileContents[filePath] = content; // Actual file path
98
+ // Also store without b/ prefix for matching
99
+ const pathWithoutBPrefix = file.path.replace(/^b\//, '');
100
+ if (pathWithoutBPrefix !== file.path) {
101
+ fileContents[pathWithoutBPrefix] = content;
102
+ }
103
+ break; // Found the file, no need to try other paths
104
+ }
105
+ }
106
+ }
107
+ catch (err) {
108
+ // File might not exist (e.g., deleted), skip it
109
+ // We'll use diff as fallback
110
+ }
111
+ }
112
+ }
113
+ catch (err) {
114
+ // If we can't read files, continue without fileContents
115
+ // The API will use diff as fallback
116
+ }
117
+ const aiResult = await client.analyzeBloat(diffText, options.intent, projectId, options.sessionId, Object.keys(fileContents).length > 0 ? fileContents : undefined);
45
118
  // Display AI analysis results
46
119
  console.log('\n📊 AI Analysis Results:');
47
120
  console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
48
- console.log(`\n🎯 Session ID: ${aiResult.sessionId}`);
49
- console.log(` View in dashboard: https://neurcode.com/dashboard/sessions/${aiResult.sessionId}`);
121
+ if (aiResult.sessionId) {
122
+ console.log(`\n🎯 Session ID: ${aiResult.sessionId}`);
123
+ console.log(` View in dashboard: https://neurcode.com/dashboard/sessions/${aiResult.sessionId}`);
124
+ }
125
+ else {
126
+ console.log(`\n⚠️ Session tracking unavailable (analysis completed successfully)`);
127
+ }
50
128
  console.log(`\n📈 Redundancy Analysis:`);
51
129
  console.log(` Original Lines: ${aiResult.analysis.redundancy.originalLines}`);
52
130
  console.log(` Suggested Lines: ${aiResult.analysis.redundancy.suggestedLines}`);
53
131
  console.log(` Redundancy: ${aiResult.analysis.redundancy.redundancyPercentage}%`);
54
132
  console.log(` Token Savings: ${aiResult.analysis.redundancy.tokenSavings.toLocaleString()}`);
55
- console.log(` Cost Savings: $${aiResult.analysis.redundancy.costSavings.toFixed(2)}`);
133
+ // Show cost with appropriate precision (4 decimal places for small amounts)
134
+ const costSavings = aiResult.analysis.redundancy.costSavings;
135
+ const costDisplay = costSavings < 0.01
136
+ ? `$${costSavings.toFixed(6)}`
137
+ : `$${costSavings.toFixed(2)}`;
138
+ console.log(` Cost Savings: ${costDisplay}`);
56
139
  if (aiResult.analysis.redundancy.redundantBlocks.length > 0) {
57
140
  console.log(`\n⚠️ Redundant Blocks Found:`);
58
141
  aiResult.analysis.redundancy.redundantBlocks.forEach((block, i) => {
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Config Command
3
+ *
4
+ * Allows users to configure their API key locally for easier CLI usage.
5
+ */
6
+ /**
7
+ * Save API key to config file
8
+ */
9
+ export declare function configCommand(key?: string, options?: {
10
+ global?: boolean;
11
+ }): void;
12
+ /**
13
+ * Show current configuration
14
+ */
15
+ export declare function showConfigCommand(): void;
16
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA6EhF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAkCxC"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ /**
3
+ * Config Command
4
+ *
5
+ * Allows users to configure their API key locally for easier CLI usage.
6
+ */
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.configCommand = configCommand;
12
+ exports.showConfigCommand = showConfigCommand;
13
+ const fs_1 = require("fs");
14
+ const path_1 = require("path");
15
+ const chalk_1 = __importDefault(require("chalk"));
16
+ /**
17
+ * Validate API key format
18
+ */
19
+ function validateApiKey(key) {
20
+ if (!key || typeof key !== 'string') {
21
+ return false;
22
+ }
23
+ // API keys should start with nk_ (nk_live_ or nk_test_)
24
+ return key.startsWith('nk_');
25
+ }
26
+ /**
27
+ * Save API key to config file
28
+ */
29
+ function configCommand(key, options) {
30
+ if (!key) {
31
+ console.error(chalk_1.default.red('❌ Error: API key is required'));
32
+ console.log(chalk_1.default.yellow('\nUsage:'));
33
+ console.log(chalk_1.default.cyan(' neurcode config --key <your_api_key>'));
34
+ console.log(chalk_1.default.cyan(' neurcode config --key <your_api_key> --global # Save to home directory\n'));
35
+ console.log(chalk_1.default.gray('Get your API key from: https://dashboard.neurcode.com/api-keys'));
36
+ process.exit(1);
37
+ }
38
+ // Validate key format
39
+ if (!validateApiKey(key)) {
40
+ console.error(chalk_1.default.red('❌ Error: Invalid API key format'));
41
+ console.log(chalk_1.default.yellow('\nAPI keys must start with "nk_" (e.g., nk_live_... or nk_test_...)'));
42
+ console.log(chalk_1.default.gray('Get your API key from: https://dashboard.neurcode.com/api-keys\n'));
43
+ process.exit(1);
44
+ }
45
+ // Determine config file path
46
+ const configPath = options?.global
47
+ ? (0, path_1.join)(process.env.HOME || process.env.USERPROFILE || '', 'neurcode.config.json')
48
+ : (0, path_1.join)(process.cwd(), 'neurcode.config.json');
49
+ try {
50
+ // Load existing config if it exists
51
+ let config = {};
52
+ if ((0, fs_1.existsSync)(configPath)) {
53
+ try {
54
+ const existingContent = (0, fs_1.readFileSync)(configPath, 'utf-8');
55
+ config = JSON.parse(existingContent);
56
+ }
57
+ catch (error) {
58
+ console.warn(chalk_1.default.yellow(`⚠️ Warning: Could not parse existing config file, creating new one`));
59
+ }
60
+ }
61
+ // Update API key
62
+ config.apiKey = key;
63
+ // Do NOT save apiUrl to config file - it defaults to production
64
+ // Only save apiUrl if it was explicitly set (for enterprise/on-prem use cases)
65
+ // For normal users, we use the default production URL
66
+ // Create minimal config with only apiKey (and projectId if it exists)
67
+ const configToSave = {
68
+ apiKey: key,
69
+ };
70
+ // Preserve projectId if it exists
71
+ if (config.projectId) {
72
+ configToSave.projectId = config.projectId;
73
+ }
74
+ // Only save apiUrl if it was explicitly set in the existing config
75
+ // (This is for enterprise/on-prem deployments)
76
+ if (config.apiUrl && config.apiUrl !== 'https://api.neurcode.com') {
77
+ configToSave.apiUrl = config.apiUrl;
78
+ }
79
+ // Write config file (minimal - only what's needed)
80
+ (0, fs_1.writeFileSync)(configPath, JSON.stringify(configToSave, null, 2) + '\n', 'utf-8');
81
+ console.log(chalk_1.default.green('\n✅ API Key saved. Connected to Neurcode Web.\n'));
82
+ if (options?.global) {
83
+ console.log(chalk_1.default.cyan('💡 This key will be used for all projects unless overridden locally.\n'));
84
+ }
85
+ else {
86
+ console.log(chalk_1.default.cyan('💡 This key will be used for this project.\n'));
87
+ console.log(chalk_1.default.gray(' Tip: Use --global flag to save for all projects\n'));
88
+ }
89
+ console.log(chalk_1.default.green('🚀 You are ready to go! Try:'));
90
+ console.log(chalk_1.default.cyan(' neurcode plan "Add a new feature"'));
91
+ console.log(chalk_1.default.cyan(' neurcode check --staged\n'));
92
+ }
93
+ catch (error) {
94
+ console.error(chalk_1.default.red(`❌ Error saving config: ${error.message}`));
95
+ process.exit(1);
96
+ }
97
+ }
98
+ /**
99
+ * Show current configuration
100
+ */
101
+ function showConfigCommand() {
102
+ const { loadConfig } = require('../config');
103
+ const config = loadConfig();
104
+ console.log(chalk_1.default.bold('\n📋 Current Configuration\n'));
105
+ if (config.apiKey) {
106
+ const maskedKey = config.apiKey.substring(0, 12) + '...' + config.apiKey.substring(config.apiKey.length - 4);
107
+ console.log(chalk_1.default.green(`✅ API Key: ${maskedKey}`));
108
+ // Show source
109
+ if (process.env.NEURCODE_API_KEY) {
110
+ console.log(chalk_1.default.gray(' Source: Environment variable (NEURCODE_API_KEY)'));
111
+ }
112
+ else {
113
+ console.log(chalk_1.default.gray(' Source: Config file'));
114
+ }
115
+ }
116
+ else {
117
+ console.log(chalk_1.default.red('❌ API Key: Not set'));
118
+ }
119
+ // Show API URL only if it's not the default (for enterprise/on-prem users)
120
+ if (config.apiUrl && config.apiUrl !== 'https://api.neurcode.com') {
121
+ console.log(chalk_1.default.cyan(`🌐 API URL: ${config.apiUrl} (custom)`));
122
+ }
123
+ else {
124
+ console.log(chalk_1.default.gray('🌐 API URL: https://api.neurcode.com (production)'));
125
+ }
126
+ if (config.projectId) {
127
+ console.log(chalk_1.default.blue(`📁 Project ID: ${config.projectId}`));
128
+ }
129
+ else {
130
+ console.log(chalk_1.default.gray('📁 Project ID: Not set'));
131
+ }
132
+ console.log('');
133
+ }
134
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ interface PlanOptions {
2
+ projectId?: string;
3
+ }
4
+ export declare function planCommand(intent: string, options: PlanOptions): Promise<void>;
5
+ export {};
6
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAsBA,UAAU,WAAW;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuID,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,iBAmErE"}