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,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom error classes and type guards for claude-code-history library.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Error thrown when a session is not found by index or UUID.
|
|
6
|
+
*/
|
|
7
|
+
export declare class SessionNotFoundError extends Error {
|
|
8
|
+
readonly name: "SessionNotFoundError";
|
|
9
|
+
readonly sessionId: string | number;
|
|
10
|
+
constructor(sessionId: string | number);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Error thrown when a workspace path does not exist.
|
|
14
|
+
*/
|
|
15
|
+
export declare class WorkspaceNotFoundError extends Error {
|
|
16
|
+
readonly name: "WorkspaceNotFoundError";
|
|
17
|
+
readonly workspace: string;
|
|
18
|
+
constructor(workspace: string);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Error thrown when Claude Code data directory is not found.
|
|
22
|
+
*/
|
|
23
|
+
export declare class DataNotFoundError extends Error {
|
|
24
|
+
readonly name: "DataNotFoundError";
|
|
25
|
+
readonly dataPath: string;
|
|
26
|
+
constructor(dataPath: string);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Check if error is a SessionNotFoundError.
|
|
30
|
+
*/
|
|
31
|
+
export declare function isSessionNotFoundError(error: unknown): error is SessionNotFoundError;
|
|
32
|
+
/**
|
|
33
|
+
* Check if error is a WorkspaceNotFoundError.
|
|
34
|
+
*/
|
|
35
|
+
export declare function isWorkspaceNotFoundError(error: unknown): error is WorkspaceNotFoundError;
|
|
36
|
+
/**
|
|
37
|
+
* Check if error is a DataNotFoundError.
|
|
38
|
+
*/
|
|
39
|
+
export declare function isDataNotFoundError(error: unknown): error is DataNotFoundError;
|
|
40
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAG,sBAAsB,CAAU;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;gBAExB,SAAS,EAAE,MAAM,GAAG,MAAM;CAKvC;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,EAAG,wBAAwB,CAAU;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,SAAS,EAAE,MAAM;CAK9B;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAG,mBAAmB,CAAU;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM;CAK7B;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAEpF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAExF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom error classes and type guards for claude-code-history library.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Error thrown when a session is not found by index or UUID.
|
|
6
|
+
*/
|
|
7
|
+
export class SessionNotFoundError extends Error {
|
|
8
|
+
name = 'SessionNotFoundError';
|
|
9
|
+
sessionId;
|
|
10
|
+
constructor(sessionId) {
|
|
11
|
+
super(`Session not found: ${sessionId}`);
|
|
12
|
+
this.sessionId = sessionId;
|
|
13
|
+
Object.setPrototypeOf(this, SessionNotFoundError.prototype);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Error thrown when a workspace path does not exist.
|
|
18
|
+
*/
|
|
19
|
+
export class WorkspaceNotFoundError extends Error {
|
|
20
|
+
name = 'WorkspaceNotFoundError';
|
|
21
|
+
workspace;
|
|
22
|
+
constructor(workspace) {
|
|
23
|
+
super(`Workspace not found: ${workspace}`);
|
|
24
|
+
this.workspace = workspace;
|
|
25
|
+
Object.setPrototypeOf(this, WorkspaceNotFoundError.prototype);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Error thrown when Claude Code data directory is not found.
|
|
30
|
+
*/
|
|
31
|
+
export class DataNotFoundError extends Error {
|
|
32
|
+
name = 'DataNotFoundError';
|
|
33
|
+
dataPath;
|
|
34
|
+
constructor(dataPath) {
|
|
35
|
+
super(`Claude Code data directory not found: ${dataPath}`);
|
|
36
|
+
this.dataPath = dataPath;
|
|
37
|
+
Object.setPrototypeOf(this, DataNotFoundError.prototype);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// =============================================================================
|
|
41
|
+
// Type Guards
|
|
42
|
+
// =============================================================================
|
|
43
|
+
/**
|
|
44
|
+
* Check if error is a SessionNotFoundError.
|
|
45
|
+
*/
|
|
46
|
+
export function isSessionNotFoundError(error) {
|
|
47
|
+
return error instanceof SessionNotFoundError;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Check if error is a WorkspaceNotFoundError.
|
|
51
|
+
*/
|
|
52
|
+
export function isWorkspaceNotFoundError(error) {
|
|
53
|
+
return error instanceof WorkspaceNotFoundError;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Check if error is a DataNotFoundError.
|
|
57
|
+
*/
|
|
58
|
+
export function isDataNotFoundError(error) {
|
|
59
|
+
return error instanceof DataNotFoundError;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,IAAI,GAAG,sBAA+B,CAAC;IACvC,SAAS,CAAkB;IAEpC,YAAY,SAA0B;QACpC,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACtC,IAAI,GAAG,wBAAiC,CAAC;IACzC,SAAS,CAAS;IAE3B,YAAY,SAAiB;QAC3B,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,GAAG,mBAA4B,CAAC;IACpC,QAAQ,CAAS;IAE1B,YAAY,QAAgB;QAC1B,KAAK,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAED,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,KAAK,YAAY,oBAAoB,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,OAAO,KAAK,YAAY,sBAAsB,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,KAAK,YAAY,iBAAiB,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export functionality for claude-code-history library.
|
|
3
|
+
*
|
|
4
|
+
* Provides functions to export sessions to JSON and Markdown formats.
|
|
5
|
+
*/
|
|
6
|
+
import type { LibraryConfig } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Export a session to formatted JSON string.
|
|
9
|
+
*
|
|
10
|
+
* @param sessionId - Session ID or index to export
|
|
11
|
+
* @param config - Optional configuration
|
|
12
|
+
* @returns Formatted JSON string
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const json = await exportSessionToJson(0);
|
|
17
|
+
* await writeFile('session.json', json);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function exportSessionToJson(sessionId: string | number, config?: LibraryConfig): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Export all sessions to JSON.
|
|
23
|
+
*
|
|
24
|
+
* @param config - Optional configuration for filtering
|
|
25
|
+
* @returns JSON string containing array of all sessions
|
|
26
|
+
*/
|
|
27
|
+
export declare function exportAllSessionsToJson(config?: LibraryConfig): Promise<string>;
|
|
28
|
+
/**
|
|
29
|
+
* Export a session to Markdown format.
|
|
30
|
+
*
|
|
31
|
+
* @param sessionId - Session ID or index to export
|
|
32
|
+
* @param config - Optional configuration
|
|
33
|
+
* @returns Formatted Markdown string
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const markdown = await exportSessionToMarkdown(0);
|
|
38
|
+
* await writeFile('session.md', markdown);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function exportSessionToMarkdown(sessionId: string | number, config?: LibraryConfig): Promise<string>;
|
|
42
|
+
/**
|
|
43
|
+
* Export all sessions to Markdown.
|
|
44
|
+
*
|
|
45
|
+
* Each session is separated by a horizontal rule.
|
|
46
|
+
*
|
|
47
|
+
* @param config - Optional configuration for filtering
|
|
48
|
+
* @returns Markdown string containing all sessions
|
|
49
|
+
*/
|
|
50
|
+
export declare function exportAllSessionsToMarkdown(config?: LibraryConfig): Promise<string>;
|
|
51
|
+
/** Export format options */
|
|
52
|
+
export type ExportFormat = 'json' | 'markdown';
|
|
53
|
+
/**
|
|
54
|
+
* Export a session to the specified format.
|
|
55
|
+
*
|
|
56
|
+
* @param sessionId - Session ID or index
|
|
57
|
+
* @param format - Export format ('json' or 'markdown')
|
|
58
|
+
* @param config - Optional configuration
|
|
59
|
+
* @returns Formatted string in the specified format
|
|
60
|
+
*/
|
|
61
|
+
export declare function exportSession(sessionId: string | number, format: ExportFormat, config?: LibraryConfig): Promise<string>;
|
|
62
|
+
/**
|
|
63
|
+
* Export all sessions to the specified format.
|
|
64
|
+
*
|
|
65
|
+
* @param format - Export format ('json' or 'markdown')
|
|
66
|
+
* @param config - Optional configuration
|
|
67
|
+
* @returns Formatted string in the specified format
|
|
68
|
+
*/
|
|
69
|
+
export declare function exportAllSessions(format: ExportFormat, config?: LibraryConfig): Promise<string>;
|
|
70
|
+
//# sourceMappingURL=export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/lib/export.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,aAAa,EAOd,MAAM,YAAY,CAAC;AAQpB;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBrF;AAkHD;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBzF;AAMD,4BAA4B;AAC5B,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;AAE/C;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CAOjB"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export functionality for claude-code-history library.
|
|
3
|
+
*
|
|
4
|
+
* Provides functions to export sessions to JSON and Markdown formats.
|
|
5
|
+
*/
|
|
6
|
+
import { resolveConfig } from './config.js';
|
|
7
|
+
import { getSession, listSessions } from './session.js';
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// JSON Export
|
|
10
|
+
// =============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Export a session to formatted JSON string.
|
|
13
|
+
*
|
|
14
|
+
* @param sessionId - Session ID or index to export
|
|
15
|
+
* @param config - Optional configuration
|
|
16
|
+
* @returns Formatted JSON string
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const json = await exportSessionToJson(0);
|
|
21
|
+
* await writeFile('session.json', json);
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export async function exportSessionToJson(sessionId, config) {
|
|
25
|
+
const resolved = resolveConfig(config);
|
|
26
|
+
const session = await getSession(sessionId, {
|
|
27
|
+
dataPath: resolved.dataPath,
|
|
28
|
+
workspace: resolved.workspace,
|
|
29
|
+
});
|
|
30
|
+
return JSON.stringify(session, null, 2);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Export all sessions to JSON.
|
|
34
|
+
*
|
|
35
|
+
* @param config - Optional configuration for filtering
|
|
36
|
+
* @returns JSON string containing array of all sessions
|
|
37
|
+
*/
|
|
38
|
+
export async function exportAllSessionsToJson(config) {
|
|
39
|
+
const resolved = resolveConfig(config);
|
|
40
|
+
const sessionsResult = await listSessions({
|
|
41
|
+
dataPath: resolved.dataPath,
|
|
42
|
+
workspace: resolved.workspace,
|
|
43
|
+
limit: Number.MAX_SAFE_INTEGER,
|
|
44
|
+
offset: 0,
|
|
45
|
+
});
|
|
46
|
+
const sessions = [];
|
|
47
|
+
for (const summary of sessionsResult.data) {
|
|
48
|
+
try {
|
|
49
|
+
const session = await getSession(summary.id, {
|
|
50
|
+
dataPath: resolved.dataPath,
|
|
51
|
+
});
|
|
52
|
+
sessions.push(session);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// Skip sessions that fail to load
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return JSON.stringify(sessions, null, 2);
|
|
60
|
+
}
|
|
61
|
+
// =============================================================================
|
|
62
|
+
// Markdown Export
|
|
63
|
+
// =============================================================================
|
|
64
|
+
/**
|
|
65
|
+
* Format user message content for markdown.
|
|
66
|
+
*/
|
|
67
|
+
function formatUserContent(content) {
|
|
68
|
+
if (typeof content === 'string') {
|
|
69
|
+
return content;
|
|
70
|
+
}
|
|
71
|
+
// Tool results
|
|
72
|
+
const parts = [];
|
|
73
|
+
for (const result of content) {
|
|
74
|
+
parts.push(`<details>\n<summary>Tool Result (${result.tool_use_id})</summary>\n\n\`\`\`\n${result.content}\n\`\`\`\n\n</details>`);
|
|
75
|
+
}
|
|
76
|
+
return parts.join('\n\n');
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Format assistant content for markdown.
|
|
80
|
+
*/
|
|
81
|
+
function formatAssistantContent(content) {
|
|
82
|
+
const parts = [];
|
|
83
|
+
for (const block of content) {
|
|
84
|
+
switch (block.type) {
|
|
85
|
+
case 'text':
|
|
86
|
+
parts.push(block.text);
|
|
87
|
+
break;
|
|
88
|
+
case 'thinking':
|
|
89
|
+
parts.push(`<details>\n<summary>💭 Thinking</summary>\n\n${block.thinking}\n\n</details>`);
|
|
90
|
+
break;
|
|
91
|
+
case 'tool_use': {
|
|
92
|
+
const inputStr = JSON.stringify(block.input, null, 2);
|
|
93
|
+
parts.push(`<details>\n<summary>🔧 Tool: ${block.name}</summary>\n\n**Input:**\n\`\`\`json\n${inputStr}\n\`\`\`\n\n</details>`);
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return parts.join('\n\n');
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Format a single message for markdown.
|
|
102
|
+
*/
|
|
103
|
+
function formatMessageMarkdown(message) {
|
|
104
|
+
switch (message.type) {
|
|
105
|
+
case 'user': {
|
|
106
|
+
const userMsg = message;
|
|
107
|
+
const content = formatUserContent(userMsg.content);
|
|
108
|
+
return `## 👤 User\n\n${content}`;
|
|
109
|
+
}
|
|
110
|
+
case 'assistant': {
|
|
111
|
+
const assistantMsg = message;
|
|
112
|
+
const content = formatAssistantContent(assistantMsg.content);
|
|
113
|
+
const model = assistantMsg.model ? ` (${assistantMsg.model})` : '';
|
|
114
|
+
return `## 🤖 Assistant${model}\n\n${content}`;
|
|
115
|
+
}
|
|
116
|
+
case 'summary':
|
|
117
|
+
// Skip summary in message output (it's in the header)
|
|
118
|
+
return null;
|
|
119
|
+
case 'file-history-snapshot':
|
|
120
|
+
// Skip file history snapshots
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Format session metadata header for markdown.
|
|
126
|
+
*/
|
|
127
|
+
function formatSessionHeader(session) {
|
|
128
|
+
const lines = [
|
|
129
|
+
`# ${session.summary ?? 'Untitled Session'}`,
|
|
130
|
+
'',
|
|
131
|
+
'| Property | Value |',
|
|
132
|
+
'|----------|-------|',
|
|
133
|
+
`| Session ID | \`${session.id}\` |`,
|
|
134
|
+
`| Project | \`${session.projectPath}\` |`,
|
|
135
|
+
`| Started | ${session.timestamp.toISOString()} |`,
|
|
136
|
+
`| Last Activity | ${session.lastActivityAt.toISOString()} |`,
|
|
137
|
+
`| Messages | ${session.messageCount} |`,
|
|
138
|
+
];
|
|
139
|
+
if (session.gitBranch) {
|
|
140
|
+
lines.push(`| Git Branch | \`${session.gitBranch}\` |`);
|
|
141
|
+
}
|
|
142
|
+
if (session.version) {
|
|
143
|
+
lines.push(`| Claude Code Version | ${session.version} |`);
|
|
144
|
+
}
|
|
145
|
+
if (session.agentIds.length > 0) {
|
|
146
|
+
lines.push(`| Agent Sessions | ${session.agentIds.join(', ')} |`);
|
|
147
|
+
}
|
|
148
|
+
lines.push('', '---', '');
|
|
149
|
+
return lines.join('\n');
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Export a session to Markdown format.
|
|
153
|
+
*
|
|
154
|
+
* @param sessionId - Session ID or index to export
|
|
155
|
+
* @param config - Optional configuration
|
|
156
|
+
* @returns Formatted Markdown string
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```typescript
|
|
160
|
+
* const markdown = await exportSessionToMarkdown(0);
|
|
161
|
+
* await writeFile('session.md', markdown);
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
export async function exportSessionToMarkdown(sessionId, config) {
|
|
165
|
+
const resolved = resolveConfig(config);
|
|
166
|
+
const session = await getSession(sessionId, {
|
|
167
|
+
dataPath: resolved.dataPath,
|
|
168
|
+
workspace: resolved.workspace,
|
|
169
|
+
});
|
|
170
|
+
const parts = [formatSessionHeader(session)];
|
|
171
|
+
for (const message of session.messages) {
|
|
172
|
+
const formatted = formatMessageMarkdown(message);
|
|
173
|
+
if (formatted) {
|
|
174
|
+
parts.push(formatted);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return parts.join('\n\n');
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Export all sessions to Markdown.
|
|
181
|
+
*
|
|
182
|
+
* Each session is separated by a horizontal rule.
|
|
183
|
+
*
|
|
184
|
+
* @param config - Optional configuration for filtering
|
|
185
|
+
* @returns Markdown string containing all sessions
|
|
186
|
+
*/
|
|
187
|
+
export async function exportAllSessionsToMarkdown(config) {
|
|
188
|
+
const resolved = resolveConfig(config);
|
|
189
|
+
const sessionsResult = await listSessions({
|
|
190
|
+
dataPath: resolved.dataPath,
|
|
191
|
+
workspace: resolved.workspace,
|
|
192
|
+
limit: Number.MAX_SAFE_INTEGER,
|
|
193
|
+
offset: 0,
|
|
194
|
+
});
|
|
195
|
+
const sessionMarkdowns = [];
|
|
196
|
+
for (const summary of sessionsResult.data) {
|
|
197
|
+
try {
|
|
198
|
+
const markdown = await exportSessionToMarkdown(summary.id, {
|
|
199
|
+
dataPath: resolved.dataPath,
|
|
200
|
+
});
|
|
201
|
+
sessionMarkdowns.push(markdown);
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
// Skip sessions that fail to export
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return sessionMarkdowns.join('\n\n---\n\n');
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Export a session to the specified format.
|
|
212
|
+
*
|
|
213
|
+
* @param sessionId - Session ID or index
|
|
214
|
+
* @param format - Export format ('json' or 'markdown')
|
|
215
|
+
* @param config - Optional configuration
|
|
216
|
+
* @returns Formatted string in the specified format
|
|
217
|
+
*/
|
|
218
|
+
export async function exportSession(sessionId, format, config) {
|
|
219
|
+
switch (format) {
|
|
220
|
+
case 'json':
|
|
221
|
+
return exportSessionToJson(sessionId, config);
|
|
222
|
+
case 'markdown':
|
|
223
|
+
return exportSessionToMarkdown(sessionId, config);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Export all sessions to the specified format.
|
|
228
|
+
*
|
|
229
|
+
* @param format - Export format ('json' or 'markdown')
|
|
230
|
+
* @param config - Optional configuration
|
|
231
|
+
* @returns Formatted string in the specified format
|
|
232
|
+
*/
|
|
233
|
+
export async function exportAllSessions(format, config) {
|
|
234
|
+
switch (format) {
|
|
235
|
+
case 'json':
|
|
236
|
+
return exportAllSessionsToJson(config);
|
|
237
|
+
case 'markdown':
|
|
238
|
+
return exportAllSessionsToMarkdown(config);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/lib/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code History Library
|
|
3
|
+
*
|
|
4
|
+
* A TypeScript library for reading, searching, exporting, and migrating
|
|
5
|
+
* Claude Code conversation history.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
export type { LibraryConfig, SessionSummary, Session, MessageType, BaseMessage, UserMessage, AssistantMessage, SummaryMessage, FileHistorySnapshotMessage, Message, TextContent, ToolUseContent, ThinkingContent, AssistantContent, ToolResultContent, TokenUsage, FileSnapshot, FileBackup, Pagination, PaginatedResult, SearchMatch, MigrateConfig, MigrateWorkspaceConfig, MigrateError, MigrateResult, } from './types.js';
|
|
10
|
+
export { SessionNotFoundError, WorkspaceNotFoundError, DataNotFoundError, isSessionNotFoundError, isWorkspaceNotFoundError, isDataNotFoundError, } from './errors.js';
|
|
11
|
+
export { listSessions, getSession, getAgentSession } from './session.js';
|
|
12
|
+
export { searchSessions, searchInSession } from './search.js';
|
|
13
|
+
export { exportSessionToJson, exportSessionToMarkdown, exportAllSessionsToJson, exportAllSessionsToMarkdown, exportSession, exportAllSessions, type ExportFormat, } from './export.js';
|
|
14
|
+
export { migrateSession, migrateWorkspace } from './migrate.js';
|
|
15
|
+
export { getDefaultDataPath, getProjectsPath } from './platform.js';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,YAAY,EAEV,aAAa,EAGb,cAAc,EACd,OAAO,EAGP,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,OAAO,EAGP,WAAW,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAGjB,UAAU,EACV,YAAY,EACZ,UAAU,EAGV,UAAU,EACV,eAAe,EAGf,WAAW,EAGX,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAMzE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAM9D,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EACjB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAMhE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code History Library
|
|
3
|
+
*
|
|
4
|
+
* A TypeScript library for reading, searching, exporting, and migrating
|
|
5
|
+
* Claude Code conversation history.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
// =============================================================================
|
|
10
|
+
// Error Classes and Type Guards
|
|
11
|
+
// =============================================================================
|
|
12
|
+
export { SessionNotFoundError, WorkspaceNotFoundError, DataNotFoundError, isSessionNotFoundError, isWorkspaceNotFoundError, isDataNotFoundError, } from './errors.js';
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// Session Functions
|
|
15
|
+
// =============================================================================
|
|
16
|
+
export { listSessions, getSession, getAgentSession } from './session.js';
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// Search Functions
|
|
19
|
+
// =============================================================================
|
|
20
|
+
export { searchSessions, searchInSession } from './search.js';
|
|
21
|
+
// =============================================================================
|
|
22
|
+
// Export Functions
|
|
23
|
+
// =============================================================================
|
|
24
|
+
export { exportSessionToJson, exportSessionToMarkdown, exportAllSessionsToJson, exportAllSessionsToMarkdown, exportSession, exportAllSessions, } from './export.js';
|
|
25
|
+
// =============================================================================
|
|
26
|
+
// Migration Functions
|
|
27
|
+
// =============================================================================
|
|
28
|
+
export { migrateSession, migrateWorkspace } from './migrate.js';
|
|
29
|
+
// =============================================================================
|
|
30
|
+
// Utility Functions
|
|
31
|
+
// =============================================================================
|
|
32
|
+
export { getDefaultDataPath, getProjectsPath } from './platform.js';
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiDH,gFAAgF;AAChF,gCAAgC;AAChC,gFAAgF;AAEhF,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEzE,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9D,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,GAElB,MAAM,aAAa,CAAC;AAErB,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhE,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration functionality for claude-code-history library.
|
|
3
|
+
*
|
|
4
|
+
* Provides functions to copy/move sessions between workspaces
|
|
5
|
+
* while preserving rollback functionality.
|
|
6
|
+
*/
|
|
7
|
+
import type { LibraryConfig, MigrateConfig, MigrateWorkspaceConfig, MigrateResult } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Migrate sessions to a different workspace.
|
|
10
|
+
*
|
|
11
|
+
* This function copies or moves session files while rewriting all
|
|
12
|
+
* absolute paths to point to the new workspace location.
|
|
13
|
+
*
|
|
14
|
+
* @param config - Migration configuration
|
|
15
|
+
* @returns Migration result with success/failure counts
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* // Copy a single session
|
|
20
|
+
* const result = await migrateSession({
|
|
21
|
+
* sessions: 0,
|
|
22
|
+
* destination: '/new/project/path',
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Move multiple sessions
|
|
26
|
+
* const result = await migrateSession({
|
|
27
|
+
* sessions: [0, 1, 'abc123-...'],
|
|
28
|
+
* destination: '/new/project/path',
|
|
29
|
+
* mode: 'move',
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function migrateSession(config: MigrateConfig, libraryConfig?: LibraryConfig): Promise<MigrateResult>;
|
|
34
|
+
/**
|
|
35
|
+
* Migrate all sessions from one workspace to another.
|
|
36
|
+
*
|
|
37
|
+
* @param config - Workspace migration configuration
|
|
38
|
+
* @returns Migration result with success/failure counts
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const result = await migrateWorkspace({
|
|
43
|
+
* source: '/old/project/path',
|
|
44
|
+
* destination: '/new/project/path',
|
|
45
|
+
* mode: 'move',
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function migrateWorkspace(config: MigrateWorkspaceConfig, libraryConfig?: LibraryConfig): Promise<MigrateResult>;
|
|
50
|
+
//# sourceMappingURL=migrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/lib/migrate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,aAAa,EAId,MAAM,YAAY,CAAC;AAiNpB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,aAAa,CAAC,CA+CxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,sBAAsB,EAC9B,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,aAAa,CAAC,CA0ExB"}
|