@kaitranntt/ccs 7.43.0-dev.2 → 7.43.0-dev.4

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.
Files changed (48) hide show
  1. package/dist/ccs.js +7 -0
  2. package/dist/ccs.js.map +1 -1
  3. package/dist/commands/cursor-command.d.ts +12 -0
  4. package/dist/commands/cursor-command.d.ts.map +1 -0
  5. package/dist/commands/cursor-command.js +225 -0
  6. package/dist/commands/cursor-command.js.map +1 -0
  7. package/dist/commands/help-command.d.ts.map +1 -1
  8. package/dist/commands/help-command.js +14 -0
  9. package/dist/commands/help-command.js.map +1 -1
  10. package/dist/config/reserved-names.d.ts +1 -1
  11. package/dist/config/reserved-names.d.ts.map +1 -1
  12. package/dist/config/reserved-names.js +2 -0
  13. package/dist/config/reserved-names.js.map +1 -1
  14. package/dist/config/unified-config-loader.d.ts +6 -1
  15. package/dist/config/unified-config-loader.d.ts.map +1 -1
  16. package/dist/config/unified-config-loader.js +31 -1
  17. package/dist/config/unified-config-loader.js.map +1 -1
  18. package/dist/config/unified-config-types.d.ts +21 -0
  19. package/dist/config/unified-config-types.d.ts.map +1 -1
  20. package/dist/config/unified-config-types.js +12 -1
  21. package/dist/config/unified-config-types.js.map +1 -1
  22. package/dist/cursor/cursor-daemon.d.ts +47 -0
  23. package/dist/cursor/cursor-daemon.d.ts.map +1 -0
  24. package/dist/cursor/cursor-daemon.js +332 -0
  25. package/dist/cursor/cursor-daemon.js.map +1 -0
  26. package/dist/cursor/cursor-models.d.ts +43 -0
  27. package/dist/cursor/cursor-models.d.ts.map +1 -0
  28. package/dist/cursor/cursor-models.js +205 -0
  29. package/dist/cursor/cursor-models.js.map +1 -0
  30. package/dist/cursor/index.d.ts +11 -0
  31. package/dist/cursor/index.d.ts.map +1 -0
  32. package/dist/cursor/index.js +53 -0
  33. package/dist/cursor/index.js.map +1 -0
  34. package/dist/cursor/types.d.ts +33 -1
  35. package/dist/cursor/types.d.ts.map +1 -1
  36. package/dist/cursor/types.js +1 -1
  37. package/dist/web-server/routes/cursor-routes.d.ts +6 -0
  38. package/dist/web-server/routes/cursor-routes.d.ts.map +1 -0
  39. package/dist/web-server/routes/cursor-routes.js +163 -0
  40. package/dist/web-server/routes/cursor-routes.js.map +1 -0
  41. package/dist/web-server/routes/cursor-settings-routes.d.ts +6 -0
  42. package/dist/web-server/routes/cursor-settings-routes.d.ts.map +1 -0
  43. package/dist/web-server/routes/cursor-settings-routes.js +171 -0
  44. package/dist/web-server/routes/cursor-settings-routes.js.map +1 -0
  45. package/dist/web-server/routes/index.d.ts.map +1 -1
  46. package/dist/web-server/routes/index.js +3 -0
  47. package/dist/web-server/routes/index.js.map +1 -1
  48. package/package.json +1 -1
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Cursor Model Catalog
3
+ *
4
+ * Manages available models from Cursor IDE.
5
+ * Based on Cursor's supported models catalog.
6
+ */
7
+ import type { CursorModel } from './types';
8
+ /** Default daemon port */
9
+ export declare const DEFAULT_CURSOR_PORT = 4242;
10
+ /** Default model ID */
11
+ export declare const DEFAULT_CURSOR_MODEL = "gpt-4.1";
12
+ /**
13
+ * Default models available through Cursor IDE.
14
+ * Used as fallback when daemon is not reachable.
15
+ * Source: Cursor IDE supported models (Feb 2025)
16
+ */
17
+ export declare const DEFAULT_CURSOR_MODELS: CursorModel[];
18
+ /**
19
+ * Fetch available models from running cursor daemon.
20
+ *
21
+ * @param port The port cursor daemon is running on
22
+ * @returns List of available models
23
+ */
24
+ export declare function fetchModelsFromDaemon(port: number): Promise<CursorModel[]>;
25
+ /**
26
+ * Get available models (from daemon or defaults).
27
+ * Checks daemon health first to avoid 5s timeout when daemon is not running.
28
+ */
29
+ export declare function getAvailableModels(port: number): Promise<CursorModel[]>;
30
+ /**
31
+ * Get the default model.
32
+ * Uses gpt-4.1 as it's commonly available.
33
+ */
34
+ export declare function getDefaultModel(): string;
35
+ /**
36
+ * Detect provider from model ID.
37
+ */
38
+ export declare function detectProvider(modelId: string): string;
39
+ /**
40
+ * Format model ID to human-readable name.
41
+ */
42
+ export declare function formatModelName(modelId: string): string;
43
+ //# sourceMappingURL=cursor-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-models.d.ts","sourceRoot":"","sources":["../../src/cursor/cursor-models.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,0BAA0B;AAC1B,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,uBAAuB;AACvB,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAE9C;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,EAiD9C,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA8DhF;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAK7E;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAYvD"}
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ /**
3
+ * Cursor Model Catalog
4
+ *
5
+ * Manages available models from Cursor IDE.
6
+ * Based on Cursor's supported models catalog.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.formatModelName = exports.detectProvider = exports.getDefaultModel = exports.getAvailableModels = exports.fetchModelsFromDaemon = exports.DEFAULT_CURSOR_MODELS = exports.DEFAULT_CURSOR_MODEL = exports.DEFAULT_CURSOR_PORT = void 0;
33
+ const http = __importStar(require("http"));
34
+ const cursor_daemon_1 = require("./cursor-daemon");
35
+ /** Default daemon port */
36
+ exports.DEFAULT_CURSOR_PORT = 4242;
37
+ /** Default model ID */
38
+ exports.DEFAULT_CURSOR_MODEL = 'gpt-4.1';
39
+ /**
40
+ * Default models available through Cursor IDE.
41
+ * Used as fallback when daemon is not reachable.
42
+ * Source: Cursor IDE supported models (Feb 2025)
43
+ */
44
+ exports.DEFAULT_CURSOR_MODELS = [
45
+ // Anthropic Models
46
+ {
47
+ id: 'claude-sonnet-4',
48
+ name: 'Claude Sonnet 4',
49
+ provider: 'anthropic',
50
+ },
51
+ {
52
+ id: 'claude-sonnet-4.5',
53
+ name: 'Claude Sonnet 4.5',
54
+ provider: 'anthropic',
55
+ },
56
+ {
57
+ id: 'claude-opus-4',
58
+ name: 'Claude Opus 4',
59
+ provider: 'anthropic',
60
+ },
61
+ // OpenAI Models
62
+ {
63
+ id: 'gpt-4.1',
64
+ name: 'GPT-4.1',
65
+ provider: 'openai',
66
+ isDefault: true,
67
+ },
68
+ {
69
+ id: 'gpt-5-mini',
70
+ name: 'GPT-5 Mini',
71
+ provider: 'openai',
72
+ },
73
+ {
74
+ id: 'o3-mini',
75
+ name: 'O3 Mini',
76
+ provider: 'openai',
77
+ },
78
+ // Google Models
79
+ {
80
+ id: 'gemini-2.5-pro',
81
+ name: 'Gemini 2.5 Pro',
82
+ provider: 'google',
83
+ },
84
+ // Cursor Custom Models
85
+ {
86
+ id: 'cursor-small',
87
+ name: 'Cursor Small',
88
+ provider: 'cursor',
89
+ },
90
+ ];
91
+ /**
92
+ * Fetch available models from running cursor daemon.
93
+ *
94
+ * @param port The port cursor daemon is running on
95
+ * @returns List of available models
96
+ */
97
+ async function fetchModelsFromDaemon(port) {
98
+ return new Promise((resolve) => {
99
+ let resolved = false;
100
+ const safeResolve = (models) => {
101
+ if (resolved)
102
+ return;
103
+ resolved = true;
104
+ resolve(models);
105
+ };
106
+ const req = http.request({
107
+ // Use 127.0.0.1 instead of localhost for more reliable local connections
108
+ hostname: '127.0.0.1',
109
+ port,
110
+ path: '/v1/models',
111
+ method: 'GET',
112
+ timeout: 5000,
113
+ }, (res) => {
114
+ const MAX_BODY_SIZE = 1024 * 1024; // 1MB limit
115
+ let data = '';
116
+ res.on('data', (chunk) => {
117
+ data += chunk;
118
+ if (data.length > MAX_BODY_SIZE) {
119
+ req.destroy();
120
+ safeResolve(exports.DEFAULT_CURSOR_MODELS);
121
+ }
122
+ });
123
+ res.on('end', () => {
124
+ try {
125
+ const response = JSON.parse(data);
126
+ if (response.data && Array.isArray(response.data)) {
127
+ const models = response.data.map((m) => ({
128
+ id: m.id,
129
+ name: formatModelName(m.id),
130
+ provider: detectProvider(m.id),
131
+ isDefault: m.id === exports.DEFAULT_CURSOR_MODEL,
132
+ }));
133
+ safeResolve(models.length > 0 ? models : exports.DEFAULT_CURSOR_MODELS);
134
+ }
135
+ else {
136
+ safeResolve(exports.DEFAULT_CURSOR_MODELS);
137
+ }
138
+ }
139
+ catch {
140
+ safeResolve(exports.DEFAULT_CURSOR_MODELS);
141
+ }
142
+ });
143
+ });
144
+ req.on('error', () => {
145
+ safeResolve(exports.DEFAULT_CURSOR_MODELS);
146
+ });
147
+ req.on('timeout', () => {
148
+ req.destroy();
149
+ safeResolve(exports.DEFAULT_CURSOR_MODELS);
150
+ });
151
+ req.end();
152
+ });
153
+ }
154
+ exports.fetchModelsFromDaemon = fetchModelsFromDaemon;
155
+ /**
156
+ * Get available models (from daemon or defaults).
157
+ * Checks daemon health first to avoid 5s timeout when daemon is not running.
158
+ */
159
+ async function getAvailableModels(port) {
160
+ if (!(await (0, cursor_daemon_1.isDaemonRunning)(port))) {
161
+ return exports.DEFAULT_CURSOR_MODELS;
162
+ }
163
+ return fetchModelsFromDaemon(port);
164
+ }
165
+ exports.getAvailableModels = getAvailableModels;
166
+ /**
167
+ * Get the default model.
168
+ * Uses gpt-4.1 as it's commonly available.
169
+ */
170
+ function getDefaultModel() {
171
+ return exports.DEFAULT_CURSOR_MODEL;
172
+ }
173
+ exports.getDefaultModel = getDefaultModel;
174
+ /**
175
+ * Detect provider from model ID.
176
+ */
177
+ function detectProvider(modelId) {
178
+ if (modelId.includes('claude'))
179
+ return 'anthropic';
180
+ if (modelId.includes('gpt') || /^o[1-9]\d*(-|$)/.test(modelId))
181
+ return 'openai';
182
+ if (modelId.includes('gemini'))
183
+ return 'google';
184
+ if (modelId.includes('cursor'))
185
+ return 'cursor';
186
+ return 'unknown';
187
+ }
188
+ exports.detectProvider = detectProvider;
189
+ /**
190
+ * Format model ID to human-readable name.
191
+ */
192
+ function formatModelName(modelId) {
193
+ // Find model in catalog for metadata
194
+ const model = exports.DEFAULT_CURSOR_MODELS.find((m) => m.id === modelId);
195
+ if (model) {
196
+ return model.name;
197
+ }
198
+ // Fallback: convert kebab-case to title case
199
+ return modelId
200
+ .split('-')
201
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
202
+ .join(' ');
203
+ }
204
+ exports.formatModelName = formatModelName;
205
+ //# sourceMappingURL=cursor-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-models.js","sourceRoot":"","sources":["../../src/cursor/cursor-models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Cursor Module Index
3
+ *
4
+ * Central exports for Cursor IDE integration.
5
+ */
6
+ export * from './types';
7
+ export { autoDetectTokens, saveCredentials, loadCredentials, checkAuthStatus } from './cursor-auth';
8
+ export { isDaemonRunning, getDaemonStatus, startDaemon, stopDaemon, getPidFromFile, writePidToFile, removePidFile, } from './cursor-daemon';
9
+ export { DEFAULT_CURSOR_MODELS, DEFAULT_CURSOR_PORT, DEFAULT_CURSOR_MODEL, fetchModelsFromDaemon, getAvailableModels, getDefaultModel, detectProvider, formatModelName, } from './cursor-models';
10
+ export { CursorExecutor } from './cursor-executor';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cursor/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGpG,OAAO,EACL,eAAe,EACf,eAAe,EACf,WAAW,EACX,UAAU,EACV,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /**
3
+ * Cursor Module Index
4
+ *
5
+ * Central exports for Cursor IDE integration.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.CursorExecutor = exports.formatModelName = exports.detectProvider = exports.getDefaultModel = exports.getAvailableModels = exports.fetchModelsFromDaemon = exports.DEFAULT_CURSOR_MODEL = exports.DEFAULT_CURSOR_PORT = exports.DEFAULT_CURSOR_MODELS = exports.removePidFile = exports.writePidToFile = exports.getPidFromFile = exports.stopDaemon = exports.startDaemon = exports.getDaemonStatus = exports.isDaemonRunning = exports.checkAuthStatus = exports.loadCredentials = exports.saveCredentials = exports.autoDetectTokens = void 0;
23
+ // Types
24
+ __exportStar(require("./types"), exports);
25
+ // Auth
26
+ var cursor_auth_1 = require("./cursor-auth");
27
+ Object.defineProperty(exports, "autoDetectTokens", { enumerable: true, get: function () { return cursor_auth_1.autoDetectTokens; } });
28
+ Object.defineProperty(exports, "saveCredentials", { enumerable: true, get: function () { return cursor_auth_1.saveCredentials; } });
29
+ Object.defineProperty(exports, "loadCredentials", { enumerable: true, get: function () { return cursor_auth_1.loadCredentials; } });
30
+ Object.defineProperty(exports, "checkAuthStatus", { enumerable: true, get: function () { return cursor_auth_1.checkAuthStatus; } });
31
+ // Daemon
32
+ var cursor_daemon_1 = require("./cursor-daemon");
33
+ Object.defineProperty(exports, "isDaemonRunning", { enumerable: true, get: function () { return cursor_daemon_1.isDaemonRunning; } });
34
+ Object.defineProperty(exports, "getDaemonStatus", { enumerable: true, get: function () { return cursor_daemon_1.getDaemonStatus; } });
35
+ Object.defineProperty(exports, "startDaemon", { enumerable: true, get: function () { return cursor_daemon_1.startDaemon; } });
36
+ Object.defineProperty(exports, "stopDaemon", { enumerable: true, get: function () { return cursor_daemon_1.stopDaemon; } });
37
+ Object.defineProperty(exports, "getPidFromFile", { enumerable: true, get: function () { return cursor_daemon_1.getPidFromFile; } });
38
+ Object.defineProperty(exports, "writePidToFile", { enumerable: true, get: function () { return cursor_daemon_1.writePidToFile; } });
39
+ Object.defineProperty(exports, "removePidFile", { enumerable: true, get: function () { return cursor_daemon_1.removePidFile; } });
40
+ // Models
41
+ var cursor_models_1 = require("./cursor-models");
42
+ Object.defineProperty(exports, "DEFAULT_CURSOR_MODELS", { enumerable: true, get: function () { return cursor_models_1.DEFAULT_CURSOR_MODELS; } });
43
+ Object.defineProperty(exports, "DEFAULT_CURSOR_PORT", { enumerable: true, get: function () { return cursor_models_1.DEFAULT_CURSOR_PORT; } });
44
+ Object.defineProperty(exports, "DEFAULT_CURSOR_MODEL", { enumerable: true, get: function () { return cursor_models_1.DEFAULT_CURSOR_MODEL; } });
45
+ Object.defineProperty(exports, "fetchModelsFromDaemon", { enumerable: true, get: function () { return cursor_models_1.fetchModelsFromDaemon; } });
46
+ Object.defineProperty(exports, "getAvailableModels", { enumerable: true, get: function () { return cursor_models_1.getAvailableModels; } });
47
+ Object.defineProperty(exports, "getDefaultModel", { enumerable: true, get: function () { return cursor_models_1.getDefaultModel; } });
48
+ Object.defineProperty(exports, "detectProvider", { enumerable: true, get: function () { return cursor_models_1.detectProvider; } });
49
+ Object.defineProperty(exports, "formatModelName", { enumerable: true, get: function () { return cursor_models_1.formatModelName; } });
50
+ // Executor
51
+ var cursor_executor_1 = require("./cursor-executor");
52
+ Object.defineProperty(exports, "CursorExecutor", { enumerable: true, get: function () { return cursor_executor_1.CursorExecutor; } });
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cursor/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,QAAQ;AACR,0CAAwB;AAExB,OAAO;AACP,6CAAoG;AAA3F,+GAAA,gBAAgB,OAAA;AAAE,8GAAA,eAAe,OAAA;AAAE,8GAAA,eAAe,OAAA;AAAE,8GAAA,eAAe,OAAA;AAE5E,SAAS;AACT,iDAQyB;AAPvB,gHAAA,eAAe,OAAA;AACf,gHAAA,eAAe,OAAA;AACf,4GAAA,WAAW,OAAA;AACX,2GAAA,UAAU,OAAA;AACV,+GAAA,cAAc,OAAA;AACd,+GAAA,cAAc,OAAA;AACd,8GAAA,aAAa,OAAA;AAGf,SAAS;AACT,iDASyB;AARvB,sHAAA,qBAAqB,OAAA;AACrB,oHAAA,mBAAmB,OAAA;AACnB,qHAAA,oBAAoB,OAAA;AACpB,sHAAA,qBAAqB,OAAA;AACrB,mHAAA,kBAAkB,OAAA;AAClB,gHAAA,eAAe,OAAA;AACf,+GAAA,cAAc,OAAA;AACd,gHAAA,eAAe,OAAA;AAGjB,WAAW;AACX,qDAAmD;AAA1C,iHAAA,cAAc,OAAA"}
@@ -1,8 +1,16 @@
1
1
  /**
2
2
  * Cursor IDE Type Definitions
3
3
  *
4
- * TypeScript interfaces for the Cursor auth module.
4
+ * TypeScript interfaces for the Cursor module.
5
5
  */
6
+ /**
7
+ * Cursor daemon configuration.
8
+ * Temporary interface until #521 adds cursor to unified config.
9
+ */
10
+ export interface CursorConfig {
11
+ port: number;
12
+ model: string;
13
+ }
6
14
  /**
7
15
  * Cursor authentication credentials
8
16
  */
@@ -46,4 +54,28 @@ export interface AutoDetectResult {
46
54
  /** Error message (if detection failed) */
47
55
  error?: string;
48
56
  }
57
+ /**
58
+ * Cursor daemon/process status
59
+ */
60
+ export interface CursorDaemonStatus {
61
+ /** Whether daemon is running */
62
+ running: boolean;
63
+ /** Port number daemon is listening on */
64
+ port: number;
65
+ /** Process ID (if available) */
66
+ pid?: number;
67
+ }
68
+ /**
69
+ * Cursor AI model
70
+ */
71
+ export interface CursorModel {
72
+ /** Model ID */
73
+ id: string;
74
+ /** Display name */
75
+ name: string;
76
+ /** Provider (e.g., 'openai', 'anthropic') */
77
+ provider: string;
78
+ /** Whether this is the default model */
79
+ isDefault?: boolean;
80
+ }
49
81
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cursor/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,UAAU,EAAE,aAAa,GAAG,QAAQ,CAAC;IACrC,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cursor/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,UAAU,EAAE,aAAa,GAAG,QAAQ,CAAC;IACrC,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,eAAe;IACf,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Cursor IDE Type Definitions
4
4
  *
5
- * TypeScript interfaces for the Cursor auth module.
5
+ * TypeScript interfaces for the Cursor module.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  //# sourceMappingURL=types.js.map
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Cursor Routes - Cursor IDE integration via cursor proxy daemon
3
+ */
4
+ declare const router: import("express-serve-static-core").Router;
5
+ export default router;
6
+ //# sourceMappingURL=cursor-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-routes.d.ts","sourceRoot":"","sources":["../../../src/web-server/routes/cursor-routes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,QAAA,MAAM,MAAM,4CAAW,CAAC;AAqKxB,eAAe,MAAM,CAAC"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ /**
3
+ * Cursor Routes - Cursor IDE integration via cursor proxy daemon
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const express_1 = require("express");
10
+ const cursor_auth_1 = require("../../cursor/cursor-auth");
11
+ const unified_config_loader_1 = require("../../config/unified-config-loader");
12
+ const cursor_settings_routes_1 = __importDefault(require("./cursor-settings-routes"));
13
+ const router = (0, express_1.Router)();
14
+ // Mount settings sub-routes
15
+ router.use('/settings', cursor_settings_routes_1.default);
16
+ /**
17
+ * Get daemon status
18
+ * TODO: Implement in cursor-executor.ts (#520)
19
+ */
20
+ async function getDaemonStatus(port) {
21
+ // Stub - will be implemented in #520
22
+ return { running: false, port };
23
+ }
24
+ /**
25
+ * Get available models
26
+ * TODO: Implement in cursor-executor.ts (#520)
27
+ */
28
+ async function getAvailableModels() {
29
+ // Stub - will be implemented in #520
30
+ return []; // TODO: populated by cursor-models.ts (#520)
31
+ }
32
+ /**
33
+ * Start daemon
34
+ * TODO: Implement in cursor-executor.ts (#520)
35
+ */
36
+ async function startDaemon(port, ghostMode) {
37
+ // Stub - will be implemented in #520
38
+ return {
39
+ success: false,
40
+ message: `Daemon start not implemented (port: ${port}, ghost: ${ghostMode})`,
41
+ };
42
+ }
43
+ /**
44
+ * Stop daemon
45
+ * TODO: Implement in cursor-executor.ts (#520)
46
+ */
47
+ async function stopDaemon() {
48
+ // Stub - will be implemented in #520
49
+ return { success: false, message: 'Daemon stop not implemented' };
50
+ }
51
+ /**
52
+ * GET /api/cursor/status - Get Cursor status (auth + daemon)
53
+ */
54
+ router.get('/status', async (_req, res) => {
55
+ try {
56
+ const cursorConfig = (0, unified_config_loader_1.getCursorConfig)();
57
+ const authStatus = (0, cursor_auth_1.checkAuthStatus)();
58
+ const daemonStatus = await getDaemonStatus(cursorConfig.port);
59
+ res.json({
60
+ enabled: cursorConfig.enabled,
61
+ authenticated: authStatus.authenticated,
62
+ daemon_running: daemonStatus.running,
63
+ port: cursorConfig.port,
64
+ auto_start: cursorConfig.auto_start,
65
+ ghost_mode: cursorConfig.ghost_mode,
66
+ });
67
+ }
68
+ catch (error) {
69
+ res.status(500).json({ error: error.message });
70
+ }
71
+ });
72
+ /**
73
+ * POST /api/cursor/auth/import - Import Cursor token manually
74
+ */
75
+ router.post('/auth/import', async (req, res) => {
76
+ try {
77
+ const { accessToken, machineId } = req.body;
78
+ if (!accessToken || !machineId) {
79
+ res.status(400).json({ error: 'Missing accessToken or machineId' });
80
+ return;
81
+ }
82
+ // Validate token format
83
+ if (!(0, cursor_auth_1.validateToken)(accessToken, machineId)) {
84
+ res.status(400).json({ error: 'Invalid token or machine ID format' });
85
+ return;
86
+ }
87
+ // Save credentials
88
+ (0, cursor_auth_1.saveCredentials)({
89
+ accessToken,
90
+ machineId,
91
+ authMethod: 'manual',
92
+ importedAt: new Date().toISOString(),
93
+ });
94
+ res.json({ success: true, message: 'Token imported successfully' });
95
+ }
96
+ catch (error) {
97
+ res.status(500).json({ error: error.message });
98
+ }
99
+ });
100
+ /**
101
+ * POST /api/cursor/auth/auto-detect - Auto-detect token from SQLite
102
+ */
103
+ router.post('/auth/auto-detect', async (_req, res) => {
104
+ try {
105
+ const result = (0, cursor_auth_1.autoDetectTokens)();
106
+ if (!result.found || !result.accessToken || !result.machineId) {
107
+ res.status(404).json({ error: result.error ?? 'Token not found' });
108
+ return;
109
+ }
110
+ // Save credentials
111
+ (0, cursor_auth_1.saveCredentials)({
112
+ accessToken: result.accessToken,
113
+ machineId: result.machineId,
114
+ authMethod: 'auto-detect',
115
+ importedAt: new Date().toISOString(),
116
+ });
117
+ res.json({ success: true, message: 'Token auto-detected and imported' });
118
+ }
119
+ catch (error) {
120
+ res.status(500).json({ error: error.message });
121
+ }
122
+ });
123
+ /**
124
+ * GET /api/cursor/models - List available models
125
+ */
126
+ router.get('/models', async (_req, res) => {
127
+ try {
128
+ const models = await getAvailableModels();
129
+ res.json({ models });
130
+ }
131
+ catch (error) {
132
+ res.status(500).json({ error: error.message });
133
+ }
134
+ });
135
+ /**
136
+ * POST /api/cursor/daemon/start - Start cursor proxy daemon
137
+ * Path matches copilot convention: /api/{provider}/daemon/{action}
138
+ */
139
+ router.post('/daemon/start', async (_req, res) => {
140
+ try {
141
+ const cursorConfig = (0, unified_config_loader_1.getCursorConfig)();
142
+ const result = await startDaemon(cursorConfig.port, cursorConfig.ghost_mode);
143
+ res.json(result);
144
+ }
145
+ catch (error) {
146
+ res.status(500).json({ error: error.message });
147
+ }
148
+ });
149
+ /**
150
+ * POST /api/cursor/daemon/stop - Stop cursor proxy daemon
151
+ * Path matches copilot convention: /api/{provider}/daemon/{action}
152
+ */
153
+ router.post('/daemon/stop', async (_req, res) => {
154
+ try {
155
+ const result = await stopDaemon();
156
+ res.json(result);
157
+ }
158
+ catch (error) {
159
+ res.status(500).json({ error: error.message });
160
+ }
161
+ });
162
+ exports.default = router;
163
+ //# sourceMappingURL=cursor-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-routes.js","sourceRoot":"","sources":["../../../src/web-server/routes/cursor-routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Cursor Settings Routes - Settings editor and raw settings for Cursor IDE
3
+ */
4
+ declare const router: import("express-serve-static-core").Router;
5
+ export default router;
6
+ //# sourceMappingURL=cursor-settings-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-settings-routes.d.ts","sourceRoot":"","sources":["../../../src/web-server/routes/cursor-settings-routes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,QAAA,MAAM,MAAM,4CAAW,CAAC;AAyJxB,eAAe,MAAM,CAAC"}