cursor-api-proxy 0.5.0 → 0.6.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 +12 -4
- 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/config.d.ts +2 -0
- package/dist/lib/config.js +1 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/env.d.ts +5 -0
- package/dist/lib/env.js +3 -0
- package/dist/lib/env.js.map +1 -1
- package/dist/lib/handlers/anthropic-messages.js +23 -4
- package/dist/lib/handlers/anthropic-messages.js.map +1 -1
- package/dist/lib/handlers/chat-completions.js +23 -4
- 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/server.js +1 -0
- package/dist/lib/server.js.map +1 -1
- 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/package.json +1 -1
package/README.md
CHANGED
|
@@ -172,20 +172,28 @@ Environment handling is centralized in one module. Aliases, defaults, path resol
|
|
|
172
172
|
| `CURSOR_BRIDGE_CHAT_ONLY_WORKSPACE` | `true` | When `true` (default), the CLI runs in an empty temp dir so it **cannot read or write your project**; pure chat only. Set to `false` to pass the real workspace (e.g. for `X-Cursor-Workspace`). |
|
|
173
173
|
| `CURSOR_BRIDGE_VERBOSE` | `false` | When `true`, print full request messages and response content to stdout for every completion (both stream and sync). |
|
|
174
174
|
| `CURSOR_BRIDGE_MAX_MODE` | `false` | When `true`, enable Cursor **Max Mode** for all requests (larger context window, higher tool-call limits). The proxy writes `maxMode: true` to `cli-config.json` before each run. Works when using `CURSOR_AGENT_NODE`/`CURSOR_AGENT_SCRIPT` or the default Windows `.cmd` layout (node.exe + index.js next to agent.cmd). |
|
|
175
|
+
| `CURSOR_BRIDGE_WIN_CMDLINE_MAX` | `30000` | **(Windows)** Upper bound (UTF-16 units, pessimistic) for the full `CreateProcess` command line. If the prompt would exceed it, the proxy keeps the **tail** of the prompt and prepends a short omission notice, logs a warning, and sets `X-Cursor-Proxy-Prompt-Truncated: true` on the response. Clamped to `4096`–`32700`. |
|
|
175
176
|
| `CURSOR_CONFIG_DIRS` | — | Comma-separated list of configuration directories (e.g. `/home/user/.config/cursor-agent-1,/home/user/.config/cursor-agent-2`). Used for round-robin rotation between multiple accounts to distribute load and avoid rate limits. |
|
|
176
177
|
| `CURSOR_BRIDGE_MULTI_PORT` | `false` | When `true` and `CURSOR_CONFIG_DIRS` is set, instead of a single server doing round-robin, the proxy spawns a separate server for each configuration directory on incrementing ports (starting from `CURSOR_BRIDGE_PORT`). |
|
|
177
178
|
| `CURSOR_AGENT_BIN` | `agent` | Path to Cursor CLI binary. Alias precedence: `CURSOR_AGENT_BIN`, then `CURSOR_CLI_BIN`, then `CURSOR_CLI_PATH`. |
|
|
178
|
-
| `CURSOR_AGENT_NODE` | — | **(Windows)** Path to Node.js executable. When set together with `CURSOR_AGENT_SCRIPT`, spawns Node directly instead of going through cmd.exe, bypassing
|
|
179
|
-
| `CURSOR_AGENT_SCRIPT` | — | **(Windows)** Path to the agent script (e.g. `agent.cmd` or the underlying `.js`). Use with `CURSOR_AGENT_NODE` to
|
|
179
|
+
| `CURSOR_AGENT_NODE` | — | **(Windows)** Path to Node.js executable. When set together with `CURSOR_AGENT_SCRIPT`, spawns Node directly instead of going through cmd.exe, bypassing cmd’s ~8191 character limit (the overall `CreateProcess` limit ~32K still applies; see `CURSOR_BRIDGE_WIN_CMDLINE_MAX`). |
|
|
180
|
+
| `CURSOR_AGENT_SCRIPT` | — | **(Windows)** Path to the agent script (e.g. `agent.cmd` or the underlying `.js`). Use with `CURSOR_AGENT_NODE` to avoid cmd.exe’s short command-line cap. |
|
|
180
181
|
|
|
181
182
|
Notes:
|
|
182
183
|
|
|
183
184
|
- `--tailscale` changes the default host to `0.0.0.0` only when `CURSOR_BRIDGE_HOST` is not already set.
|
|
184
185
|
- Relative paths such as `CURSOR_BRIDGE_WORKSPACE`, `CURSOR_BRIDGE_SESSIONS_LOG`, `CURSOR_BRIDGE_TLS_CERT`, and `CURSOR_BRIDGE_TLS_KEY` are resolved from the current working directory.
|
|
185
186
|
|
|
186
|
-
#### Windows command line
|
|
187
|
+
#### Windows command line limits
|
|
187
188
|
|
|
188
|
-
|
|
189
|
+
Two different limits matter:
|
|
190
|
+
|
|
191
|
+
1. **cmd.exe** — about **8191** characters. If the proxy invokes the agent through `cmd.exe`, long prompts can fail before the process starts.
|
|
192
|
+
2. **CreateProcess** — about **32,767** characters for the **entire** command line (executable path plus all arguments), even when spawning `node.exe` and the script directly.
|
|
193
|
+
|
|
194
|
+
Set both `CURSOR_AGENT_NODE` (path to `node.exe`) and `CURSOR_AGENT_SCRIPT` (path to the agent script) so the proxy spawns Node with the script and args **without** cmd.exe, avoiding the smaller cmd limit.
|
|
195
|
+
|
|
196
|
+
Very large prompts can still hit the **CreateProcess** cap and produce `spawn ENAMETOOLONG`. The proxy mitigates that on Windows by **truncating the start of the prompt** while **keeping the tail** (recent context), prepending a short notice, logging a warning, and optionally exposing `X-Cursor-Proxy-Prompt-Truncated: true`. Tune the budget with `CURSOR_BRIDGE_WIN_CMDLINE_MAX` (default `30000`).
|
|
189
197
|
|
|
190
198
|
Example (adjust paths to your install):
|
|
191
199
|
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { BridgeConfig } from "./config.js";
|
|
2
|
+
/**
|
|
3
|
+
* CLI flags and options for the Cursor agent, excluding the final prompt argument.
|
|
4
|
+
*/
|
|
5
|
+
export declare function buildAgentFixedArgs(config: BridgeConfig, workspaceDir: string, model: string, stream: boolean): string[];
|
|
2
6
|
/**
|
|
3
7
|
* Build CLI arguments for running the Cursor agent.
|
|
4
8
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* CLI flags and options for the Cursor agent, excluding the final prompt argument.
|
|
3
3
|
*/
|
|
4
|
-
export function
|
|
4
|
+
export function buildAgentFixedArgs(config, workspaceDir, model, stream) {
|
|
5
5
|
const args = ["--print"];
|
|
6
6
|
if (config.approveMcps)
|
|
7
7
|
args.push("--approve-mcps");
|
|
@@ -18,7 +18,12 @@ export function buildAgentCmdArgs(config, workspaceDir, model, prompt, stream) {
|
|
|
18
18
|
else {
|
|
19
19
|
args.push("--output-format", "text");
|
|
20
20
|
}
|
|
21
|
-
args.push(prompt);
|
|
22
21
|
return args;
|
|
23
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Build CLI arguments for running the Cursor agent.
|
|
25
|
+
*/
|
|
26
|
+
export function buildAgentCmdArgs(config, workspaceDir, model, prompt, stream) {
|
|
27
|
+
return [...buildAgentFixedArgs(config, workspaceDir, model, stream), prompt];
|
|
28
|
+
}
|
|
24
29
|
//# sourceMappingURL=agent-cmd-args.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-cmd-args.js","sourceRoot":"","sources":["../../src/lib/agent-cmd-args.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"agent-cmd-args.js","sourceRoot":"","sources":["../../src/lib/agent-cmd-args.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAoB,EACpB,YAAoB,EACpB,KAAa,EACb,MAAe;IAEf,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACzB,IAAI,MAAM,CAAC,WAAW;QAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,iBAAiB;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5B,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAoB,EACpB,YAAoB,EACpB,KAAa,EACb,MAAc,EACd,MAAe;IAEf,OAAO,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/E,CAAC"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -28,5 +28,7 @@ export type BridgeConfig = {
|
|
|
28
28
|
configDirs: string[];
|
|
29
29
|
/** When true, runs each config dir on its own incrementing port starting from `port` */
|
|
30
30
|
multiPort: boolean;
|
|
31
|
+
/** Windows CreateProcess command-line budget for prompt truncation (ignored on non-Windows). */
|
|
32
|
+
winCmdlineMax: number;
|
|
31
33
|
};
|
|
32
34
|
export declare function loadBridgeConfig(opts?: EnvOptions): BridgeConfig;
|
package/dist/lib/config.js
CHANGED
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,EAAmB,MAAM,UAAU,CAAC;AAoC1D,MAAM,UAAU,gBAAgB,CAAC,OAAmB,EAAE;IACpD,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEhC,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,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,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
|
@@ -30,6 +30,11 @@ export type LoadedEnv = {
|
|
|
30
30
|
configDirs: string[];
|
|
31
31
|
/** When true, runs each config dir on its own incrementing port starting from `port` */
|
|
32
32
|
multiPort: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Upper bound (UTF-16 code units, pessimistic) for the Windows CreateProcess command line.
|
|
35
|
+
* On win32 the proxy truncates the prompt tail to stay under this budget.
|
|
36
|
+
*/
|
|
37
|
+
winCmdlineMax: number;
|
|
33
38
|
};
|
|
34
39
|
export type AgentCommand = {
|
|
35
40
|
command: string;
|
package/dist/lib/env.js
CHANGED
|
@@ -112,6 +112,8 @@ export function loadEnvConfig(opts = {}) {
|
|
|
112
112
|
if (configDirs.length === 0) {
|
|
113
113
|
configDirs = discoverAccountDirs(home);
|
|
114
114
|
}
|
|
115
|
+
const winCmdlineRaw = envNumber(env, ["CURSOR_BRIDGE_WIN_CMDLINE_MAX"], 30_000);
|
|
116
|
+
const winCmdlineMax = Math.min(32_700, Math.max(4096, Number.isFinite(winCmdlineRaw) ? winCmdlineRaw : 30_000));
|
|
115
117
|
return {
|
|
116
118
|
agentBin: envString(env, [
|
|
117
119
|
"CURSOR_AGENT_BIN",
|
|
@@ -139,6 +141,7 @@ export function loadEnvConfig(opts = {}) {
|
|
|
139
141
|
maxMode: envBool(env, ["CURSOR_BRIDGE_MAX_MODE"], false),
|
|
140
142
|
configDirs,
|
|
141
143
|
multiPort: envBool(env, ["CURSOR_BRIDGE_MULTI_PORT"], false),
|
|
144
|
+
winCmdlineMax,
|
|
142
145
|
};
|
|
143
146
|
}
|
|
144
147
|
export function resolveAgentCommand(cmd, args, opts = {}) {
|
package/dist/lib/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
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
|
}
|
|
@@ -61,10 +62,28 @@ export async function handleAnthropicMessages(req, res, ctx, rawBody, method, pa
|
|
|
61
62
|
logTrafficRequest(config.verbose, model ?? cursorModel, trafficMessages, !!body.stream);
|
|
62
63
|
const headerWs = req.headers["x-cursor-workspace"];
|
|
63
64
|
const { workspaceDir, tempDir } = resolveWorkspace(config, headerWs);
|
|
64
|
-
const
|
|
65
|
+
const fixedArgs = buildAgentFixedArgs(config, workspaceDir, cursorModel, !!body.stream);
|
|
66
|
+
const fit = fitPromptToWinCmdline(config.agentBin, fixedArgs, prompt, {
|
|
67
|
+
maxCmdline: config.winCmdlineMax,
|
|
68
|
+
platform: process.platform,
|
|
69
|
+
cwd: workspaceDir,
|
|
70
|
+
});
|
|
71
|
+
if (!fit.ok) {
|
|
72
|
+
json(res, 500, {
|
|
73
|
+
error: { type: "api_error", message: fit.error },
|
|
74
|
+
});
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (fit.truncated) {
|
|
78
|
+
warnPromptTruncated(fit.originalLength, fit.finalPromptLength);
|
|
79
|
+
}
|
|
80
|
+
const cmdArgs = fit.args;
|
|
65
81
|
const msgId = `msg_${randomUUID().replace(/-/g, "")}`;
|
|
82
|
+
const truncatedHeaders = fit.truncated
|
|
83
|
+
? { "X-Cursor-Proxy-Prompt-Truncated": "true" }
|
|
84
|
+
: undefined;
|
|
66
85
|
if (body.stream) {
|
|
67
|
-
writeSseHeaders(res);
|
|
86
|
+
writeSseHeaders(res, truncatedHeaders);
|
|
68
87
|
res.on("error", () => {
|
|
69
88
|
/* client disconnected mid-stream */
|
|
70
89
|
});
|
|
@@ -168,6 +187,6 @@ export async function handleAnthropicMessages(req, res, ctx, rawBody, method, pa
|
|
|
168
187
|
model: model ?? cursorModel,
|
|
169
188
|
stop_reason: "end_turn",
|
|
170
189
|
usage: { input_tokens: 0, output_tokens: 0 },
|
|
171
|
-
});
|
|
190
|
+
}, truncatedHeaders);
|
|
172
191
|
}
|
|
173
192
|
//# sourceMappingURL=anthropic-messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-messages.js","sourceRoot":"","sources":["../../../src/lib/handlers/anthropic-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"anthropic-messages.js","sourceRoot":"","sources":["../../../src/lib/handlers/anthropic-messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
-
import {
|
|
2
|
+
import { buildAgentFixedArgs } from "../agent-cmd-args.js";
|
|
3
3
|
import { runAgentStream, runAgentSync } from "../agent-runner.js";
|
|
4
4
|
import { createStreamParser } from "../cli-stream-parser.js";
|
|
5
5
|
import { json, writeSseHeaders } from "../http.js";
|
|
@@ -10,6 +10,7 @@ import { resolveModel } from "../resolve-model.js";
|
|
|
10
10
|
import { resolveWorkspace } from "../workspace.js";
|
|
11
11
|
import { sanitizeMessages } from "../sanitize.js";
|
|
12
12
|
import { getNextAccountConfigDir, reportRequestStart, reportRequestEnd, reportRateLimit, reportRequestSuccess, reportRequestError, getAccountStats, } from "../account-pool.js";
|
|
13
|
+
import { fitPromptToWinCmdline, warnPromptTruncated, } from "../win-cmdline-limit.js";
|
|
13
14
|
function isRateLimited(stderr) {
|
|
14
15
|
return /\b429\b|rate.?limit|too many requests/i.test(stderr);
|
|
15
16
|
}
|
|
@@ -40,11 +41,29 @@ export async function handleChatCompletions(req, res, ctx, rawBody, method, path
|
|
|
40
41
|
logTrafficRequest(config.verbose, model ?? cursorModel, trafficMessages, !!body.stream);
|
|
41
42
|
const headerWs = req.headers["x-cursor-workspace"];
|
|
42
43
|
const { workspaceDir, tempDir } = resolveWorkspace(config, headerWs);
|
|
43
|
-
const
|
|
44
|
+
const fixedArgs = buildAgentFixedArgs(config, workspaceDir, cursorModel, !!body.stream);
|
|
45
|
+
const fit = fitPromptToWinCmdline(config.agentBin, fixedArgs, prompt, {
|
|
46
|
+
maxCmdline: config.winCmdlineMax,
|
|
47
|
+
platform: process.platform,
|
|
48
|
+
cwd: workspaceDir,
|
|
49
|
+
});
|
|
50
|
+
if (!fit.ok) {
|
|
51
|
+
json(res, 500, {
|
|
52
|
+
error: { message: fit.error, code: "windows_cmdline_limit" },
|
|
53
|
+
});
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (fit.truncated) {
|
|
57
|
+
warnPromptTruncated(fit.originalLength, fit.finalPromptLength);
|
|
58
|
+
}
|
|
59
|
+
const cmdArgs = fit.args;
|
|
44
60
|
const id = `chatcmpl_${randomUUID().replace(/-/g, "")}`;
|
|
45
61
|
const created = Math.floor(Date.now() / 1000);
|
|
62
|
+
const truncatedHeaders = fit.truncated
|
|
63
|
+
? { "X-Cursor-Proxy-Prompt-Truncated": "true" }
|
|
64
|
+
: undefined;
|
|
46
65
|
if (body.stream) {
|
|
47
|
-
writeSseHeaders(res);
|
|
66
|
+
writeSseHeaders(res, truncatedHeaders);
|
|
48
67
|
res.on("error", () => {
|
|
49
68
|
/* client disconnected mid-stream */
|
|
50
69
|
});
|
|
@@ -140,6 +159,6 @@ export async function handleChatCompletions(req, res, ctx, rawBody, method, path
|
|
|
140
159
|
},
|
|
141
160
|
],
|
|
142
161
|
usage: { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 },
|
|
143
|
-
});
|
|
162
|
+
}, truncatedHeaders);
|
|
144
163
|
}
|
|
145
164
|
//# sourceMappingURL=chat-completions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-completions.js","sourceRoot":"","sources":["../../../src/lib/handlers/chat-completions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"chat-completions.js","sourceRoot":"","sources":["../../../src/lib/handlers/chat-completions.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/http.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as http from "node:http";
|
|
2
2
|
export declare function extractBearerToken(req: http.IncomingMessage): string | undefined;
|
|
3
|
-
export declare function json(res: http.ServerResponse, status: number, body: unknown): void;
|
|
4
|
-
export declare function writeSseHeaders(res: http.ServerResponse): void;
|
|
3
|
+
export declare function json(res: http.ServerResponse, status: number, body: unknown, extraHeaders?: http.OutgoingHttpHeaders): void;
|
|
4
|
+
export declare function writeSseHeaders(res: http.ServerResponse, extraHeaders?: http.OutgoingHttpHeaders): void;
|
|
5
5
|
export declare function readBody(req: http.IncomingMessage): Promise<string>;
|
package/dist/lib/http.js
CHANGED
|
@@ -6,12 +6,16 @@ export function extractBearerToken(req) {
|
|
|
6
6
|
const match = val.match(/^Bearer\s+(.+)$/i);
|
|
7
7
|
return match ? match[1] : undefined;
|
|
8
8
|
}
|
|
9
|
-
export function json(res, status, body) {
|
|
10
|
-
res.writeHead(status, {
|
|
9
|
+
export function json(res, status, body, extraHeaders) {
|
|
10
|
+
res.writeHead(status, {
|
|
11
|
+
...extraHeaders,
|
|
12
|
+
"Content-Type": "application/json",
|
|
13
|
+
});
|
|
11
14
|
res.end(JSON.stringify(body));
|
|
12
15
|
}
|
|
13
|
-
export function writeSseHeaders(res) {
|
|
16
|
+
export function writeSseHeaders(res, extraHeaders) {
|
|
14
17
|
res.writeHead(200, {
|
|
18
|
+
...extraHeaders,
|
|
15
19
|
"Content-Type": "text/event-stream",
|
|
16
20
|
"Cache-Control": "no-cache",
|
|
17
21
|
Connection: "keep-alive",
|
package/dist/lib/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,GAAyB;IAC1D,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACvC,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,IAAI,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,GAAyB;IAC1D,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACvC,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,IAAI,CAClB,GAAwB,EACxB,MAAc,EACd,IAAa,EACb,YAAuC;IAEvC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE;QACpB,GAAG,YAAY;QACf,cAAc,EAAE,kBAAkB;KACnC,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,GAAwB,EACxB,YAAuC;IAEvC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,GAAG,YAAY;QACf,cAAc,EAAE,mBAAmB;QACnC,eAAe,EAAE,UAAU;QAC3B,UAAU,EAAE,YAAY;QACxB,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAyB;IACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACvB,IAAI,IAAI,KAAK,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/lib/server.js
CHANGED
|
@@ -101,6 +101,7 @@ function startSingleServer(opts) {
|
|
|
101
101
|
console.log(`- chat-only workspace: ${config.chatOnlyWorkspace ? "yes (isolated temp dir)" : "no"}`);
|
|
102
102
|
console.log(`- verbose traffic: ${config.verbose ? "yes (CURSOR_BRIDGE_VERBOSE=true)" : "no"}`);
|
|
103
103
|
console.log(`- max mode: ${config.maxMode ? "yes (CURSOR_BRIDGE_MAX_MODE=true)" : "no"}`);
|
|
104
|
+
console.log(`- Windows cmdline budget: ${config.winCmdlineMax} (prompt tail truncation when over limit; Windows only)`);
|
|
104
105
|
if (config.configDirs && config.configDirs.length > 0) {
|
|
105
106
|
console.log(`- account pool: enabled with ${config.configDirs.length} configuration directories`);
|
|
106
107
|
}
|
package/dist/lib/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/lib/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/lib/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { AgentCommand } from "./env.js";
|
|
2
|
+
import { type EnvOptions } from "./env.js";
|
|
3
|
+
/** Shown at the start of the prompt when earlier text was dropped on Windows. */
|
|
4
|
+
export declare const WIN_PROMPT_OMISSION_PREFIX = "[Earlier messages omitted: Windows command-line length limit.]\n\n";
|
|
5
|
+
export type FitPromptOk = {
|
|
6
|
+
ok: true;
|
|
7
|
+
args: string[];
|
|
8
|
+
truncated: boolean;
|
|
9
|
+
originalLength: number;
|
|
10
|
+
finalPromptLength: number;
|
|
11
|
+
};
|
|
12
|
+
export type FitPromptErr = {
|
|
13
|
+
ok: false;
|
|
14
|
+
error: string;
|
|
15
|
+
};
|
|
16
|
+
export type FitPromptResult = FitPromptOk | FitPromptErr;
|
|
17
|
+
/**
|
|
18
|
+
* Pessimistic upper bound on UTF-16 code units in the Windows command line
|
|
19
|
+
* Node/libuv passes to CreateProcess (see libuv `make_program_args` sizing).
|
|
20
|
+
*/
|
|
21
|
+
export declare function estimateCmdlineLength(resolved: AgentCommand): number;
|
|
22
|
+
/**
|
|
23
|
+
* On Windows, shrinks the prompt (keeping the tail) so spawn argv stays under
|
|
24
|
+
* `maxCmdline`. Other platforms return the full prompt unchanged.
|
|
25
|
+
*/
|
|
26
|
+
export declare function fitPromptToWinCmdline(agentBin: string, fixedArgs: string[], prompt: string, opts: {
|
|
27
|
+
maxCmdline: number;
|
|
28
|
+
platform: NodeJS.Platform;
|
|
29
|
+
cwd?: string;
|
|
30
|
+
env?: EnvOptions["env"];
|
|
31
|
+
}): FitPromptResult;
|
|
32
|
+
export declare function warnPromptTruncated(originalLength: number, finalLength: number): void;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { resolveAgentCommand } from "./env.js";
|
|
2
|
+
/** Shown at the start of the prompt when earlier text was dropped on Windows. */
|
|
3
|
+
export const WIN_PROMPT_OMISSION_PREFIX = "[Earlier messages omitted: Windows command-line length limit.]\n\n";
|
|
4
|
+
/**
|
|
5
|
+
* Pessimistic upper bound on UTF-16 code units in the Windows command line
|
|
6
|
+
* Node/libuv passes to CreateProcess (see libuv `make_program_args` sizing).
|
|
7
|
+
*/
|
|
8
|
+
export function estimateCmdlineLength(resolved) {
|
|
9
|
+
const argv = [resolved.command, ...resolved.args];
|
|
10
|
+
if (resolved.windowsVerbatimArguments) {
|
|
11
|
+
let n = 0;
|
|
12
|
+
for (const a of argv) {
|
|
13
|
+
n += a.length;
|
|
14
|
+
}
|
|
15
|
+
n += Math.max(0, argv.length - 1);
|
|
16
|
+
return n + 512;
|
|
17
|
+
}
|
|
18
|
+
let dstLen = 0;
|
|
19
|
+
for (const a of argv) {
|
|
20
|
+
dstLen += a.length;
|
|
21
|
+
}
|
|
22
|
+
dstLen = dstLen * 2 + argv.length * 2 + Math.max(0, argv.length - 1);
|
|
23
|
+
return dstLen + 512;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* On Windows, shrinks the prompt (keeping the tail) so spawn argv stays under
|
|
27
|
+
* `maxCmdline`. Other platforms return the full prompt unchanged.
|
|
28
|
+
*/
|
|
29
|
+
export function fitPromptToWinCmdline(agentBin, fixedArgs, prompt, opts) {
|
|
30
|
+
const { maxCmdline, platform, cwd, env } = opts;
|
|
31
|
+
const resolveOpts = { cwd, env, platform };
|
|
32
|
+
if (platform !== "win32") {
|
|
33
|
+
return {
|
|
34
|
+
ok: true,
|
|
35
|
+
args: [...fixedArgs, prompt],
|
|
36
|
+
truncated: false,
|
|
37
|
+
originalLength: prompt.length,
|
|
38
|
+
finalPromptLength: prompt.length,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const measured = (p) => estimateCmdlineLength(resolveAgentCommand(agentBin, [...fixedArgs, p], resolveOpts));
|
|
42
|
+
const emptyTail = measured("");
|
|
43
|
+
if (emptyTail > maxCmdline) {
|
|
44
|
+
return {
|
|
45
|
+
ok: false,
|
|
46
|
+
error: "Windows command line exceeds the configured limit even without a prompt; shorten workspace path, model id, or CURSOR_BRIDGE_WIN_CMDLINE_MAX.",
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
if (measured(prompt) <= maxCmdline) {
|
|
50
|
+
return {
|
|
51
|
+
ok: true,
|
|
52
|
+
args: [...fixedArgs, prompt],
|
|
53
|
+
truncated: false,
|
|
54
|
+
originalLength: prompt.length,
|
|
55
|
+
finalPromptLength: prompt.length,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const prefix = WIN_PROMPT_OMISSION_PREFIX;
|
|
59
|
+
if (measured(prefix) > maxCmdline) {
|
|
60
|
+
return {
|
|
61
|
+
ok: false,
|
|
62
|
+
error: "Windows command line too long to fit even the truncation notice; shorten workspace path or flags.",
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
let lo = 0;
|
|
66
|
+
let hi = prompt.length;
|
|
67
|
+
let best = 0;
|
|
68
|
+
while (lo <= hi) {
|
|
69
|
+
const mid = (lo + hi) >> 1;
|
|
70
|
+
const tail = mid === 0 ? "" : prompt.slice(-mid);
|
|
71
|
+
const candidate = prefix + tail;
|
|
72
|
+
if (measured(candidate) <= maxCmdline) {
|
|
73
|
+
best = mid;
|
|
74
|
+
lo = mid + 1;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
hi = mid - 1;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const finalPrompt = best === 0 ? prefix : prefix + prompt.slice(-best);
|
|
81
|
+
return {
|
|
82
|
+
ok: true,
|
|
83
|
+
args: [...fixedArgs, finalPrompt],
|
|
84
|
+
truncated: true,
|
|
85
|
+
originalLength: prompt.length,
|
|
86
|
+
finalPromptLength: finalPrompt.length,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
export function warnPromptTruncated(originalLength, finalLength) {
|
|
90
|
+
console.warn(`[${new Date().toISOString()}] Windows: prompt truncated for CreateProcess limit (${originalLength} -> ${finalLength} chars, tail preserved).`);
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=win-cmdline-limit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"win-cmdline-limit.js","sourceRoot":"","sources":["../../src/lib/win-cmdline-limit.ts"],"names":[],"mappings":"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"}
|