cursor-api-proxy 0.5.0 → 0.7.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/README.md +61 -29
- package/dist/cli/reset-hwid.js +10 -1
- package/dist/cli/reset-hwid.js.map +1 -1
- package/dist/cli/usage.d.ts +1 -5
- package/dist/cli/usage.js +1 -38
- package/dist/cli/usage.js.map +1 -1
- package/dist/lib/acp-client.d.ts +42 -0
- package/dist/lib/acp-client.js +472 -0
- package/dist/lib/acp-client.js.map +1 -0
- package/dist/lib/agent-cmd-args.d.ts +4 -0
- package/dist/lib/agent-cmd-args.js +8 -3
- package/dist/lib/agent-cmd-args.js.map +1 -1
- package/dist/lib/agent-runner.d.ts +2 -2
- package/dist/lib/agent-runner.js +97 -5
- package/dist/lib/agent-runner.js.map +1 -1
- package/dist/lib/config.d.ts +20 -0
- package/dist/lib/config.js +22 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/env.d.ts +9 -0
- package/dist/lib/env.js +51 -0
- package/dist/lib/env.js.map +1 -1
- package/dist/lib/handlers/anthropic-messages.js +128 -20
- package/dist/lib/handlers/anthropic-messages.js.map +1 -1
- package/dist/lib/handlers/chat-completions.js +150 -20
- package/dist/lib/handlers/chat-completions.js.map +1 -1
- package/dist/lib/http.d.ts +2 -2
- package/dist/lib/http.js +7 -3
- package/dist/lib/http.js.map +1 -1
- package/dist/lib/process.d.ts +7 -0
- package/dist/lib/process.js +22 -2
- package/dist/lib/process.js.map +1 -1
- package/dist/lib/request-listener.js +7 -2
- package/dist/lib/request-listener.js.map +1 -1
- package/dist/lib/request-log.js +1 -1
- package/dist/lib/request-log.js.map +1 -1
- package/dist/lib/server.js +8 -0
- package/dist/lib/server.js.map +1 -1
- package/dist/lib/token-cache.d.ts +6 -0
- package/dist/lib/token-cache.js +40 -0
- package/dist/lib/token-cache.js.map +1 -0
- package/dist/lib/win-cmdline-limit.d.ts +32 -0
- package/dist/lib/win-cmdline-limit.js +92 -0
- package/dist/lib/win-cmdline-limit.js.map +1 -0
- package/dist/lib/workspace.d.ts +5 -0
- package/dist/lib/workspace.js +53 -2
- package/dist/lib/workspace.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/agent-runner.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
|
+
import { runAcpStream, runAcpSync } from "./acp-client.js";
|
|
2
3
|
import { run, runStreaming } from "./process.js";
|
|
3
|
-
import {
|
|
4
|
+
import { getChatOnlyEnvOverrides } from "./workspace.js";
|
|
5
|
+
import { readKeychainToken, writeCachedToken } from "./token-cache.js";
|
|
4
6
|
function cacheTokenForAccount(configDir) {
|
|
5
7
|
if (!configDir)
|
|
6
8
|
return;
|
|
@@ -8,14 +10,66 @@ function cacheTokenForAccount(configDir) {
|
|
|
8
10
|
if (token)
|
|
9
11
|
writeCachedToken(configDir, token);
|
|
10
12
|
}
|
|
11
|
-
|
|
13
|
+
function acpArgsWithModel(acpArgs, model) {
|
|
14
|
+
const i = acpArgs.indexOf("acp");
|
|
15
|
+
if (i === -1)
|
|
16
|
+
return acpArgs;
|
|
17
|
+
return [...acpArgs.slice(0, i + 1), "--model", model, ...acpArgs.slice(i + 1)];
|
|
18
|
+
}
|
|
19
|
+
function acpArgsWithWorkspace(acpArgs, workspaceDir) {
|
|
20
|
+
const i = acpArgs.indexOf("acp");
|
|
21
|
+
if (i === -1)
|
|
22
|
+
return acpArgs;
|
|
23
|
+
return [...acpArgs.slice(0, i), "--workspace", workspaceDir, ...acpArgs.slice(i)];
|
|
24
|
+
}
|
|
25
|
+
function extractModelFromCmdArgs(cmdArgs) {
|
|
26
|
+
const i = cmdArgs.indexOf("--model");
|
|
27
|
+
return i >= 0 && i + 1 < cmdArgs.length ? cmdArgs[i + 1] : undefined;
|
|
28
|
+
}
|
|
29
|
+
export function runAgentSync(config, workspaceDir, cmdArgs, tempDir, stdinPrompt, configDir, signal) {
|
|
30
|
+
if (config.useAcp && typeof stdinPrompt === "string") {
|
|
31
|
+
const acpModel = extractModelFromCmdArgs(cmdArgs);
|
|
32
|
+
let args = acpArgsWithWorkspace(config.acpArgs, workspaceDir);
|
|
33
|
+
args = acpModel ? acpArgsWithModel(args, acpModel) : args;
|
|
34
|
+
const acpEnv = { ...config.acpEnv };
|
|
35
|
+
if (config.chatOnlyWorkspace) {
|
|
36
|
+
Object.assign(acpEnv, getChatOnlyEnvOverrides(workspaceDir));
|
|
37
|
+
}
|
|
38
|
+
return runAcpSync(config.acpCommand, args, stdinPrompt, {
|
|
39
|
+
cwd: workspaceDir,
|
|
40
|
+
timeoutMs: config.timeoutMs,
|
|
41
|
+
env: acpEnv,
|
|
42
|
+
model: acpModel,
|
|
43
|
+
requestTimeoutMs: 60_000,
|
|
44
|
+
spawnOptions: config.acpSpawnOptions,
|
|
45
|
+
skipAuthenticate: config.acpSkipAuthenticate,
|
|
46
|
+
rawDebug: config.acpRawDebug,
|
|
47
|
+
signal,
|
|
48
|
+
}).then((out) => {
|
|
49
|
+
cacheTokenForAccount(configDir);
|
|
50
|
+
if (tempDir) {
|
|
51
|
+
try {
|
|
52
|
+
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
/* ignore */
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return out;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
const runEnvOverrides = config.chatOnlyWorkspace
|
|
62
|
+
? getChatOnlyEnvOverrides(workspaceDir)
|
|
63
|
+
: undefined;
|
|
12
64
|
return run(config.agentBin, cmdArgs, {
|
|
13
65
|
cwd: workspaceDir,
|
|
14
66
|
timeoutMs: config.timeoutMs,
|
|
15
67
|
maxMode: config.maxMode,
|
|
68
|
+
stdinContent: stdinPrompt,
|
|
69
|
+
envOverrides: runEnvOverrides,
|
|
16
70
|
configDir,
|
|
17
71
|
signal,
|
|
18
|
-
}).
|
|
72
|
+
}).then((out) => {
|
|
19
73
|
cacheTokenForAccount(configDir);
|
|
20
74
|
if (tempDir) {
|
|
21
75
|
try {
|
|
@@ -25,17 +79,54 @@ export function runAgentSync(config, workspaceDir, cmdArgs, tempDir, configDir,
|
|
|
25
79
|
/* ignore */
|
|
26
80
|
}
|
|
27
81
|
}
|
|
82
|
+
return out;
|
|
28
83
|
});
|
|
29
84
|
}
|
|
30
|
-
export function runAgentStream(config, workspaceDir, cmdArgs, onLine, tempDir, configDir, signal) {
|
|
85
|
+
export function runAgentStream(config, workspaceDir, cmdArgs, onLine, tempDir, stdinPrompt, configDir, signal) {
|
|
86
|
+
if (config.useAcp && typeof stdinPrompt === "string") {
|
|
87
|
+
const acpModel = extractModelFromCmdArgs(cmdArgs);
|
|
88
|
+
let args = acpArgsWithWorkspace(config.acpArgs, workspaceDir);
|
|
89
|
+
args = acpModel ? acpArgsWithModel(args, acpModel) : args;
|
|
90
|
+
const acpEnv = { ...config.acpEnv };
|
|
91
|
+
if (config.chatOnlyWorkspace) {
|
|
92
|
+
Object.assign(acpEnv, getChatOnlyEnvOverrides(workspaceDir));
|
|
93
|
+
}
|
|
94
|
+
return runAcpStream(config.acpCommand, args, stdinPrompt, {
|
|
95
|
+
cwd: workspaceDir,
|
|
96
|
+
timeoutMs: config.timeoutMs,
|
|
97
|
+
env: acpEnv,
|
|
98
|
+
model: acpModel,
|
|
99
|
+
requestTimeoutMs: 60_000,
|
|
100
|
+
spawnOptions: config.acpSpawnOptions,
|
|
101
|
+
skipAuthenticate: config.acpSkipAuthenticate,
|
|
102
|
+
rawDebug: config.acpRawDebug,
|
|
103
|
+
signal,
|
|
104
|
+
}, onLine).then((result) => {
|
|
105
|
+
cacheTokenForAccount(configDir);
|
|
106
|
+
if (tempDir) {
|
|
107
|
+
try {
|
|
108
|
+
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
/* ignore */
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return result;
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
const streamEnvOverrides = config.chatOnlyWorkspace
|
|
118
|
+
? getChatOnlyEnvOverrides(workspaceDir)
|
|
119
|
+
: undefined;
|
|
31
120
|
return runStreaming(config.agentBin, cmdArgs, {
|
|
32
121
|
cwd: workspaceDir,
|
|
33
122
|
timeoutMs: config.timeoutMs,
|
|
34
123
|
maxMode: config.maxMode,
|
|
35
124
|
onLine,
|
|
125
|
+
stdinContent: stdinPrompt,
|
|
126
|
+
envOverrides: streamEnvOverrides,
|
|
36
127
|
configDir,
|
|
37
128
|
signal,
|
|
38
|
-
}).
|
|
129
|
+
}).then((result) => {
|
|
39
130
|
cacheTokenForAccount(configDir);
|
|
40
131
|
if (tempDir) {
|
|
41
132
|
try {
|
|
@@ -45,6 +136,7 @@ export function runAgentStream(config, workspaceDir, cmdArgs, onLine, tempDir, c
|
|
|
45
136
|
/* ignore */
|
|
46
137
|
}
|
|
47
138
|
}
|
|
139
|
+
return result;
|
|
48
140
|
});
|
|
49
141
|
}
|
|
50
142
|
//# sourceMappingURL=agent-runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../../src/lib/agent-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../../src/lib/agent-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -2,6 +2,12 @@ import { type EnvOptions } from "./env.js";
|
|
|
2
2
|
export type CursorExecutionMode = "agent" | "ask" | "plan";
|
|
3
3
|
export type BridgeConfig = {
|
|
4
4
|
agentBin: string;
|
|
5
|
+
/** Resolved command for ACP (node + script on Windows when .cmd); avoids spawn EINVAL and DEP0190. */
|
|
6
|
+
acpCommand: string;
|
|
7
|
+
/** Args for ACP (e.g. [scriptPath, "acp"] or ["acp"]). */
|
|
8
|
+
acpArgs: string[];
|
|
9
|
+
/** Env to use when spawning ACP (e.g. CURSOR_INVOKED_AS). */
|
|
10
|
+
acpEnv: Record<string, string | undefined>;
|
|
5
11
|
host: string;
|
|
6
12
|
port: number;
|
|
7
13
|
requiredKey?: string;
|
|
@@ -24,9 +30,23 @@ export type BridgeConfig = {
|
|
|
24
30
|
verbose: boolean;
|
|
25
31
|
/** When true, enable Cursor Max Mode (larger context, more tool calls) via cli-config.json preflight. */
|
|
26
32
|
maxMode: boolean;
|
|
33
|
+
/** When true, pass the user prompt via stdin instead of argv (avoids Windows argv issues). */
|
|
34
|
+
promptViaStdin: boolean;
|
|
35
|
+
/** When true, use ACP (Agent Client Protocol) over stdio; fixes prompt delivery on Windows. */
|
|
36
|
+
useAcp: boolean;
|
|
37
|
+
/** Spawn options for ACP (e.g. windowsVerbatimArguments when using cmd.exe fallback). */
|
|
38
|
+
acpSpawnOptions?: {
|
|
39
|
+
windowsVerbatimArguments?: boolean;
|
|
40
|
+
};
|
|
41
|
+
/** When true, skip ACP authenticate step (use when pre-authenticated via --api-key or agent login). */
|
|
42
|
+
acpSkipAuthenticate: boolean;
|
|
43
|
+
/** When true, log every raw JSON-RPC line from ACP stdout (very verbose). Set CURSOR_BRIDGE_ACP_RAW_DEBUG=1 to enable. */
|
|
44
|
+
acpRawDebug: boolean;
|
|
27
45
|
/** Pool of cursor configuration directories for round-robin account rotation. */
|
|
28
46
|
configDirs: string[];
|
|
29
47
|
/** When true, runs each config dir on its own incrementing port starting from `port` */
|
|
30
48
|
multiPort: boolean;
|
|
49
|
+
/** Windows CreateProcess command-line budget for prompt truncation (ignored on non-Windows). */
|
|
50
|
+
winCmdlineMax: number;
|
|
31
51
|
};
|
|
32
52
|
export declare function loadBridgeConfig(opts?: EnvOptions): BridgeConfig;
|
package/dist/lib/config.js
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
|
-
import { loadEnvConfig } from "./env.js";
|
|
1
|
+
import { loadEnvConfig, resolveAgentCommand } from "./env.js";
|
|
2
2
|
export function loadBridgeConfig(opts = {}) {
|
|
3
3
|
const env = loadEnvConfig(opts);
|
|
4
|
+
const acpResolved = resolveAgentCommand(env.agentBin, ["acp"], opts);
|
|
5
|
+
const envSource = opts.env ?? process.env;
|
|
6
|
+
const apiKey = envSource.CURSOR_API_KEY ?? envSource.CURSOR_AUTH_TOKEN;
|
|
7
|
+
const acpArgs = acpResolved.args;
|
|
8
|
+
const acpEnv = { ...acpResolved.env };
|
|
9
|
+
if (apiKey) {
|
|
10
|
+
acpEnv.CURSOR_API_KEY = apiKey;
|
|
11
|
+
acpEnv.CURSOR_AUTH_TOKEN = apiKey;
|
|
12
|
+
}
|
|
4
13
|
return {
|
|
5
14
|
agentBin: env.agentBin,
|
|
15
|
+
acpCommand: acpResolved.command,
|
|
16
|
+
acpArgs,
|
|
17
|
+
acpEnv,
|
|
6
18
|
host: env.host,
|
|
7
19
|
port: env.port,
|
|
8
20
|
requiredKey: env.requiredKey,
|
|
@@ -19,8 +31,17 @@ export function loadBridgeConfig(opts = {}) {
|
|
|
19
31
|
chatOnlyWorkspace: env.chatOnlyWorkspace,
|
|
20
32
|
verbose: env.verbose,
|
|
21
33
|
maxMode: env.maxMode,
|
|
34
|
+
promptViaStdin: env.promptViaStdin,
|
|
35
|
+
useAcp: env.useAcp,
|
|
36
|
+
acpSpawnOptions: acpResolved.windowsVerbatimArguments != null
|
|
37
|
+
? { windowsVerbatimArguments: acpResolved.windowsVerbatimArguments }
|
|
38
|
+
: undefined,
|
|
39
|
+
acpSkipAuthenticate: !!apiKey ||
|
|
40
|
+
/^(1|true|yes|on)$/i.test(String(envSource.CURSOR_BRIDGE_ACP_SKIP_AUTHENTICATE ?? "").trim()),
|
|
41
|
+
acpRawDebug: /^(1|true|yes|on)$/i.test(String(envSource.CURSOR_BRIDGE_ACP_RAW_DEBUG ?? "").trim()),
|
|
22
42
|
configDirs: env.configDirs ?? [],
|
|
23
43
|
multiPort: env.multiPort,
|
|
44
|
+
winCmdlineMax: env.winCmdlineMax,
|
|
24
45
|
};
|
|
25
46
|
}
|
|
26
47
|
//# sourceMappingURL=config.js.map
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAmB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAmB,MAAM,UAAU,CAAC;AAoD/E,MAAM,UAAU,gBAAgB,CAAC,OAAmB,EAAE;IACpD,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,iBAAiB,CAAC;IACvE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IAEjC,MAAM,MAAM,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,EAAwC,CAAC;IAC5E,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC;QAC/B,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC;IACpC,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,WAAW,CAAC,OAAO;QAC/B,OAAO;QACP,MAAM;QACN,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,IAAI,EAAE,KAAK,EAAE,oDAAoD;QACjE,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;QACxC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,eAAe,EACb,WAAW,CAAC,wBAAwB,IAAI,IAAI;YAC1C,CAAC,CAAC,EAAE,wBAAwB,EAAE,WAAW,CAAC,wBAAwB,EAAE;YACpE,CAAC,CAAC,SAAS;QACf,mBAAmB,EACjB,CAAC,CAAC,MAAM;YACR,oBAAoB,CAAC,IAAI,CACvB,MAAM,CAAC,SAAS,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CACnE;QACH,WAAW,EAAE,oBAAoB,CAAC,IAAI,CACpC,MAAM,CAAC,SAAS,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAC3D;QACD,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;QAChC,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,aAAa,EAAE,GAAG,CAAC,aAAa;KACjC,CAAC;AACJ,CAAC"}
|
package/dist/lib/env.d.ts
CHANGED
|
@@ -26,10 +26,19 @@ export type LoadedEnv = {
|
|
|
26
26
|
verbose: boolean;
|
|
27
27
|
/** When true, set maxMode in cli-config.json before each run (larger context, more tools). */
|
|
28
28
|
maxMode: boolean;
|
|
29
|
+
/** When true, pass the user prompt via stdin instead of argv (avoids Windows argv truncation). */
|
|
30
|
+
promptViaStdin: boolean;
|
|
31
|
+
/** When true, use ACP (Agent Client Protocol) over stdio instead of CLI argv (fixes prompt delivery on Windows). */
|
|
32
|
+
useAcp: boolean;
|
|
29
33
|
/** Pool of cursor configuration directories for round-robin account rotation. */
|
|
30
34
|
configDirs: string[];
|
|
31
35
|
/** When true, runs each config dir on its own incrementing port starting from `port` */
|
|
32
36
|
multiPort: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Upper bound (UTF-16 code units, pessimistic) for the Windows CreateProcess command line.
|
|
39
|
+
* On win32 the proxy truncates the prompt tail to stay under this budget.
|
|
40
|
+
*/
|
|
41
|
+
winCmdlineMax: number;
|
|
33
42
|
};
|
|
34
43
|
export type AgentCommand = {
|
|
35
44
|
command: string;
|
package/dist/lib/env.js
CHANGED
|
@@ -50,6 +50,35 @@ function resolveAbsolutePath(raw, cwd) {
|
|
|
50
50
|
return undefined;
|
|
51
51
|
return path.resolve(cwd, raw);
|
|
52
52
|
}
|
|
53
|
+
/** Version dir name format: YYYY.MM.DD-commit (matches cursor-agent.ps1). */
|
|
54
|
+
const VERSION_DIR_REGEX = /^(\d{4})\.(\d{1,2})\.(\d{1,2})-[a-f0-9]+$/;
|
|
55
|
+
function parseVersionToInt(name) {
|
|
56
|
+
const m = name.match(VERSION_DIR_REGEX);
|
|
57
|
+
if (!m)
|
|
58
|
+
return 0;
|
|
59
|
+
const [, year, month, day] = m;
|
|
60
|
+
const y = year.padStart(4, "0");
|
|
61
|
+
const mo = month.padStart(2, "0");
|
|
62
|
+
const d = day.padStart(2, "0");
|
|
63
|
+
return parseInt(y + mo + d, 10);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Find the latest version directory under dir/versions/ (e.g. cursor-agent/versions/2026.03.11-6dfa30c).
|
|
67
|
+
* Returns the full path to the version dir, or undefined if none found.
|
|
68
|
+
*/
|
|
69
|
+
function findLatestVersionDir(dir) {
|
|
70
|
+
const versionsDir = path.join(dir, "versions");
|
|
71
|
+
if (!fs.existsSync(versionsDir) || !fs.statSync(versionsDir).isDirectory()) {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
const entries = fs.readdirSync(versionsDir, { withFileTypes: true });
|
|
75
|
+
const versionDirs = entries
|
|
76
|
+
.filter((e) => e.isDirectory() && VERSION_DIR_REGEX.test(e.name))
|
|
77
|
+
.sort((a, b) => parseVersionToInt(b.name) - parseVersionToInt(a.name));
|
|
78
|
+
if (versionDirs.length === 0)
|
|
79
|
+
return undefined;
|
|
80
|
+
return path.join(versionsDir, versionDirs[0].name);
|
|
81
|
+
}
|
|
53
82
|
/**
|
|
54
83
|
* Auto-discovers configuration directories located inside ~/.cursor-api-proxy/accounts/
|
|
55
84
|
*/
|
|
@@ -112,6 +141,8 @@ export function loadEnvConfig(opts = {}) {
|
|
|
112
141
|
if (configDirs.length === 0) {
|
|
113
142
|
configDirs = discoverAccountDirs(home);
|
|
114
143
|
}
|
|
144
|
+
const winCmdlineRaw = envNumber(env, ["CURSOR_BRIDGE_WIN_CMDLINE_MAX"], 30_000);
|
|
145
|
+
const winCmdlineMax = Math.min(32_700, Math.max(4096, Number.isFinite(winCmdlineRaw) ? winCmdlineRaw : 30_000));
|
|
115
146
|
return {
|
|
116
147
|
agentBin: envString(env, [
|
|
117
148
|
"CURSOR_AGENT_BIN",
|
|
@@ -137,8 +168,11 @@ export function loadEnvConfig(opts = {}) {
|
|
|
137
168
|
chatOnlyWorkspace: envBool(env, ["CURSOR_BRIDGE_CHAT_ONLY_WORKSPACE"], true),
|
|
138
169
|
verbose: envBool(env, ["CURSOR_BRIDGE_VERBOSE"], false),
|
|
139
170
|
maxMode: envBool(env, ["CURSOR_BRIDGE_MAX_MODE"], false),
|
|
171
|
+
promptViaStdin: envBool(env, ["CURSOR_BRIDGE_PROMPT_VIA_STDIN"], false),
|
|
172
|
+
useAcp: envBool(env, ["CURSOR_BRIDGE_USE_ACP"], false),
|
|
140
173
|
configDirs,
|
|
141
174
|
multiPort: envBool(env, ["CURSOR_BRIDGE_MULTI_PORT"], false),
|
|
175
|
+
winCmdlineMax,
|
|
142
176
|
};
|
|
143
177
|
}
|
|
144
178
|
export function resolveAgentCommand(cmd, args, opts = {}) {
|
|
@@ -181,6 +215,23 @@ export function resolveAgentCommand(cmd, args, opts = {}) {
|
|
|
181
215
|
: undefined,
|
|
182
216
|
};
|
|
183
217
|
}
|
|
218
|
+
const versionDir = findLatestVersionDir(dir);
|
|
219
|
+
if (versionDir) {
|
|
220
|
+
const versionNode = path.join(versionDir, "node.exe");
|
|
221
|
+
const versionScript = path.join(versionDir, "index.js");
|
|
222
|
+
if (fs.existsSync(versionNode) && fs.existsSync(versionScript)) {
|
|
223
|
+
const configDir = path.join(dir, "..", "data", "config");
|
|
224
|
+
return {
|
|
225
|
+
command: versionNode,
|
|
226
|
+
args: [versionScript, ...args],
|
|
227
|
+
env: { ...env, CURSOR_INVOKED_AS: "agent.cmd" },
|
|
228
|
+
agentScriptPath: versionScript,
|
|
229
|
+
configDir: fs.existsSync(path.join(configDir, "cli-config.json"))
|
|
230
|
+
? configDir
|
|
231
|
+
: undefined,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
}
|
|
184
235
|
const quotedArgs = args
|
|
185
236
|
.map((arg) => (arg.includes(" ") ? `"${arg}"` : arg))
|
|
186
237
|
.join(" ");
|
package/dist/lib/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { buildPromptFromAnthropicMessages } from "../anthropic.js";
|
|
3
|
-
import {
|
|
3
|
+
import { buildAgentFixedArgs } from "../agent-cmd-args.js";
|
|
4
4
|
import { runAgentStream, runAgentSync } from "../agent-runner.js";
|
|
5
5
|
import { createStreamParser } from "../cli-stream-parser.js";
|
|
6
6
|
import { json, writeSseHeaders } from "../http.js";
|
|
@@ -11,6 +11,7 @@ import { resolveModel } from "../resolve-model.js";
|
|
|
11
11
|
import { resolveWorkspace } from "../workspace.js";
|
|
12
12
|
import { sanitizeMessages, sanitizeSystem } from "../sanitize.js";
|
|
13
13
|
import { getNextAccountConfigDir, reportRequestStart, reportRequestEnd, reportRateLimit, reportRequestSuccess, reportRequestError, getAccountStats, } from "../account-pool.js";
|
|
14
|
+
import { fitPromptToWinCmdline, warnPromptTruncated, } from "../win-cmdline-limit.js";
|
|
14
15
|
function isRateLimited(stderr) {
|
|
15
16
|
return /\b429\b|rate.?limit|too many requests/i.test(stderr);
|
|
16
17
|
}
|
|
@@ -19,9 +20,11 @@ export async function handleAnthropicMessages(req, res, ctx, rawBody, method, pa
|
|
|
19
20
|
const body = JSON.parse(rawBody || "{}");
|
|
20
21
|
const requested = normalizeModelId(body.model);
|
|
21
22
|
const model = resolveModel(requested, lastRequestedModelRef, config);
|
|
23
|
+
const displayModel = requested === "auto" && config.defaultModel !== "auto"
|
|
24
|
+
? config.defaultModel
|
|
25
|
+
: model;
|
|
22
26
|
const cleanSystem = sanitizeSystem(body.system);
|
|
23
27
|
const cleanMessages = sanitizeMessages(body.messages ?? []);
|
|
24
|
-
// Inject Anthropic tool schemas as a system text block
|
|
25
28
|
const toolsText = toolsToSystemText(body.tools);
|
|
26
29
|
const systemWithTools = toolsText
|
|
27
30
|
? [cleanSystem, toolsText].filter(Boolean).join("\n\n")
|
|
@@ -60,11 +63,47 @@ export async function handleAnthropicMessages(req, res, ctx, rawBody, method, pa
|
|
|
60
63
|
}
|
|
61
64
|
logTrafficRequest(config.verbose, model ?? cursorModel, trafficMessages, !!body.stream);
|
|
62
65
|
const headerWs = req.headers["x-cursor-workspace"];
|
|
63
|
-
|
|
64
|
-
|
|
66
|
+
let workspaceDir;
|
|
67
|
+
let tempDir;
|
|
68
|
+
try {
|
|
69
|
+
const ws = resolveWorkspace(config, headerWs);
|
|
70
|
+
workspaceDir = ws.workspaceDir;
|
|
71
|
+
tempDir = ws.tempDir;
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
const msg = e instanceof Error ? e.message : "Invalid workspace";
|
|
75
|
+
json(res, 400, {
|
|
76
|
+
error: { type: "invalid_request_error", message: msg },
|
|
77
|
+
});
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const fixedArgs = buildAgentFixedArgs(config, workspaceDir, cursorModel, !!body.stream);
|
|
81
|
+
const fit = fitPromptToWinCmdline(config.agentBin, fixedArgs, prompt, {
|
|
82
|
+
maxCmdline: config.winCmdlineMax,
|
|
83
|
+
platform: process.platform,
|
|
84
|
+
cwd: workspaceDir,
|
|
85
|
+
});
|
|
86
|
+
if (!fit.ok) {
|
|
87
|
+
json(res, 500, {
|
|
88
|
+
error: {
|
|
89
|
+
type: "api_error",
|
|
90
|
+
message: fit.error,
|
|
91
|
+
code: "windows_cmdline_limit",
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (fit.truncated) {
|
|
97
|
+
warnPromptTruncated(fit.originalLength, fit.finalPromptLength);
|
|
98
|
+
}
|
|
99
|
+
const cmdArgs = fit.args;
|
|
65
100
|
const msgId = `msg_${randomUUID().replace(/-/g, "")}`;
|
|
101
|
+
const truncatedHeaders = fit.truncated
|
|
102
|
+
? { "X-Cursor-Proxy-Prompt-Truncated": "true" }
|
|
103
|
+
: undefined;
|
|
104
|
+
const promptForAgent = config.promptViaStdin || config.useAcp ? prompt : undefined;
|
|
66
105
|
if (body.stream) {
|
|
67
|
-
writeSseHeaders(res);
|
|
106
|
+
writeSseHeaders(res, truncatedHeaders);
|
|
68
107
|
res.on("error", () => {
|
|
69
108
|
/* client disconnected mid-stream */
|
|
70
109
|
});
|
|
@@ -77,7 +116,7 @@ export async function handleAnthropicMessages(req, res, ctx, rawBody, method, pa
|
|
|
77
116
|
id: msgId,
|
|
78
117
|
type: "message",
|
|
79
118
|
role: "assistant",
|
|
80
|
-
model:
|
|
119
|
+
model: displayModel ?? cursorModel,
|
|
81
120
|
content: [],
|
|
82
121
|
},
|
|
83
122
|
});
|
|
@@ -86,6 +125,71 @@ export async function handleAnthropicMessages(req, res, ctx, rawBody, method, pa
|
|
|
86
125
|
index: 0,
|
|
87
126
|
content_block: { type: "text", text: "" },
|
|
88
127
|
});
|
|
128
|
+
const configDir = getNextAccountConfigDir();
|
|
129
|
+
logAccountAssigned(configDir);
|
|
130
|
+
reportRequestStart(configDir);
|
|
131
|
+
const streamStart = Date.now();
|
|
132
|
+
const abortController = new AbortController();
|
|
133
|
+
req.once("close", () => abortController.abort());
|
|
134
|
+
if (config.useAcp && typeof promptForAgent === "string") {
|
|
135
|
+
let accumulated = "";
|
|
136
|
+
runAgentStream(config, workspaceDir, cmdArgs, (chunk) => {
|
|
137
|
+
accumulated += chunk;
|
|
138
|
+
writeEvent({
|
|
139
|
+
type: "content_block_delta",
|
|
140
|
+
index: 0,
|
|
141
|
+
delta: { type: "text_delta", text: chunk },
|
|
142
|
+
});
|
|
143
|
+
}, tempDir, promptForAgent, configDir, abortController.signal)
|
|
144
|
+
.then(({ code, stderr: stderrOut }) => {
|
|
145
|
+
const latencyMs = Date.now() - streamStart;
|
|
146
|
+
reportRequestEnd(configDir);
|
|
147
|
+
if (stderrOut && isRateLimited(stderrOut)) {
|
|
148
|
+
reportRateLimit(configDir, 60000);
|
|
149
|
+
}
|
|
150
|
+
if (!abortController.signal.aborted) {
|
|
151
|
+
if (code !== 0) {
|
|
152
|
+
reportRequestError(configDir, latencyMs);
|
|
153
|
+
const publicMsg = logAgentError(config.sessionsLogPath, method, pathname, remoteAddress, code, stderrOut);
|
|
154
|
+
writeEvent({
|
|
155
|
+
type: "error",
|
|
156
|
+
error: { type: "api_error", message: publicMsg },
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
reportRequestSuccess(configDir, latencyMs);
|
|
161
|
+
logTrafficResponse(config.verbose, model ?? cursorModel, accumulated, true);
|
|
162
|
+
writeEvent({ type: "content_block_stop", index: 0 });
|
|
163
|
+
writeEvent({
|
|
164
|
+
type: "message_delta",
|
|
165
|
+
delta: { stop_reason: "end_turn", stop_sequence: null },
|
|
166
|
+
usage: { output_tokens: 0 },
|
|
167
|
+
});
|
|
168
|
+
writeEvent({ type: "message_stop" });
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
logAccountStats(config.verbose, getAccountStats());
|
|
172
|
+
res.end();
|
|
173
|
+
})
|
|
174
|
+
.catch((err) => {
|
|
175
|
+
reportRequestEnd(configDir);
|
|
176
|
+
if (!abortController.signal.aborted) {
|
|
177
|
+
reportRequestError(configDir, Date.now() - streamStart);
|
|
178
|
+
}
|
|
179
|
+
console.error(`[${new Date().toISOString()}] Agent stream error:`, err);
|
|
180
|
+
if (!abortController.signal.aborted) {
|
|
181
|
+
writeEvent({
|
|
182
|
+
type: "error",
|
|
183
|
+
error: {
|
|
184
|
+
type: "api_error",
|
|
185
|
+
message: "The Cursor agent stream failed. See server logs for details.",
|
|
186
|
+
},
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
res.end();
|
|
190
|
+
});
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
89
193
|
let accumulated = "";
|
|
90
194
|
const parseLine = createStreamParser((text) => {
|
|
91
195
|
accumulated += text;
|
|
@@ -104,20 +208,17 @@ export async function handleAnthropicMessages(req, res, ctx, rawBody, method, pa
|
|
|
104
208
|
});
|
|
105
209
|
writeEvent({ type: "message_stop" });
|
|
106
210
|
});
|
|
107
|
-
|
|
108
|
-
logAccountAssigned(configDir);
|
|
109
|
-
reportRequestStart(configDir);
|
|
110
|
-
const streamStart = Date.now();
|
|
111
|
-
const abortController = new AbortController();
|
|
112
|
-
req.once("close", () => abortController.abort());
|
|
113
|
-
runAgentStream(config, workspaceDir, cmdArgs, parseLine, tempDir, configDir, abortController.signal)
|
|
211
|
+
runAgentStream(config, workspaceDir, cmdArgs, parseLine, tempDir, promptForAgent, configDir, abortController.signal)
|
|
114
212
|
.then(({ code, stderr: stderrOut }) => {
|
|
115
213
|
const latencyMs = Date.now() - streamStart;
|
|
116
214
|
reportRequestEnd(configDir);
|
|
117
215
|
if (stderrOut && isRateLimited(stderrOut)) {
|
|
118
216
|
reportRateLimit(configDir, 60000);
|
|
119
217
|
}
|
|
120
|
-
if (
|
|
218
|
+
if (abortController.signal.aborted) {
|
|
219
|
+
/* client disconnected — do not count as success or failure */
|
|
220
|
+
}
|
|
221
|
+
else if (code !== 0) {
|
|
121
222
|
reportRequestError(configDir, latencyMs);
|
|
122
223
|
logAgentError(config.sessionsLogPath, method, pathname, remoteAddress, code, stderrOut);
|
|
123
224
|
}
|
|
@@ -129,7 +230,9 @@ export async function handleAnthropicMessages(req, res, ctx, rawBody, method, pa
|
|
|
129
230
|
})
|
|
130
231
|
.catch((err) => {
|
|
131
232
|
reportRequestEnd(configDir);
|
|
132
|
-
|
|
233
|
+
if (!abortController.signal.aborted) {
|
|
234
|
+
reportRequestError(configDir, Date.now() - streamStart);
|
|
235
|
+
}
|
|
133
236
|
console.error(`[${new Date().toISOString()}] Agent stream error:`, err);
|
|
134
237
|
res.end();
|
|
135
238
|
});
|
|
@@ -141,7 +244,7 @@ export async function handleAnthropicMessages(req, res, ctx, rawBody, method, pa
|
|
|
141
244
|
const syncStart = Date.now();
|
|
142
245
|
const abortController = new AbortController();
|
|
143
246
|
req.once("close", () => abortController.abort());
|
|
144
|
-
const out = await runAgentSync(config, workspaceDir, cmdArgs, tempDir, configDir, abortController.signal);
|
|
247
|
+
const out = await runAgentSync(config, workspaceDir, cmdArgs, tempDir, promptForAgent, configDir, abortController.signal);
|
|
145
248
|
const syncLatency = Date.now() - syncStart;
|
|
146
249
|
reportRequestEnd(configDir);
|
|
147
250
|
if (out.stderr && isRateLimited(out.stderr)) {
|
|
@@ -152,7 +255,7 @@ export async function handleAnthropicMessages(req, res, ctx, rawBody, method, pa
|
|
|
152
255
|
logAccountStats(config.verbose, getAccountStats());
|
|
153
256
|
const errMsg = logAgentError(config.sessionsLogPath, method, pathname, remoteAddress, out.code, out.stderr);
|
|
154
257
|
json(res, 500, {
|
|
155
|
-
error: { type: "api_error", message: errMsg },
|
|
258
|
+
error: { type: "api_error", message: errMsg, code: "cursor_cli_error" },
|
|
156
259
|
});
|
|
157
260
|
return;
|
|
158
261
|
}
|
|
@@ -160,14 +263,19 @@ export async function handleAnthropicMessages(req, res, ctx, rawBody, method, pa
|
|
|
160
263
|
const content = out.stdout.trim();
|
|
161
264
|
logTrafficResponse(config.verbose, model ?? cursorModel, content, false);
|
|
162
265
|
logAccountStats(config.verbose, getAccountStats());
|
|
266
|
+
const inTok = Math.max(1, Math.round(prompt.length / 4));
|
|
267
|
+
const outTok = Math.max(1, Math.round(content.length / 4));
|
|
163
268
|
json(res, 200, {
|
|
164
269
|
id: msgId,
|
|
165
270
|
type: "message",
|
|
166
271
|
role: "assistant",
|
|
167
272
|
content: [{ type: "text", text: content }],
|
|
168
|
-
model:
|
|
273
|
+
model: displayModel ?? cursorModel,
|
|
169
274
|
stop_reason: "end_turn",
|
|
170
|
-
usage: {
|
|
171
|
-
|
|
275
|
+
usage: {
|
|
276
|
+
input_tokens: inTok,
|
|
277
|
+
output_tokens: outTok,
|
|
278
|
+
},
|
|
279
|
+
}, truncatedHeaders);
|
|
172
280
|
}
|
|
173
281
|
//# sourceMappingURL=anthropic-messages.js.map
|