claude-code-history 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +400 -0
  2. package/dist/cli/commands/export.d.ts +11 -0
  3. package/dist/cli/commands/export.d.ts.map +1 -0
  4. package/dist/cli/commands/export.js +119 -0
  5. package/dist/cli/commands/export.js.map +1 -0
  6. package/dist/cli/commands/list.d.ts +11 -0
  7. package/dist/cli/commands/list.d.ts.map +1 -0
  8. package/dist/cli/commands/list.js +79 -0
  9. package/dist/cli/commands/list.js.map +1 -0
  10. package/dist/cli/commands/migrate.d.ts +11 -0
  11. package/dist/cli/commands/migrate.d.ts.map +1 -0
  12. package/dist/cli/commands/migrate.js +144 -0
  13. package/dist/cli/commands/migrate.js.map +1 -0
  14. package/dist/cli/commands/search.d.ts +11 -0
  15. package/dist/cli/commands/search.d.ts.map +1 -0
  16. package/dist/cli/commands/search.js +94 -0
  17. package/dist/cli/commands/search.js.map +1 -0
  18. package/dist/cli/commands/view.d.ts +11 -0
  19. package/dist/cli/commands/view.d.ts.map +1 -0
  20. package/dist/cli/commands/view.js +67 -0
  21. package/dist/cli/commands/view.js.map +1 -0
  22. package/dist/cli/formatters/pager.d.ts +25 -0
  23. package/dist/cli/formatters/pager.d.ts.map +1 -0
  24. package/dist/cli/formatters/pager.js +119 -0
  25. package/dist/cli/formatters/pager.js.map +1 -0
  26. package/dist/cli/formatters/search.d.ts +38 -0
  27. package/dist/cli/formatters/search.d.ts.map +1 -0
  28. package/dist/cli/formatters/search.js +119 -0
  29. package/dist/cli/formatters/search.js.map +1 -0
  30. package/dist/cli/formatters/session.d.ts +24 -0
  31. package/dist/cli/formatters/session.d.ts.map +1 -0
  32. package/dist/cli/formatters/session.js +247 -0
  33. package/dist/cli/formatters/session.js.map +1 -0
  34. package/dist/cli/formatters/table.d.ts +25 -0
  35. package/dist/cli/formatters/table.d.ts.map +1 -0
  36. package/dist/cli/formatters/table.js +126 -0
  37. package/dist/cli/formatters/table.js.map +1 -0
  38. package/dist/cli/index.d.ts +14 -0
  39. package/dist/cli/index.d.ts.map +1 -0
  40. package/dist/cli/index.js +50 -0
  41. package/dist/cli/index.js.map +1 -0
  42. package/dist/cli/utils/config.d.ts +62 -0
  43. package/dist/cli/utils/config.d.ts.map +1 -0
  44. package/dist/cli/utils/config.js +65 -0
  45. package/dist/cli/utils/config.js.map +1 -0
  46. package/dist/cli/utils/errors.d.ts +86 -0
  47. package/dist/cli/utils/errors.d.ts.map +1 -0
  48. package/dist/cli/utils/errors.js +129 -0
  49. package/dist/cli/utils/errors.js.map +1 -0
  50. package/dist/cli/utils/output.d.ts +74 -0
  51. package/dist/cli/utils/output.d.ts.map +1 -0
  52. package/dist/cli/utils/output.js +113 -0
  53. package/dist/cli/utils/output.js.map +1 -0
  54. package/dist/lib/config.d.ts +44 -0
  55. package/dist/lib/config.d.ts.map +1 -0
  56. package/dist/lib/config.js +60 -0
  57. package/dist/lib/config.js.map +1 -0
  58. package/dist/lib/errors.d.ts +40 -0
  59. package/dist/lib/errors.d.ts.map +1 -0
  60. package/dist/lib/errors.js +61 -0
  61. package/dist/lib/errors.js.map +1 -0
  62. package/dist/lib/export.d.ts +70 -0
  63. package/dist/lib/export.d.ts.map +1 -0
  64. package/dist/lib/export.js +241 -0
  65. package/dist/lib/export.js.map +1 -0
  66. package/dist/lib/index.d.ts +16 -0
  67. package/dist/lib/index.d.ts.map +1 -0
  68. package/dist/lib/index.js +33 -0
  69. package/dist/lib/index.js.map +1 -0
  70. package/dist/lib/migrate.d.ts +50 -0
  71. package/dist/lib/migrate.d.ts.map +1 -0
  72. package/dist/lib/migrate.js +274 -0
  73. package/dist/lib/migrate.js.map +1 -0
  74. package/dist/lib/parser.d.ts +67 -0
  75. package/dist/lib/parser.d.ts.map +1 -0
  76. package/dist/lib/parser.js +321 -0
  77. package/dist/lib/parser.js.map +1 -0
  78. package/dist/lib/platform.d.ts +51 -0
  79. package/dist/lib/platform.d.ts.map +1 -0
  80. package/dist/lib/platform.js +94 -0
  81. package/dist/lib/platform.js.map +1 -0
  82. package/dist/lib/search.d.ts +39 -0
  83. package/dist/lib/search.d.ts.map +1 -0
  84. package/dist/lib/search.js +217 -0
  85. package/dist/lib/search.js.map +1 -0
  86. package/dist/lib/session.d.ts +59 -0
  87. package/dist/lib/session.d.ts.map +1 -0
  88. package/dist/lib/session.js +326 -0
  89. package/dist/lib/session.js.map +1 -0
  90. package/dist/lib/types.d.ts +280 -0
  91. package/dist/lib/types.d.ts.map +1 -0
  92. package/dist/lib/types.js +7 -0
  93. package/dist/lib/types.js.map +1 -0
  94. package/package.json +65 -0
@@ -0,0 +1,326 @@
1
+ /**
2
+ * Session discovery and retrieval for claude-code-history library.
3
+ *
4
+ * Provides functions to list, filter, and retrieve Claude Code sessions.
5
+ */
6
+ import { readdir, stat } from 'fs/promises';
7
+ import { join } from 'path';
8
+ import { resolveConfig, paginate, createPagination } from './config.js';
9
+ import { getProjectsPath, decodeProjectPath, extractSessionId, isAgentSessionFile, extractAgentId, isUUID, } from './platform.js';
10
+ import { parseSessionFile, parseSessionMetadata } from './parser.js';
11
+ import { DataNotFoundError, SessionNotFoundError } from './errors.js';
12
+ // =============================================================================
13
+ // Session Discovery
14
+ // =============================================================================
15
+ /**
16
+ * Check if Claude Code data directory exists.
17
+ * @param dataPath - Path to check
18
+ * @throws DataNotFoundError if directory doesn't exist
19
+ */
20
+ async function validateDataPath(dataPath) {
21
+ try {
22
+ const stats = await stat(dataPath);
23
+ if (!stats.isDirectory()) {
24
+ throw new DataNotFoundError(dataPath);
25
+ }
26
+ }
27
+ catch (error) {
28
+ if (error.code === 'ENOENT') {
29
+ throw new DataNotFoundError(dataPath);
30
+ }
31
+ throw error;
32
+ }
33
+ }
34
+ /**
35
+ * Discover all session files in the Claude Code data directory.
36
+ * @param config - Resolved configuration
37
+ * @returns Array of session info objects
38
+ */
39
+ async function discoverSessions(config) {
40
+ const projectsPath = getProjectsPath(config.dataPath);
41
+ const sessions = [];
42
+ // Check if projects directory exists
43
+ try {
44
+ await stat(projectsPath);
45
+ }
46
+ catch {
47
+ // No projects directory = no sessions
48
+ return [];
49
+ }
50
+ // Read all project directories
51
+ const projectDirs = await readdir(projectsPath);
52
+ for (const encodedPath of projectDirs) {
53
+ const projectDir = join(projectsPath, encodedPath);
54
+ // Skip if not a directory
55
+ try {
56
+ const dirStats = await stat(projectDir);
57
+ if (!dirStats.isDirectory())
58
+ continue;
59
+ }
60
+ catch {
61
+ continue;
62
+ }
63
+ // Decode project path
64
+ const projectPath = decodeProjectPath(encodedPath);
65
+ // Apply workspace filter if specified
66
+ if (config.workspace && projectPath !== config.workspace) {
67
+ continue;
68
+ }
69
+ // Read session files in this project
70
+ const files = await readdir(projectDir);
71
+ for (const filename of files) {
72
+ const sessionId = extractSessionId(filename);
73
+ if (!sessionId)
74
+ continue; // Skip non-session files
75
+ const filePath = join(projectDir, filename);
76
+ const isAgent = isAgentSessionFile(filename);
77
+ const agentId = isAgent ? extractAgentId(filename) : null;
78
+ // Get file modification time for sorting
79
+ try {
80
+ const fileStats = await stat(filePath);
81
+ sessions.push({
82
+ id: sessionId,
83
+ filePath,
84
+ projectPath,
85
+ encodedPath,
86
+ isAgent,
87
+ agentId,
88
+ modifiedTime: fileStats.mtime,
89
+ });
90
+ }
91
+ catch {
92
+ // Skip files we can't stat
93
+ continue;
94
+ }
95
+ }
96
+ }
97
+ return sessions;
98
+ }
99
+ /**
100
+ * Find agent sessions linked to a main session.
101
+ * @param _mainSessionId - The main session ID (reserved for future use)
102
+ * @param allSessions - All discovered sessions
103
+ * @returns Array of agent IDs linked to this session
104
+ */
105
+ function findLinkedAgentIds(_mainSessionId, allSessions) {
106
+ // Agent sessions in the same project directory with matching patterns
107
+ // For now, we return agent sessions from the same project
108
+ // A more sophisticated approach would parse the main session to find Task tool results
109
+ return allSessions
110
+ .filter((s) => s.isAgent && s.agentId !== null)
111
+ .map((s) => s.agentId);
112
+ }
113
+ // =============================================================================
114
+ // Session Listing
115
+ // =============================================================================
116
+ /**
117
+ * Build a SessionSummary from session info and metadata.
118
+ */
119
+ async function buildSessionSummary(info, allSessions) {
120
+ const { data: metadata } = await parseSessionMetadata(info.filePath);
121
+ // Find linked agent sessions (for main sessions only)
122
+ const agentIds = info.isAgent ? [] : findLinkedAgentIds(info.id, allSessions);
123
+ return {
124
+ id: info.id,
125
+ projectPath: info.projectPath,
126
+ summary: metadata.summary,
127
+ timestamp: metadata.firstTimestamp ?? info.modifiedTime,
128
+ lastActivityAt: metadata.lastTimestamp ?? info.modifiedTime,
129
+ messageCount: metadata.messageCount,
130
+ agentIds,
131
+ };
132
+ }
133
+ /**
134
+ * List all sessions with pagination.
135
+ *
136
+ * Sessions are sorted by most recent activity first (descending timestamp).
137
+ * Agent sessions are excluded from the main list (they're linked via agentIds).
138
+ *
139
+ * @param config - Optional configuration for filtering and pagination
140
+ * @returns Paginated list of session summaries
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * // List first 10 sessions
145
+ * const result = await listSessions({ limit: 10 });
146
+ *
147
+ * // List sessions for a specific workspace
148
+ * const result = await listSessions({ workspace: '/path/to/project' });
149
+ *
150
+ * // Paginate through results
151
+ * const page2 = await listSessions({ limit: 10, offset: 10 });
152
+ * ```
153
+ */
154
+ export async function listSessions(config) {
155
+ const resolved = resolveConfig(config);
156
+ // Validate data path exists
157
+ await validateDataPath(resolved.dataPath);
158
+ // Discover all sessions
159
+ const allSessions = await discoverSessions(resolved);
160
+ // Filter out agent sessions from main list (they're accessed via agentIds)
161
+ const mainSessions = allSessions.filter((s) => !s.isAgent);
162
+ // Sort by modification time descending (most recent first)
163
+ mainSessions.sort((a, b) => b.modifiedTime.getTime() - a.modifiedTime.getTime());
164
+ // Build summaries for paginated subset
165
+ const paginatedInfos = paginate(mainSessions, resolved);
166
+ const summaries = [];
167
+ for (const info of paginatedInfos) {
168
+ const summary = await buildSessionSummary(info, allSessions);
169
+ summaries.push(summary);
170
+ }
171
+ return {
172
+ data: summaries,
173
+ pagination: createPagination(mainSessions.length, resolved),
174
+ };
175
+ }
176
+ // =============================================================================
177
+ // Session Retrieval
178
+ // =============================================================================
179
+ /**
180
+ * Get a session by index or UUID.
181
+ *
182
+ * @param identifier - Zero-based index or session UUID
183
+ * @param config - Optional configuration
184
+ * @returns Full session with all messages
185
+ * @throws SessionNotFoundError if session doesn't exist
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * // Get most recent session by index
190
+ * const session = await getSession(0);
191
+ *
192
+ * // Get session by UUID
193
+ * const session = await getSession('abc123-def456-...');
194
+ *
195
+ * // Get session from specific workspace
196
+ * const session = await getSession(0, { workspace: '/path/to/project' });
197
+ * ```
198
+ */
199
+ export async function getSession(identifier, config) {
200
+ const resolved = resolveConfig(config);
201
+ // Validate data path exists
202
+ await validateDataPath(resolved.dataPath);
203
+ // Discover all sessions
204
+ const allSessions = await discoverSessions(resolved);
205
+ // Filter out agent sessions
206
+ const mainSessions = allSessions.filter((s) => !s.isAgent);
207
+ // Sort by modification time descending (most recent first)
208
+ mainSessions.sort((a, b) => b.modifiedTime.getTime() - a.modifiedTime.getTime());
209
+ let targetSession;
210
+ if (typeof identifier === 'number') {
211
+ // Get by index
212
+ if (identifier < 0 || identifier >= mainSessions.length) {
213
+ throw new SessionNotFoundError(identifier);
214
+ }
215
+ targetSession = mainSessions[identifier];
216
+ }
217
+ else {
218
+ // Get by UUID - auto-detect if it's a UUID or agent ID
219
+ if (isUUID(identifier)) {
220
+ targetSession = mainSessions.find((s) => s.id === identifier);
221
+ }
222
+ else if (identifier.startsWith('agent-')) {
223
+ // Looking for an agent session
224
+ targetSession = allSessions.find((s) => s.id === identifier);
225
+ }
226
+ else {
227
+ // Try partial match on UUID
228
+ targetSession = mainSessions.find((s) => s.id.startsWith(identifier));
229
+ }
230
+ }
231
+ // Check if session was found
232
+ if (!targetSession) {
233
+ throw new SessionNotFoundError(identifier);
234
+ }
235
+ // Parse full session
236
+ const { data: messages } = await parseSessionFile(targetSession.filePath);
237
+ // Extract metadata from messages
238
+ const metadata = extractSessionMetadataFromMessages(messages, targetSession);
239
+ // Find linked agent IDs
240
+ const agentIds = targetSession.isAgent ? [] : findLinkedAgentIds(targetSession.id, allSessions);
241
+ return {
242
+ id: targetSession.id,
243
+ encodedPath: targetSession.encodedPath,
244
+ projectPath: targetSession.projectPath,
245
+ summary: metadata.summary,
246
+ timestamp: metadata.timestamp,
247
+ lastActivityAt: metadata.lastActivityAt,
248
+ messageCount: messages.filter((m) => m.type === 'user' || m.type === 'assistant').length,
249
+ version: metadata.version,
250
+ gitBranch: metadata.gitBranch,
251
+ agentIds,
252
+ messages,
253
+ };
254
+ }
255
+ /**
256
+ * Extract metadata from parsed messages.
257
+ */
258
+ function extractSessionMetadataFromMessages(messages, info) {
259
+ let summary = null;
260
+ const version = '';
261
+ let gitBranch = null;
262
+ let firstTimestamp = null;
263
+ let lastTimestamp = null;
264
+ for (const msg of messages) {
265
+ // Extract summary
266
+ if (msg.type === 'summary') {
267
+ summary = msg.summary;
268
+ }
269
+ // Track timestamps
270
+ if (msg.type === 'user' || msg.type === 'assistant') {
271
+ if (!firstTimestamp || msg.timestamp < firstTimestamp) {
272
+ firstTimestamp = msg.timestamp;
273
+ }
274
+ if (!lastTimestamp || msg.timestamp > lastTimestamp) {
275
+ lastTimestamp = msg.timestamp;
276
+ }
277
+ // Extract git branch from user messages
278
+ if (msg.type === 'user') {
279
+ gitBranch ??= msg.gitBranch;
280
+ }
281
+ }
282
+ }
283
+ return {
284
+ summary,
285
+ timestamp: firstTimestamp ?? info.modifiedTime,
286
+ lastActivityAt: lastTimestamp ?? info.modifiedTime,
287
+ version,
288
+ gitBranch,
289
+ };
290
+ }
291
+ /**
292
+ * Get an agent session by ID.
293
+ *
294
+ * @param agentId - Agent ID (e.g., 'abc1234' or 'agent-abc1234')
295
+ * @param config - Optional configuration
296
+ * @returns Full agent session with all messages
297
+ * @throws SessionNotFoundError if agent session doesn't exist
298
+ */
299
+ export async function getAgentSession(agentId, config) {
300
+ // Normalize agent ID format
301
+ const normalizedId = agentId.startsWith('agent-') ? agentId : `agent-${agentId}`;
302
+ const resolved = resolveConfig(config);
303
+ await validateDataPath(resolved.dataPath);
304
+ const allSessions = await discoverSessions(resolved);
305
+ const agentSession = allSessions.find((s) => s.id === normalizedId);
306
+ if (!agentSession) {
307
+ throw new SessionNotFoundError(agentId);
308
+ }
309
+ // Parse full session
310
+ const { data: messages } = await parseSessionFile(agentSession.filePath);
311
+ const metadata = extractSessionMetadataFromMessages(messages, agentSession);
312
+ return {
313
+ id: agentSession.id,
314
+ encodedPath: agentSession.encodedPath,
315
+ projectPath: agentSession.projectPath,
316
+ summary: metadata.summary,
317
+ timestamp: metadata.timestamp,
318
+ lastActivityAt: metadata.lastActivityAt,
319
+ messageCount: messages.filter((m) => m.type === 'user' || m.type === 'assistant').length,
320
+ version: metadata.version,
321
+ gitBranch: metadata.gitBranch,
322
+ agentIds: [],
323
+ messages,
324
+ };
325
+ }
326
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Core Library Types
3
+ *
4
+ * TypeScript interfaces for claude-code-history library.
5
+ */
6
+ /**
7
+ * Configuration options for library functions.
8
+ */
9
+ export interface LibraryConfig {
10
+ /** Custom Claude Code data directory path. Auto-detected if not provided. */
11
+ dataPath?: string;
12
+ /** Filter sessions by workspace/project path. */
13
+ workspace?: string;
14
+ /** Maximum number of results to return. Default: 50 */
15
+ limit?: number;
16
+ /** Number of results to skip (for pagination). Default: 0 */
17
+ offset?: number;
18
+ /** Number of context lines for search results. Default: 2 */
19
+ context?: number;
20
+ }
21
+ /**
22
+ * Lightweight session metadata for listing.
23
+ */
24
+ export interface SessionSummary {
25
+ /** Session UUID */
26
+ id: string;
27
+ /** Decoded project path (e.g., /Users/name/project) */
28
+ projectPath: string;
29
+ /** Human-readable session title */
30
+ summary: string | null;
31
+ /** Session start time */
32
+ timestamp: Date;
33
+ /** Most recent message time */
34
+ lastActivityAt: Date;
35
+ /** Total message count */
36
+ messageCount: number;
37
+ /** Linked agent session IDs */
38
+ agentIds: string[];
39
+ }
40
+ /**
41
+ * Full session with all messages.
42
+ */
43
+ export interface Session extends SessionSummary {
44
+ /** Encoded directory name */
45
+ encodedPath: string;
46
+ /** Claude Code version */
47
+ version: string;
48
+ /** Git branch at session start */
49
+ gitBranch: string | null;
50
+ /** All messages in the session */
51
+ messages: Message[];
52
+ }
53
+ /** Message type discriminator */
54
+ export type MessageType = 'user' | 'assistant' | 'summary' | 'file-history-snapshot';
55
+ /**
56
+ * Base message structure.
57
+ */
58
+ export interface BaseMessage {
59
+ /** Unique message identifier */
60
+ uuid: string;
61
+ /** Parent message UUID (for threading) */
62
+ parentUuid: string | null;
63
+ /** Message type discriminator */
64
+ type: MessageType;
65
+ /** When message was created */
66
+ timestamp: Date;
67
+ }
68
+ /**
69
+ * User message or tool result.
70
+ */
71
+ export interface UserMessage extends BaseMessage {
72
+ type: 'user';
73
+ role: 'user';
74
+ content: string | ToolResultContent[];
75
+ cwd: string;
76
+ gitBranch: string | null;
77
+ isSidechain: boolean;
78
+ }
79
+ /**
80
+ * Assistant (Claude) response.
81
+ */
82
+ export interface AssistantMessage extends BaseMessage {
83
+ type: 'assistant';
84
+ role: 'assistant';
85
+ model: string;
86
+ content: AssistantContent[];
87
+ stopReason: string | null;
88
+ usage: TokenUsage;
89
+ }
90
+ /**
91
+ * Session summary entry.
92
+ */
93
+ export interface SummaryMessage extends BaseMessage {
94
+ type: 'summary';
95
+ summary: string;
96
+ leafUuid: string;
97
+ }
98
+ /**
99
+ * File history snapshot entry.
100
+ */
101
+ export interface FileHistorySnapshotMessage extends BaseMessage {
102
+ type: 'file-history-snapshot';
103
+ messageId: string;
104
+ snapshot: FileSnapshot;
105
+ }
106
+ /** Union of all message types */
107
+ export type Message = UserMessage | AssistantMessage | SummaryMessage | FileHistorySnapshotMessage;
108
+ /** Text content block */
109
+ export interface TextContent {
110
+ type: 'text';
111
+ text: string;
112
+ }
113
+ /** Tool use (invocation) content */
114
+ export interface ToolUseContent {
115
+ type: 'tool_use';
116
+ id: string;
117
+ name: string;
118
+ input: Record<string, unknown>;
119
+ }
120
+ /** Thinking/reasoning content */
121
+ export interface ThinkingContent {
122
+ type: 'thinking';
123
+ thinking: string;
124
+ }
125
+ /** Union of assistant content types */
126
+ export type AssistantContent = TextContent | ToolUseContent | ThinkingContent;
127
+ /** Tool result content */
128
+ export interface ToolResultContent {
129
+ type: 'tool_result';
130
+ tool_use_id: string;
131
+ content: string;
132
+ is_error?: boolean;
133
+ }
134
+ /** Token usage metrics */
135
+ export interface TokenUsage {
136
+ inputTokens: number;
137
+ outputTokens: number;
138
+ cacheCreationInputTokens: number;
139
+ cacheReadInputTokens: number;
140
+ }
141
+ /** File snapshot for history tracking */
142
+ export interface FileSnapshot {
143
+ messageId: string;
144
+ timestamp: Date;
145
+ trackedFileBackups: Record<string, FileBackup>;
146
+ }
147
+ /** Individual file backup entry */
148
+ export interface FileBackup {
149
+ backupFileName: string;
150
+ version: number;
151
+ backupTime: Date;
152
+ }
153
+ /** Pagination metadata */
154
+ export interface Pagination {
155
+ /** Total number of matching items */
156
+ total: number;
157
+ /** Items per page */
158
+ limit: number;
159
+ /** Current offset */
160
+ offset: number;
161
+ /** Whether more results exist */
162
+ hasMore: boolean;
163
+ }
164
+ /** Paginated result wrapper */
165
+ export interface PaginatedResult<T> {
166
+ /** Result items */
167
+ data: T[];
168
+ /** Pagination metadata */
169
+ pagination: Pagination;
170
+ }
171
+ /** Search result match */
172
+ export interface SearchMatch {
173
+ /** Session containing the match */
174
+ sessionId: string;
175
+ /** Session summary for context */
176
+ sessionSummary: string | null;
177
+ /** Project path */
178
+ projectPath: string;
179
+ /** Message UUID containing match */
180
+ messageUuid: string;
181
+ /** Message type (user/assistant) */
182
+ messageType: 'user' | 'assistant';
183
+ /** Matched text */
184
+ match: string;
185
+ /** Surrounding context lines */
186
+ context: string[];
187
+ /** Line number in message content */
188
+ lineNumber: number;
189
+ }
190
+ /** Migration configuration for specific sessions */
191
+ export interface MigrateConfig {
192
+ /** Session(s) to migrate - index or UUID, single or array */
193
+ sessions: number | string | (number | string)[];
194
+ /** Destination workspace path */
195
+ destination: string;
196
+ /** Migration mode. Default: 'copy' */
197
+ mode?: 'copy' | 'move';
198
+ }
199
+ /** Migration configuration for entire workspace */
200
+ export interface MigrateWorkspaceConfig {
201
+ /** Source workspace path */
202
+ source: string;
203
+ /** Destination workspace path */
204
+ destination: string;
205
+ /** Migration mode. Default: 'copy' */
206
+ mode?: 'copy' | 'move';
207
+ }
208
+ /** Migration error detail */
209
+ export interface MigrateError {
210
+ sessionId: string;
211
+ error: string;
212
+ }
213
+ /** Migration result */
214
+ export interface MigrateResult {
215
+ /** Number of successfully migrated sessions */
216
+ successCount: number;
217
+ /** Number of failed migrations */
218
+ failedCount: number;
219
+ /** Error details for failed migrations */
220
+ errors: MigrateError[];
221
+ }
222
+ /** Raw JSONL entry from Claude Code session file */
223
+ export interface RawSessionEntry {
224
+ type: string;
225
+ uuid?: string;
226
+ parentUuid?: string | null;
227
+ timestamp?: string;
228
+ sessionId?: string;
229
+ agentId?: string;
230
+ cwd?: string;
231
+ gitBranch?: string | null;
232
+ version?: string;
233
+ userType?: string;
234
+ isSidechain?: boolean;
235
+ isMeta?: boolean;
236
+ message?: RawMessage;
237
+ summary?: string;
238
+ leafUuid?: string;
239
+ messageId?: string;
240
+ snapshot?: RawFileSnapshot;
241
+ }
242
+ /** Raw message from JSONL */
243
+ export interface RawMessage {
244
+ role: string;
245
+ model?: string;
246
+ id?: string;
247
+ type?: string;
248
+ content: unknown;
249
+ stop_reason?: string | null;
250
+ usage?: RawTokenUsage;
251
+ }
252
+ /** Raw token usage from JSONL */
253
+ export interface RawTokenUsage {
254
+ input_tokens: number;
255
+ output_tokens: number;
256
+ cache_creation_input_tokens: number;
257
+ cache_read_input_tokens: number;
258
+ }
259
+ /** Raw file snapshot from JSONL */
260
+ export interface RawFileSnapshot {
261
+ messageId: string;
262
+ timestamp: string;
263
+ trackedFileBackups: Record<string, {
264
+ backupFileName: string;
265
+ version: number;
266
+ backupTime: string;
267
+ }>;
268
+ }
269
+ /** Parse result with warnings */
270
+ export interface ParseResult<T> {
271
+ data: T;
272
+ warnings: ParseWarning[];
273
+ }
274
+ /** Parse warning for invalid lines */
275
+ export interface ParseWarning {
276
+ line: number;
277
+ error: string;
278
+ content?: string;
279
+ }
280
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Core Library Types
3
+ *
4
+ * TypeScript interfaces for claude-code-history library.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}