@kaitranntt/ccs 7.43.0-dev.2 → 7.43.0-dev.20
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/README.md +49 -2
- package/config/base-codex.settings.json +4 -4
- package/dist/api/services/profile-reader.d.ts.map +1 -1
- package/dist/api/services/profile-reader.js +4 -1
- package/dist/api/services/profile-reader.js.map +1 -1
- package/dist/auth/profile-detector.d.ts +14 -3
- package/dist/auth/profile-detector.d.ts.map +1 -1
- package/dist/auth/profile-detector.js +35 -15
- package/dist/auth/profile-detector.js.map +1 -1
- package/dist/ccs.js +34 -4
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/auth/auth-types.d.ts +28 -1
- package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
- package/dist/cliproxy/auth/auth-types.js +70 -4
- package/dist/cliproxy/auth/auth-types.js.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.js +19 -4
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
- package/dist/cliproxy/composite-validator.d.ts +20 -0
- package/dist/cliproxy/composite-validator.d.ts.map +1 -0
- package/dist/cliproxy/composite-validator.js +85 -0
- package/dist/cliproxy/composite-validator.js.map +1 -0
- package/dist/cliproxy/config/env-builder.d.ts +24 -0
- package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
- package/dist/cliproxy/config/env-builder.js +72 -1
- package/dist/cliproxy/config/env-builder.js.map +1 -1
- package/dist/cliproxy/config/thinking-config.d.ts +19 -2
- package/dist/cliproxy/config/thinking-config.d.ts.map +1 -1
- package/dist/cliproxy/config/thinking-config.js +127 -27
- package/dist/cliproxy/config/thinking-config.js.map +1 -1
- package/dist/cliproxy/executor/env-resolver.d.ts +16 -0
- package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -1
- package/dist/cliproxy/executor/env-resolver.js +82 -26
- package/dist/cliproxy/executor/env-resolver.js.map +1 -1
- package/dist/cliproxy/executor/index.d.ts.map +1 -1
- package/dist/cliproxy/executor/index.js +202 -67
- package/dist/cliproxy/executor/index.js.map +1 -1
- package/dist/cliproxy/executor/retry-handler.d.ts +11 -0
- package/dist/cliproxy/executor/retry-handler.d.ts.map +1 -1
- package/dist/cliproxy/executor/retry-handler.js +30 -1
- package/dist/cliproxy/executor/retry-handler.js.map +1 -1
- package/dist/cliproxy/executor/thinking-arg-parser.d.ts +27 -0
- package/dist/cliproxy/executor/thinking-arg-parser.d.ts.map +1 -0
- package/dist/cliproxy/executor/thinking-arg-parser.js +80 -0
- package/dist/cliproxy/executor/thinking-arg-parser.js.map +1 -0
- package/dist/cliproxy/model-catalog.d.ts.map +1 -1
- package/dist/cliproxy/model-catalog.js +14 -3
- package/dist/cliproxy/model-catalog.js.map +1 -1
- package/dist/cliproxy/model-config.d.ts.map +1 -1
- package/dist/cliproxy/model-config.js +27 -7
- package/dist/cliproxy/model-config.js.map +1 -1
- package/dist/cliproxy/provider-capabilities.d.ts +22 -0
- package/dist/cliproxy/provider-capabilities.d.ts.map +1 -0
- package/dist/cliproxy/provider-capabilities.js +95 -0
- package/dist/cliproxy/provider-capabilities.js.map +1 -0
- package/dist/cliproxy/quota-fetcher-codex.d.ts.map +1 -1
- package/dist/cliproxy/quota-fetcher-codex.js +106 -87
- package/dist/cliproxy/quota-fetcher-codex.js.map +1 -1
- package/dist/cliproxy/remote-auth-fetcher.d.ts.map +1 -1
- package/dist/cliproxy/remote-auth-fetcher.js +3 -26
- package/dist/cliproxy/remote-auth-fetcher.js.map +1 -1
- package/dist/cliproxy/service-manager.d.ts.map +1 -1
- package/dist/cliproxy/service-manager.js +3 -6
- package/dist/cliproxy/service-manager.js.map +1 -1
- package/dist/cliproxy/services/index.d.ts +2 -2
- package/dist/cliproxy/services/index.d.ts.map +1 -1
- package/dist/cliproxy/services/index.js +4 -1
- package/dist/cliproxy/services/index.js.map +1 -1
- package/dist/cliproxy/services/proxy-lifecycle-service.d.ts +15 -3
- package/dist/cliproxy/services/proxy-lifecycle-service.d.ts.map +1 -1
- package/dist/cliproxy/services/proxy-lifecycle-service.js +15 -6
- package/dist/cliproxy/services/proxy-lifecycle-service.js.map +1 -1
- package/dist/cliproxy/services/variant-config-adapter.d.ts +15 -0
- package/dist/cliproxy/services/variant-config-adapter.d.ts.map +1 -1
- package/dist/cliproxy/services/variant-config-adapter.js +84 -11
- package/dist/cliproxy/services/variant-config-adapter.js.map +1 -1
- package/dist/cliproxy/services/variant-service.d.ts +26 -0
- package/dist/cliproxy/services/variant-service.d.ts.map +1 -1
- package/dist/cliproxy/services/variant-service.js +164 -9
- package/dist/cliproxy/services/variant-service.js.map +1 -1
- package/dist/cliproxy/services/variant-settings.d.ts +19 -1
- package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
- package/dist/cliproxy/services/variant-settings.js +150 -12
- package/dist/cliproxy/services/variant-settings.js.map +1 -1
- package/dist/cliproxy/types.d.ts +13 -0
- package/dist/cliproxy/types.d.ts.map +1 -1
- package/dist/cliproxy/types.js.map +1 -1
- package/dist/commands/cliproxy/auth-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/auth-subcommand.js +2 -1
- package/dist/commands/cliproxy/auth-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.js +4 -0
- package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/index.d.ts.map +1 -1
- package/dist/commands/cliproxy/index.js +12 -0
- package/dist/commands/cliproxy/index.js.map +1 -1
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts +9 -0
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js +92 -6
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand.js +106 -4
- package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/variant-subcommand.d.ts +1 -0
- package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/variant-subcommand.js +307 -3
- package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
- package/dist/commands/command-execution-contract.d.ts +23 -0
- package/dist/commands/command-execution-contract.d.ts.map +1 -0
- package/dist/commands/command-execution-contract.js +21 -0
- package/dist/commands/command-execution-contract.js.map +1 -0
- package/dist/commands/cursor-command-display.d.ts +6 -0
- package/dist/commands/cursor-command-display.d.ts.map +1 -0
- package/dist/commands/cursor-command-display.js +100 -0
- package/dist/commands/cursor-command-display.js.map +1 -0
- package/dist/commands/cursor-command.d.ts +12 -0
- package/dist/commands/cursor-command.d.ts.map +1 -0
- package/dist/commands/cursor-command.js +222 -0
- package/dist/commands/cursor-command.js.map +1 -0
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +30 -3
- package/dist/commands/help-command.js.map +1 -1
- package/dist/commands/shell-completion-command.d.ts +20 -0
- package/dist/commands/shell-completion-command.d.ts.map +1 -1
- package/dist/commands/shell-completion-command.js +45 -30
- package/dist/commands/shell-completion-command.js.map +1 -1
- package/dist/config/reserved-names.d.ts +1 -1
- package/dist/config/reserved-names.d.ts.map +1 -1
- package/dist/config/reserved-names.js +2 -0
- package/dist/config/reserved-names.js.map +1 -1
- package/dist/config/unified-config-loader.d.ts +6 -1
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +57 -3
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/config/unified-config-types.d.ts +71 -2
- package/dist/config/unified-config-types.d.ts.map +1 -1
- package/dist/config/unified-config-types.js +27 -2
- package/dist/config/unified-config-types.js.map +1 -1
- package/dist/cursor/cursor-daemon-entry.d.ts +14 -0
- package/dist/cursor/cursor-daemon-entry.d.ts.map +1 -0
- package/dist/cursor/cursor-daemon-entry.js +236 -0
- package/dist/cursor/cursor-daemon-entry.js.map +1 -0
- package/dist/cursor/cursor-daemon-pid.d.ts +4 -0
- package/dist/cursor/cursor-daemon-pid.d.ts.map +1 -0
- package/dist/cursor/cursor-daemon-pid.js +77 -0
- package/dist/cursor/cursor-daemon-pid.js.map +1 -0
- package/dist/cursor/cursor-daemon.d.ts +36 -0
- package/dist/cursor/cursor-daemon.d.ts.map +1 -0
- package/dist/cursor/cursor-daemon.js +315 -0
- package/dist/cursor/cursor-daemon.js.map +1 -0
- package/dist/cursor/cursor-executor.d.ts +7 -0
- package/dist/cursor/cursor-executor.d.ts.map +1 -1
- package/dist/cursor/cursor-executor.js +244 -44
- package/dist/cursor/cursor-executor.js.map +1 -1
- package/dist/cursor/cursor-models.d.ts +43 -0
- package/dist/cursor/cursor-models.d.ts.map +1 -0
- package/dist/cursor/cursor-models.js +205 -0
- package/dist/cursor/cursor-models.js.map +1 -0
- package/dist/cursor/cursor-protobuf-decoder.js +26 -26
- package/dist/cursor/cursor-protobuf-decoder.js.map +1 -1
- package/dist/cursor/cursor-protobuf-encoder.js +14 -14
- package/dist/cursor/cursor-protobuf-encoder.js.map +1 -1
- package/dist/cursor/cursor-protobuf-schema.d.ts +121 -74
- package/dist/cursor/cursor-protobuf-schema.d.ts.map +1 -1
- package/dist/cursor/cursor-protobuf-schema.js +80 -90
- package/dist/cursor/cursor-protobuf-schema.js.map +1 -1
- package/dist/cursor/cursor-protobuf.js +25 -25
- package/dist/cursor/cursor-protobuf.js.map +1 -1
- package/dist/cursor/cursor-stream-parser.d.ts +52 -0
- package/dist/cursor/cursor-stream-parser.d.ts.map +1 -0
- package/dist/cursor/cursor-stream-parser.js +142 -0
- package/dist/cursor/cursor-stream-parser.js.map +1 -0
- package/dist/cursor/daemon-process-ownership.d.ts +3 -0
- package/dist/cursor/daemon-process-ownership.d.ts.map +1 -0
- package/dist/cursor/daemon-process-ownership.js +96 -0
- package/dist/cursor/daemon-process-ownership.js.map +1 -0
- package/dist/cursor/index.d.ts +11 -0
- package/dist/cursor/index.d.ts.map +1 -0
- package/dist/cursor/index.js +55 -0
- package/dist/cursor/index.js.map +1 -0
- package/dist/cursor/types.d.ts +32 -1
- package/dist/cursor/types.d.ts.map +1 -1
- package/dist/cursor/types.js +1 -1
- package/dist/management/oauth-port-diagnostics.d.ts +4 -7
- package/dist/management/oauth-port-diagnostics.d.ts.map +1 -1
- package/dist/management/oauth-port-diagnostics.js +12 -23
- package/dist/management/oauth-port-diagnostics.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/ui/assets/accounts-D7apG3NM.js +1 -0
- package/dist/ui/assets/{alert-dialog-Dy-8Z_Ud.js → alert-dialog-z6HEaPqe.js} +1 -1
- package/dist/ui/assets/api-C-aJLAbg.js +1 -0
- package/dist/ui/assets/auth-section-DXzTOTWo.js +1 -0
- package/dist/ui/assets/{backups-section-CDuqhiZo.js → backups-section-BWlvR34E.js} +1 -1
- package/dist/ui/assets/cliproxy-BSyjTE6L.js +3 -0
- package/dist/ui/assets/{cliproxy-control-panel-DJd_zNR3.js → cliproxy-control-panel-CKJHMGqD.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-DtYrWaa7.js → confirm-dialog-D8vB20zr.js} +1 -1
- package/dist/ui/assets/{copilot-DHdywZ9L.js → copilot-7sa7MFH_.js} +3 -3
- package/dist/ui/assets/cursor-KwsbcPyA.js +1 -0
- package/dist/ui/assets/globalenv-section-BiyiJmIj.js +1 -0
- package/dist/ui/assets/{health-BsMhSeFz.js → health-Dqa61Bj1.js} +1 -1
- package/dist/ui/assets/{icons-D5eAI-GR.js → icons-G0rMFC4M.js} +1 -1
- package/dist/ui/assets/index-Bqle3SG4.css +1 -0
- package/dist/ui/assets/{index-B2GQ_Joi.js → index-CiJndnpm.js} +1 -1
- package/dist/ui/assets/index-DGFnVfdv.js +47 -0
- package/dist/ui/assets/index-DacpfVrt.js +1 -0
- package/dist/ui/assets/index-akX3q-m-.js +1 -0
- package/dist/ui/assets/{index-CEF_VhSR.js → index-qMp3rvH4.js} +1 -1
- package/dist/ui/assets/{proxy-status-widget-Cb7KfEqq.js → proxy-status-widget-CSq7bxEv.js} +1 -1
- package/dist/ui/assets/shared-DvyiNZGg.js +1 -0
- package/dist/ui/assets/{switch-D6XSRTo_.js → switch-Cr9fAsnM.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/utils/config-manager.d.ts.map +1 -1
- package/dist/utils/config-manager.js +17 -6
- package/dist/utils/config-manager.js.map +1 -1
- package/dist/web-server/jsonl-parser.js +1 -1
- package/dist/web-server/jsonl-parser.js.map +1 -1
- package/dist/web-server/routes/account-routes.d.ts.map +1 -1
- package/dist/web-server/routes/account-routes.js +5 -11
- package/dist/web-server/routes/account-routes.js.map +1 -1
- package/dist/web-server/routes/cliproxy-auth-routes.d.ts +5 -0
- package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-auth-routes.js +73 -6
- package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.js +43 -4
- package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
- package/dist/web-server/routes/cursor-routes.d.ts +16 -0
- package/dist/web-server/routes/cursor-routes.d.ts.map +1 -0
- package/dist/web-server/routes/cursor-routes.js +171 -0
- package/dist/web-server/routes/cursor-routes.js.map +1 -0
- package/dist/web-server/routes/cursor-settings-routes.d.ts +6 -0
- package/dist/web-server/routes/cursor-settings-routes.d.ts.map +1 -0
- package/dist/web-server/routes/cursor-settings-routes.js +209 -0
- package/dist/web-server/routes/cursor-settings-routes.js.map +1 -0
- package/dist/web-server/routes/index.d.ts.map +1 -1
- package/dist/web-server/routes/index.js +3 -0
- package/dist/web-server/routes/index.js.map +1 -1
- package/dist/web-server/routes/variant-routes.d.ts.map +1 -1
- package/dist/web-server/routes/variant-routes.js +107 -6
- package/dist/web-server/routes/variant-routes.js.map +1 -1
- package/package.json +5 -2
- package/scripts/hardening-inventory.js +526 -0
- package/scripts/maintainability-baseline.js +309 -0
- package/dist/ui/assets/accounts-CkN_roEn.js +0 -1
- package/dist/ui/assets/api-2TN7yVwm.js +0 -1
- package/dist/ui/assets/auth-section-CeKCNzzC.js +0 -1
- package/dist/ui/assets/cliproxy-626zUpA_.js +0 -3
- package/dist/ui/assets/globalenv-section-Cn5ufgRh.js +0 -1
- package/dist/ui/assets/index-Bmgylhgn.js +0 -1
- package/dist/ui/assets/index-Cr6iEc8x.js +0 -47
- package/dist/ui/assets/index-DkMR3J96.js +0 -1
- package/dist/ui/assets/index-QvMpU4Lc.css +0 -1
- package/dist/ui/assets/shared-BsWeldW8.js +0 -1
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cursor Daemon Manager
|
|
4
|
+
*
|
|
5
|
+
* Manages the cursor daemon lifecycle (start/stop/status).
|
|
6
|
+
* Uses CursorExecutor for OpenAI-compatible API proxy to Cursor backend.
|
|
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.stopDaemon = exports.startDaemon = exports.getDaemonStatus = exports.isDaemonRunning = exports.removePidFile = exports.writePidToFile = exports.getPidFromFile = void 0;
|
|
33
|
+
const child_process_1 = require("child_process");
|
|
34
|
+
const fs = __importStar(require("fs"));
|
|
35
|
+
const path = __importStar(require("path"));
|
|
36
|
+
const http = __importStar(require("http"));
|
|
37
|
+
const cursor_daemon_pid_1 = require("./cursor-daemon-pid");
|
|
38
|
+
const daemon_process_ownership_1 = require("./daemon-process-ownership");
|
|
39
|
+
var cursor_daemon_pid_2 = require("./cursor-daemon-pid");
|
|
40
|
+
Object.defineProperty(exports, "getPidFromFile", { enumerable: true, get: function () { return cursor_daemon_pid_2.getPidFromFile; } });
|
|
41
|
+
Object.defineProperty(exports, "writePidToFile", { enumerable: true, get: function () { return cursor_daemon_pid_2.writePidToFile; } });
|
|
42
|
+
Object.defineProperty(exports, "removePidFile", { enumerable: true, get: function () { return cursor_daemon_pid_2.removePidFile; } });
|
|
43
|
+
/**
|
|
44
|
+
* Resolve daemon entrypoint candidates for current runtime.
|
|
45
|
+
* - Dist runtime always uses JS artifact.
|
|
46
|
+
* - Bun source runtime prefers TS, then falls back to JS.
|
|
47
|
+
*/
|
|
48
|
+
function getDaemonEntrypointCandidates() {
|
|
49
|
+
const jsEntry = path.join(__dirname, 'cursor-daemon-entry.js');
|
|
50
|
+
const tsEntry = path.join(__dirname, 'cursor-daemon-entry.ts');
|
|
51
|
+
const isBunRuntime = process.execPath.toLowerCase().includes('bun');
|
|
52
|
+
const runningFromDist = __filename.endsWith('.js');
|
|
53
|
+
if (runningFromDist) {
|
|
54
|
+
return [jsEntry];
|
|
55
|
+
}
|
|
56
|
+
if (isBunRuntime) {
|
|
57
|
+
return [tsEntry, jsEntry];
|
|
58
|
+
}
|
|
59
|
+
return [jsEntry];
|
|
60
|
+
}
|
|
61
|
+
async function resolveDaemonEntrypoint() {
|
|
62
|
+
for (const candidate of getDaemonEntrypointCandidates()) {
|
|
63
|
+
try {
|
|
64
|
+
await fs.promises.access(candidate, fs.constants.R_OK);
|
|
65
|
+
return candidate;
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// Try next candidate
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Check if cursor daemon is running on the specified port.
|
|
75
|
+
* Uses 127.0.0.1 instead of localhost for more reliable local connections.
|
|
76
|
+
*/
|
|
77
|
+
async function isDaemonRunning(port) {
|
|
78
|
+
return new Promise((resolve) => {
|
|
79
|
+
const req = http.request({
|
|
80
|
+
hostname: '127.0.0.1',
|
|
81
|
+
port,
|
|
82
|
+
path: '/health',
|
|
83
|
+
method: 'GET',
|
|
84
|
+
timeout: 3000,
|
|
85
|
+
}, (res) => {
|
|
86
|
+
let body = '';
|
|
87
|
+
res.setEncoding('utf8');
|
|
88
|
+
res.on('data', (chunk) => {
|
|
89
|
+
body += chunk;
|
|
90
|
+
});
|
|
91
|
+
res.on('end', () => {
|
|
92
|
+
if (res.statusCode !== 200) {
|
|
93
|
+
resolve(false);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
const payload = JSON.parse(body);
|
|
98
|
+
resolve(payload.service === 'cursor-daemon');
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
resolve(false);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
req.on('error', () => {
|
|
106
|
+
resolve(false);
|
|
107
|
+
});
|
|
108
|
+
req.on('timeout', () => {
|
|
109
|
+
req.destroy();
|
|
110
|
+
resolve(false);
|
|
111
|
+
});
|
|
112
|
+
req.end();
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
exports.isDaemonRunning = isDaemonRunning;
|
|
116
|
+
/**
|
|
117
|
+
* Get daemon status.
|
|
118
|
+
*/
|
|
119
|
+
async function getDaemonStatus(port) {
|
|
120
|
+
const running = await isDaemonRunning(port);
|
|
121
|
+
const pid = (0, cursor_daemon_pid_1.getPidFromFile)();
|
|
122
|
+
return {
|
|
123
|
+
running,
|
|
124
|
+
port,
|
|
125
|
+
pid: running ? (pid ?? undefined) : undefined,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
exports.getDaemonStatus = getDaemonStatus;
|
|
129
|
+
/**
|
|
130
|
+
* Start the cursor daemon.
|
|
131
|
+
*
|
|
132
|
+
* @param config Cursor configuration
|
|
133
|
+
* @returns Promise that resolves when daemon is ready
|
|
134
|
+
*/
|
|
135
|
+
async function startDaemon(config) {
|
|
136
|
+
// Check if already running
|
|
137
|
+
if (await isDaemonRunning(config.port)) {
|
|
138
|
+
return { success: true, pid: (0, cursor_daemon_pid_1.getPidFromFile)() ?? undefined };
|
|
139
|
+
}
|
|
140
|
+
// Validate port before interpolation (prevents injection)
|
|
141
|
+
if (!Number.isInteger(config.port) || config.port < 1 || config.port > 65535) {
|
|
142
|
+
return { success: false, error: `Invalid port: ${config.port}` };
|
|
143
|
+
}
|
|
144
|
+
const daemonEntry = await resolveDaemonEntrypoint();
|
|
145
|
+
if (!daemonEntry) {
|
|
146
|
+
return {
|
|
147
|
+
success: false,
|
|
148
|
+
error: 'Cursor daemon entrypoint not found. Run `bun run build` and retry.',
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
return new Promise((resolve) => {
|
|
152
|
+
let proc;
|
|
153
|
+
let resolved = false;
|
|
154
|
+
const safeResolve = (result) => {
|
|
155
|
+
if (resolved)
|
|
156
|
+
return;
|
|
157
|
+
resolved = true;
|
|
158
|
+
if (checkTimeout)
|
|
159
|
+
clearTimeout(checkTimeout);
|
|
160
|
+
if (!result.success)
|
|
161
|
+
(0, cursor_daemon_pid_1.removePidFile)();
|
|
162
|
+
resolve(result);
|
|
163
|
+
};
|
|
164
|
+
let checkTimeout = null;
|
|
165
|
+
try {
|
|
166
|
+
const args = [
|
|
167
|
+
daemonEntry,
|
|
168
|
+
'--port',
|
|
169
|
+
String(config.port),
|
|
170
|
+
'--ghost-mode',
|
|
171
|
+
String(config.ghost_mode !== false),
|
|
172
|
+
'--ccs-daemon',
|
|
173
|
+
];
|
|
174
|
+
proc = (0, child_process_1.spawn)(process.execPath, args, {
|
|
175
|
+
stdio: 'ignore',
|
|
176
|
+
detached: true,
|
|
177
|
+
});
|
|
178
|
+
// Unref so parent can exit
|
|
179
|
+
proc.unref();
|
|
180
|
+
if (proc.pid) {
|
|
181
|
+
(0, cursor_daemon_pid_1.writePidToFile)(proc.pid);
|
|
182
|
+
}
|
|
183
|
+
// Wait for daemon to be ready (poll for up to 30 seconds)
|
|
184
|
+
let attempts = 0;
|
|
185
|
+
const maxAttempts = 30;
|
|
186
|
+
const pollHealth = async () => {
|
|
187
|
+
attempts++;
|
|
188
|
+
if (await isDaemonRunning(config.port)) {
|
|
189
|
+
safeResolve({ success: true, pid: proc.pid });
|
|
190
|
+
}
|
|
191
|
+
else if (attempts >= maxAttempts) {
|
|
192
|
+
// Kill orphaned process
|
|
193
|
+
if (proc.pid) {
|
|
194
|
+
try {
|
|
195
|
+
process.kill(proc.pid, 'SIGTERM');
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
/* already dead */
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
safeResolve({
|
|
202
|
+
success: false,
|
|
203
|
+
error: 'Daemon did not start within 30 seconds',
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
checkTimeout = setTimeout(pollHealth, 1000);
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
checkTimeout = setTimeout(pollHealth, 1000);
|
|
211
|
+
proc.on('error', (err) => {
|
|
212
|
+
safeResolve({
|
|
213
|
+
success: false,
|
|
214
|
+
error: `Failed to start daemon: ${err.message}`,
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
proc.on('exit', (code, signal) => {
|
|
218
|
+
if (code === null) {
|
|
219
|
+
safeResolve({
|
|
220
|
+
success: false,
|
|
221
|
+
error: `Daemon process was killed by signal ${signal}`,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
else if (code === 0) {
|
|
225
|
+
safeResolve({
|
|
226
|
+
success: false,
|
|
227
|
+
error: 'Daemon process exited unexpectedly with code 0',
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
safeResolve({
|
|
232
|
+
success: false,
|
|
233
|
+
error: `Daemon process exited with code ${code}`,
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
catch (err) {
|
|
239
|
+
safeResolve({
|
|
240
|
+
success: false,
|
|
241
|
+
error: `Failed to spawn daemon: ${err.message}`,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
exports.startDaemon = startDaemon;
|
|
247
|
+
/**
|
|
248
|
+
* Stop the cursor daemon.
|
|
249
|
+
*/
|
|
250
|
+
async function stopDaemon() {
|
|
251
|
+
const pid = (0, cursor_daemon_pid_1.getPidFromFile)();
|
|
252
|
+
if (!pid) {
|
|
253
|
+
// No PID file — daemon is not running or was already stopped
|
|
254
|
+
return { success: true };
|
|
255
|
+
}
|
|
256
|
+
try {
|
|
257
|
+
const ownership = (0, daemon_process_ownership_1.verifyDaemonOwnership)(pid);
|
|
258
|
+
if (ownership === 'not-running') {
|
|
259
|
+
(0, cursor_daemon_pid_1.removePidFile)();
|
|
260
|
+
return { success: true };
|
|
261
|
+
}
|
|
262
|
+
if (ownership === 'not-owned') {
|
|
263
|
+
// PID was reused by an unrelated process.
|
|
264
|
+
(0, cursor_daemon_pid_1.removePidFile)();
|
|
265
|
+
return { success: true };
|
|
266
|
+
}
|
|
267
|
+
if (ownership === 'unknown') {
|
|
268
|
+
return {
|
|
269
|
+
success: false,
|
|
270
|
+
error: `Refusing to stop PID ${pid}: unable to verify daemon ownership`,
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
// Send SIGTERM to the process
|
|
274
|
+
process.kill(pid, 'SIGTERM');
|
|
275
|
+
// Wait for process to exit (up to 5 seconds)
|
|
276
|
+
let attempts = 0;
|
|
277
|
+
while (attempts < 10) {
|
|
278
|
+
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
279
|
+
try {
|
|
280
|
+
// Check if process still exists (kill(pid, 0) throws if not)
|
|
281
|
+
process.kill(pid, 0);
|
|
282
|
+
attempts++;
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
// Process no longer exists
|
|
286
|
+
break;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
// Escalate to SIGKILL only if SIGTERM wait loop exhausted
|
|
290
|
+
if (attempts >= 10) {
|
|
291
|
+
try {
|
|
292
|
+
process.kill(pid, 'SIGKILL');
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
// Already dead — good
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
(0, cursor_daemon_pid_1.removePidFile)();
|
|
299
|
+
return { success: true };
|
|
300
|
+
}
|
|
301
|
+
catch (err) {
|
|
302
|
+
const error = err;
|
|
303
|
+
if (error.code === 'ESRCH') {
|
|
304
|
+
// Process doesn't exist
|
|
305
|
+
(0, cursor_daemon_pid_1.removePidFile)();
|
|
306
|
+
return { success: true };
|
|
307
|
+
}
|
|
308
|
+
return {
|
|
309
|
+
success: false,
|
|
310
|
+
error: `Failed to stop daemon: ${error.message}`,
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
exports.stopDaemon = stopDaemon;
|
|
315
|
+
//# sourceMappingURL=cursor-daemon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor-daemon.js","sourceRoot":"","sources":["../../src/cursor/cursor-daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,12 +62,19 @@ export declare class CursorExecutor {
|
|
|
62
62
|
headers: Record<string, string>;
|
|
63
63
|
transformedBody: ExecutorParams['body'];
|
|
64
64
|
}>;
|
|
65
|
+
/**
|
|
66
|
+
* Execute a streaming request, piping HTTP/2 data events through
|
|
67
|
+
* StreamingFrameParser for incremental SSE output.
|
|
68
|
+
* Falls back to buffered transformProtobufToSSE when http2 is unavailable.
|
|
69
|
+
*/
|
|
70
|
+
private executeStreaming;
|
|
65
71
|
/**
|
|
66
72
|
* Parse protobuf buffer into frames and extract text/toolcalls.
|
|
67
73
|
* Shared logic between JSON and SSE transformers.
|
|
68
74
|
*/
|
|
69
75
|
private parseProtobufFrames;
|
|
70
76
|
transformProtobufToJSON(buffer: Buffer, model: string, _body: ExecutorParams['body']): Response;
|
|
77
|
+
/** @deprecated Use executeStreaming() for real-time SSE. Retained for fetch fallback. */
|
|
71
78
|
transformProtobufToSSE(buffer: Buffer, model: string, _body: ExecutorParams['body']): Response;
|
|
72
79
|
}
|
|
73
80
|
export default CursorExecutor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-executor.d.ts","sourceRoot":"","sources":["../../src/cursor/cursor-executor.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;
|
|
1
|
+
{"version":3,"file":"cursor-executor.d.ts","sourceRoot":"","sources":["../../src/cursor/cursor-executor.ts"],"names":[],"mappings":"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"}
|