cursor-history 0.5.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 (58) hide show
  1. package/README.md +225 -0
  2. package/dist/cli/commands/export.d.ts +9 -0
  3. package/dist/cli/commands/export.d.ts.map +1 -0
  4. package/dist/cli/commands/export.js +126 -0
  5. package/dist/cli/commands/export.js.map +1 -0
  6. package/dist/cli/commands/list.d.ts +9 -0
  7. package/dist/cli/commands/list.d.ts.map +1 -0
  8. package/dist/cli/commands/list.js +77 -0
  9. package/dist/cli/commands/list.js.map +1 -0
  10. package/dist/cli/commands/search.d.ts +9 -0
  11. package/dist/cli/commands/search.d.ts.map +1 -0
  12. package/dist/cli/commands/search.js +47 -0
  13. package/dist/cli/commands/search.js.map +1 -0
  14. package/dist/cli/commands/show.d.ts +9 -0
  15. package/dist/cli/commands/show.d.ts.map +1 -0
  16. package/dist/cli/commands/show.js +51 -0
  17. package/dist/cli/commands/show.js.map +1 -0
  18. package/dist/cli/formatters/index.d.ts +6 -0
  19. package/dist/cli/formatters/index.d.ts.map +1 -0
  20. package/dist/cli/formatters/index.js +6 -0
  21. package/dist/cli/formatters/index.js.map +1 -0
  22. package/dist/cli/formatters/json.d.ts +28 -0
  23. package/dist/cli/formatters/json.d.ts.map +1 -0
  24. package/dist/cli/formatters/json.js +98 -0
  25. package/dist/cli/formatters/json.js.map +1 -0
  26. package/dist/cli/formatters/table.d.ts +45 -0
  27. package/dist/cli/formatters/table.d.ts.map +1 -0
  28. package/dist/cli/formatters/table.js +439 -0
  29. package/dist/cli/formatters/table.js.map +1 -0
  30. package/dist/cli/index.d.ts +6 -0
  31. package/dist/cli/index.d.ts.map +1 -0
  32. package/dist/cli/index.js +51 -0
  33. package/dist/cli/index.js.map +1 -0
  34. package/dist/core/index.d.ts +7 -0
  35. package/dist/core/index.d.ts.map +1 -0
  36. package/dist/core/index.js +8 -0
  37. package/dist/core/index.js.map +1 -0
  38. package/dist/core/parser.d.ts +38 -0
  39. package/dist/core/parser.d.ts.map +1 -0
  40. package/dist/core/parser.js +324 -0
  41. package/dist/core/parser.js.map +1 -0
  42. package/dist/core/storage.d.ts +45 -0
  43. package/dist/core/storage.d.ts.map +1 -0
  44. package/dist/core/storage.js +869 -0
  45. package/dist/core/storage.js.map +1 -0
  46. package/dist/core/types.d.ts +113 -0
  47. package/dist/core/types.d.ts.map +1 -0
  48. package/dist/core/types.js +6 -0
  49. package/dist/core/types.js.map +1 -0
  50. package/dist/lib/errors.d.ts +56 -0
  51. package/dist/lib/errors.d.ts.map +1 -0
  52. package/dist/lib/errors.js +90 -0
  53. package/dist/lib/errors.js.map +1 -0
  54. package/dist/lib/platform.d.ts +25 -0
  55. package/dist/lib/platform.d.ts.map +1 -0
  56. package/dist/lib/platform.js +66 -0
  57. package/dist/lib/platform.js.map +1 -0
  58. package/package.json +64 -0
@@ -0,0 +1,28 @@
1
+ /**
2
+ * JSON output formatter for CLI
3
+ */
4
+ import type { ChatSessionSummary, Workspace, ChatSession, SearchResult } from '../../core/types.js';
5
+ /**
6
+ * Format sessions list as JSON
7
+ */
8
+ export declare function formatSessionsJson(sessions: ChatSessionSummary[]): string;
9
+ /**
10
+ * Format workspaces list as JSON
11
+ */
12
+ export declare function formatWorkspacesJson(workspaces: Workspace[]): string;
13
+ /**
14
+ * Format a single session as JSON
15
+ */
16
+ export declare function formatSessionJson(session: ChatSession, workspacePath?: string): string;
17
+ /**
18
+ * Format search results as JSON
19
+ */
20
+ export declare function formatSearchResultsJson(results: SearchResult[], query: string): string;
21
+ /**
22
+ * Format export result as JSON
23
+ */
24
+ export declare function formatExportResultJson(exported: {
25
+ index: number;
26
+ path: string;
27
+ }[]): string;
28
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/cli/formatters/json.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEpG;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAiBzE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAWpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAwBtF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAoBtF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,CAO1F"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * JSON output formatter for CLI
3
+ */
4
+ /**
5
+ * Format sessions list as JSON
6
+ */
7
+ export function formatSessionsJson(sessions) {
8
+ const output = {
9
+ count: sessions.length,
10
+ sessions: sessions.map((s) => ({
11
+ index: s.index,
12
+ id: s.id,
13
+ title: s.title,
14
+ createdAt: s.createdAt.toISOString(),
15
+ lastUpdatedAt: s.lastUpdatedAt.toISOString(),
16
+ messageCount: s.messageCount,
17
+ workspaceId: s.workspaceId,
18
+ workspacePath: s.workspacePath,
19
+ preview: s.preview,
20
+ })),
21
+ };
22
+ return JSON.stringify(output, null, 2);
23
+ }
24
+ /**
25
+ * Format workspaces list as JSON
26
+ */
27
+ export function formatWorkspacesJson(workspaces) {
28
+ const output = {
29
+ count: workspaces.length,
30
+ workspaces: workspaces.map((w) => ({
31
+ id: w.id,
32
+ path: w.path,
33
+ sessionCount: w.sessionCount,
34
+ })),
35
+ };
36
+ return JSON.stringify(output, null, 2);
37
+ }
38
+ /**
39
+ * Format a single session as JSON
40
+ */
41
+ export function formatSessionJson(session, workspacePath) {
42
+ const output = {
43
+ index: session.index,
44
+ id: session.id,
45
+ title: session.title,
46
+ createdAt: session.createdAt.toISOString(),
47
+ lastUpdatedAt: session.lastUpdatedAt.toISOString(),
48
+ messageCount: session.messageCount,
49
+ workspaceId: session.workspaceId,
50
+ workspacePath: workspacePath ?? null,
51
+ messages: session.messages.map((m) => ({
52
+ id: m.id,
53
+ role: m.role,
54
+ content: m.content,
55
+ timestamp: m.timestamp.toISOString(),
56
+ codeBlocks: m.codeBlocks.map((cb) => ({
57
+ language: cb.language,
58
+ content: cb.content,
59
+ startLine: cb.startLine,
60
+ })),
61
+ })),
62
+ };
63
+ return JSON.stringify(output, null, 2);
64
+ }
65
+ /**
66
+ * Format search results as JSON
67
+ */
68
+ export function formatSearchResultsJson(results, query) {
69
+ const output = {
70
+ query,
71
+ count: results.length,
72
+ totalMatches: results.reduce((sum, r) => sum + r.matchCount, 0),
73
+ results: results.map((r) => ({
74
+ index: r.index,
75
+ sessionId: r.sessionId,
76
+ workspacePath: r.workspacePath,
77
+ createdAt: r.createdAt.toISOString(),
78
+ matchCount: r.matchCount,
79
+ snippets: r.snippets.map((s) => ({
80
+ role: s.messageRole,
81
+ text: s.text,
82
+ matchPositions: s.matchPositions,
83
+ })),
84
+ })),
85
+ };
86
+ return JSON.stringify(output, null, 2);
87
+ }
88
+ /**
89
+ * Format export result as JSON
90
+ */
91
+ export function formatExportResultJson(exported) {
92
+ const output = {
93
+ count: exported.length,
94
+ files: exported,
95
+ };
96
+ return JSON.stringify(output, null, 2);
97
+ }
98
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/cli/formatters/json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Table/text output formatter for CLI with color support
3
+ */
4
+ import type { ChatSessionSummary, Workspace, ChatSession, SearchResult } from '../../core/types.js';
5
+ /**
6
+ * Check if output supports colors
7
+ */
8
+ export declare function supportsColor(): boolean;
9
+ /**
10
+ * Format sessions list as table
11
+ */
12
+ export declare function formatSessionsTable(sessions: ChatSessionSummary[], showIds?: boolean): string;
13
+ /**
14
+ * Format workspaces list as table
15
+ */
16
+ export declare function formatWorkspacesTable(workspaces: Workspace[]): string;
17
+ /**
18
+ * Format a single session with full messages
19
+ */
20
+ export declare function formatSessionDetail(session: ChatSession, workspacePath?: string, options?: {
21
+ short?: boolean;
22
+ fullThinking?: boolean;
23
+ fullTool?: boolean;
24
+ fullError?: boolean;
25
+ }): string;
26
+ /**
27
+ * Format search results
28
+ */
29
+ export declare function formatSearchResultsTable(results: SearchResult[], query: string): string;
30
+ /**
31
+ * Format export success message
32
+ */
33
+ export declare function formatExportSuccess(exported: {
34
+ index: number;
35
+ path: string;
36
+ }[]): string;
37
+ /**
38
+ * Format empty state message for no history
39
+ */
40
+ export declare function formatNoHistory(): string;
41
+ /**
42
+ * Format error message for Cursor not installed
43
+ */
44
+ export declare function formatCursorNotFound(searchPath: string): string;
45
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/cli/formatters/table.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEpG;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAQvC;AAmDD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAAE,OAAO,UAAQ,GAAG,MAAM,CAkD3F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAsBrE;AAiJD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EACpB,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7F,MAAM,CAsGR;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA6CvF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,CASvF;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAWxC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAc/D"}
@@ -0,0 +1,439 @@
1
+ /**
2
+ * Table/text output formatter for CLI with color support
3
+ */
4
+ import pc from 'picocolors';
5
+ /**
6
+ * Check if output supports colors
7
+ */
8
+ export function supportsColor() {
9
+ // Respect NO_COLOR environment variable
10
+ if (process.env['NO_COLOR'] !== undefined) {
11
+ return false;
12
+ }
13
+ // Check if stdout is a TTY
14
+ return process.stdout.isTTY === true;
15
+ }
16
+ /**
17
+ * Format a date for display
18
+ */
19
+ function formatDate(date) {
20
+ return date.toLocaleDateString('en-US', {
21
+ year: 'numeric',
22
+ month: 'short',
23
+ day: 'numeric',
24
+ });
25
+ }
26
+ /**
27
+ * Format a timestamp for display (time only)
28
+ */
29
+ function formatTime(date) {
30
+ return date.toLocaleTimeString('en-US', {
31
+ hour: '2-digit',
32
+ minute: '2-digit',
33
+ second: '2-digit',
34
+ });
35
+ }
36
+ /**
37
+ * Truncate string with ellipsis
38
+ */
39
+ function truncate(str, maxLength) {
40
+ if (str.length <= maxLength) {
41
+ return str;
42
+ }
43
+ return str.slice(0, maxLength - 3) + '...';
44
+ }
45
+ /**
46
+ * Truncate path from the beginning (keep the end which is more specific)
47
+ */
48
+ function truncatePath(path, maxLength) {
49
+ if (path.length <= maxLength) {
50
+ return path;
51
+ }
52
+ return '...' + path.slice(-(maxLength - 3));
53
+ }
54
+ /**
55
+ * Pad string to fixed width
56
+ */
57
+ function padRight(str, width) {
58
+ return str.padEnd(width);
59
+ }
60
+ /**
61
+ * Format sessions list as table
62
+ */
63
+ export function formatSessionsTable(sessions, showIds = false) {
64
+ if (sessions.length === 0) {
65
+ return pc.yellow('No chat sessions found.');
66
+ }
67
+ const lines = [];
68
+ // Header
69
+ if (showIds) {
70
+ lines.push(pc.bold(`${padRight('#', 4)} ${padRight('Date', 12)} ${padRight('Msgs', 5)} ${padRight('Workspace', 25)} ${padRight('Composer ID', 38)} Preview`));
71
+ lines.push(pc.dim('─'.repeat(130)));
72
+ }
73
+ else {
74
+ lines.push(pc.bold(`${padRight('#', 4)} ${padRight('Date', 12)} ${padRight('Messages', 8)} ${padRight('Workspace', 30)} Preview`));
75
+ lines.push(pc.dim('─'.repeat(100)));
76
+ }
77
+ // Rows
78
+ for (const session of sessions) {
79
+ const idx = pc.cyan(padRight(String(session.index), 4));
80
+ const date = padRight(formatDate(session.createdAt), 12);
81
+ if (showIds) {
82
+ const msgs = padRight(String(session.messageCount), 5);
83
+ const workspace = pc.dim(padRight(truncatePath(session.workspacePath, 25), 25));
84
+ const composerId = pc.gray(padRight(session.id, 38));
85
+ const preview = truncate(session.preview, 30);
86
+ lines.push(`${idx} ${date} ${msgs} ${workspace} ${composerId} ${preview}`);
87
+ }
88
+ else {
89
+ const msgs = padRight(String(session.messageCount), 8);
90
+ const workspace = pc.dim(padRight(truncatePath(session.workspacePath, 30), 30));
91
+ const preview = truncate(session.preview, 40);
92
+ lines.push(`${idx} ${date} ${msgs} ${workspace} ${preview}`);
93
+ }
94
+ }
95
+ lines.push('');
96
+ lines.push(pc.dim(`Showing ${sessions.length} session(s). Use "show <#>" to view details.`));
97
+ if (showIds) {
98
+ lines.push(pc.dim(`Composer IDs can be used with external tools for export.`));
99
+ }
100
+ return lines.join('\n');
101
+ }
102
+ /**
103
+ * Format workspaces list as table
104
+ */
105
+ export function formatWorkspacesTable(workspaces) {
106
+ if (workspaces.length === 0) {
107
+ return pc.yellow('No workspaces with chat history found.');
108
+ }
109
+ const lines = [];
110
+ // Header
111
+ lines.push(pc.bold(`${padRight('Sessions', 10)} Path`));
112
+ lines.push(pc.dim('─'.repeat(80)));
113
+ // Rows
114
+ for (const workspace of workspaces) {
115
+ const count = pc.cyan(padRight(String(workspace.sessionCount), 10));
116
+ const path = workspace.path;
117
+ lines.push(`${count} ${path}`);
118
+ }
119
+ lines.push('');
120
+ lines.push(pc.dim(`Found ${workspaces.length} workspace(s) with chat history.`));
121
+ return lines.join('\n');
122
+ }
123
+ /**
124
+ * Check if content is a tool call (formatted by storage layer)
125
+ */
126
+ function isToolCall(content) {
127
+ return content.startsWith('[Tool:');
128
+ }
129
+ /**
130
+ * Check if content is thinking/reasoning text
131
+ */
132
+ function isThinking(content) {
133
+ return content.startsWith('[Thinking]');
134
+ }
135
+ /**
136
+ * Check if content is an error message
137
+ */
138
+ function isError(content) {
139
+ return content.startsWith('[Error]');
140
+ }
141
+ /**
142
+ * Format error message with nice styling
143
+ */
144
+ function formatErrorDisplay(content, fullError) {
145
+ const text = content.replace('[Error]\n', '').trim();
146
+ const lines = [];
147
+ lines.push(pc.red(pc.bold('❌ Error')));
148
+ if (fullError) {
149
+ // Show full error
150
+ lines.push(pc.red(' ' + text));
151
+ }
152
+ else {
153
+ // Show truncated error (first 300 chars)
154
+ const truncated = text.slice(0, 300) + (text.length > 300 ? '...' : '');
155
+ lines.push(pc.red(' ' + truncated));
156
+ }
157
+ return lines.join('\n');
158
+ }
159
+ /**
160
+ * Format thinking text with nice styling
161
+ */
162
+ function formatThinkingDisplay(content, fullThinking) {
163
+ const text = content.replace('[Thinking]\n', '').trim();
164
+ const lines = [];
165
+ lines.push(pc.yellow(pc.bold('💭 Thinking')));
166
+ if (fullThinking) {
167
+ // Show full thinking text
168
+ lines.push(pc.dim(' ' + text));
169
+ }
170
+ else {
171
+ // Show truncated thinking text (default)
172
+ lines.push(pc.dim(' ' + text.slice(0, 200) + (text.length > 200 ? '...' : '')));
173
+ }
174
+ return lines.join('\n');
175
+ }
176
+ /**
177
+ * Format tool call content with nice styling
178
+ */
179
+ function formatToolCallDisplay(content, fullTool) {
180
+ const lines = content.split('\n');
181
+ const result = [];
182
+ let inDiffBlock = false;
183
+ let diffLineCount = 0;
184
+ const MAX_DIFF_LINES = 20; // Show first 20 lines of diff by default
185
+ for (const line of lines) {
186
+ if (line.startsWith('[Tool:')) {
187
+ // Tool header
188
+ const toolName = line.replace('[Tool:', '').replace(']', '').trim();
189
+ result.push(pc.magenta(pc.bold(`🔧 ${toolName}`)));
190
+ }
191
+ else if (line.startsWith('File:') || line.startsWith('Directory:') || line.startsWith('Command:') || line.startsWith('Target:')) {
192
+ // Target line - truncate command if not fullTool
193
+ if (line.startsWith('Command:') && !fullTool) {
194
+ const cmd = line.replace('Command:', '').trim();
195
+ const truncated = cmd.slice(0, 100) + (cmd.length > 100 ? '...' : '');
196
+ result.push(pc.cyan(' Command: ' + truncated));
197
+ }
198
+ else {
199
+ result.push(pc.cyan(' ' + line));
200
+ }
201
+ }
202
+ else if (line === '```diff') {
203
+ // Start of diff block
204
+ inDiffBlock = true;
205
+ diffLineCount = 0;
206
+ result.push(' ' + line);
207
+ }
208
+ else if (line === '```' && inDiffBlock) {
209
+ // End of diff block
210
+ inDiffBlock = false;
211
+ result.push(' ' + line);
212
+ }
213
+ else if (inDiffBlock) {
214
+ // Inside diff block
215
+ if (!fullTool && diffLineCount >= MAX_DIFF_LINES) {
216
+ // Skip additional lines and add truncation marker once
217
+ if (diffLineCount === MAX_DIFF_LINES) {
218
+ result.push(pc.dim(' ... (use --tool to see full diff)'));
219
+ diffLineCount++;
220
+ }
221
+ }
222
+ else {
223
+ // Color diff lines: red for removals, green for additions
224
+ if (line.startsWith('-')) {
225
+ result.push(' ' + pc.red(line));
226
+ }
227
+ else if (line.startsWith('+')) {
228
+ result.push(' ' + pc.green(line));
229
+ }
230
+ else {
231
+ result.push(' ' + pc.dim(line));
232
+ }
233
+ diffLineCount++;
234
+ }
235
+ }
236
+ else if (line.startsWith('Content:')) {
237
+ // Content preview
238
+ const preview = line.replace('Content:', '').trim();
239
+ if (fullTool) {
240
+ // Show full content
241
+ result.push(pc.dim(' Content: ') + pc.gray(preview));
242
+ }
243
+ else {
244
+ // Show truncated content (default: 100 chars)
245
+ result.push(pc.dim(' Content: ') + pc.gray(preview.slice(0, 100) + (preview.length > 100 ? '...' : '')));
246
+ }
247
+ }
248
+ else if (line.startsWith('Result:') || line.startsWith('Output:')) {
249
+ // Tool result/output preview
250
+ const prefix = line.startsWith('Result:') ? 'Result:' : 'Output:';
251
+ const preview = line.replace(prefix, '').trim();
252
+ if (fullTool) {
253
+ // Show full result
254
+ result.push(pc.dim(' ' + prefix + ' ') + pc.gray(preview));
255
+ }
256
+ else {
257
+ // Show truncated result (default: 300 chars)
258
+ result.push(pc.dim(' ' + prefix + ' ') + pc.gray(preview.slice(0, 300) + (preview.length > 300 ? '...' : '')));
259
+ }
260
+ }
261
+ else {
262
+ result.push(' ' + line);
263
+ }
264
+ }
265
+ return result.join('\n');
266
+ }
267
+ /**
268
+ * Format a single session with full messages
269
+ */
270
+ export function formatSessionDetail(session, workspacePath, options) {
271
+ const lines = [];
272
+ const { short = false, fullThinking = false, fullTool = false, fullError = false } = options ?? {};
273
+ // Header
274
+ lines.push(pc.bold(`Chat Session #${session.index}`));
275
+ lines.push(pc.dim('═'.repeat(60)));
276
+ lines.push('');
277
+ if (session.title) {
278
+ lines.push(`${pc.bold('Title:')} ${session.title}`);
279
+ }
280
+ lines.push(`${pc.bold('Date:')} ${formatDate(session.createdAt)}`);
281
+ if (workspacePath) {
282
+ lines.push(`${pc.bold('Workspace:')} ${workspacePath}`);
283
+ }
284
+ lines.push(`${pc.bold('Messages:')} ${session.messageCount}`);
285
+ lines.push('');
286
+ lines.push(pc.dim('─'.repeat(60)));
287
+ lines.push('');
288
+ // Messages - with consecutive duplicate folding
289
+ let i = 0;
290
+ while (i < session.messages.length) {
291
+ const message = session.messages[i];
292
+ const timestamps = [message.timestamp];
293
+ // Check for consecutive duplicates (same role and content)
294
+ let j = i + 1;
295
+ while (j < session.messages.length) {
296
+ const nextMsg = session.messages[j];
297
+ if (nextMsg.role === message.role && nextMsg.content === message.content) {
298
+ timestamps.push(nextMsg.timestamp);
299
+ j++;
300
+ }
301
+ else {
302
+ break;
303
+ }
304
+ }
305
+ // Format timestamps
306
+ const timestampDisplay = timestamps.length > 1
307
+ ? pc.dim(`${timestamps.map((t) => formatTime(t)).join(', ')} `) + pc.yellow(`(×${timestamps.length})`)
308
+ : pc.dim(formatTime(message.timestamp));
309
+ // Check if this is a tool call
310
+ if (isToolCall(message.content)) {
311
+ lines.push(`${pc.cyan(pc.bold('Tool:'))} ${timestampDisplay}`);
312
+ lines.push(formatToolCallDisplay(message.content, fullTool));
313
+ lines.push('');
314
+ lines.push(pc.dim('─'.repeat(40)));
315
+ lines.push('');
316
+ i = j;
317
+ continue;
318
+ }
319
+ // Check if this is an error message
320
+ if (isError(message.content)) {
321
+ lines.push(`${pc.red(pc.bold('Error:'))} ${timestampDisplay}`);
322
+ lines.push(formatErrorDisplay(message.content, fullError));
323
+ lines.push('');
324
+ lines.push(pc.dim('─'.repeat(40)));
325
+ lines.push('');
326
+ i = j;
327
+ continue;
328
+ }
329
+ // Check if this is thinking/reasoning
330
+ if (isThinking(message.content)) {
331
+ lines.push(`${pc.magenta(pc.bold('Thinking:'))} ${timestampDisplay}`);
332
+ lines.push(formatThinkingDisplay(message.content, fullThinking));
333
+ lines.push('');
334
+ lines.push(pc.dim('─'.repeat(40)));
335
+ lines.push('');
336
+ i = j;
337
+ continue;
338
+ }
339
+ const roleLabel = message.role === 'user'
340
+ ? `${pc.blue(pc.bold('You:'))} ${timestampDisplay}`
341
+ : `${pc.green(pc.bold('Assistant:'))} ${timestampDisplay}`;
342
+ lines.push(roleLabel);
343
+ lines.push('');
344
+ // Apply short mode truncation for user and assistant messages
345
+ if (short) {
346
+ const truncatedContent = truncate(message.content, 300);
347
+ lines.push(truncatedContent);
348
+ }
349
+ else {
350
+ lines.push(message.content);
351
+ }
352
+ lines.push('');
353
+ lines.push(pc.dim('─'.repeat(40)));
354
+ lines.push('');
355
+ i = j;
356
+ }
357
+ return lines.join('\n');
358
+ }
359
+ /**
360
+ * Format search results
361
+ */
362
+ export function formatSearchResultsTable(results, query) {
363
+ if (results.length === 0) {
364
+ return pc.yellow(`No results found for: "${query}"`);
365
+ }
366
+ const lines = [];
367
+ const totalMatches = results.reduce((sum, r) => sum + r.matchCount, 0);
368
+ lines.push(pc.bold(`Search results for "${query}"`));
369
+ lines.push(pc.dim(`Found ${totalMatches} match(es) in ${results.length} session(s)`));
370
+ lines.push('');
371
+ lines.push(pc.dim('─'.repeat(80)));
372
+ lines.push('');
373
+ for (const result of results) {
374
+ lines.push(`${pc.cyan(`#${result.index}`)} ${pc.dim(formatDate(result.createdAt))} ${pc.dim(result.workspacePath)}`);
375
+ lines.push(` ${pc.dim(`${result.matchCount} match(es)`)}`);
376
+ // Show first snippet with highlighting
377
+ if (result.snippets.length > 0) {
378
+ const snippet = result.snippets[0];
379
+ const roleLabel = snippet.messageRole === 'user' ? pc.blue('[You]') : pc.green('[AI]');
380
+ // Highlight matches in snippet
381
+ let highlighted = snippet.text;
382
+ // Apply highlights in reverse order to preserve positions
383
+ const sortedPositions = [...snippet.matchPositions].sort((a, b) => b[0] - a[0]);
384
+ for (const [start, end] of sortedPositions) {
385
+ const before = highlighted.slice(0, start);
386
+ const match = highlighted.slice(start, end);
387
+ const after = highlighted.slice(end);
388
+ highlighted = before + pc.bgYellow(pc.black(match)) + after;
389
+ }
390
+ lines.push(` ${roleLabel} ${highlighted}`);
391
+ }
392
+ lines.push('');
393
+ }
394
+ lines.push(pc.dim('Use --show <#> to view full session.'));
395
+ return lines.join('\n');
396
+ }
397
+ /**
398
+ * Format export success message
399
+ */
400
+ export function formatExportSuccess(exported) {
401
+ const lines = [];
402
+ lines.push(pc.green(`✓ Exported ${exported.length} session(s):`));
403
+ for (const { index, path } of exported) {
404
+ lines.push(` ${pc.cyan(`#${index}`)} → ${path}`);
405
+ }
406
+ return lines.join('\n');
407
+ }
408
+ /**
409
+ * Format empty state message for no history
410
+ */
411
+ export function formatNoHistory() {
412
+ const lines = [
413
+ pc.yellow('No chat history found.'),
414
+ '',
415
+ 'To start recording chat history:',
416
+ ' 1. Open a project in Cursor',
417
+ ' 2. Start a conversation with the AI assistant',
418
+ ' 3. Run this command again',
419
+ ];
420
+ return lines.join('\n');
421
+ }
422
+ /**
423
+ * Format error message for Cursor not installed
424
+ */
425
+ export function formatCursorNotFound(searchPath) {
426
+ const lines = [
427
+ pc.red('Cursor data not found.'),
428
+ '',
429
+ `Searched in: ${searchPath}`,
430
+ '',
431
+ 'Make sure Cursor is installed and has been used at least once.',
432
+ '',
433
+ 'You can specify a custom path with:',
434
+ ` ${pc.cyan('--data-path <path>')}`,
435
+ ` ${pc.cyan('CURSOR_DATA_PATH')} environment variable`,
436
+ ];
437
+ return lines.join('\n');
438
+ }
439
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/cli/formatters/table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI entry point for cursor-history
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;GAEG"}