@cmdctrl/cursor-cli 0.1.1 → 0.2.0
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 +0 -3
- 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 +0 -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
package/dist/adapter/events.js
CHANGED
|
@@ -1,53 +1,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Types for Cursor CLI stream-json output
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* Types for Cursor CLI (cursor-agent) stream-json output.
|
|
4
|
+
*
|
|
5
|
+
* cursor-agent --output-format stream-json emits NDJSON events:
|
|
6
|
+
* system (subtype: init) - Session metadata (session_id, model, cwd)
|
|
7
|
+
* user - Echo of user message
|
|
8
|
+
* thinking (subtype: delta) - Streaming thinking text chunks
|
|
9
|
+
* thinking (subtype: completed) - Thinking finished
|
|
10
|
+
* assistant - Assistant response message
|
|
11
|
+
* tool_call - Tool invocation (file edit, shell, etc.)
|
|
12
|
+
* tool_result - Tool execution result
|
|
13
|
+
* result (subtype: success) - Final result with aggregated response
|
|
14
|
+
* result (subtype: error) - Error result
|
|
6
15
|
*/
|
|
7
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.
|
|
17
|
+
exports.extractProgressFromToolCall = extractProgressFromToolCall;
|
|
9
18
|
/**
|
|
10
|
-
* Extract progress info from
|
|
19
|
+
* Extract progress info from a tool_call event.
|
|
11
20
|
*/
|
|
12
|
-
function
|
|
13
|
-
if (event.type !== '
|
|
21
|
+
function extractProgressFromToolCall(event) {
|
|
22
|
+
if (event.type !== 'tool_call' || !event.tool_name)
|
|
14
23
|
return null;
|
|
15
|
-
}
|
|
16
|
-
switch (event.
|
|
24
|
+
const params = event.parameters || {};
|
|
25
|
+
switch (event.tool_name) {
|
|
17
26
|
case 'file_read':
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
};
|
|
27
|
+
case 'ReadFile':
|
|
28
|
+
case 'read_file':
|
|
29
|
+
return { action: 'Reading', target: params.path || 'file' };
|
|
22
30
|
case 'file_write':
|
|
31
|
+
case 'WriteFile':
|
|
32
|
+
case 'write_file':
|
|
33
|
+
return { action: 'Writing', target: params.path || 'file' };
|
|
23
34
|
case 'file_edit':
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
};
|
|
35
|
+
case 'EditFile':
|
|
36
|
+
case 'edit_file':
|
|
37
|
+
return { action: 'Editing', target: params.path || 'file' };
|
|
28
38
|
case 'shell':
|
|
29
39
|
case 'terminal':
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
case 'Shell':
|
|
41
|
+
case 'Bash': {
|
|
42
|
+
const cmd = String(params.command || '').substring(0, 40);
|
|
43
|
+
return { action: 'Running', target: cmd };
|
|
44
|
+
}
|
|
35
45
|
case 'search':
|
|
36
46
|
case 'grep':
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
case '
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
target: event.content || ''
|
|
45
|
-
};
|
|
47
|
+
case 'GrepTool':
|
|
48
|
+
case 'SearchFiles':
|
|
49
|
+
return { action: 'Searching', target: params.pattern || params.query || 'files' };
|
|
50
|
+
case 'list_directory':
|
|
51
|
+
case 'GlobTool':
|
|
52
|
+
case 'glob':
|
|
53
|
+
return { action: 'Searching', target: params.pattern || params.path || 'files' };
|
|
46
54
|
default:
|
|
47
|
-
return {
|
|
48
|
-
action: event.tool,
|
|
49
|
-
target: event.file || event.content || ''
|
|
50
|
-
};
|
|
55
|
+
return { action: event.tool_name, target: '' };
|
|
51
56
|
}
|
|
52
57
|
}
|
|
53
58
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/adapter/events.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/adapter/events.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;AAwCH,kEAqCC;AAxCD;;GAEG;AACH,SAAgB,2BAA2B,CAAC,KAAkB;IAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAEhE,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;IAEtC,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;QACxB,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW;YACd,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAG,MAAM,CAAC,IAAe,IAAI,MAAM,EAAE,CAAC;QAC1E,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY;YACf,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAG,MAAM,CAAC,IAAe,IAAI,MAAM,EAAE,CAAC;QAC1E,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW;YACd,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAG,MAAM,CAAC,IAAe,IAAI,MAAM,EAAE,CAAC;QAC1E,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC5C,CAAC;QACD,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU,CAAC;QAChB,KAAK,aAAa;YAChB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAG,MAAM,CAAC,OAAkB,IAAK,MAAM,CAAC,KAAgB,IAAI,OAAO,EAAE,CAAC;QAC5G,KAAK,gBAAgB,CAAC;QACtB,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAG,MAAM,CAAC,OAAkB,IAAK,MAAM,CAAC,IAAe,IAAI,OAAO,EAAE,CAAC;QAC3G;YACE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACnD,CAAC;AACH,CAAC"}
|
|
@@ -2,9 +2,6 @@ interface RegisterOptions {
|
|
|
2
2
|
server: string;
|
|
3
3
|
name?: string;
|
|
4
4
|
}
|
|
5
|
-
/**
|
|
6
|
-
* Register command - implements GitHub CLI style device auth flow
|
|
7
|
-
*/
|
|
8
5
|
export declare function register(options: RegisterOptions): Promise<void>;
|
|
9
6
|
export {};
|
|
10
7
|
//# sourceMappingURL=register.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/commands/register.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/commands/register.ts"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA8CtE"}
|
|
@@ -35,139 +35,40 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.register = register;
|
|
37
37
|
const os = __importStar(require("os"));
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
const url_1 = require("url");
|
|
41
|
-
const config_1 = require("../config/config");
|
|
42
|
-
/**
|
|
43
|
-
* Make an HTTP(S) request
|
|
44
|
-
*/
|
|
45
|
-
function request(url, method, body) {
|
|
46
|
-
return new Promise((resolve, reject) => {
|
|
47
|
-
const parsed = new url_1.URL(url);
|
|
48
|
-
const client = parsed.protocol === 'https:' ? https : http;
|
|
49
|
-
const options = {
|
|
50
|
-
hostname: parsed.hostname,
|
|
51
|
-
port: parsed.port || (parsed.protocol === 'https:' ? 443 : 80),
|
|
52
|
-
path: parsed.pathname + parsed.search,
|
|
53
|
-
method,
|
|
54
|
-
headers: {
|
|
55
|
-
'Content-Type': 'application/json',
|
|
56
|
-
Accept: 'application/json'
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
const req = client.request(options, (res) => {
|
|
60
|
-
let data = '';
|
|
61
|
-
res.on('data', (chunk) => (data += chunk));
|
|
62
|
-
res.on('end', () => {
|
|
63
|
-
try {
|
|
64
|
-
const parsed = data ? JSON.parse(data) : {};
|
|
65
|
-
resolve({ status: res.statusCode || 0, data: parsed });
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
resolve({ status: res.statusCode || 0, data: {} });
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
req.on('error', reject);
|
|
73
|
-
if (body) {
|
|
74
|
-
req.write(JSON.stringify(body));
|
|
75
|
-
}
|
|
76
|
-
req.end();
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Poll for token completion (after user verifies in browser)
|
|
81
|
-
*/
|
|
82
|
-
async function pollForToken(serverUrl, deviceCode, interval, expiresIn) {
|
|
83
|
-
const startTime = Date.now();
|
|
84
|
-
const expiresAt = startTime + expiresIn * 1000;
|
|
85
|
-
while (Date.now() < expiresAt) {
|
|
86
|
-
await new Promise((resolve) => setTimeout(resolve, interval * 1000));
|
|
87
|
-
try {
|
|
88
|
-
const response = await request(`${serverUrl}/api/devices/token`, 'POST', {
|
|
89
|
-
deviceCode
|
|
90
|
-
});
|
|
91
|
-
if (response.status === 200) {
|
|
92
|
-
return response.data;
|
|
93
|
-
}
|
|
94
|
-
// 400 with "authorization_pending" means keep polling
|
|
95
|
-
const data = response.data;
|
|
96
|
-
if (response.status === 400 && data.error === 'authorization_pending') {
|
|
97
|
-
process.stdout.write('.');
|
|
98
|
-
continue;
|
|
99
|
-
}
|
|
100
|
-
// Other errors should stop polling
|
|
101
|
-
if (response.status >= 400) {
|
|
102
|
-
console.error('\nError polling for token:', data);
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
catch (err) {
|
|
107
|
-
console.error('\nError polling for token:', err);
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
console.error('\nDevice code expired. Please try again.');
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Register command - implements GitHub CLI style device auth flow
|
|
116
|
-
*/
|
|
38
|
+
const daemon_sdk_1 = require("@cmdctrl/daemon-sdk");
|
|
39
|
+
const configManager = new daemon_sdk_1.ConfigManager('cursor-cli');
|
|
117
40
|
async function register(options) {
|
|
118
|
-
const serverUrl = options.server.replace(/\/$/, '');
|
|
41
|
+
const serverUrl = options.server.replace(/\/$/, '');
|
|
119
42
|
const deviceName = options.name || `${os.hostname()}-cursor`;
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
const config = (0, config_1.readConfig)();
|
|
43
|
+
if (configManager.isRegistered()) {
|
|
44
|
+
const config = configManager.readConfig();
|
|
123
45
|
console.log(`Already registered as "${config?.deviceName}" (${config?.deviceId})`);
|
|
124
46
|
console.log(`Server: ${config?.serverUrl}`);
|
|
125
|
-
console.log(`\nTo re-register, run:
|
|
47
|
+
console.log(`\nTo re-register, run: cmdctrl-cursor-cli unregister`);
|
|
126
48
|
return;
|
|
127
49
|
}
|
|
128
50
|
console.log(`Registering Cursor CLI device "${deviceName}" with ${serverUrl}...\n`);
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
});
|
|
137
|
-
if (response.status !== 200) {
|
|
138
|
-
console.error('Failed to get device code:', response.data);
|
|
139
|
-
process.exit(1);
|
|
140
|
-
}
|
|
141
|
-
codeResponse = response.data;
|
|
142
|
-
}
|
|
143
|
-
catch (err) {
|
|
144
|
-
console.error('Failed to connect to server:', err);
|
|
145
|
-
process.exit(1);
|
|
146
|
-
}
|
|
147
|
-
// Step 2: Display instructions to user
|
|
148
|
-
console.log('To complete registration, open this URL in your browser:\n');
|
|
149
|
-
console.log(` ${codeResponse.verificationUrl}\n`);
|
|
150
|
-
console.log('Waiting for verification...');
|
|
151
|
-
// Step 3: Poll for completion
|
|
152
|
-
const tokenResponse = await pollForToken(serverUrl, codeResponse.deviceCode, codeResponse.interval, codeResponse.expiresIn);
|
|
153
|
-
if (!tokenResponse) {
|
|
51
|
+
const result = await (0, daemon_sdk_1.registerDevice)(serverUrl, deviceName, os.hostname(), 'cursor_cli', (url, _userCode) => {
|
|
52
|
+
console.log('To complete registration, open this URL in your browser:\n');
|
|
53
|
+
console.log(` ${url}\n`);
|
|
54
|
+
console.log('Waiting for verification...');
|
|
55
|
+
});
|
|
56
|
+
if (!result) {
|
|
57
|
+
console.error('\nDevice code expired. Please try again.');
|
|
154
58
|
process.exit(1);
|
|
155
59
|
}
|
|
156
|
-
|
|
157
|
-
const config = {
|
|
60
|
+
configManager.writeConfig({
|
|
158
61
|
serverUrl,
|
|
159
|
-
deviceId:
|
|
160
|
-
deviceName
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
expiresAt: Date.now() +
|
|
166
|
-
};
|
|
167
|
-
(0, config_1.writeConfig)(config);
|
|
168
|
-
(0, config_1.writeCredentials)(credentials);
|
|
62
|
+
deviceId: result.deviceId,
|
|
63
|
+
deviceName,
|
|
64
|
+
});
|
|
65
|
+
configManager.writeCredentials({
|
|
66
|
+
refreshToken: result.refreshToken,
|
|
67
|
+
accessToken: result.accessToken,
|
|
68
|
+
expiresAt: result.expiresIn ? Date.now() + result.expiresIn * 1000 : undefined,
|
|
69
|
+
});
|
|
169
70
|
console.log('\n\nRegistration complete!');
|
|
170
|
-
console.log(`Device ID: ${
|
|
71
|
+
console.log(`Device ID: ${result.deviceId}`);
|
|
171
72
|
console.log(`\nRun 'cmdctrl-cursor-cli start' to connect to the server.`);
|
|
172
73
|
}
|
|
173
74
|
//# sourceMappingURL=register.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/commands/register.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/commands/register.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,4BA8CC;AAxDD,uCAAyB;AACzB,oDAAoE;AAEpE,MAAM,aAAa,GAAG,IAAI,0BAAa,CAAC,YAAY,CAAC,CAAC;AAO/C,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE7D,IAAI,aAAa,CAAC,YAAY,EAAE,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,EAAE,UAAU,MAAM,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kCAAkC,UAAU,UAAU,SAAS,OAAO,CAAC,CAAC;IAEpF,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAc,EACjC,SAAS,EACT,UAAU,EACV,EAAE,CAAC,QAAQ,EAAE,EACb,YAAY,EACZ,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC,CACF,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,aAAa,CAAC,WAAW,CAAC;QACxB,SAAS;QACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU;KACX,CAAC,CAAC;IAEH,aAAa,CAAC,gBAAgB,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;KAC/E,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;AAC5E,CAAC"}
|
package/dist/commands/start.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAQA,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAkJ3C"}
|
package/dist/commands/start.js
CHANGED
|
@@ -1,45 +1,132 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.start = start;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
if (!
|
|
12
|
-
console.error('Device not registered. Run "cmdctrl-cursor-cli
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const daemon_sdk_1 = require("@cmdctrl/daemon-sdk");
|
|
7
|
+
const cursor_cli_1 = require("../adapter/cursor-cli");
|
|
8
|
+
const message_store_1 = require("../message-store");
|
|
9
|
+
const configManager = new daemon_sdk_1.ConfigManager('cursor-cli');
|
|
10
|
+
async function start() {
|
|
11
|
+
if (!configManager.isRegistered()) {
|
|
12
|
+
console.error('Device not registered. Run "cmdctrl-cursor-cli register" first.');
|
|
13
13
|
process.exit(1);
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
console.error('Daemon is already running. Use "cmdctrl-cursor-cli-daemon stop" to stop it.');
|
|
15
|
+
if (configManager.isDaemonRunning()) {
|
|
16
|
+
console.error('Daemon is already running. Run "cmdctrl-cursor-cli stop" first.');
|
|
18
17
|
process.exit(1);
|
|
19
18
|
}
|
|
20
|
-
const config =
|
|
21
|
-
const credentials =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
19
|
+
const config = configManager.readConfig();
|
|
20
|
+
const credentials = configManager.readCredentials();
|
|
21
|
+
let daemonVersion = 'unknown';
|
|
22
|
+
try {
|
|
23
|
+
const pkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', 'package.json'), 'utf-8'));
|
|
24
|
+
daemonVersion = pkg.version;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
try {
|
|
28
|
+
const pkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', '..', 'package.json'), 'utf-8'));
|
|
29
|
+
daemonVersion = pkg.version;
|
|
30
|
+
}
|
|
31
|
+
catch { /* use default */ }
|
|
32
|
+
}
|
|
33
|
+
console.log('Cursor CLI Daemon');
|
|
34
|
+
console.log(` Server: ${config.serverUrl}`);
|
|
35
|
+
console.log(` Device: ${config.deviceName} (${config.deviceId})`);
|
|
36
|
+
console.log(` Version: ${daemonVersion}`);
|
|
37
|
+
console.log('');
|
|
38
|
+
configManager.writePidFile(process.pid);
|
|
39
|
+
const messageStore = new message_store_1.MessageStore();
|
|
40
|
+
const pendingInstructions = new Map();
|
|
41
|
+
const taskSessionMap = new Map();
|
|
42
|
+
// Event callback wired into the DaemonClient below
|
|
43
|
+
let sendEvent;
|
|
44
|
+
const adapter = new cursor_cli_1.CursorAdapter((taskId, eventType, data) => {
|
|
45
|
+
const sessionId = data.session_id;
|
|
46
|
+
// Store initial user message when session starts
|
|
47
|
+
if (eventType === 'SESSION_STARTED' && sessionId) {
|
|
48
|
+
const instruction = pendingInstructions.get(taskId);
|
|
49
|
+
if (instruction) {
|
|
50
|
+
messageStore.storeMessage(sessionId, 'USER', instruction);
|
|
51
|
+
pendingInstructions.delete(taskId);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Store agent response on completion
|
|
55
|
+
if (eventType === 'TASK_COMPLETE' && data.result) {
|
|
56
|
+
const sid = data.session_id || taskSessionMap.get(taskId);
|
|
57
|
+
if (sid) {
|
|
58
|
+
messageStore.storeMessage(sid, 'AGENT', data.result);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
sendEvent(taskId, eventType, data);
|
|
62
|
+
});
|
|
63
|
+
const client = new daemon_sdk_1.DaemonClient({
|
|
64
|
+
serverUrl: config.serverUrl,
|
|
65
|
+
deviceId: config.deviceId,
|
|
66
|
+
agentType: 'cursor_cli',
|
|
67
|
+
token: credentials.refreshToken,
|
|
68
|
+
version: daemonVersion,
|
|
69
|
+
});
|
|
70
|
+
// Wire up sendEvent to the client's internal method
|
|
71
|
+
sendEvent = (taskId, eventType, data) => {
|
|
72
|
+
// Use the client to send events — the SDK handles this via task handles,
|
|
73
|
+
// but since the adapter uses a callback pattern, we send raw events
|
|
74
|
+
client.send({
|
|
75
|
+
type: 'event',
|
|
76
|
+
task_id: taskId,
|
|
77
|
+
event_type: eventType,
|
|
78
|
+
...data,
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
client.onTaskStart(async (task) => {
|
|
82
|
+
pendingInstructions.set(task.taskId, task.instruction);
|
|
83
|
+
try {
|
|
84
|
+
await adapter.startTask(task.taskId, task.instruction, task.projectPath);
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
task.error(err instanceof Error ? err.message : 'Unknown error');
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
client.onTaskResume(async (task) => {
|
|
91
|
+
messageStore.storeMessage(task.sessionId, 'USER', task.message);
|
|
92
|
+
taskSessionMap.set(task.taskId, task.sessionId);
|
|
93
|
+
try {
|
|
94
|
+
await adapter.resumeTask(task.taskId, task.sessionId, task.message, task.projectPath);
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
task.error(err instanceof Error ? err.message : 'Unknown error');
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
client.onTaskCancel(async (taskId) => {
|
|
101
|
+
await adapter.cancelTask(taskId);
|
|
102
|
+
});
|
|
103
|
+
client.onGetMessages((req) => {
|
|
104
|
+
const result = messageStore.getMessages(req.sessionId, req.limit, req.beforeUuid, req.afterUuid);
|
|
105
|
+
return {
|
|
106
|
+
messages: result.messages,
|
|
107
|
+
hasMore: result.hasMore,
|
|
108
|
+
oldestUuid: result.oldestUuid,
|
|
109
|
+
newestUuid: result.newestUuid,
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
client.onVersionStatus((msg) => {
|
|
113
|
+
if (msg.status === 'update_available') {
|
|
114
|
+
console.warn(`Update available: v${msg.latest_version} (you have v${msg.your_version})`);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
const shutdown = async () => {
|
|
118
|
+
console.log('\nShutting down...');
|
|
119
|
+
await adapter.stopAll();
|
|
31
120
|
await client.disconnect();
|
|
121
|
+
configManager.deletePidFile();
|
|
32
122
|
process.exit(0);
|
|
33
123
|
};
|
|
34
|
-
process.on('SIGINT',
|
|
35
|
-
process.on('SIGTERM',
|
|
124
|
+
process.on('SIGINT', shutdown);
|
|
125
|
+
process.on('SIGTERM', shutdown);
|
|
36
126
|
try {
|
|
37
127
|
await client.connect();
|
|
38
|
-
console.log('Cursor CLI daemon
|
|
39
|
-
|
|
40
|
-
if (options.foreground) {
|
|
41
|
-
console.log('Running in foreground. Press Ctrl+C to stop.');
|
|
42
|
-
}
|
|
128
|
+
console.log('Cursor CLI daemon running. Press Ctrl+C to stop.\n');
|
|
129
|
+
await new Promise(() => { });
|
|
43
130
|
}
|
|
44
131
|
catch (err) {
|
|
45
132
|
console.error('Failed to connect:', err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAIA,wBAAgB,MAAM,IAAI,IAAI,CAoC7B"}
|
package/dist/commands/status.js
CHANGED
|
@@ -1,39 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.status = status;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
async function status() {
|
|
9
|
-
if (!(0, config_1.isRegistered)()) {
|
|
4
|
+
const daemon_sdk_1 = require("@cmdctrl/daemon-sdk");
|
|
5
|
+
const configManager = new daemon_sdk_1.ConfigManager('cursor-cli');
|
|
6
|
+
function status() {
|
|
7
|
+
if (!configManager.isRegistered()) {
|
|
10
8
|
console.log('Status: Not registered');
|
|
11
|
-
console.log('\nRun "cmdctrl-cursor-cli
|
|
9
|
+
console.log('\nRun "cmdctrl-cursor-cli register" to register this device.');
|
|
12
10
|
return;
|
|
13
11
|
}
|
|
14
|
-
const config =
|
|
15
|
-
const credentials =
|
|
16
|
-
const running = (0, config_1.isDaemonRunning)();
|
|
17
|
-
const pid = (0, config_1.readPidFile)();
|
|
12
|
+
const config = configManager.readConfig();
|
|
13
|
+
const credentials = configManager.readCredentials();
|
|
18
14
|
console.log('Cursor CLI Daemon Status');
|
|
19
15
|
console.log('========================');
|
|
20
16
|
console.log(`Device Name: ${config.deviceName}`);
|
|
21
17
|
console.log(`Device ID: ${config.deviceId}`);
|
|
22
18
|
console.log(`Server: ${config.serverUrl}`);
|
|
23
|
-
|
|
24
|
-
console.log(`Daemon: ${running ? `Running (PID ${pid})` : 'Stopped'}`);
|
|
25
|
-
if (credentials) {
|
|
19
|
+
if (credentials?.expiresAt) {
|
|
26
20
|
const expiresIn = credentials.expiresAt - Date.now();
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const minutes = Math.floor((expiresIn / 1000 / 60) % 60);
|
|
32
|
-
console.log(`Expires in: ${hours}h ${minutes}m`);
|
|
21
|
+
if (expiresIn > 0) {
|
|
22
|
+
const hours = Math.floor(expiresIn / 3600000);
|
|
23
|
+
const minutes = Math.floor((expiresIn % 3600000) / 60000);
|
|
24
|
+
console.log(`Token: Valid (expires in ${hours}h ${minutes}m)`);
|
|
33
25
|
}
|
|
26
|
+
else {
|
|
27
|
+
console.log('Token: Expired');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
console.log('Token: Present');
|
|
32
|
+
}
|
|
33
|
+
if (configManager.isDaemonRunning()) {
|
|
34
|
+
const pid = configManager.readPidFile();
|
|
35
|
+
console.log(`Daemon: Running (PID ${pid})`);
|
|
34
36
|
}
|
|
35
|
-
|
|
36
|
-
console.log('
|
|
37
|
+
else {
|
|
38
|
+
console.log('Daemon: Not running');
|
|
39
|
+
console.log('\nRun "cmdctrl-cursor-cli start" to start the daemon.');
|
|
37
40
|
}
|
|
38
41
|
}
|
|
39
42
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";;AAIA,wBAoCC;AAxCD,oDAAoD;AAEpD,MAAM,aAAa,GAAG,IAAI,0BAAa,CAAC,YAAY,CAAC,CAAC;AAEtD,SAAgB,MAAM;IACpB,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;QAC5E,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,EAAG,CAAC;IAC3C,MAAM,WAAW,GAAG,aAAa,CAAC,eAAe,EAAE,CAAC;IAEpD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAEhD,IAAI,WAAW,EAAE,SAAS,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,kCAAkC,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,aAAa,CAAC,eAAe,EAAE,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,GAAG,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
|
package/dist/commands/stop.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAIA,wBAAgB,IAAI,IAAI,IAAI,CA+B3B"}
|