@outerlayer/cli 0.34.0-next.20261027121359 → 0.34.0-next.20261027162612
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/{agent-setup-UPRMGVB7.js → agent-setup-THDNZ5ME.js} +6 -6
- package/dist/{bridge-GVZUP3NU.js → bridge-MLB57JP6.js} +2 -2
- package/dist/build-25GDCEZ7.js +18 -0
- package/dist/{build-disk-WMIRA4RD.js → build-disk-NFMQCZM3.js} +8 -8
- package/dist/build-info.json +1 -1
- package/dist/{builder-XTAHDFV5.js → builder-OWDGC3VQ.js} +7 -7
- package/dist/{check-FAG4QKIX.js → check-QGM2SECF.js} +39 -39
- package/dist/{chunk-Q3ATWA2U.js → chunk-2YPOSVC7.js} +3 -3
- package/dist/{chunk-M6YTST7G.js → chunk-36M4KVBT.js} +2 -2
- package/dist/{chunk-W5EKMK37.js → chunk-3FTIUB7I.js} +1 -1
- package/dist/{chunk-L4DCIEVT.js → chunk-3RRYEZAC.js} +4 -4
- package/dist/{chunk-I2GHZ2VA.js → chunk-3VJYDWFV.js} +1 -1
- package/dist/{chunk-CHDWAWQA.js → chunk-4QQJTJUN.js} +1 -1
- package/dist/{chunk-6SJ3DJDH.js → chunk-5ARXP3BP.js} +3 -3
- package/dist/{chunk-SGT7YU3X.js → chunk-5FHBVV25.js} +104 -59
- package/dist/{chunk-T375XV3H.js → chunk-62URQYCB.js} +1 -1
- package/dist/{chunk-NGZBVN6F.js → chunk-6IMQXBTZ.js} +6 -6
- package/dist/{chunk-66TKWWTX.js → chunk-7Q7GQELE.js} +5 -5
- package/dist/{chunk-B7LPFCIN.js → chunk-7SJNVGVC.js} +6 -6
- package/dist/{chunk-JKOONI3H.js → chunk-7TLGRE5F.js} +2 -2
- package/dist/{chunk-OOD5NDQA.js → chunk-A6PJSNP6.js} +349 -94
- package/dist/{chunk-LUYTNCMS.js → chunk-ANFNZCXZ.js} +5 -5
- package/dist/{chunk-LHUZVM3L.js → chunk-AV5T7HV3.js} +1 -1
- package/dist/{chunk-SJY6A6EH.js → chunk-BCIBSJZH.js} +35 -22
- package/dist/{chunk-RMJSYOSV.js → chunk-BS3OYFAD.js} +1 -1
- package/dist/{chunk-PBZODW5X.js → chunk-BS4CZMT6.js} +1 -1
- package/dist/{chunk-HO4XRLAZ.js → chunk-CFJOONWM.js} +1 -1
- package/dist/{chunk-LTMFHECB.js → chunk-CKVJSOY3.js} +20 -20
- package/dist/{chunk-UC4OSOQS.js → chunk-CMMEJJTL.js} +10 -35
- package/dist/{chunk-YIBHQR3B.js → chunk-EYJRVHBN.js} +3 -3
- package/dist/{chunk-UYWGR35C.js → chunk-FLHBUQ2W.js} +7 -6
- package/dist/{chunk-N752ZNZ5.js → chunk-FVVHQIZR.js} +1 -1
- package/dist/{chunk-Z7THNFUU.js → chunk-GMKDAF37.js} +25 -6
- package/dist/{chunk-XZGURZHF.js → chunk-GPO7F757.js} +1 -1
- package/dist/{chunk-KFXPH7SJ.js → chunk-HJCNWEQK.js} +3 -3
- package/dist/{chunk-ARPPH7VS.js → chunk-J3Q3QCOF.js} +243 -79
- package/dist/{chunk-3NMDGGZS.js → chunk-JO4SAEHH.js} +3 -3
- package/dist/{chunk-ZV6GOXYA.js → chunk-JVNQNKHV.js} +1 -1
- package/dist/{chunk-RO2NZJHZ.js → chunk-JWMJMQRF.js} +4 -4
- package/dist/{chunk-4IB5WUY2.js → chunk-KVGK2JL3.js} +6 -6
- package/dist/{chunk-TS2YACAQ.js → chunk-LYX2RRSF.js} +2 -2
- package/dist/{chunk-W774NREK.js → chunk-MGF346ND.js} +3 -3
- package/dist/{chunk-UDRBQI5J.js → chunk-N33OOF3K.js} +10 -10
- package/dist/{chunk-WS5E73JO.js → chunk-NEBMTP7T.js} +6 -6
- package/dist/{chunk-L7RPNSAA.js → chunk-NO6E72RM.js} +2 -2
- package/dist/{chunk-UXGWAAGQ.js → chunk-OHTMTMFX.js} +4 -4
- package/dist/{chunk-XSUM3E67.js → chunk-OP2L7OXA.js} +3 -3
- package/dist/{chunk-YGX72FUQ.js → chunk-QRIE4JZE.js} +3 -3
- package/dist/{chunk-XEJ5USHY.js → chunk-QWSAZGH6.js} +6 -6
- package/dist/{chunk-QBBZGVZJ.js → chunk-RCAMBC3H.js} +3 -3
- package/dist/{chunk-KDSKFXPE.js → chunk-RJZZFAXS.js} +1 -1
- package/dist/{chunk-QTAADTIO.js → chunk-T6ALNN3H.js} +1 -1
- package/dist/{chunk-DUG3JXAT.js → chunk-UZIAZXXO.js} +1 -1
- package/dist/{chunk-LXOBWRVC.js → chunk-W246VXU4.js} +3 -3
- package/dist/{chunk-J2X5CTYY.js → chunk-WR2GRWK3.js} +1 -1
- package/dist/{chunk-QUOITPN7.js → chunk-WX2HW2G2.js} +8 -1
- package/dist/{chunk-HDLON3RJ.js → chunk-X7M73LKT.js} +9 -2
- package/dist/{chunk-FRETDGET.js → chunk-Z4LFCJT6.js} +3 -3
- package/dist/{claude-launcher-SGZSOGKZ.js → claude-launcher-LYGS66AC.js} +1 -1
- package/dist/{cli-6QN7TH6U.js → cli-HVBFWC3J.js} +114 -113
- package/dist/{command-6T6RI5XY.js → command-J3CDQLWC.js} +27 -27
- package/dist/{config-CWYMIXTV.js → config-5NWSCHIO.js} +9 -9
- package/dist/{connect-cmd-MY6SR4OK.js → connect-cmd-HB3K3AHE.js} +6 -6
- package/dist/{container-start-FDXR4QND.js → container-start-YLKDT2JG.js} +33 -33
- package/dist/{context-show-cmd-WRTV3ACH.js → context-show-cmd-RJIQS2KF.js} +7 -7
- package/dist/{control-plane-launch-UM4IHOJQ.js → control-plane-launch-TS4DFJF4.js} +5 -5
- package/dist/{demo-record-cmd-XBWTORVM.js → demo-record-cmd-VVZGUCWB.js} +4 -4
- package/dist/{demo-voice-cmd-FLU4GDKS.js → demo-voice-cmd-3ADGIWK6.js} +13 -13
- package/dist/{dist-ADKRGE7I.js → dist-BUSLJNSZ.js} +1 -1
- package/dist/{docker-IUPWQ2RK.js → docker-5VGCFZV2.js} +7 -7
- package/dist/{doctor-5VNZ2BLY.js → doctor-AG73VZNG.js} +28 -28
- package/dist/{emit-artifact-cmd-RDXIWRFU.js → emit-artifact-cmd-WJT7AXTZ.js} +11 -11
- package/dist/{emit-criteria-cmd-EDJOWGKL.js → emit-criteria-cmd-45IYB535.js} +8 -8
- package/dist/{emit-demo-cmd-W3BXFFU3.js → emit-demo-cmd-AIIQNPXS.js} +13 -13
- package/dist/{emit-finding-cmd-TMZIOQIP.js → emit-finding-cmd-6YTJK2NA.js} +8 -8
- package/dist/{emit-result-cmd-P55JBD2W.js → emit-result-cmd-TZGFY743.js} +10 -10
- package/dist/{emit-step-cmd-Y7LKI7L3.js → emit-step-cmd-LGBTIAXC.js} +8 -8
- package/dist/{exec-client-FB3OBHOJ.js → exec-client-LR67CA24.js} +3 -3
- package/dist/find-unit-YGDFVHVU.js +19 -0
- package/dist/{findings-cmd-D64BYS7Z.js → findings-cmd-ETJXUDQI.js} +8 -8
- package/dist/{fleet-readiness-75KQEZ6E.js → fleet-readiness-MYIMDBF7.js} +5 -5
- package/dist/{governing-source-YYEU46PP.js → governing-source-GBJTVMK2.js} +10 -10
- package/dist/{guest-init-SGF6ZVZN.js → guest-init-GXPOW53F.js} +4 -4
- package/dist/{hook-fast-XX5HZOCR.js → hook-fast-5WOGLR7V.js} +1 -1
- package/dist/{host-checks-VKBAGGWH.js → host-checks-6G2F2HTK.js} +31 -31
- package/dist/{pending-GEDI4K7P.js → host-key-GAZM4EOH.js} +3 -3
- package/dist/{image-tag-MRWNQGXA.js → image-tag-OYHGRHVV.js} +3 -3
- package/dist/index.js +4 -4
- package/dist/{init-B5S5LMIL.js → init-7VWIU5TG.js} +24 -24
- package/dist/{init-BB2TLXVB.js → init-Y2OJSOAA.js} +24 -24
- package/dist/{init-cmd-I2Z4VZSG.js → init-cmd-77XKBRUF.js} +11 -11
- package/dist/{init-update-TIZILQXL.js → init-update-TXQHBY3H.js} +9 -9
- package/dist/{install-cmd-X4OHS36T.js → install-cmd-VZGXSS73.js} +5 -5
- package/dist/{logs-BPEOYWRW.js → logs-42QPBCMC.js} +2 -2
- package/dist/{loop-XULUT5HL.js → loop-FRT5NSFG.js} +38 -38
- package/dist/{machine-UYFUUSEQ.js → machine-TEG554M5.js} +24 -24
- package/dist/{mcp-serve-cmd-NCPWJJDZ.js → mcp-serve-cmd-LYJQO6U4.js} +4 -4
- package/dist/{paths-WXGOFVCF.js → paths-QLFRPIKS.js} +2 -2
- package/dist/{host-key-CNCHVNDC.js → pending-6DDSCXUD.js} +3 -3
- package/dist/{pidfile-MYLBUG2I.js → pidfile-WLZ427QQ.js} +3 -3
- package/dist/{record-Y2JIOP56.js → record-WGCMQLQS.js} +3 -3
- package/dist/{runner-env-Y2PBG7TR.js → runner-env-6FSJOSWS.js} +11 -11
- package/dist/{runner-identity-PL442M57.js → runner-identity-XODZ7YBP.js} +7 -7
- package/dist/{runner-key-L6LXC4QA.js → runner-key-T3V7N7CL.js} +24 -24
- package/dist/{session-sender-AXROAZSC.js → session-sender-U54EQJNR.js} +11 -11
- package/dist/{spec-cmd-JG4QLGGJ.js → spec-cmd-EM24GTAM.js} +9 -9
- package/dist/{status-VOGNQ3NG.js → status-4YO4TUEH.js} +31 -31
- package/dist/{sync-cmd-B3KQZJZO.js → sync-cmd-Y5RKWVF7.js} +10 -10
- package/dist/{update-steps-RSYFLNTL.js → update-steps-KNN4Y2ZU.js} +32 -32
- package/dist/{watch-IHZRBUYV.js → watch-X5VYY4LH.js} +10 -10
- package/dist/{work-claim-cmd-YEMHNW3H.js → work-claim-cmd-IU3YJQKR.js} +15 -15
- package/dist/{work-cmd-OWZS3ZXL.js → work-cmd-LUKJHAMH.js} +8 -8
- package/dist/{work-comment-cmd-ESBYAE4K.js → work-comment-cmd-BDNFAVKL.js} +9 -9
- package/dist/{work-demo-cmd-FT3FQWM7.js → work-demo-cmd-GPDJHU6F.js} +8 -8
- package/dist/{work-logs-cmd-K6NTURGR.js → work-logs-cmd-B6EX4RPE.js} +8 -8
- package/dist/{work-open-pr-cmd-NGD4Z2TO.js → work-open-pr-cmd-TRXDCMSG.js} +9 -9
- package/dist/{work-pr-cmd-274YUPQB.js → work-pr-cmd-5GUR5SIU.js} +8 -8
- package/dist/{work-proofs-cmd-JLSQHVKO.js → work-proofs-cmd-PBY7WNYI.js} +9 -9
- package/dist/{work-proofs-record-AYUWUFBE.js → work-proofs-record-AVKJFZOD.js} +16 -16
- package/dist/{work-stop-cmd-VQLLLJ3H.js → work-stop-cmd-J47GZB2N.js} +8 -8
- package/package.json +1 -1
- package/skill-pack/maintained/outerlayer-build/SKILL.md +15 -0
- package/dist/build-ZDYL7ZGP.js +0 -18
- package/dist/find-unit-R4I5GJCH.js +0 -19
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { keepHandWritten, runAgentSetup } from './chunk-
|
|
3
|
+
export { keepHandWritten, runAgentSetup } from './chunk-FVVHQIZR.js';
|
|
4
4
|
import './chunk-TWFBOZQ5.js';
|
|
5
5
|
import './chunk-KT4CN6OU.js';
|
|
6
6
|
import './chunk-J7EJMIDR.js';
|
|
7
7
|
import './chunk-ANPNT6PM.js';
|
|
8
8
|
import './chunk-LYCJQOO2.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-36M4KVBT.js';
|
|
10
10
|
import './chunk-LMYRR5MO.js';
|
|
11
|
-
import './chunk-
|
|
11
|
+
import './chunk-62URQYCB.js';
|
|
12
12
|
import './chunk-PJDQPF5N.js';
|
|
13
|
-
import './chunk-
|
|
13
|
+
import './chunk-RJZZFAXS.js';
|
|
14
14
|
import './chunk-ZJSNLVCE.js';
|
|
15
15
|
import './chunk-BJ3KTMDH.js';
|
|
16
16
|
import './chunk-OVNF4LLC.js';
|
|
@@ -24,8 +24,8 @@ import './chunk-TUSYOL2O.js';
|
|
|
24
24
|
import './chunk-XFJ7YOPD.js';
|
|
25
25
|
import './chunk-DINRXUQA.js';
|
|
26
26
|
import './chunk-VNVZDWO3.js';
|
|
27
|
-
import './chunk-
|
|
28
|
-
import './chunk-
|
|
27
|
+
import './chunk-3VJYDWFV.js';
|
|
28
|
+
import './chunk-GMKDAF37.js';
|
|
29
29
|
import './chunk-MESOOLF4.js';
|
|
30
30
|
import './chunk-Z5GEFMRW.js';
|
|
31
31
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { BRIDGE_ADDRESS, BRIDGE_CIDR, CONTAINER_NO_PROXY, CONTAINER_PROXY, TUNNEL_PORT, dockerClientConfig, startBridgeForward, writeDockerClientConfig } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { BRIDGE_ADDRESS, BRIDGE_CIDR, CONTAINER_NO_PROXY, CONTAINER_PROXY, TUNNEL_PORT, dockerClientConfig, startBridgeForward, writeDockerClientConfig } from './chunk-GPO7F757.js';
|
|
4
|
+
import './chunk-GMKDAF37.js';
|
|
5
5
|
import './chunk-MESOOLF4.js';
|
|
6
6
|
import './chunk-Z5GEFMRW.js';
|
|
7
7
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
export { KEY_PREFIX, SHARED_NAME, SHARED_OWNER, SHARED_REPOSITORY, TAG_HOST, baseLines, buildRepositoryImage, metadataFromLabels, prepareImageBuild, writeRecord } from './chunk-5FHBVV25.js';
|
|
4
|
+
import './chunk-CMMEJJTL.js';
|
|
5
|
+
import './chunk-FLHBUQ2W.js';
|
|
6
|
+
export { RecipeError } from './chunk-X7M73LKT.js';
|
|
7
|
+
import './chunk-WX2HW2G2.js';
|
|
8
|
+
import './chunk-3FTIUB7I.js';
|
|
9
|
+
import './chunk-JBJTC3UU.js';
|
|
10
|
+
import './chunk-RJZZFAXS.js';
|
|
11
|
+
import './chunk-A6PJSNP6.js';
|
|
12
|
+
import './chunk-DINRXUQA.js';
|
|
13
|
+
import './chunk-3VJYDWFV.js';
|
|
14
|
+
import './chunk-GMKDAF37.js';
|
|
15
|
+
import './chunk-MESOOLF4.js';
|
|
16
|
+
import './chunk-Z5GEFMRW.js';
|
|
17
|
+
|
|
18
|
+
createRequire(import.meta.url);
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { DEFAULT_BUILD_DISK, DEFAULT_CACHE_DISK, DOCKER_CACHE_MS, allocatedBytes, checkDiskFit, realBuildDiskProbe, runDocker, volumeBytes } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
3
|
+
export { DEFAULT_BUILD_DISK, DEFAULT_CACHE_DISK, DOCKER_CACHE_MS, allocatedBytes, checkDiskFit, realBuildDiskProbe, runDocker, volumeBytes } from './chunk-LYX2RRSF.js';
|
|
4
|
+
import './chunk-FLHBUQ2W.js';
|
|
5
|
+
import './chunk-X7M73LKT.js';
|
|
6
|
+
import './chunk-WX2HW2G2.js';
|
|
7
|
+
import './chunk-RJZZFAXS.js';
|
|
8
|
+
import './chunk-A6PJSNP6.js';
|
|
9
9
|
import './chunk-DINRXUQA.js';
|
|
10
|
-
import './chunk-
|
|
11
|
-
import './chunk-
|
|
10
|
+
import './chunk-3VJYDWFV.js';
|
|
11
|
+
import './chunk-GMKDAF37.js';
|
|
12
12
|
import './chunk-MESOOLF4.js';
|
|
13
13
|
import './chunk-Z5GEFMRW.js';
|
|
14
14
|
|
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"2026-10-
|
|
1
|
+
{"id":"2026-10-27T16:28:14.920Z+d66ae09","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
3
|
+
export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-FLHBUQ2W.js';
|
|
4
|
+
import './chunk-X7M73LKT.js';
|
|
5
|
+
import './chunk-WX2HW2G2.js';
|
|
6
|
+
import './chunk-RJZZFAXS.js';
|
|
7
|
+
import './chunk-A6PJSNP6.js';
|
|
8
8
|
import './chunk-DINRXUQA.js';
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
9
|
+
import './chunk-3VJYDWFV.js';
|
|
10
|
+
import './chunk-GMKDAF37.js';
|
|
11
11
|
import './chunk-MESOOLF4.js';
|
|
12
12
|
import './chunk-Z5GEFMRW.js';
|
|
13
13
|
|
|
@@ -1,64 +1,64 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { probeCredentials } from './chunk-
|
|
3
|
+
import { probeCredentials } from './chunk-CKVJSOY3.js';
|
|
4
4
|
import './chunk-3JVYMD4G.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-KVGK2JL3.js';
|
|
6
6
|
import './chunk-E7R2GIAW.js';
|
|
7
7
|
import './chunk-MH6QLXUO.js';
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
11
|
-
import './chunk-
|
|
8
|
+
import './chunk-UZIAZXXO.js';
|
|
9
|
+
import './chunk-MGF346ND.js';
|
|
10
|
+
import './chunk-BS4CZMT6.js';
|
|
11
|
+
import './chunk-BCIBSJZH.js';
|
|
12
12
|
import './chunk-6CK2OC4Q.js';
|
|
13
13
|
import './chunk-ZVB57WI6.js';
|
|
14
|
-
import './chunk-
|
|
14
|
+
import './chunk-5ARXP3BP.js';
|
|
15
15
|
import './chunk-I3LTIAOR.js';
|
|
16
|
-
import './chunk-
|
|
17
|
-
import './chunk-
|
|
18
|
-
import './chunk-
|
|
16
|
+
import './chunk-QRIE4JZE.js';
|
|
17
|
+
import './chunk-7SJNVGVC.js';
|
|
18
|
+
import './chunk-RCAMBC3H.js';
|
|
19
19
|
import './chunk-ESVW4MJY.js';
|
|
20
|
-
import './chunk-
|
|
21
|
-
import { managedProblems, managedFactsOf } from './chunk-
|
|
22
|
-
import './chunk-
|
|
20
|
+
import './chunk-GPO7F757.js';
|
|
21
|
+
import { managedProblems, managedFactsOf } from './chunk-QWSAZGH6.js';
|
|
22
|
+
import './chunk-WR2GRWK3.js';
|
|
23
23
|
import './chunk-TBT347UY.js';
|
|
24
|
-
import { findServiceUnit } from './chunk-
|
|
24
|
+
import { findServiceUnit } from './chunk-7TLGRE5F.js';
|
|
25
25
|
import './chunk-TZMDRHWB.js';
|
|
26
|
-
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, HELPER_ENV, helperSocketPath, probeHelper, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-
|
|
26
|
+
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, HELPER_ENV, helperSocketPath, probeHelper, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-J3Q3QCOF.js';
|
|
27
27
|
import './chunk-2PGI6RDE.js';
|
|
28
|
-
import './chunk-
|
|
29
|
-
import './chunk-
|
|
28
|
+
import './chunk-5FHBVV25.js';
|
|
29
|
+
import './chunk-CMMEJJTL.js';
|
|
30
30
|
import './chunk-OGFGZQA3.js';
|
|
31
|
-
import './chunk-
|
|
32
|
-
import './chunk-
|
|
33
|
-
import './chunk-
|
|
34
|
-
import './chunk-
|
|
31
|
+
import './chunk-JVNQNKHV.js';
|
|
32
|
+
import './chunk-BS3OYFAD.js';
|
|
33
|
+
import './chunk-7Q7GQELE.js';
|
|
34
|
+
import './chunk-CFJOONWM.js';
|
|
35
35
|
import './chunk-TQMI335S.js';
|
|
36
|
-
import './chunk-
|
|
37
|
-
import './chunk-
|
|
38
|
-
import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-
|
|
39
|
-
import './chunk-
|
|
40
|
-
import './chunk-
|
|
41
|
-
import './chunk-
|
|
42
|
-
import './chunk-
|
|
43
|
-
import './chunk-
|
|
36
|
+
import './chunk-OP2L7OXA.js';
|
|
37
|
+
import './chunk-OHTMTMFX.js';
|
|
38
|
+
import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-JWMJMQRF.js';
|
|
39
|
+
import './chunk-LYX2RRSF.js';
|
|
40
|
+
import './chunk-FLHBUQ2W.js';
|
|
41
|
+
import './chunk-X7M73LKT.js';
|
|
42
|
+
import './chunk-WX2HW2G2.js';
|
|
43
|
+
import './chunk-3FTIUB7I.js';
|
|
44
44
|
import './chunk-JBJTC3UU.js';
|
|
45
45
|
import './chunk-KT4CN6OU.js';
|
|
46
46
|
import './chunk-J7EJMIDR.js';
|
|
47
|
-
import './chunk-
|
|
47
|
+
import './chunk-6IMQXBTZ.js';
|
|
48
48
|
import './chunk-IP7BIBXJ.js';
|
|
49
|
-
import './chunk-
|
|
50
|
-
import './chunk-
|
|
49
|
+
import './chunk-EYJRVHBN.js';
|
|
50
|
+
import './chunk-NO6E72RM.js';
|
|
51
51
|
import './chunk-NWHU5G6R.js';
|
|
52
52
|
import './chunk-G2JWZDFA.js';
|
|
53
53
|
import './chunk-ANPNT6PM.js';
|
|
54
54
|
import './chunk-IXPH4EXK.js';
|
|
55
55
|
import './chunk-LYCJQOO2.js';
|
|
56
|
-
import './chunk-
|
|
56
|
+
import './chunk-36M4KVBT.js';
|
|
57
57
|
import './chunk-LMYRR5MO.js';
|
|
58
|
-
import './chunk-
|
|
58
|
+
import './chunk-62URQYCB.js';
|
|
59
59
|
import './chunk-PJDQPF5N.js';
|
|
60
|
-
import './chunk-
|
|
61
|
-
import './chunk-
|
|
60
|
+
import './chunk-RJZZFAXS.js';
|
|
61
|
+
import './chunk-4QQJTJUN.js';
|
|
62
62
|
import './chunk-ZJSNLVCE.js';
|
|
63
63
|
import './chunk-2O5KA67H.js';
|
|
64
64
|
import './chunk-BKO6JEZI.js';
|
|
@@ -66,7 +66,7 @@ import './chunk-FGF52V4V.js';
|
|
|
66
66
|
import './chunk-HCVLP7XA.js';
|
|
67
67
|
import './chunk-BJ3KTMDH.js';
|
|
68
68
|
import './chunk-OVNF4LLC.js';
|
|
69
|
-
import './chunk-
|
|
69
|
+
import './chunk-A6PJSNP6.js';
|
|
70
70
|
import './chunk-5BHIBJDA.js';
|
|
71
71
|
import './chunk-CDDED64E.js';
|
|
72
72
|
import './chunk-RA3O54FC.js';
|
|
@@ -80,8 +80,8 @@ import './chunk-TUSYOL2O.js';
|
|
|
80
80
|
import './chunk-XFJ7YOPD.js';
|
|
81
81
|
import './chunk-DINRXUQA.js';
|
|
82
82
|
import './chunk-VNVZDWO3.js';
|
|
83
|
-
import './chunk-
|
|
84
|
-
import { claudeEnvPath, parseRunnerEnv } from './chunk-
|
|
83
|
+
import './chunk-3VJYDWFV.js';
|
|
84
|
+
import { claudeEnvPath, parseRunnerEnv } from './chunk-GMKDAF37.js';
|
|
85
85
|
import './chunk-MESOOLF4.js';
|
|
86
86
|
import './chunk-Z5GEFMRW.js';
|
|
87
87
|
import { readFileSync } from 'fs';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { launcherPath, pathNotes, writeLauncher, LauncherWriteError } from './chunk-
|
|
4
|
-
import { currentVersion, currentLink, versionDir, execStartLine, isInLayout, packageRootIn, switchCurrent } from './chunk-
|
|
3
|
+
import { launcherPath, pathNotes, writeLauncher, LauncherWriteError } from './chunk-AV5T7HV3.js';
|
|
4
|
+
import { currentVersion, currentLink, versionDir, execStartLine, isInLayout, packageRootIn, switchCurrent } from './chunk-WR2GRWK3.js';
|
|
5
5
|
import { compareVersions } from './chunk-TQMI335S.js';
|
|
6
|
-
import { runnerDir, RUNNER_DIR_MODE } from './chunk-
|
|
6
|
+
import { runnerDir, RUNNER_DIR_MODE } from './chunk-3VJYDWFV.js';
|
|
7
7
|
import { lchownSync, lstatSync, realpathSync, readFileSync, mkdirSync, rmSync, cpSync, existsSync, readdirSync } from 'fs';
|
|
8
8
|
import { dirname, sep, join } from 'path';
|
|
9
9
|
import { spawnSync } from 'child_process';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { removeRetiredSkills } from './chunk-LMYRR5MO.js';
|
|
4
|
-
import { defaultFetch, resolveGatewayCredentials } from './chunk-
|
|
4
|
+
import { defaultFetch, resolveGatewayCredentials } from './chunk-62URQYCB.js';
|
|
5
5
|
import { appendContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
6
6
|
import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-OVNF4LLC.js';
|
|
7
7
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
8
8
|
import { writeDegraded, writeSourceCache, SOURCE_CACHE_TTL_RETRY_MS, writeContextManifest, SOURCE_CACHE_TTL_SUCCESS_MS, readSourceCache, isSourceCacheFresh, clearDegraded } from './chunk-YQR6E6OV.js';
|
|
9
9
|
import { normalizeRepoName, parseOuterlayerConfig, classifyTree, emitTree } from './chunk-XFJ7YOPD.js';
|
|
10
10
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
11
|
-
import { withTokenHeader } from './chunk-
|
|
11
|
+
import { withTokenHeader } from './chunk-GMKDAF37.js';
|
|
12
12
|
import { execFileSync } from 'child_process';
|
|
13
13
|
import { existsSync, mkdirSync, writeFileSync, chmodSync, lstatSync, readFileSync, copyFileSync } from 'fs';
|
|
14
14
|
import { isAbsolute, join, dirname } from 'path';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { isSameProcess } from './chunk-JBJTC3UU.js';
|
|
4
|
-
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-
|
|
4
|
+
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-3VJYDWFV.js';
|
|
5
5
|
import { existsSync, readFileSync, mkdirSync, writeFileSync, rmSync } from 'fs';
|
|
6
6
|
import { dirname } from 'path';
|
|
7
7
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { staleBuildRefusal, staleBuildWarning, detectCi } from './chunk-
|
|
3
|
+
import { staleBuildRefusal, staleBuildWarning, detectCi } from './chunk-7SJNVGVC.js';
|
|
4
4
|
import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
|
|
5
5
|
import { detectActiveSession } from './chunk-IP7BIBXJ.js';
|
|
6
|
-
import { autoConnect } from './chunk-
|
|
6
|
+
import { autoConnect } from './chunk-EYJRVHBN.js';
|
|
7
7
|
import { C } from './chunk-ANPNT6PM.js';
|
|
8
8
|
import { readEffectiveArtifactSpoolState, localArtifactIds, isArtifactTombstoned, artifactBlobsDir, appendArtifactRecord, artifactsSpoolPath, findPendingArtifactRecord, sanitizeTerminal, appendArtifactTombstone } from './chunk-IXPH4EXK.js';
|
|
9
|
-
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-
|
|
10
|
-
import { resolveRepoIdentity } from './chunk-
|
|
9
|
+
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-62URQYCB.js';
|
|
10
|
+
import { resolveRepoIdentity } from './chunk-A6PJSNP6.js';
|
|
11
11
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
12
12
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
13
13
|
import { ARTIFACT_MAX_CAPTION_LENGTH, ArtifactCriterionIdSchema, ARTIFACT_MAX_BYTES, ARTIFACT_MAX_FILENAME_LENGTH, mediaTypeForArtifactPath, inferArtifactKind, ARTIFACT_MAX_REPLACES_TARGETS, parseTestSelector, parseJunit, bindTests } from './chunk-DINRXUQA.js';
|
|
@@ -684,7 +684,7 @@ async function missingControlPlane(cwd, sessionId, home, env) {
|
|
|
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-TS4DFJF4.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,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { TUNNEL_PORT, BRIDGE_ADDRESS, BRIDGE_CIDR } from './chunk-
|
|
4
|
-
import { EXEC_PORT } from './chunk-
|
|
3
|
+
import { TUNNEL_PORT, BRIDGE_ADDRESS, BRIDGE_CIDR } from './chunk-GPO7F757.js';
|
|
4
|
+
import { EXEC_PORT } from './chunk-BS3OYFAD.js';
|
|
5
5
|
import { startTimeOf } from './chunk-JBJTC3UU.js';
|
|
6
|
-
import { RELAY_PORT } from './chunk-
|
|
6
|
+
import { RELAY_PORT } from './chunk-GMKDAF37.js';
|
|
7
7
|
import { spawn, spawnSync } from 'child_process';
|
|
8
8
|
import { symlinkSync, lstatSync, writeFileSync, chmodSync, mkdirSync, existsSync } from 'fs';
|
|
9
9
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import {
|
|
4
|
-
import { runnerLabelValue } from './chunk-
|
|
5
|
-
import { RecipeError, locateRecipe, readRecipe, assertBuildable, writeSanitizedRecipe, classifyProperties, SANITIZED_NAME } from './chunk-
|
|
6
|
-
import { CLAUDE_CODE_VERSION, NODE_IMAGE,
|
|
7
|
-
import { claimPidFile, RunnerAlreadyRunningError, releasePidFile } from './chunk-
|
|
3
|
+
import { toolsDockerfile } from './chunk-CMMEJJTL.js';
|
|
4
|
+
import { runnerLabelValue } from './chunk-FLHBUQ2W.js';
|
|
5
|
+
import { RecipeError, locateRecipe, readRecipe, assertBuildable, writeSanitizedRecipe, classifyProperties, SANITIZED_NAME } from './chunk-X7M73LKT.js';
|
|
6
|
+
import { CLAUDE_CODE_VERSION, NODE_IMAGE, UNIVERSAL_IMAGE, MEDIA_PINS, TINI_VERSION, GH_VERSION, UNIVERSAL_IMAGE_DIGEST, UNIVERSAL_IMAGE_REPOSITORY, UNIVERSAL_IMAGE_SOURCE } from './chunk-WX2HW2G2.js';
|
|
7
|
+
import { claimPidFile, RunnerAlreadyRunningError, releasePidFile } from './chunk-3FTIUB7I.js';
|
|
8
8
|
import { startTimeOf } from './chunk-JBJTC3UU.js';
|
|
9
|
-
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE, repoCacheDir, imagesDir, imageBuildLogsDir, attemptStamp, runnerDir, rootfsPathFor } from './chunk-
|
|
10
|
-
import { withGitConfig, tokenHeader } from './chunk-
|
|
9
|
+
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE, repoCacheDir, imagesDir, imageBuildLogsDir, attemptStamp, runnerDir, rootfsPathFor } from './chunk-3VJYDWFV.js';
|
|
10
|
+
import { withGitConfig, tokenHeader } from './chunk-GMKDAF37.js';
|
|
11
11
|
import { mkdirSync, rmSync, writeFileSync, existsSync, mkdtempSync, cpSync, readFileSync, readdirSync, lstatSync, readlinkSync } from 'fs';
|
|
12
12
|
import { tmpdir } from 'os';
|
|
13
13
|
import { dirname, join } from 'path';
|
|
@@ -167,8 +167,8 @@ function hashFile(root, rel) {
|
|
|
167
167
|
const bytes = lstatSync(path).isSymbolicLink() ? Buffer.from(`-> ${readlinkSync(path)}`) : readFileSync(path);
|
|
168
168
|
return [rel, "\0", bytes, "\0"];
|
|
169
169
|
}
|
|
170
|
-
function recipeKey(checkoutDir, location,
|
|
171
|
-
if (location.kind === "default") return sha256(
|
|
170
|
+
function recipeKey(checkoutDir, location, universalImage) {
|
|
171
|
+
if (location.kind === "default") return sha256("universal\0", universalImage);
|
|
172
172
|
const files = [];
|
|
173
173
|
if (existsSync(join(checkoutDir, ".devcontainer"))) files.push(...filesUnder(checkoutDir, ".devcontainer"));
|
|
174
174
|
if (location.path === ".devcontainer.json") {
|
|
@@ -206,12 +206,20 @@ function selectPrunable(opts) {
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
// src/runner/image/build.ts
|
|
209
|
+
function baseLines(report) {
|
|
210
|
+
return report.base === void 0 ? [] : [` base: ${report.base.reference}@${report.base.digest}
|
|
211
|
+
`];
|
|
212
|
+
}
|
|
209
213
|
var KIND2 = "ai.outerlayer.kind";
|
|
210
214
|
var RUNNER2 = "ai.outerlayer.runner";
|
|
211
215
|
var REPOSITORY = "ai.outerlayer.repository";
|
|
212
216
|
var RECIPE_KEY2 = "ai.outerlayer.recipe-key";
|
|
213
217
|
var TOOLS_KEY = "ai.outerlayer.tools-key";
|
|
214
218
|
var KEEP_BUILD_IMAGES = 3;
|
|
219
|
+
var SHARED_OWNER = "_universal";
|
|
220
|
+
var SHARED_NAME = "image";
|
|
221
|
+
var SHARED_REPOSITORY = `${SHARED_OWNER}/${SHARED_NAME}`;
|
|
222
|
+
var SHARED_TAG_NAME = "universal";
|
|
215
223
|
var TAG_HOST = "outerlayer.invalid";
|
|
216
224
|
var KEY_PREFIX = 12;
|
|
217
225
|
var LOCK_NAME = "build.lock";
|
|
@@ -265,7 +273,6 @@ async function prepareImageBuild(opts) {
|
|
|
265
273
|
const now = opts.now ?? (() => /* @__PURE__ */ new Date());
|
|
266
274
|
const claudeCodeVersion = opts.claudeCodeVersion ?? CLAUDE_CODE_VERSION;
|
|
267
275
|
const nodeImage = opts.nodeImage ?? NODE_IMAGE;
|
|
268
|
-
const baseImage = opts.defaultBaseImage ?? DEFAULT_BASE_IMAGE;
|
|
269
276
|
const cacheDir = repoCacheDir(opts.configPath, owner, name);
|
|
270
277
|
const repoRecords = join(imagesDir(opts.configPath), owner, name);
|
|
271
278
|
const logPath = join(imageBuildLogsDir(opts.configPath, owner, name), `${attemptStamp(now())}.log`);
|
|
@@ -280,18 +287,54 @@ async function prepareImageBuild(opts) {
|
|
|
280
287
|
}
|
|
281
288
|
throw err;
|
|
282
289
|
}
|
|
283
|
-
|
|
290
|
+
let releaseShared = () => void 0;
|
|
291
|
+
const release = () => {
|
|
292
|
+
releaseShared();
|
|
293
|
+
releasePidFile(lockPath, self);
|
|
294
|
+
};
|
|
284
295
|
try {
|
|
285
296
|
const remote = opts.remote ?? `https://github.com/${owner}/${name}.git`;
|
|
286
297
|
const checkout = opts.pinned === void 0 ? await fetchDefaultBranch({ remote, dir: cacheDir, token: opts.readToken, repository }) : await fetchPinnedCommit({ remote, dir: cacheDir, token: opts.readToken, repository, ...opts.pinned });
|
|
287
298
|
const location = locateRecipe(checkout.dir);
|
|
288
299
|
const recipe = readRecipe(checkout.dir, location);
|
|
289
300
|
assertBuildable(checkout.dir, location, recipe);
|
|
290
|
-
const
|
|
291
|
-
const
|
|
301
|
+
const shared = location.kind === "default";
|
|
302
|
+
const imageRepository = shared ? SHARED_REPOSITORY : repository;
|
|
303
|
+
const records = shared ? join(imagesDir(opts.configPath), SHARED_OWNER, SHARED_NAME) : repoRecords;
|
|
304
|
+
if (shared) {
|
|
305
|
+
mkdirSync(records, { recursive: true, mode: RUNNER_DIR_MODE });
|
|
306
|
+
const sharedLock = join(records, LOCK_NAME);
|
|
307
|
+
try {
|
|
308
|
+
claimPidFile(sharedLock, self);
|
|
309
|
+
} catch (err) {
|
|
310
|
+
if (err instanceof RunnerAlreadyRunningError) {
|
|
311
|
+
throw new RecipeError("build_in_progress", `an image build on the universal image is already running (pid ${err.pid})`);
|
|
312
|
+
}
|
|
313
|
+
throw err;
|
|
314
|
+
}
|
|
315
|
+
releaseShared = () => releasePidFile(sharedLock, self);
|
|
316
|
+
}
|
|
317
|
+
const rKey = recipeKey(checkout.dir, location, UNIVERSAL_IMAGE);
|
|
292
318
|
const tKey = toolsKey({ buildId: opts.cli.buildId, claudeCodeVersion, nodeImage, ghVersion: GH_VERSION, tiniVersion: TINI_VERSION, guestHelperSha256: opts.guestHelper?.sha256, mediaPins: MEDIA_PINS });
|
|
293
|
-
const recordDir = join(
|
|
294
|
-
return {
|
|
319
|
+
const recordDir = join(records, `${rKey.slice(0, KEY_PREFIX)}-${tKey.slice(0, KEY_PREFIX)}`);
|
|
320
|
+
return {
|
|
321
|
+
repository,
|
|
322
|
+
owner,
|
|
323
|
+
name,
|
|
324
|
+
repoRecords: records,
|
|
325
|
+
imageRepository,
|
|
326
|
+
tagName: shared ? SHARED_TAG_NAME : repository,
|
|
327
|
+
recordDir,
|
|
328
|
+
checkout,
|
|
329
|
+
location,
|
|
330
|
+
recipe,
|
|
331
|
+
recipeKey: rKey,
|
|
332
|
+
toolsKey: tKey,
|
|
333
|
+
claudeCodeVersion,
|
|
334
|
+
nodeImage,
|
|
335
|
+
logPath,
|
|
336
|
+
release
|
|
337
|
+
};
|
|
295
338
|
} catch (err) {
|
|
296
339
|
release();
|
|
297
340
|
throw err;
|
|
@@ -302,12 +345,13 @@ async function buildRepositoryImage(opts, ports) {
|
|
|
302
345
|
const now = opts.now ?? (() => /* @__PURE__ */ new Date());
|
|
303
346
|
const scratchRoot = opts.tmpDir ?? tmpdir();
|
|
304
347
|
const prepared = await prepareImageBuild(opts);
|
|
305
|
-
const { repository, repoRecords, checkout, location, recipe, recipeKey: rKey, toolsKey: tKey,
|
|
348
|
+
const { repository, repoRecords, imageRepository, tagName, checkout, location, recipe, recipeKey: rKey, toolsKey: tKey, claudeCodeVersion, nodeImage, recordDir, logPath } = prepared;
|
|
349
|
+
const universal = location.kind === "default";
|
|
306
350
|
const runnerLabel = runnerLabelValue(opts.configPath);
|
|
307
|
-
const buildTag = `${TAG_HOST}/build/${
|
|
308
|
-
const recipeTag = `${TAG_HOST}/recipe/${
|
|
351
|
+
const buildTag = `${TAG_HOST}/build/${tagName}:${rKey.slice(0, KEY_PREFIX)}-${tKey.slice(0, KEY_PREFIX)}`;
|
|
352
|
+
const recipeTag = `${TAG_HOST}/recipe/${tagName}:${rKey.slice(0, KEY_PREFIX)}`;
|
|
309
353
|
try {
|
|
310
|
-
const existing = await host.list(
|
|
354
|
+
const existing = await host.list(imageRepository);
|
|
311
355
|
const labelled = existing.find((i) => i.labels[KIND2] === "recipe" && i.labels[RECIPE_KEY2] === rKey);
|
|
312
356
|
const recipeImageBefore = labelled !== void 0 && (await host.inspect(recipeTag))?.id === labelled.id ? labelled : void 0;
|
|
313
357
|
const buildImageBefore = existing.find(
|
|
@@ -325,46 +369,36 @@ async function buildRepositoryImage(opts, ports) {
|
|
|
325
369
|
const layoutKept = () => existsSync(join(keptLayout, "index.json"));
|
|
326
370
|
let recipeImage = recipeImageBefore;
|
|
327
371
|
let recipeBuilt = false;
|
|
328
|
-
if (recipeImage === void 0 && buildImageBefore === void 0) {
|
|
372
|
+
if (!universal && recipeImage === void 0 && buildImageBefore === void 0) {
|
|
329
373
|
await ensureBuilder();
|
|
330
374
|
mkdirSync(join(repoRecords, LAYOUTS_DIR), { recursive: true, mode: RUNNER_DIR_MODE });
|
|
331
|
-
const labels = { [REPOSITORY]:
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
} else {
|
|
341
|
-
const config = writeSanitizedRecipe(checkout.dir, location, recipe);
|
|
342
|
-
const scratchLayouts = mkdtempSync(join(scratchRoot, "ol-image-layout-"));
|
|
343
|
-
const scratchLayout = join(scratchLayouts, "layout");
|
|
375
|
+
const labels = { [REPOSITORY]: imageRepository, [KIND2]: "recipe", [RUNNER2]: runnerLabel, [RECIPE_KEY2]: rKey };
|
|
376
|
+
const config = writeSanitizedRecipe(checkout.dir, location, recipe);
|
|
377
|
+
const scratchLayouts = mkdtempSync(join(scratchRoot, "ol-image-layout-"));
|
|
378
|
+
const scratchLayout = join(scratchLayouts, "layout");
|
|
379
|
+
try {
|
|
380
|
+
const status = await host.devcontainerBuild({ workspace: checkout.dir, config, imageName: recipeTag, labels, logPath, layoutOut: scratchLayout });
|
|
381
|
+
if (status !== 0) throw failed("devcontainer build", status);
|
|
382
|
+
if (!existsSync(join(scratchLayout, "index.json"))) throw failed("devcontainer build, which left no image to label,", 0);
|
|
383
|
+
const context = mkdtempSync(join(scratchRoot, "ol-image-label-"));
|
|
344
384
|
try {
|
|
345
|
-
const
|
|
346
|
-
|
|
347
|
-
if (!existsSync(join(scratchLayout, "index.json"))) throw failed("devcontainer build, which left no image to label,", 0);
|
|
348
|
-
const context = mkdtempSync(join(scratchRoot, "ol-image-label-"));
|
|
349
|
-
try {
|
|
350
|
-
const relabel = await host.buildDockerfile({
|
|
351
|
-
dockerfile: `FROM ${recipeTag}
|
|
385
|
+
const relabel = await host.buildDockerfile({
|
|
386
|
+
dockerfile: `FROM ${recipeTag}
|
|
352
387
|
`,
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
} finally {
|
|
362
|
-
rmSync(context, { recursive: true, force: true });
|
|
363
|
-
}
|
|
388
|
+
context,
|
|
389
|
+
tag: recipeTag,
|
|
390
|
+
labels,
|
|
391
|
+
logPath,
|
|
392
|
+
base: { ref: recipeTag, layout: scratchLayout },
|
|
393
|
+
layoutOut: keptLayout
|
|
394
|
+
});
|
|
395
|
+
if (relabel !== 0) throw failed("labelling the recipe image", relabel);
|
|
364
396
|
} finally {
|
|
365
|
-
rmSync(
|
|
366
|
-
rmSync(scratchLayouts, { recursive: true, force: true });
|
|
397
|
+
rmSync(context, { recursive: true, force: true });
|
|
367
398
|
}
|
|
399
|
+
} finally {
|
|
400
|
+
rmSync(config, { force: true });
|
|
401
|
+
rmSync(scratchLayouts, { recursive: true, force: true });
|
|
368
402
|
}
|
|
369
403
|
recipeImage = await host.inspect(recipeTag) ?? void 0;
|
|
370
404
|
if (recipeImage === void 0) throw failed("finding the recipe image after devcontainer build", 0);
|
|
@@ -373,7 +407,7 @@ async function buildRepositoryImage(opts, ports) {
|
|
|
373
407
|
let buildImage = buildImageBefore;
|
|
374
408
|
if (buildImage === void 0) {
|
|
375
409
|
await ensureBuilder();
|
|
376
|
-
if (!layoutKept()) await host.exportLayout(recipeTag, keptLayout);
|
|
410
|
+
if (!universal && !layoutKept()) await host.exportLayout(recipeTag, keptLayout);
|
|
377
411
|
const context = mkdtempSync(join(scratchRoot, "ol-image-tools-"));
|
|
378
412
|
try {
|
|
379
413
|
cpSync(opts.cli.distDir, join(context, "dist"), { recursive: true });
|
|
@@ -383,9 +417,16 @@ async function buildRepositoryImage(opts, ports) {
|
|
|
383
417
|
mkdirSync(join(context, "guest"));
|
|
384
418
|
cpSync(opts.guestHelper.path, join(context, "guest", "outerlayer-guest"));
|
|
385
419
|
}
|
|
386
|
-
const dockerfile = toolsDockerfile({
|
|
387
|
-
|
|
388
|
-
|
|
420
|
+
const dockerfile = toolsDockerfile({
|
|
421
|
+
recipeImage: universal ? UNIVERSAL_IMAGE : recipeTag,
|
|
422
|
+
nodeImage,
|
|
423
|
+
claudeCodeVersion,
|
|
424
|
+
buildId: opts.cli.buildId,
|
|
425
|
+
guestHelper: opts.guestHelper !== void 0,
|
|
426
|
+
...universal ? { universal: true } : {}
|
|
427
|
+
});
|
|
428
|
+
const labels = { [REPOSITORY]: imageRepository, [KIND2]: "build", [RUNNER2]: runnerLabel, [RECIPE_KEY2]: rKey, [TOOLS_KEY]: tKey };
|
|
429
|
+
const status = await host.buildDockerfile({ dockerfile, context, tag: buildTag, labels, logPath, ...universal ? {} : { base: { ref: recipeTag, layout: keptLayout } } });
|
|
389
430
|
if (status !== 0) throw failed("the docker build of the tools layer", status);
|
|
390
431
|
} finally {
|
|
391
432
|
rmSync(context, { recursive: true, force: true });
|
|
@@ -401,6 +442,7 @@ async function buildRepositoryImage(opts, ports) {
|
|
|
401
442
|
sourceCommit: checkout.commit,
|
|
402
443
|
defaultBranch: checkout.defaultBranch,
|
|
403
444
|
recipe: location.kind === "default" ? "default" : location.path,
|
|
445
|
+
...universal ? { base: { reference: `${UNIVERSAL_IMAGE_REPOSITORY}:${UNIVERSAL_IMAGE_SOURCE}`, digest: UNIVERSAL_IMAGE_DIGEST } } : {},
|
|
404
446
|
recipeKey: rKey,
|
|
405
447
|
toolsKey: tKey,
|
|
406
448
|
imageId: buildImage.id,
|
|
@@ -409,9 +451,12 @@ async function buildRepositoryImage(opts, ports) {
|
|
|
409
451
|
...classifyProperties(recipe, metadataOf(recipeImage ?? buildImage))
|
|
410
452
|
};
|
|
411
453
|
writeRecord(recordDir, report, now().toISOString());
|
|
454
|
+
} else if (universal) {
|
|
455
|
+
report = { ...report, repository, sourceCommit: checkout.commit, defaultBranch: checkout.defaultBranch };
|
|
412
456
|
}
|
|
413
457
|
const removed = [];
|
|
414
|
-
if (toolsBuilt) removed.push(...await prune(host,
|
|
458
|
+
if (toolsBuilt) removed.push(...await prune(host, imageRepository, repoRecords, opts.keep ?? KEEP_BUILD_IMAGES, runnerDir(opts.configPath), runnerLabel));
|
|
459
|
+
if (universal) removed.push(...await prune(host, repository, join(imagesDir(opts.configPath), prepared.owner, prepared.name), 0, runnerDir(opts.configPath), runnerLabel));
|
|
415
460
|
return {
|
|
416
461
|
reused: !recipeBuilt && !toolsBuilt,
|
|
417
462
|
recipeBuilt,
|
|
@@ -448,4 +493,4 @@ async function prune(host, repository, repoRecords, keep, runnerDirPath, runnerL
|
|
|
448
493
|
return removed;
|
|
449
494
|
}
|
|
450
495
|
|
|
451
|
-
export { KEY_PREFIX, TAG_HOST, buildRepositoryImage, cloneRepository, diffBetween, fetchCommit, metadataFromLabels, prepareImageBuild, readBranchHead, readDefaultBranchHead, writeRecord };
|
|
496
|
+
export { KEY_PREFIX, SHARED_NAME, SHARED_OWNER, SHARED_REPOSITORY, TAG_HOST, baseLines, buildRepositoryImage, cloneRepository, diffBetween, fetchCommit, metadataFromLabels, prepareImageBuild, readBranchHead, readDefaultBranchHead, writeRecord };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { readCloudConfigStrict, readCloudConfig, cloudConfigPath } from './chunk-PJDQPF5N.js';
|
|
4
|
-
import { signRunnerRequest, signerFor } from './chunk-
|
|
4
|
+
import { signRunnerRequest, signerFor } from './chunk-RJZZFAXS.js';
|
|
5
5
|
import { readRepoConnection, findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
6
6
|
import { PLAIN_VERSION, recordCliVersion, removeRecordedVersion } from './chunk-5BHIBJDA.js';
|
|
7
7
|
import { resolvePackageVersion } from './chunk-RA3O54FC.js';
|