@outerlayer/cli 0.28.4 → 0.30.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/CHANGELOG.md +24 -0
- package/README.md +9 -1
- package/dist/{agent-setup-IDF3EXM4.js → agent-setup-ZNYAXAWI.js} +14 -14
- package/dist/{artifact-link-cmd-LEI6EOZE.js → artifact-link-cmd-VY6OM7S5.js} +2 -2
- package/dist/{bridge-JN3VJ23L.js → bridge-FI7OF2H3.js} +2 -2
- package/dist/{build-JCYOHPLL.js → build-PXRDWSN4.js} +4 -4
- package/dist/build-info.json +1 -1
- package/dist/{builder-HCTVP2O7.js → builder-UNVHUZL7.js} +6 -6
- package/dist/{check-WJ4X2Q44.js → check-BKONE55O.js} +42 -41
- package/dist/{chunk-YYGXCRIW.js → chunk-2ZMJFGOZ.js} +1 -1
- package/dist/{chunk-JYVBEWBC.js → chunk-3F7RC3UA.js} +3 -3
- package/dist/{chunk-JZJLKTZT.js → chunk-3IDNLZPR.js} +5 -5
- package/dist/{chunk-QFNFBQCG.js → chunk-3YLHIXLR.js} +7 -7
- package/dist/{chunk-QBF462QH.js → chunk-44CGGHJF.js} +1 -1
- package/dist/{chunk-AV5MJY45.js → chunk-5HZDPOJI.js} +3 -3
- package/dist/{chunk-OO6OADZN.js → chunk-6CNNRO53.js} +3 -3
- package/dist/{chunk-MFI55TNI.js → chunk-7YSR636F.js} +22 -6
- package/dist/{chunk-JGML2VUN.js → chunk-AKKVPUGK.js} +1 -1
- package/dist/{chunk-KJIUFOC4.js → chunk-AM3GMWQK.js} +1 -1
- package/dist/{emit-finding-cmd-W2FU4CCF.js → chunk-B5CQJBZ2.js} +5 -23
- package/dist/{chunk-KBB3CQTW.js → chunk-B6OYEP3K.js} +5 -5
- package/dist/{chunk-ITAIEJ2T.js → chunk-BCWVTWS7.js} +4 -4
- package/dist/{chunk-O47BTZSN.js → chunk-D3LS7E7U.js} +1 -1
- package/dist/{chunk-2BZTGJII.js → chunk-DBELICD6.js} +7 -7
- package/dist/{chunk-NVUO52YW.js → chunk-DBENBGVF.js} +55 -47
- package/dist/{chunk-X7SFJZIG.js → chunk-DBRB26R7.js} +29 -10
- package/dist/{chunk-TG7FAHRP.js → chunk-DLY22KHX.js} +5 -5
- package/dist/{chunk-UHU7H57K.js → chunk-FTGJ3DPV.js} +202 -35
- package/dist/{chunk-HOU33DW5.js → chunk-G2RRBBOX.js} +1 -1
- package/dist/{chunk-VWFOKRYS.js → chunk-HJUGOAM7.js} +1 -1
- package/dist/{chunk-BUP5N3X6.js → chunk-HSUUTD4E.js} +1 -1
- package/dist/chunk-I3LTIAOR.js +11 -0
- package/dist/{chunk-UXLLWIA2.js → chunk-I3WLYIIW.js} +7 -7
- package/dist/{chunk-R7TMTFJP.js → chunk-IRF2FKB5.js} +1 -1
- package/dist/{chunk-M6NNXKRM.js → chunk-IRTZYDZO.js} +1 -1
- package/dist/{chunk-6P2Z5AUY.js → chunk-ISKWFUEQ.js} +360 -74
- package/dist/{chunk-QZBXLLTV.js → chunk-IWFYKNAO.js} +88 -2
- package/dist/{chunk-ERVZGWUR.js → chunk-JGOMMFNX.js} +7 -7
- package/dist/{chunk-6NFXOQKZ.js → chunk-LJIFCG4G.js} +1 -1
- package/dist/{chunk-WL3QF3QF.js → chunk-MBVSVQVH.js} +18 -16
- package/dist/{chunk-TOHKSZKI.js → chunk-MBZTX4V2.js} +7 -7
- package/dist/{chunk-VM6BX2WJ.js → chunk-PS3AHE6C.js} +5 -5
- package/dist/{chunk-5B7BEQPR.js → chunk-QDDPVBIS.js} +2 -2
- package/dist/{chunk-5Q4NDYQP.js → chunk-QQJGL7LG.js} +25 -24
- package/dist/{chunk-HWOU2HDH.js → chunk-QWJBTFAF.js} +1 -1
- package/dist/{chunk-OOUHNKKX.js → chunk-RJDJFRRY.js} +2 -2
- package/dist/{chunk-NMIYK2G2.js → chunk-SJ4DX2AD.js} +3 -3
- package/dist/{chunk-DWVAG73B.js → chunk-SOWXLIDN.js} +1 -1
- package/dist/{chunk-NKD5BNRX.js → chunk-TGUWHA27.js} +3 -3
- package/dist/{chunk-DIQN5SEL.js → chunk-TKJISBV6.js} +1 -1
- package/dist/{chunk-FTNCNEWE.js → chunk-TKX23NFV.js} +12 -12
- package/dist/{chunk-RXFKXZJS.js → chunk-TN2XMMD7.js} +1 -1
- package/dist/{chunk-TCBVV2JK.js → chunk-U5DC57AF.js} +3 -3
- package/dist/{chunk-DQYMQ47E.js → chunk-UAFMC3PL.js} +1 -1
- package/dist/{chunk-P2RWZCV7.js → chunk-V6IYYQU3.js} +2 -2
- package/dist/{chunk-DSKOHPXN.js → chunk-VL3CF4DZ.js} +1 -1
- package/dist/{chunk-N5EEEKT6.js → chunk-WHCDULC4.js} +7 -3
- package/dist/{chunk-QKXF7CLR.js → chunk-XB7TRWI2.js} +4 -4
- package/dist/{chunk-W3K6GBXY.js → chunk-XRRSFHKV.js} +2 -2
- package/dist/{chunk-SATUCMAJ.js → chunk-XTKH5VAC.js} +2 -2
- package/dist/{chunk-EZ3DZXUH.js → chunk-YVY3IVYV.js} +3 -3
- package/dist/{chunk-YTR435DO.js → chunk-ZNMVBHGJ.js} +3 -3
- package/dist/{chunk-RKOTJQVG.js → chunk-ZUOPFE22.js} +10 -4
- package/dist/{claude-launcher-LVYZ4YJI.js → claude-launcher-ZDZQXW76.js} +5 -5
- package/dist/{cli-X3JGBH2D.js → cli-6NI7WJFP.js} +189 -121
- package/dist/{command-NLWZT7KR.js → command-EFYTEHPF.js} +30 -30
- package/dist/{config-TNV5HHLO.js → config-VM6GKCCE.js} +2 -2
- package/dist/{connect-cmd-43IWARIV.js → connect-cmd-U2DY4OZU.js} +12 -12
- package/dist/{container-start-3MXIUNE2.js → container-start-C3CGPEXA.js} +32 -31
- package/dist/{context-cleanup-LTH77FC3.js → context-cleanup-D5EGQHQV.js} +3 -3
- package/dist/{control-plane-launch-TIK265OT.js → control-plane-launch-2AC4BTWL.js} +10 -10
- package/dist/{dist-JFVKLUHL.js → dist-IDP7Q53A.js} +2 -2
- package/dist/{docker-2IIRBQAB.js → docker-K442NGCS.js} +6 -6
- package/dist/{doctor-PKMAUDTU.js → doctor-RGTHY56D.js} +32 -32
- package/dist/{emit-artifact-cmd-RM2X3PBJ.js → emit-artifact-cmd-IK7GAS7V.js} +16 -16
- package/dist/{emit-cmd-QUABLVO6.js → emit-cmd-PSD7AAKJ.js} +6 -6
- package/dist/{emit-criteria-cmd-ZUI7DFND.js → emit-criteria-cmd-TGBRMX3P.js} +13 -13
- package/dist/emit-finding-cmd-KXCNLJLK.js +34 -0
- package/dist/{emit-result-cmd-JINMQ7QG.js → emit-result-cmd-WJBLCVDL.js} +52 -25
- package/dist/{emit-step-cmd-7FZWQTV3.js → emit-step-cmd-OYX5X65A.js} +14 -14
- package/dist/{exec-client-6ZJJ4KVH.js → exec-client-RMGGSTGR.js} +3 -3
- package/dist/findings-cmd-HFDOB6AC.js +135 -0
- package/dist/{fleet-readiness-3A67MUAU.js → fleet-readiness-5S2GCWZE.js} +12 -12
- package/dist/{governing-source-KQMKM5CI.js → governing-source-LVTBDQIM.js} +17 -17
- package/dist/{guest-init-A4HHI2UR.js → guest-init-O7INUZWE.js} +4 -4
- package/dist/{hook-fast-UJPAWDAO.js → hook-fast-A2N3PSXI.js} +1 -1
- package/dist/{host-key-NGRCMJZ7.js → host-key-HJ66C6MD.js} +3 -3
- package/dist/{image-tag-TEOKZVD5.js → image-tag-LLXOFXKP.js} +3 -3
- package/dist/index.js +4 -4
- package/dist/{init-Q6JV7IGF.js → init-NO5PJEPZ.js} +29 -29
- package/dist/{init-HENNITCI.js → init-VY6J7MAY.js} +29 -29
- package/dist/{init-cmd-GJR37XGU.js → init-cmd-FW67JGI7.js} +22 -22
- package/dist/{init-update-MZ4IRFC7.js → init-update-RN2PZ3MT.js} +21 -21
- package/dist/{install-NPTR35MG.js → install-GZ27NW6U.js} +4 -4
- package/dist/{install-cmd-4PXPAFQX.js → install-cmd-26OY23ZZ.js} +5 -5
- package/dist/{layout-BBTQPS6V.js → layout-3ISIED6A.js} +4 -4
- package/dist/{login-browser-WSOSQH2T.js → login-browser-NTVVDJF7.js} +2 -2
- package/dist/{logs-Z4L4I3OR.js → logs-7O3ELY35.js} +2 -2
- package/dist/loop-SY636F7D.js +81 -0
- package/dist/{machine-HZGUBOUH.js → machine-IJ2QP3FO.js} +25 -25
- package/dist/{machine-skills-O7W6NMWB.js → machine-skills-I4DB2CP3.js} +4 -4
- package/dist/{mcp-serve-cmd-NQM2WDYI.js → mcp-serve-cmd-AT7G6J5V.js} +4 -4
- package/dist/{paths-2VSGK6E2.js → paths-32THAYBB.js} +2 -2
- package/dist/{pending-SFZ2AYSK.js → pending-6CMYQHFL.js} +3 -3
- package/dist/{pidfile-3FT5OLUE.js → pidfile-3BH6WPOA.js} +3 -3
- package/dist/{record-7SSRLSI2.js → record-WHPJCC6Y.js} +3 -3
- package/dist/{runner-env-2Z2DVSUJ.js → runner-env-6Q45P3IE.js} +5 -5
- package/dist/{runner-identity-B37HHOZR.js → runner-identity-KH7HADNF.js} +6 -6
- package/dist/{runner-key-UP5YBUHR.js → runner-key-L6B5CNDG.js} +29 -29
- package/dist/{session-sender-7MSVJZ6Q.js → session-sender-N4DOGRTN.js} +17 -17
- package/dist/{spec-cmd-KAQ7MX4O.js → spec-cmd-7KOT4IQO.js} +14 -14
- package/dist/{starter-pack-5SOT5V4I.js → starter-pack-2WFNRGFA.js} +5 -5
- package/dist/{status-2ICTDC2R.js → status-LOQ2RHWX.js} +33 -32
- package/dist/{sync-cmd-7K3WVQKO.js → sync-cmd-E5VRZ5DK.js} +16 -16
- package/dist/{watch-NCYESLO2.js → watch-P6XAYDM2.js} +16 -16
- package/dist/{work-claim-cmd-IOUEHYIY.js → work-claim-cmd-7YQ5CJ3R.js} +17 -17
- package/dist/{work-cmd-FOI74X5B.js → work-cmd-RRHDQDOX.js} +14 -14
- package/dist/{work-comment-cmd-3C44H4CG.js → work-comment-cmd-XYAPMQYC.js} +14 -14
- package/dist/{work-logs-cmd-YGAWCX3X.js → work-logs-cmd-TTLUEWVX.js} +14 -14
- package/dist/{work-open-pr-cmd-HUG5HAVC.js → work-open-pr-cmd-A63YGIBW.js} +15 -15
- package/dist/{work-pr-cmd-L2EDOYXH.js → work-pr-cmd-HOS5ZHJI.js} +14 -14
- package/dist/{work-stop-cmd-GGDVKC67.js → work-stop-cmd-7KIKIZPO.js} +14 -14
- package/package.json +3 -3
- package/skill-pack/maintained/outerlayer-amend/SKILL.md +40 -39
- package/skill-pack/maintained/outerlayer-build/SKILL.md +9 -10
- package/skill-pack/maintained/outerlayer-build/references/criteria-judge.md +15 -12
- package/skill-pack/maintained/outerlayer-build/references/release.md +11 -6
- package/skill-pack/maintained/outerlayer-findings/SKILL.md +14 -10
- package/skill-pack/shipped.json +2 -0
- package/skill-pack/template/build/SKILL.md +3 -1
- package/skill-pack/validators/acceptance-criteria.yaml +7 -2
- package/dist/loop-DO46LFUH.js +0 -80
|
@@ -2553,6 +2553,7 @@ __export(util_exports, {
|
|
|
2553
2553
|
required: () => required,
|
|
2554
2554
|
safeExtend: () => safeExtend,
|
|
2555
2555
|
shallowClone: () => shallowClone,
|
|
2556
|
+
sizeCaps: () => sizeCaps,
|
|
2556
2557
|
slugify: () => slugify,
|
|
2557
2558
|
stringifyPrimitive: () => stringifyPrimitive,
|
|
2558
2559
|
toZod: () => toZod,
|
|
@@ -3072,6 +3073,18 @@ function prefixIssues(path, issues) {
|
|
|
3072
3073
|
function unwrapMessage(message) {
|
|
3073
3074
|
return typeof message === "string" ? message : message?.message;
|
|
3074
3075
|
}
|
|
3076
|
+
function sizeCaps(defChecks) {
|
|
3077
|
+
const caps = [];
|
|
3078
|
+
for (const ch of defChecks ?? []) {
|
|
3079
|
+
const d = ch._zod.def;
|
|
3080
|
+
if (!/_(length|size)$|_equals$/.test(d.check))
|
|
3081
|
+
break;
|
|
3082
|
+
const max = d.maximum ?? d.length ?? d.size;
|
|
3083
|
+
if (max >= 0)
|
|
3084
|
+
caps.push([max, ch]);
|
|
3085
|
+
}
|
|
3086
|
+
return caps;
|
|
3087
|
+
}
|
|
3075
3088
|
function attachSchema(issues, start, inst) {
|
|
3076
3089
|
var _a3;
|
|
3077
3090
|
for (let i = start; i < issues.length; i++) {
|
|
@@ -4492,7 +4505,7 @@ ${content.join("\n")}
|
|
|
4492
4505
|
var version = {
|
|
4493
4506
|
major: 4,
|
|
4494
4507
|
minor: 6,
|
|
4495
|
-
patch:
|
|
4508
|
+
patch: 7
|
|
4496
4509
|
};
|
|
4497
4510
|
|
|
4498
4511
|
// ../../node_modules/zod/v4/core/schemas.js
|
|
@@ -5248,6 +5261,31 @@ var $ZodDate = /* @__PURE__ */ $constructor("$ZodDate", (inst, def) => {
|
|
|
5248
5261
|
return payload;
|
|
5249
5262
|
};
|
|
5250
5263
|
});
|
|
5264
|
+
function capSize(inst, size) {
|
|
5265
|
+
const caps = sizeCaps(inst._zod.def.checks);
|
|
5266
|
+
if (!caps.length)
|
|
5267
|
+
return;
|
|
5268
|
+
const cap = Math.min(...caps.map((c) => c[0]));
|
|
5269
|
+
const parse3 = inst._zod.parse;
|
|
5270
|
+
inst._zod.parse = (payload, ctx) => {
|
|
5271
|
+
const n = size(payload.value);
|
|
5272
|
+
if (n > cap && !ctx?.skipChecks && ctx?.direction !== "backward") {
|
|
5273
|
+
for (const [max, ch] of sizeCaps(inst._zod.def.checks)) {
|
|
5274
|
+
if (n > max && ch._zod.def.when(payload)) {
|
|
5275
|
+
const start = payload.issues.length;
|
|
5276
|
+
ch._zod.check(payload);
|
|
5277
|
+
payload.issues[start].continue = false;
|
|
5278
|
+
attachSchema(payload.issues, start, inst);
|
|
5279
|
+
return payload;
|
|
5280
|
+
}
|
|
5281
|
+
}
|
|
5282
|
+
}
|
|
5283
|
+
return parse3(payload, ctx);
|
|
5284
|
+
};
|
|
5285
|
+
}
|
|
5286
|
+
var arraySize = (input2) => Array.isArray(input2) ? input2.length : -1;
|
|
5287
|
+
var mapSize = (input2) => input2 instanceof Map ? input2.size : -1;
|
|
5288
|
+
var setSize = (input2) => input2 instanceof Set ? input2.size : -1;
|
|
5251
5289
|
function handleArrayResult(result, final, index) {
|
|
5252
5290
|
if (result.issues.length) {
|
|
5253
5291
|
final.issues.push(...prefixIssues(index, result.issues));
|
|
@@ -5291,6 +5329,7 @@ var $ZodArray = /* @__PURE__ */ $constructor("$ZodArray", (inst, def) => {
|
|
|
5291
5329
|
}
|
|
5292
5330
|
return payload;
|
|
5293
5331
|
};
|
|
5332
|
+
capSize(inst, arraySize);
|
|
5294
5333
|
});
|
|
5295
5334
|
function handlePropertyResult(result, final, key, input2, optin, optout) {
|
|
5296
5335
|
const isPresent = key in input2;
|
|
@@ -6247,6 +6286,7 @@ var $ZodMap = /* @__PURE__ */ $constructor("$ZodMap", (inst, def) => {
|
|
|
6247
6286
|
return Promise.all(proms).then(() => payload);
|
|
6248
6287
|
return payload;
|
|
6249
6288
|
};
|
|
6289
|
+
capSize(inst, mapSize);
|
|
6250
6290
|
});
|
|
6251
6291
|
function handleMapResult(keyResult, valueResult, final, key, input2, inst, ctx) {
|
|
6252
6292
|
if (keyResult.issues.length) {
|
|
@@ -6313,6 +6353,7 @@ var $ZodSet = /* @__PURE__ */ $constructor("$ZodSet", (inst, def) => {
|
|
|
6313
6353
|
return Promise.all(proms).then(() => payload);
|
|
6314
6354
|
return payload;
|
|
6315
6355
|
};
|
|
6356
|
+
capSize(inst, setSize);
|
|
6316
6357
|
});
|
|
6317
6358
|
function handleSetResult(result, final) {
|
|
6318
6359
|
if (result.issues.length) {
|
|
@@ -15837,9 +15878,15 @@ function generateNullableCheck(doc, ctx, schema, accessor, buildsValue = true) {
|
|
|
15837
15878
|
doc.write(`}`);
|
|
15838
15879
|
return outputVar;
|
|
15839
15880
|
}
|
|
15881
|
+
function generateSizeGate(doc, schema, size) {
|
|
15882
|
+
for (const [max, check2] of sizeCaps(schema._zod.def.checks)) {
|
|
15883
|
+
doc.write(`if (${size} > ${numericOperand(max, check2._zod.def.check)}) return INVALID;`);
|
|
15884
|
+
}
|
|
15885
|
+
}
|
|
15840
15886
|
function generateArrayCheck(doc, ctx, schema, accessor, buildsValue = true) {
|
|
15841
15887
|
const def = schema._zod.def;
|
|
15842
15888
|
doc.write(`if (!Array.isArray(${accessor})) return INVALID;`);
|
|
15889
|
+
generateSizeGate(doc, schema, `${accessor}.length`);
|
|
15843
15890
|
const outputVar = buildsValue ? newVar(ctx) : null;
|
|
15844
15891
|
const iVar = newVar(ctx);
|
|
15845
15892
|
const elemVar = newVar(ctx);
|
|
@@ -16239,6 +16286,7 @@ function literalPropertyKey(ctx, key) {
|
|
|
16239
16286
|
function generateMapCheck(doc, ctx, schema, accessor) {
|
|
16240
16287
|
const def = schema._zod.def;
|
|
16241
16288
|
doc.write(`if (!(${accessor} instanceof Map)) return INVALID;`);
|
|
16289
|
+
generateSizeGate(doc, schema, `${accessor}.size`);
|
|
16242
16290
|
const outputVar = newVar(ctx);
|
|
16243
16291
|
const kVar = newVar(ctx);
|
|
16244
16292
|
const valVar = newVar(ctx);
|
|
@@ -16255,6 +16303,7 @@ function generateMapCheck(doc, ctx, schema, accessor) {
|
|
|
16255
16303
|
function generateSetCheck(doc, ctx, schema, accessor) {
|
|
16256
16304
|
const def = schema._zod.def;
|
|
16257
16305
|
doc.write(`if (!(${accessor} instanceof Set)) return INVALID;`);
|
|
16306
|
+
generateSizeGate(doc, schema, `${accessor}.size`);
|
|
16258
16307
|
const outputVar = newVar(ctx);
|
|
16259
16308
|
const valVar = newVar(ctx);
|
|
16260
16309
|
doc.write(`const ${outputVar} = new Set();`);
|
|
@@ -22278,6 +22327,43 @@ var ArtifactTombstoneRecordSchema = external_exports.looseObject({
|
|
|
22278
22327
|
t: external_exports.string()
|
|
22279
22328
|
});
|
|
22280
22329
|
external_exports.union([ArtifactSpoolRecordSchema, ArtifactTombstoneRecordSchema]);
|
|
22330
|
+
var CHECK_ITEM_RESULTS = ["pass", "fail", "skipped"];
|
|
22331
|
+
var CHECK_ITEMS_MAX = 500;
|
|
22332
|
+
var CHECK_ITEM_ID_MAX_LENGTH = 200;
|
|
22333
|
+
var CHECK_ITEM_REASON_MAX_LENGTH = 1e3;
|
|
22334
|
+
var CHECK_ITEM_REFS_MAX = 20;
|
|
22335
|
+
var CHECK_ITEM_REF_PATH_MAX_LENGTH = 500;
|
|
22336
|
+
var ONE_LINE = /^[^\u0000-\u001f\u007f]+$/;
|
|
22337
|
+
var CheckItemRefSchema = external_exports.object({
|
|
22338
|
+
path: external_exports.string().min(1).max(CHECK_ITEM_REF_PATH_MAX_LENGTH).regex(ONE_LINE, "must be one line").refine((path) => !path.startsWith("/") && !path.split(/[\\/]/).includes(".."), {
|
|
22339
|
+
message: "must be a relative path with no '..' segment"
|
|
22340
|
+
}),
|
|
22341
|
+
line: external_exports.number().int().positive().optional(),
|
|
22342
|
+
/** Only an https link: it becomes an href on a page. */
|
|
22343
|
+
href: external_exports.string().max(1e3).refine((href) => href.startsWith("https://") && !/\s/.test(href), { message: "must be an https:// URL with no whitespace" }).optional()
|
|
22344
|
+
});
|
|
22345
|
+
var CheckItemSchema = external_exports.object({
|
|
22346
|
+
/** What the item is about, unique within the check. */
|
|
22347
|
+
id: external_exports.string().min(1).max(CHECK_ITEM_ID_MAX_LENGTH).regex(ONE_LINE, "must be one line"),
|
|
22348
|
+
/** The acceptance criterion the item is about, when it is about one. */
|
|
22349
|
+
criterion: ArtifactCriterionIdSchema.optional(),
|
|
22350
|
+
result: external_exports.enum(CHECK_ITEM_RESULTS),
|
|
22351
|
+
/** Why, in a sentence or three. */
|
|
22352
|
+
reason: external_exports.string().max(CHECK_ITEM_REASON_MAX_LENGTH).optional(),
|
|
22353
|
+
refs: external_exports.array(CheckItemRefSchema).max(CHECK_ITEM_REFS_MAX).optional(),
|
|
22354
|
+
/** The sha256 of what the check item was judged on. A judge that sees the same inputs again keeps its result. */
|
|
22355
|
+
inputs: external_exports.string().regex(/^[0-9a-f]{64}$/, "must be a lowercase sha256 hex digest").optional()
|
|
22356
|
+
});
|
|
22357
|
+
var CheckItemsSchema = external_exports.array(CheckItemSchema).max(CHECK_ITEMS_MAX).superRefine((items, ctx) => {
|
|
22358
|
+
const seen = /* @__PURE__ */ new Set();
|
|
22359
|
+
for (const [index, item] of items.entries()) {
|
|
22360
|
+
if (seen.has(item.id)) ctx.addIssue({ code: "custom", path: [index, "id"], message: `repeats the id ${JSON.stringify(item.id)}` });
|
|
22361
|
+
seen.add(item.id);
|
|
22362
|
+
}
|
|
22363
|
+
});
|
|
22364
|
+
function itemsAllowResult(result, items) {
|
|
22365
|
+
return result === "fail" || !(items != null ? items : []).some((item) => item.result === "fail");
|
|
22366
|
+
}
|
|
22281
22367
|
var EMITTED_RESULTS = ["pass", "fail"];
|
|
22282
22368
|
var RESERVED_EMIT_NAMES = ["artifact", "criteria", "finding", "findings", "step"];
|
|
22283
22369
|
var EmittedNameSchema = external_exports.string().regex(/^[a-z][a-z0-9._-]{0,63}$/).superRefine((name, ctx) => {
|
|
@@ -22579,4 +22665,4 @@ xmlchars/xmlns/1.0/ed3.js:
|
|
|
22579
22665
|
*)
|
|
22580
22666
|
*/
|
|
22581
22667
|
|
|
22582
|
-
export { ARTIFACT_KINDS, ARTIFACT_MAX_CAPTION_LENGTH, ARTIFACT_MAX_FILENAME_LENGTH, ARTIFACT_MAX_REPLACES_TARGETS, ArtifactCriterionIdSchema, ArtifactSpoolRecordSchema, ArtifactTombstoneRecordSchema, BUCKET_MODEL_MAX_LENGTH, CAPTURE_TIERS, CLI_LOGIN_KIND, CLI_LOGIN_MACHINE_NAME_MAX, CliLoginPollResponseSchema, CliLoginRefusalSchema, CliLoginStartedSchema, CriteriaListSchema, EMITTED_RESULTS, EMITTED_RESULT_MAX_BODY_LENGTH, EMITTED_RESULT_MAX_LINK_LENGTH, EVENT_TYPES, EmittedNameSchema, FindingBatchSchema, FindingsResponseSchema, INPUT_BAND_BOUNDARIES, RESERVED_EMIT_NAMES, SAME_PROBLEM_RULES, SCHEMA_VERSION, SPEED_MAX_LENGTH, StepBodySchema, StepNameSchema, bannedPathsForTier, bindTests, downconvertSession, inferArtifactKind, inputBandOf, isHumanUserTurn, mediaTypeForArtifactPath, parseAgentSession, parseJunit, parseTestSelector, turnCountBound };
|
|
22668
|
+
export { ARTIFACT_KINDS, ARTIFACT_MAX_CAPTION_LENGTH, ARTIFACT_MAX_FILENAME_LENGTH, ARTIFACT_MAX_REPLACES_TARGETS, ArtifactCriterionIdSchema, ArtifactSpoolRecordSchema, ArtifactTombstoneRecordSchema, BUCKET_MODEL_MAX_LENGTH, CAPTURE_TIERS, CHECK_ITEM_REASON_MAX_LENGTH, CLI_LOGIN_KIND, CLI_LOGIN_MACHINE_NAME_MAX, CheckItemsSchema, CliLoginPollResponseSchema, CliLoginRefusalSchema, CliLoginStartedSchema, CriteriaListSchema, EMITTED_RESULTS, EMITTED_RESULT_MAX_BODY_LENGTH, EMITTED_RESULT_MAX_LINK_LENGTH, EVENT_TYPES, EmittedNameSchema, FindingBatchSchema, FindingsResponseSchema, INPUT_BAND_BOUNDARIES, RESERVED_EMIT_NAMES, SAME_PROBLEM_RULES, SCHEMA_VERSION, SPEED_MAX_LENGTH, StepBodySchema, StepNameSchema, bannedPathsForTier, bindTests, downconvertSession, inferArtifactKind, inputBandOf, isHumanUserTurn, itemsAllowResult, mediaTypeForArtifactPath, parseAgentSession, parseJunit, parseTestSelector, turnCountBound };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { isPlaceholderCommand } from './chunk-
|
|
4
|
-
import { describeCallFailure } from './chunk-
|
|
5
|
-
import { builtinKind } from './chunk-
|
|
6
|
-
import { WorkCommandError, getJson } from './chunk-
|
|
7
|
-
import { sanitizeTerminal } from './chunk-
|
|
8
|
-
import { signerFor } from './chunk-
|
|
9
|
-
import { CLAUDE_CREDENTIAL_VARIABLES, claudeCredential } from './chunk-
|
|
3
|
+
import { isPlaceholderCommand } from './chunk-B6OYEP3K.js';
|
|
4
|
+
import { describeCallFailure } from './chunk-3IDNLZPR.js';
|
|
5
|
+
import { builtinKind } from './chunk-2ZMJFGOZ.js';
|
|
6
|
+
import { WorkCommandError, getJson } from './chunk-DBRB26R7.js';
|
|
7
|
+
import { sanitizeTerminal } from './chunk-HSUUTD4E.js';
|
|
8
|
+
import { signerFor } from './chunk-IRF2FKB5.js';
|
|
9
|
+
import { CLAUDE_CREDENTIAL_VARIABLES, claudeCredential } from './chunk-WHCDULC4.js';
|
|
10
10
|
|
|
11
11
|
createRequire(import.meta.url);
|
|
12
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-
|
|
3
|
+
import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-SOWXLIDN.js';
|
|
4
4
|
import { readlinkSync, realpathSync, mkdirSync, unlinkSync, symlinkSync, renameSync, readFileSync, writeFileSync, rmSync, existsSync, readdirSync } from 'fs';
|
|
5
5
|
import { join, basename, sep, resolve } from 'path';
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { EXEC_PORT } from './chunk-
|
|
3
|
+
import { EXEC_PORT } from './chunk-TKJISBV6.js';
|
|
4
4
|
import { createConnection } from 'net';
|
|
5
5
|
|
|
6
6
|
createRequire(import.meta.url);
|
|
@@ -81,21 +81,24 @@ function runExec(socketPath, request, io = {}) {
|
|
|
81
81
|
killed = true;
|
|
82
82
|
send(FRAME.kill, Buffer.alloc(0));
|
|
83
83
|
}
|
|
84
|
-
const
|
|
84
|
+
const chunks = (buffer) => Array.from({ length: Math.ceil(buffer.length / CHUNK_BYTES) }, (_unused, i) => buffer.subarray(i * CHUNK_BYTES, (i + 1) * CHUNK_BYTES));
|
|
85
|
+
const sendRequest = () => {
|
|
85
86
|
const stdin = io.stdin;
|
|
86
|
-
|
|
87
|
+
if (stdin !== void 0 && typeof stdin !== "string" && !Buffer.isBuffer(stdin)) {
|
|
88
|
+
send(FRAME.request, encodeRequest(request));
|
|
89
|
+
void pumpStdin(stdin);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const input = stdin === void 0 ? [] : chunks(Buffer.from(stdin)).map((chunk) => encodeFrame(FRAME.stdin, chunk));
|
|
93
|
+
socket.write(Buffer.concat([encodeFrame(FRAME.request, encodeRequest(request)), ...input, encodeFrame(FRAME.stdin, Buffer.alloc(0))]));
|
|
94
|
+
};
|
|
95
|
+
const pumpStdin = async (stdin) => {
|
|
87
96
|
try {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
for (; ; ) {
|
|
94
|
-
const next = await stdinIterator.next();
|
|
95
|
-
if (next.done === true || settled) break;
|
|
96
|
-
for (const chunk of chunks(Buffer.from(next.value))) {
|
|
97
|
-
if (!send(FRAME.stdin, chunk)) await new Promise((done) => socket.once("drain", () => done()));
|
|
98
|
-
}
|
|
97
|
+
const iterator = stdin.iterator({ destroyOnReturn: false });
|
|
98
|
+
stdinIterator = iterator;
|
|
99
|
+
for await (const value of iterator) {
|
|
100
|
+
for (const chunk of chunks(Buffer.from(value))) {
|
|
101
|
+
if (!send(FRAME.stdin, chunk)) await new Promise((done) => socket.once("drain", () => done()));
|
|
99
102
|
}
|
|
100
103
|
}
|
|
101
104
|
} catch {
|
|
@@ -143,9 +146,8 @@ function runExec(socketPath, request, io = {}) {
|
|
|
143
146
|
}
|
|
144
147
|
greeted = true;
|
|
145
148
|
clearTimeout(handshakeTimer);
|
|
146
|
-
|
|
149
|
+
sendRequest();
|
|
147
150
|
if (io.signal?.aborted === true) kill();
|
|
148
|
-
void pumpStdin();
|
|
149
151
|
const rest = greeting.subarray(newline + 1);
|
|
150
152
|
if (rest.length > 0) onFrames(rest);
|
|
151
153
|
});
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { sanitizeTerminal } from './chunk-
|
|
4
|
-
import { isAgentsMdLayout } from './chunk-
|
|
5
|
-
import { resolveGatewayCredentials, defaultFetch } from './chunk-
|
|
3
|
+
import { sanitizeTerminal } from './chunk-HSUUTD4E.js';
|
|
4
|
+
import { isAgentsMdLayout } from './chunk-QDDPVBIS.js';
|
|
5
|
+
import { resolveGatewayCredentials, defaultFetch } from './chunk-AM3GMWQK.js';
|
|
6
6
|
import { versionAtLeast } from './chunk-HCVLP7XA.js';
|
|
7
7
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
8
|
-
import { machineSkillsState, staleClaudeSkills } from './chunk-
|
|
9
|
-
import { AGENTS_SKILLS_BASE, skillDir, namesCore, MACHINE_SKILL_PATH, isMaintainedCopy, loadTemplateFiles } from './chunk-
|
|
8
|
+
import { machineSkillsState, staleClaudeSkills } from './chunk-UAFMC3PL.js';
|
|
9
|
+
import { AGENTS_SKILLS_BASE, skillDir, namesCore, MACHINE_SKILL_PATH, isMaintainedCopy, loadTemplateFiles } from './chunk-AKKVPUGK.js';
|
|
10
10
|
import { MAINTAINED_SKILLS } from './chunk-CDDED64E.js';
|
|
11
11
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
12
|
-
import { hasSymlinkComponent } from './chunk-
|
|
13
|
-
import { emitTree, ALL_TARGET_IDS, classifyTree, splitRawFile } from './chunk-
|
|
12
|
+
import { hasSymlinkComponent } from './chunk-HJUGOAM7.js';
|
|
13
|
+
import { emitTree, ALL_TARGET_IDS, classifyTree, splitRawFile } from './chunk-ZUOPFE22.js';
|
|
14
14
|
import { existsSync, readFileSync, writeFileSync, realpathSync, readdirSync } from 'fs';
|
|
15
15
|
import { join, dirname, posix } from 'path';
|
|
16
16
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
|
|
4
|
-
import { autoConnect, detectActiveSession } from './chunk-
|
|
5
|
-
import { acquireSpoolLockAt } from './chunk-
|
|
6
|
-
import { resolveRepoIdentity } from './chunk-
|
|
4
|
+
import { autoConnect, detectActiveSession } from './chunk-SJ4DX2AD.js';
|
|
5
|
+
import { acquireSpoolLockAt } from './chunk-HSUUTD4E.js';
|
|
6
|
+
import { resolveRepoIdentity } from './chunk-FTGJ3DPV.js';
|
|
7
7
|
import { C } from './chunk-ANPNT6PM.js';
|
|
8
|
-
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-
|
|
8
|
+
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-AM3GMWQK.js';
|
|
9
9
|
import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
|
|
10
10
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
11
|
-
import { StepNameSchema, StepBodySchema } from './chunk-
|
|
11
|
+
import { StepNameSchema, StepBodySchema } from './chunk-IWFYKNAO.js';
|
|
12
12
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
13
13
|
import { randomUUID } from 'crypto';
|
|
14
14
|
import { readFileSync, existsSync, mkdirSync, writeFileSync, renameSync, appendFileSync } from 'fs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { AGENTS_SKILLS_BASE, OUTERLAYER_SKILLS_BASE } from './chunk-
|
|
4
|
-
import { normalizePath, CONTEXT_PIN_FILENAME } from './chunk-
|
|
3
|
+
import { AGENTS_SKILLS_BASE, OUTERLAYER_SKILLS_BASE } from './chunk-AKKVPUGK.js';
|
|
4
|
+
import { normalizePath, CONTEXT_PIN_FILENAME } from './chunk-ZUOPFE22.js';
|
|
5
5
|
import { existsSync, readdirSync, readFileSync, mkdirSync, writeFileSync, lstatSync, readlinkSync, symlinkSync, rmdirSync } from 'fs';
|
|
6
6
|
import { relative, sep, join } from 'path';
|
|
7
7
|
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { execCapture } from './chunk-
|
|
4
|
-
import { GUEST_CID } from './chunk-
|
|
5
|
-
import { keepStagedContext, describeCallFailure, controlPlaneTokenFailure, refusalCode, resolveGoverningSource, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, shimScript } from './chunk-
|
|
6
|
-
import { runnerImageVersion } from './chunk-
|
|
3
|
+
import { execCapture } from './chunk-MBVSVQVH.js';
|
|
4
|
+
import { GUEST_CID } from './chunk-TKJISBV6.js';
|
|
5
|
+
import { keepStagedContext, describeCallFailure, controlPlaneTokenFailure, refusalCode, resolveGoverningSource, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, shimScript } from './chunk-3IDNLZPR.js';
|
|
6
|
+
import { runnerImageVersion } from './chunk-D3LS7E7U.js';
|
|
7
7
|
import { hostAllowed } from './chunk-UXYLWVTQ.js';
|
|
8
|
-
import { readDefaultBranchHead, cloneRepository, buildRepositoryImage } from './chunk-
|
|
8
|
+
import { readDefaultBranchHead, cloneRepository, buildRepositoryImage } from './chunk-U5DC57AF.js';
|
|
9
9
|
import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
|
|
10
10
|
import { currentCliBuild } from './chunk-OGFGZQA3.js';
|
|
11
|
-
import { createDockerHost, builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, containerRunArgs, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, containerExecArgs, childEnvironment, JUDGE_DIR,
|
|
11
|
+
import { createDockerHost, builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, containerRunArgs, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, containerExecArgs, childEnvironment, JUDGE_DIR, MAX_ITEMS_BYTES, JUDGE_ITEMS, MAX_REPORT_BYTES, JUDGE_REPORT, spawnRun } from './chunk-7YSR636F.js';
|
|
12
12
|
import { readDu } from './chunk-YJLHUKYS.js';
|
|
13
13
|
import { FIRECRACKER_VERSION, hostHelperPinned, firecrackerArch, MICROVM_ARCHES, RecipeError, DOCKER_FEATURE, CLAUDE_CODE_VERSION, GUEST_HELPER_SHA256, GUEST_ASSETS_BASE_URL, GUEST_KERNEL_SHA256, JAILER_BINARY_SHA256, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256, GUEST_ASSETS_VERSION, DEFAULT_BASE_IMAGE } from './chunk-SJZL5F3F.js';
|
|
14
|
-
import { WorkCommandError } from './chunk-
|
|
15
|
-
import { setCustomScrubbers, setLocalIdentity, setRepoRoot, parseTranscript, scrubDeep, scrubText } from './chunk-
|
|
16
|
-
import { vmAssetsDir, RUNNER_DIR_MODE, rootfsPathFor, diskTemplatesDir, RUNNER_FILE_MODE, deliveryDir, ghConfigDir, runnerDirOfBuild, spoolDir, mirrorDir, buildDir, SHIM_DIR } from './chunk-
|
|
17
|
-
import { repositoriesOf, primaryOf, RELAY_PORT, repositoryPath, CHECKOUT_DIR, lifecycleWorkdir, claudeCredential, buildEnvironment, startBuildServices, checkEnvironment, AGENT_CREDENTIAL_MISSING, checkoutPath, JOB_MOUNT } from './chunk-
|
|
14
|
+
import { WorkCommandError } from './chunk-DBRB26R7.js';
|
|
15
|
+
import { setCustomScrubbers, setLocalIdentity, setRepoRoot, parseTranscript, scrubDeep, scrubText } from './chunk-FTGJ3DPV.js';
|
|
16
|
+
import { vmAssetsDir, RUNNER_DIR_MODE, rootfsPathFor, diskTemplatesDir, RUNNER_FILE_MODE, deliveryDir, ghConfigDir, runnerDirOfBuild, spoolDir, mirrorDir, buildDir, SHIM_DIR } from './chunk-SOWXLIDN.js';
|
|
17
|
+
import { repositoriesOf, primaryOf, RELAY_PORT, repositoryPath, CHECKOUT_DIR, lifecycleWorkdir, claudeCredential, buildEnvironment, startBuildServices, checkEnvironment, AGENT_CREDENTIAL_MISSING, checkoutPath, JOB_MOUNT } from './chunk-WHCDULC4.js';
|
|
18
18
|
import { sharedSkillNames, skillConflictMessage } from './chunk-FGF52V4V.js';
|
|
19
19
|
import { versionAtLeast, MINIMUM_CLAUDE_VERSION } from './chunk-HCVLP7XA.js';
|
|
20
|
-
import { orderSessions, extractFacts, sessionsToTimeline } from './chunk-
|
|
21
|
-
import { downconvertSession } from './chunk-
|
|
20
|
+
import { orderSessions, extractFacts, sessionsToTimeline } from './chunk-ZUOPFE22.js';
|
|
21
|
+
import { downconvertSession } from './chunk-IWFYKNAO.js';
|
|
22
22
|
import { realFdStorePort } from './chunk-XD4ZCMA4.js';
|
|
23
23
|
import { RELAY_USER, RELAY_ID, UNKNOWN_TRANSPORT_REASON, DOCKER_DESKTOP_REASON, MAX_MALFORMED_SESSIONS, MALFORMED_REASON, JOIN_WAIT_MS, MAX_OPEN_STREAMS, STREAM_RESET_RATE, STREAM_RESET_BURST, STREAM_WINDOW, SESSION_WINDOW, targetOfPath } from './chunk-MESOOLF4.js';
|
|
24
24
|
import { readFileSync, mkdirSync, existsSync, mkdtempSync, rmSync, chmodSync, truncateSync, writeFileSync, readdirSync, lstatSync, copyFileSync, accessSync, constants, statSync, rmdirSync, renameSync, unlinkSync, openSync, closeSync, createWriteStream, createReadStream, writeSync } from 'fs';
|
|
@@ -3340,6 +3340,17 @@ function containerJudgeEnvironment(input) {
|
|
|
3340
3340
|
const state = job.container;
|
|
3341
3341
|
const user = state.agentUser ?? ADDED_USER;
|
|
3342
3342
|
const folder = join(input.jobDir, "judge");
|
|
3343
|
+
const readJudgeFile = async (file, name, maxBytes) => {
|
|
3344
|
+
if (!filesAreCopied(state)) return readRegularFile(join(folder, name), maxBytes);
|
|
3345
|
+
const read = await runtime.host.exec({
|
|
3346
|
+
container: state.container,
|
|
3347
|
+
user,
|
|
3348
|
+
env: NO_ENV,
|
|
3349
|
+
argv: ["/bin/sh", "-c", `[ -f ${file} ] && [ ! -L ${file} ] && head -c ${maxBytes + 1} ${file}`]
|
|
3350
|
+
}, { timeoutMs: REPORT_READ_TIMEOUT_MS });
|
|
3351
|
+
if (read.status > 1) throw new Error(`reading the judge's ${name} exited ${read.status}: ${firstLine5(read.stderr)}`);
|
|
3352
|
+
return read.status === 0 && Buffer.byteLength(read.stdout) <= maxBytes ? read.stdout : void 0;
|
|
3353
|
+
};
|
|
3343
3354
|
return {
|
|
3344
3355
|
stop: async () => {
|
|
3345
3356
|
if (input.config !== void 0) await ensureTunnel(runtime, state, input.jobDir, input.config, job.itemKey, job.branch, job.repositories, input.log);
|
|
@@ -3382,18 +3393,8 @@ function containerJudgeEnvironment(input) {
|
|
|
3382
3393
|
chmodSync(folder, 1023);
|
|
3383
3394
|
},
|
|
3384
3395
|
run: (command, opts) => runtime.host.exec({ container: state.container, user, workdir: command.cwd, env: { literals: command.env, passed: {} }, argv: command.argv }, { logPath: opts.logPath }),
|
|
3385
|
-
readReport:
|
|
3386
|
-
|
|
3387
|
-
const file = JUDGE_REPORT;
|
|
3388
|
-
const read = await runtime.host.exec({
|
|
3389
|
-
container: state.container,
|
|
3390
|
-
user,
|
|
3391
|
-
env: NO_ENV,
|
|
3392
|
-
argv: ["/bin/sh", "-c", `[ -f ${file} ] && [ ! -L ${file} ] && head -c ${MAX_REPORT_BYTES + 1} ${file}`]
|
|
3393
|
-
}, { timeoutMs: REPORT_READ_TIMEOUT_MS });
|
|
3394
|
-
if (read.status > 1) throw new Error(`reading the judge report exited ${read.status}: ${firstLine5(read.stderr)}`);
|
|
3395
|
-
return read.status === 0 && Buffer.byteLength(read.stdout) <= MAX_REPORT_BYTES ? read.stdout : void 0;
|
|
3396
|
-
},
|
|
3396
|
+
readReport: () => readJudgeFile(JUDGE_REPORT, "report.html", MAX_REPORT_BYTES),
|
|
3397
|
+
readItems: () => readJudgeFile(JUDGE_ITEMS, "items.json", MAX_ITEMS_BYTES),
|
|
3397
3398
|
// The judge's files belong to the build's user, and Claude Code makes some of its folders private to it, so the runner's user cannot remove them from the
|
|
3398
3399
|
// host. Every capability is dropped in the container, so root there could not either; the build's user removes its own, and the runner removes the rest.
|
|
3399
3400
|
clear: async () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-
|
|
3
|
+
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-SOWXLIDN.js';
|
|
4
4
|
import { readFileSync, existsSync, rmSync, mkdirSync, writeFileSync, renameSync } from 'fs';
|
|
5
5
|
import { join } from 'path';
|
|
6
6
|
|
|
@@ -680,11 +680,11 @@ async function missingControlPlane(cwd, sessionId, home, env) {
|
|
|
680
680
|
const dirs = findGitDirs(cwd);
|
|
681
681
|
if (dirs === void 0) return void 0;
|
|
682
682
|
if (existsSync(join(dirs.gitCommonDir, "outerlayer", "materialized.json")) || hasExcludeBlock(dirs.gitCommonDir)) {
|
|
683
|
-
const { cleanupEarlierCopies } = await import('./context-cleanup-
|
|
683
|
+
const { cleanupEarlierCopies } = await import('./context-cleanup-D5EGQHQV.js');
|
|
684
684
|
cleanupEarlierCopies(dirs);
|
|
685
685
|
}
|
|
686
686
|
if (!contextPossiblyGoverned(cwd, home)) return void 0;
|
|
687
|
-
const { governanceOf } = await import('./control-plane-launch-
|
|
687
|
+
const { governanceOf } = await import('./control-plane-launch-2AC4BTWL.js');
|
|
688
688
|
if (await governanceOf({ cwd, env, home }) !== "governed") return void 0;
|
|
689
689
|
recordMissingContext(dirs, sessionId, home);
|
|
690
690
|
const launcher = `${cliInvocation()} claude`;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { fetchFactories, selectFactory, saveFactoryConnection, autoConnectedLine } from './chunk-
|
|
4
|
-
import { resolveRepoIdentity } from './chunk-
|
|
5
|
-
import { resolveGatewayCredentials } from './chunk-
|
|
3
|
+
import { fetchFactories, selectFactory, saveFactoryConnection, autoConnectedLine } from './chunk-3YLHIXLR.js';
|
|
4
|
+
import { resolveRepoIdentity } from './chunk-FTGJ3DPV.js';
|
|
5
|
+
import { resolveGatewayCredentials } from './chunk-AM3GMWQK.js';
|
|
6
6
|
import { findGitDirs, readRepoConnection } from './chunk-BJ3KTMDH.js';
|
|
7
7
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
8
8
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { autoConnect, detectActiveSession } from './chunk-
|
|
4
|
-
import { resolveRepoIdentity } from './chunk-
|
|
3
|
+
import { autoConnect, detectActiveSession } from './chunk-SJ4DX2AD.js';
|
|
4
|
+
import { resolveRepoIdentity } from './chunk-FTGJ3DPV.js';
|
|
5
5
|
import { C } from './chunk-ANPNT6PM.js';
|
|
6
|
-
import { defaultFetch, unauthorizedMessage, resolveGatewayCredentials } from './chunk-
|
|
6
|
+
import { defaultFetch, unauthorizedMessage, resolveGatewayCredentials } from './chunk-AM3GMWQK.js';
|
|
7
7
|
import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
|
|
8
8
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
9
9
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { RELAY_PORT, GATEWAY_SOCKET, GATEWAY_PORT, CLAUDE_SOCKET, CLAUDE_PORT, DESTINATION_BASE_PORT } from './chunk-
|
|
3
|
+
import { RELAY_PORT, GATEWAY_SOCKET, GATEWAY_PORT, CLAUDE_SOCKET, CLAUDE_PORT, DESTINATION_BASE_PORT } from './chunk-WHCDULC4.js';
|
|
4
4
|
import { symlinkSync, unlinkSync } from 'fs';
|
|
5
5
|
import { join } from 'path';
|
|
6
6
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { checkStarterFiles, contextIsGoverned } from './chunk-
|
|
4
|
-
import { fleetCheck, checkBuildSkill, checkMachineSkills, checkCommittedMaintainedSkills, checkMaintainedReferences } from './chunk-
|
|
5
|
-
import { resolveCredentials, getJson, WorkCommandError } from './chunk-
|
|
6
|
-
import { isLinkedRepository } from './chunk-
|
|
7
|
-
import { sanitizeTerminal } from './chunk-
|
|
8
|
-
import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-
|
|
3
|
+
import { checkStarterFiles, contextIsGoverned } from './chunk-BCWVTWS7.js';
|
|
4
|
+
import { fleetCheck, checkBuildSkill, checkMachineSkills, checkCommittedMaintainedSkills, checkMaintainedReferences } from './chunk-MBZTX4V2.js';
|
|
5
|
+
import { resolveCredentials, getJson, WorkCommandError } from './chunk-DBRB26R7.js';
|
|
6
|
+
import { isLinkedRepository } from './chunk-3YLHIXLR.js';
|
|
7
|
+
import { sanitizeTerminal } from './chunk-HSUUTD4E.js';
|
|
8
|
+
import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-FTGJ3DPV.js';
|
|
9
9
|
import { C } from './chunk-ANPNT6PM.js';
|
|
10
|
-
import { checkFormerSkillNames } from './chunk-
|
|
11
|
-
import { resolveGatewayCredentials, defaultFetch } from './chunk-
|
|
12
|
-
import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-
|
|
10
|
+
import { checkFormerSkillNames } from './chunk-V6IYYQU3.js';
|
|
11
|
+
import { resolveGatewayCredentials, defaultFetch } from './chunk-AM3GMWQK.js';
|
|
12
|
+
import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-RJDJFRRY.js';
|
|
13
13
|
import { readStatuslineState, STATE_FRESH_MS } from './chunk-I7RZHMXW.js';
|
|
14
14
|
import { hookCommandEscapesControlPlane, CONTROL_PLANE_DIR_VARIABLE } from './chunk-HCVLP7XA.js';
|
|
15
15
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
@@ -1190,7 +1190,7 @@ function doctorExitCode(checks) {
|
|
|
1190
1190
|
|
|
1191
1191
|
// src/doctor-report.ts
|
|
1192
1192
|
async function gatherDoctorChecks() {
|
|
1193
|
-
const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-
|
|
1193
|
+
const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-VM6GKCCE.js');
|
|
1194
1194
|
const configPath = defaultRunnerConfigPath();
|
|
1195
1195
|
const runnerHost = hasRunnerBlock(configPath);
|
|
1196
1196
|
const hooks = (() => {
|
|
@@ -1211,7 +1211,7 @@ async function gatherDoctorChecks() {
|
|
|
1211
1211
|
const { runnerVmCheck } = await import('./doctor-53F2PYY7.js');
|
|
1212
1212
|
checks.push(runnerVmCheck(configPath, { lima: realLima(), home: homeFromEnv(), instance: runnerVm.instance }));
|
|
1213
1213
|
} else if (hasRunnerBlock(configPath)) {
|
|
1214
|
-
const { runnerHostChecks } = await import('./doctor-
|
|
1214
|
+
const { runnerHostChecks } = await import('./doctor-RGTHY56D.js');
|
|
1215
1215
|
const gateway = (() => {
|
|
1216
1216
|
try {
|
|
1217
1217
|
const { url, apiKey, appId } = loadRunnerConfig(configPath);
|
|
@@ -1239,7 +1239,7 @@ async function gatherDoctorChecks() {
|
|
|
1239
1239
|
const { existsSync: existsSync3 } = await import('fs');
|
|
1240
1240
|
if (process.platform !== "linux" || !existsSync3("/run/systemd/system")) return void 0;
|
|
1241
1241
|
const { inspectService, realInspectProbes } = await import('./inspect-L7JIBK3Y.js');
|
|
1242
|
-
const { DEFAULT_UNIT_NAME } = await import('./install-
|
|
1242
|
+
const { DEFAULT_UNIT_NAME } = await import('./install-GZ27NW6U.js');
|
|
1243
1243
|
const { dirname: dirname2 } = await import('path');
|
|
1244
1244
|
return inspectService(DEFAULT_UNIT_NAME, dirname2(configPath), realInspectProbes());
|
|
1245
1245
|
})();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { RELAY_PORT, BUILD_HOME } from './chunk-
|
|
3
|
+
import { RELAY_PORT, BUILD_HOME } from './chunk-WHCDULC4.js';
|
|
4
4
|
import { createServer, connect } from 'net';
|
|
5
5
|
|
|
6
6
|
createRequire(import.meta.url);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { claimPidFile, RunnerAlreadyRunningError, releasePidFile } from './chunk-
|
|
3
|
+
import { claimPidFile, RunnerAlreadyRunningError, releasePidFile } from './chunk-IRTZYDZO.js';
|
|
4
4
|
import { startTimeOf } from './chunk-JBJTC3UU.js';
|
|
5
5
|
import { CLAUDE_CODE_VERSION, NODE_IMAGE, DEFAULT_BASE_IMAGE, RecipeError, locateRecipe, readRecipe, assertBuildable, TINI_VERSION, GH_VERSION, writeSanitizedRecipe, classifyProperties, GH_SHA256, TINI_SHA256, SANITIZED_NAME } from './chunk-SJZL5F3F.js';
|
|
6
|
-
import { RUNNER_DIR_MODE, repoCacheDir, imagesDir, attemptStamp, runnerDir, rootfsPathFor, RUNNER_FILE_MODE } from './chunk-
|
|
7
|
-
import { withGitConfig, tokenHeader, PROXY_WARNING_FLAG } from './chunk-
|
|
6
|
+
import { RUNNER_DIR_MODE, repoCacheDir, imagesDir, attemptStamp, runnerDir, rootfsPathFor, RUNNER_FILE_MODE } from './chunk-SOWXLIDN.js';
|
|
7
|
+
import { withGitConfig, tokenHeader, PROXY_WARNING_FLAG } from './chunk-WHCDULC4.js';
|
|
8
8
|
import { RELAY_ID, RELAY_USER } from './chunk-MESOOLF4.js';
|
|
9
9
|
import { mkdirSync, rmSync, existsSync, mkdtempSync, cpSync, readFileSync, writeFileSync, readdirSync, lstatSync, readlinkSync } from 'fs';
|
|
10
10
|
import { tmpdir } from 'os';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { loadMachineSkillFiles, resolvePackRoot } from './chunk-
|
|
3
|
+
import { loadMachineSkillFiles, resolvePackRoot } from './chunk-AKKVPUGK.js';
|
|
4
4
|
import { MAINTAINED_SKILLS, maintainedLineVersion } from './chunk-CDDED64E.js';
|
|
5
5
|
import { resolvePackageVersion } from './chunk-RA3O54FC.js';
|
|
6
6
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { skillDir, FORMER_MAINTAINED_NAMES, isMaintainedCopy } from './chunk-
|
|
3
|
+
import { skillDir, FORMER_MAINTAINED_NAMES, isMaintainedCopy } from './chunk-AKKVPUGK.js';
|
|
4
4
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
5
|
-
import { emitTree, ALL_TARGET_IDS, classifyTree } from './chunk-
|
|
5
|
+
import { emitTree, ALL_TARGET_IDS, classifyTree } from './chunk-ZUOPFE22.js';
|
|
6
6
|
import { readFileSync, existsSync, unlinkSync, rmdirSync, readdirSync } from 'fs';
|
|
7
7
|
import { join, dirname, relative, sep } from 'path';
|
|
8
8
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { currentLink } from './chunk-
|
|
3
|
+
import { currentLink } from './chunk-LJIFCG4G.js';
|
|
4
4
|
import { readFileSync, statSync, chmodSync, mkdirSync, writeFileSync, renameSync, rmSync, existsSync, lstatSync, accessSync, constants, realpathSync } from 'fs';
|
|
5
5
|
import { randomBytes } from 'crypto';
|
|
6
6
|
import { join, dirname, delimiter, resolve } from 'path';
|
|
@@ -15,7 +15,8 @@ function claudeEnvPath(configPath) {
|
|
|
15
15
|
return join(dirname(configPath), CLAUDE_ENV_FILE);
|
|
16
16
|
}
|
|
17
17
|
var CLAUDE_CREDENTIAL_VARIABLES = ["CLAUDE_CODE_OAUTH_TOKEN", "ANTHROPIC_API_KEY", "ANTHROPIC_AUTH_TOKEN"];
|
|
18
|
-
var
|
|
18
|
+
var FORWARDED_CLAUDE_CREDENTIAL_VARIABLES = ["CLAUDE_CODE_OAUTH_TOKEN", "ANTHROPIC_API_KEY"];
|
|
19
|
+
var FORWARDED = FORWARDED_CLAUDE_CREDENTIAL_VARIABLES;
|
|
19
20
|
function firstOf(values, source) {
|
|
20
21
|
for (const variable of FORWARDED) {
|
|
21
22
|
const value = values[variable];
|
|
@@ -162,6 +163,8 @@ function builtInEnvironment(localFor, credential) {
|
|
|
162
163
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "1"
|
|
163
164
|
};
|
|
164
165
|
}
|
|
166
|
+
|
|
167
|
+
// src/runner/destinations.ts
|
|
165
168
|
var MAX_RELEASED_DESTINATIONS = 20;
|
|
166
169
|
var MAX_DESTINATIONS = MAX_RELEASED_DESTINATIONS - BUILT_IN_NAMES.length;
|
|
167
170
|
var DESTINATION_BASE_PORT = 3129;
|
|
@@ -558,6 +561,7 @@ function primaryOf(repositories) {
|
|
|
558
561
|
var RELAY_PORT = 3128;
|
|
559
562
|
var JOB_MOUNT = "/outerlayer/job";
|
|
560
563
|
var EVAL_INPUT_DIR = `${JOB_MOUNT}/eval-input`;
|
|
564
|
+
var CHECK_ITEMS_FILE = "/tmp/outerlayer-check-items.json";
|
|
561
565
|
var BUILD_HOME = "/build/home";
|
|
562
566
|
var CHECKOUT_DIR = "/build/work/checkout";
|
|
563
567
|
var REPOS_DIR = "/build/work/repos";
|
|
@@ -713,7 +717,7 @@ function checkEnvironment(input) {
|
|
|
713
717
|
imageEnv: input.imageEnv
|
|
714
718
|
});
|
|
715
719
|
const withheld = /* @__PURE__ */ new Set(["OUTERLAYER_URL", "OUTERLAYER_API_KEY", ...CLAUDE_CREDENTIAL_VARIABLES]);
|
|
716
|
-
const literals = { OUTERLAYER_EVAL_INPUT: EVAL_INPUT_DIR };
|
|
720
|
+
const literals = { OUTERLAYER_EVAL_INPUT: EVAL_INPUT_DIR, OUTERLAYER_CHECK_ITEMS: CHECK_ITEMS_FILE };
|
|
717
721
|
for (const [name, value] of Object.entries(env.literals)) if (!withheld.has(name)) literals[name] = value;
|
|
718
722
|
const passed = {};
|
|
719
723
|
for (const [name, value] of Object.entries(env.passed)) if (!withheld.has(name)) passed[name] = value;
|
|
@@ -752,4 +756,4 @@ function withTunnelRecord(environment, record, onlyWhenUsed = false) {
|
|
|
752
756
|
};
|
|
753
757
|
}
|
|
754
758
|
|
|
755
|
-
export { AGENT_CREDENTIAL_MISSING, BUILD_HOME, BUILT_IN_NAMES, CHECKOUT_DIR, CLAUDE_CREDENTIAL_ID, CLAUDE_CREDENTIAL_VARIABLES, CLAUDE_ENV_FILE, CLAUDE_PORT, CLAUDE_SOCKET, DESTINATION_BASE_PORT, EVAL_INPUT_DIR, GATEWAY_PORT, GATEWAY_SOCKET, JOB_MOUNT, PROXY_WARNING_FLAG, RELAY_PORT, authorEnvironment, buildEnvironment, builtInEnvironment, checkEnvironment, checkoutPath, claudeCredential, claudeEnvPath, commitIdentityRecord, containerLocalAddress, credentialLineIn, currentClaudeCredential, destinationEnvironment, headerVariables, heldClaudeCredential, isRefusedInConfig, isReservedVariable, lifecycleWorkdir, parseClaimIdentity, parseClaimedRepositories, parseIsolation, parseUnreachable, primaryOf, proxyEnvironment, readClaudeCredential, removedClaudeCredentialValues, repositoriesOf, repositoryPath, resolveDestinations, sharedUserEnvironment, startBuildServices, takeClaudeCredential, tokenHeader, withGitConfig, withHooksPath, withProxyWarningHidden, withTokenHeader, withTunnelRecord, withoutCredentialLines };
|
|
759
|
+
export { AGENT_CREDENTIAL_MISSING, BUILD_HOME, BUILT_IN_NAMES, CHECKOUT_DIR, CHECK_ITEMS_FILE, CLAUDE_CREDENTIAL_ID, CLAUDE_CREDENTIAL_VARIABLES, CLAUDE_ENV_FILE, CLAUDE_PORT, CLAUDE_SOCKET, DESTINATION_BASE_PORT, EVAL_INPUT_DIR, FORWARDED_CLAUDE_CREDENTIAL_VARIABLES, GATEWAY_PORT, GATEWAY_SOCKET, JOB_MOUNT, PROXY_WARNING_FLAG, RELAY_PORT, authorEnvironment, buildEnvironment, builtInEnvironment, checkEnvironment, checkoutPath, claudeCredential, claudeEnvPath, commitIdentityRecord, containerLocalAddress, credentialLineIn, currentClaudeCredential, destinationEnvironment, headerVariables, heldClaudeCredential, isRefusedInConfig, isReservedVariable, lifecycleWorkdir, parseClaimIdentity, parseClaimedRepositories, parseIsolation, parseUnreachable, primaryOf, proxyEnvironment, readClaudeCredential, removedClaudeCredentialValues, repositoriesOf, repositoryPath, resolveDestinations, sharedUserEnvironment, startBuildServices, takeClaudeCredential, tokenHeader, withGitConfig, withHooksPath, withProxyWarningHidden, withTokenHeader, withTunnelRecord, withoutCredentialLines };
|