@tickernelz/paperclip-pro-adapter-cursor-cloud 2026.925.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.
Files changed (58) hide show
  1. package/LICENSE +22 -0
  2. package/dist/cli/format-event.d.ts +2 -0
  3. package/dist/cli/format-event.d.ts.map +1 -0
  4. package/dist/cli/format-event.js +42 -0
  5. package/dist/cli/format-event.js.map +1 -0
  6. package/dist/cli/index.d.ts +2 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +2 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/index.d.ts +4 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +34 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/server/execute.d.ts +3 -0
  15. package/dist/server/execute.d.ts.map +1 -0
  16. package/dist/server/execute.js +564 -0
  17. package/dist/server/execute.js.map +1 -0
  18. package/dist/server/execute.test.d.ts +2 -0
  19. package/dist/server/execute.test.d.ts.map +1 -0
  20. package/dist/server/execute.test.js +426 -0
  21. package/dist/server/execute.test.js.map +1 -0
  22. package/dist/server/index.d.ts +6 -0
  23. package/dist/server/index.d.ts.map +1 -0
  24. package/dist/server/index.js +68 -0
  25. package/dist/server/index.js.map +1 -0
  26. package/dist/server/session.d.ts +3 -0
  27. package/dist/server/session.d.ts.map +1 -0
  28. package/dist/server/session.js +61 -0
  29. package/dist/server/session.js.map +1 -0
  30. package/dist/server/session.test.d.ts +2 -0
  31. package/dist/server/session.test.d.ts.map +1 -0
  32. package/dist/server/session.test.js +28 -0
  33. package/dist/server/session.test.js.map +1 -0
  34. package/dist/server/test.d.ts +3 -0
  35. package/dist/server/test.d.ts.map +1 -0
  36. package/dist/server/test.js +111 -0
  37. package/dist/server/test.js.map +1 -0
  38. package/dist/ui/build-config.d.ts +3 -0
  39. package/dist/ui/build-config.d.ts.map +1 -0
  40. package/dist/ui/build-config.js +20 -0
  41. package/dist/ui/build-config.js.map +1 -0
  42. package/dist/ui/build-config.test.d.ts +2 -0
  43. package/dist/ui/build-config.test.d.ts.map +1 -0
  44. package/dist/ui/build-config.test.js +76 -0
  45. package/dist/ui/build-config.test.js.map +1 -0
  46. package/dist/ui/index.d.ts +3 -0
  47. package/dist/ui/index.d.ts.map +1 -0
  48. package/dist/ui/index.js +3 -0
  49. package/dist/ui/index.js.map +1 -0
  50. package/dist/ui/parse-stdout.d.ts +3 -0
  51. package/dist/ui/parse-stdout.d.ts.map +1 -0
  52. package/dist/ui/parse-stdout.js +173 -0
  53. package/dist/ui/parse-stdout.js.map +1 -0
  54. package/dist/ui/parse-stdout.test.d.ts +2 -0
  55. package/dist/ui/parse-stdout.test.d.ts.map +1 -0
  56. package/dist/ui/parse-stdout.test.js +119 -0
  57. package/dist/ui/parse-stdout.test.js.map +1 -0
  58. package/package.json +58 -0
@@ -0,0 +1,564 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { Agent, } from "@cursor/sdk";
4
+ import { DEFAULT_PAPERCLIP_AGENT_PROMPT_TEMPLATE, DEFAULT_PAPERCLIP_CONVERSATION_PROMPT_TEMPLATE, asBoolean, asString, buildPaperclipEnv, buildRuntimeToolsEnv, joinPromptSections, parseObject, readPaperclipIssueWorkModeFromContext, renderPaperclipWakePrompt, selectPaperclipTaskMarkdown, selectInitialCommunicationGuidance, isPaperclipRecoveryWakePayload, renderTemplate, } from "@tickernelz/paperclip-pro-adapter-utils/server-utils";
5
+ function asRecord(value) {
6
+ if (typeof value !== "object" || value === null || Array.isArray(value))
7
+ return null;
8
+ return value;
9
+ }
10
+ function asStringEnvMap(value) {
11
+ const parsed = parseObject(value);
12
+ const env = {};
13
+ for (const [key, entry] of Object.entries(parsed)) {
14
+ if (typeof entry === "string") {
15
+ env[key] = entry;
16
+ }
17
+ else if (typeof entry === "object" && entry !== null && !Array.isArray(entry)) {
18
+ const rec = entry;
19
+ if (rec.type === "plain" && typeof rec.value === "string")
20
+ env[key] = rec.value;
21
+ }
22
+ }
23
+ return env;
24
+ }
25
+ function normalizeEnvType(raw) {
26
+ const value = raw.trim().toLowerCase();
27
+ if (value === "pool" || value === "machine")
28
+ return value;
29
+ return "cloud";
30
+ }
31
+ function trimNullable(value) {
32
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
33
+ }
34
+ function firstNonEmptyLine(text) {
35
+ return (text
36
+ .split(/\r?\n/)
37
+ .map((line) => line.trim())
38
+ .find(Boolean) ?? "");
39
+ }
40
+ function toModelSelection(rawModel) {
41
+ const model = rawModel.trim();
42
+ return model ? { id: model } : undefined;
43
+ }
44
+ function toSummary(result) {
45
+ const direct = trimNullable(result.result);
46
+ if (direct)
47
+ return firstNonEmptyLine(direct);
48
+ return null;
49
+ }
50
+ function formatRunError(err) {
51
+ if (err instanceof Error && err.message.trim().length > 0)
52
+ return err.message.trim();
53
+ return String(err);
54
+ }
55
+ function buildWakeEnv(ctx, configEnv) {
56
+ const { runId, agent, context, authToken } = ctx;
57
+ const env = {
58
+ ...configEnv,
59
+ ...buildPaperclipEnv(agent),
60
+ ...buildRuntimeToolsEnv(ctx.runtimeTools),
61
+ PAPERCLIP_RUN_ID: runId,
62
+ };
63
+ // PAPERCLIP_API_KEY is never accepted from config — the harness-minted run
64
+ // token is the only source of Paperclip API identity.
65
+ delete env.PAPERCLIP_API_KEY;
66
+ // Wake context travels in the prompt; a configured copy can exceed spawn limits.
67
+ delete env.PAPERCLIP_WAKE_PAYLOAD_JSON;
68
+ const wakeTaskId = trimNullable(context.taskId) ?? trimNullable(context.issueId);
69
+ const wakeReason = trimNullable(context.wakeReason);
70
+ const wakeCommentId = trimNullable(context.wakeCommentId) ?? trimNullable(context.commentId);
71
+ const approvalId = trimNullable(context.approvalId);
72
+ const approvalStatus = trimNullable(context.approvalStatus);
73
+ const linkedIssueIds = Array.isArray(context.issueIds)
74
+ ? context.issueIds.filter((value) => typeof value === "string" && value.trim().length > 0)
75
+ : [];
76
+ const issueWorkMode = readPaperclipIssueWorkModeFromContext(context);
77
+ if (wakeTaskId)
78
+ env.PAPERCLIP_TASK_ID = wakeTaskId;
79
+ if (wakeReason)
80
+ env.PAPERCLIP_WAKE_REASON = wakeReason;
81
+ if (wakeCommentId)
82
+ env.PAPERCLIP_WAKE_COMMENT_ID = wakeCommentId;
83
+ if (approvalId)
84
+ env.PAPERCLIP_APPROVAL_ID = approvalId;
85
+ if (approvalStatus)
86
+ env.PAPERCLIP_APPROVAL_STATUS = approvalStatus;
87
+ if (linkedIssueIds.length > 0)
88
+ env.PAPERCLIP_LINKED_ISSUE_IDS = linkedIssueIds.join(",");
89
+ if (issueWorkMode)
90
+ env.PAPERCLIP_ISSUE_WORK_MODE = issueWorkMode;
91
+ if (authToken) {
92
+ env.PAPERCLIP_API_KEY = authToken;
93
+ }
94
+ // cursor_cloud runs remotely in Cursor's cloud and is intentionally not
95
+ // issued a Paperclip run JWT (registry: supportsLocalAgentJwt=false).
96
+ // buildPaperclipEnv always sets PAPERCLIP_API_URL, defaulting to the local
97
+ // runtime host — which a remote worker can neither reach nor authenticate
98
+ // against, so any agent-initiated Paperclip API call would fail with a 401
99
+ // (or be unreachable) and add noise. When there is no usable key, drop the
100
+ // callback wiring so cloud-side Paperclip tools degrade to a clean no-op.
101
+ // Run results are delivered server-side via the Cursor Agent SDK (getRun /
102
+ // wait), not through this callback, so nothing is lost.
103
+ if (!trimNullable(env.PAPERCLIP_API_KEY)) {
104
+ delete env.PAPERCLIP_API_URL;
105
+ delete env.PAPERCLIP_API_BRIDGE_MODE;
106
+ }
107
+ const workspace = parseObject(context.paperclipWorkspace);
108
+ const workspaceMappings = [
109
+ ["PAPERCLIP_WORKSPACE_CWD", workspace.cwd],
110
+ ["PAPERCLIP_WORKSPACE_SOURCE", workspace.source],
111
+ ["PAPERCLIP_WORKSPACE_ID", workspace.workspaceId],
112
+ ["PAPERCLIP_WORKSPACE_REPO_URL", workspace.repoUrl],
113
+ ["PAPERCLIP_WORKSPACE_REPO_REF", workspace.repoRef],
114
+ ["PAPERCLIP_WORKSPACE_BRANCH", workspace.branch],
115
+ ["PAPERCLIP_WORKSPACE_WORKTREE_PATH", workspace.worktreePath],
116
+ ["AGENT_HOME", workspace.agentHome],
117
+ ];
118
+ for (const [key, value] of workspaceMappings) {
119
+ const normalized = trimNullable(value);
120
+ if (normalized)
121
+ env[key] = normalized;
122
+ }
123
+ delete env.CURSOR_API_KEY;
124
+ // Cursor rejects the entire request when any envVars value is empty.
125
+ // Paperclip may use empty values to unset optional host credentials; remote
126
+ // workers do not inherit those host variables, so omit the empty entries.
127
+ return Object.fromEntries(Object.entries(env).filter(([, value]) => value.length > 0));
128
+ }
129
+ async function buildInstructionsPrefix(config, onLog) {
130
+ const instructionsFilePath = asString(config.instructionsFilePath, "").trim();
131
+ if (!instructionsFilePath) {
132
+ return { prefix: "", notes: [], chars: 0 };
133
+ }
134
+ try {
135
+ const contents = await fs.readFile(instructionsFilePath, "utf8");
136
+ const instructionsDir = `${path.dirname(instructionsFilePath)}/`;
137
+ const prefix = `${contents.trim()}\n\nThe above agent instructions were loaded from ${instructionsFilePath}. Resolve any relative file references from ${instructionsDir}.\n`;
138
+ return {
139
+ prefix,
140
+ chars: prefix.length,
141
+ notes: [
142
+ `Loaded agent instructions from ${instructionsFilePath}`,
143
+ `Prepended instructions + path directive to prompt (relative references from ${instructionsDir}).`,
144
+ ],
145
+ };
146
+ }
147
+ catch (err) {
148
+ const reason = err instanceof Error ? err.message : String(err);
149
+ await onLog("stderr", `[paperclip] Warning: could not read agent instructions file "${instructionsFilePath}": ${reason}\n`);
150
+ return {
151
+ prefix: "",
152
+ chars: 0,
153
+ notes: [
154
+ `Configured instructionsFilePath ${instructionsFilePath}, but file could not be read; continuing without injected instructions.`,
155
+ ],
156
+ };
157
+ }
158
+ }
159
+ function renderPaperclipEnvNote(env) {
160
+ const keys = Object.keys(env)
161
+ .filter((key) => key.startsWith("PAPERCLIP_"))
162
+ .sort();
163
+ if (keys.length === 0)
164
+ return "";
165
+ return [
166
+ "Paperclip runtime note:",
167
+ `The following PAPERCLIP_* environment variables are available in the cloud agent shell: ${keys.join(", ")}`,
168
+ "Use them directly instead of assuming they are absent.",
169
+ ].join("\n");
170
+ }
171
+ function readSession(params) {
172
+ if (!params)
173
+ return null;
174
+ const record = asRecord(params);
175
+ if (!record)
176
+ return null;
177
+ const cursorAgentId = trimNullable(record.cursorAgentId) ??
178
+ trimNullable(record.agentId) ??
179
+ trimNullable(record.sessionId);
180
+ if (!cursorAgentId)
181
+ return null;
182
+ const latestRunId = trimNullable(record.latestRunId) ?? trimNullable(record.runId) ?? undefined;
183
+ const envType = trimNullable(record.envType);
184
+ const envName = trimNullable(record.envName);
185
+ const reposValue = Array.isArray(record.repos) ? record.repos : [];
186
+ const repos = reposValue
187
+ .map((entry) => asRecord(entry))
188
+ .filter((entry) => Boolean(entry))
189
+ .map((entry) => ({
190
+ url: asString(entry.url, "").trim(),
191
+ startingRef: trimNullable(entry.startingRef) ?? undefined,
192
+ prUrl: trimNullable(entry.prUrl) ?? undefined,
193
+ }))
194
+ .filter((entry) => entry.url.length > 0);
195
+ return {
196
+ cursorAgentId,
197
+ ...(latestRunId ? { latestRunId } : {}),
198
+ runtime: "cloud",
199
+ ...(envType ? { envType: normalizeEnvType(envType) } : {}),
200
+ ...(envName ? { envName } : {}),
201
+ repos,
202
+ };
203
+ }
204
+ function sessionMatches(session, envType, envName, repos) {
205
+ if (!session)
206
+ return false;
207
+ if ((session.envType ?? "cloud") !== envType)
208
+ return false;
209
+ if ((session.envName ?? null) !== envName)
210
+ return false;
211
+ if (session.repos.length !== repos.length)
212
+ return false;
213
+ return session.repos.every((repo, index) => {
214
+ const next = repos[index];
215
+ return repo.url === next.url
216
+ && (repo.startingRef ?? null) === (next.startingRef ?? null)
217
+ && (repo.prUrl ?? null) === (next.prUrl ?? null);
218
+ });
219
+ }
220
+ function buildAgentOptions(input) {
221
+ return {
222
+ apiKey: input.apiKey,
223
+ name: input.name,
224
+ ...(input.model ? { model: input.model } : {}),
225
+ cloud: {
226
+ env: {
227
+ type: input.envType,
228
+ ...(input.envName ? { name: input.envName } : {}),
229
+ },
230
+ repos: input.repos,
231
+ workOnCurrentBranch: input.workOnCurrentBranch,
232
+ autoCreatePR: input.autoCreatePR,
233
+ skipReviewerRequest: input.skipReviewerRequest,
234
+ envVars: input.envVars,
235
+ },
236
+ };
237
+ }
238
+ function eventLine(event) {
239
+ return `${JSON.stringify(event)}\n`;
240
+ }
241
+ async function emitMessage(onLog, message) {
242
+ await onLog("stdout", eventLine({ type: "cursor_cloud.message", message }));
243
+ }
244
+ async function emitStatus(onLog, status, message) {
245
+ await onLog("stdout", eventLine({ type: "cursor_cloud.status", status, ...(message ? { message } : {}) }));
246
+ }
247
+ async function streamRun(run, onLog) {
248
+ if (!run.supports("stream"))
249
+ return;
250
+ for await (const message of run.stream()) {
251
+ await emitMessage(onLog, message);
252
+ }
253
+ }
254
+ async function getAttachedRun(input) {
255
+ const latestRunId = input.session?.latestRunId;
256
+ const cursorAgentId = input.session?.cursorAgentId;
257
+ if (!latestRunId || !cursorAgentId)
258
+ return null;
259
+ try {
260
+ const run = await Agent.getRun(latestRunId, {
261
+ runtime: "cloud",
262
+ agentId: cursorAgentId,
263
+ apiKey: input.apiKey,
264
+ });
265
+ return run.status === "running" ? run : null;
266
+ }
267
+ catch {
268
+ return null;
269
+ }
270
+ }
271
+ export async function execute(ctx) {
272
+ const { runId, agent, runtime, config, context, onLog, onMeta, onDispatch } = ctx;
273
+ const envConfig = asStringEnvMap(config.env);
274
+ const apiKey = asString(envConfig.CURSOR_API_KEY, "").trim();
275
+ if (!apiKey) {
276
+ return {
277
+ exitCode: 1,
278
+ signal: null,
279
+ timedOut: false,
280
+ errorMessage: "CURSOR_API_KEY is required for cursor_cloud.",
281
+ provider: "cursor",
282
+ biller: "cursor",
283
+ billingType: "api",
284
+ clearSession: false,
285
+ };
286
+ }
287
+ const workspace = parseObject(context.paperclipWorkspace);
288
+ const repoUrl = asString(config.repoUrl, "").trim() ||
289
+ asString(workspace.repoUrl, "").trim();
290
+ if (!repoUrl) {
291
+ return {
292
+ exitCode: 1,
293
+ signal: null,
294
+ timedOut: false,
295
+ errorMessage: "cursor_cloud requires repoUrl in adapterConfig or workspace context.",
296
+ provider: "cursor",
297
+ biller: "cursor",
298
+ billingType: "api",
299
+ clearSession: false,
300
+ };
301
+ }
302
+ const repoStartingRef = trimNullable(config.repoStartingRef) ??
303
+ trimNullable(workspace.repoRef) ??
304
+ undefined;
305
+ const repoPullRequestUrl = trimNullable(config.repoPullRequestUrl) ?? undefined;
306
+ const envType = normalizeEnvType(asString(config.runtimeEnvType, "cloud"));
307
+ const envName = trimNullable(config.runtimeEnvName);
308
+ const workOnCurrentBranch = asBoolean(config.workOnCurrentBranch, false);
309
+ const autoCreatePR = asBoolean(config.autoCreatePR, false);
310
+ const skipReviewerRequest = asBoolean(config.skipReviewerRequest, false);
311
+ const model = toModelSelection(asString(config.model, ""));
312
+ const repos = [{
313
+ url: repoUrl,
314
+ ...(repoStartingRef ? { startingRef: repoStartingRef } : {}),
315
+ ...(repoPullRequestUrl ? { prUrl: repoPullRequestUrl } : {}),
316
+ }];
317
+ const remoteEnv = buildWakeEnv(ctx, envConfig);
318
+ const session = readSession(runtime.sessionParams) ?? (runtime.sessionId
319
+ ? {
320
+ cursorAgentId: runtime.sessionId,
321
+ runtime: "cloud",
322
+ repos,
323
+ }
324
+ : null);
325
+ const canReuseSession = sessionMatches(session, envType, envName, repos);
326
+ const promptTemplate = asString(config.promptTemplate, context.conversationMode === true
327
+ ? DEFAULT_PAPERCLIP_CONVERSATION_PROMPT_TEMPLATE
328
+ : DEFAULT_PAPERCLIP_AGENT_PROMPT_TEMPLATE);
329
+ const bootstrapPromptTemplate = asString(config.bootstrapPromptTemplate, "");
330
+ const templateData = {
331
+ agentId: agent.id,
332
+ companyId: agent.companyId,
333
+ runId,
334
+ company: { id: agent.companyId },
335
+ agent,
336
+ run: { id: runId, source: "on_demand" },
337
+ context,
338
+ };
339
+ const instructions = await buildInstructionsPrefix(config, onLog);
340
+ const taskContextNote = context.conversationMode === true
341
+ ? selectPaperclipTaskMarkdown(context, { resumedSession: canReuseSession, includeCommunicationGuidance: false })
342
+ : "";
343
+ const wakePrompt = renderPaperclipWakePrompt(context.paperclipWake, {
344
+ conversationMode: context.conversationMode === true,
345
+ resumedSession: canReuseSession,
346
+ suppressIssueDescription: taskContextNote.length > 0,
347
+ });
348
+ const renderedBootstrapPrompt = !canReuseSession && bootstrapPromptTemplate.trim().length > 0
349
+ ? renderTemplate(bootstrapPromptTemplate, templateData).trim()
350
+ : "";
351
+ const renderedPrompt = (canReuseSession && wakePrompt.length > 0) || isPaperclipRecoveryWakePayload(context.paperclipWake)
352
+ ? ""
353
+ : renderTemplate(promptTemplate, templateData).trim();
354
+ const paperclipEnvNote = renderPaperclipEnvNote(remoteEnv);
355
+ const prompt = joinPromptSections([
356
+ selectInitialCommunicationGuidance(context, { resumedSession: canReuseSession }),
357
+ instructions.prefix,
358
+ renderedBootstrapPrompt,
359
+ wakePrompt,
360
+ taskContextNote,
361
+ paperclipEnvNote,
362
+ renderedPrompt,
363
+ ]);
364
+ const sessionHandoffNote = asString(context.paperclipSessionHandoffMarkdown, "").trim();
365
+ const finalPrompt = joinPromptSections([prompt, sessionHandoffNote]);
366
+ const agentOptions = buildAgentOptions({
367
+ apiKey,
368
+ name: `Paperclip ${agent.name}`,
369
+ model,
370
+ envType,
371
+ envName,
372
+ repos,
373
+ workOnCurrentBranch,
374
+ autoCreatePR,
375
+ skipReviewerRequest,
376
+ envVars: remoteEnv,
377
+ });
378
+ const commandNotes = [
379
+ ...instructions.notes,
380
+ canReuseSession
381
+ ? `Reusing Cursor cloud agent session ${session?.cursorAgentId ?? "unknown"}`
382
+ : "Creating a new Cursor cloud agent session",
383
+ `Repository: ${repoUrl}${repoStartingRef ? ` @ ${repoStartingRef}` : ""}`,
384
+ `Runtime target: ${envType}${envName ? ` (${envName})` : ""}`,
385
+ ];
386
+ if (onMeta) {
387
+ const meta = {
388
+ adapterType: "cursor_cloud",
389
+ command: "@cursor/sdk",
390
+ commandNotes,
391
+ prompt: finalPrompt,
392
+ promptMetrics: {
393
+ promptChars: finalPrompt.length,
394
+ instructionsChars: instructions.chars,
395
+ bootstrapPromptChars: renderedBootstrapPrompt.length,
396
+ wakePromptChars: wakePrompt.length,
397
+ taskContextChars: taskContextNote.length,
398
+ heartbeatPromptChars: renderedPrompt.length,
399
+ },
400
+ context: {
401
+ cursorCloud: {
402
+ envType,
403
+ envName,
404
+ repoUrl,
405
+ repoStartingRef,
406
+ repoPullRequestUrl,
407
+ canReuseSession,
408
+ },
409
+ },
410
+ };
411
+ await onMeta(meta);
412
+ }
413
+ let sdkAgent = null;
414
+ let run = null;
415
+ let streamError = null;
416
+ try {
417
+ // This adapter has no local child process, so crossing into the first SDK
418
+ // request is its dispatch boundary. Report it before any potentially
419
+ // long-running remote reattach/create/send operation.
420
+ onDispatch?.();
421
+ const attachedRun = canReuseSession
422
+ ? await getAttachedRun({ apiKey, session })
423
+ : null;
424
+ if (attachedRun) {
425
+ await emitStatus(onLog, "running", `Reattached to existing Cursor run ${attachedRun.id}.`);
426
+ await onLog("stdout", eventLine({
427
+ type: "cursor_cloud.init",
428
+ sessionId: attachedRun.agentId,
429
+ agentId: attachedRun.agentId,
430
+ runId: attachedRun.id,
431
+ ...(model?.id ? { model: model.id } : {}),
432
+ }));
433
+ const priorStreamPromise = streamRun(attachedRun, onLog).catch((err) => {
434
+ streamError = formatRunError(err);
435
+ });
436
+ if (attachedRun.supports("wait"))
437
+ await attachedRun.wait();
438
+ await priorStreamPromise;
439
+ streamError = null;
440
+ await emitStatus(onLog, "running", `Prior Cursor run ${attachedRun.id} finished; sending heartbeat follow-up so this wake's context is not dropped.`);
441
+ }
442
+ sdkAgent = canReuseSession && session
443
+ ? await Agent.resume(session.cursorAgentId, agentOptions)
444
+ : await Agent.create(agentOptions);
445
+ run = await sdkAgent.send(finalPrompt, {
446
+ ...(model ? { model } : {}),
447
+ });
448
+ await onLog("stdout", eventLine({
449
+ type: "cursor_cloud.init",
450
+ sessionId: sdkAgent.agentId,
451
+ agentId: sdkAgent.agentId,
452
+ runId: run.id,
453
+ ...(model?.id ? { model: model.id } : {}),
454
+ }));
455
+ await emitStatus(onLog, "running", `Started Cursor run ${run.id}.`);
456
+ const streamPromise = streamRun(run, onLog).catch((err) => {
457
+ streamError = formatRunError(err);
458
+ });
459
+ const result = run.supports("wait")
460
+ ? await run.wait()
461
+ : {
462
+ id: run.id,
463
+ status: run.status === "running" ? "error" : run.status,
464
+ result: run.result,
465
+ model: run.model,
466
+ durationMs: run.durationMs,
467
+ git: run.git,
468
+ };
469
+ await streamPromise;
470
+ const modelId = result.model?.id ?? model?.id ?? null;
471
+ await onLog("stdout", eventLine({
472
+ type: "cursor_cloud.result",
473
+ status: result.status,
474
+ ...(result.result ? { result: result.result } : {}),
475
+ ...(modelId ? { model: modelId } : {}),
476
+ ...(typeof result.durationMs === "number" ? { durationMs: result.durationMs } : {}),
477
+ ...(result.git ? { git: result.git } : {}),
478
+ ...(streamError ? { error: streamError } : {}),
479
+ }));
480
+ const nextSession = {
481
+ cursorAgentId: run.agentId,
482
+ latestRunId: result.id,
483
+ runtime: "cloud",
484
+ envType,
485
+ ...(envName ? { envName } : {}),
486
+ repos,
487
+ };
488
+ const isError = result.status !== "finished";
489
+ return {
490
+ exitCode: isError ? 1 : 0,
491
+ signal: null,
492
+ timedOut: false,
493
+ errorMessage: isError ? (trimNullable(result.result) ?? streamError ?? `Cursor run ${result.status}`) : null,
494
+ sessionId: run.agentId,
495
+ sessionDisplayId: run.agentId,
496
+ sessionParams: nextSession,
497
+ provider: "cursor",
498
+ biller: "cursor",
499
+ billingType: "api",
500
+ model: modelId,
501
+ costUsd: null,
502
+ summary: toSummary(result),
503
+ resultJson: {
504
+ status: result.status,
505
+ cursorAgentId: run.agentId,
506
+ cursorRunId: result.id,
507
+ envType,
508
+ envName,
509
+ repos,
510
+ ...(result.result ? { result: result.result } : {}),
511
+ ...(result.git ? { git: result.git } : {}),
512
+ ...(typeof result.durationMs === "number" ? { durationMs: result.durationMs } : {}),
513
+ ...(streamError ? { streamError } : {}),
514
+ },
515
+ clearSession: false,
516
+ };
517
+ }
518
+ catch (err) {
519
+ const error = formatRunError(err);
520
+ const reason = !model && error.includes("[invalid_model]")
521
+ ? `${error} Cursor rejected its configured default model. Choose an available default at https://cursor.com/dashboard/cloud-agents or set this agent's model explicitly.`
522
+ : error.includes("Failed to determine repository default branch")
523
+ ? `${error} Verify that Cursor's GitHub integration can access ${repoUrl} at https://cursor.com/dashboard/cloud-agents. If the repository has no default branch, configure a starting branch for this agent.`
524
+ : error;
525
+ if (run) {
526
+ await onLog("stdout", eventLine({
527
+ type: "cursor_cloud.result",
528
+ status: "error",
529
+ error: reason,
530
+ }));
531
+ }
532
+ return {
533
+ exitCode: 1,
534
+ signal: null,
535
+ timedOut: false,
536
+ errorMessage: reason,
537
+ sessionId: session?.cursorAgentId ?? null,
538
+ sessionDisplayId: session?.cursorAgentId ?? null,
539
+ sessionParams: session,
540
+ provider: "cursor",
541
+ biller: "cursor",
542
+ billingType: "api",
543
+ costUsd: null,
544
+ clearSession: false,
545
+ resultJson: {
546
+ status: "error",
547
+ ...(run ? { cursorRunId: run.id } : {}),
548
+ ...(session?.cursorAgentId ? { cursorAgentId: session.cursorAgentId } : {}),
549
+ error: reason,
550
+ },
551
+ };
552
+ }
553
+ finally {
554
+ if (sdkAgent) {
555
+ try {
556
+ await sdkAgent[Symbol.asyncDispose]();
557
+ }
558
+ catch {
559
+ // Best effort only.
560
+ }
561
+ }
562
+ }
563
+ }
564
+ //# sourceMappingURL=execute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/server/execute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=execute.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.test.d.ts","sourceRoot":"","sources":["../../src/server/execute.test.ts"],"names":[],"mappings":""}