cyrus-claude-runner 0.0.1 → 0.0.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/dist/ClaudeRunner.d.ts +17 -29
- package/dist/ClaudeRunner.d.ts.map +1 -1
- package/dist/ClaudeRunner.js +159 -290
- package/dist/ClaudeRunner.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -6
- package/dist/config.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;IAwIvD;;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,213 @@
|
|
|
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 if (error instanceof Error && error.message.includes('Claude Code process exited with code 143')) {
|
|
131
|
+
// Exit code 143 is SIGTERM (128 + 15), which indicates graceful termination
|
|
132
|
+
// This is expected when the session is stopped during unassignment
|
|
133
|
+
console.log('[ClaudeRunner] Session was terminated gracefully (SIGTERM)');
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
this.emit('error', error instanceof Error ? error : new Error(String(error)));
|
|
137
|
+
}
|
|
96
138
|
}
|
|
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');
|
|
139
|
+
finally {
|
|
140
|
+
// Clean up
|
|
141
|
+
this.abortController = null;
|
|
142
|
+
// Close log stream
|
|
143
|
+
if (this.logStream) {
|
|
144
|
+
this.logStream.end();
|
|
145
|
+
this.logStream = null;
|
|
146
|
+
}
|
|
111
147
|
}
|
|
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
|
-
});
|
|
148
|
+
return this.sessionInfo;
|
|
132
149
|
}
|
|
133
150
|
/**
|
|
134
|
-
*
|
|
151
|
+
* Stop the current Claude session
|
|
135
152
|
*/
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
this.process?.stdin?.end();
|
|
142
|
-
console.log('[ClaudeRunner] stdin closed successfully');
|
|
143
|
-
}
|
|
144
|
-
catch (error) {
|
|
145
|
-
console.error('[ClaudeRunner] Error in sendInitialPrompt:', error);
|
|
146
|
-
throw error;
|
|
153
|
+
stop() {
|
|
154
|
+
if (this.abortController) {
|
|
155
|
+
console.log('[ClaudeRunner] Stopping Claude session');
|
|
156
|
+
this.abortController.abort();
|
|
157
|
+
this.abortController = null;
|
|
147
158
|
}
|
|
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;
|
|
159
|
+
if (this.sessionInfo) {
|
|
160
|
+
this.sessionInfo.isRunning = false;
|
|
157
161
|
}
|
|
158
162
|
}
|
|
159
163
|
/**
|
|
160
|
-
* Check if
|
|
164
|
+
* Check if session is running
|
|
161
165
|
*/
|
|
162
166
|
isRunning() {
|
|
163
|
-
return this.
|
|
167
|
+
return this.sessionInfo?.isRunning ?? false;
|
|
164
168
|
}
|
|
165
169
|
/**
|
|
166
|
-
*
|
|
170
|
+
* Get current session info
|
|
167
171
|
*/
|
|
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;
|
|
172
|
+
getSessionInfo() {
|
|
173
|
+
return this.sessionInfo;
|
|
190
174
|
}
|
|
191
175
|
/**
|
|
192
|
-
*
|
|
176
|
+
* Get all messages from current session
|
|
193
177
|
*/
|
|
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
|
-
});
|
|
178
|
+
getMessages() {
|
|
179
|
+
return [...this.messages];
|
|
241
180
|
}
|
|
242
181
|
/**
|
|
243
|
-
*
|
|
182
|
+
* Process individual SDK messages and emit appropriate events
|
|
244
183
|
*/
|
|
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}`));
|
|
184
|
+
processMessage(message) {
|
|
185
|
+
switch (message.type) {
|
|
186
|
+
case 'assistant':
|
|
187
|
+
if (message.message?.content && Array.isArray(message.message.content)) {
|
|
188
|
+
// Process content blocks
|
|
189
|
+
for (const block of message.message.content) {
|
|
190
|
+
if (block.type === 'text') {
|
|
191
|
+
this.emit('text', block.text);
|
|
192
|
+
this.emit('assistant', block.text);
|
|
193
|
+
}
|
|
194
|
+
else if (block.type === 'tool_use') {
|
|
195
|
+
this.emit('tool-use', block.name, block.input);
|
|
196
|
+
}
|
|
301
197
|
}
|
|
302
198
|
}
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
199
|
+
break;
|
|
200
|
+
case 'user':
|
|
201
|
+
// User messages don't typically need special processing
|
|
202
|
+
break;
|
|
203
|
+
case 'result':
|
|
204
|
+
// Result messages indicate completion
|
|
205
|
+
break;
|
|
206
|
+
case 'system':
|
|
207
|
+
// System messages are for initialization
|
|
208
|
+
break;
|
|
209
|
+
default:
|
|
210
|
+
console.log(`[ClaudeRunner] Unhandled message type: ${message.type}`);
|
|
307
211
|
}
|
|
308
212
|
}
|
|
309
213
|
/**
|
|
@@ -321,16 +225,17 @@ export class ClaudeRunner extends EventEmitter {
|
|
|
321
225
|
const workspaceLogsDir = join(logsDir, workspaceName);
|
|
322
226
|
// Create directories
|
|
323
227
|
mkdirSync(workspaceLogsDir, { recursive: true });
|
|
324
|
-
// Create
|
|
228
|
+
// Create log file with session ID and timestamp
|
|
325
229
|
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
326
|
-
const logFileName = `session-${timestamp}.jsonl`;
|
|
230
|
+
const logFileName = `session-${this.sessionInfo?.sessionId || 'unknown'}-${timestamp}.jsonl`;
|
|
327
231
|
const logFilePath = join(workspaceLogsDir, logFileName);
|
|
328
232
|
console.log(`[ClaudeRunner] Creating log file at: ${logFilePath}`);
|
|
329
233
|
this.logStream = createWriteStream(logFilePath, { flags: 'a' });
|
|
330
234
|
// Write initial metadata
|
|
331
235
|
const metadata = {
|
|
332
236
|
type: 'session-metadata',
|
|
333
|
-
|
|
237
|
+
sessionId: this.sessionInfo?.sessionId,
|
|
238
|
+
startedAt: this.sessionInfo?.startedAt?.toISOString(),
|
|
334
239
|
workingDirectory: this.config.workingDirectory,
|
|
335
240
|
workspaceName: workspaceName,
|
|
336
241
|
timestamp: new Date().toISOString()
|
|
@@ -341,41 +246,5 @@ export class ClaudeRunner extends EventEmitter {
|
|
|
341
246
|
console.error('[ClaudeRunner] Failed to set up logging:', error);
|
|
342
247
|
}
|
|
343
248
|
}
|
|
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
249
|
}
|
|
381
250
|
//# 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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAoB,MAAM,IAAI,CAAA;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,YAAY,EAA0D,MAAM,qBAAqB,CAAA;AAQ1G;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,YAAY;IACpC,MAAM,CAAoB;IAC1B,OAAO,GAAwB,IAAI,CAAA;IACnC,MAAM,GAAwB,IAAI,CAAA;IAClC,SAAS,GAAgB,IAAI,CAAA;IAC7B,SAAS,GAAuB,IAAI,CAAA;IACpC,SAAS,GAAkB,IAAI,CAAA;IAEvC,YAAY,MAA0B;QACpC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAEpB,qCAAqC;QACrC,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACtD,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACpD,IAAI,MAAM,CAAC,MAAM;YAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAED,0BAA0B;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC7B,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAA;QAEvE,gBAAgB;QAChB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAA;QAC1D,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;QAChF,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEpE,kCAAkC;QAClC,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBAC5D,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;YAC3D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,GAAG,CAAC,CAAA;YAC1E,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;QACxD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;YAC1C,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;YACjC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,KAAK,EAAE,KAAK,CAAC,4BAA4B;SAC1C,CAAC,CAAA;QAEF,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;QAC3B,OAAO,CAAC,GAAG,CAAC,4CAA4C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QAE3E,uBAAuB;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE,CAAA;QAChC,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAExB,wBAAwB;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAEzB,iBAAiB;QACjB,IAAI,CAAC,YAAY,EAAE,CAAA;QAEnB,6BAA6B;QAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAA;YAC5D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;gBACjC,OAAO,CAAC,GAAG,CAAC,gDAAgD,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAA;gBACjF,OAAO,CAAC,GAAG,CAAC,6CAA6C,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;gBAEtF,uCAAuC;gBACvC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,WAAW,GAAG;wBAClB,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC,CAAA;oBACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAA;gBAC1D,CAAC;gBAED,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;YACjC,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;QACjE,CAAC;QAED,2BAA2B;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;QAChE,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,OAAO,CAAC,GAAG,CAAC,sDAAsD,KAAK,CAAC,MAAM,aAAa,CAAC,CAAA;QAE5F,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAA;YACjE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7C,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,kDAAkD;YAClD,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAA;YAEpE,OAAO,CAAC,GAAG,CAAC,4CAA4C,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YAEnF,IAAI,CAAC,OAAQ,CAAC,KAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE;gBACnD,IAAI,GAAG,EAAE,CAAC;oBACR,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAA;oBAC5D,MAAM,CAAC,GAAG,CAAC,CAAA;gBACb,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAA;oBACzD,gDAAgD;oBAChD,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;wBAChC,IAAI,CAAC,OAAQ,CAAC,KAAM,CAAC,GAAG,EAAE,CAAA;wBAC1B,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAA;oBAC9D,CAAC;oBACD,OAAO,EAAE,CAAA;gBACX,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAc;QACpC,OAAO,CAAC,GAAG,CAAC,+DAA+D,MAAM,CAAC,MAAM,aAAa,CAAC,CAAA;QACtG,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YAC5B,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;YAChE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;YAC1B,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAA;YAClE,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;YACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QACpB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;IACtD,CAAC;IAED;;OAEG;IACK,SAAS;QACf,MAAM,IAAI,GAAG;YACX,SAAS;YACT,WAAW;YACX,iBAAiB;YACjB,aAAa;SACd,CAAA;QAED,iCAAiC;QACjC,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACzB,CAAC;QAED,oBAAoB;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACxC,CAAC;QAED,0BAA0B;QAC1B,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACtB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAC9C,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAM;QAExB,qBAAqB;QACrB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAkB,EAAE,EAAE;YAC/C,uDAAuD;YACvD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,WAAW,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC/D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAmB,CAAA;gBAC1C,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;gBACpE,IAAI,CAAC,iBAAiB,EAAE,CAAA;YAC1B,CAAC;YAED,gBAAgB;YAChB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;YACpD,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,KAAkB,EAAE,EAAE;YACjD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAAgB,EAAE,KAAU,EAAE,EAAE;YAC1D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAAgB,EAAE,EAAE;YAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAkB,EAAE,EAAE;YAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAA0C,EAAE,EAAE;YACrE,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,6CAA6C;gBAC7C,MAAM,OAAO,GAAG,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACrC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAChC,eAAe,CAAA;gBAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;YACxC,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACK,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEzB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QACzE,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACvC,OAAO,CAAC,GAAG,CAAC,4CAA4C,IAAI,aAAa,MAAM,EAAE,CAAC,CAAA;YAElF,mBAAmB;YACnB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG;oBAChB,IAAI,EAAE,cAAc;oBACpB,IAAI;oBACJ,MAAM;oBACN,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAA;gBACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAA;YACxD,CAAC;YAED,6BAA6B;YAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAA;gBAClE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;YAC1B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;YACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YAElB,mBAAmB;YACnB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAA;gBACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;YACvB,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,iBAAiB;QACjB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;YACvD,IAAI,YAAY,GAAG,EAAE,CAAA;YACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;gBACjC,OAAO,CAAC,GAAG,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAA;gBAC/D,YAAY,IAAI,QAAQ,CAAA;gBAExB,4BAA4B;gBAC5B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,UAAU,GAAG;wBACjB,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC,CAAA;oBACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAA;gBACzD,CAAC;gBACD,sBAAsB;gBACtB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACtC,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;gBAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;wBAChB,OAAO,CAAC,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAA;wBACpD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAA;oBACzD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,IAAI,CAAC;YACH,mEAAmE;YACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAA;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAEtC,mEAAmE;YACnE,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa;gBAC7C,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC1F,SAAS,CAAA;YACX,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YAErD,qBAAqB;YACrB,SAAS,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAEhD,yCAAyC;YACzC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YAChE,MAAM,WAAW,GAAG,WAAW,SAAS,QAAQ,CAAA;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAA;YAEvD,OAAO,CAAC,GAAG,CAAC,wCAAwC,WAAW,EAAE,CAAC,CAAA;YAClE,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YAE/D,yBAAyB;YACzB,MAAM,QAAQ,GAAG;gBACf,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE;gBACxC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;gBAC9C,aAAa,EAAE,aAAa;gBAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAA;YACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;QAEvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAM;QAE9C,IAAI,CAAC;YACH,uBAAuB;YACvB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAA;YAEpB,kCAAkC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAA;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YACtC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa;gBAC7C,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC1F,SAAS,CAAA;YACX,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YAErD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YAChE,MAAM,WAAW,GAAG,WAAW,IAAI,CAAC,SAAS,IAAI,SAAS,QAAQ,CAAA;YAClE,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAA;YAEvD,OAAO,CAAC,GAAG,CAAC,wCAAwC,WAAW,EAAE,CAAC,CAAA;YAClE,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YAE/D,yBAAyB;YACzB,MAAM,QAAQ,GAAG;gBACf,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE;gBACxC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;gBAC9C,aAAa,EAAE,aAAa;gBAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAA;YACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;QAEvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAA;QACxE,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"ClaudeRunner.js","sourceRoot":"","sources":["../src/ClaudeRunner.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
/**
|
|
5
5
|
* List of all available tools in Claude Code
|
|
6
6
|
*/
|
|
7
|
-
export declare const availableTools: readonly ["Read", "
|
|
7
|
+
export declare const availableTools: readonly ["Read(**)", "Edit(**)", "Bash", "Task", "WebFetch", "WebSearch", "TodoRead", "TodoWrite", "NotebookRead", "NotebookEdit", "Batch"];
|
|
8
8
|
export type ToolName = typeof availableTools[number];
|
|
9
9
|
/**
|
|
10
10
|
* Default read-only tools that are safe to enable
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,8IAkBjB,CAAA;AAEV,MAAM,MAAM,QAAQ,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;AAEpD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,EAGnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,EAGhC,CAAA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAKvC"}
|
package/dist/config.js
CHANGED
|
@@ -6,12 +6,11 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export const availableTools = [
|
|
8
8
|
// File system tools
|
|
9
|
-
'Read', '
|
|
10
|
-
'Glob', 'Grep', 'LS',
|
|
9
|
+
'Read(**)', 'Edit(**)',
|
|
11
10
|
// Execution tools
|
|
12
11
|
'Bash', 'Task',
|
|
13
12
|
// Web tools
|
|
14
|
-
'WebFetch',
|
|
13
|
+
'WebFetch', 'WebSearch',
|
|
15
14
|
// Task management
|
|
16
15
|
'TodoRead', 'TodoWrite',
|
|
17
16
|
// Notebook tools
|
|
@@ -23,14 +22,14 @@ export const availableTools = [
|
|
|
23
22
|
* Default read-only tools that are safe to enable
|
|
24
23
|
*/
|
|
25
24
|
export const readOnlyTools = [
|
|
26
|
-
'Read', '
|
|
25
|
+
'Read(**)', 'WebFetch', 'WebSearch',
|
|
27
26
|
'TodoRead', 'NotebookRead', 'Task', 'Batch'
|
|
28
27
|
];
|
|
29
28
|
/**
|
|
30
29
|
* Tools that can modify the file system
|
|
31
30
|
*/
|
|
32
31
|
export const writeTools = [
|
|
33
|
-
'
|
|
32
|
+
'Edit(**)', 'Bash',
|
|
34
33
|
'TodoWrite', 'NotebookEdit'
|
|
35
34
|
];
|
|
36
35
|
/**
|
|
@@ -49,6 +48,9 @@ export function getAllTools() {
|
|
|
49
48
|
* Get all tools except Bash (safer default for repository configuration)
|
|
50
49
|
*/
|
|
51
50
|
export function getSafeTools() {
|
|
52
|
-
return
|
|
51
|
+
return [
|
|
52
|
+
'Read(**)', 'Edit(**)', 'Task', 'WebFetch', 'WebSearch',
|
|
53
|
+
'TodoRead', 'TodoWrite', 'NotebookRead', 'NotebookEdit', 'Batch'
|
|
54
|
+
];
|
|
53
55
|
}
|
|
54
56
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,oBAAoB;IACpB,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,oBAAoB;IACpB,UAAU,EAAE,UAAU;IAEtB,kBAAkB;IAClB,MAAM,EAAE,MAAM;IAEd,YAAY;IACZ,UAAU,EAAE,WAAW;IAEvB,kBAAkB;IAClB,UAAU,EAAE,WAAW;IAEvB,iBAAiB;IACjB,cAAc,EAAE,cAAc;IAE9B,gBAAgB;IAChB,OAAO;CACC,CAAA;AAIV;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,UAAU,EAAE,UAAU,EAAE,WAAW;IACnC,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO;CAC5C,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,cAAc;CAC5B,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,GAAG,aAAa,CAAC,CAAA;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,CAAC,GAAG,cAAc,CAAC,CAAA;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO;QACL,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW;QACvD,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO;KACjE,CAAA;AACH,CAAC"}
|
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.3",
|
|
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",
|