@neurcode-ai/cli 0.7.12 → 0.8.0
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/dist/api-client.d.ts +37 -17
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +224 -120
- package/dist/api-client.js.map +1 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +56 -13
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +14 -11
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +95 -33
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +47 -57
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/plan.d.ts +2 -0
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +177 -10
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/revert.d.ts.map +1 -1
- package/dist/commands/revert.js +10 -0
- package/dist/commands/revert.js.map +1 -1
- package/dist/commands/session.d.ts +29 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +382 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +59 -3
- package/dist/commands/verify.js.map +1 -1
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +20 -15
- package/dist/commands/watch.js.map +1 -1
- package/dist/index.js +78 -3
- package/dist/index.js.map +1 -1
- package/dist/services/integrations/TicketService.d.ts +68 -0
- package/dist/services/integrations/TicketService.d.ts.map +1 -0
- package/dist/services/integrations/TicketService.js +151 -0
- package/dist/services/integrations/TicketService.js.map +1 -0
- package/dist/services/security/SecurityGuard.d.ts +80 -0
- package/dist/services/security/SecurityGuard.d.ts.map +1 -0
- package/dist/services/security/SecurityGuard.js +410 -0
- package/dist/services/security/SecurityGuard.js.map +1 -0
- package/dist/services/watch/Syncer.d.ts.map +1 -1
- package/dist/services/watch/Syncer.js +22 -1
- package/dist/services/watch/Syncer.js.map +1 -1
- package/dist/utils/ROILogger.d.ts +16 -0
- package/dist/utils/ROILogger.d.ts.map +1 -0
- package/dist/utils/ROILogger.js +45 -0
- package/dist/utils/ROILogger.js.map +1 -0
- package/dist/utils/box.d.ts +16 -0
- package/dist/utils/box.d.ts.map +1 -0
- package/dist/utils/box.js +85 -0
- package/dist/utils/box.js.map +1 -0
- package/dist/utils/messages.d.ts +81 -0
- package/dist/utils/messages.d.ts.map +1 -0
- package/dist/utils/messages.js +306 -0
- package/dist/utils/messages.js.map +1 -0
- package/dist/utils/user-context.d.ts +28 -0
- package/dist/utils/user-context.d.ts.map +1 -0
- package/dist/utils/user-context.js +68 -0
- package/dist/utils/user-context.js.map +1 -0
- package/package.json +4 -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":";AAAA;;;GAGG;;AA4BH,8BAiFC;AA3GD,IAAI,KAAU,CAAC;AACf,IAAI,CAAC;IACH,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAAC,MAAM,CAAC;IACP,KAAK,GAAG;QACN,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QAC3B,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QAC5B,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QACzB,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QAC1B,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QAC3B,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QAC1B,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;KAC1B,CAAC;AACJ,CAAC;AAUD;;GAEG;AACH,SAAgB,SAAS,CAAC,OAAe,EAAE,UAAsB,EAAE;IACjE,MAAM,EACJ,KAAK,EACL,OAAO,GAAG,CAAC,EACX,WAAW,GAAG,MAAM,EACpB,UAAU,GAAG,OAAO,EACpB,KAAK,GAAG,MAAM,GACf,GAAG,OAAO,CAAC;IAEZ,MAAM,UAAU,GAAG,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEpC,MAAM,QAAQ,GAAG,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,MAAM,QAAQ,GAAG,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,MAAM,QAAQ,GAAG,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,MAAM,QAAQ,GAAG,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,MAAM,QAAQ,GAAG,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,MAAM,YAAY,GAAG,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACpC,KAAK,CAAC,KAAK,CAAC;IAEjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EACjC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7B,CAAC;IAEF,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,aAAa;IACb,MAAM,IAAI,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;IAEjF,sBAAsB;IACtB,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,IAAI,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;QAChH,MAAM,IAAI,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC5E,CAAC;IAED,gBAAgB;IAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,IAAI,QAAQ,GAAG,WAAW,GAAG,IAAI,GAAG,cAAc,GAAG,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC3F,CAAC;IAED,gBAAgB;IAChB,MAAM,IAAI,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IAE1E,OAAO,MAAM,CAAC;AAChB,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,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User Context Utility
|
|
3
|
+
*
|
|
4
|
+
* Provides user information (name, email) for personalized CLI messaging.
|
|
5
|
+
* Caches user info to avoid repeated API calls.
|
|
6
|
+
*/
|
|
7
|
+
export interface UserInfo {
|
|
8
|
+
id: string;
|
|
9
|
+
email: string;
|
|
10
|
+
firstName?: string;
|
|
11
|
+
lastName?: string;
|
|
12
|
+
imageUrl?: string;
|
|
13
|
+
displayName: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Get current user information
|
|
17
|
+
* Uses cache to avoid repeated API calls
|
|
18
|
+
*/
|
|
19
|
+
export declare function getUserInfo(): Promise<UserInfo | null>;
|
|
20
|
+
/**
|
|
21
|
+
* Clear cached user info (useful after logout)
|
|
22
|
+
*/
|
|
23
|
+
export declare function clearUserCache(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Get user's first name or fallback
|
|
26
|
+
*/
|
|
27
|
+
export declare function getUserFirstName(): Promise<string>;
|
|
28
|
+
//# sourceMappingURL=user-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-context.d.ts","sourceRoot":"","sources":["../../src/utils/user-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAoC5D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAGxD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* User Context Utility
|
|
4
|
+
*
|
|
5
|
+
* Provides user information (name, email) for personalized CLI messaging.
|
|
6
|
+
* Caches user info to avoid repeated API calls.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.getUserInfo = getUserInfo;
|
|
10
|
+
exports.clearUserCache = clearUserCache;
|
|
11
|
+
exports.getUserFirstName = getUserFirstName;
|
|
12
|
+
const config_1 = require("../config");
|
|
13
|
+
const api_client_1 = require("../api-client");
|
|
14
|
+
let cachedUserInfo = null;
|
|
15
|
+
let cacheTimestamp = 0;
|
|
16
|
+
const CACHE_TTL = 5 * 60 * 1000; // 5 minutes
|
|
17
|
+
/**
|
|
18
|
+
* Get current user information
|
|
19
|
+
* Uses cache to avoid repeated API calls
|
|
20
|
+
*/
|
|
21
|
+
async function getUserInfo() {
|
|
22
|
+
try {
|
|
23
|
+
// Return cached info if still valid
|
|
24
|
+
const now = Date.now();
|
|
25
|
+
if (cachedUserInfo && (now - cacheTimestamp) < CACHE_TTL) {
|
|
26
|
+
return cachedUserInfo;
|
|
27
|
+
}
|
|
28
|
+
const config = (0, config_1.loadConfig)();
|
|
29
|
+
if (!config.apiKey) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const client = new api_client_1.ApiClient(config);
|
|
33
|
+
const user = await client.getCurrentUser();
|
|
34
|
+
// Build display name
|
|
35
|
+
const displayName = user.firstName && user.lastName
|
|
36
|
+
? `${user.firstName} ${user.lastName}`
|
|
37
|
+
: user.firstName || user.lastName || user.email.split('@')[0] || 'User';
|
|
38
|
+
cachedUserInfo = {
|
|
39
|
+
id: user.id,
|
|
40
|
+
email: user.email,
|
|
41
|
+
firstName: user.firstName,
|
|
42
|
+
lastName: user.lastName,
|
|
43
|
+
imageUrl: user.imageUrl,
|
|
44
|
+
displayName,
|
|
45
|
+
};
|
|
46
|
+
cacheTimestamp = now;
|
|
47
|
+
return cachedUserInfo;
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
// Silently fail - user info is optional for messaging
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Clear cached user info (useful after logout)
|
|
56
|
+
*/
|
|
57
|
+
function clearUserCache() {
|
|
58
|
+
cachedUserInfo = null;
|
|
59
|
+
cacheTimestamp = 0;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get user's first name or fallback
|
|
63
|
+
*/
|
|
64
|
+
async function getUserFirstName() {
|
|
65
|
+
const user = await getUserInfo();
|
|
66
|
+
return user?.firstName || user?.displayName.split(' ')[0] || 'there';
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=user-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-context.js","sourceRoot":"","sources":["../../src/utils/user-context.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAsBH,kCAoCC;AAKD,wCAGC;AAKD,4CAGC;AAxED,sCAAuC;AACvC,8CAA0C;AAW1C,IAAI,cAAc,GAAoB,IAAI,CAAC;AAC3C,IAAI,cAAc,GAAW,CAAC,CAAC;AAC/B,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAE7C;;;GAGG;AACI,KAAK,UAAU,WAAW;IAC/B,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,cAAc,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG,SAAS,EAAE,CAAC;YACzD,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QAE3C,qBAAqB;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ;YACjD,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;YACtC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;QAE1E,cAAc,GAAG;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW;SACZ,CAAC;QAEF,cAAc,GAAG,GAAG,CAAC;QACrB,OAAO,cAAc,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sDAAsD;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,cAAc,GAAG,IAAI,CAAC;IACtB,cAAc,GAAG,CAAC,CAAC;AACrB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB;IACpC,MAAM,IAAI,GAAG,MAAM,WAAW,EAAE,CAAC;IACjC,OAAO,IAAI,EAAE,SAAS,IAAI,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;AACvE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neurcode-ai/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Neurcode CLI - AI code governance and diff analysis",
|
|
5
5
|
"bin": {
|
|
6
6
|
"neurcode": "./dist/index.js"
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"node": ">=18.0.0"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@neurcode-ai/diff-parser": "^0.1.
|
|
41
|
-
"@neurcode-ai/policy-engine": "^0.1.
|
|
40
|
+
"@neurcode-ai/diff-parser": "^0.1.0",
|
|
41
|
+
"@neurcode-ai/policy-engine": "^0.1.0",
|
|
42
42
|
"chalk": "^4.1.2",
|
|
43
43
|
"chokidar": "^3.6.0",
|
|
44
44
|
"commander": "^11.1.0",
|
|
@@ -58,4 +58,4 @@
|
|
|
58
58
|
"@types/uuid": "^9.0.8",
|
|
59
59
|
"typescript": "^5.3.0"
|
|
60
60
|
}
|
|
61
|
-
}
|
|
61
|
+
}
|