@schoolai/shipyard 3.29.0 → 3.30.0-rc.20260912.1
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/dist/capability-detector-worker.js +5 -5
- package/dist/{chunk-HIGCNT53.js → chunk-FARMJBC7.js} +3 -3
- package/dist/chunk-FARMJBC7.js.map +1 -0
- package/dist/{chunk-AIN32UWK.js → chunk-FWL2ZIEL.js} +31 -2
- package/dist/chunk-FWL2ZIEL.js.map +1 -0
- package/dist/{chunk-IJGA4YA3.js → chunk-JQFAXWT5.js} +3 -3
- package/dist/chunk-JQFAXWT5.js.map +1 -0
- package/dist/{chunk-ASK7AIJM.js → chunk-KFCIZHQW.js} +15 -3
- package/dist/{chunk-ASK7AIJM.js.map → chunk-KFCIZHQW.js.map} +1 -1
- package/dist/{chunk-3NS2YSRP.js → chunk-NNNYGFSQ.js} +35 -8
- package/dist/{chunk-3NS2YSRP.js.map → chunk-NNNYGFSQ.js.map} +1 -1
- package/dist/{chunk-SR3T3EYE.js → chunk-RGVTFZDF.js} +3 -3
- package/dist/{chunk-SMGVXANE.js → chunk-SGFCXJJJ.js} +2 -2
- package/dist/{chunk-CDOIPKD6.js → chunk-VE2ZAUIM.js} +2 -2
- package/dist/{chunk-J5MLXWO5.js → chunk-WO5EM3BP.js} +2 -2
- package/dist/{chunk-CB35TLO4.js → chunk-ZDJEJI62.js} +2 -2
- package/dist/cursor-runner.js +81 -47
- package/dist/cursor-runner.js.map +1 -1
- package/dist/electron-utility.js +2 -2
- package/dist/index.js +4 -4
- package/dist/{login-D23INMXJ.js → login-6YTDDUP4.js} +3 -3
- package/dist/{plan-backfill-7OALHIQK.js → plan-backfill-5UGECNV6.js} +4 -4
- package/dist/{serve-VBMV5LEN.js → serve-ZMQ2HHQQ.js} +2433 -1210
- package/dist/{serve-VBMV5LEN.js.map → serve-ZMQ2HHQQ.js.map} +1 -1
- package/dist/{skills-FSYFQ6FY.js → skills-BX2NZKPN.js} +3 -3
- package/dist/{start-NNW7R4M2.js → start-E24NNOMX.js} +6 -6
- package/package.json +1 -1
- package/dist/chunk-AIN32UWK.js.map +0 -1
- package/dist/chunk-HIGCNT53.js.map +0 -1
- package/dist/chunk-IJGA4YA3.js.map +0 -1
- /package/dist/{chunk-SR3T3EYE.js.map → chunk-RGVTFZDF.js.map} +0 -0
- /package/dist/{chunk-SMGVXANE.js.map → chunk-SGFCXJJJ.js.map} +0 -0
- /package/dist/{chunk-CDOIPKD6.js.map → chunk-VE2ZAUIM.js.map} +0 -0
- /package/dist/{chunk-J5MLXWO5.js.map → chunk-WO5EM3BP.js.map} +0 -0
- /package/dist/{chunk-CB35TLO4.js.map → chunk-ZDJEJI62.js.map} +0 -0
- /package/dist/{login-D23INMXJ.js.map → login-6YTDDUP4.js.map} +0 -0
- /package/dist/{plan-backfill-7OALHIQK.js.map → plan-backfill-5UGECNV6.js.map} +0 -0
- /package/dist/{skills-FSYFQ6FY.js.map → skills-BX2NZKPN.js.map} +0 -0
- /package/dist/{start-NNW7R4M2.js.map → start-E24NNOMX.js.map} +0 -0
|
@@ -18,8 +18,8 @@ function getDaemonVersion() {
|
|
|
18
18
|
return cached;
|
|
19
19
|
}
|
|
20
20
|
function readDaemonVersion() {
|
|
21
|
-
if ("3.
|
|
22
|
-
return "3.
|
|
21
|
+
if ("3.30.0".length > 0) {
|
|
22
|
+
return "3.30.0";
|
|
23
23
|
}
|
|
24
24
|
try {
|
|
25
25
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
@@ -48,4 +48,4 @@ function readDaemonVersion() {
|
|
|
48
48
|
export {
|
|
49
49
|
getDaemonVersion
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=chunk-
|
|
51
|
+
//# sourceMappingURL=chunk-RGVTFZDF.js.map
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
DevicePollResponseSchema,
|
|
16
16
|
DeviceStartResponseSchema,
|
|
17
17
|
ROUTES
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-FARMJBC7.js";
|
|
19
19
|
import {
|
|
20
20
|
isDevMode,
|
|
21
21
|
validateEnv
|
|
@@ -223,4 +223,4 @@ export {
|
|
|
223
223
|
ensureAuthenticated,
|
|
224
224
|
loginCommand
|
|
225
225
|
};
|
|
226
|
-
//# sourceMappingURL=chunk-
|
|
226
|
+
//# sourceMappingURL=chunk-SGFCXJJJ.js.map
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
parseShipyardDeliverableUrl,
|
|
32
32
|
planEditorSerializer,
|
|
33
33
|
toTaskIndexEntry
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-KFCIZHQW.js";
|
|
35
35
|
import {
|
|
36
36
|
logger
|
|
37
37
|
} from "./chunk-FIE2FRIW.js";
|
|
@@ -34988,4 +34988,4 @@ export {
|
|
|
34988
34988
|
runPlanBackfill,
|
|
34989
34989
|
buildTaskStateStore
|
|
34990
34990
|
};
|
|
34991
|
-
//# sourceMappingURL=chunk-
|
|
34991
|
+
//# sourceMappingURL=chunk-VE2ZAUIM.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
getDaemonVersion
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-RGVTFZDF.js";
|
|
5
5
|
import {
|
|
6
6
|
WorkerCommandCodec,
|
|
7
7
|
WorkerReplyCodec
|
|
@@ -1116,4 +1116,4 @@ export {
|
|
|
1116
1116
|
shutdownFileWatcherGuard,
|
|
1117
1117
|
guardedSubscribe
|
|
1118
1118
|
};
|
|
1119
|
-
//# sourceMappingURL=chunk-
|
|
1119
|
+
//# sourceMappingURL=chunk-WO5EM3BP.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
SkillCompatibleAgentSchema
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-FARMJBC7.js";
|
|
5
5
|
|
|
6
6
|
// src/shared/capabilities/skills.ts
|
|
7
7
|
import { createHash } from "crypto";
|
|
@@ -468,4 +468,4 @@ export {
|
|
|
468
468
|
scopeEnvironmentsToActiveRepo,
|
|
469
469
|
_resolveBucketForTesting
|
|
470
470
|
};
|
|
471
|
-
//# sourceMappingURL=chunk-
|
|
471
|
+
//# sourceMappingURL=chunk-ZDJEJI62.js.map
|
package/dist/cursor-runner.js
CHANGED
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
import {
|
|
3
3
|
buildCursorFastModeModelOption,
|
|
4
4
|
countLoopbackHttpEntries,
|
|
5
|
-
parseDaemonToRunner
|
|
6
|
-
|
|
5
|
+
parseDaemonToRunner,
|
|
6
|
+
prependCursorSystemContext
|
|
7
|
+
} from "./chunk-FWL2ZIEL.js";
|
|
7
8
|
import {
|
|
8
9
|
buildCursorUserPrompt
|
|
9
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-JQFAXWT5.js";
|
|
10
11
|
import {
|
|
11
12
|
ContentBlockSchema,
|
|
12
13
|
HARNESS_SERVER_NAME
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-KFCIZHQW.js";
|
|
15
|
+
import "./chunk-FARMJBC7.js";
|
|
15
16
|
import "./chunk-EHQITHQX.js";
|
|
16
17
|
import "./chunk-FIE2FRIW.js";
|
|
17
18
|
import "./chunk-FKOUB6H6.js";
|
|
@@ -19,11 +20,6 @@ import "./chunk-X3MULCV5.js";
|
|
|
19
20
|
import "./chunk-XVW6VCKW.js";
|
|
20
21
|
import "./chunk-2H7UOFLK.js";
|
|
21
22
|
|
|
22
|
-
// src/services/session/cursor-runner.ts
|
|
23
|
-
import {
|
|
24
|
-
Agent
|
|
25
|
-
} from "@cursor/sdk";
|
|
26
|
-
|
|
27
23
|
// src/shared/capabilities/runtime/cursor-ripgrep.ts
|
|
28
24
|
import { existsSync } from "fs";
|
|
29
25
|
import { createRequire } from "module";
|
|
@@ -58,6 +54,40 @@ function resolveCursorBundledRipgrepPath(deps = {}) {
|
|
|
58
54
|
return exists(rg) ? rg : null;
|
|
59
55
|
}
|
|
60
56
|
|
|
57
|
+
// src/services/session/cursor-agent-acquisition.ts
|
|
58
|
+
import { Agent } from "@cursor/sdk";
|
|
59
|
+
async function acquireCursorAgent(options) {
|
|
60
|
+
if (options.injectedAgentId !== void 0) {
|
|
61
|
+
return {
|
|
62
|
+
agent: await Agent.resume(options.injectedAgentId, options.baseOptions),
|
|
63
|
+
resumeFallbackUsed: false
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
if (options.resumeAgentId !== void 0) {
|
|
67
|
+
try {
|
|
68
|
+
const agent = await Agent.resume(options.resumeAgentId, options.baseOptions);
|
|
69
|
+
options.log("info", "runner_resume_agent_succeeded", { agentId: options.resumeAgentId });
|
|
70
|
+
return { agent, resumeFallbackUsed: false };
|
|
71
|
+
} catch (error) {
|
|
72
|
+
options.log("warn", "runner_resume_agent_failed_falling_back_to_create", {
|
|
73
|
+
agentId: options.resumeAgentId,
|
|
74
|
+
error: error instanceof Error ? error.message : String(error)
|
|
75
|
+
});
|
|
76
|
+
return {
|
|
77
|
+
agent: await Agent.create({
|
|
78
|
+
...options.baseOptions,
|
|
79
|
+
name: `shipyard-task-${options.taskId}`
|
|
80
|
+
}),
|
|
81
|
+
resumeFallbackUsed: true
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
agent: await Agent.create({ ...options.baseOptions, name: `shipyard-task-${options.taskId}` }),
|
|
87
|
+
resumeFallbackUsed: false
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
61
91
|
// src/services/session/cursor-init-error-reporter.ts
|
|
62
92
|
import { Cursor } from "@cursor/sdk";
|
|
63
93
|
|
|
@@ -189,6 +219,7 @@ var state = {
|
|
|
189
219
|
fastModeParam: null,
|
|
190
220
|
mcpServers: {},
|
|
191
221
|
initSettled: null,
|
|
222
|
+
pendingResumeFallbackSystemContext: null,
|
|
192
223
|
mode: void 0
|
|
193
224
|
};
|
|
194
225
|
function send(msg) {
|
|
@@ -242,8 +273,8 @@ function buildAgentsOption(agents) {
|
|
|
242
273
|
{ agents }
|
|
243
274
|
) : {};
|
|
244
275
|
}
|
|
245
|
-
|
|
246
|
-
|
|
276
|
+
function buildAgentOptions(args) {
|
|
277
|
+
return {
|
|
247
278
|
apiKey: args.apiKey,
|
|
248
279
|
model: { id: args.modelId },
|
|
249
280
|
local: args.local,
|
|
@@ -252,26 +283,6 @@ async function acquireAgent(args) {
|
|
|
252
283
|
...args.agentsOption,
|
|
253
284
|
...args.mode !== void 0 ? { mode: args.mode } : {}
|
|
254
285
|
};
|
|
255
|
-
async function createFreshAgent() {
|
|
256
|
-
return Agent.create({ ...baseOptions, name: `shipyard-task-${args.taskId}` });
|
|
257
|
-
}
|
|
258
|
-
if (args.injectedAgentId !== void 0) {
|
|
259
|
-
return Agent.resume(args.injectedAgentId, baseOptions);
|
|
260
|
-
}
|
|
261
|
-
if (args.resumeAgentId !== void 0) {
|
|
262
|
-
try {
|
|
263
|
-
const resumed = await Agent.resume(args.resumeAgentId, baseOptions);
|
|
264
|
-
log("info", "runner_resume_agent_succeeded", { agentId: args.resumeAgentId });
|
|
265
|
-
return resumed;
|
|
266
|
-
} catch (resumeErr) {
|
|
267
|
-
log("warn", "runner_resume_agent_failed_falling_back_to_create", {
|
|
268
|
-
agentId: args.resumeAgentId,
|
|
269
|
-
error: resumeErr instanceof Error ? resumeErr.message : String(resumeErr)
|
|
270
|
-
});
|
|
271
|
-
return createFreshAgent();
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
return createFreshAgent();
|
|
275
286
|
}
|
|
276
287
|
async function handleInit(args) {
|
|
277
288
|
state.currentGeneration = args.generation;
|
|
@@ -297,18 +308,23 @@ async function handleInit(args) {
|
|
|
297
308
|
})
|
|
298
309
|
};
|
|
299
310
|
state.mcpServers = mcpServers;
|
|
300
|
-
const
|
|
301
|
-
apiKey: args.apiKey,
|
|
311
|
+
const acquired = await acquireCursorAgent({
|
|
302
312
|
taskId: args.taskId,
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
313
|
+
baseOptions: buildAgentOptions({
|
|
314
|
+
apiKey: args.apiKey,
|
|
315
|
+
modelId: args.modelId,
|
|
316
|
+
local: buildLocalOption(args.cwd, args.skillsDir),
|
|
317
|
+
mcpServers,
|
|
318
|
+
agentsOption: buildAgentsOption(args.agents),
|
|
319
|
+
...args.mode !== void 0 && { mode: args.mode }
|
|
320
|
+
}),
|
|
307
321
|
...args.injectedAgentId !== void 0 && { injectedAgentId: args.injectedAgentId },
|
|
308
322
|
...args.resumeAgentId !== void 0 && { resumeAgentId: args.resumeAgentId },
|
|
309
|
-
|
|
323
|
+
log
|
|
310
324
|
});
|
|
325
|
+
const { agent } = acquired;
|
|
311
326
|
state.agent = agent;
|
|
327
|
+
state.pendingResumeFallbackSystemContext = acquired.resumeFallbackUsed ? args.resumeFallbackSystemContext ?? null : null;
|
|
312
328
|
send({
|
|
313
329
|
kind: "init_ok",
|
|
314
330
|
sessionId: agent.agentId,
|
|
@@ -355,17 +371,22 @@ async function handleReinit(args) {
|
|
|
355
371
|
})
|
|
356
372
|
};
|
|
357
373
|
state.mcpServers = mcpServers;
|
|
358
|
-
const
|
|
359
|
-
apiKey: state.apiKey,
|
|
374
|
+
const acquired = await acquireCursorAgent({
|
|
360
375
|
taskId: args.taskId,
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
376
|
+
baseOptions: buildAgentOptions({
|
|
377
|
+
apiKey: state.apiKey,
|
|
378
|
+
modelId: args.modelId,
|
|
379
|
+
local: buildLocalOption(state.cwd, args.skillsDir),
|
|
380
|
+
mcpServers,
|
|
381
|
+
agentsOption: buildAgentsOption(args.agents),
|
|
382
|
+
...args.mode !== void 0 && { mode: args.mode }
|
|
383
|
+
}),
|
|
365
384
|
...args.resumeAgentId !== void 0 && { resumeAgentId: args.resumeAgentId },
|
|
366
|
-
|
|
385
|
+
log
|
|
367
386
|
});
|
|
387
|
+
const { agent } = acquired;
|
|
368
388
|
state.agent = agent;
|
|
389
|
+
state.pendingResumeFallbackSystemContext = acquired.resumeFallbackUsed ? args.resumeFallbackSystemContext ?? null : null;
|
|
369
390
|
send({ kind: "reinit_ok", sessionId: agent.agentId });
|
|
370
391
|
} catch (err) {
|
|
371
392
|
send({
|
|
@@ -504,8 +525,14 @@ async function handlePushMessage(args) {
|
|
|
504
525
|
});
|
|
505
526
|
return;
|
|
506
527
|
}
|
|
528
|
+
const fallbackSystemContext = state.pendingResumeFallbackSystemContext;
|
|
529
|
+
const content = prependCursorSystemContext(parsedContent.data, fallbackSystemContext);
|
|
530
|
+
if (fallbackSystemContext !== null) {
|
|
531
|
+
state.pendingResumeFallbackSystemContext = null;
|
|
532
|
+
send({ kind: "initial_system_context_attached", generation: args.generation });
|
|
533
|
+
}
|
|
507
534
|
const userInput = buildCursorUserPrompt(
|
|
508
|
-
|
|
535
|
+
content,
|
|
509
536
|
(entry) => log(entry.event.includes("error") ? "warn" : "info", entry.event, entry),
|
|
510
537
|
{ skillBodies: args.skillBodies }
|
|
511
538
|
);
|
|
@@ -617,6 +644,7 @@ async function handleClose() {
|
|
|
617
644
|
state.taskId = "";
|
|
618
645
|
state.fastMode = false;
|
|
619
646
|
state.fastModeParam = null;
|
|
647
|
+
state.pendingResumeFallbackSystemContext = null;
|
|
620
648
|
state.mode = void 0;
|
|
621
649
|
inFlightToolCount = 0;
|
|
622
650
|
send({ kind: "pooled_idle" });
|
|
@@ -639,6 +667,9 @@ function buildHandleInitArgs(msg) {
|
|
|
639
667
|
generation: msg.generation,
|
|
640
668
|
...msg.injectedAgentId !== void 0 && { injectedAgentId: msg.injectedAgentId },
|
|
641
669
|
...msg.resumeAgentId !== void 0 && { resumeAgentId: msg.resumeAgentId },
|
|
670
|
+
...msg.resumeFallbackSystemContext !== void 0 && {
|
|
671
|
+
resumeFallbackSystemContext: msg.resumeFallbackSystemContext
|
|
672
|
+
},
|
|
642
673
|
fastMode: msg.fastMode ?? false,
|
|
643
674
|
fastModeParam: msg.fastModeParam ?? null,
|
|
644
675
|
...msg.agents !== void 0 && { agents: msg.agents },
|
|
@@ -655,6 +686,9 @@ function buildHandleReinitArgs(msg) {
|
|
|
655
686
|
skillsDir: msg.skillsDir,
|
|
656
687
|
generation: msg.generation,
|
|
657
688
|
...msg.resumeAgentId !== void 0 && { resumeAgentId: msg.resumeAgentId },
|
|
689
|
+
...msg.resumeFallbackSystemContext !== void 0 && {
|
|
690
|
+
resumeFallbackSystemContext: msg.resumeFallbackSystemContext
|
|
691
|
+
},
|
|
658
692
|
fastMode: msg.fastMode ?? false,
|
|
659
693
|
fastModeParam: msg.fastModeParam ?? null,
|
|
660
694
|
...msg.agents !== void 0 && { agents: msg.agents },
|