cyrus-claude-runner 0.0.1 → 0.0.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/dist/ClaudeRunner.d.ts +17 -29
- package/dist/ClaudeRunner.d.ts.map +1 -1
- package/dist/ClaudeRunner.js +154 -290
- package/dist/ClaudeRunner.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/types.d.ts +12 -13
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/ClaudeRunner.d.ts
CHANGED
|
@@ -1,59 +1,47 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import
|
|
2
|
+
import { type SDKMessage } from '@anthropic-ai/claude-code';
|
|
3
|
+
import type { ClaudeRunnerConfig, ClaudeRunnerEvents, ClaudeSessionInfo } from './types.js';
|
|
3
4
|
export declare interface ClaudeRunner {
|
|
4
5
|
on<K extends keyof ClaudeRunnerEvents>(event: K, listener: ClaudeRunnerEvents[K]): this;
|
|
5
6
|
emit<K extends keyof ClaudeRunnerEvents>(event: K, ...args: Parameters<ClaudeRunnerEvents[K]>): boolean;
|
|
6
7
|
}
|
|
7
8
|
/**
|
|
8
|
-
* Manages
|
|
9
|
+
* Manages Claude SDK sessions and communication
|
|
9
10
|
*/
|
|
10
11
|
export declare class ClaudeRunner extends EventEmitter {
|
|
11
12
|
private config;
|
|
12
|
-
private
|
|
13
|
-
private
|
|
14
|
-
private startedAt;
|
|
13
|
+
private abortController;
|
|
14
|
+
private sessionInfo;
|
|
15
15
|
private logStream;
|
|
16
|
-
private
|
|
16
|
+
private messages;
|
|
17
17
|
constructor(config: ClaudeRunnerConfig);
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Start a new Claude session
|
|
20
20
|
*/
|
|
21
|
-
|
|
21
|
+
start(prompt: string): Promise<ClaudeSessionInfo>;
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* Stop the current Claude session
|
|
24
24
|
*/
|
|
25
|
-
|
|
25
|
+
stop(): void;
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
28
|
-
*/
|
|
29
|
-
sendInitialPrompt(prompt: string): Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
* Kill the Claude process
|
|
32
|
-
*/
|
|
33
|
-
kill(): void;
|
|
34
|
-
/**
|
|
35
|
-
* Check if process is running
|
|
27
|
+
* Check if session is running
|
|
36
28
|
*/
|
|
37
29
|
isRunning(): boolean;
|
|
38
30
|
/**
|
|
39
|
-
*
|
|
31
|
+
* Get current session info
|
|
40
32
|
*/
|
|
41
|
-
|
|
33
|
+
getSessionInfo(): ClaudeSessionInfo | null;
|
|
42
34
|
/**
|
|
43
|
-
*
|
|
35
|
+
* Get all messages from current session
|
|
44
36
|
*/
|
|
45
|
-
|
|
37
|
+
getMessages(): SDKMessage[];
|
|
46
38
|
/**
|
|
47
|
-
*
|
|
39
|
+
* Process individual SDK messages and emit appropriate events
|
|
48
40
|
*/
|
|
49
|
-
private
|
|
41
|
+
private processMessage;
|
|
50
42
|
/**
|
|
51
43
|
* Set up logging to .cyrus directory
|
|
52
44
|
*/
|
|
53
45
|
private setupLogging;
|
|
54
|
-
/**
|
|
55
|
-
* Update log file path when session ID is captured
|
|
56
|
-
*/
|
|
57
|
-
private updateLogFilePath;
|
|
58
46
|
}
|
|
59
47
|
//# sourceMappingURL=ClaudeRunner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeRunner.d.ts","sourceRoot":"","sources":["../src/ClaudeRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"ClaudeRunner.d.ts","sourceRoot":"","sources":["../src/ClaudeRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAIrC,OAAO,EAAS,KAAK,UAAU,EAAc,MAAM,2BAA2B,CAAA;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE3F,MAAM,CAAC,OAAO,WAAW,YAAY;IACnC,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IACvF,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;CACxG;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAmB;gBAEvB,MAAM,EAAE,kBAAkB;IAUtC;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoIvD;;OAEG;IACH,IAAI,IAAI,IAAI;IAYZ;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,cAAc,IAAI,iBAAiB,GAAG,IAAI;IAI1C;;OAEG;IACH,WAAW,IAAI,UAAU,EAAE;IAI3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAiCtB;;OAEG;IACH,OAAO,CAAC,YAAY;CAsCrB"}
|
package/dist/ClaudeRunner.js
CHANGED
|
@@ -1,309 +1,208 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import {
|
|
3
|
-
import { mkdirSync, createWriteStream } from 'fs';
|
|
2
|
+
import { mkdirSync, createWriteStream, readFileSync } from 'fs';
|
|
4
3
|
import { join } from 'path';
|
|
5
4
|
import { homedir } from 'os';
|
|
6
|
-
import {
|
|
5
|
+
import { query, AbortError } from '@anthropic-ai/claude-code';
|
|
7
6
|
/**
|
|
8
|
-
* Manages
|
|
7
|
+
* Manages Claude SDK sessions and communication
|
|
9
8
|
*/
|
|
10
9
|
export class ClaudeRunner extends EventEmitter {
|
|
11
10
|
config;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
startedAt = null;
|
|
11
|
+
abortController = null;
|
|
12
|
+
sessionInfo = null;
|
|
15
13
|
logStream = null;
|
|
16
|
-
|
|
14
|
+
messages = [];
|
|
17
15
|
constructor(config) {
|
|
18
16
|
super();
|
|
19
17
|
this.config = config;
|
|
20
18
|
// Forward config callbacks to events
|
|
21
|
-
if (config.
|
|
22
|
-
this.on('message', config.
|
|
19
|
+
if (config.onMessage)
|
|
20
|
+
this.on('message', config.onMessage);
|
|
23
21
|
if (config.onError)
|
|
24
22
|
this.on('error', config.onError);
|
|
25
|
-
if (config.
|
|
26
|
-
this.on('
|
|
23
|
+
if (config.onComplete)
|
|
24
|
+
this.on('complete', config.onComplete);
|
|
27
25
|
}
|
|
28
26
|
/**
|
|
29
|
-
*
|
|
27
|
+
* Start a new Claude session
|
|
30
28
|
*/
|
|
31
|
-
|
|
32
|
-
if (this.
|
|
33
|
-
throw new Error('Claude
|
|
34
|
-
}
|
|
35
|
-
//
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
29
|
+
async start(prompt) {
|
|
30
|
+
if (this.isRunning()) {
|
|
31
|
+
throw new Error('Claude session already running');
|
|
32
|
+
}
|
|
33
|
+
// Generate session ID and create session info
|
|
34
|
+
const sessionId = `session-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
35
|
+
this.sessionInfo = {
|
|
36
|
+
sessionId,
|
|
37
|
+
startedAt: new Date(),
|
|
38
|
+
isRunning: true
|
|
39
|
+
};
|
|
40
|
+
console.log(`[ClaudeRunner] Starting new session: ${sessionId}`);
|
|
41
|
+
console.log('[ClaudeRunner] Working directory:', this.config.workingDirectory);
|
|
42
42
|
// Ensure working directory exists
|
|
43
43
|
if (this.config.workingDirectory) {
|
|
44
44
|
try {
|
|
45
45
|
mkdirSync(this.config.workingDirectory, { recursive: true });
|
|
46
|
-
console.
|
|
46
|
+
console.log('[ClaudeRunner] Created working directory');
|
|
47
47
|
}
|
|
48
48
|
catch (err) {
|
|
49
49
|
console.error('[ClaudeRunner] Failed to create working directory:', err);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
// Spawn the process
|
|
53
|
-
console.log('[ClaudeRunner] Spawning Claude process...');
|
|
54
|
-
this.process = spawn('sh', ['-c', command], {
|
|
55
|
-
cwd: this.config.workingDirectory,
|
|
56
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
57
|
-
shell: false // We're already using sh -c
|
|
58
|
-
});
|
|
59
|
-
this.startedAt = new Date();
|
|
60
|
-
console.log(`[ClaudeRunner] Process spawned with PID: ${this.process.pid}`);
|
|
61
|
-
// Set up stdout parser
|
|
62
|
-
this.parser = new StdoutParser();
|
|
63
|
-
this.setupParserEvents();
|
|
64
|
-
// Handle process events
|
|
65
|
-
this.setupProcessEvents();
|
|
66
52
|
// Set up logging
|
|
67
53
|
this.setupLogging();
|
|
68
|
-
//
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
54
|
+
// Create abort controller for this session
|
|
55
|
+
this.abortController = new AbortController();
|
|
56
|
+
// Reset messages array
|
|
57
|
+
this.messages = [];
|
|
58
|
+
try {
|
|
59
|
+
// Start the query
|
|
60
|
+
console.log(`[ClaudeRunner] Starting query with prompt length: ${prompt.length} characters`);
|
|
61
|
+
// Process allowed directories by adding Read patterns to allowedTools
|
|
62
|
+
let processedAllowedTools = this.config.allowedTools ? [...this.config.allowedTools] : undefined;
|
|
63
|
+
if (this.config.allowedDirectories && this.config.allowedDirectories.length > 0) {
|
|
64
|
+
const directoryTools = this.config.allowedDirectories.map(dir => {
|
|
65
|
+
// Add extra / prefix for absolute paths to ensure Claude Code recognizes them properly
|
|
66
|
+
// See: https://docs.anthropic.com/en/docs/claude-code/settings#read-%26-edit
|
|
67
|
+
const prefixedPath = dir.startsWith('/') ? `/${dir}` : dir;
|
|
68
|
+
return `Read(${prefixedPath}/**)`;
|
|
69
|
+
});
|
|
70
|
+
processedAllowedTools = processedAllowedTools ? [...processedAllowedTools, ...directoryTools] : directoryTools;
|
|
71
|
+
}
|
|
72
|
+
// Parse MCP config if provided
|
|
73
|
+
let mcpServers = {};
|
|
74
|
+
if (this.config.mcpConfigPath) {
|
|
75
|
+
try {
|
|
76
|
+
const mcpConfigContent = readFileSync(this.config.mcpConfigPath, 'utf8');
|
|
77
|
+
const mcpConfig = JSON.parse(mcpConfigContent);
|
|
78
|
+
mcpServers = mcpConfig.mcpServers || {};
|
|
79
|
+
console.log(`[ClaudeRunner] Loaded MCP servers: ${Object.keys(mcpServers).join(', ')}`);
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
console.error(`[ClaudeRunner] Failed to load MCP config from ${this.config.mcpConfigPath}:`, error);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const queryOptions = {
|
|
86
|
+
prompt,
|
|
87
|
+
abortController: this.abortController,
|
|
88
|
+
options: {
|
|
89
|
+
...(this.config.workingDirectory && { cwd: this.config.workingDirectory }),
|
|
90
|
+
...(this.config.systemPrompt && { systemPrompt: this.config.systemPrompt }),
|
|
91
|
+
...(processedAllowedTools && { allowedTools: processedAllowedTools }),
|
|
92
|
+
...(this.config.continueSession && { continue: this.config.continueSession }),
|
|
93
|
+
...(Object.keys(mcpServers).length > 0 && { mcpServers })
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
// Process messages from the query
|
|
97
|
+
for await (const message of query(queryOptions)) {
|
|
98
|
+
if (!this.sessionInfo?.isRunning) {
|
|
99
|
+
console.log('[ClaudeRunner] Session was stopped, breaking from query loop');
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
this.messages.push(message);
|
|
103
|
+
console.log(`[ClaudeRunner] Received message: ${message.type}`);
|
|
104
|
+
// Log the message
|
|
76
105
|
if (this.logStream) {
|
|
77
|
-
const
|
|
78
|
-
type: '
|
|
79
|
-
|
|
106
|
+
const logEntry = {
|
|
107
|
+
type: 'sdk-message',
|
|
108
|
+
message,
|
|
80
109
|
timestamp: new Date().toISOString()
|
|
81
110
|
};
|
|
82
|
-
this.logStream.write(JSON.stringify(
|
|
111
|
+
this.logStream.write(JSON.stringify(logEntry) + '\n');
|
|
83
112
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
console.log('[ClaudeRunner] stdin is available');
|
|
113
|
+
// Emit appropriate events based on message type
|
|
114
|
+
this.emit('message', message);
|
|
115
|
+
this.processMessage(message);
|
|
116
|
+
}
|
|
117
|
+
// Session completed successfully
|
|
118
|
+
console.log(`[ClaudeRunner] Session completed with ${this.messages.length} messages`);
|
|
119
|
+
this.sessionInfo.isRunning = false;
|
|
120
|
+
this.emit('complete', this.messages);
|
|
93
121
|
}
|
|
94
|
-
|
|
95
|
-
console.error('[ClaudeRunner]
|
|
122
|
+
catch (error) {
|
|
123
|
+
console.error('[ClaudeRunner] Session error:', error);
|
|
124
|
+
if (this.sessionInfo) {
|
|
125
|
+
this.sessionInfo.isRunning = false;
|
|
126
|
+
}
|
|
127
|
+
if (error instanceof AbortError) {
|
|
128
|
+
console.log('[ClaudeRunner] Session was aborted');
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
this.emit('error', error instanceof Error ? error : new Error(String(error)));
|
|
132
|
+
}
|
|
96
133
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
*/
|
|
106
|
-
async sendInput(input) {
|
|
107
|
-
console.log(`[ClaudeRunner] sendInput called with input length: ${input.length} characters`);
|
|
108
|
-
if (!this.process || !this.process.stdin) {
|
|
109
|
-
console.error('[ClaudeRunner] No active Claude process or stdin');
|
|
110
|
-
throw new Error('No active Claude process');
|
|
134
|
+
finally {
|
|
135
|
+
// Clean up
|
|
136
|
+
this.abortController = null;
|
|
137
|
+
// Close log stream
|
|
138
|
+
if (this.logStream) {
|
|
139
|
+
this.logStream.end();
|
|
140
|
+
this.logStream = null;
|
|
141
|
+
}
|
|
111
142
|
}
|
|
112
|
-
return
|
|
113
|
-
// Just send the input directly, no heredoc needed
|
|
114
|
-
const inputWithNewline = input.endsWith('\n') ? input : input + '\n';
|
|
115
|
-
console.log(`[ClaudeRunner] Writing to stdin, input: "${inputWithNewline.trim()}"`);
|
|
116
|
-
this.process.stdin.write(inputWithNewline, (err) => {
|
|
117
|
-
if (err) {
|
|
118
|
-
console.error('[ClaudeRunner] Error writing to stdin:', err);
|
|
119
|
-
reject(err);
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
console.log('[ClaudeRunner] Successfully wrote to stdin');
|
|
123
|
-
// Close stdin after writing for --continue mode
|
|
124
|
-
if (this.config.continueSession) {
|
|
125
|
-
this.process.stdin.end();
|
|
126
|
-
console.log('[ClaudeRunner] Closed stdin for continue mode');
|
|
127
|
-
}
|
|
128
|
-
resolve();
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
});
|
|
143
|
+
return this.sessionInfo;
|
|
132
144
|
}
|
|
133
145
|
/**
|
|
134
|
-
*
|
|
146
|
+
* Stop the current Claude session
|
|
135
147
|
*/
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
this.process?.stdin?.end();
|
|
142
|
-
console.log('[ClaudeRunner] stdin closed successfully');
|
|
148
|
+
stop() {
|
|
149
|
+
if (this.abortController) {
|
|
150
|
+
console.log('[ClaudeRunner] Stopping Claude session');
|
|
151
|
+
this.abortController.abort();
|
|
152
|
+
this.abortController = null;
|
|
143
153
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
throw error;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Kill the Claude process
|
|
151
|
-
*/
|
|
152
|
-
kill() {
|
|
153
|
-
if (this.process) {
|
|
154
|
-
this.process.kill('SIGTERM');
|
|
155
|
-
this.process = null;
|
|
156
|
-
this.parser = null;
|
|
154
|
+
if (this.sessionInfo) {
|
|
155
|
+
this.sessionInfo.isRunning = false;
|
|
157
156
|
}
|
|
158
157
|
}
|
|
159
158
|
/**
|
|
160
|
-
* Check if
|
|
159
|
+
* Check if session is running
|
|
161
160
|
*/
|
|
162
161
|
isRunning() {
|
|
163
|
-
return this.
|
|
162
|
+
return this.sessionInfo?.isRunning ?? false;
|
|
164
163
|
}
|
|
165
164
|
/**
|
|
166
|
-
*
|
|
165
|
+
* Get current session info
|
|
167
166
|
*/
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
'--print',
|
|
171
|
-
'--verbose',
|
|
172
|
-
'--output-format',
|
|
173
|
-
'stream-json'
|
|
174
|
-
];
|
|
175
|
-
// Add continue flag if specified
|
|
176
|
-
if (this.config.continueSession) {
|
|
177
|
-
args.push('--continue');
|
|
178
|
-
}
|
|
179
|
-
// Add allowed tools
|
|
180
|
-
if (this.config.allowedTools && this.config.allowedTools.length > 0) {
|
|
181
|
-
args.push('--allowedTools');
|
|
182
|
-
args.push(...this.config.allowedTools);
|
|
183
|
-
}
|
|
184
|
-
// Add allowed directories
|
|
185
|
-
if (this.config.allowedDirectories && this.config.allowedDirectories.length > 0) {
|
|
186
|
-
args.push('--add-dir');
|
|
187
|
-
args.push(...this.config.allowedDirectories);
|
|
188
|
-
}
|
|
189
|
-
return args;
|
|
167
|
+
getSessionInfo() {
|
|
168
|
+
return this.sessionInfo;
|
|
190
169
|
}
|
|
191
170
|
/**
|
|
192
|
-
*
|
|
171
|
+
* Get all messages from current session
|
|
193
172
|
*/
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
return;
|
|
197
|
-
// Forward all events
|
|
198
|
-
this.parser.on('message', (event) => {
|
|
199
|
-
// Capture session ID from the first event if available
|
|
200
|
-
if (!this.sessionId && 'sessionId' in event && event.sessionId) {
|
|
201
|
-
this.sessionId = event.sessionId;
|
|
202
|
-
console.log(`[ClaudeRunner] Captured session ID: ${this.sessionId}`);
|
|
203
|
-
this.updateLogFilePath();
|
|
204
|
-
}
|
|
205
|
-
// Log the event
|
|
206
|
-
if (this.logStream) {
|
|
207
|
-
this.logStream.write(JSON.stringify(event) + '\n');
|
|
208
|
-
}
|
|
209
|
-
this.emit('message', event);
|
|
210
|
-
});
|
|
211
|
-
this.parser.on('assistant', (event) => {
|
|
212
|
-
this.emit('assistant', event);
|
|
213
|
-
});
|
|
214
|
-
this.parser.on('tool-use', (toolName, input) => {
|
|
215
|
-
this.emit('tool-use', toolName, input);
|
|
216
|
-
});
|
|
217
|
-
this.parser.on('text', (text) => {
|
|
218
|
-
this.emit('text', text);
|
|
219
|
-
});
|
|
220
|
-
this.parser.on('end-turn', (lastText) => {
|
|
221
|
-
this.emit('end-turn', lastText);
|
|
222
|
-
});
|
|
223
|
-
this.parser.on('result', (event) => {
|
|
224
|
-
this.emit('result', event);
|
|
225
|
-
});
|
|
226
|
-
this.parser.on('error', (error) => {
|
|
227
|
-
if (error instanceof Error) {
|
|
228
|
-
this.emit('error', error);
|
|
229
|
-
}
|
|
230
|
-
else {
|
|
231
|
-
// Convert ErrorEvent/ToolErrorEvent to Error
|
|
232
|
-
const message = 'message' in error ? error.message :
|
|
233
|
-
'error' in error ? error.error :
|
|
234
|
-
'Unknown error';
|
|
235
|
-
this.emit('error', new Error(message));
|
|
236
|
-
}
|
|
237
|
-
});
|
|
238
|
-
this.parser.on('token-limit', () => {
|
|
239
|
-
this.emit('token-limit');
|
|
240
|
-
});
|
|
173
|
+
getMessages() {
|
|
174
|
+
return [...this.messages];
|
|
241
175
|
}
|
|
242
176
|
/**
|
|
243
|
-
*
|
|
177
|
+
* Process individual SDK messages and emit appropriate events
|
|
244
178
|
*/
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
signal,
|
|
259
|
-
timestamp: new Date().toISOString()
|
|
260
|
-
};
|
|
261
|
-
this.logStream.write(JSON.stringify(exitEvent) + '\n');
|
|
262
|
-
}
|
|
263
|
-
// Process any remaining data
|
|
264
|
-
if (this.parser) {
|
|
265
|
-
console.log('[ClaudeRunner] Processing any remaining parser data');
|
|
266
|
-
this.parser.processEnd();
|
|
267
|
-
}
|
|
268
|
-
this.emit('exit', code);
|
|
269
|
-
this.process = null;
|
|
270
|
-
this.parser = null;
|
|
271
|
-
// Close log stream
|
|
272
|
-
if (this.logStream) {
|
|
273
|
-
this.logStream.end();
|
|
274
|
-
this.logStream = null;
|
|
275
|
-
}
|
|
276
|
-
});
|
|
277
|
-
// Capture stderr
|
|
278
|
-
if (this.process.stderr) {
|
|
279
|
-
console.log('[ClaudeRunner] Setting up stderr handler');
|
|
280
|
-
let stderrBuffer = '';
|
|
281
|
-
this.process.stderr.on('data', (chunk) => {
|
|
282
|
-
const chunkStr = chunk.toString();
|
|
283
|
-
console.log(`[ClaudeRunner] Received stderr data: ${chunkStr}`);
|
|
284
|
-
stderrBuffer += chunkStr;
|
|
285
|
-
// Log to file for debugging
|
|
286
|
-
if (this.logStream) {
|
|
287
|
-
const errorEvent = {
|
|
288
|
-
type: 'stderr',
|
|
289
|
-
data: chunkStr,
|
|
290
|
-
timestamp: new Date().toISOString()
|
|
291
|
-
};
|
|
292
|
-
this.logStream.write(JSON.stringify(errorEvent) + '\n');
|
|
293
|
-
}
|
|
294
|
-
// Emit complete lines
|
|
295
|
-
const lines = stderrBuffer.split('\n');
|
|
296
|
-
stderrBuffer = lines.pop() || '';
|
|
297
|
-
for (const line of lines) {
|
|
298
|
-
if (line.trim()) {
|
|
299
|
-
console.error(`[ClaudeRunner] stderr line: ${line}`);
|
|
300
|
-
this.emit('error', new Error(`Claude stderr: ${line}`));
|
|
179
|
+
processMessage(message) {
|
|
180
|
+
switch (message.type) {
|
|
181
|
+
case 'assistant':
|
|
182
|
+
if (message.message?.content && Array.isArray(message.message.content)) {
|
|
183
|
+
// Process content blocks
|
|
184
|
+
for (const block of message.message.content) {
|
|
185
|
+
if (block.type === 'text') {
|
|
186
|
+
this.emit('text', block.text);
|
|
187
|
+
this.emit('assistant', block.text);
|
|
188
|
+
}
|
|
189
|
+
else if (block.type === 'tool_use') {
|
|
190
|
+
this.emit('tool-use', block.name, block.input);
|
|
191
|
+
}
|
|
301
192
|
}
|
|
302
193
|
}
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
194
|
+
break;
|
|
195
|
+
case 'user':
|
|
196
|
+
// User messages don't typically need special processing
|
|
197
|
+
break;
|
|
198
|
+
case 'result':
|
|
199
|
+
// Result messages indicate completion
|
|
200
|
+
break;
|
|
201
|
+
case 'system':
|
|
202
|
+
// System messages are for initialization
|
|
203
|
+
break;
|
|
204
|
+
default:
|
|
205
|
+
console.log(`[ClaudeRunner] Unhandled message type: ${message.type}`);
|
|
307
206
|
}
|
|
308
207
|
}
|
|
309
208
|
/**
|
|
@@ -321,16 +220,17 @@ export class ClaudeRunner extends EventEmitter {
|
|
|
321
220
|
const workspaceLogsDir = join(logsDir, workspaceName);
|
|
322
221
|
// Create directories
|
|
323
222
|
mkdirSync(workspaceLogsDir, { recursive: true });
|
|
324
|
-
// Create
|
|
223
|
+
// Create log file with session ID and timestamp
|
|
325
224
|
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
326
|
-
const logFileName = `session-${timestamp}.jsonl`;
|
|
225
|
+
const logFileName = `session-${this.sessionInfo?.sessionId || 'unknown'}-${timestamp}.jsonl`;
|
|
327
226
|
const logFilePath = join(workspaceLogsDir, logFileName);
|
|
328
227
|
console.log(`[ClaudeRunner] Creating log file at: ${logFilePath}`);
|
|
329
228
|
this.logStream = createWriteStream(logFilePath, { flags: 'a' });
|
|
330
229
|
// Write initial metadata
|
|
331
230
|
const metadata = {
|
|
332
231
|
type: 'session-metadata',
|
|
333
|
-
|
|
232
|
+
sessionId: this.sessionInfo?.sessionId,
|
|
233
|
+
startedAt: this.sessionInfo?.startedAt?.toISOString(),
|
|
334
234
|
workingDirectory: this.config.workingDirectory,
|
|
335
235
|
workspaceName: workspaceName,
|
|
336
236
|
timestamp: new Date().toISOString()
|
|
@@ -341,41 +241,5 @@ export class ClaudeRunner extends EventEmitter {
|
|
|
341
241
|
console.error('[ClaudeRunner] Failed to set up logging:', error);
|
|
342
242
|
}
|
|
343
243
|
}
|
|
344
|
-
/**
|
|
345
|
-
* Update log file path when session ID is captured
|
|
346
|
-
*/
|
|
347
|
-
updateLogFilePath() {
|
|
348
|
-
if (!this.sessionId || !this.logStream)
|
|
349
|
-
return;
|
|
350
|
-
try {
|
|
351
|
-
// Close current stream
|
|
352
|
-
this.logStream.end();
|
|
353
|
-
// Create new file with session ID
|
|
354
|
-
const cyrusDir = join(homedir(), '.cyrus');
|
|
355
|
-
const logsDir = join(cyrusDir, 'logs');
|
|
356
|
-
const workspaceName = this.config.workspaceName ||
|
|
357
|
-
(this.config.workingDirectory ? this.config.workingDirectory.split('/').pop() : 'default') ||
|
|
358
|
-
'default';
|
|
359
|
-
const workspaceLogsDir = join(logsDir, workspaceName);
|
|
360
|
-
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
361
|
-
const logFileName = `session-${this.sessionId}-${timestamp}.jsonl`;
|
|
362
|
-
const logFilePath = join(workspaceLogsDir, logFileName);
|
|
363
|
-
console.log(`[ClaudeRunner] Updating log file to: ${logFilePath}`);
|
|
364
|
-
this.logStream = createWriteStream(logFilePath, { flags: 'a' });
|
|
365
|
-
// Write session metadata
|
|
366
|
-
const metadata = {
|
|
367
|
-
type: 'session-metadata',
|
|
368
|
-
sessionId: this.sessionId,
|
|
369
|
-
startedAt: this.startedAt?.toISOString(),
|
|
370
|
-
workingDirectory: this.config.workingDirectory,
|
|
371
|
-
workspaceName: workspaceName,
|
|
372
|
-
timestamp: new Date().toISOString()
|
|
373
|
-
};
|
|
374
|
-
this.logStream.write(JSON.stringify(metadata) + '\n');
|
|
375
|
-
}
|
|
376
|
-
catch (error) {
|
|
377
|
-
console.error('[ClaudeRunner] Failed to update log file path:', error);
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
244
|
}
|
|
381
245
|
//# sourceMappingURL=ClaudeRunner.js.map
|
package/dist/ClaudeRunner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeRunner.js","sourceRoot":"","sources":["../src/ClaudeRunner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ClaudeRunner.js","sourceRoot":"","sources":["../src/ClaudeRunner.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { ClaudeRunner } from './ClaudeRunner.js';
|
|
2
2
|
export { availableTools, readOnlyTools, writeTools, getReadOnlyTools, getAllTools, getSafeTools, type ToolName } from './config.js';
|
|
3
|
-
export type { ClaudeRunnerConfig,
|
|
3
|
+
export type { ClaudeRunnerConfig, ClaudeSessionInfo, ClaudeRunnerEvents, SDKMessage } from './types.js';
|
|
4
4
|
//# 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,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EACL,cAAc,EACd,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,KAAK,QAAQ,EACd,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EACL,cAAc,EACd,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,KAAK,QAAQ,EACd,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACX,MAAM,YAAY,CAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,30 +1,29 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { ClaudeEvent } from 'cyrus-claude-parser';
|
|
1
|
+
import type { SDKMessage } from '@anthropic-ai/claude-code';
|
|
3
2
|
export interface ClaudeRunnerConfig {
|
|
4
|
-
claudePath: string;
|
|
5
3
|
workingDirectory?: string;
|
|
6
4
|
allowedTools?: string[];
|
|
7
5
|
allowedDirectories?: string[];
|
|
8
6
|
continueSession?: boolean;
|
|
9
7
|
workspaceName?: string;
|
|
10
|
-
|
|
8
|
+
systemPrompt?: string;
|
|
9
|
+
mcpConfigPath?: string;
|
|
10
|
+
onMessage?: (message: SDKMessage) => void;
|
|
11
11
|
onError?: (error: Error) => void;
|
|
12
|
-
|
|
12
|
+
onComplete?: (messages: SDKMessage[]) => void;
|
|
13
13
|
}
|
|
14
|
-
export interface
|
|
15
|
-
|
|
16
|
-
pid: number | undefined;
|
|
14
|
+
export interface ClaudeSessionInfo {
|
|
15
|
+
sessionId: string;
|
|
17
16
|
startedAt: Date;
|
|
17
|
+
isRunning: boolean;
|
|
18
18
|
}
|
|
19
19
|
export interface ClaudeRunnerEvents {
|
|
20
|
-
'message': (
|
|
21
|
-
'assistant': (
|
|
20
|
+
'message': (message: SDKMessage) => void;
|
|
21
|
+
'assistant': (content: string) => void;
|
|
22
22
|
'tool-use': (toolName: string, input: any) => void;
|
|
23
23
|
'text': (text: string) => void;
|
|
24
24
|
'end-turn': (lastText: string) => void;
|
|
25
|
-
'result': (event: ClaudeEvent) => void;
|
|
26
25
|
'error': (error: Error) => void;
|
|
27
|
-
'
|
|
28
|
-
'exit': (code: number | null) => void;
|
|
26
|
+
'complete': (messages: SDKMessage[]) => void;
|
|
29
27
|
}
|
|
28
|
+
export type { SDKMessage } from '@anthropic-ai/claude-code';
|
|
30
29
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAE3D,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAA;IACzC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,IAAI,CAAA;CAC9C;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAA;IACxC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IAClD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAC/B,UAAU,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,IAAI,CAAA;CAC7C;AAGD,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cyrus-claude-runner",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "Claude process spawning and management for Cyrus",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"dist"
|
|
10
10
|
],
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"
|
|
12
|
+
"@anthropic-ai/claude-code": "^1.0.24"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@types/node": "^20.0.0",
|