@neurcode-ai/cli 0.3.9 → 0.4.1

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 (111) hide show
  1. package/dist/api-client.d.ts +105 -17
  2. package/dist/api-client.d.ts.map +1 -1
  3. package/dist/api-client.js +388 -85
  4. package/dist/api-client.js.map +1 -1
  5. package/dist/commands/allow.d.ts.map +1 -1
  6. package/dist/commands/allow.js +6 -33
  7. package/dist/commands/allow.js.map +1 -1
  8. package/dist/commands/check.d.ts.map +1 -1
  9. package/dist/commands/check.js +56 -13
  10. package/dist/commands/check.js.map +1 -1
  11. package/dist/commands/doctor.d.ts +7 -0
  12. package/dist/commands/doctor.d.ts.map +1 -0
  13. package/dist/commands/doctor.js +134 -0
  14. package/dist/commands/doctor.js.map +1 -0
  15. package/dist/commands/init.d.ts +13 -0
  16. package/dist/commands/init.d.ts.map +1 -0
  17. package/dist/commands/init.js +365 -0
  18. package/dist/commands/init.js.map +1 -0
  19. package/dist/commands/login.d.ts +8 -0
  20. package/dist/commands/login.d.ts.map +1 -0
  21. package/dist/commands/login.js +209 -0
  22. package/dist/commands/login.js.map +1 -0
  23. package/dist/commands/logout.d.ts +7 -0
  24. package/dist/commands/logout.d.ts.map +1 -0
  25. package/dist/commands/logout.js +70 -0
  26. package/dist/commands/logout.js.map +1 -0
  27. package/dist/commands/plan.d.ts +2 -0
  28. package/dist/commands/plan.d.ts.map +1 -1
  29. package/dist/commands/plan.js +210 -57
  30. package/dist/commands/plan.js.map +1 -1
  31. package/dist/commands/prompt.d.ts +6 -0
  32. package/dist/commands/prompt.d.ts.map +1 -0
  33. package/dist/commands/prompt.js +254 -0
  34. package/dist/commands/prompt.js.map +1 -0
  35. package/dist/commands/revert.d.ts.map +1 -1
  36. package/dist/commands/revert.js +10 -0
  37. package/dist/commands/revert.js.map +1 -1
  38. package/dist/commands/session.d.ts +29 -0
  39. package/dist/commands/session.d.ts.map +1 -0
  40. package/dist/commands/session.js +382 -0
  41. package/dist/commands/session.js.map +1 -0
  42. package/dist/commands/verify.d.ts.map +1 -1
  43. package/dist/commands/verify.js +132 -15
  44. package/dist/commands/verify.js.map +1 -1
  45. package/dist/commands/watch.d.ts +8 -0
  46. package/dist/commands/watch.d.ts.map +1 -0
  47. package/dist/commands/watch.js +78 -0
  48. package/dist/commands/watch.js.map +1 -0
  49. package/dist/config.d.ts +29 -4
  50. package/dist/config.d.ts.map +1 -1
  51. package/dist/config.js +186 -21
  52. package/dist/config.js.map +1 -1
  53. package/dist/index.js +120 -3
  54. package/dist/index.js.map +1 -1
  55. package/dist/services/integrations/TicketService.d.ts +68 -0
  56. package/dist/services/integrations/TicketService.d.ts.map +1 -0
  57. package/dist/services/integrations/TicketService.js +151 -0
  58. package/dist/services/integrations/TicketService.js.map +1 -0
  59. package/dist/services/security/SecurityGuard.d.ts +80 -0
  60. package/dist/services/security/SecurityGuard.d.ts.map +1 -0
  61. package/dist/services/security/SecurityGuard.js +410 -0
  62. package/dist/services/security/SecurityGuard.js.map +1 -0
  63. package/dist/services/watch/BlobStore.d.ts +33 -0
  64. package/dist/services/watch/BlobStore.d.ts.map +1 -0
  65. package/dist/services/watch/BlobStore.js +108 -0
  66. package/dist/services/watch/BlobStore.js.map +1 -0
  67. package/dist/services/watch/CommandPoller.d.ts +76 -0
  68. package/dist/services/watch/CommandPoller.d.ts.map +1 -0
  69. package/dist/services/watch/CommandPoller.js +298 -0
  70. package/dist/services/watch/CommandPoller.js.map +1 -0
  71. package/dist/services/watch/Journal.d.ts +58 -0
  72. package/dist/services/watch/Journal.d.ts.map +1 -0
  73. package/dist/services/watch/Journal.js +144 -0
  74. package/dist/services/watch/Journal.js.map +1 -0
  75. package/dist/services/watch/Sentinel.d.ts +49 -0
  76. package/dist/services/watch/Sentinel.d.ts.map +1 -0
  77. package/dist/services/watch/Sentinel.js +205 -0
  78. package/dist/services/watch/Sentinel.js.map +1 -0
  79. package/dist/services/watch/Syncer.d.ts +55 -0
  80. package/dist/services/watch/Syncer.d.ts.map +1 -0
  81. package/dist/services/watch/Syncer.js +231 -0
  82. package/dist/services/watch/Syncer.js.map +1 -0
  83. package/dist/utils/ROILogger.d.ts +16 -0
  84. package/dist/utils/ROILogger.d.ts.map +1 -0
  85. package/dist/utils/ROILogger.js +45 -0
  86. package/dist/utils/ROILogger.js.map +1 -0
  87. package/dist/utils/box.d.ts +16 -0
  88. package/dist/utils/box.d.ts.map +1 -0
  89. package/dist/utils/box.js +85 -0
  90. package/dist/utils/box.js.map +1 -0
  91. package/dist/utils/gitignore.d.ts +10 -0
  92. package/dist/utils/gitignore.d.ts.map +1 -0
  93. package/dist/utils/gitignore.js +34 -0
  94. package/dist/utils/gitignore.js.map +1 -0
  95. package/dist/utils/messages.d.ts +81 -0
  96. package/dist/utils/messages.d.ts.map +1 -0
  97. package/dist/utils/messages.js +306 -0
  98. package/dist/utils/messages.js.map +1 -0
  99. package/dist/utils/restore.d.ts +14 -0
  100. package/dist/utils/restore.d.ts.map +1 -0
  101. package/dist/utils/restore.js +89 -0
  102. package/dist/utils/restore.js.map +1 -0
  103. package/dist/utils/state.d.ts +69 -0
  104. package/dist/utils/state.d.ts.map +1 -0
  105. package/dist/utils/state.js +151 -0
  106. package/dist/utils/state.js.map +1 -0
  107. package/dist/utils/user-context.d.ts +28 -0
  108. package/dist/utils/user-context.d.ts.map +1 -0
  109. package/dist/utils/user-context.js +68 -0
  110. package/dist/utils/user-context.js.map +1 -0
  111. package/package.json +11 -4
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ /**
3
+ * Box utility for creating terminal boxes
4
+ * Creates high-contrast, professional-looking boxes using chalk
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.createBox = createBox;
8
+ let chalk;
9
+ try {
10
+ chalk = require('chalk');
11
+ }
12
+ catch {
13
+ chalk = {
14
+ green: (str) => str,
15
+ yellow: (str) => str,
16
+ red: (str) => str,
17
+ cyan: (str) => str,
18
+ white: (str) => str,
19
+ bold: (str) => str,
20
+ dim: (str) => str,
21
+ };
22
+ }
23
+ /**
24
+ * Create a boxed message for terminal output
25
+ */
26
+ function createBox(content, options = {}) {
27
+ const { title, padding = 1, borderColor = 'cyan', titleColor = 'white', align = 'left', } = options;
28
+ const borderChar = borderColor === 'green' ? chalk.green('─') :
29
+ borderColor === 'yellow' ? chalk.yellow('─') :
30
+ borderColor === 'red' ? chalk.red('─') :
31
+ borderColor === 'cyan' ? chalk.cyan('─') :
32
+ chalk.white('─');
33
+ const cornerTL = borderColor === 'green' ? chalk.green('┌') :
34
+ borderColor === 'yellow' ? chalk.yellow('┌') :
35
+ borderColor === 'red' ? chalk.red('┌') :
36
+ borderColor === 'cyan' ? chalk.cyan('┌') :
37
+ chalk.white('┌');
38
+ const cornerTR = borderColor === 'green' ? chalk.green('┐') :
39
+ borderColor === 'yellow' ? chalk.yellow('┐') :
40
+ borderColor === 'red' ? chalk.red('┐') :
41
+ borderColor === 'cyan' ? chalk.cyan('┐') :
42
+ chalk.white('┐');
43
+ const cornerBL = borderColor === 'green' ? chalk.green('└') :
44
+ borderColor === 'yellow' ? chalk.yellow('└') :
45
+ borderColor === 'red' ? chalk.red('└') :
46
+ borderColor === 'cyan' ? chalk.cyan('└') :
47
+ chalk.white('└');
48
+ const cornerBR = borderColor === 'green' ? chalk.green('┘') :
49
+ borderColor === 'yellow' ? chalk.yellow('┘') :
50
+ borderColor === 'red' ? chalk.red('┘') :
51
+ borderColor === 'cyan' ? chalk.cyan('┘') :
52
+ chalk.white('┘');
53
+ const vertical = borderColor === 'green' ? chalk.green('│') :
54
+ borderColor === 'yellow' ? chalk.yellow('│') :
55
+ borderColor === 'red' ? chalk.red('│') :
56
+ borderColor === 'cyan' ? chalk.cyan('│') :
57
+ chalk.white('│');
58
+ const titleColorFn = titleColor === 'green' ? chalk.green :
59
+ titleColor === 'yellow' ? chalk.yellow :
60
+ titleColor === 'red' ? chalk.red :
61
+ titleColor === 'cyan' ? chalk.cyan :
62
+ chalk.white;
63
+ const lines = content.split('\n');
64
+ const maxWidth = Math.max(...lines.map(line => line.length), title ? title.length + 2 : 0);
65
+ let result = '';
66
+ // Top border
67
+ result += cornerTL + borderChar.repeat(maxWidth + padding * 2) + cornerTR + '\n';
68
+ // Title (if provided)
69
+ if (title) {
70
+ const titleText = titleColorFn(chalk.bold(title));
71
+ const titlePadding = ' '.repeat(padding);
72
+ result += vertical + titlePadding + titleText + ' '.repeat(maxWidth - title.length + padding) + vertical + '\n';
73
+ result += vertical + ' '.repeat(maxWidth + padding * 2) + vertical + '\n';
74
+ }
75
+ // Content lines
76
+ for (const line of lines) {
77
+ const linePadding = ' '.repeat(padding);
78
+ const contentPadding = ' '.repeat(maxWidth - line.length);
79
+ result += vertical + linePadding + line + contentPadding + linePadding + vertical + '\n';
80
+ }
81
+ // Bottom border
82
+ result += cornerBL + borderChar.repeat(maxWidth + padding * 2) + cornerBR;
83
+ return result;
84
+ }
85
+ //# sourceMappingURL=box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/utils/box.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Gitignore Updater Utility
3
+ *
4
+ * Ensures .neurcode directory is added to .gitignore
5
+ */
6
+ /**
7
+ * Ensure .neurcode is in .gitignore
8
+ */
9
+ export declare function ensureNeurcodeInGitignore(cwd?: string): void;
10
+ //# sourceMappingURL=gitignore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAsB,GAAG,IAAI,CAqB3E"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /**
3
+ * Gitignore Updater Utility
4
+ *
5
+ * Ensures .neurcode directory is added to .gitignore
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ensureNeurcodeInGitignore = ensureNeurcodeInGitignore;
9
+ const fs_1 = require("fs");
10
+ const path_1 = require("path");
11
+ const GITIGNORE_FILE = '.gitignore';
12
+ const NEURCODE_IGNORE = '.neurcode';
13
+ /**
14
+ * Ensure .neurcode is in .gitignore
15
+ */
16
+ function ensureNeurcodeInGitignore(cwd = process.cwd()) {
17
+ const gitignorePath = (0, path_1.join)(cwd, GITIGNORE_FILE);
18
+ // If .gitignore doesn't exist, create it
19
+ if (!(0, fs_1.existsSync)(gitignorePath)) {
20
+ (0, fs_1.writeFileSync)(gitignorePath, `${NEURCODE_IGNORE}\n`, 'utf-8');
21
+ return;
22
+ }
23
+ // Read existing .gitignore
24
+ const content = (0, fs_1.readFileSync)(gitignorePath, 'utf-8');
25
+ const lines = content.split('\n').map(line => line.trim());
26
+ // Check if .neurcode is already in .gitignore
27
+ if (lines.includes(NEURCODE_IGNORE)) {
28
+ return; // Already present
29
+ }
30
+ // Append .neurcode to .gitignore
31
+ const newContent = content.trimEnd() + (content.endsWith('\n') ? '' : '\n') + `${NEURCODE_IGNORE}\n`;
32
+ (0, fs_1.writeFileSync)(gitignorePath, newContent, 'utf-8');
33
+ }
34
+ //# sourceMappingURL=gitignore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAWH,8DAqBC;AA9BD,2BAA6D;AAC7D,+BAA4B;AAE5B,MAAM,cAAc,GAAG,YAAY,CAAC;AACpC,MAAM,eAAe,GAAG,WAAW,CAAC;AAEpC;;GAEG;AACH,SAAgB,yBAAyB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACnE,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEhD,yCAAyC;IACzC,IAAI,CAAC,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,IAAA,kBAAa,EAAC,aAAa,EAAE,GAAG,eAAe,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAE3D,8CAA8C;IAC9C,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,kBAAkB;IAC5B,CAAC;IAED,iCAAiC;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,eAAe,IAAI,CAAC;IACrG,IAAA,kBAAa,EAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Enhanced Messaging Utility
3
+ *
4
+ * Provides enterprise-grade, personalized CLI messaging with consistent formatting,
5
+ * helpful error messages, and actionable next steps.
6
+ */
7
+ import { getUserInfo, getUserFirstName } from './user-context';
8
+ export { getUserInfo, getUserFirstName };
9
+ /**
10
+ * Print a personalized greeting
11
+ */
12
+ export declare function printGreeting(message: string): Promise<void>;
13
+ /**
14
+ * Print a success message with premium formatting
15
+ */
16
+ export declare function printSuccess(message: string, details?: string): void;
17
+ /**
18
+ * Print a warning message with helpful context
19
+ */
20
+ export declare function printWarning(message: string, suggestion?: string): void;
21
+ /**
22
+ * Print an error message with actionable next steps
23
+ */
24
+ export declare function printError(message: string, error?: Error | string, nextSteps?: string[]): void;
25
+ /**
26
+ * Print an info message
27
+ */
28
+ export declare function printInfo(message: string, details?: string): void;
29
+ /**
30
+ * Print a section header with premium styling
31
+ */
32
+ export declare function printSection(title: string, emoji?: string): void;
33
+ /**
34
+ * Print a step indicator
35
+ */
36
+ export declare function printStep(step: number, total: number, description: string): void;
37
+ /**
38
+ * Print a progress indicator
39
+ */
40
+ export declare function printProgress(message: string): void;
41
+ /**
42
+ * Print completion of progress
43
+ */
44
+ export declare function printProgressComplete(success?: boolean): void;
45
+ /**
46
+ * Print authentication-related errors with helpful suggestions
47
+ */
48
+ export declare function printAuthError(error: Error | string): Promise<void>;
49
+ /**
50
+ * Print project-related errors with helpful suggestions
51
+ */
52
+ export declare function printProjectError(error: Error | string, projectId?: string): void;
53
+ /**
54
+ * Print a beautiful success banner
55
+ */
56
+ export declare function printSuccessBanner(title: string, subtitle?: string): Promise<void>;
57
+ /**
58
+ * Print command-specific help in errors
59
+ */
60
+ export declare function printCommandHelp(command: string, options?: string[]): void;
61
+ /**
62
+ * Print waiting/progress message with spinner (simple version)
63
+ */
64
+ export declare function printWaiting(message: string, showDots?: boolean): void;
65
+ /**
66
+ * Clear waiting message
67
+ */
68
+ export declare function clearWaiting(): void;
69
+ /**
70
+ * Print verification result with detailed breakdown
71
+ */
72
+ export declare function printVerificationResult(passed: boolean, score?: number, warnings?: number, violations?: number): void;
73
+ /**
74
+ * Print a table-like output for structured data
75
+ */
76
+ export declare function printTable(rows: string[][]): void;
77
+ /**
78
+ * Print a big welcome banner (like other enterprise CLIs)
79
+ */
80
+ export declare function printWelcomeBanner(): Promise<void>;
81
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/utils/messages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;AAyBzC;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAMpE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAKvE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAgB9F;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAMjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY,GAAG,IAAI,CAGrE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAEhF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,OAAc,GAAG,IAAI,CAMnE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAmBjF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWxF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAU1E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,IAAI,CAM5E;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,OAAO,EACf,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CA4BN;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAmBjD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBxD"}
@@ -0,0 +1,306 @@
1
+ "use strict";
2
+ /**
3
+ * Enhanced Messaging Utility
4
+ *
5
+ * Provides enterprise-grade, personalized CLI messaging with consistent formatting,
6
+ * helpful error messages, and actionable next steps.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getUserFirstName = exports.getUserInfo = void 0;
10
+ exports.printGreeting = printGreeting;
11
+ exports.printSuccess = printSuccess;
12
+ exports.printWarning = printWarning;
13
+ exports.printError = printError;
14
+ exports.printInfo = printInfo;
15
+ exports.printSection = printSection;
16
+ exports.printStep = printStep;
17
+ exports.printProgress = printProgress;
18
+ exports.printProgressComplete = printProgressComplete;
19
+ exports.printAuthError = printAuthError;
20
+ exports.printProjectError = printProjectError;
21
+ exports.printSuccessBanner = printSuccessBanner;
22
+ exports.printCommandHelp = printCommandHelp;
23
+ exports.printWaiting = printWaiting;
24
+ exports.clearWaiting = clearWaiting;
25
+ exports.printVerificationResult = printVerificationResult;
26
+ exports.printTable = printTable;
27
+ exports.printWelcomeBanner = printWelcomeBanner;
28
+ const user_context_1 = require("./user-context");
29
+ Object.defineProperty(exports, "getUserInfo", { enumerable: true, get: function () { return user_context_1.getUserInfo; } });
30
+ Object.defineProperty(exports, "getUserFirstName", { enumerable: true, get: function () { return user_context_1.getUserFirstName; } });
31
+ // Import chalk with fallback
32
+ let chalkInstance;
33
+ try {
34
+ chalkInstance = require('chalk');
35
+ // Disable colors in CI environments
36
+ if (process.env.CI === 'true' || process.env.GITHUB_ACTIONS === 'true') {
37
+ chalkInstance.level = 0;
38
+ }
39
+ }
40
+ catch {
41
+ chalkInstance = {
42
+ green: (str) => str,
43
+ yellow: (str) => str,
44
+ red: (str) => str,
45
+ bold: (str) => str,
46
+ dim: (str) => str,
47
+ cyan: (str) => str,
48
+ white: (str) => str,
49
+ blue: (str) => str,
50
+ magenta: (str) => str,
51
+ gray: (str) => str,
52
+ };
53
+ }
54
+ /**
55
+ * Print a personalized greeting
56
+ */
57
+ async function printGreeting(message) {
58
+ const firstName = await (0, user_context_1.getUserFirstName)();
59
+ console.log(chalkInstance.cyan(`\n👋 Hello ${firstName}!\n`));
60
+ console.log(chalkInstance.dim(message));
61
+ console.log('');
62
+ }
63
+ /**
64
+ * Print a success message with premium formatting
65
+ */
66
+ function printSuccess(message, details) {
67
+ console.log(chalkInstance.green(`\n✨ ${message}\n`));
68
+ if (details) {
69
+ console.log(chalkInstance.dim(` ${details}`));
70
+ console.log('');
71
+ }
72
+ }
73
+ /**
74
+ * Print a warning message with helpful context
75
+ */
76
+ function printWarning(message, suggestion) {
77
+ console.log(chalkInstance.yellow(`\n⚠️ ${message}\n`));
78
+ if (suggestion) {
79
+ console.log(chalkInstance.dim(` 💡 ${suggestion}\n`));
80
+ }
81
+ }
82
+ /**
83
+ * Print an error message with actionable next steps
84
+ */
85
+ function printError(message, error, nextSteps) {
86
+ console.log(chalkInstance.red(`\n❌ ${message}\n`));
87
+ if (error) {
88
+ const errorMessage = error instanceof Error ? error.message : error;
89
+ console.log(chalkInstance.dim(` Error: ${errorMessage}`));
90
+ console.log('');
91
+ }
92
+ if (nextSteps && nextSteps.length > 0) {
93
+ console.log(chalkInstance.bold.white(' Next steps:'));
94
+ nextSteps.forEach(step => {
95
+ console.log(chalkInstance.dim(` • ${step}`));
96
+ });
97
+ console.log('');
98
+ }
99
+ }
100
+ /**
101
+ * Print an info message
102
+ */
103
+ function printInfo(message, details) {
104
+ console.log(chalkInstance.cyan(`\nℹ️ ${message}\n`));
105
+ if (details) {
106
+ console.log(chalkInstance.dim(` ${details}`));
107
+ console.log('');
108
+ }
109
+ }
110
+ /**
111
+ * Print a section header with premium styling
112
+ */
113
+ function printSection(title, emoji = '▸') {
114
+ console.log(chalkInstance.bold.white(`\n${emoji} ${title}\n`));
115
+ console.log(chalkInstance.dim('─────────────────────────────────────────────────────────'));
116
+ }
117
+ /**
118
+ * Print a step indicator
119
+ */
120
+ function printStep(step, total, description) {
121
+ console.log(chalkInstance.dim(`[${step}/${total}]`), chalkInstance.white(description));
122
+ }
123
+ /**
124
+ * Print a progress indicator
125
+ */
126
+ function printProgress(message) {
127
+ process.stdout.write(chalkInstance.dim(` ${message}... `));
128
+ }
129
+ /**
130
+ * Print completion of progress
131
+ */
132
+ function printProgressComplete(success = true) {
133
+ if (success) {
134
+ console.log(chalkInstance.green('✓'));
135
+ }
136
+ else {
137
+ console.log(chalkInstance.red('✗'));
138
+ }
139
+ }
140
+ /**
141
+ * Print authentication-related errors with helpful suggestions
142
+ */
143
+ async function printAuthError(error) {
144
+ const errorMessage = error instanceof Error ? error.message : error;
145
+ if (errorMessage.includes('401') || errorMessage.includes('Unauthorized')) {
146
+ printError('Authentication Failed', error, [
147
+ 'Your API key may be invalid or expired',
148
+ 'Run: neurcode login',
149
+ 'Verify your credentials in ~/.neurcoderc'
150
+ ]);
151
+ }
152
+ else if (errorMessage.includes('403') || errorMessage.includes('Forbidden')) {
153
+ printError('Access Denied', error, [
154
+ 'Your API key may not have the required permissions',
155
+ 'Contact your administrator to verify access',
156
+ 'Try running: neurcode logout && neurcode login'
157
+ ]);
158
+ }
159
+ else if (errorMessage.includes('Network') || errorMessage.includes('fetch')) {
160
+ printError('Network Connection Failed', error, [
161
+ 'Check your internet connection',
162
+ 'Verify the API URL: neurcode doctor',
163
+ 'Check firewall/proxy settings',
164
+ 'Try again in a few moments'
165
+ ]);
166
+ }
167
+ else {
168
+ printError('Authentication Error', error);
169
+ }
170
+ }
171
+ /**
172
+ * Print project-related errors with helpful suggestions
173
+ */
174
+ function printProjectError(error, projectId) {
175
+ const errorMessage = error instanceof Error ? error.message : error;
176
+ const nextSteps = [];
177
+ if (errorMessage.includes('not found') || errorMessage.includes('404')) {
178
+ nextSteps.push('The project may have been deleted or you don\'t have access');
179
+ nextSteps.push('List your projects: neurcode init');
180
+ nextSteps.push('Create a new project: neurcode init');
181
+ }
182
+ else if (!projectId) {
183
+ nextSteps.push('No project is configured for this directory');
184
+ nextSteps.push('Run: neurcode init');
185
+ nextSteps.push('Or set project ID: neurcode config --project-id <id>');
186
+ }
187
+ else {
188
+ nextSteps.push('Verify project configuration: neurcode doctor');
189
+ nextSteps.push('Check project access: neurcode init');
190
+ }
191
+ printError('Project Error', error, nextSteps);
192
+ }
193
+ /**
194
+ * Print a beautiful success banner
195
+ */
196
+ async function printSuccessBanner(title, subtitle) {
197
+ const firstName = await (0, user_context_1.getUserFirstName)();
198
+ console.log('');
199
+ console.log(chalkInstance.green('═══════════════════════════════════════════════════════════'));
200
+ console.log(chalkInstance.bold.green(` ✨ ${title}`));
201
+ if (subtitle) {
202
+ console.log(chalkInstance.dim(` ${subtitle}`));
203
+ }
204
+ console.log(chalkInstance.green('═══════════════════════════════════════════════════════════'));
205
+ console.log('');
206
+ }
207
+ /**
208
+ * Print command-specific help in errors
209
+ */
210
+ function printCommandHelp(command, options) {
211
+ console.log(chalkInstance.bold.white('\n Usage:'));
212
+ console.log(chalkInstance.dim(` $ neurcode ${command}${options ? ' ' + options.join(' ') : ''}`));
213
+ if (options && options.length > 0) {
214
+ console.log(chalkInstance.dim('\n Common options:'));
215
+ options.forEach(opt => {
216
+ console.log(chalkInstance.dim(` ${opt}`));
217
+ });
218
+ }
219
+ console.log('');
220
+ }
221
+ /**
222
+ * Print waiting/progress message with spinner (simple version)
223
+ */
224
+ function printWaiting(message, showDots = true) {
225
+ if (showDots) {
226
+ process.stdout.write(chalkInstance.dim(` ${message}`));
227
+ }
228
+ else {
229
+ console.log(chalkInstance.dim(` ${message}`));
230
+ }
231
+ }
232
+ /**
233
+ * Clear waiting message
234
+ */
235
+ function clearWaiting() {
236
+ process.stdout.write('\r');
237
+ }
238
+ /**
239
+ * Print verification result with detailed breakdown
240
+ */
241
+ function printVerificationResult(passed, score, warnings, violations) {
242
+ if (passed) {
243
+ if (score !== undefined) {
244
+ printSuccess(`Verification Passed`, `Your code scored ${score}% and meets all governance requirements`);
245
+ }
246
+ else {
247
+ printSuccess('Verification Passed', 'Your code meets all governance requirements');
248
+ }
249
+ }
250
+ else {
251
+ const details = [];
252
+ if (violations !== undefined && violations > 0) {
253
+ details.push(`${violations} violation(s) found`);
254
+ }
255
+ if (warnings !== undefined && warnings > 0) {
256
+ details.push(`${warnings} warning(s) found`);
257
+ }
258
+ if (score !== undefined) {
259
+ details.push(`Score: ${score}%`);
260
+ }
261
+ printError('Verification Failed', undefined, details.length > 0 ? details : undefined);
262
+ }
263
+ }
264
+ /**
265
+ * Print a table-like output for structured data
266
+ */
267
+ function printTable(rows) {
268
+ // Find max width for each column
269
+ const maxWidths = rows[0].map((_, colIndex) => {
270
+ return Math.max(...rows.map(row => row[colIndex]?.length || 0));
271
+ });
272
+ rows.forEach((row, index) => {
273
+ const formatted = row.map((cell, colIndex) => {
274
+ const width = maxWidths[colIndex];
275
+ return cell.padEnd(width);
276
+ });
277
+ if (index === 0) {
278
+ console.log(chalkInstance.bold.white(formatted.join(' ')));
279
+ }
280
+ else {
281
+ console.log(chalkInstance.dim(formatted.join(' ')));
282
+ }
283
+ });
284
+ console.log('');
285
+ }
286
+ /**
287
+ * Print a big welcome banner (like other enterprise CLIs)
288
+ */
289
+ async function printWelcomeBanner() {
290
+ const userInfo = await (0, user_context_1.getUserInfo)();
291
+ const userName = userInfo?.displayName || userInfo?.email || 'there';
292
+ console.log('');
293
+ console.log(chalkInstance.bold.cyan('═══════════════════════════════════════════════════════════'));
294
+ console.log(chalkInstance.bold.cyan(' '));
295
+ console.log(chalkInstance.bold.white(' 🚀 Welcome to Neurcode 🚀 '));
296
+ console.log(chalkInstance.bold.cyan(' '));
297
+ if (userInfo) {
298
+ console.log(chalkInstance.dim(` Hello, ${userName}! 👋 `));
299
+ }
300
+ console.log(chalkInstance.bold.cyan(' '));
301
+ console.log(chalkInstance.bold.cyan('═══════════════════════════════════════════════════════════'));
302
+ console.log('');
303
+ console.log(chalkInstance.dim(' AI-powered code governance and intelligent diff analysis '));
304
+ console.log('');
305
+ }
306
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/utils/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Restore a file from a blob hash
3
+ *
4
+ * Reads a GZIP-compressed blob from .neurcode/blobs/<hash> and
5
+ * writes it to the target file path.
6
+ *
7
+ * @param hash - SHA-256 hash of the file content
8
+ * @param targetPath - Relative path to the file to restore (e.g., "src/components/Button.tsx")
9
+ * @param projectRoot - Root directory of the project
10
+ * @returns Promise that resolves when the file is restored
11
+ * @throws Error if the blob doesn't exist, path is invalid, or write fails
12
+ */
13
+ export declare function restoreFile(hash: string, targetPath: string, projectRoot: string): Promise<void>;
14
+ //# sourceMappingURL=restore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../../src/utils/restore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAyCf"}