@ebowwa/crm 0.1.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.
Files changed (187) hide show
  1. package/README.md +174 -0
  2. package/dist/cli/commands/activities.d.ts +11 -0
  3. package/dist/cli/commands/activities.d.ts.map +1 -0
  4. package/dist/cli/commands/activities.js +427 -0
  5. package/dist/cli/commands/activities.js.map +1 -0
  6. package/dist/cli/commands/contacts.d.ts +11 -0
  7. package/dist/cli/commands/contacts.d.ts.map +1 -0
  8. package/dist/cli/commands/contacts.js +458 -0
  9. package/dist/cli/commands/contacts.js.map +1 -0
  10. package/dist/cli/commands/deals.d.ts +11 -0
  11. package/dist/cli/commands/deals.d.ts.map +1 -0
  12. package/dist/cli/commands/deals.js +498 -0
  13. package/dist/cli/commands/deals.js.map +1 -0
  14. package/dist/cli/commands/media.d.ts +11 -0
  15. package/dist/cli/commands/media.d.ts.map +1 -0
  16. package/dist/cli/commands/media.js +417 -0
  17. package/dist/cli/commands/media.js.map +1 -0
  18. package/dist/cli/commands/search.d.ts +11 -0
  19. package/dist/cli/commands/search.d.ts.map +1 -0
  20. package/dist/cli/commands/search.js +346 -0
  21. package/dist/cli/commands/search.js.map +1 -0
  22. package/dist/cli/index.d.ts +13 -0
  23. package/dist/cli/index.d.ts.map +1 -0
  24. package/dist/cli/index.js +173 -0
  25. package/dist/cli/index.js.map +1 -0
  26. package/dist/cli/repl.d.ts +15 -0
  27. package/dist/cli/repl.d.ts.map +1 -0
  28. package/dist/cli/repl.js +318 -0
  29. package/dist/cli/repl.js.map +1 -0
  30. package/dist/cli/utils/config.d.ts +91 -0
  31. package/dist/cli/utils/config.d.ts.map +1 -0
  32. package/dist/cli/utils/config.js +212 -0
  33. package/dist/cli/utils/config.js.map +1 -0
  34. package/dist/cli/utils/output.d.ts +136 -0
  35. package/dist/cli/utils/output.d.ts.map +1 -0
  36. package/dist/cli/utils/output.js +323 -0
  37. package/dist/cli/utils/output.js.map +1 -0
  38. package/dist/cli/utils/prompt.d.ts +81 -0
  39. package/dist/cli/utils/prompt.d.ts.map +1 -0
  40. package/dist/cli/utils/prompt.js +341 -0
  41. package/dist/cli/utils/prompt.js.map +1 -0
  42. package/dist/cli.d.ts +3 -0
  43. package/dist/cli.d.ts.map +1 -0
  44. package/dist/cli.js +8 -0
  45. package/dist/cli.js.map +1 -0
  46. package/dist/core/index.d.ts +6 -0
  47. package/dist/core/index.d.ts.map +1 -0
  48. package/dist/core/index.js +32 -0
  49. package/dist/core/index.js.map +1 -0
  50. package/dist/core/schemas.d.ts +3050 -0
  51. package/dist/core/schemas.d.ts.map +1 -0
  52. package/dist/core/schemas.js +667 -0
  53. package/dist/core/schemas.js.map +1 -0
  54. package/dist/core/types.d.ts +597 -0
  55. package/dist/core/types.d.ts.map +1 -0
  56. package/dist/core/types.js +8 -0
  57. package/dist/core/types.js.map +1 -0
  58. package/dist/index.d.ts +7 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +8 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/mcp/index.d.ts +14 -0
  63. package/dist/mcp/index.d.ts.map +1 -0
  64. package/dist/mcp/index.js +11 -0
  65. package/dist/mcp/index.js.map +1 -0
  66. package/dist/mcp/server.d.ts +13 -0
  67. package/dist/mcp/server.d.ts.map +1 -0
  68. package/dist/mcp/server.js +18 -0
  69. package/dist/mcp/server.js.map +1 -0
  70. package/dist/mcp/storage/client.d.ts +109 -0
  71. package/dist/mcp/storage/client.d.ts.map +1 -0
  72. package/dist/mcp/storage/client.js +355 -0
  73. package/dist/mcp/storage/client.js.map +1 -0
  74. package/dist/mcp/storage/index.d.ts +7 -0
  75. package/dist/mcp/storage/index.d.ts.map +1 -0
  76. package/dist/mcp/storage/index.js +6 -0
  77. package/dist/mcp/storage/index.js.map +1 -0
  78. package/dist/mcp/storage/types.d.ts +44 -0
  79. package/dist/mcp/storage/types.d.ts.map +1 -0
  80. package/dist/mcp/storage/types.js +35 -0
  81. package/dist/mcp/storage/types.js.map +1 -0
  82. package/dist/mcp/tools/definitions.d.ts +16 -0
  83. package/dist/mcp/tools/definitions.d.ts.map +1 -0
  84. package/dist/mcp/tools/definitions.js +914 -0
  85. package/dist/mcp/tools/definitions.js.map +1 -0
  86. package/dist/mcp/tools/handlers.d.ts +50 -0
  87. package/dist/mcp/tools/handlers.d.ts.map +1 -0
  88. package/dist/mcp/tools/handlers.js +760 -0
  89. package/dist/mcp/tools/handlers.js.map +1 -0
  90. package/dist/mcp/tools/index.d.ts +7 -0
  91. package/dist/mcp/tools/index.d.ts.map +1 -0
  92. package/dist/mcp/tools/index.js +6 -0
  93. package/dist/mcp/tools/index.js.map +1 -0
  94. package/dist/mcp/tools/types.d.ts +314 -0
  95. package/dist/mcp/tools/types.d.ts.map +1 -0
  96. package/dist/mcp/tools/types.js +5 -0
  97. package/dist/mcp/tools/types.js.map +1 -0
  98. package/dist/mcp/transports/stdio.d.ts +27 -0
  99. package/dist/mcp/transports/stdio.d.ts.map +1 -0
  100. package/dist/mcp/transports/stdio.js +237 -0
  101. package/dist/mcp/transports/stdio.js.map +1 -0
  102. package/dist/telemetry/index.d.ts +58 -0
  103. package/dist/telemetry/index.d.ts.map +1 -0
  104. package/dist/telemetry/index.js +109 -0
  105. package/dist/telemetry/index.js.map +1 -0
  106. package/dist/telemetry/logger.d.ts +116 -0
  107. package/dist/telemetry/logger.d.ts.map +1 -0
  108. package/dist/telemetry/logger.js +256 -0
  109. package/dist/telemetry/logger.js.map +1 -0
  110. package/dist/telemetry/metrics.d.ts +115 -0
  111. package/dist/telemetry/metrics.d.ts.map +1 -0
  112. package/dist/telemetry/metrics.js +292 -0
  113. package/dist/telemetry/metrics.js.map +1 -0
  114. package/dist/telemetry/tracer.d.ts +227 -0
  115. package/dist/telemetry/tracer.d.ts.map +1 -0
  116. package/dist/telemetry/tracer.js +355 -0
  117. package/dist/telemetry/tracer.js.map +1 -0
  118. package/dist/web/app.d.ts +2 -0
  119. package/dist/web/app.d.ts.map +1 -0
  120. package/dist/web/app.js +115 -0
  121. package/dist/web/app.js.map +1 -0
  122. package/dist/web/components/ContactList.d.ts +3 -0
  123. package/dist/web/components/ContactList.d.ts.map +1 -0
  124. package/dist/web/components/ContactList.js +262 -0
  125. package/dist/web/components/ContactList.js.map +1 -0
  126. package/dist/web/components/Dashboard.d.ts +3 -0
  127. package/dist/web/components/Dashboard.d.ts.map +1 -0
  128. package/dist/web/components/Dashboard.js +158 -0
  129. package/dist/web/components/Dashboard.js.map +1 -0
  130. package/dist/web/components/DealPipeline.d.ts +3 -0
  131. package/dist/web/components/DealPipeline.d.ts.map +1 -0
  132. package/dist/web/components/DealPipeline.js +306 -0
  133. package/dist/web/components/DealPipeline.js.map +1 -0
  134. package/dist/web/index.d.ts +2 -0
  135. package/dist/web/index.d.ts.map +1 -0
  136. package/dist/web/index.js +269 -0
  137. package/dist/web/index.js.map +1 -0
  138. package/dist/web/types.d.ts +75 -0
  139. package/dist/web/types.d.ts.map +1 -0
  140. package/dist/web/types.js +3 -0
  141. package/dist/web/types.js.map +1 -0
  142. package/native/index.d.ts +571 -0
  143. package/native/index.js +687 -0
  144. package/package.json +105 -0
  145. package/src/cli/commands/activities.ts +543 -0
  146. package/src/cli/commands/contacts.ts +563 -0
  147. package/src/cli/commands/deals.ts +637 -0
  148. package/src/cli/commands/media.ts +521 -0
  149. package/src/cli/commands/search.ts +426 -0
  150. package/src/cli/index.ts +203 -0
  151. package/src/cli/repl.ts +379 -0
  152. package/src/cli/utils/config.ts +299 -0
  153. package/src/cli/utils/output.ts +386 -0
  154. package/src/cli/utils/prompt.ts +444 -0
  155. package/src/cli.ts +11 -0
  156. package/src/core/index.ts +184 -0
  157. package/src/core/schemas.ts +770 -0
  158. package/src/core/types.ts +969 -0
  159. package/src/index.ts +8 -0
  160. package/src/mcp/index.ts +17 -0
  161. package/src/mcp/server.ts +26 -0
  162. package/src/mcp/storage/client.ts +408 -0
  163. package/src/mcp/storage/index.ts +7 -0
  164. package/src/mcp/storage/types.ts +72 -0
  165. package/src/mcp/tools/definitions.ts +961 -0
  166. package/src/mcp/tools/handlers.ts +805 -0
  167. package/src/mcp/tools/index.ts +7 -0
  168. package/src/mcp/tools/types.ts +390 -0
  169. package/src/mcp/transports/stdio.ts +225 -0
  170. package/src/telemetry/index.ts +131 -0
  171. package/src/telemetry/logger.ts +318 -0
  172. package/src/telemetry/metrics.ts +393 -0
  173. package/src/telemetry/tracer.ts +487 -0
  174. package/src/web/api/activities.ts +41 -0
  175. package/src/web/api/contacts.ts +114 -0
  176. package/src/web/api/deals.ts +108 -0
  177. package/src/web/api/media.ts +98 -0
  178. package/src/web/app.tsx +143 -0
  179. package/src/web/components/ActivityFeed.tsx +195 -0
  180. package/src/web/components/ContactList.tsx +340 -0
  181. package/src/web/components/Dashboard.tsx +214 -0
  182. package/src/web/components/DealPipeline.tsx +405 -0
  183. package/src/web/components/MediaGallery.tsx +334 -0
  184. package/src/web/index.html +14 -0
  185. package/src/web/index.ts +326 -0
  186. package/src/web/styles/main.css +180 -0
  187. package/src/web/types.ts +311 -0
@@ -0,0 +1,136 @@
1
+ /**
2
+ * CLI Output Formatting Utilities
3
+ *
4
+ * Provides colorized output, table formatting, and display helpers.
5
+ */
6
+ declare const colors: {
7
+ readonly reset: "\u001B[0m";
8
+ readonly bold: "\u001B[1m";
9
+ readonly dim: "\u001B[2m";
10
+ readonly italic: "\u001B[3m";
11
+ readonly underline: "\u001B[4m";
12
+ readonly black: "\u001B[30m";
13
+ readonly red: "\u001B[31m";
14
+ readonly green: "\u001B[32m";
15
+ readonly yellow: "\u001B[33m";
16
+ readonly blue: "\u001B[34m";
17
+ readonly magenta: "\u001B[35m";
18
+ readonly cyan: "\u001B[36m";
19
+ readonly white: "\u001B[37m";
20
+ readonly bgBlack: "\u001B[40m";
21
+ readonly bgRed: "\u001B[41m";
22
+ readonly bgGreen: "\u001B[42m";
23
+ readonly bgYellow: "\u001B[43m";
24
+ readonly bgBlue: "\u001B[44m";
25
+ readonly bgMagenta: "\u001B[45m";
26
+ readonly bgCyan: "\u001B[46m";
27
+ readonly bgWhite: "\u001B[47m";
28
+ };
29
+ /**
30
+ * Colorize text with ANSI codes
31
+ */
32
+ export declare function colorize(text: string, color: keyof typeof colors): string;
33
+ /**
34
+ * Semantic color helpers
35
+ */
36
+ export declare const output: {
37
+ success: (text: string) => string;
38
+ error: (text: string) => string;
39
+ warning: (text: string) => string;
40
+ info: (text: string) => string;
41
+ dim: (text: string) => string;
42
+ bold: (text: string) => string;
43
+ underline: (text: string) => string;
44
+ };
45
+ /**
46
+ * Print a success message with checkmark
47
+ */
48
+ export declare function printSuccess(message: string): void;
49
+ /**
50
+ * Print an error message with X
51
+ */
52
+ export declare function printError(message: string): void;
53
+ /**
54
+ * Print a warning message with triangle
55
+ */
56
+ export declare function printWarning(message: string): void;
57
+ /**
58
+ * Print an info message with bullet
59
+ */
60
+ export declare function printInfo(message: string): void;
61
+ /**
62
+ * Print a header with styling
63
+ */
64
+ export declare function printHeader(title: string): void;
65
+ /**
66
+ * Print a section header
67
+ */
68
+ export declare function printSection(title: string): void;
69
+ /**
70
+ * Format a key-value pair for display
71
+ */
72
+ export declare function formatKeyValue(key: string, value: unknown): string;
73
+ /**
74
+ * Print key-value pairs
75
+ */
76
+ export declare function printKeyValue(pairs: Record<string, unknown>, indent?: number): void;
77
+ /**
78
+ * Format currency value
79
+ */
80
+ export declare function formatCurrency(value: number, currency?: string): string;
81
+ /**
82
+ * Format date for display
83
+ */
84
+ export declare function formatDate(date: string | Date): string;
85
+ /**
86
+ * Format datetime for display
87
+ */
88
+ export declare function formatDateTime(date: string | Date): string;
89
+ /**
90
+ * Format relative time (e.g., "2 hours ago")
91
+ */
92
+ export declare function formatRelativeTime(date: string | Date): string;
93
+ /**
94
+ * Format file size
95
+ */
96
+ export declare function formatFileSize(bytes: number): string;
97
+ /**
98
+ * Truncate string with ellipsis
99
+ */
100
+ export declare function truncate(str: string, maxLength: number): string;
101
+ /**
102
+ * Pad string to fixed width
103
+ */
104
+ export declare function padRight(str: string, width: number): string;
105
+ /**
106
+ * Create a simple table
107
+ */
108
+ export interface TableColumn<T> {
109
+ key: keyof T | string;
110
+ header: string;
111
+ width?: number;
112
+ format?: (value: unknown, row: T) => string;
113
+ }
114
+ export declare function formatTable<T>(data: T[], columns: TableColumn<T>[]): string;
115
+ /**
116
+ * Print a table to console
117
+ */
118
+ export declare function printTable<T>(data: T[], columns: TableColumn<T>[]): void;
119
+ /**
120
+ * Print JSON with syntax highlighting
121
+ */
122
+ export declare function printJSON(data: unknown): void;
123
+ /**
124
+ * Print a divider line
125
+ */
126
+ export declare function printDivider(char?: string, length?: number): void;
127
+ /**
128
+ * Print a box with content
129
+ */
130
+ export declare function printBox(content: string, title?: string): void;
131
+ /**
132
+ * Status badge formatter
133
+ */
134
+ export declare function formatStatus(status: string): string;
135
+ export {};
136
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,323 @@
1
+ /**
2
+ * CLI Output Formatting Utilities
3
+ *
4
+ * Provides colorized output, table formatting, and display helpers.
5
+ */
6
+ // ANSI color codes
7
+ const colors = {
8
+ reset: '\x1b[0m',
9
+ bold: '\x1b[1m',
10
+ dim: '\x1b[2m',
11
+ italic: '\x1b[3m',
12
+ underline: '\x1b[4m',
13
+ // Foreground colors
14
+ black: '\x1b[30m',
15
+ red: '\x1b[31m',
16
+ green: '\x1b[32m',
17
+ yellow: '\x1b[33m',
18
+ blue: '\x1b[34m',
19
+ magenta: '\x1b[35m',
20
+ cyan: '\x1b[36m',
21
+ white: '\x1b[37m',
22
+ // Background colors
23
+ bgBlack: '\x1b[40m',
24
+ bgRed: '\x1b[41m',
25
+ bgGreen: '\x1b[42m',
26
+ bgYellow: '\x1b[43m',
27
+ bgBlue: '\x1b[44m',
28
+ bgMagenta: '\x1b[45m',
29
+ bgCyan: '\x1b[46m',
30
+ bgWhite: '\x1b[47m',
31
+ };
32
+ /**
33
+ * Colorize text with ANSI codes
34
+ */
35
+ export function colorize(text, color) {
36
+ return `${colors[color]}${text}${colors.reset}`;
37
+ }
38
+ /**
39
+ * Semantic color helpers
40
+ */
41
+ export const output = {
42
+ success: (text) => colorize(text, 'green'),
43
+ error: (text) => colorize(text, 'red'),
44
+ warning: (text) => colorize(text, 'yellow'),
45
+ info: (text) => colorize(text, 'cyan'),
46
+ dim: (text) => colorize(text, 'dim'),
47
+ bold: (text) => colorize(text, 'bold'),
48
+ underline: (text) => colorize(text, 'underline'),
49
+ };
50
+ /**
51
+ * Print a success message with checkmark
52
+ */
53
+ export function printSuccess(message) {
54
+ console.log(`${output.success('\u2713')} ${message}`);
55
+ }
56
+ /**
57
+ * Print an error message with X
58
+ */
59
+ export function printError(message) {
60
+ console.error(`${output.error('\u2717')} ${message}`);
61
+ }
62
+ /**
63
+ * Print a warning message with triangle
64
+ */
65
+ export function printWarning(message) {
66
+ console.log(`${output.warning('\u26a0')} ${message}`);
67
+ }
68
+ /**
69
+ * Print an info message with bullet
70
+ */
71
+ export function printInfo(message) {
72
+ console.log(`${output.info('\u2022')} ${message}`);
73
+ }
74
+ /**
75
+ * Print a header with styling
76
+ */
77
+ export function printHeader(title) {
78
+ const line = '\u2500'.repeat(title.length + 4);
79
+ console.log();
80
+ console.log(output.bold(`\u250c${line}\u2510`));
81
+ console.log(output.bold(`\u2502 ${title} \u2502`));
82
+ console.log(output.bold(`\u2514${line}\u2518`));
83
+ console.log();
84
+ }
85
+ /**
86
+ * Print a section header
87
+ */
88
+ export function printSection(title) {
89
+ console.log();
90
+ console.log(output.bold(output.underline(title)));
91
+ console.log();
92
+ }
93
+ /**
94
+ * Format a key-value pair for display
95
+ */
96
+ export function formatKeyValue(key, value) {
97
+ const formattedValue = value === null || value === undefined
98
+ ? output.dim('(none)')
99
+ : String(value);
100
+ return `${output.dim(key)}: ${formattedValue}`;
101
+ }
102
+ /**
103
+ * Print key-value pairs
104
+ */
105
+ export function printKeyValue(pairs, indent = 0) {
106
+ const prefix = ' '.repeat(indent);
107
+ for (const [key, value] of Object.entries(pairs)) {
108
+ if (value !== undefined) {
109
+ console.log(`${prefix}${formatKeyValue(key, value)}`);
110
+ }
111
+ }
112
+ }
113
+ /**
114
+ * Format currency value
115
+ */
116
+ export function formatCurrency(value, currency = 'USD') {
117
+ return new Intl.NumberFormat('en-US', {
118
+ style: 'currency',
119
+ currency,
120
+ }).format(value);
121
+ }
122
+ /**
123
+ * Format date for display
124
+ */
125
+ export function formatDate(date) {
126
+ const d = typeof date === 'string' ? new Date(date) : date;
127
+ return d.toLocaleDateString('en-US', {
128
+ year: 'numeric',
129
+ month: 'short',
130
+ day: 'numeric',
131
+ });
132
+ }
133
+ /**
134
+ * Format datetime for display
135
+ */
136
+ export function formatDateTime(date) {
137
+ const d = typeof date === 'string' ? new Date(date) : date;
138
+ return d.toLocaleString('en-US', {
139
+ year: 'numeric',
140
+ month: 'short',
141
+ day: 'numeric',
142
+ hour: '2-digit',
143
+ minute: '2-digit',
144
+ });
145
+ }
146
+ /**
147
+ * Format relative time (e.g., "2 hours ago")
148
+ */
149
+ export function formatRelativeTime(date) {
150
+ const d = typeof date === 'string' ? new Date(date) : date;
151
+ const now = new Date();
152
+ const diffMs = now.getTime() - d.getTime();
153
+ const diffSecs = Math.floor(diffMs / 1000);
154
+ const diffMins = Math.floor(diffSecs / 60);
155
+ const diffHours = Math.floor(diffMins / 60);
156
+ const diffDays = Math.floor(diffHours / 24);
157
+ if (diffSecs < 60)
158
+ return 'just now';
159
+ if (diffMins < 60)
160
+ return `${diffMins}m ago`;
161
+ if (diffHours < 24)
162
+ return `${diffHours}h ago`;
163
+ if (diffDays < 7)
164
+ return `${diffDays}d ago`;
165
+ return formatDate(d);
166
+ }
167
+ /**
168
+ * Format file size
169
+ */
170
+ export function formatFileSize(bytes) {
171
+ const units = ['B', 'KB', 'MB', 'GB', 'TB'];
172
+ let size = bytes;
173
+ let unitIndex = 0;
174
+ while (size >= 1024 && unitIndex < units.length - 1) {
175
+ size /= 1024;
176
+ unitIndex++;
177
+ }
178
+ return `${size.toFixed(unitIndex === 0 ? 0 : 1)} ${units[unitIndex]}`;
179
+ }
180
+ /**
181
+ * Truncate string with ellipsis
182
+ */
183
+ export function truncate(str, maxLength) {
184
+ if (str.length <= maxLength)
185
+ return str;
186
+ return str.slice(0, maxLength - 1) + '\u2026';
187
+ }
188
+ /**
189
+ * Pad string to fixed width
190
+ */
191
+ export function padRight(str, width) {
192
+ return str.padEnd(width, ' ');
193
+ }
194
+ export function formatTable(data, columns) {
195
+ if (data.length === 0) {
196
+ return output.dim('No results');
197
+ }
198
+ // Calculate column widths
199
+ const widths = columns.map((col) => {
200
+ const headerWidth = col.header.length;
201
+ const keyStr = String(col.key);
202
+ const dataWidth = Math.max(...data.map((row) => {
203
+ const value = keyStr.includes('.')
204
+ ? getNestedValue(row, keyStr)
205
+ : row[keyStr];
206
+ const formatted = col.format ? col.format(value, row) : String(value ?? '');
207
+ return formatted.length;
208
+ }));
209
+ return Math.max(headerWidth, col.width ?? dataWidth);
210
+ });
211
+ // Build header
212
+ const headerRow = columns
213
+ .map((col, i) => output.bold(padRight(col.header, widths[i] ?? 10)))
214
+ .join(' ');
215
+ // Build separator
216
+ const separator = widths.map((w) => '\u2500'.repeat(w ?? 10)).join(' ');
217
+ // Build data rows
218
+ const dataRows = data.map((row) => columns
219
+ .map((col, i) => {
220
+ const keyStr = String(col.key);
221
+ const value = keyStr.includes('.')
222
+ ? getNestedValue(row, keyStr)
223
+ : row[keyStr];
224
+ const formatted = col.format ? col.format(value, row) : String(value ?? '');
225
+ return padRight(formatted, widths[i] ?? 10);
226
+ })
227
+ .join(' '));
228
+ return [headerRow, separator, ...dataRows].join('\n');
229
+ }
230
+ /**
231
+ * Print a table to console
232
+ */
233
+ export function printTable(data, columns) {
234
+ console.log(formatTable(data, columns));
235
+ }
236
+ /**
237
+ * Get nested value from object using dot notation
238
+ */
239
+ function getNestedValue(obj, path) {
240
+ return path.split('.').reduce((acc, part) => {
241
+ if (acc && typeof acc === 'object') {
242
+ return acc[part];
243
+ }
244
+ return undefined;
245
+ }, obj);
246
+ }
247
+ /**
248
+ * Print JSON with syntax highlighting
249
+ */
250
+ export function printJSON(data) {
251
+ const json = JSON.stringify(data, null, 2);
252
+ // Simple syntax highlighting
253
+ const highlighted = json
254
+ .replace(/"([^"]+)":/g, output.dim('"$1":'))
255
+ .replace(/: "([^"]+)"/g, `: ${output.success('"$1"')}`)
256
+ .replace(/: (\d+)/g, `: ${output.info('$1')}`)
257
+ .replace(/: (true|false)/g, `: ${output.warning('$1')}`)
258
+ .replace(/: (null)/g, `: ${output.dim('$1')}`);
259
+ console.log(highlighted);
260
+ }
261
+ /**
262
+ * Print a divider line
263
+ */
264
+ export function printDivider(char = '\u2500', length = 60) {
265
+ console.log(output.dim(char.repeat(length)));
266
+ }
267
+ /**
268
+ * Print a box with content
269
+ */
270
+ export function printBox(content, title) {
271
+ const lines = content.split('\n');
272
+ const maxWidth = Math.max(...lines.map((l) => l.length), title?.length ?? 0);
273
+ const top = title
274
+ ? `\u250c\u2500 ${output.bold(title)} ${'\u2500'.repeat(maxWidth - title.length - 1)}\u2510`
275
+ : `\u250c${'\u2500'.repeat(maxWidth + 2)}\u2510`;
276
+ console.log(top);
277
+ for (const line of lines) {
278
+ console.log(`\u2502 ${padRight(line, maxWidth)} \u2502`);
279
+ }
280
+ console.log(`\u2514${'\u2500'.repeat(maxWidth + 2)}\u2518`);
281
+ }
282
+ /**
283
+ * Status badge formatter
284
+ */
285
+ export function formatStatus(status) {
286
+ const statusColors = {
287
+ // Contact status
288
+ lead: 'cyan',
289
+ prospect: 'blue',
290
+ qualified: 'yellow',
291
+ customer: 'green',
292
+ churned: 'red',
293
+ archived: 'dim',
294
+ // Deal stages
295
+ prospecting: 'cyan',
296
+ qualification: 'blue',
297
+ needs_analysis: 'yellow',
298
+ proposal: 'magenta',
299
+ negotiation: 'yellow',
300
+ closed_won: 'green',
301
+ closed_lost: 'red',
302
+ // Activity types
303
+ call: 'cyan',
304
+ email: 'blue',
305
+ meeting: 'magenta',
306
+ task: 'yellow',
307
+ note: 'dim',
308
+ // Priority
309
+ low: 'dim',
310
+ medium: 'yellow',
311
+ high: 'red',
312
+ urgent: 'bgRed',
313
+ // General
314
+ active: 'green',
315
+ inactive: 'dim',
316
+ pending: 'yellow',
317
+ completed: 'green',
318
+ cancelled: 'red',
319
+ };
320
+ const color = statusColors[status.toLowerCase()] || 'white';
321
+ return colorize(`[${status.toUpperCase()}]`, color);
322
+ }
323
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/cli/utils/output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mBAAmB;AACnB,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,SAAS;IACd,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,SAAS;IAEpB,oBAAoB;IACpB,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IAEjB,oBAAoB;IACpB,OAAO,EAAE,UAAU;IACnB,KAAK,EAAE,UAAU;IACjB,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,UAAU;CACX,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,KAA0B;IAC/D,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAClD,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAC9C,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACnD,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC9C,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAC5C,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC9C,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CACzD,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,KAAc;IACxD,MAAM,cAAc,GAClB,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QACnC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACtB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpB,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,cAAc,EAAE,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,KAA8B,EAC9B,MAAM,GAAG,CAAC;IAEV,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,QAAQ,GAAG,KAAK;IAEhB,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;QACpC,KAAK,EAAE,UAAU;QACjB,QAAQ;KACT,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAmB;IAC5C,MAAM,CAAC,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,OAAO,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACnC,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;KACf,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAmB;IAChD,MAAM,CAAC,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE;QAC/B,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAmB;IACpD,MAAM,CAAC,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;IAE5C,IAAI,QAAQ,GAAG,EAAE;QAAE,OAAO,UAAU,CAAC;IACrC,IAAI,QAAQ,GAAG,EAAE;QAAE,OAAO,GAAG,QAAQ,OAAO,CAAC;IAC7C,IAAI,SAAS,GAAG,EAAE;QAAE,OAAO,GAAG,SAAS,OAAO,CAAC;IAC/C,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,GAAG,QAAQ,OAAO,CAAC;IAC5C,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,OAAO,IAAI,IAAI,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,IAAI,IAAI,IAAI,CAAC;QACb,SAAS,EAAE,CAAC;IACd,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,SAAiB;IACrD,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,GAAG,CAAC;IACxC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,KAAa;IACjD,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAChC,CAAC;AAYD,MAAM,UAAU,WAAW,CACzB,IAAS,EACT,OAAyB;IAEzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAED,0BAA0B;IAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACjC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAClB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChC,CAAC,CAAC,cAAc,CAAC,GAA8B,EAAE,MAAM,CAAC;gBACxD,CAAC,CAAE,GAA+B,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAC5E,OAAO,SAAS,CAAC,MAAM,CAAC;QAC1B,CAAC,CAAC,CACH,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,eAAe;IACf,MAAM,SAAS,GAAG,OAAO;SACtB,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACnE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,kBAAkB;IAClB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzE,kBAAkB;IAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAChC,OAAO;SACJ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;YAChC,CAAC,CAAC,cAAc,CAAC,GAA8B,EAAE,MAAM,CAAC;YACxD,CAAC,CAAE,GAA+B,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5E,OAAO,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;IAEF,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,IAAS,EACT,OAAyB;IAEzB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAA4B,EAAE,IAAY;IAChE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1C,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAQ,GAA+B,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,GAAc,CAAC,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3C,6BAA6B;IAC7B,MAAM,WAAW,GAAG,IAAI;SACrB,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC3C,OAAO,CAAC,cAAc,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;SACtD,OAAO,CAAC,UAAU,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC7C,OAAO,CAAC,iBAAiB,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;SACvD,OAAO,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAI,GAAG,QAAQ,EAAE,MAAM,GAAG,EAAE;IACvD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,KAAc;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAE7E,MAAM,GAAG,GAAG,KAAK;QACf,CAAC,CAAC,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ;QAC5F,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IAEnD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,UAAU,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,YAAY,GAAwC;QACxD,iBAAiB;QACjB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,KAAK;QAEf,cAAc;QACd,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,MAAM;QACrB,cAAc,EAAE,QAAQ;QACxB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,OAAO;QACnB,WAAW,EAAE,KAAK;QAElB,iBAAiB;QACjB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QAEX,WAAW;QACX,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,OAAO;QAEf,UAAU;QACV,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,QAAQ;QACjB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,KAAK;KACjB,CAAC;IAEF,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,OAAO,CAAC;IAC5D,OAAO,QAAQ,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Interactive Prompt Utilities
3
+ *
4
+ * Provides user-friendly prompts for CLI interactions.
5
+ */
6
+ /**
7
+ * Prompt for text input
8
+ */
9
+ export declare function prompt(message: string, defaultValue?: string): Promise<string>;
10
+ /**
11
+ * Prompt for required text input (keeps asking until provided)
12
+ */
13
+ export declare function promptRequired(message: string, validate?: (value: string) => boolean | string): Promise<string>;
14
+ /**
15
+ * Prompt for email input with validation
16
+ */
17
+ export declare function promptEmail(message?: string): Promise<string>;
18
+ /**
19
+ * Prompt for phone input
20
+ */
21
+ export declare function promptPhone(message?: string): Promise<string>;
22
+ /**
23
+ * Prompt for number input
24
+ */
25
+ export declare function promptNumber(message: string, defaultValue?: number, min?: number, max?: number): Promise<number>;
26
+ /**
27
+ * Prompt for integer input
28
+ */
29
+ export declare function promptInt(message: string, defaultValue?: number, min?: number, max?: number): Promise<number>;
30
+ /**
31
+ * Prompt for yes/no confirmation
32
+ */
33
+ export declare function confirm(message: string, defaultValue?: boolean): Promise<boolean>;
34
+ /**
35
+ * Prompt to select from a list of options
36
+ */
37
+ export declare function select<T extends string>(message: string, options: T[], defaultValue?: T): Promise<T>;
38
+ /**
39
+ * Prompt to select multiple options from a list
40
+ */
41
+ export declare function multiSelect<T extends string>(message: string, options: T[], defaultValues?: T[]): Promise<T[]>;
42
+ /**
43
+ * Prompt for tags (comma-separated)
44
+ */
45
+ export declare function promptTags(message?: string): Promise<string[]>;
46
+ /**
47
+ * Prompt for multiline text
48
+ */
49
+ export declare function promptMultiline(message: string, defaultValue?: string): Promise<string>;
50
+ /**
51
+ * Prompt with auto-complete suggestions
52
+ */
53
+ export declare function promptWithSuggestions(message: string, suggestions: string[], defaultValue?: string): Promise<string>;
54
+ /**
55
+ * Display a preview and ask for confirmation
56
+ */
57
+ export declare function previewAndConfirm(title: string, data: Record<string, unknown>): Promise<boolean>;
58
+ /**
59
+ * Progress indicator for async operations
60
+ */
61
+ export declare function withProgress<T>(message: string, fn: () => Promise<T>): Promise<T>;
62
+ /**
63
+ * Display a spinner
64
+ */
65
+ export declare class Spinner {
66
+ private message;
67
+ private frames;
68
+ private i;
69
+ private interval?;
70
+ constructor(message: string);
71
+ start(): this;
72
+ succeed(message?: string): void;
73
+ fail(message?: string): void;
74
+ update(message: string): void;
75
+ private stop;
76
+ }
77
+ /**
78
+ * Password input (hidden)
79
+ */
80
+ export declare function promptPassword(message?: string): Promise<string>;
81
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/prompt.ts"],"names":[],"mappings":"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"}