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.
- package/README.md +400 -0
- package/dist/cli/commands/export.d.ts +11 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +119 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/list.d.ts +11 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +79 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/migrate.d.ts +11 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +144 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/search.d.ts +11 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +94 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/view.d.ts +11 -0
- package/dist/cli/commands/view.d.ts.map +1 -0
- package/dist/cli/commands/view.js +67 -0
- package/dist/cli/commands/view.js.map +1 -0
- package/dist/cli/formatters/pager.d.ts +25 -0
- package/dist/cli/formatters/pager.d.ts.map +1 -0
- package/dist/cli/formatters/pager.js +119 -0
- package/dist/cli/formatters/pager.js.map +1 -0
- package/dist/cli/formatters/search.d.ts +38 -0
- package/dist/cli/formatters/search.d.ts.map +1 -0
- package/dist/cli/formatters/search.js +119 -0
- package/dist/cli/formatters/search.js.map +1 -0
- package/dist/cli/formatters/session.d.ts +24 -0
- package/dist/cli/formatters/session.d.ts.map +1 -0
- package/dist/cli/formatters/session.js +247 -0
- package/dist/cli/formatters/session.js.map +1 -0
- package/dist/cli/formatters/table.d.ts +25 -0
- package/dist/cli/formatters/table.d.ts.map +1 -0
- package/dist/cli/formatters/table.js +126 -0
- package/dist/cli/formatters/table.js.map +1 -0
- package/dist/cli/index.d.ts +14 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +50 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/utils/config.d.ts +62 -0
- package/dist/cli/utils/config.d.ts.map +1 -0
- package/dist/cli/utils/config.js +65 -0
- package/dist/cli/utils/config.js.map +1 -0
- package/dist/cli/utils/errors.d.ts +86 -0
- package/dist/cli/utils/errors.d.ts.map +1 -0
- package/dist/cli/utils/errors.js +129 -0
- package/dist/cli/utils/errors.js.map +1 -0
- package/dist/cli/utils/output.d.ts +74 -0
- package/dist/cli/utils/output.d.ts.map +1 -0
- package/dist/cli/utils/output.js +113 -0
- package/dist/cli/utils/output.js.map +1 -0
- package/dist/lib/config.d.ts +44 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +60 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/errors.d.ts +40 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +61 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/export.d.ts +70 -0
- package/dist/lib/export.d.ts.map +1 -0
- package/dist/lib/export.js +241 -0
- package/dist/lib/export.js.map +1 -0
- package/dist/lib/index.d.ts +16 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +33 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/migrate.d.ts +50 -0
- package/dist/lib/migrate.d.ts.map +1 -0
- package/dist/lib/migrate.js +274 -0
- package/dist/lib/migrate.js.map +1 -0
- package/dist/lib/parser.d.ts +67 -0
- package/dist/lib/parser.d.ts.map +1 -0
- package/dist/lib/parser.js +321 -0
- package/dist/lib/parser.js.map +1 -0
- package/dist/lib/platform.d.ts +51 -0
- package/dist/lib/platform.d.ts.map +1 -0
- package/dist/lib/platform.js +94 -0
- package/dist/lib/platform.js.map +1 -0
- package/dist/lib/search.d.ts +39 -0
- package/dist/lib/search.d.ts.map +1 -0
- package/dist/lib/search.js +217 -0
- package/dist/lib/search.js.map +1 -0
- package/dist/lib/session.d.ts +59 -0
- package/dist/lib/session.d.ts.map +1 -0
- package/dist/lib/session.js +326 -0
- package/dist/lib/session.js.map +1 -0
- package/dist/lib/types.d.ts +280 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +7 -0
- package/dist/lib/types.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/lib/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform detection and path utilities for claude-code-history library.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Get the default Claude Code data directory path for the current platform.
|
|
6
|
+
* @returns Absolute path to ~/.claude/ directory
|
|
7
|
+
*/
|
|
8
|
+
export declare function getDefaultDataPath(): string;
|
|
9
|
+
/**
|
|
10
|
+
* Get the projects directory within Claude Code data.
|
|
11
|
+
* @param dataPath - Base data directory path
|
|
12
|
+
* @returns Path to projects directory
|
|
13
|
+
*/
|
|
14
|
+
export declare function getProjectsPath(dataPath: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Encode a project path to Claude Code's directory name format.
|
|
17
|
+
* Replaces path separators with hyphens.
|
|
18
|
+
* @example
|
|
19
|
+
* encodeProjectPath('/Users/name/project') // '-Users-name-project'
|
|
20
|
+
*/
|
|
21
|
+
export declare function encodeProjectPath(projectPath: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Decode a Claude Code encoded directory name back to a project path.
|
|
24
|
+
* @example
|
|
25
|
+
* decodeProjectPath('-Users-name-project') // '/Users/name/project'
|
|
26
|
+
*/
|
|
27
|
+
export declare function decodeProjectPath(encodedPath: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Check if a string is a valid UUID format.
|
|
30
|
+
* @param value - String to check
|
|
31
|
+
* @returns true if the string matches UUID format
|
|
32
|
+
*/
|
|
33
|
+
export declare function isUUID(value: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Extract session ID from a session filename.
|
|
36
|
+
* @param filename - Filename like 'uuid.jsonl' or 'agent-id.jsonl'
|
|
37
|
+
* @returns Session ID or null if not a valid session file
|
|
38
|
+
*/
|
|
39
|
+
export declare function extractSessionId(filename: string): string | null;
|
|
40
|
+
/**
|
|
41
|
+
* Check if a filename is an agent session file.
|
|
42
|
+
* @param filename - Filename to check
|
|
43
|
+
*/
|
|
44
|
+
export declare function isAgentSessionFile(filename: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Extract agent ID from an agent session filename.
|
|
47
|
+
* @param filename - Filename like 'agent-abc1234.jsonl'
|
|
48
|
+
* @returns Agent ID or null
|
|
49
|
+
*/
|
|
50
|
+
export declare function extractAgentId(filename: string): string | null;
|
|
51
|
+
//# sourceMappingURL=platform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/lib/platform.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAO7D;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAG7C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM9D"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform detection and path utilities for claude-code-history library.
|
|
3
|
+
*/
|
|
4
|
+
import { homedir } from 'os';
|
|
5
|
+
import { join } from 'path';
|
|
6
|
+
/**
|
|
7
|
+
* Get the default Claude Code data directory path for the current platform.
|
|
8
|
+
* @returns Absolute path to ~/.claude/ directory
|
|
9
|
+
*/
|
|
10
|
+
export function getDefaultDataPath() {
|
|
11
|
+
return join(homedir(), '.claude');
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get the projects directory within Claude Code data.
|
|
15
|
+
* @param dataPath - Base data directory path
|
|
16
|
+
* @returns Path to projects directory
|
|
17
|
+
*/
|
|
18
|
+
export function getProjectsPath(dataPath) {
|
|
19
|
+
return join(dataPath, 'projects');
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Encode a project path to Claude Code's directory name format.
|
|
23
|
+
* Replaces path separators with hyphens.
|
|
24
|
+
* @example
|
|
25
|
+
* encodeProjectPath('/Users/name/project') // '-Users-name-project'
|
|
26
|
+
*/
|
|
27
|
+
export function encodeProjectPath(projectPath) {
|
|
28
|
+
// Remove trailing slashes and encode
|
|
29
|
+
const normalized = projectPath.replace(/\/+$/, '');
|
|
30
|
+
// Replace all forward slashes with hyphens
|
|
31
|
+
return normalized.replace(/\//g, '-');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Decode a Claude Code encoded directory name back to a project path.
|
|
35
|
+
* @example
|
|
36
|
+
* decodeProjectPath('-Users-name-project') // '/Users/name/project'
|
|
37
|
+
*/
|
|
38
|
+
export function decodeProjectPath(encodedPath) {
|
|
39
|
+
// Handle the leading hyphen which represents root /
|
|
40
|
+
if (encodedPath.startsWith('-')) {
|
|
41
|
+
return encodedPath.replace(/-/g, '/');
|
|
42
|
+
}
|
|
43
|
+
// Windows paths don't start with /
|
|
44
|
+
return encodedPath.replace(/-/g, '/');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Check if a string is a valid UUID format.
|
|
48
|
+
* @param value - String to check
|
|
49
|
+
* @returns true if the string matches UUID format
|
|
50
|
+
*/
|
|
51
|
+
export function isUUID(value) {
|
|
52
|
+
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
53
|
+
return uuidRegex.test(value);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Extract session ID from a session filename.
|
|
57
|
+
* @param filename - Filename like 'uuid.jsonl' or 'agent-id.jsonl'
|
|
58
|
+
* @returns Session ID or null if not a valid session file
|
|
59
|
+
*/
|
|
60
|
+
export function extractSessionId(filename) {
|
|
61
|
+
if (!filename.endsWith('.jsonl')) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
const baseName = filename.slice(0, -6); // Remove .jsonl
|
|
65
|
+
// Check if it's an agent session
|
|
66
|
+
if (baseName.startsWith('agent-')) {
|
|
67
|
+
return baseName; // Return full 'agent-xxx' as ID
|
|
68
|
+
}
|
|
69
|
+
// Check if it's a UUID session
|
|
70
|
+
if (isUUID(baseName)) {
|
|
71
|
+
return baseName;
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Check if a filename is an agent session file.
|
|
77
|
+
* @param filename - Filename to check
|
|
78
|
+
*/
|
|
79
|
+
export function isAgentSessionFile(filename) {
|
|
80
|
+
return filename.startsWith('agent-') && filename.endsWith('.jsonl');
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Extract agent ID from an agent session filename.
|
|
84
|
+
* @param filename - Filename like 'agent-abc1234.jsonl'
|
|
85
|
+
* @returns Agent ID or null
|
|
86
|
+
*/
|
|
87
|
+
export function extractAgentId(filename) {
|
|
88
|
+
if (!isAgentSessionFile(filename)) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
// Remove 'agent-' prefix and '.jsonl' suffix
|
|
92
|
+
return filename.slice(6, -6);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/lib/platform.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,qCAAqC;IACrC,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnD,2CAA2C;IAC3C,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,oDAAoD;IACpD,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IACD,mCAAmC;IACnC,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,MAAM,SAAS,GAAG,iEAAiE,CAAC;IACpF,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB;IAExD,iCAAiC;IACjC,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC,CAAC,gCAAgC;IACnD,CAAC;IAED,+BAA+B;IAC/B,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACtE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,6CAA6C;IAC7C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search functionality for claude-code-history library.
|
|
3
|
+
*
|
|
4
|
+
* Provides text search across all sessions with context.
|
|
5
|
+
*/
|
|
6
|
+
import type { LibraryConfig, SearchMatch, PaginatedResult } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Search across all sessions for a query string.
|
|
9
|
+
*
|
|
10
|
+
* Performs case-insensitive substring search across all message content.
|
|
11
|
+
* Returns matches with surrounding context lines.
|
|
12
|
+
*
|
|
13
|
+
* @param query - Search query (case-insensitive)
|
|
14
|
+
* @param config - Optional configuration for context lines and pagination
|
|
15
|
+
* @returns Paginated list of search matches
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* // Basic search
|
|
20
|
+
* const results = await searchSessions('TypeScript');
|
|
21
|
+
*
|
|
22
|
+
* // Search with more context
|
|
23
|
+
* const results = await searchSessions('error', { context: 5 });
|
|
24
|
+
*
|
|
25
|
+
* // Search in specific workspace
|
|
26
|
+
* const results = await searchSessions('bug', { workspace: '/my/project' });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function searchSessions(query: string, config?: LibraryConfig): Promise<PaginatedResult<SearchMatch>>;
|
|
30
|
+
/**
|
|
31
|
+
* Search within a single session.
|
|
32
|
+
*
|
|
33
|
+
* @param sessionId - Session ID or index to search
|
|
34
|
+
* @param query - Search query (case-insensitive)
|
|
35
|
+
* @param config - Optional configuration
|
|
36
|
+
* @returns Array of matches within the session
|
|
37
|
+
*/
|
|
38
|
+
export declare function searchInSession(sessionId: string | number, query: string, config?: LibraryConfig): Promise<SearchMatch[]>;
|
|
39
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/lib/search.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EAIX,eAAe,EAChB,MAAM,YAAY,CAAC;AAkKpB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAmDvC;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,EAAE,CAAC,CA2BxB"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search functionality for claude-code-history library.
|
|
3
|
+
*
|
|
4
|
+
* Provides text search across all sessions with context.
|
|
5
|
+
*/
|
|
6
|
+
import { resolveConfig, paginate, createPagination } from './config.js';
|
|
7
|
+
import { listSessions, getSession } from './session.js';
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// Text Extraction
|
|
10
|
+
// =============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Extract searchable text from assistant content.
|
|
13
|
+
*/
|
|
14
|
+
function extractAssistantText(content) {
|
|
15
|
+
const texts = [];
|
|
16
|
+
for (const block of content) {
|
|
17
|
+
switch (block.type) {
|
|
18
|
+
case 'text':
|
|
19
|
+
texts.push(block.text);
|
|
20
|
+
break;
|
|
21
|
+
case 'thinking':
|
|
22
|
+
texts.push(block.thinking);
|
|
23
|
+
break;
|
|
24
|
+
case 'tool_use':
|
|
25
|
+
// Include tool name and stringified input for searchability
|
|
26
|
+
texts.push(`Tool: ${block.name}`);
|
|
27
|
+
texts.push(JSON.stringify(block.input));
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return texts;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Extract searchable text from user content.
|
|
35
|
+
*/
|
|
36
|
+
function extractUserText(content) {
|
|
37
|
+
if (typeof content === 'string') {
|
|
38
|
+
return [content];
|
|
39
|
+
}
|
|
40
|
+
// Tool results
|
|
41
|
+
return content.map((result) => result.content);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Extract all searchable text from a message.
|
|
45
|
+
*/
|
|
46
|
+
function extractMessageText(message) {
|
|
47
|
+
switch (message.type) {
|
|
48
|
+
case 'user':
|
|
49
|
+
return extractUserText(message.content);
|
|
50
|
+
case 'assistant':
|
|
51
|
+
return extractAssistantText(message.content);
|
|
52
|
+
case 'summary':
|
|
53
|
+
return [message.summary];
|
|
54
|
+
case 'file-history-snapshot':
|
|
55
|
+
// Not searchable
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// =============================================================================
|
|
60
|
+
// Context Extraction
|
|
61
|
+
// =============================================================================
|
|
62
|
+
/**
|
|
63
|
+
* Extract context lines around a match.
|
|
64
|
+
* @param text - Full text to search in
|
|
65
|
+
* @param matchIndex - Character index of match start
|
|
66
|
+
* @param contextLines - Number of lines before/after to include
|
|
67
|
+
* @returns Array of context lines and line number of match
|
|
68
|
+
*/
|
|
69
|
+
function extractContext(text, matchIndex, contextLines) {
|
|
70
|
+
const lines = text.split('\n');
|
|
71
|
+
let charCount = 0;
|
|
72
|
+
let matchLineIndex = 0;
|
|
73
|
+
// Find which line contains the match
|
|
74
|
+
for (let i = 0; i < lines.length; i++) {
|
|
75
|
+
const lineLength = (lines[i]?.length ?? 0) + 1; // +1 for newline
|
|
76
|
+
if (charCount + lineLength > matchIndex) {
|
|
77
|
+
matchLineIndex = i;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
charCount += lineLength;
|
|
81
|
+
}
|
|
82
|
+
// Extract context lines
|
|
83
|
+
const startLine = Math.max(0, matchLineIndex - contextLines);
|
|
84
|
+
const endLine = Math.min(lines.length - 1, matchLineIndex + contextLines);
|
|
85
|
+
const context = lines.slice(startLine, endLine + 1);
|
|
86
|
+
return {
|
|
87
|
+
context,
|
|
88
|
+
lineNumber: matchLineIndex + 1, // 1-based line number
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
// =============================================================================
|
|
92
|
+
// Search Implementation
|
|
93
|
+
// =============================================================================
|
|
94
|
+
/**
|
|
95
|
+
* Search for matches within a single message.
|
|
96
|
+
*/
|
|
97
|
+
function searchInMessage(message, query, sessionId, sessionSummary, projectPath, contextLines) {
|
|
98
|
+
const matches = [];
|
|
99
|
+
const lowerQuery = query.toLowerCase();
|
|
100
|
+
// Only search user and assistant messages
|
|
101
|
+
if (message.type !== 'user' && message.type !== 'assistant') {
|
|
102
|
+
return matches;
|
|
103
|
+
}
|
|
104
|
+
const textBlocks = extractMessageText(message);
|
|
105
|
+
for (const text of textBlocks) {
|
|
106
|
+
const lowerText = text.toLowerCase();
|
|
107
|
+
let searchIndex = 0;
|
|
108
|
+
// Find all occurrences
|
|
109
|
+
while (true) {
|
|
110
|
+
const matchIndex = lowerText.indexOf(lowerQuery, searchIndex);
|
|
111
|
+
if (matchIndex === -1)
|
|
112
|
+
break;
|
|
113
|
+
// Extract the actual matched text (preserving case)
|
|
114
|
+
const matchedText = text.slice(matchIndex, matchIndex + query.length);
|
|
115
|
+
// Extract context
|
|
116
|
+
const { context, lineNumber } = extractContext(text, matchIndex, contextLines);
|
|
117
|
+
matches.push({
|
|
118
|
+
sessionId,
|
|
119
|
+
sessionSummary,
|
|
120
|
+
projectPath,
|
|
121
|
+
messageUuid: message.uuid,
|
|
122
|
+
messageType: message.type,
|
|
123
|
+
match: matchedText,
|
|
124
|
+
context,
|
|
125
|
+
lineNumber,
|
|
126
|
+
});
|
|
127
|
+
searchIndex = matchIndex + 1;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return matches;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Search across all sessions for a query string.
|
|
134
|
+
*
|
|
135
|
+
* Performs case-insensitive substring search across all message content.
|
|
136
|
+
* Returns matches with surrounding context lines.
|
|
137
|
+
*
|
|
138
|
+
* @param query - Search query (case-insensitive)
|
|
139
|
+
* @param config - Optional configuration for context lines and pagination
|
|
140
|
+
* @returns Paginated list of search matches
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```typescript
|
|
144
|
+
* // Basic search
|
|
145
|
+
* const results = await searchSessions('TypeScript');
|
|
146
|
+
*
|
|
147
|
+
* // Search with more context
|
|
148
|
+
* const results = await searchSessions('error', { context: 5 });
|
|
149
|
+
*
|
|
150
|
+
* // Search in specific workspace
|
|
151
|
+
* const results = await searchSessions('bug', { workspace: '/my/project' });
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
export async function searchSessions(query, config) {
|
|
155
|
+
const resolved = resolveConfig(config);
|
|
156
|
+
if (!query || query.trim().length === 0) {
|
|
157
|
+
return {
|
|
158
|
+
data: [],
|
|
159
|
+
pagination: createPagination(0, resolved),
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
const allMatches = [];
|
|
163
|
+
// Get all sessions (without pagination to search all)
|
|
164
|
+
const sessionsResult = await listSessions({
|
|
165
|
+
dataPath: resolved.dataPath,
|
|
166
|
+
workspace: resolved.workspace,
|
|
167
|
+
limit: Number.MAX_SAFE_INTEGER,
|
|
168
|
+
offset: 0,
|
|
169
|
+
});
|
|
170
|
+
// Search each session
|
|
171
|
+
for (const sessionSummary of sessionsResult.data) {
|
|
172
|
+
try {
|
|
173
|
+
const session = await getSession(sessionSummary.id, {
|
|
174
|
+
dataPath: resolved.dataPath,
|
|
175
|
+
});
|
|
176
|
+
for (const message of session.messages) {
|
|
177
|
+
const matches = searchInMessage(message, query, session.id, session.summary, session.projectPath, resolved.context);
|
|
178
|
+
allMatches.push(...matches);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
// Skip sessions that fail to parse
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// Apply pagination to results
|
|
187
|
+
const paginatedMatches = paginate(allMatches, resolved);
|
|
188
|
+
return {
|
|
189
|
+
data: paginatedMatches,
|
|
190
|
+
pagination: createPagination(allMatches.length, resolved),
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Search within a single session.
|
|
195
|
+
*
|
|
196
|
+
* @param sessionId - Session ID or index to search
|
|
197
|
+
* @param query - Search query (case-insensitive)
|
|
198
|
+
* @param config - Optional configuration
|
|
199
|
+
* @returns Array of matches within the session
|
|
200
|
+
*/
|
|
201
|
+
export async function searchInSession(sessionId, query, config) {
|
|
202
|
+
const resolved = resolveConfig(config);
|
|
203
|
+
if (!query || query.trim().length === 0) {
|
|
204
|
+
return [];
|
|
205
|
+
}
|
|
206
|
+
const session = await getSession(sessionId, {
|
|
207
|
+
dataPath: resolved.dataPath,
|
|
208
|
+
workspace: resolved.workspace,
|
|
209
|
+
});
|
|
210
|
+
const matches = [];
|
|
211
|
+
for (const message of session.messages) {
|
|
212
|
+
const messageMatches = searchInMessage(message, query, session.id, session.summary, session.projectPath, resolved.context);
|
|
213
|
+
matches.push(...messageMatches);
|
|
214
|
+
}
|
|
215
|
+
return matches;
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/lib/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
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 type { LibraryConfig, SessionSummary, Session, PaginatedResult } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* List all sessions with pagination.
|
|
9
|
+
*
|
|
10
|
+
* Sessions are sorted by most recent activity first (descending timestamp).
|
|
11
|
+
* Agent sessions are excluded from the main list (they're linked via agentIds).
|
|
12
|
+
*
|
|
13
|
+
* @param config - Optional configuration for filtering and pagination
|
|
14
|
+
* @returns Paginated list of session summaries
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // List first 10 sessions
|
|
19
|
+
* const result = await listSessions({ limit: 10 });
|
|
20
|
+
*
|
|
21
|
+
* // List sessions for a specific workspace
|
|
22
|
+
* const result = await listSessions({ workspace: '/path/to/project' });
|
|
23
|
+
*
|
|
24
|
+
* // Paginate through results
|
|
25
|
+
* const page2 = await listSessions({ limit: 10, offset: 10 });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function listSessions(config?: LibraryConfig): Promise<PaginatedResult<SessionSummary>>;
|
|
29
|
+
/**
|
|
30
|
+
* Get a session by index or UUID.
|
|
31
|
+
*
|
|
32
|
+
* @param identifier - Zero-based index or session UUID
|
|
33
|
+
* @param config - Optional configuration
|
|
34
|
+
* @returns Full session with all messages
|
|
35
|
+
* @throws SessionNotFoundError if session doesn't exist
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* // Get most recent session by index
|
|
40
|
+
* const session = await getSession(0);
|
|
41
|
+
*
|
|
42
|
+
* // Get session by UUID
|
|
43
|
+
* const session = await getSession('abc123-def456-...');
|
|
44
|
+
*
|
|
45
|
+
* // Get session from specific workspace
|
|
46
|
+
* const session = await getSession(0, { workspace: '/path/to/project' });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function getSession(identifier: number | string, config?: LibraryConfig): Promise<Session>;
|
|
50
|
+
/**
|
|
51
|
+
* Get an agent session by ID.
|
|
52
|
+
*
|
|
53
|
+
* @param agentId - Agent ID (e.g., 'abc1234' or 'agent-abc1234')
|
|
54
|
+
* @param config - Optional configuration
|
|
55
|
+
* @returns Full agent session with all messages
|
|
56
|
+
* @throws SessionNotFoundError if agent session doesn't exist
|
|
57
|
+
*/
|
|
58
|
+
export declare function getAgentSession(agentId: string, config?: LibraryConfig): Promise<Session>;
|
|
59
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAW,eAAe,EAAE,MAAM,YAAY,CAAC;AAsKnG;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,YAAY,CAChC,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CA4B1C;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,OAAO,CAAC,CA+DlB;AAoDD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CA+B/F"}
|