@cmdctrl/cursor-cli 0.1.1 → 0.2.1
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/adapter/cursor-cli.d.ts +23 -19
- package/dist/adapter/cursor-cli.d.ts.map +1 -1
- package/dist/adapter/cursor-cli.js +156 -126
- package/dist/adapter/cursor-cli.js.map +1 -1
- package/dist/adapter/events.d.ts +36 -20
- package/dist/adapter/events.d.ts.map +1 -1
- package/dist/adapter/events.js +40 -35
- package/dist/adapter/events.js.map +1 -1
- package/dist/commands/register.d.ts +0 -3
- package/dist/commands/register.d.ts.map +1 -1
- package/dist/commands/register.js +23 -122
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/start.d.ts +1 -8
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +117 -30
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts +1 -4
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +25 -22
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts +1 -4
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +21 -26
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/unregister.d.ts +2 -0
- package/dist/commands/unregister.d.ts.map +1 -0
- package/dist/commands/unregister.js +43 -0
- package/dist/commands/unregister.js.map +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +21 -2
- package/dist/commands/update.js.map +1 -1
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/message-store.d.ts +18 -0
- package/dist/message-store.d.ts.map +1 -0
- package/dist/message-store.js +49 -0
- package/dist/message-store.js.map +1 -0
- package/package.json +2 -2
- package/src/adapter/cursor-cli.ts +165 -147
- package/src/adapter/events.ts +65 -51
- package/src/commands/register.ts +28 -170
- package/src/commands/start.ts +132 -41
- package/src/commands/status.ts +23 -28
- package/src/commands/stop.ts +21 -32
- package/src/commands/unregister.ts +43 -0
- package/src/commands/update.ts +24 -3
- package/src/index.ts +9 -4
- package/src/message-store.ts +61 -0
- package/src/client/messages.ts +0 -75
- package/src/client/websocket.ts +0 -308
- package/src/config/config.ts +0 -146
|
@@ -1,34 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cursor CLI Adapter
|
|
3
|
+
*
|
|
4
|
+
* Spawns cursor-agent in headless mode with --output-format stream-json
|
|
5
|
+
* and translates the NDJSON event stream into CmdCtrl daemon events.
|
|
6
|
+
*
|
|
7
|
+
* Cursor CLI commands:
|
|
8
|
+
* New session: cursor-agent -p "instruction" --output-format stream-json
|
|
9
|
+
* Resume session: cursor-agent --resume=<session-id> -p "message" --output-format stream-json
|
|
10
|
+
*/
|
|
1
11
|
type EventCallback = (taskId: string, eventType: string, data: Record<string, unknown>) => void;
|
|
2
12
|
export declare class CursorAdapter {
|
|
3
13
|
private running;
|
|
4
14
|
private onEvent;
|
|
5
15
|
constructor(onEvent: EventCallback);
|
|
6
|
-
/**
|
|
7
|
-
* Start a new task
|
|
8
|
-
*/
|
|
9
16
|
startTask(taskId: string, instruction: string, projectPath?: string): Promise<void>;
|
|
10
|
-
/**
|
|
11
|
-
* Resume a task with user's reply
|
|
12
|
-
*/
|
|
13
17
|
resumeTask(taskId: string, sessionId: string, message: string, projectPath?: string): Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
* Cancel a running task
|
|
16
|
-
*/
|
|
17
18
|
cancelTask(taskId: string): Promise<void>;
|
|
18
|
-
/**
|
|
19
|
-
* Stop all running tasks
|
|
20
|
-
*/
|
|
21
19
|
stopAll(): Promise<void>;
|
|
22
|
-
/**
|
|
23
|
-
* Get list of running task IDs
|
|
24
|
-
*/
|
|
25
20
|
getRunningTasks(): string[];
|
|
26
|
-
/**
|
|
27
|
-
* Handle process stdout/stderr and emit events
|
|
28
|
-
*/
|
|
29
21
|
private handleProcessOutput;
|
|
22
|
+
private handleProcessOutputWithoutClose;
|
|
30
23
|
/**
|
|
31
|
-
* Handle a parsed stream event from
|
|
24
|
+
* Handle a parsed stream event from cursor-agent and translate to CmdCtrl events.
|
|
25
|
+
*
|
|
26
|
+
* cursor-agent events → CmdCtrl events:
|
|
27
|
+
* system (init) → SESSION_STARTED
|
|
28
|
+
* user → (ignored, echo of input)
|
|
29
|
+
* thinking (delta) → (accumulate context)
|
|
30
|
+
* thinking (completed) → (ignored)
|
|
31
|
+
* assistant → OUTPUT
|
|
32
|
+
* tool_call → PROGRESS
|
|
33
|
+
* tool_result → OUTPUT (verbose)
|
|
34
|
+
* result (success) → TASK_COMPLETE
|
|
35
|
+
* result (error) → ERROR
|
|
32
36
|
*/
|
|
33
37
|
private handleStreamEvent;
|
|
34
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-cli.d.ts","sourceRoot":"","sources":["../../src/adapter/cursor-cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cursor-cli.d.ts","sourceRoot":"","sources":["../../src/adapter/cursor-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA6CH,KAAK,aAAa,GAAG,CACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,IAAI,CAAC;AAEV,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,OAAO,CAAgB;gBAEnB,OAAO,EAAE,aAAa;IAI5B,SAAS,CACb,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IA8CV,UAAU,CACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IA4EV,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASzC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B,eAAe,IAAI,MAAM,EAAE;IAI3B,OAAO,CAAC,mBAAmB;IAyC3B,OAAO,CAAC,+BAA+B;IA2BvC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,iBAAiB;CAoF1B"}
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cursor CLI Adapter
|
|
4
|
+
*
|
|
5
|
+
* Spawns cursor-agent in headless mode with --output-format stream-json
|
|
6
|
+
* and translates the NDJSON event stream into CmdCtrl daemon events.
|
|
7
|
+
*
|
|
8
|
+
* Cursor CLI commands:
|
|
9
|
+
* New session: cursor-agent -p "instruction" --output-format stream-json
|
|
10
|
+
* Resume session: cursor-agent --resume=<session-id> -p "message" --output-format stream-json
|
|
11
|
+
*/
|
|
2
12
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
13
|
if (k2 === undefined) k2 = k;
|
|
4
14
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -41,196 +51,173 @@ const os = __importStar(require("os"));
|
|
|
41
51
|
const path = __importStar(require("path"));
|
|
42
52
|
const events_1 = require("./events");
|
|
43
53
|
const DEFAULT_TIMEOUT = 10 * 60 * 1000; // 10 minutes
|
|
44
|
-
// Find cursor-agent CLI in common locations
|
|
45
54
|
function findCursorCli() {
|
|
46
55
|
if (process.env.CURSOR_CLI_PATH) {
|
|
47
56
|
return process.env.CURSOR_CLI_PATH;
|
|
48
57
|
}
|
|
49
58
|
const home = os.homedir();
|
|
50
59
|
const commonPaths = [
|
|
51
|
-
path.join(home, '.cursor', 'bin', 'cursor-agent'),
|
|
52
60
|
path.join(home, '.local', 'bin', 'cursor-agent'),
|
|
61
|
+
path.join(home, '.cursor', 'bin', 'cursor-agent'),
|
|
53
62
|
'/usr/local/bin/cursor-agent',
|
|
54
63
|
'/opt/homebrew/bin/cursor-agent',
|
|
55
|
-
'cursor-agent'
|
|
64
|
+
'cursor-agent'
|
|
56
65
|
];
|
|
57
66
|
for (const p of commonPaths) {
|
|
58
67
|
if (p === 'cursor-agent')
|
|
59
|
-
return p;
|
|
68
|
+
return p;
|
|
60
69
|
try {
|
|
61
|
-
if (fs.existsSync(p))
|
|
70
|
+
if (fs.existsSync(p))
|
|
62
71
|
return p;
|
|
63
|
-
}
|
|
64
72
|
}
|
|
65
73
|
catch {
|
|
66
74
|
continue;
|
|
67
75
|
}
|
|
68
76
|
}
|
|
69
|
-
return 'cursor-agent';
|
|
77
|
+
return 'cursor-agent';
|
|
70
78
|
}
|
|
71
|
-
const CLI_PATH = findCursorCli();
|
|
72
|
-
console.log(`[CursorAdapter] Using CLI path: ${CLI_PATH}`);
|
|
73
79
|
class CursorAdapter {
|
|
74
80
|
running = new Map();
|
|
75
81
|
onEvent;
|
|
76
82
|
constructor(onEvent) {
|
|
77
83
|
this.onEvent = onEvent;
|
|
78
84
|
}
|
|
79
|
-
/**
|
|
80
|
-
* Start a new task
|
|
81
|
-
*/
|
|
82
85
|
async startTask(taskId, instruction, projectPath) {
|
|
83
|
-
console.log(`[${taskId}] Starting task: ${instruction.substring(0, 50)}...`);
|
|
86
|
+
console.log(`[${taskId}] Starting Cursor task: ${instruction.substring(0, 50)}...`);
|
|
84
87
|
const rt = {
|
|
85
88
|
taskId,
|
|
86
89
|
sessionId: '',
|
|
87
|
-
question: '',
|
|
88
90
|
context: '',
|
|
89
91
|
process: null,
|
|
90
|
-
timeoutHandle: null
|
|
92
|
+
timeoutHandle: null,
|
|
91
93
|
};
|
|
92
94
|
this.running.set(taskId, rt);
|
|
93
|
-
// Validate cwd exists
|
|
94
95
|
let cwd = undefined;
|
|
95
96
|
if (projectPath && fs.existsSync(projectPath)) {
|
|
96
97
|
cwd = projectPath;
|
|
97
98
|
}
|
|
98
99
|
else if (projectPath) {
|
|
99
|
-
console.log(`[${taskId}] Warning: project path does not exist: ${projectPath}
|
|
100
|
+
console.log(`[${taskId}] Warning: project path does not exist: ${projectPath}`);
|
|
100
101
|
cwd = os.homedir();
|
|
101
|
-
this.onEvent(taskId, 'WARNING', {
|
|
102
|
-
warning: `Project path "${projectPath}" does not exist. Running in home directory instead.`
|
|
103
|
-
});
|
|
104
102
|
}
|
|
105
|
-
// Build command arguments for Cursor CLI
|
|
106
|
-
// cursor-agent -p "instruction" --output-format stream-json
|
|
107
103
|
const args = [
|
|
108
104
|
'-p', instruction,
|
|
109
105
|
'--output-format', 'stream-json'
|
|
110
106
|
];
|
|
111
|
-
console.log(`[${taskId}] Spawning: ${
|
|
112
|
-
|
|
113
|
-
const proc = (0, child_process_1.spawn)(CLI_PATH, args, {
|
|
107
|
+
console.log(`[${taskId}] Spawning: ${findCursorCli()} with cwd: ${cwd || 'default'}`);
|
|
108
|
+
const proc = (0, child_process_1.spawn)(findCursorCli(), args, {
|
|
114
109
|
cwd,
|
|
115
110
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
116
111
|
env: {
|
|
117
112
|
...process.env,
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
113
|
+
CURSOR_API_KEY: process.env.CURSOR_API_KEY,
|
|
114
|
+
},
|
|
121
115
|
});
|
|
122
116
|
rt.process = proc;
|
|
123
|
-
// Set timeout
|
|
124
117
|
rt.timeoutHandle = setTimeout(() => {
|
|
125
118
|
console.log(`[${taskId}] Task timed out`);
|
|
126
119
|
proc.kill('SIGKILL');
|
|
127
120
|
this.onEvent(taskId, 'ERROR', { error: 'execution timeout' });
|
|
128
121
|
}, DEFAULT_TIMEOUT);
|
|
129
|
-
// Handle process events
|
|
130
122
|
this.handleProcessOutput(taskId, proc, rt);
|
|
131
123
|
}
|
|
132
|
-
/**
|
|
133
|
-
* Resume a task with user's reply
|
|
134
|
-
*/
|
|
135
124
|
async resumeTask(taskId, sessionId, message, projectPath) {
|
|
136
|
-
console.log(`[${taskId}] Resuming
|
|
125
|
+
console.log(`[${taskId}] Resuming Cursor session ${sessionId}: ${message.substring(0, 50)}...`);
|
|
137
126
|
const rt = {
|
|
138
127
|
taskId,
|
|
139
128
|
sessionId,
|
|
140
|
-
question: '',
|
|
141
129
|
context: '',
|
|
142
130
|
process: null,
|
|
143
|
-
timeoutHandle: null
|
|
131
|
+
timeoutHandle: null,
|
|
144
132
|
};
|
|
145
133
|
this.running.set(taskId, rt);
|
|
146
|
-
// Validate cwd exists
|
|
147
134
|
let cwd = undefined;
|
|
148
135
|
if (projectPath && fs.existsSync(projectPath)) {
|
|
149
136
|
cwd = projectPath;
|
|
150
137
|
}
|
|
151
138
|
else if (projectPath) {
|
|
152
|
-
console.log(`[${taskId}] Warning: project path does not exist: ${projectPath}, using home dir`);
|
|
153
139
|
cwd = os.homedir();
|
|
154
140
|
}
|
|
155
|
-
// Build command arguments with --resume
|
|
156
|
-
// cursor-agent --resume="session-id" -p "user response" --output-format stream-json
|
|
157
141
|
const args = [
|
|
158
142
|
`--resume=${sessionId}`,
|
|
159
143
|
'-p', message,
|
|
160
144
|
'--output-format', 'stream-json'
|
|
161
145
|
];
|
|
162
|
-
console.log(`[${taskId}] Spawning resume:
|
|
163
|
-
|
|
164
|
-
const proc = (0, child_process_1.spawn)(CLI_PATH, args, {
|
|
146
|
+
console.log(`[${taskId}] Spawning resume: cursor-agent --resume ${sessionId}`);
|
|
147
|
+
const proc = (0, child_process_1.spawn)(findCursorCli(), args, {
|
|
165
148
|
cwd,
|
|
166
149
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
167
150
|
env: {
|
|
168
151
|
...process.env,
|
|
169
|
-
CURSOR_API_KEY: process.env.CURSOR_API_KEY
|
|
170
|
-
}
|
|
152
|
+
CURSOR_API_KEY: process.env.CURSOR_API_KEY,
|
|
153
|
+
},
|
|
171
154
|
});
|
|
172
155
|
rt.process = proc;
|
|
173
|
-
|
|
156
|
+
let sessionNotFound = false;
|
|
157
|
+
proc.stderr?.on('data', (data) => {
|
|
158
|
+
const text = data.toString();
|
|
159
|
+
console.log(`[${taskId}] stderr: ${text}`);
|
|
160
|
+
if (text.includes('not found') || text.includes('No session') || text.includes('invalid session')) {
|
|
161
|
+
sessionNotFound = true;
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
proc.on('close', (code) => {
|
|
165
|
+
if (code !== 0 && sessionNotFound) {
|
|
166
|
+
console.log(`[${taskId}] Session not found, falling back to new session`);
|
|
167
|
+
if (rt.timeoutHandle)
|
|
168
|
+
clearTimeout(rt.timeoutHandle);
|
|
169
|
+
this.running.delete(taskId);
|
|
170
|
+
this.startTask(taskId, message, projectPath);
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
console.log(`[${taskId}] Process exited with code ${code}`);
|
|
174
|
+
if (rt.timeoutHandle)
|
|
175
|
+
clearTimeout(rt.timeoutHandle);
|
|
176
|
+
if (this.running.has(taskId) && code === 0) {
|
|
177
|
+
this.onEvent(taskId, 'TASK_COMPLETE', {
|
|
178
|
+
session_id: rt.sessionId,
|
|
179
|
+
result: rt.context || '',
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
this.running.delete(taskId);
|
|
183
|
+
});
|
|
174
184
|
rt.timeoutHandle = setTimeout(() => {
|
|
175
185
|
console.log(`[${taskId}] Task timed out`);
|
|
176
186
|
proc.kill('SIGKILL');
|
|
177
187
|
this.onEvent(taskId, 'ERROR', { error: 'execution timeout' });
|
|
178
188
|
}, DEFAULT_TIMEOUT);
|
|
179
|
-
|
|
180
|
-
this.handleProcessOutput(taskId, proc, rt);
|
|
189
|
+
this.handleProcessOutputWithoutClose(taskId, proc, rt);
|
|
181
190
|
}
|
|
182
|
-
/**
|
|
183
|
-
* Cancel a running task
|
|
184
|
-
*/
|
|
185
191
|
async cancelTask(taskId) {
|
|
186
192
|
const rt = this.running.get(taskId);
|
|
187
|
-
if (!rt)
|
|
188
|
-
console.log(`[${taskId}] Task not found for cancellation`);
|
|
193
|
+
if (!rt)
|
|
189
194
|
return;
|
|
190
|
-
|
|
191
|
-
if (rt.process) {
|
|
195
|
+
if (rt.process)
|
|
192
196
|
rt.process.kill('SIGTERM');
|
|
193
|
-
|
|
194
|
-
if (rt.timeoutHandle) {
|
|
197
|
+
if (rt.timeoutHandle)
|
|
195
198
|
clearTimeout(rt.timeoutHandle);
|
|
196
|
-
}
|
|
197
199
|
this.running.delete(taskId);
|
|
198
200
|
console.log(`[${taskId}] Task cancelled`);
|
|
199
201
|
}
|
|
200
|
-
/**
|
|
201
|
-
* Stop all running tasks
|
|
202
|
-
*/
|
|
203
202
|
async stopAll() {
|
|
204
203
|
for (const [taskId, rt] of this.running) {
|
|
205
204
|
console.log(`[${taskId}] Stopping task`);
|
|
206
|
-
if (rt.process)
|
|
205
|
+
if (rt.process)
|
|
207
206
|
rt.process.kill('SIGTERM');
|
|
208
|
-
|
|
209
|
-
if (rt.timeoutHandle) {
|
|
207
|
+
if (rt.timeoutHandle)
|
|
210
208
|
clearTimeout(rt.timeoutHandle);
|
|
211
|
-
}
|
|
212
209
|
}
|
|
213
210
|
this.running.clear();
|
|
214
211
|
}
|
|
215
|
-
/**
|
|
216
|
-
* Get list of running task IDs
|
|
217
|
-
*/
|
|
218
212
|
getRunningTasks() {
|
|
219
213
|
return Array.from(this.running.keys());
|
|
220
214
|
}
|
|
221
|
-
/**
|
|
222
|
-
* Handle process stdout/stderr and emit events
|
|
223
|
-
*/
|
|
224
215
|
handleProcessOutput(taskId, proc, rt) {
|
|
225
|
-
// Create readline interface for NDJSON parsing
|
|
226
216
|
const rl = readline.createInterface({
|
|
227
217
|
input: proc.stdout,
|
|
228
|
-
crlfDelay: Infinity
|
|
218
|
+
crlfDelay: Infinity,
|
|
229
219
|
});
|
|
230
|
-
// Parse each line as JSON
|
|
231
220
|
rl.on('line', (line) => {
|
|
232
|
-
// Emit raw output for verbose mode
|
|
233
|
-
this.onEvent(taskId, 'OUTPUT', { output: line });
|
|
234
221
|
try {
|
|
235
222
|
const event = JSON.parse(line);
|
|
236
223
|
this.handleStreamEvent(taskId, event, rt);
|
|
@@ -239,92 +226,135 @@ class CursorAdapter {
|
|
|
239
226
|
// Not valid JSON, skip
|
|
240
227
|
}
|
|
241
228
|
});
|
|
242
|
-
// Log stderr
|
|
243
229
|
proc.stderr?.on('data', (data) => {
|
|
244
230
|
console.log(`[${taskId}] stderr: ${data.toString()}`);
|
|
245
231
|
});
|
|
246
|
-
// Handle process exit
|
|
247
232
|
proc.on('close', (code) => {
|
|
248
233
|
console.log(`[${taskId}] Process exited with code ${code}`);
|
|
249
|
-
if (rt.timeoutHandle)
|
|
234
|
+
if (rt.timeoutHandle)
|
|
250
235
|
clearTimeout(rt.timeoutHandle);
|
|
236
|
+
// Emit error if process exited non-zero and we haven't already emitted a result
|
|
237
|
+
if (this.running.has(taskId) && code !== 0) {
|
|
238
|
+
this.onEvent(taskId, 'ERROR', { error: `cursor-agent exited with code ${code}` });
|
|
251
239
|
}
|
|
252
240
|
this.running.delete(taskId);
|
|
253
241
|
});
|
|
254
242
|
proc.on('error', (err) => {
|
|
255
243
|
console.error(`[${taskId}] Process error:`, err);
|
|
256
244
|
this.onEvent(taskId, 'ERROR', { error: err.message });
|
|
257
|
-
if (rt.timeoutHandle)
|
|
245
|
+
if (rt.timeoutHandle)
|
|
258
246
|
clearTimeout(rt.timeoutHandle);
|
|
247
|
+
this.running.delete(taskId);
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
handleProcessOutputWithoutClose(taskId, proc, rt) {
|
|
251
|
+
const rl = readline.createInterface({
|
|
252
|
+
input: proc.stdout,
|
|
253
|
+
crlfDelay: Infinity,
|
|
254
|
+
});
|
|
255
|
+
rl.on('line', (line) => {
|
|
256
|
+
try {
|
|
257
|
+
const event = JSON.parse(line);
|
|
258
|
+
this.handleStreamEvent(taskId, event, rt);
|
|
259
259
|
}
|
|
260
|
+
catch {
|
|
261
|
+
// skip
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
proc.on('error', (err) => {
|
|
265
|
+
console.error(`[${taskId}] Process error:`, err);
|
|
266
|
+
this.onEvent(taskId, 'ERROR', { error: err.message });
|
|
267
|
+
if (rt.timeoutHandle)
|
|
268
|
+
clearTimeout(rt.timeoutHandle);
|
|
260
269
|
this.running.delete(taskId);
|
|
261
270
|
});
|
|
262
271
|
}
|
|
263
272
|
/**
|
|
264
|
-
* Handle a parsed stream event from
|
|
273
|
+
* Handle a parsed stream event from cursor-agent and translate to CmdCtrl events.
|
|
274
|
+
*
|
|
275
|
+
* cursor-agent events → CmdCtrl events:
|
|
276
|
+
* system (init) → SESSION_STARTED
|
|
277
|
+
* user → (ignored, echo of input)
|
|
278
|
+
* thinking (delta) → (accumulate context)
|
|
279
|
+
* thinking (completed) → (ignored)
|
|
280
|
+
* assistant → OUTPUT
|
|
281
|
+
* tool_call → PROGRESS
|
|
282
|
+
* tool_result → OUTPUT (verbose)
|
|
283
|
+
* result (success) → TASK_COMPLETE
|
|
284
|
+
* result (error) → ERROR
|
|
265
285
|
*/
|
|
266
286
|
handleStreamEvent(taskId, event, rt) {
|
|
287
|
+
console.log(`[${taskId}] Cursor event: type=${event.type} subtype=${event.subtype || ''}`);
|
|
267
288
|
switch (event.type) {
|
|
268
|
-
case '
|
|
269
|
-
if (event.session_id) {
|
|
289
|
+
case 'system':
|
|
290
|
+
if (event.subtype === 'init' && event.session_id) {
|
|
270
291
|
rt.sessionId = event.session_id;
|
|
271
|
-
console.log(`[${taskId}] Session initialized: ${event.session_id}`);
|
|
292
|
+
console.log(`[${taskId}] Session initialized: ${event.session_id} (model: ${event.model})`);
|
|
293
|
+
this.onEvent(taskId, 'SESSION_STARTED', {
|
|
294
|
+
session_id: event.session_id,
|
|
295
|
+
});
|
|
272
296
|
}
|
|
273
297
|
break;
|
|
298
|
+
case 'user':
|
|
299
|
+
// Echo of user input, ignore
|
|
300
|
+
break;
|
|
274
301
|
case 'thinking':
|
|
275
|
-
// Accumulate thinking
|
|
276
|
-
if (event.
|
|
277
|
-
|
|
278
|
-
|
|
302
|
+
// Accumulate thinking text but don't send as output (too noisy with deltas)
|
|
303
|
+
if (event.subtype === 'delta' && event.text) {
|
|
304
|
+
rt.context += event.text;
|
|
305
|
+
}
|
|
306
|
+
break;
|
|
307
|
+
case 'assistant':
|
|
308
|
+
if (event.message?.content) {
|
|
309
|
+
const text = event.message.content
|
|
310
|
+
.map(block => block.text || '')
|
|
311
|
+
.join('')
|
|
312
|
+
.trim();
|
|
313
|
+
if (text) {
|
|
314
|
+
// Reset context to assistant response (thinking was intermediate)
|
|
315
|
+
rt.context = text;
|
|
316
|
+
this.onEvent(taskId, 'OUTPUT', { output: text });
|
|
279
317
|
}
|
|
280
|
-
rt.context += event.content;
|
|
281
318
|
}
|
|
282
319
|
break;
|
|
283
|
-
case '
|
|
284
|
-
|
|
285
|
-
const progress = (0, events_1.extractProgressFromAction)(event);
|
|
320
|
+
case 'tool_call': {
|
|
321
|
+
const progress = (0, events_1.extractProgressFromToolCall)(event);
|
|
286
322
|
if (progress) {
|
|
287
323
|
this.onEvent(taskId, 'PROGRESS', {
|
|
288
324
|
action: progress.action,
|
|
289
|
-
target: progress.target
|
|
325
|
+
target: progress.target,
|
|
290
326
|
});
|
|
291
327
|
}
|
|
292
328
|
break;
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
action: event.action,
|
|
304
|
-
tool: event.tool,
|
|
305
|
-
file: event.file
|
|
306
|
-
}
|
|
307
|
-
});
|
|
308
|
-
break;
|
|
309
|
-
case 'action_complete':
|
|
310
|
-
// Action was approved and completed
|
|
311
|
-
console.log(`[${taskId}] Action complete: ${event.status}`);
|
|
312
|
-
break;
|
|
313
|
-
case 'result':
|
|
314
|
-
// Task completed
|
|
315
|
-
console.log(`[${taskId}] Task completed`);
|
|
316
|
-
this.onEvent(taskId, 'TASK_COMPLETE', {
|
|
317
|
-
session_id: rt.sessionId,
|
|
318
|
-
result: event.content || ''
|
|
319
|
-
});
|
|
329
|
+
}
|
|
330
|
+
case 'tool_result':
|
|
331
|
+
if (event.output) {
|
|
332
|
+
const truncated = event.output.length > 500
|
|
333
|
+
? event.output.substring(0, 500) + '...'
|
|
334
|
+
: event.output;
|
|
335
|
+
this.onEvent(taskId, 'OUTPUT', {
|
|
336
|
+
output: `[${event.status || 'done'}] ${truncated}`,
|
|
337
|
+
});
|
|
338
|
+
}
|
|
320
339
|
break;
|
|
321
|
-
case '
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
340
|
+
case 'result': {
|
|
341
|
+
if (event.is_error || event.subtype === 'error') {
|
|
342
|
+
console.error(`[${taskId}] Cursor error: ${event.result}`);
|
|
343
|
+
this.onEvent(taskId, 'ERROR', {
|
|
344
|
+
error: event.result || 'Unknown Cursor error',
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
const finalResult = event.result || rt.context || '';
|
|
349
|
+
console.log(`[${taskId}] Task complete, result length: ${finalResult.length}`);
|
|
350
|
+
this.onEvent(taskId, 'TASK_COMPLETE', {
|
|
351
|
+
session_id: rt.sessionId,
|
|
352
|
+
result: finalResult,
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
this.running.delete(taskId);
|
|
327
356
|
break;
|
|
357
|
+
}
|
|
328
358
|
}
|
|
329
359
|
}
|
|
330
360
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-cli.js","sourceRoot":"","sources":["../../src/adapter/cursor-cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cursor-cli.js","sourceRoot":"","sources":["../../src/adapter/cursor-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter/events.d.ts
CHANGED
|
@@ -1,33 +1,49 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Types for Cursor CLI stream-json output
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Types for Cursor CLI (cursor-agent) stream-json output.
|
|
3
|
+
*
|
|
4
|
+
* cursor-agent --output-format stream-json emits NDJSON events:
|
|
5
|
+
* system (subtype: init) - Session metadata (session_id, model, cwd)
|
|
6
|
+
* user - Echo of user message
|
|
7
|
+
* thinking (subtype: delta) - Streaming thinking text chunks
|
|
8
|
+
* thinking (subtype: completed) - Thinking finished
|
|
9
|
+
* assistant - Assistant response message
|
|
10
|
+
* tool_call - Tool invocation (file edit, shell, etc.)
|
|
11
|
+
* tool_result - Tool execution result
|
|
12
|
+
* result (subtype: success) - Final result with aggregated response
|
|
13
|
+
* result (subtype: error) - Error result
|
|
5
14
|
*/
|
|
6
15
|
export interface StreamEvent {
|
|
7
|
-
type: '
|
|
16
|
+
type: 'system' | 'user' | 'thinking' | 'assistant' | 'tool_call' | 'tool_result' | 'result';
|
|
17
|
+
subtype?: string;
|
|
8
18
|
session_id?: string;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
19
|
+
timestamp_ms?: number;
|
|
20
|
+
model?: string;
|
|
21
|
+
cwd?: string;
|
|
22
|
+
apiKeySource?: string;
|
|
23
|
+
permissionMode?: string;
|
|
24
|
+
text?: string;
|
|
25
|
+
message?: {
|
|
26
|
+
role: string;
|
|
27
|
+
content: Array<{
|
|
28
|
+
type: string;
|
|
29
|
+
text?: string;
|
|
30
|
+
}>;
|
|
31
|
+
};
|
|
32
|
+
tool_name?: string;
|
|
33
|
+
tool_call_id?: string;
|
|
34
|
+
parameters?: Record<string, unknown>;
|
|
15
35
|
status?: string;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
tool: string;
|
|
21
|
-
file?: string;
|
|
22
|
-
command?: string;
|
|
23
|
-
description?: string;
|
|
36
|
+
output?: string;
|
|
37
|
+
result?: string;
|
|
38
|
+
duration_ms?: number;
|
|
39
|
+
is_error?: boolean;
|
|
24
40
|
}
|
|
25
41
|
export interface ProgressInfo {
|
|
26
42
|
action: string;
|
|
27
43
|
target: string;
|
|
28
44
|
}
|
|
29
45
|
/**
|
|
30
|
-
* Extract progress info from
|
|
46
|
+
* Extract progress info from a tool_call event.
|
|
31
47
|
*/
|
|
32
|
-
export declare function
|
|
48
|
+
export declare function extractProgressFromToolCall(event: StreamEvent): ProgressInfo | null;
|
|
33
49
|
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/adapter/events.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/adapter/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC5F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjD,CAAC;IAEF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,GAAG,IAAI,CAqCnF"}
|