@schoolai/shipyard 3.1.0 → 3.1.1-rc.20260415.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/dist/index.js +2 -2
- package/dist/{serve-5Z6GSYVH.js → serve-HDRZ2CU6.js} +145 -9
- package/dist/{serve-5Z6GSYVH.js.map → serve-HDRZ2CU6.js.map} +1 -1
- package/dist/{start-IG5ZGAVH.js → start-63XQAT6J.js} +2 -2
- package/package.json +1 -1
- /package/dist/{start-IG5ZGAVH.js.map → start-63XQAT6J.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -106,7 +106,7 @@ async function handleSubcommand() {
|
|
|
106
106
|
return true;
|
|
107
107
|
}
|
|
108
108
|
if (subcommand === "start") {
|
|
109
|
-
const { startCommand } = await import("./start-
|
|
109
|
+
const { startCommand } = await import("./start-63XQAT6J.js");
|
|
110
110
|
await startCommand();
|
|
111
111
|
return true;
|
|
112
112
|
}
|
|
@@ -118,7 +118,7 @@ async function main() {
|
|
|
118
118
|
const args = parseCliArgs();
|
|
119
119
|
if (args.serve) {
|
|
120
120
|
await loadAuthFromConfig(env);
|
|
121
|
-
const { serve } = await import("./serve-
|
|
121
|
+
const { serve } = await import("./serve-HDRZ2CU6.js");
|
|
122
122
|
return serve({ isDev: env.SHIPYARD_DEV });
|
|
123
123
|
}
|
|
124
124
|
logger.error("Use `shipyard start` to run the daemon. Use --help for usage.");
|
|
@@ -24998,6 +24998,10 @@ var PRDataSchema = external_exports.object({
|
|
|
24998
24998
|
autoMergeEnabled: external_exports.boolean(),
|
|
24999
24999
|
headRefSha: external_exports.string().nullable(),
|
|
25000
25000
|
headCommitInBase: external_exports.boolean().default(false),
|
|
25001
|
+
labels: external_exports.array(external_exports.object({ name: external_exports.string(), color: external_exports.string().default("") })).default([]),
|
|
25002
|
+
assignees: external_exports.array(external_exports.object({ login: external_exports.string(), avatarUrl: external_exports.string().nullable() })).default([]),
|
|
25003
|
+
reviewDecision: external_exports.string().nullable().default(null),
|
|
25004
|
+
mergeable: external_exports.string().nullable().default(null),
|
|
25001
25005
|
checks: external_exports.array(CICheckSchema),
|
|
25002
25006
|
reviewers: external_exports.array(PRReviewerSchema),
|
|
25003
25007
|
comments: external_exports.array(PRCommentSchema)
|
|
@@ -25027,6 +25031,26 @@ var PRActionSchema = external_exports.discriminatedUnion("action", [
|
|
|
25027
25031
|
action: external_exports.literal("add_reviewers"),
|
|
25028
25032
|
prNumber: external_exports.number(),
|
|
25029
25033
|
reviewers: external_exports.array(external_exports.string())
|
|
25034
|
+
}),
|
|
25035
|
+
external_exports.object({
|
|
25036
|
+
action: external_exports.literal("add_labels"),
|
|
25037
|
+
prNumber: external_exports.number(),
|
|
25038
|
+
labels: external_exports.array(external_exports.string())
|
|
25039
|
+
}),
|
|
25040
|
+
external_exports.object({
|
|
25041
|
+
action: external_exports.literal("remove_labels"),
|
|
25042
|
+
prNumber: external_exports.number(),
|
|
25043
|
+
labels: external_exports.array(external_exports.string())
|
|
25044
|
+
}),
|
|
25045
|
+
external_exports.object({
|
|
25046
|
+
action: external_exports.literal("add_assignees"),
|
|
25047
|
+
prNumber: external_exports.number(),
|
|
25048
|
+
assignees: external_exports.array(external_exports.string())
|
|
25049
|
+
}),
|
|
25050
|
+
external_exports.object({
|
|
25051
|
+
action: external_exports.literal("remove_assignees"),
|
|
25052
|
+
prNumber: external_exports.number(),
|
|
25053
|
+
assignees: external_exports.array(external_exports.string())
|
|
25030
25054
|
})
|
|
25031
25055
|
]);
|
|
25032
25056
|
var WORKFLOW_RUN_STATUSES = [
|
|
@@ -28184,7 +28208,7 @@ async function detectModels() {
|
|
|
28184
28208
|
}
|
|
28185
28209
|
|
|
28186
28210
|
// src/shared/capabilities/git-pr.ts
|
|
28187
|
-
var GH_PR_JSON_FIELDS = "number,title,state,author,url,baseRefName,headRefName,headRefOid,body,isDraft,additions,deletions,changedFiles,createdAt,updatedAt,mergedAt,mergeCommit,mergeStateStatus,autoMergeRequest,statusCheckRollup,reviews,reviewRequests,comments";
|
|
28211
|
+
var GH_PR_JSON_FIELDS = "number,title,state,author,url,baseRefName,headRefName,headRefOid,body,isDraft,additions,deletions,changedFiles,createdAt,updatedAt,mergedAt,mergeCommit,mergeStateStatus,autoMergeRequest,statusCheckRollup,reviews,reviewRequests,comments,labels,assignees,reviewDecision,mergeable";
|
|
28188
28212
|
var GH_STATE_MAP = {
|
|
28189
28213
|
OPEN: "open",
|
|
28190
28214
|
CLOSED: "closed",
|
|
@@ -28367,7 +28391,34 @@ function mapGhPRToPRData(raw) {
|
|
|
28367
28391
|
const comments = extractArrayOrNodes(raw.comments).map(
|
|
28368
28392
|
(c) => mapGhComment(toRecord2(c))
|
|
28369
28393
|
);
|
|
28370
|
-
|
|
28394
|
+
const labels = extractArrayOrNodes(raw.labels).map((l) => {
|
|
28395
|
+
const rec = toRecord2(l);
|
|
28396
|
+
return {
|
|
28397
|
+
name: typeof rec.name === "string" ? rec.name : "",
|
|
28398
|
+
color: typeof rec.color === "string" && rec.color !== "" ? `#${rec.color}` : ""
|
|
28399
|
+
};
|
|
28400
|
+
});
|
|
28401
|
+
const assignees = extractArrayOrNodes(raw.assignees).map((a) => {
|
|
28402
|
+
const rec = toRecord2(a);
|
|
28403
|
+
return {
|
|
28404
|
+
login: extractLogin(rec),
|
|
28405
|
+
avatarUrl: extractStringField(rec, "avatarUrl")
|
|
28406
|
+
};
|
|
28407
|
+
});
|
|
28408
|
+
const reviewDecision = typeof raw.reviewDecision === "string" ? raw.reviewDecision : null;
|
|
28409
|
+
const mergeable = typeof raw.mergeable === "string" ? raw.mergeable : null;
|
|
28410
|
+
return {
|
|
28411
|
+
...extractScalarFields(raw),
|
|
28412
|
+
state,
|
|
28413
|
+
isDraft: isDraft2,
|
|
28414
|
+
checks,
|
|
28415
|
+
reviewers,
|
|
28416
|
+
comments,
|
|
28417
|
+
labels,
|
|
28418
|
+
assignees,
|
|
28419
|
+
reviewDecision,
|
|
28420
|
+
mergeable
|
|
28421
|
+
};
|
|
28371
28422
|
}
|
|
28372
28423
|
async function getPRForCurrentBranch(cwd) {
|
|
28373
28424
|
try {
|
|
@@ -28497,6 +28548,38 @@ async function addReviewers(cwd, prNumber, reviewers) {
|
|
|
28497
28548
|
15e3
|
|
28498
28549
|
);
|
|
28499
28550
|
}
|
|
28551
|
+
async function addLabels(cwd, prNumber, labels) {
|
|
28552
|
+
await runWithTimeout(
|
|
28553
|
+
"gh",
|
|
28554
|
+
["pr", "edit", String(prNumber), "--add-label", labels.join(",")],
|
|
28555
|
+
cwd,
|
|
28556
|
+
15e3
|
|
28557
|
+
);
|
|
28558
|
+
}
|
|
28559
|
+
async function removeLabels(cwd, prNumber, labels) {
|
|
28560
|
+
await runWithTimeout(
|
|
28561
|
+
"gh",
|
|
28562
|
+
["pr", "edit", String(prNumber), "--remove-label", labels.join(",")],
|
|
28563
|
+
cwd,
|
|
28564
|
+
15e3
|
|
28565
|
+
);
|
|
28566
|
+
}
|
|
28567
|
+
async function addAssignees(cwd, prNumber, assignees) {
|
|
28568
|
+
await runWithTimeout(
|
|
28569
|
+
"gh",
|
|
28570
|
+
["pr", "edit", String(prNumber), "--add-assignee", assignees.join(",")],
|
|
28571
|
+
cwd,
|
|
28572
|
+
15e3
|
|
28573
|
+
);
|
|
28574
|
+
}
|
|
28575
|
+
async function removeAssignees(cwd, prNumber, assignees) {
|
|
28576
|
+
await runWithTimeout(
|
|
28577
|
+
"gh",
|
|
28578
|
+
["pr", "edit", String(prNumber), "--remove-assignee", assignees.join(",")],
|
|
28579
|
+
cwd,
|
|
28580
|
+
15e3
|
|
28581
|
+
);
|
|
28582
|
+
}
|
|
28500
28583
|
async function markPRReady(cwd, prNumber) {
|
|
28501
28584
|
await runWithTimeout("gh", ["pr", "ready", String(prNumber)], cwd, 15e3);
|
|
28502
28585
|
}
|
|
@@ -29505,7 +29588,7 @@ function nanoid(size2 = 21) {
|
|
|
29505
29588
|
}
|
|
29506
29589
|
|
|
29507
29590
|
// src/services/bootstrap/signaling.ts
|
|
29508
|
-
var DAEMON_NPM_VERSION = true ? "3.1.
|
|
29591
|
+
var DAEMON_NPM_VERSION = true ? "3.1.1" : "unknown";
|
|
29509
29592
|
function createDaemonSignaling(config2) {
|
|
29510
29593
|
const agentId = config2.agentId ?? nanoid();
|
|
29511
29594
|
function send(msg) {
|
|
@@ -29752,11 +29835,17 @@ function handleBrowserPreviewChannel(port, send, sendBinary, log, options) {
|
|
|
29752
29835
|
mergeCookies(cookieJar, setCookieRaw);
|
|
29753
29836
|
}
|
|
29754
29837
|
const responseHeaders = collectResponseHeaders2(res.headers);
|
|
29755
|
-
const
|
|
29838
|
+
const contentType = res.headers["content-type"] ?? "";
|
|
29839
|
+
const isHtml = contentType.includes("text/html");
|
|
29840
|
+
const isRewritableScript = contentType.includes("javascript") || contentType.includes("text/jsx") || contentType.includes("text/tsx") || contentType.includes("text/typescript");
|
|
29756
29841
|
if (isHtml) {
|
|
29757
29842
|
bufferAndInjectHtml(requestId, res, responseHeaders);
|
|
29758
29843
|
return;
|
|
29759
29844
|
}
|
|
29845
|
+
if (isRewritableScript) {
|
|
29846
|
+
bufferAndRewriteJs(requestId, res, responseHeaders);
|
|
29847
|
+
return;
|
|
29848
|
+
}
|
|
29760
29849
|
const contentLength = res.headers["content-length"];
|
|
29761
29850
|
const bodyLength = contentLength !== void 0 ? Number(contentLength) : -1;
|
|
29762
29851
|
respond({
|
|
@@ -29802,6 +29891,29 @@ function handleBrowserPreviewChannel(port, send, sendBinary, log, options) {
|
|
|
29802
29891
|
activeRequests.delete(requestId);
|
|
29803
29892
|
});
|
|
29804
29893
|
}
|
|
29894
|
+
function bufferAndRewriteJs(requestId, res, headers) {
|
|
29895
|
+
const chunks = [];
|
|
29896
|
+
res.on("data", (chunk) => chunks.push(chunk));
|
|
29897
|
+
res.on("end", () => {
|
|
29898
|
+
const rawJs = Buffer.concat(chunks).toString("utf-8");
|
|
29899
|
+
const rewritten = rewriteJsImportPaths(rawJs);
|
|
29900
|
+
const body = new TextEncoder().encode(rewritten);
|
|
29901
|
+
headers["content-length"] = String(body.byteLength);
|
|
29902
|
+
respond({
|
|
29903
|
+
type: "response-head",
|
|
29904
|
+
id: requestId,
|
|
29905
|
+
status: res.statusCode ?? 500,
|
|
29906
|
+
headers,
|
|
29907
|
+
bodyLength: body.byteLength
|
|
29908
|
+
});
|
|
29909
|
+
sendChunkedBody(requestId, body);
|
|
29910
|
+
activeRequests.delete(requestId);
|
|
29911
|
+
});
|
|
29912
|
+
res.on("error", (err) => {
|
|
29913
|
+
respondError(requestId, err.message);
|
|
29914
|
+
activeRequests.delete(requestId);
|
|
29915
|
+
});
|
|
29916
|
+
}
|
|
29805
29917
|
function buildRequestHeaders(msgHeaders) {
|
|
29806
29918
|
const headers = { host: `localhost:${port}` };
|
|
29807
29919
|
for (const [k2, v2] of Object.entries(msgHeaders)) {
|
|
@@ -29907,6 +30019,9 @@ function injectBaseHref(html, origin) {
|
|
|
29907
30019
|
function rewriteRootRelativePaths(html) {
|
|
29908
30020
|
return html.replace(/((?:src|href|action)\s*=\s*["'])\/(?!\/)/gi, "$1./");
|
|
29909
30021
|
}
|
|
30022
|
+
function rewriteJsImportPaths(js) {
|
|
30023
|
+
return js.replace(/((?:from|import)\s*\(\s*["'])\/(?!\/)/g, "$1./").replace(/(from\s+["'])\/(?!\/)/g, "$1./");
|
|
30024
|
+
}
|
|
29910
30025
|
function handleBrowserPreviewUrlChannel(send, sendBinary, log, options) {
|
|
29911
30026
|
const requestTimeoutMs = options?.timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
|
|
29912
30027
|
const activeControllers = /* @__PURE__ */ new Map();
|
|
@@ -29989,10 +30104,19 @@ function handleBrowserPreviewUrlChannel(send, sendBinary, log, options) {
|
|
|
29989
30104
|
});
|
|
29990
30105
|
const responseHeaders = collectSafeResponseHeaders(res);
|
|
29991
30106
|
const rawBody = new Uint8Array(await res.arrayBuffer());
|
|
29992
|
-
const
|
|
29993
|
-
const
|
|
29994
|
-
|
|
29995
|
-
|
|
30107
|
+
const contentType = res.headers.get("content-type") ?? "";
|
|
30108
|
+
const isHtml = contentType.includes("text/html");
|
|
30109
|
+
const isJs = contentType.includes("javascript") || contentType.includes("text/jsx") || contentType.includes("text/tsx") || contentType.includes("text/typescript");
|
|
30110
|
+
let body;
|
|
30111
|
+
if (isHtml) {
|
|
30112
|
+
body = new TextEncoder().encode(
|
|
30113
|
+
injectBaseHref(new TextDecoder().decode(rawBody), targetUrl.origin)
|
|
30114
|
+
);
|
|
30115
|
+
} else if (isJs) {
|
|
30116
|
+
body = new TextEncoder().encode(rewriteJsImportPaths(new TextDecoder().decode(rawBody)));
|
|
30117
|
+
} else {
|
|
30118
|
+
body = rawBody;
|
|
30119
|
+
}
|
|
29996
30120
|
sendResponseWithBody(msg.id, res.status, responseHeaders, body);
|
|
29997
30121
|
}
|
|
29998
30122
|
async function handleUrlRequest(msg) {
|
|
@@ -86843,6 +86967,18 @@ function wireControlChannel(rawChannel, daemon, logAdapter, deps) {
|
|
|
86843
86967
|
case "add_reviewers":
|
|
86844
86968
|
await addReviewers(cwd, action.prNumber, action.reviewers);
|
|
86845
86969
|
break;
|
|
86970
|
+
case "add_labels":
|
|
86971
|
+
await addLabels(cwd, action.prNumber, action.labels);
|
|
86972
|
+
break;
|
|
86973
|
+
case "remove_labels":
|
|
86974
|
+
await removeLabels(cwd, action.prNumber, action.labels);
|
|
86975
|
+
break;
|
|
86976
|
+
case "add_assignees":
|
|
86977
|
+
await addAssignees(cwd, action.prNumber, action.assignees);
|
|
86978
|
+
break;
|
|
86979
|
+
case "remove_assignees":
|
|
86980
|
+
await removeAssignees(cwd, action.prNumber, action.assignees);
|
|
86981
|
+
break;
|
|
86846
86982
|
case "reply_to_comment":
|
|
86847
86983
|
case "resolve_thread":
|
|
86848
86984
|
throw new Error(`${action.action} not yet implemented`);
|
|
@@ -91560,4 +91696,4 @@ export {
|
|
|
91560
91696
|
classifyLogLevel,
|
|
91561
91697
|
serve
|
|
91562
91698
|
};
|
|
91563
|
-
//# sourceMappingURL=serve-
|
|
91699
|
+
//# sourceMappingURL=serve-HDRZ2CU6.js.map
|