@ebowwa/claudecodehistory 1.2.1 → 1.2.3
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/LICENSE +21 -0
- package/README +266 -0
- package/README.md +65 -0
- package/dist/history-service.d.ts +36 -0
- package/dist/history-service.d.ts.map +1 -1
- package/dist/history-service.js +159 -0
- package/dist/history-service.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -0
- package/example/src/index.js +275 -0
- package/package.json +14 -11
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 ebowwa
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README
ADDED
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
# @ebowwa/claudecodehistory
|
|
2
|
+
|
|
3
|
+
A TypeScript library for accessing and analyzing Claude Code conversation history with smart filtering and pagination.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
This library provides a `ClaudeCodeHistoryService` class that offers:
|
|
8
|
+
|
|
9
|
+
- **Conversation History Access** - Read Claude Code's `.jsonl` history files from `~/.claude/projects/`
|
|
10
|
+
- **Smart Filtering** - Filter by date range, project, session, and message types
|
|
11
|
+
- **Pagination Support** - Efficiently handle large datasets with limit/offset
|
|
12
|
+
- **Timezone Intelligence** - Automatic timezone detection with manual override support
|
|
13
|
+
- **Content Search** - Search conversation content across all projects
|
|
14
|
+
- **TypeScript Types** - Full TypeScript support with exported types
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
bun install @ebowwa/claudecodehistory
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Quick Start
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import { ClaudeCodeHistoryService } from '@ebowwa/claudecodehistory';
|
|
26
|
+
|
|
27
|
+
const service = new ClaudeCodeHistoryService();
|
|
28
|
+
|
|
29
|
+
// List all projects
|
|
30
|
+
const projects = await service.listProjects();
|
|
31
|
+
console.log(projects);
|
|
32
|
+
// [
|
|
33
|
+
// {
|
|
34
|
+
// projectPath: '/Users/username/code/my-project',
|
|
35
|
+
// sessionCount: 15,
|
|
36
|
+
// messageCount: 342,
|
|
37
|
+
// lastActivityTime: '2025-01-15T10:30:00.000Z'
|
|
38
|
+
// }
|
|
39
|
+
// ]
|
|
40
|
+
|
|
41
|
+
// Get conversation history with pagination
|
|
42
|
+
const history = await service.getConversationHistory({
|
|
43
|
+
limit: 20,
|
|
44
|
+
offset: 0,
|
|
45
|
+
messageTypes: ['user'], // Only user messages (default)
|
|
46
|
+
timezone: 'Asia/Tokyo'
|
|
47
|
+
});
|
|
48
|
+
console.log(history.entries);
|
|
49
|
+
console.log(history.pagination);
|
|
50
|
+
// {
|
|
51
|
+
// total_count: 150,
|
|
52
|
+
// limit: 20,
|
|
53
|
+
// offset: 0,
|
|
54
|
+
// has_more: true
|
|
55
|
+
// }
|
|
56
|
+
|
|
57
|
+
// Search conversations
|
|
58
|
+
const results = await service.searchConversations('API integration', {
|
|
59
|
+
limit: 30,
|
|
60
|
+
projectPath: '/Users/username/code/my-project',
|
|
61
|
+
startDate: '2025-01-01',
|
|
62
|
+
endDate: '2025-01-31'
|
|
63
|
+
});
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## API
|
|
67
|
+
|
|
68
|
+
### `ClaudeCodeHistoryService`
|
|
69
|
+
|
|
70
|
+
Main service class for accessing Claude Code history.
|
|
71
|
+
|
|
72
|
+
#### Constructor
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
const service = new ClaudeCodeHistoryService();
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Automatically uses `~/.claude` as the data directory.
|
|
79
|
+
|
|
80
|
+
#### Methods
|
|
81
|
+
|
|
82
|
+
##### `getConversationHistory(options)`
|
|
83
|
+
|
|
84
|
+
Get paginated conversation history.
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
const result = await service.getConversationHistory({
|
|
88
|
+
sessionId?: string, // Filter by specific session
|
|
89
|
+
startDate?: string, // Start date (e.g., "2025-01-01")
|
|
90
|
+
endDate?: string, // End date (e.g., "2025-01-31")
|
|
91
|
+
limit?: number, // Max entries (default: 20)
|
|
92
|
+
offset?: number, // Skip entries (default: 0)
|
|
93
|
+
messageTypes?: Array<'user' | 'assistant' | 'system' | 'result'>,
|
|
94
|
+
timezone?: string // Timezone (e.g., "Asia/Tokyo", "UTC")
|
|
95
|
+
});
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Returns: `PaginatedConversationResponse`
|
|
99
|
+
|
|
100
|
+
##### `searchConversations(query, options)`
|
|
101
|
+
|
|
102
|
+
Search conversation content.
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
const results = await service.searchConversations('search query', {
|
|
106
|
+
limit?: number,
|
|
107
|
+
projectPath?: string,
|
|
108
|
+
startDate?: string,
|
|
109
|
+
endDate?: string,
|
|
110
|
+
timezone?: string
|
|
111
|
+
});
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Returns: `ConversationEntry[]`
|
|
115
|
+
|
|
116
|
+
##### `listProjects()`
|
|
117
|
+
|
|
118
|
+
List all projects with conversation history.
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
const projects = await service.listProjects();
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Returns: `ProjectInfo[]`
|
|
125
|
+
|
|
126
|
+
##### `listSessions(options)`
|
|
127
|
+
|
|
128
|
+
List conversation sessions.
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
const sessions = await service.listSessions({
|
|
132
|
+
projectPath?: string,
|
|
133
|
+
startDate?: string,
|
|
134
|
+
endDate?: string,
|
|
135
|
+
timezone?: string
|
|
136
|
+
});
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Returns: `SessionInfo[]`
|
|
140
|
+
|
|
141
|
+
## Types
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
interface ConversationEntry {
|
|
145
|
+
sessionId: string;
|
|
146
|
+
timestamp: string;
|
|
147
|
+
type: 'user' | 'assistant' | 'system' | 'result';
|
|
148
|
+
content: string;
|
|
149
|
+
projectPath: string;
|
|
150
|
+
uuid: string;
|
|
151
|
+
formattedTime?: string;
|
|
152
|
+
timeAgo?: string;
|
|
153
|
+
localDate?: string;
|
|
154
|
+
metadata?: {
|
|
155
|
+
usage?: any;
|
|
156
|
+
totalCostUsd?: number;
|
|
157
|
+
numTurns?: number;
|
|
158
|
+
durationMs?: number;
|
|
159
|
+
isError?: boolean;
|
|
160
|
+
errorType?: string;
|
|
161
|
+
model?: string;
|
|
162
|
+
requestId?: string;
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
interface PaginatedConversationResponse {
|
|
167
|
+
entries: ConversationEntry[];
|
|
168
|
+
pagination: {
|
|
169
|
+
total_count: number;
|
|
170
|
+
limit: number;
|
|
171
|
+
offset: number;
|
|
172
|
+
has_more: boolean;
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
interface ProjectInfo {
|
|
177
|
+
projectPath: string;
|
|
178
|
+
sessionCount: number;
|
|
179
|
+
messageCount: number;
|
|
180
|
+
lastActivityTime: string;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
interface SessionInfo {
|
|
184
|
+
sessionId: string;
|
|
185
|
+
projectPath: string;
|
|
186
|
+
startTime: string;
|
|
187
|
+
endTime: string;
|
|
188
|
+
messageCount: number;
|
|
189
|
+
userMessageCount: number;
|
|
190
|
+
assistantMessageCount: number;
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Smart Features
|
|
195
|
+
|
|
196
|
+
### Message Type Filtering
|
|
197
|
+
|
|
198
|
+
Default behavior only returns user messages to reduce data volume:
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
// Only user messages (default)
|
|
202
|
+
await service.getConversationHistory();
|
|
203
|
+
|
|
204
|
+
// User and assistant messages
|
|
205
|
+
await service.getConversationHistory({
|
|
206
|
+
messageTypes: ['user', 'assistant']
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
// All message types
|
|
210
|
+
await service.getConversationHistory({
|
|
211
|
+
messageTypes: ['user', 'assistant', 'system', 'result']
|
|
212
|
+
});
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Timezone Support
|
|
216
|
+
|
|
217
|
+
Automatic timezone detection with manual override:
|
|
218
|
+
|
|
219
|
+
```typescript
|
|
220
|
+
// Auto-detect system timezone
|
|
221
|
+
await service.getConversationHistory();
|
|
222
|
+
|
|
223
|
+
// Explicit timezone
|
|
224
|
+
await service.getConversationHistory({
|
|
225
|
+
timezone: 'Asia/Tokyo'
|
|
226
|
+
});
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Date Filtering
|
|
230
|
+
|
|
231
|
+
Smart date normalization with timezone awareness:
|
|
232
|
+
|
|
233
|
+
```typescript
|
|
234
|
+
await service.getConversationHistory({
|
|
235
|
+
startDate: '2025-01-01', // Automatically normalized to proper timezone bounds
|
|
236
|
+
endDate: '2025-01-31',
|
|
237
|
+
timezone: 'America/New_York'
|
|
238
|
+
});
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Example MCP Server
|
|
242
|
+
|
|
243
|
+
This repository includes an example MCP server in the `example/` directory that demonstrates how to use this library to build an MCP server.
|
|
244
|
+
|
|
245
|
+
See [example/README.md](./example/README.md) for details.
|
|
246
|
+
|
|
247
|
+
## Development
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
# Clone repository
|
|
251
|
+
git clone https://github.com/ebowwa/claude-code-history-mcp.git
|
|
252
|
+
cd claude-code-history-mcp
|
|
253
|
+
|
|
254
|
+
# Install dependencies
|
|
255
|
+
bun install
|
|
256
|
+
|
|
257
|
+
# Build
|
|
258
|
+
bun run build
|
|
259
|
+
|
|
260
|
+
# Run tests
|
|
261
|
+
bun test
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## License
|
|
265
|
+
|
|
266
|
+
MIT
|
package/README.md
CHANGED
|
@@ -138,6 +138,55 @@ const sessions = await service.listSessions({
|
|
|
138
138
|
|
|
139
139
|
Returns: `SessionInfo[]`
|
|
140
140
|
|
|
141
|
+
##### `getCurrentSession()`
|
|
142
|
+
|
|
143
|
+
Get information about the currently active Claude Code session.
|
|
144
|
+
|
|
145
|
+
```typescript
|
|
146
|
+
const currentSession = await service.getCurrentSession();
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Returns: `CurrentSessionInfo | null`
|
|
150
|
+
|
|
151
|
+
**Notes:**
|
|
152
|
+
- Returns `null` if no active session is found
|
|
153
|
+
- Uses a best-effort approach to detect the current session by checking running processes and recently modified session files
|
|
154
|
+
- The detected session may not always be the actual active session if multiple Claude Code instances are running
|
|
155
|
+
|
|
156
|
+
##### `getSessionByPid(pid)`
|
|
157
|
+
|
|
158
|
+
Get session information by process ID.
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
const sessionInfo = await service.getSessionByPid(12345);
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**Parameters:**
|
|
165
|
+
- `pid` (number) - Process ID of the Claude Code session
|
|
166
|
+
|
|
167
|
+
Returns: `SessionProcessInfo | null`
|
|
168
|
+
|
|
169
|
+
**Notes:**
|
|
170
|
+
- Returns `null` if no session is found for the given PID
|
|
171
|
+
- Cross-references running processes with session history files
|
|
172
|
+
- Useful for correlating active Claude Code processes with their conversation history
|
|
173
|
+
|
|
174
|
+
##### `listAllSessionUuids()`
|
|
175
|
+
|
|
176
|
+
List all session UUIDs across all projects.
|
|
177
|
+
|
|
178
|
+
```typescript
|
|
179
|
+
const uuids = await service.listAllSessionUuids();
|
|
180
|
+
// Returns: ["uuid-1", "uuid-2", "uuid-3", ...]
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Returns: `string[]`
|
|
184
|
+
|
|
185
|
+
**Notes:**
|
|
186
|
+
- Returns a flat array of all session UUIDs
|
|
187
|
+
- Useful for bulk operations or generating session inventories
|
|
188
|
+
- Does not include project path information - use `listSessions()` for detailed session metadata
|
|
189
|
+
|
|
141
190
|
## Types
|
|
142
191
|
|
|
143
192
|
```typescript
|
|
@@ -189,6 +238,22 @@ interface SessionInfo {
|
|
|
189
238
|
userMessageCount: number;
|
|
190
239
|
assistantMessageCount: number;
|
|
191
240
|
}
|
|
241
|
+
|
|
242
|
+
interface CurrentSessionInfo {
|
|
243
|
+
uuid: string;
|
|
244
|
+
projectPath: string;
|
|
245
|
+
pid?: number;
|
|
246
|
+
command?: string;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
interface SessionProcessInfo {
|
|
250
|
+
uuid: string;
|
|
251
|
+
projectPath: string;
|
|
252
|
+
pid: number;
|
|
253
|
+
command: string;
|
|
254
|
+
startTime?: string;
|
|
255
|
+
messageCount?: number;
|
|
256
|
+
}
|
|
192
257
|
```
|
|
193
258
|
|
|
194
259
|
## Smart Features
|
|
@@ -83,6 +83,18 @@ export interface SearchOptions {
|
|
|
83
83
|
endDate?: string;
|
|
84
84
|
timezone?: string;
|
|
85
85
|
}
|
|
86
|
+
export interface CurrentSessionInfo {
|
|
87
|
+
sessionId: string;
|
|
88
|
+
timestamp: string;
|
|
89
|
+
projectPath?: string;
|
|
90
|
+
display?: string;
|
|
91
|
+
}
|
|
92
|
+
export interface SessionProcessInfo {
|
|
93
|
+
sessionId: string;
|
|
94
|
+
pid: number;
|
|
95
|
+
command: string;
|
|
96
|
+
alive: boolean;
|
|
97
|
+
}
|
|
86
98
|
export declare class ClaudeCodeHistoryService {
|
|
87
99
|
private claudeDir;
|
|
88
100
|
constructor(claudeDir?: string);
|
|
@@ -103,5 +115,29 @@ export declare class ClaudeCodeHistoryService {
|
|
|
103
115
|
* Determines whether to skip reading a file based on its modification time
|
|
104
116
|
*/
|
|
105
117
|
private shouldSkipFile;
|
|
118
|
+
/**
|
|
119
|
+
* Gets the current active Claude Code session by reading the last line from history.jsonl
|
|
120
|
+
*/
|
|
121
|
+
getCurrentSession(): Promise<CurrentSessionInfo | null>;
|
|
122
|
+
/**
|
|
123
|
+
* Maps a process ID to a Claude Code session by examining the process tree
|
|
124
|
+
*/
|
|
125
|
+
getSessionByPid(pid: number): Promise<SessionProcessInfo | null>;
|
|
126
|
+
/**
|
|
127
|
+
* Lists all session UUIDs from the session-env directory
|
|
128
|
+
*/
|
|
129
|
+
listAllSessionUuids(): Promise<string[]>;
|
|
130
|
+
/**
|
|
131
|
+
* Reads only the last line from a file efficiently
|
|
132
|
+
*/
|
|
133
|
+
private readLastLineFromFile;
|
|
134
|
+
/**
|
|
135
|
+
* Extracts session ID from a Claude Code process by examining command and environment
|
|
136
|
+
*/
|
|
137
|
+
private extractSessionIdFromProcess;
|
|
138
|
+
/**
|
|
139
|
+
* Checks if a process is still alive
|
|
140
|
+
*/
|
|
141
|
+
private isProcessAlive;
|
|
106
142
|
}
|
|
107
143
|
//# sourceMappingURL=history-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-service.d.ts","sourceRoot":"","sources":["../src/history-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"history-service.d.ts","sourceRoot":"","sources":["../src/history-service.ts"],"names":[],"mappings":"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"}
|
package/dist/history-service.js
CHANGED
|
@@ -3,6 +3,9 @@ import * as path from 'path';
|
|
|
3
3
|
import * as os from 'os';
|
|
4
4
|
import { createReadStream } from 'fs';
|
|
5
5
|
import { createInterface } from 'readline';
|
|
6
|
+
import { exec } from 'child_process';
|
|
7
|
+
import { promisify } from 'util';
|
|
8
|
+
const execAsync = promisify(exec);
|
|
6
9
|
export class ClaudeCodeHistoryService {
|
|
7
10
|
claudeDir;
|
|
8
11
|
constructor(claudeDir) {
|
|
@@ -394,5 +397,161 @@ export class ClaudeCodeHistoryService {
|
|
|
394
397
|
return false; // Safe fallback: read the file if stat fails
|
|
395
398
|
}
|
|
396
399
|
}
|
|
400
|
+
/**
|
|
401
|
+
* Gets the current active Claude Code session by reading the last line from history.jsonl
|
|
402
|
+
*/
|
|
403
|
+
async getCurrentSession() {
|
|
404
|
+
try {
|
|
405
|
+
const historyPath = path.join(this.claudeDir, 'history.jsonl');
|
|
406
|
+
const lastLine = await this.readLastLineFromFile(historyPath);
|
|
407
|
+
if (!lastLine) {
|
|
408
|
+
return null;
|
|
409
|
+
}
|
|
410
|
+
const entry = JSON.parse(lastLine);
|
|
411
|
+
// Validate and parse timestamp
|
|
412
|
+
let timestamp;
|
|
413
|
+
if (typeof entry.timestamp === 'number') {
|
|
414
|
+
timestamp = new Date(entry.timestamp).toISOString();
|
|
415
|
+
}
|
|
416
|
+
else if (typeof entry.timestamp === 'string') {
|
|
417
|
+
const date = new Date(entry.timestamp);
|
|
418
|
+
if (isNaN(date.getTime())) {
|
|
419
|
+
return null; // Invalid date
|
|
420
|
+
}
|
|
421
|
+
timestamp = date.toISOString();
|
|
422
|
+
}
|
|
423
|
+
else {
|
|
424
|
+
return null;
|
|
425
|
+
}
|
|
426
|
+
return {
|
|
427
|
+
sessionId: entry.sessionId,
|
|
428
|
+
timestamp,
|
|
429
|
+
projectPath: entry.project,
|
|
430
|
+
display: entry.display
|
|
431
|
+
};
|
|
432
|
+
}
|
|
433
|
+
catch (error) {
|
|
434
|
+
console.error('Error getting current session:', error);
|
|
435
|
+
return null;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Maps a process ID to a Claude Code session by examining the process tree
|
|
440
|
+
*/
|
|
441
|
+
async getSessionByPid(pid) {
|
|
442
|
+
try {
|
|
443
|
+
// Get process info including parent PID and command
|
|
444
|
+
const { stdout } = await execAsync(`ps -p ${pid} -o pid,ppid,command`);
|
|
445
|
+
const lines = stdout.trim().split('\n');
|
|
446
|
+
if (lines.length < 2) {
|
|
447
|
+
return null;
|
|
448
|
+
}
|
|
449
|
+
// Parse the process line (skip header)
|
|
450
|
+
const parts = lines[1].trim().split(/\s+/);
|
|
451
|
+
const processPid = parseInt(parts[0], 10);
|
|
452
|
+
const parentPid = parseInt(parts[1], 10);
|
|
453
|
+
const command = parts.slice(2).join(' ');
|
|
454
|
+
// Check if this is a Claude Code process
|
|
455
|
+
if (!command.toLowerCase().includes('claude')) {
|
|
456
|
+
return null;
|
|
457
|
+
}
|
|
458
|
+
// Extract session ID from command arguments or trace process tree
|
|
459
|
+
let sessionId = await this.extractSessionIdFromProcess(processPid);
|
|
460
|
+
// Check if process is still alive
|
|
461
|
+
const isAlive = await this.isProcessAlive(processPid);
|
|
462
|
+
return {
|
|
463
|
+
sessionId,
|
|
464
|
+
pid: processPid,
|
|
465
|
+
command,
|
|
466
|
+
alive: isAlive
|
|
467
|
+
};
|
|
468
|
+
}
|
|
469
|
+
catch (error) {
|
|
470
|
+
console.error(`Error getting session by PID ${pid}:`, error);
|
|
471
|
+
return null;
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* Lists all session UUIDs from the session-env directory
|
|
476
|
+
*/
|
|
477
|
+
async listAllSessionUuids() {
|
|
478
|
+
try {
|
|
479
|
+
const sessionEnvDir = path.join(this.claudeDir, 'session-env');
|
|
480
|
+
const entries = await fs.readdir(sessionEnvDir);
|
|
481
|
+
// Filter only UUID-like directory names
|
|
482
|
+
const uuids = entries.filter(entry => {
|
|
483
|
+
// UUID v4 pattern: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
|
|
484
|
+
const uuidPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
485
|
+
return uuidPattern.test(entry);
|
|
486
|
+
});
|
|
487
|
+
return uuids;
|
|
488
|
+
}
|
|
489
|
+
catch (error) {
|
|
490
|
+
console.error('Error listing session UUIDs:', error);
|
|
491
|
+
return [];
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Reads only the last line from a file efficiently
|
|
496
|
+
*/
|
|
497
|
+
async readLastLineFromFile(filePath) {
|
|
498
|
+
try {
|
|
499
|
+
const fileStream = createReadStream(filePath, { encoding: 'utf-8' });
|
|
500
|
+
const rl = createInterface({
|
|
501
|
+
input: fileStream,
|
|
502
|
+
crlfDelay: Infinity
|
|
503
|
+
});
|
|
504
|
+
let lastLine = null;
|
|
505
|
+
for await (const line of rl) {
|
|
506
|
+
if (line.trim()) {
|
|
507
|
+
lastLine = line;
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
return lastLine;
|
|
511
|
+
}
|
|
512
|
+
catch (error) {
|
|
513
|
+
console.error('Error reading last line from file:', error);
|
|
514
|
+
return null;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
/**
|
|
518
|
+
* Extracts session ID from a Claude Code process by examining command and environment
|
|
519
|
+
*/
|
|
520
|
+
async extractSessionIdFromProcess(pid) {
|
|
521
|
+
try {
|
|
522
|
+
// First, check if the command contains a session ID argument (-r flag)
|
|
523
|
+
const { stdout: psOutput } = await execAsync(`ps -p ${pid} -o command`);
|
|
524
|
+
const command = psOutput.trim();
|
|
525
|
+
// Look for -r flag with session ID
|
|
526
|
+
const sessionMatch = command.match(/-r\s+([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})/i);
|
|
527
|
+
if (sessionMatch) {
|
|
528
|
+
return sessionMatch[1];
|
|
529
|
+
}
|
|
530
|
+
// If not found in command, check the current session from history
|
|
531
|
+
const currentSession = await this.getCurrentSession();
|
|
532
|
+
if (currentSession) {
|
|
533
|
+
return currentSession.sessionId;
|
|
534
|
+
}
|
|
535
|
+
// Fallback: return empty string
|
|
536
|
+
return '';
|
|
537
|
+
}
|
|
538
|
+
catch (error) {
|
|
539
|
+
console.error('Error extracting session ID from process:', error);
|
|
540
|
+
return '';
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
/**
|
|
544
|
+
* Checks if a process is still alive
|
|
545
|
+
*/
|
|
546
|
+
async isProcessAlive(pid) {
|
|
547
|
+
try {
|
|
548
|
+
// Send signal 0 to check if process exists
|
|
549
|
+
process.kill(pid, 0);
|
|
550
|
+
return true;
|
|
551
|
+
}
|
|
552
|
+
catch (error) {
|
|
553
|
+
return false;
|
|
554
|
+
}
|
|
555
|
+
}
|
|
397
556
|
}
|
|
398
557
|
//# sourceMappingURL=history-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-service.js","sourceRoot":"","sources":["../src/history-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"history-service.js","sourceRoot":"","sources":["../src/history-service.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { ClaudeCodeHistoryService } from './history-service.js';
|
|
2
|
-
export type { ClaudeCodeMessage, ConversationEntry, PaginatedConversationResponse, HistoryQueryOptions, SessionListOptions, ProjectInfo, SessionInfo, SearchOptions, } from './history-service.js';
|
|
2
|
+
export type { ClaudeCodeMessage, ConversationEntry, PaginatedConversationResponse, HistoryQueryOptions, SessionListOptions, ProjectInfo, SessionInfo, SearchOptions, CurrentSessionInfo, SessionProcessInfo, } from './history-service.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,6BAA6B,EAC7B,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,6BAA6B,EAC7B,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
File without changes
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
"use strict";
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
13
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
14
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
15
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
16
|
+
function step(op) {
|
|
17
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
18
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
19
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
20
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
21
|
+
switch (op[0]) {
|
|
22
|
+
case 0: case 1: t = op; break;
|
|
23
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
24
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
25
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
26
|
+
default:
|
|
27
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
28
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
29
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
30
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
31
|
+
if (t[2]) _.ops.pop();
|
|
32
|
+
_.trys.pop(); continue;
|
|
33
|
+
}
|
|
34
|
+
op = body.call(thisArg, _);
|
|
35
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
36
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
var index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
41
|
+
var stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
42
|
+
var types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
43
|
+
var claudecodehistory_1 = require("@ebowwa/claudecodehistory");
|
|
44
|
+
var server = new index_js_1.Server({
|
|
45
|
+
name: 'claude-code-history-mcp',
|
|
46
|
+
version: '1.1.0',
|
|
47
|
+
}, {
|
|
48
|
+
capabilities: {
|
|
49
|
+
tools: {},
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
var historyService = new claudecodehistory_1.ClaudeCodeHistoryService();
|
|
53
|
+
// Helper function to create response
|
|
54
|
+
var createResponse = function (data) { return ({
|
|
55
|
+
content: [{
|
|
56
|
+
type: 'text',
|
|
57
|
+
text: JSON.stringify(data),
|
|
58
|
+
}],
|
|
59
|
+
}); };
|
|
60
|
+
// Define available tools (ordered by recommended workflow)
|
|
61
|
+
var tools = [
|
|
62
|
+
{
|
|
63
|
+
name: 'list_projects',
|
|
64
|
+
description: 'List all projects with Claude Code conversation history (start here to explore available data)',
|
|
65
|
+
inputSchema: {
|
|
66
|
+
type: 'object',
|
|
67
|
+
properties: {},
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: 'list_sessions',
|
|
72
|
+
description: 'List conversation sessions for a project or date range (use after list_projects to find specific sessions)',
|
|
73
|
+
inputSchema: {
|
|
74
|
+
type: 'object',
|
|
75
|
+
properties: {
|
|
76
|
+
projectPath: {
|
|
77
|
+
type: 'string',
|
|
78
|
+
description: 'Filter by specific project path (optional)',
|
|
79
|
+
},
|
|
80
|
+
startDate: {
|
|
81
|
+
type: 'string',
|
|
82
|
+
description: 'Start date in ISO format (optional)',
|
|
83
|
+
},
|
|
84
|
+
endDate: {
|
|
85
|
+
type: 'string',
|
|
86
|
+
description: 'End date in ISO format (optional)',
|
|
87
|
+
},
|
|
88
|
+
timezone: {
|
|
89
|
+
type: 'string',
|
|
90
|
+
description: 'Timezone for date filtering (e.g., "Asia/Tokyo", "UTC"). Defaults to system timezone.',
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: 'get_conversation_history',
|
|
97
|
+
description: 'Get paginated conversation history (use after exploring with list_projects/list_sessions for targeted data)',
|
|
98
|
+
inputSchema: {
|
|
99
|
+
type: 'object',
|
|
100
|
+
properties: {
|
|
101
|
+
sessionId: {
|
|
102
|
+
type: 'string',
|
|
103
|
+
description: 'Specific session ID to get history for (optional)',
|
|
104
|
+
},
|
|
105
|
+
startDate: {
|
|
106
|
+
type: 'string',
|
|
107
|
+
description: 'Start date in ISO format (optional)',
|
|
108
|
+
},
|
|
109
|
+
endDate: {
|
|
110
|
+
type: 'string',
|
|
111
|
+
description: 'End date in ISO format (optional)',
|
|
112
|
+
},
|
|
113
|
+
limit: {
|
|
114
|
+
type: 'number',
|
|
115
|
+
description: 'Maximum number of conversations to return (default: 20)',
|
|
116
|
+
default: 20,
|
|
117
|
+
},
|
|
118
|
+
offset: {
|
|
119
|
+
type: 'number',
|
|
120
|
+
description: 'Number of conversations to skip for pagination (default: 0)',
|
|
121
|
+
default: 0,
|
|
122
|
+
},
|
|
123
|
+
messageTypes: {
|
|
124
|
+
type: 'array',
|
|
125
|
+
items: {
|
|
126
|
+
type: 'string',
|
|
127
|
+
enum: ['user', 'assistant', 'system', 'result']
|
|
128
|
+
},
|
|
129
|
+
description: 'Filter by specific message types. Defaults to ["user"] to reduce data volume. Use ["user", "assistant"] to include Claude responses.',
|
|
130
|
+
default: ['user']
|
|
131
|
+
},
|
|
132
|
+
timezone: {
|
|
133
|
+
type: 'string',
|
|
134
|
+
description: 'Timezone for date filtering (e.g., "Asia/Tokyo", "UTC"). Defaults to system timezone.',
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
name: 'search_conversations',
|
|
141
|
+
description: 'Search through conversation history by content (useful for finding specific topics across all conversations)',
|
|
142
|
+
inputSchema: {
|
|
143
|
+
type: 'object',
|
|
144
|
+
properties: {
|
|
145
|
+
query: {
|
|
146
|
+
type: 'string',
|
|
147
|
+
description: 'Search query to find in conversation content',
|
|
148
|
+
},
|
|
149
|
+
limit: {
|
|
150
|
+
type: 'number',
|
|
151
|
+
description: 'Maximum number of results to return (default: 30)',
|
|
152
|
+
default: 30,
|
|
153
|
+
},
|
|
154
|
+
projectPath: {
|
|
155
|
+
type: 'string',
|
|
156
|
+
description: 'Filter by specific project path (optional)',
|
|
157
|
+
},
|
|
158
|
+
startDate: {
|
|
159
|
+
type: 'string',
|
|
160
|
+
description: 'Start date in ISO format (optional)',
|
|
161
|
+
},
|
|
162
|
+
endDate: {
|
|
163
|
+
type: 'string',
|
|
164
|
+
description: 'End date in ISO format (optional)',
|
|
165
|
+
},
|
|
166
|
+
timezone: {
|
|
167
|
+
type: 'string',
|
|
168
|
+
description: 'Timezone for date filtering (e.g., "Asia/Tokyo", "UTC"). Defaults to system timezone.',
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
required: ['query'],
|
|
172
|
+
},
|
|
173
|
+
},
|
|
174
|
+
];
|
|
175
|
+
// Handle list tools request
|
|
176
|
+
server.setRequestHandler(types_js_1.ListToolsRequestSchema, function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
177
|
+
return __generator(this, function (_a) {
|
|
178
|
+
return [2 /*return*/, { tools: tools }];
|
|
179
|
+
});
|
|
180
|
+
}); });
|
|
181
|
+
// Handle tool calls
|
|
182
|
+
server.setRequestHandler(types_js_1.CallToolRequestSchema, function (request) { return __awaiter(void 0, void 0, void 0, function () {
|
|
183
|
+
var _a, name, args, _b, history_1, query, results, projects, sessions, error_1, errorMessage;
|
|
184
|
+
return __generator(this, function (_c) {
|
|
185
|
+
switch (_c.label) {
|
|
186
|
+
case 0:
|
|
187
|
+
_a = request.params, name = _a.name, args = _a.arguments;
|
|
188
|
+
_c.label = 1;
|
|
189
|
+
case 1:
|
|
190
|
+
_c.trys.push([1, 12, , 13]);
|
|
191
|
+
_b = name;
|
|
192
|
+
switch (_b) {
|
|
193
|
+
case 'get_conversation_history': return [3 /*break*/, 2];
|
|
194
|
+
case 'search_conversations': return [3 /*break*/, 4];
|
|
195
|
+
case 'list_projects': return [3 /*break*/, 6];
|
|
196
|
+
case 'list_sessions': return [3 /*break*/, 8];
|
|
197
|
+
}
|
|
198
|
+
return [3 /*break*/, 10];
|
|
199
|
+
case 2: return [4 /*yield*/, historyService.getConversationHistory({
|
|
200
|
+
sessionId: args === null || args === void 0 ? void 0 : args.sessionId,
|
|
201
|
+
startDate: args === null || args === void 0 ? void 0 : args.startDate,
|
|
202
|
+
endDate: args === null || args === void 0 ? void 0 : args.endDate,
|
|
203
|
+
limit: (args === null || args === void 0 ? void 0 : args.limit) || 20,
|
|
204
|
+
offset: (args === null || args === void 0 ? void 0 : args.offset) || 0,
|
|
205
|
+
messageTypes: args === null || args === void 0 ? void 0 : args.messageTypes,
|
|
206
|
+
timezone: args === null || args === void 0 ? void 0 : args.timezone,
|
|
207
|
+
})];
|
|
208
|
+
case 3:
|
|
209
|
+
history_1 = _c.sent();
|
|
210
|
+
return [2 /*return*/, createResponse(history_1)];
|
|
211
|
+
case 4:
|
|
212
|
+
query = args === null || args === void 0 ? void 0 : args.query;
|
|
213
|
+
if (!query) {
|
|
214
|
+
throw new Error('Search query is required');
|
|
215
|
+
}
|
|
216
|
+
return [4 /*yield*/, historyService.searchConversations(query, {
|
|
217
|
+
limit: (args === null || args === void 0 ? void 0 : args.limit) || 30,
|
|
218
|
+
projectPath: args === null || args === void 0 ? void 0 : args.projectPath,
|
|
219
|
+
startDate: args === null || args === void 0 ? void 0 : args.startDate,
|
|
220
|
+
endDate: args === null || args === void 0 ? void 0 : args.endDate,
|
|
221
|
+
timezone: args === null || args === void 0 ? void 0 : args.timezone,
|
|
222
|
+
})];
|
|
223
|
+
case 5:
|
|
224
|
+
results = _c.sent();
|
|
225
|
+
return [2 /*return*/, createResponse(results)];
|
|
226
|
+
case 6: return [4 /*yield*/, historyService.listProjects()];
|
|
227
|
+
case 7:
|
|
228
|
+
projects = _c.sent();
|
|
229
|
+
return [2 /*return*/, createResponse(projects)];
|
|
230
|
+
case 8: return [4 /*yield*/, historyService.listSessions({
|
|
231
|
+
projectPath: args === null || args === void 0 ? void 0 : args.projectPath,
|
|
232
|
+
startDate: args === null || args === void 0 ? void 0 : args.startDate,
|
|
233
|
+
endDate: args === null || args === void 0 ? void 0 : args.endDate,
|
|
234
|
+
timezone: args === null || args === void 0 ? void 0 : args.timezone,
|
|
235
|
+
})];
|
|
236
|
+
case 9:
|
|
237
|
+
sessions = _c.sent();
|
|
238
|
+
return [2 /*return*/, createResponse(sessions)];
|
|
239
|
+
case 10: throw new Error("Unknown tool: ".concat(name));
|
|
240
|
+
case 11: return [3 /*break*/, 13];
|
|
241
|
+
case 12:
|
|
242
|
+
error_1 = _c.sent();
|
|
243
|
+
errorMessage = error_1 instanceof Error ? error_1.message : 'Unknown error';
|
|
244
|
+
return [2 /*return*/, {
|
|
245
|
+
content: [{
|
|
246
|
+
type: 'text',
|
|
247
|
+
text: "Error: ".concat(errorMessage),
|
|
248
|
+
}],
|
|
249
|
+
isError: true,
|
|
250
|
+
}];
|
|
251
|
+
case 13: return [2 /*return*/];
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
}); });
|
|
255
|
+
// Start the server
|
|
256
|
+
function main() {
|
|
257
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
258
|
+
var transport;
|
|
259
|
+
return __generator(this, function (_a) {
|
|
260
|
+
switch (_a.label) {
|
|
261
|
+
case 0:
|
|
262
|
+
transport = new stdio_js_1.StdioServerTransport();
|
|
263
|
+
return [4 /*yield*/, server.connect(transport)];
|
|
264
|
+
case 1:
|
|
265
|
+
_a.sent();
|
|
266
|
+
console.error('Claude Code History MCP Server started');
|
|
267
|
+
return [2 /*return*/];
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
main().catch(function (error) {
|
|
273
|
+
console.error('Failed to start server:', error);
|
|
274
|
+
process.exit(1);
|
|
275
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ebowwa/claudecodehistory",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "TypeScript library for accessing and analyzing Claude Code conversation history",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"files": [
|
|
15
15
|
"dist/",
|
|
16
16
|
"example/",
|
|
17
|
+
"README",
|
|
17
18
|
"README.md",
|
|
18
19
|
"LICENSE"
|
|
19
20
|
],
|
|
@@ -22,10 +23,6 @@
|
|
|
22
23
|
"typecheck": "tsc --noEmit",
|
|
23
24
|
"prepublishOnly": "npm run build"
|
|
24
25
|
},
|
|
25
|
-
"devDependencies": {
|
|
26
|
-
"@types/node": "^24.0.4",
|
|
27
|
-
"typescript": "^5.8.3"
|
|
28
|
-
},
|
|
29
26
|
"keywords": [
|
|
30
27
|
"claude-code",
|
|
31
28
|
"history",
|
|
@@ -33,19 +30,25 @@
|
|
|
33
30
|
"ai",
|
|
34
31
|
"typescript",
|
|
35
32
|
"library",
|
|
36
|
-
"analytics"
|
|
33
|
+
"analytics",
|
|
34
|
+
"mcp"
|
|
37
35
|
],
|
|
38
|
-
"author": "ebowwa",
|
|
36
|
+
"author": "Ebowwa Labs <labs@ebowwa.com>",
|
|
39
37
|
"license": "MIT",
|
|
38
|
+
"homepage": "https://github.com/ebowwa/codespaces/tree/main/packages/src/claudecode-history#readme",
|
|
40
39
|
"repository": {
|
|
41
40
|
"type": "git",
|
|
42
|
-
"url": "https://github.com/ebowwa/
|
|
41
|
+
"url": "https://github.com/ebowwa/codespaces.git",
|
|
42
|
+
"directory": "packages/src/claudecode-history"
|
|
43
43
|
},
|
|
44
|
-
"homepage": "https://github.com/ebowwa/claude-code-history-mcp#readme",
|
|
45
44
|
"bugs": {
|
|
46
|
-
"url": "https://github.com/ebowwa/
|
|
45
|
+
"url": "https://github.com/ebowwa/codespaces/issues"
|
|
47
46
|
},
|
|
48
47
|
"engines": {
|
|
49
|
-
"
|
|
48
|
+
"node": ">=18.0.0"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@types/node": "^24.0.4",
|
|
52
|
+
"typescript": "^5.8.3"
|
|
50
53
|
}
|
|
51
54
|
}
|