@outerlayer/cli 0.34.0-next.20261025133402 → 0.34.0-next.20261025180645
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-UXUWLV7O.js → agent-setup-FNDKCPUP.js} +8 -9
- package/dist/{bridge-OWCSVCXL.js → bridge-YJBB4YA3.js} +2 -3
- package/dist/build-B4OKU4MV.js +16 -0
- package/dist/{build-disk-5ZQHYBO3.js → build-disk-ZL46AEN3.js} +6 -8
- package/dist/build-info.json +1 -1
- package/dist/{builder-54GLXGFV.js → builder-XFPWE74N.js} +5 -7
- package/dist/{check-4TQZZOIQ.js → check-QULEN437.js} +43 -43
- package/dist/{chunk-CXQCBAKO.js → chunk-25GRRBTH.js} +1 -1
- package/dist/{chunk-4XYC2663.js → chunk-2D6CKNR7.js} +8 -4
- package/dist/{chunk-IHY457PB.js → chunk-2ILU7UAU.js} +1 -1
- package/dist/{chunk-JEOPIRUR.js → chunk-3EJBI5JW.js} +3 -3
- package/dist/{chunk-TVGLNHEB.js → chunk-3N77LUQI.js} +1 -1
- package/dist/{chunk-ES4ULBAL.js → chunk-4UPET3R7.js} +7 -3
- package/dist/{chunk-MPDLZCXM.js → chunk-5AFPP3GZ.js} +238 -14
- package/dist/{chunk-HAEDLXHA.js → chunk-63IVRRIO.js} +3 -3
- package/dist/{chunk-BTG5NZHN.js → chunk-6OLVVAOK.js} +4 -4
- package/dist/{chunk-3M6UYJSR.js → chunk-AVPLEFQR.js} +3 -3
- package/dist/{chunk-TVOZOOIW.js → chunk-BHSSGVOY.js} +3 -3
- package/dist/{chunk-QOUR4CQ7.js → chunk-CAQCDYKF.js} +2 -2
- package/dist/{chunk-SMMNU65K.js → chunk-DNZYXEMY.js} +13 -12
- package/dist/{chunk-LMICI7AY.js → chunk-EGVHFHY4.js} +3 -3
- package/dist/{chunk-RNVBSRZZ.js → chunk-FD5ASWTG.js} +18 -19
- package/dist/{chunk-NW5PDZYA.js → chunk-FDJPDZSR.js} +1 -1
- package/dist/{chunk-XA6PGME5.js → chunk-FVCHHSHB.js} +3 -3
- package/dist/{chunk-YOBQIXX6.js → chunk-G4W4B33M.js} +182 -3
- package/dist/{chunk-CCISO7EQ.js → chunk-HHFZXOBC.js} +12 -14
- package/dist/{chunk-AABYHGVO.js → chunk-INOUUSYI.js} +29 -9
- package/dist/{chunk-KDLQGTN6.js → chunk-JBCOUY4M.js} +2 -2
- package/dist/{chunk-POGPX7LI.js → chunk-JQSZTQSK.js} +24 -30
- package/dist/{chunk-JZD2NTRH.js → chunk-K2UAQWYO.js} +3 -3
- package/dist/{chunk-UC2DKBMS.js → chunk-KM2HLQE3.js} +2 -2
- package/dist/{chunk-T7N3BAOO.js → chunk-LUHIN4UZ.js} +3 -3
- package/dist/{chunk-XLJLR7EK.js → chunk-MOI2KDLH.js} +1 -1
- package/dist/{chunk-BUF6DSSM.js → chunk-NW26E4YU.js} +3 -3
- package/dist/{chunk-ZV2JJPDS.js → chunk-O4Z2MNNL.js} +6 -6
- package/dist/{chunk-2RBIW2PD.js → chunk-OGPEHSNW.js} +1 -1
- package/dist/{chunk-EZ7L5IZU.js → chunk-OQLF3MQQ.js} +3 -4
- package/dist/{chunk-J246WRLZ.js → chunk-OS7DJOQJ.js} +1 -1
- package/dist/{chunk-O5G6VQGZ.js → chunk-PFHTT4PP.js} +5 -5
- package/dist/{chunk-N7LAEN3T.js → chunk-PXGU3GKY.js} +1 -1
- package/dist/{chunk-WIK5KUGK.js → chunk-QANM5COC.js} +6 -6
- package/dist/{chunk-PSXVAOEB.js → chunk-QQP3S5FU.js} +3 -3
- package/dist/{chunk-AVLLJW5D.js → chunk-RFVIQLNB.js} +5 -5
- package/dist/{chunk-Z76GVJGQ.js → chunk-RHV5SRI2.js} +3 -3
- package/dist/{chunk-75KZUBHD.js → chunk-SI6WDF3U.js} +1 -1
- package/dist/chunk-SUOZYOWO.js +51 -0
- package/dist/{chunk-36T6W5RA.js → chunk-SYVRBBLW.js} +1 -1
- package/dist/{chunk-E34FRRSW.js → chunk-TBKV4L2W.js} +4 -4
- package/dist/{chunk-56ZHWIR2.js → chunk-TFPNPS4Q.js} +1 -1
- package/dist/{chunk-DUPM5LVJ.js → chunk-UMYYYF7B.js} +1 -1
- package/dist/{chunk-IW6Z337K.js → chunk-UN3SQTVL.js} +7 -7
- package/dist/{chunk-3NFZN7H6.js → chunk-UO4FQAOX.js} +16 -12
- package/dist/{chunk-ZWLEUSJW.js → chunk-VJ34F55N.js} +55 -39
- package/dist/{chunk-3RAAYBSG.js → chunk-YHKU2NOZ.js} +1 -1
- package/dist/{chunk-ENFBYN4A.js → chunk-YNMVVQOQ.js} +1 -1
- package/dist/{claude-launcher-JEB5BN7Q.js → claude-launcher-OQZNW7XJ.js} +1 -1
- package/dist/{cli-DY3EGPUB.js → cli-G3P2B2XE.js} +123 -117
- package/dist/{command-ZAXYAZCI.js → command-4XOXVWFW.js} +169 -48
- package/dist/{config-UN3X6AP2.js → config-QASNKYM6.js} +7 -9
- package/dist/{connect-cmd-TWM4FEKD.js → connect-cmd-MEDWMW3L.js} +8 -9
- package/dist/{container-start-JUNBJ7MU.js → container-start-2DHCWV73.js} +34 -36
- package/dist/{context-show-cmd-K5LRMDEO.js → context-show-cmd-VSFCG663.js} +9 -10
- package/dist/{control-plane-launch-LHOV2FPA.js → control-plane-launch-XBGHM7DB.js} +5 -6
- package/dist/{docker-YZKRM7IP.js → docker-TAC6G4VU.js} +5 -7
- package/dist/{doctor-YOAF7QPL.js → doctor-LK6E3XOW.js} +66 -41
- package/dist/{emit-artifact-cmd-SCF2FKKS.js → emit-artifact-cmd-L4REOPWX.js} +13 -14
- package/dist/{emit-cmd-7NMNKDK7.js → emit-cmd-7TU3JBJ2.js} +2 -2
- package/dist/{emit-criteria-cmd-B6CKUWTW.js → emit-criteria-cmd-QVFOQARC.js} +10 -11
- package/dist/{emit-demo-cmd-BNWRETMJ.js → emit-demo-cmd-L4B6OOTV.js} +15 -16
- package/dist/{emit-finding-cmd-TPSHNZNE.js → emit-finding-cmd-YXFCIWMU.js} +10 -11
- package/dist/{emit-result-cmd-J5DXIC2Q.js → emit-result-cmd-NI4LCTUM.js} +12 -13
- package/dist/{emit-step-cmd-NPH46KAO.js → emit-step-cmd-HWAUCZZB.js} +10 -11
- package/dist/{exec-client-ANW4KGMN.js → exec-client-QB4OZRGM.js} +3 -4
- package/dist/find-unit-4UR647S4.js +18 -0
- package/dist/{findings-cmd-4FJDCFL3.js → findings-cmd-O2IBO25E.js} +10 -11
- package/dist/{fleet-readiness-OK6534T6.js → fleet-readiness-NJYTQYTA.js} +5 -6
- package/dist/{governing-source-GNKTNM32.js → governing-source-JCI7VDQ6.js} +12 -13
- package/dist/{guest-init-C6M7YT3U.js → guest-init-IF5LXGUL.js} +4 -5
- package/dist/{hook-fast-LVTJWAG3.js → hook-fast-GPUL7T77.js} +1 -1
- package/dist/host-key-5RU322O3.js +9 -0
- package/dist/{image-tag-53DJPMSZ.js → image-tag-SEMBVB5D.js} +3 -4
- package/dist/index.js +4 -4
- package/dist/{init-RAJKTSPJ.js → init-2CEULE3F.js} +25 -27
- package/dist/{init-JGYMAOD5.js → init-FAIF7KOK.js} +25 -27
- package/dist/{init-cmd-IB3KTYCV.js → init-cmd-HZUUMO45.js} +13 -14
- package/dist/{init-update-VPWSWDY7.js → init-update-TTMFFNMB.js} +12 -13
- package/dist/{install-cmd-NP7GULCD.js → install-cmd-TWGRGEVL.js} +5 -6
- package/dist/{logs-V6AES5FE.js → logs-6CMB3DO6.js} +2 -3
- package/dist/{loop-ZGDZMVFN.js → loop-7U7MVICV.js} +40 -42
- package/dist/{machine-LJ3VMGS3.js → machine-S3JHOX4V.js} +25 -27
- package/dist/{mcp-serve-cmd-DHGCAMJS.js → mcp-serve-cmd-MWGIN6YL.js} +4 -5
- package/dist/{paths-DMKAJVA5.js → paths-T2DEBI62.js} +2 -3
- package/dist/pending-ERXWVLLG.js +9 -0
- package/dist/{pidfile-XCTXBGA3.js → pidfile-EAD2OEM7.js} +3 -4
- package/dist/{record-RQLGRYWG.js → record-IMXQNHPB.js} +3 -4
- package/dist/{runner-env-AUG2OIP4.js → runner-env-BJPUHAKZ.js} +9 -11
- package/dist/{runner-identity-BQA4SBU6.js → runner-identity-ZCPPC2BJ.js} +5 -7
- package/dist/{runner-key-ZIF7M7YN.js → runner-key-CYSUYKSX.js} +25 -27
- package/dist/{session-sender-VQ4LHJ5K.js → session-sender-5T7BXPKC.js} +13 -14
- package/dist/{spec-cmd-PXM4FJ2O.js → spec-cmd-4ABYAFNZ.js} +11 -12
- package/dist/{status-27EFD2WE.js → status-2AP7J2L7.js} +32 -34
- package/dist/{sync-cmd-VAV7TR2A.js → sync-cmd-34CGNA6T.js} +12 -13
- package/dist/{update-steps-7YLAFW3E.js → update-steps-JQOCCDWO.js} +33 -35
- package/dist/{watch-42XJSTTB.js → watch-6HU7LCUY.js} +12 -13
- package/dist/{work-claim-cmd-HSG4OHFI.js → work-claim-cmd-5QKLHSCR.js} +16 -18
- package/dist/{work-cmd-KCBU3RSD.js → work-cmd-3MKUIE2C.js} +10 -11
- package/dist/{work-comment-cmd-QIP2OUJC.js → work-comment-cmd-ESC3DSHI.js} +11 -12
- package/dist/{work-demo-cmd-6IKAG6ES.js → work-demo-cmd-7S23DGYO.js} +10 -11
- package/dist/{work-logs-cmd-RMKJA4AI.js → work-logs-cmd-46UPNN7Q.js} +10 -11
- package/dist/{work-open-pr-cmd-IAVLUUWW.js → work-open-pr-cmd-JNGTGLIP.js} +11 -12
- package/dist/{work-pr-cmd-3U7SVQII.js → work-pr-cmd-2J2LKETD.js} +10 -11
- package/dist/{work-proofs-cmd-6ZY6ZNNE.js → work-proofs-cmd-HRWTHYSS.js} +11 -12
- package/dist/{work-proofs-record-54GBEUJP.js → work-proofs-record-6OKAT3IC.js} +18 -19
- package/dist/{work-stop-cmd-LH5XY4YL.js → work-stop-cmd-Y22XIVQ6.js} +10 -11
- package/package.json +1 -1
- package/dist/build-4HFDZTUX.js +0 -14
- package/dist/chunk-3Z3MPR55.js +0 -226
- package/dist/chunk-HACGUL52.js +0 -183
- package/dist/host-key-DUGGHAGR.js +0 -10
- package/dist/inspect-DNLXTXLA.js +0 -6
- package/dist/install-QJWJFIWB.js +0 -19
- package/dist/pending-B55JZFOV.js +0 -10
- package/dist/{chunk-2AIOOU3A.js → chunk-KPHRRCUY.js} +1 -1
|
@@ -1,50 +1,47 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { runRunnerInstall, launcherSummary, restartNote } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import { currentLink, execStartCommand } from './chunk-
|
|
6
|
-
import { detectMachine, helperSocketPath, ensureFirecrackerAndJailer } from './chunk-
|
|
3
|
+
import { runRunnerInstall, launcherSummary, restartNote } from './chunk-LUHIN4UZ.js';
|
|
4
|
+
import './chunk-OS7DJOQJ.js';
|
|
5
|
+
import { currentLink, execStartCommand } from './chunk-UMYYYF7B.js';
|
|
6
|
+
import { detectMachine, helperSocketPath, ensureFirecrackerAndJailer } from './chunk-JQSZTQSK.js';
|
|
7
7
|
import './chunk-2PGI6RDE.js';
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-3NFZN7H6.js';
|
|
10
|
-
import './chunk-ENFBYN4A.js';
|
|
11
|
-
import './chunk-JBJTC3UU.js';
|
|
8
|
+
import './chunk-UO4FQAOX.js';
|
|
12
9
|
import './chunk-OGFGZQA3.js';
|
|
13
|
-
import './chunk-
|
|
14
|
-
import './chunk-
|
|
15
|
-
import './chunk-
|
|
16
|
-
import './chunk-
|
|
10
|
+
import './chunk-2ILU7UAU.js';
|
|
11
|
+
import './chunk-OGPEHSNW.js';
|
|
12
|
+
import './chunk-RFVIQLNB.js';
|
|
13
|
+
import './chunk-SYVRBBLW.js';
|
|
17
14
|
import './chunk-TQMI335S.js';
|
|
18
|
-
import
|
|
19
|
-
import {
|
|
20
|
-
import './chunk-
|
|
21
|
-
import
|
|
22
|
-
import './chunk-
|
|
23
|
-
import { firecrackerArch, MICROVM_ARCHES, FIRECRACKER_VERSION, FIRECRACKER_BINARY_SHA256, JAILER_BINARY_SHA256, HOST_HELPER_SHA256, HOST_HELPER_BASE_URL,
|
|
15
|
+
import './chunk-OQLF3MQQ.js';
|
|
16
|
+
import { unitNameProblem, DEFAULT_UNIT_NAME, checkFit, installService, uninstallService, realTaskScheduler, UNIT_MARKER } from './chunk-INOUUSYI.js';
|
|
17
|
+
import { runnerVmOf, loadRunnerConfig, builtinKind } from './chunk-2D6CKNR7.js';
|
|
18
|
+
import './chunk-KM2HLQE3.js';
|
|
19
|
+
import { parseSize, readJobFile } from './chunk-5AFPP3GZ.js';
|
|
20
|
+
import { HOST_HELPER_ASSETS_VERSION, builderDiskPinned, hostHelperSupportsSlice, HOST_HELPER_SLICE_SINCE, firecrackerArch, MICROVM_ARCHES, FIRECRACKER_VERSION, FIRECRACKER_BINARY_SHA256, JAILER_BINARY_SHA256, HOST_HELPER_SHA256, HOST_HELPER_BASE_URL, hostHelperPinned } from './chunk-4UPET3R7.js';
|
|
24
21
|
import { realLima } from './chunk-77MM5RYD.js';
|
|
25
22
|
import { writeLaunchAgent, launchAgentPath } from './chunk-LF6MLJCY.js';
|
|
26
|
-
import './chunk-
|
|
23
|
+
import './chunk-YNMVVQOQ.js';
|
|
24
|
+
import './chunk-JBJTC3UU.js';
|
|
25
|
+
import './chunk-UN3SQTVL.js';
|
|
27
26
|
import './chunk-IP7BIBXJ.js';
|
|
28
|
-
import './chunk-
|
|
29
|
-
import './chunk-
|
|
30
|
-
import './chunk-MECW77XP.js';
|
|
31
|
-
import './chunk-AJYZNISW.js';
|
|
32
|
-
import './chunk-NKOM4JKY.js';
|
|
27
|
+
import './chunk-AVPLEFQR.js';
|
|
28
|
+
import './chunk-FVCHHSHB.js';
|
|
33
29
|
import './chunk-Y5YCX6AL.js';
|
|
34
30
|
import './chunk-G2JWZDFA.js';
|
|
35
31
|
import './chunk-ANPNT6PM.js';
|
|
36
|
-
import './chunk-
|
|
32
|
+
import './chunk-MECW77XP.js';
|
|
33
|
+
import './chunk-NKOM4JKY.js';
|
|
34
|
+
import './chunk-CAQCDYKF.js';
|
|
37
35
|
import './chunk-JWNH4ZTF.js';
|
|
38
|
-
import './chunk-
|
|
36
|
+
import './chunk-3N77LUQI.js';
|
|
39
37
|
import './chunk-PJDQPF5N.js';
|
|
40
|
-
import './chunk-
|
|
41
|
-
import { runnerDir } from './chunk-N7LAEN3T.js';
|
|
42
|
-
import './chunk-YOBQIXX6.js';
|
|
38
|
+
import './chunk-MOI2KDLH.js';
|
|
43
39
|
import './chunk-ZJSNLVCE.js';
|
|
44
40
|
import './chunk-FGF52V4V.js';
|
|
45
41
|
import './chunk-HCVLP7XA.js';
|
|
46
42
|
import './chunk-BJ3KTMDH.js';
|
|
47
43
|
import './chunk-ZQSANKS4.js';
|
|
44
|
+
import './chunk-AJYZNISW.js';
|
|
48
45
|
import './chunk-5BHIBJDA.js';
|
|
49
46
|
import './chunk-CDDED64E.js';
|
|
50
47
|
import './chunk-RA3O54FC.js';
|
|
@@ -54,7 +51,8 @@ import './chunk-YQR6E6OV.js';
|
|
|
54
51
|
import './chunk-FGXT5OXS.js';
|
|
55
52
|
import './chunk-EOTMDIYC.js';
|
|
56
53
|
import './chunk-VNVZDWO3.js';
|
|
57
|
-
import './chunk-
|
|
54
|
+
import { runnerDir } from './chunk-PXGU3GKY.js';
|
|
55
|
+
import './chunk-G4W4B33M.js';
|
|
58
56
|
import './chunk-MESOOLF4.js';
|
|
59
57
|
import './chunk-Z5GEFMRW.js';
|
|
60
58
|
import { userInfo, totalmem, tmpdir } from 'os';
|
|
@@ -69,6 +67,7 @@ var ETC = "/etc/outerlayer";
|
|
|
69
67
|
var UID_BASE = 2e9;
|
|
70
68
|
var UID_COUNT = 256;
|
|
71
69
|
var UID_ATTEMPTS = 8;
|
|
70
|
+
var UID_STEP = 65536;
|
|
72
71
|
function helperUnitFor(unitName) {
|
|
73
72
|
return `${unitName}-helper`;
|
|
74
73
|
}
|
|
@@ -84,6 +83,23 @@ function helperConfigPathFor(unitName) {
|
|
|
84
83
|
function helperUnitPathFor(unitName) {
|
|
85
84
|
return `/etc/systemd/system/${helperUnitFor(unitName)}.service`;
|
|
86
85
|
}
|
|
86
|
+
function sliceFor(unitName) {
|
|
87
|
+
return `${unitName}-builds.slice`;
|
|
88
|
+
}
|
|
89
|
+
function slicePathFor(unitName) {
|
|
90
|
+
return `/etc/systemd/system/${sliceFor(unitName)}`;
|
|
91
|
+
}
|
|
92
|
+
function sliceUnitText(unitName, limits) {
|
|
93
|
+
return `${UNIT_MARKER}
|
|
94
|
+
[Unit]
|
|
95
|
+
Description=OuterLayer builds of ${unitName}
|
|
96
|
+
|
|
97
|
+
[Slice]
|
|
98
|
+
${limits.memoryMaxBytes === void 0 ? "" : `MemoryMax=${limits.memoryMaxBytes}
|
|
99
|
+
MemorySwapMax=0
|
|
100
|
+
`}${limits.cpus === void 0 ? "" : `CPUQuota=${Math.round(limits.cpus * 100)}%
|
|
101
|
+
`}`;
|
|
102
|
+
}
|
|
87
103
|
function sha256Of(bytes) {
|
|
88
104
|
return createHash("sha256").update(bytes).digest("hex");
|
|
89
105
|
}
|
|
@@ -119,6 +135,7 @@ function helperConfigText(input) {
|
|
|
119
135
|
socket: helperSocketFor(input.unitName),
|
|
120
136
|
uidBase: input.uidBase,
|
|
121
137
|
uidCount: UID_COUNT,
|
|
138
|
+
...input.slice ? { slice: sliceFor(input.unitName) } : {},
|
|
122
139
|
jailer: { path: `${dir}/jailer`, sha256: input.pins.jailer },
|
|
123
140
|
firecracker: { path: `${dir}/firecracker`, sha256: input.pins.firecracker },
|
|
124
141
|
firecrackerVersion: input.pins.firecrackerVersion
|
|
@@ -153,9 +170,28 @@ async function installHelper(request, deps) {
|
|
|
153
170
|
`no directory that only root can write, below only such directories, is on the same file system as ${buildsRoot}, so the root helper was not installed: it links each build's files into its jail, and a link cannot cross file systems. ${without}`
|
|
154
171
|
]);
|
|
155
172
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
173
|
+
const others = helper.helperRanges().filter((range) => range.helper !== unit);
|
|
174
|
+
const own = helper.helperRanges().find((range) => range.helper === unit);
|
|
175
|
+
const takerOf = (base) => {
|
|
176
|
+
const account = helper.uidRangeTaker(base, UID_COUNT);
|
|
177
|
+
if (account !== void 0) return account;
|
|
178
|
+
const rival = others.find((range) => base < range.uidBase + range.uidCount && range.uidBase < base + UID_COUNT);
|
|
179
|
+
return rival === void 0 ? void 0 : `the root helper ${rival.helper}`;
|
|
180
|
+
};
|
|
181
|
+
const tried = [];
|
|
182
|
+
let uidBase;
|
|
183
|
+
const candidates = own === void 0 ? Array.from({ length: UID_ATTEMPTS + 1 }, (_, i) => UID_BASE + i * UID_STEP) : [own.uidBase, ...Array.from({ length: UID_ATTEMPTS + 1 }, (_, i) => UID_BASE + i * UID_STEP)];
|
|
184
|
+
for (const base of candidates) {
|
|
185
|
+
const taker = takerOf(base);
|
|
186
|
+
if (taker === void 0) {
|
|
187
|
+
uidBase = base;
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
tried.push(`${base} to ${base + UID_COUNT - 1} is used by ${taker}`);
|
|
191
|
+
}
|
|
192
|
+
if (uidBase === void 0) {
|
|
193
|
+
return notInstalled(false, [`every range of ${UID_COUNT} user ids that was tried is taken (${tried.join("; ")}), so the root helper was not installed`]);
|
|
194
|
+
}
|
|
159
195
|
let assets;
|
|
160
196
|
let helperBytes;
|
|
161
197
|
try {
|
|
@@ -167,7 +203,7 @@ async function installHelper(request, deps) {
|
|
|
167
203
|
if (sha256Of(helperBytes) !== helper.pins.helper) {
|
|
168
204
|
return notInstalled(false, [`the root helper that was downloaded has sha256 ${sha256Of(helperBytes)}, not the ${helper.pins.helper} this release pins, so it was not installed`]);
|
|
169
205
|
}
|
|
170
|
-
const config = helperConfigText({ unitName: request.unitName, uid: identity.uid, gid: identity.gid, buildsRoot, jailBase, uidBase, pins: helper.pins });
|
|
206
|
+
const config = helperConfigText({ unitName: request.unitName, uid: identity.uid, gid: identity.gid, buildsRoot, jailBase, uidBase, slice: request.slice !== void 0, pins: helper.pins });
|
|
171
207
|
const unitPath = helperUnitPathFor(request.unitName);
|
|
172
208
|
const existed = deps.systemd.read(unitPath) !== void 0;
|
|
173
209
|
const staged = helper.stage({ "outerlayer-host-helper": helperBytes, "helper.json": config });
|
|
@@ -193,6 +229,9 @@ async function installHelper(request, deps) {
|
|
|
193
229
|
}
|
|
194
230
|
removeFiles();
|
|
195
231
|
};
|
|
232
|
+
const removeNewSlice = () => {
|
|
233
|
+
if (deps.systemd.read(slicePathFor(request.unitName)) !== void 0) deps.systemd.remove(slicePathFor(request.unitName));
|
|
234
|
+
};
|
|
196
235
|
try {
|
|
197
236
|
const copies = [
|
|
198
237
|
{ from: join(staged.dir, "outerlayer-host-helper"), to: `${dir}/outerlayer-host-helper`, pin: helper.pins.helper, what: "helper" },
|
|
@@ -224,15 +263,29 @@ async function installHelper(request, deps) {
|
|
|
224
263
|
} finally {
|
|
225
264
|
staged.remove();
|
|
226
265
|
}
|
|
227
|
-
|
|
266
|
+
const slicePath = slicePathFor(request.unitName);
|
|
228
267
|
try {
|
|
268
|
+
if (request.slice !== void 0) {
|
|
269
|
+
say(`sudo tee ${slicePath}`);
|
|
270
|
+
deps.systemd.write(slicePath, sliceUnitText(request.unitName, request.slice));
|
|
271
|
+
} else if (deps.systemd.read(slicePath)?.startsWith(UNIT_MARKER) === true) {
|
|
272
|
+
say(`sudo rm ${slicePath}`);
|
|
273
|
+
deps.systemd.remove(slicePath);
|
|
274
|
+
}
|
|
275
|
+
say(`sudo tee ${unitPath}`);
|
|
229
276
|
deps.systemd.write(unitPath, helperUnitText(request.unitName));
|
|
230
277
|
} catch (err) {
|
|
231
|
-
if (!existed)
|
|
278
|
+
if (!existed) {
|
|
279
|
+
removeFiles();
|
|
280
|
+
removeNewSlice();
|
|
281
|
+
}
|
|
232
282
|
return notInstalled(false, [...lines, err instanceof Error ? err.message : String(err)]);
|
|
233
283
|
}
|
|
234
284
|
if (!systemctl(["daemon-reload"]) || !systemctl(["enable", "--now", unit]) || existed && !systemctl(["restart", unit])) {
|
|
235
|
-
if (!existed)
|
|
285
|
+
if (!existed) {
|
|
286
|
+
discard();
|
|
287
|
+
removeNewSlice();
|
|
288
|
+
}
|
|
236
289
|
lines.push(`the unit ${unit} did not start, so the root helper is not running: ${without}`);
|
|
237
290
|
return notInstalled(false, lines);
|
|
238
291
|
}
|
|
@@ -272,6 +325,12 @@ function uninstallHelper(request, deps) {
|
|
|
272
325
|
}
|
|
273
326
|
root(["rm", "-rf", dir]);
|
|
274
327
|
root(["rm", "-f", configFile]);
|
|
328
|
+
const slicePath = slicePathFor(request.unitName);
|
|
329
|
+
if (deps.systemd.read(slicePath)?.startsWith(UNIT_MARKER) === true) {
|
|
330
|
+
say(`sudo rm ${slicePath}`);
|
|
331
|
+
deps.systemd.remove(slicePath);
|
|
332
|
+
systemctl(["daemon-reload"]);
|
|
333
|
+
}
|
|
275
334
|
if (jailBase !== void 0) root(["rmdir", `${jailBase}/firecracker`, jailBase]);
|
|
276
335
|
lines.push(`removed the root helper ${unit}`);
|
|
277
336
|
return { ok: true, installed: false, lines };
|
|
@@ -387,23 +446,44 @@ function findJailBase(buildsDir, unitName) {
|
|
|
387
446
|
function overlaps(start, length, base, count) {
|
|
388
447
|
return length > 0 && start < base + count && start + length > base;
|
|
389
448
|
}
|
|
390
|
-
function
|
|
449
|
+
function idRangeTaker(base, count) {
|
|
391
450
|
for (const file of ["/etc/passwd", "/etc/group"]) {
|
|
392
451
|
const text = readText(file);
|
|
393
|
-
if (text === void 0) return
|
|
452
|
+
if (text === void 0) return `${file}, which could not be read`;
|
|
394
453
|
for (const line of text.split("\n")) {
|
|
395
454
|
const fields = line.split(":");
|
|
396
|
-
if (overlaps(Number(fields[2]), 1, base, count)) return
|
|
397
|
-
if (file === "/etc/passwd" && overlaps(Number(fields[3]), 1, base, count)) return
|
|
455
|
+
if (overlaps(Number(fields[2]), 1, base, count)) return `${file === "/etc/passwd" ? "the account" : "the group"} ${fields[0]}`;
|
|
456
|
+
if (file === "/etc/passwd" && overlaps(Number(fields[3]), 1, base, count)) return `the primary group of the account ${fields[0]}`;
|
|
398
457
|
}
|
|
399
458
|
}
|
|
400
459
|
for (const file of ["/etc/subuid", "/etc/subgid"]) {
|
|
401
460
|
for (const line of (readText(file) ?? "").split("\n")) {
|
|
402
461
|
const fields = line.split(":");
|
|
403
|
-
if (overlaps(Number(fields[1]), Number(fields[2]), base, count)) return
|
|
462
|
+
if (overlaps(Number(fields[1]), Number(fields[2]), base, count)) return `the grant to ${fields[0]} in ${file}`;
|
|
404
463
|
}
|
|
405
464
|
}
|
|
406
|
-
return
|
|
465
|
+
return void 0;
|
|
466
|
+
}
|
|
467
|
+
var HELPER_CONFIG_DIR = "/etc/outerlayer";
|
|
468
|
+
function readHelperRanges(dir = HELPER_CONFIG_DIR) {
|
|
469
|
+
let names;
|
|
470
|
+
try {
|
|
471
|
+
names = readdirSync(dir);
|
|
472
|
+
} catch {
|
|
473
|
+
return [];
|
|
474
|
+
}
|
|
475
|
+
const ranges = [];
|
|
476
|
+
for (const name of names) {
|
|
477
|
+
if (!name.endsWith("-helper.json")) continue;
|
|
478
|
+
const text = readText(join(dir, name));
|
|
479
|
+
if (text === void 0) continue;
|
|
480
|
+
try {
|
|
481
|
+
const config = JSON.parse(text);
|
|
482
|
+
if (typeof config.uidBase === "number" && typeof config.uidCount === "number") ranges.push({ helper: name.slice(0, -".json".length), uidBase: config.uidBase, uidCount: config.uidCount });
|
|
483
|
+
} catch {
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
return ranges;
|
|
407
487
|
}
|
|
408
488
|
function idOf(flag, account) {
|
|
409
489
|
const result = spawnSync("id", [flag, account], { encoding: "utf8" });
|
|
@@ -444,7 +524,8 @@ function realHelperDeps() {
|
|
|
444
524
|
return uid === void 0 || gid === void 0 || uid < 0 || gid < 0 ? void 0 : { uid, gid };
|
|
445
525
|
},
|
|
446
526
|
jailBase: findJailBase,
|
|
447
|
-
|
|
527
|
+
uidRangeTaker: idRangeTaker,
|
|
528
|
+
helperRanges: () => readHelperRanges(),
|
|
448
529
|
stage: (files) => {
|
|
449
530
|
const dir = mkdtempSync(join(tmpdir(), "outerlayer-helper-"));
|
|
450
531
|
for (const [name, content] of Object.entries(files)) writeFileSync(join(dir, name), content, { mode: 493 });
|
|
@@ -479,9 +560,35 @@ function accountCannotStart(account, nodePath, entry, can) {
|
|
|
479
560
|
return void 0;
|
|
480
561
|
}
|
|
481
562
|
function vmArgs(input) {
|
|
482
|
-
return [
|
|
563
|
+
return [
|
|
564
|
+
...input.buildMemoryMax === void 0 ? [] : ["--build-memory-max", input.buildMemoryMax],
|
|
565
|
+
...input.buildCpusMax === void 0 ? [] : ["--build-cpus-max", String(input.buildCpusMax)],
|
|
566
|
+
...input.print === true ? ["--print"] : [],
|
|
567
|
+
...input.replace === true ? ["--replace"] : [],
|
|
568
|
+
...input.allowDowngrade === true ? ["--allow-downgrade"] : [],
|
|
569
|
+
...input.user === void 0 ? [] : ["--user", input.user],
|
|
570
|
+
...input.unitName === void 0 ? [] : ["--unit-name", input.unitName]
|
|
571
|
+
];
|
|
572
|
+
}
|
|
573
|
+
var MAX_BUILD_CPUS = 1024;
|
|
574
|
+
function cpusAreValid(cpus) {
|
|
575
|
+
return Number.isFinite(cpus) && Math.round(cpus * 100) >= 1 && cpus <= MAX_BUILD_CPUS;
|
|
576
|
+
}
|
|
577
|
+
function sliceOf(input, usesVm, helperVersion) {
|
|
578
|
+
if (input.buildMemoryMax === void 0 && input.buildCpusMax === void 0) return {};
|
|
579
|
+
if (!usesVm) return { refusal: "\u2717 --build-memory-max and --build-cpus-max limit microVM builds, and this runner's hooks are not builtin:vm. Nothing is set up" };
|
|
580
|
+
if (!hostHelperSupportsSlice(helperVersion)) {
|
|
581
|
+
return { refusal: `\u2717 the root helper this release pins (guest-${helperVersion}) cannot start builds in a slice, so the limits would not apply. Nothing is set up: update the CLI to a release that pins guest-${HOST_HELPER_SLICE_SINCE} or later, or install without --build-memory-max and --build-cpus-max` };
|
|
582
|
+
}
|
|
583
|
+
const parsedBytes = input.buildMemoryMax === void 0 ? void 0 : parseSize(input.buildMemoryMax);
|
|
584
|
+
const memoryMaxBytes = parsedBytes === void 0 ? void 0 : Math.floor(parsedBytes);
|
|
585
|
+
if (input.buildMemoryMax !== void 0 && (memoryMaxBytes === void 0 || !Number.isSafeInteger(memoryMaxBytes) || memoryMaxBytes <= 0)) return { refusal: `\u2717 --build-memory-max ${input.buildMemoryMax} is not a size such as 16g. Nothing is set up` };
|
|
586
|
+
if (input.buildCpusMax !== void 0 && !cpusAreValid(input.buildCpusMax)) return { refusal: `\u2717 --build-cpus-max ${input.buildCpusMax} is not a number of CPUs from 0.01 to 1024. Nothing is set up` };
|
|
587
|
+
return { limits: { memoryMaxBytes, cpus: input.buildCpusMax } };
|
|
483
588
|
}
|
|
484
589
|
async function installServiceCommand(input, deps = {}) {
|
|
590
|
+
const nameProblem = input.unitName === void 0 ? void 0 : unitNameProblem(input.unitName);
|
|
591
|
+
if (nameProblem !== void 0) return { ok: false, state: "refused", lines: [nameProblem] };
|
|
485
592
|
const vm = runnerVmOf(input.configPath);
|
|
486
593
|
if (vm !== void 0) {
|
|
487
594
|
const result = await serviceInVm((deps.lima ?? realLima)(), vm.instance, "install", { home: input.home, extraArgs: vmArgs(input) });
|
|
@@ -515,8 +622,17 @@ async function installServiceCommand(input, deps = {}) {
|
|
|
515
622
|
}
|
|
516
623
|
const unitName = input.unitName ?? DEFAULT_UNIT_NAME;
|
|
517
624
|
const usesVm = builtinKind(config.hooks.provision) === "vm";
|
|
518
|
-
const
|
|
625
|
+
const slice = sliceOf(input, usesVm, deps.helperAssetsVersion ?? HOST_HELPER_ASSETS_VERSION);
|
|
626
|
+
if (slice.refusal !== void 0) return { ok: false, state: "refused", lines: [slice.refusal] };
|
|
627
|
+
if (slice.limits?.memoryMaxBytes !== void 0 && input.print !== true) {
|
|
628
|
+
const fit = checkFit({ concurrency: config.concurrency, buildMemory: config.build?.memory ?? "8g", usableBytes: 0, sliceBytes: slice.limits.memoryMaxBytes });
|
|
629
|
+
if (!fit.fits) return { ok: false, state: "refused", lines: [`${fit.message}. Nothing is set up: lower runner.concurrency or runner.build.memory, then run this again`] };
|
|
630
|
+
}
|
|
631
|
+
const helper = input.print !== true && usesVm && serviceDeps.helper !== void 0 && serviceDeps.systemd.running() ? await installHelper({ configPath: input.configPath, unitName, user: account, ...slice.limits === void 0 ? {} : { slice: slice.limits } }, { ...serviceDeps, helper: serviceDeps.helper }) : void 0;
|
|
519
632
|
if (helper !== void 0 && !helper.ok) return { ok: false, state: "refused", lines: helper.lines };
|
|
633
|
+
if (slice.limits !== void 0 && input.print !== true && helper?.installed !== true) {
|
|
634
|
+
return { ok: false, state: "refused", lines: [...helper?.lines ?? [], "\u2717 --build-memory-max and --build-cpus-max need the root helper, and it is not installed, so the limits would not apply. Nothing else is set up"] };
|
|
635
|
+
}
|
|
520
636
|
const outcome = installService(
|
|
521
637
|
{
|
|
522
638
|
configPath: input.configPath,
|
|
@@ -530,7 +646,10 @@ async function installServiceCommand(input, deps = {}) {
|
|
|
530
646
|
print: input.print,
|
|
531
647
|
replace: input.replace,
|
|
532
648
|
restart: input.restart,
|
|
533
|
-
|
|
649
|
+
imageBuild: config.build?.imageBuild,
|
|
650
|
+
builderDiskPinned: builderDiskPinned(),
|
|
651
|
+
...helper?.installed === true ? { helperSocket: helperSocketFor(unitName), helperUnit: helperUnitFor(unitName) } : {},
|
|
652
|
+
...helper?.installed === true && slice.limits?.memoryMaxBytes !== void 0 ? { buildSliceMemoryBytes: slice.limits.memoryMaxBytes } : {}
|
|
534
653
|
},
|
|
535
654
|
serviceDeps
|
|
536
655
|
);
|
|
@@ -538,6 +657,8 @@ async function installServiceCommand(input, deps = {}) {
|
|
|
538
657
|
return { ok: outcome.ok, state: outcome.state, lines: [...helper?.lines ?? [], ...outcome.lines, ...outcome.ok ? [...restartLines, ...launcherLines] : []], unit: outcome.unit, ...launcherNotes.length > 0 ? { notes: launcherNotes } : {} };
|
|
539
658
|
}
|
|
540
659
|
async function uninstallServiceCommand(input, deps = {}) {
|
|
660
|
+
const nameProblem = input.unitName === void 0 ? void 0 : unitNameProblem(input.unitName);
|
|
661
|
+
if (nameProblem !== void 0) return { ok: false, state: "refused", lines: [nameProblem] };
|
|
541
662
|
const vm = runnerVmOf(input.configPath);
|
|
542
663
|
if (vm !== void 0) {
|
|
543
664
|
const result = await serviceInVm((deps.lima ?? realLima)(), vm.instance, "uninstall", { home: input.home, extraArgs: input.unitName === void 0 ? [] : ["--unit-name", input.unitName] });
|
|
@@ -549,4 +670,4 @@ async function uninstallServiceCommand(input, deps = {}) {
|
|
|
549
670
|
return { ok: outcome.ok, state: outcome.state, lines: [...outcome.lines, ...helper?.lines ?? []] };
|
|
550
671
|
}
|
|
551
672
|
|
|
552
|
-
export { installServiceCommand, uninstallServiceCommand };
|
|
673
|
+
export { cpusAreValid, installServiceCommand, uninstallServiceCommand };
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { DEFAULT_CHECK_TIME_LIMIT_MINUTES, DEFAULT_UPDATE_MAX_WAIT_HOURS, RunnerConfigError, builtinKind, checkHooks, defaultRunnerConfigPath, hasRunnerBlock, imageBuildOf, isBuiltinContainer, isBuiltinProcess, isBuiltinVm, loadRunnerConfig, resolveBuild, resolveHousekeeping, runnerCredentialProblem, runnerVmOf } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
3
|
+
export { DEFAULT_CHECK_TIME_LIMIT_MINUTES, DEFAULT_UPDATE_MAX_WAIT_HOURS, RunnerConfigError, builtinKind, checkHooks, defaultRunnerConfigPath, hasRunnerBlock, imageBuildOf, isBuiltinContainer, isBuiltinProcess, isBuiltinVm, keepsHostBuilder, loadRunnerConfig, resolveBuild, resolveHousekeeping, runnerCredentialProblem, runnerVmOf } from './chunk-2D6CKNR7.js';
|
|
4
|
+
import './chunk-KM2HLQE3.js';
|
|
5
|
+
import './chunk-5AFPP3GZ.js';
|
|
6
|
+
import './chunk-4UPET3R7.js';
|
|
7
|
+
import './chunk-MOI2KDLH.js';
|
|
8
8
|
import './chunk-AJYZNISW.js';
|
|
9
|
-
import './chunk-XLJLR7EK.js';
|
|
10
|
-
import './chunk-N7LAEN3T.js';
|
|
11
|
-
import './chunk-YOBQIXX6.js';
|
|
12
9
|
import './chunk-EOTMDIYC.js';
|
|
13
10
|
import './chunk-VNVZDWO3.js';
|
|
14
|
-
import './chunk-
|
|
11
|
+
import './chunk-PXGU3GKY.js';
|
|
12
|
+
import './chunk-G4W4B33M.js';
|
|
15
13
|
import './chunk-MESOOLF4.js';
|
|
16
14
|
import './chunk-Z5GEFMRW.js';
|
|
17
15
|
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { AGENTS_LAYOUT_COMMIT_LINE, COMMIT_LINE, autoConnectedLine, commitCommandsFor, commitLineFor, listText as factoryListText, slug as factorySlug, fetchFactories, hasUncommittedPolicy, promptOnTerminal, realConnectDeps, runConnect, runConnectCommand, saveFactoryConnection, selectFactory } from './chunk-
|
|
4
|
-
import './chunk-MECW77XP.js';
|
|
5
|
-
import './chunk-AJYZNISW.js';
|
|
6
|
-
import './chunk-NKOM4JKY.js';
|
|
3
|
+
export { AGENTS_LAYOUT_COMMIT_LINE, COMMIT_LINE, autoConnectedLine, commitCommandsFor, commitLineFor, listText as factoryListText, slug as factorySlug, fetchFactories, hasUncommittedPolicy, promptOnTerminal, realConnectDeps, runConnect, runConnectCommand, saveFactoryConnection, selectFactory } from './chunk-FVCHHSHB.js';
|
|
7
4
|
import './chunk-Y5YCX6AL.js';
|
|
8
5
|
import './chunk-G2JWZDFA.js';
|
|
9
6
|
import './chunk-ANPNT6PM.js';
|
|
10
|
-
import './chunk-
|
|
7
|
+
import './chunk-MECW77XP.js';
|
|
8
|
+
import './chunk-NKOM4JKY.js';
|
|
9
|
+
import './chunk-3N77LUQI.js';
|
|
11
10
|
import './chunk-PJDQPF5N.js';
|
|
12
|
-
import './chunk-
|
|
13
|
-
import './chunk-N7LAEN3T.js';
|
|
14
|
-
import './chunk-YOBQIXX6.js';
|
|
11
|
+
import './chunk-MOI2KDLH.js';
|
|
15
12
|
import './chunk-BJ3KTMDH.js';
|
|
16
13
|
import './chunk-ZQSANKS4.js';
|
|
14
|
+
import './chunk-AJYZNISW.js';
|
|
17
15
|
import './chunk-5BHIBJDA.js';
|
|
18
16
|
import './chunk-CDDED64E.js';
|
|
19
17
|
import './chunk-RA3O54FC.js';
|
|
@@ -21,7 +19,8 @@ import './chunk-CRB3POP4.js';
|
|
|
21
19
|
import './chunk-FGXT5OXS.js';
|
|
22
20
|
import './chunk-EOTMDIYC.js';
|
|
23
21
|
import './chunk-VNVZDWO3.js';
|
|
24
|
-
import './chunk-
|
|
22
|
+
import './chunk-PXGU3GKY.js';
|
|
23
|
+
import './chunk-G4W4B33M.js';
|
|
25
24
|
import './chunk-MESOOLF4.js';
|
|
26
25
|
import './chunk-Z5GEFMRW.js';
|
|
27
26
|
|
|
@@ -1,53 +1,49 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { reportFailedStart, BUILD_MEMORY_VARIABLE } from './chunk-
|
|
4
|
-
import { readOwnContainer } from './chunk-
|
|
5
|
-
import './chunk-
|
|
3
|
+
import { reportFailedStart, BUILD_MEMORY_VARIABLE } from './chunk-O4Z2MNNL.js';
|
|
4
|
+
import { readOwnContainer } from './chunk-RHV5SRI2.js';
|
|
5
|
+
import './chunk-FD5ASWTG.js';
|
|
6
6
|
import './chunk-ZVB57WI6.js';
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-75KZUBHD.js';
|
|
7
|
+
import './chunk-63IVRRIO.js';
|
|
9
8
|
import './chunk-I3LTIAOR.js';
|
|
10
|
-
import './chunk-
|
|
11
|
-
import './chunk-
|
|
12
|
-
import './chunk-
|
|
9
|
+
import './chunk-JBCOUY4M.js';
|
|
10
|
+
import './chunk-QANM5COC.js';
|
|
11
|
+
import './chunk-EGVHFHY4.js';
|
|
13
12
|
import './chunk-ESVW4MJY.js';
|
|
13
|
+
import './chunk-SI6WDF3U.js';
|
|
14
14
|
import './chunk-TBT347UY.js';
|
|
15
|
-
import { detectMachine, supportsContainerBuilds, MIN_ENGINE_MAJOR, describeMachineDocker, RunnerInitError, prepareRunnerInit, writeRunnerInit } from './chunk-
|
|
15
|
+
import { detectMachine, supportsContainerBuilds, MIN_ENGINE_MAJOR, describeMachineDocker, RunnerInitError, prepareRunnerInit, writeRunnerInit } from './chunk-JQSZTQSK.js';
|
|
16
16
|
import './chunk-2PGI6RDE.js';
|
|
17
|
-
import
|
|
18
|
-
import './chunk-3NFZN7H6.js';
|
|
19
|
-
import './chunk-ENFBYN4A.js';
|
|
20
|
-
import './chunk-JBJTC3UU.js';
|
|
17
|
+
import './chunk-UO4FQAOX.js';
|
|
21
18
|
import './chunk-OGFGZQA3.js';
|
|
22
|
-
import './chunk-
|
|
23
|
-
import './chunk-
|
|
24
|
-
import './chunk-
|
|
25
|
-
import { runnerImageVersion, IMAGE_VERSION_VARIABLE } from './chunk-
|
|
19
|
+
import './chunk-2ILU7UAU.js';
|
|
20
|
+
import './chunk-OGPEHSNW.js';
|
|
21
|
+
import './chunk-RFVIQLNB.js';
|
|
22
|
+
import { runnerImageVersion, IMAGE_VERSION_VARIABLE } from './chunk-SYVRBBLW.js';
|
|
26
23
|
import './chunk-TQMI335S.js';
|
|
27
|
-
import './chunk-
|
|
28
|
-
import './chunk-
|
|
29
|
-
import './chunk-
|
|
30
|
-
import
|
|
31
|
-
import './chunk-
|
|
32
|
-
import './chunk-
|
|
33
|
-
import './chunk-
|
|
24
|
+
import { isAgentName, AGENT_COMMANDS } from './chunk-OQLF3MQQ.js';
|
|
25
|
+
import './chunk-INOUUSYI.js';
|
|
26
|
+
import './chunk-2D6CKNR7.js';
|
|
27
|
+
import './chunk-KM2HLQE3.js';
|
|
28
|
+
import { parseSize } from './chunk-5AFPP3GZ.js';
|
|
29
|
+
import './chunk-4UPET3R7.js';
|
|
30
|
+
import './chunk-YNMVVQOQ.js';
|
|
31
|
+
import './chunk-JBJTC3UU.js';
|
|
32
|
+
import './chunk-UN3SQTVL.js';
|
|
34
33
|
import './chunk-IP7BIBXJ.js';
|
|
35
|
-
import './chunk-
|
|
36
|
-
import './chunk-
|
|
37
|
-
import './chunk-MECW77XP.js';
|
|
38
|
-
import './chunk-AJYZNISW.js';
|
|
39
|
-
import './chunk-NKOM4JKY.js';
|
|
34
|
+
import './chunk-AVPLEFQR.js';
|
|
35
|
+
import './chunk-FVCHHSHB.js';
|
|
40
36
|
import './chunk-Y5YCX6AL.js';
|
|
41
37
|
import './chunk-G2JWZDFA.js';
|
|
42
38
|
import './chunk-ANPNT6PM.js';
|
|
43
|
-
import './chunk-
|
|
39
|
+
import './chunk-MECW77XP.js';
|
|
40
|
+
import './chunk-NKOM4JKY.js';
|
|
41
|
+
import './chunk-CAQCDYKF.js';
|
|
44
42
|
import './chunk-JWNH4ZTF.js';
|
|
45
|
-
import './chunk-
|
|
43
|
+
import './chunk-3N77LUQI.js';
|
|
46
44
|
import './chunk-PJDQPF5N.js';
|
|
47
|
-
import './chunk-
|
|
48
|
-
import './chunk-
|
|
49
|
-
import { readClaudeCredential, FORWARDED_CLAUDE_CREDENTIAL_VARIABLES } from './chunk-YOBQIXX6.js';
|
|
50
|
-
import './chunk-CXQCBAKO.js';
|
|
45
|
+
import './chunk-MOI2KDLH.js';
|
|
46
|
+
import './chunk-25GRRBTH.js';
|
|
51
47
|
import './chunk-ZJSNLVCE.js';
|
|
52
48
|
import './chunk-2O5KA67H.js';
|
|
53
49
|
import './chunk-BKO6JEZI.js';
|
|
@@ -55,6 +51,7 @@ import './chunk-FGF52V4V.js';
|
|
|
55
51
|
import './chunk-HCVLP7XA.js';
|
|
56
52
|
import './chunk-BJ3KTMDH.js';
|
|
57
53
|
import './chunk-ZQSANKS4.js';
|
|
54
|
+
import './chunk-AJYZNISW.js';
|
|
58
55
|
import './chunk-5BHIBJDA.js';
|
|
59
56
|
import './chunk-CDDED64E.js';
|
|
60
57
|
import { resolveVersion } from './chunk-RA3O54FC.js';
|
|
@@ -67,7 +64,8 @@ import './chunk-TUSYOL2O.js';
|
|
|
67
64
|
import './chunk-FGXT5OXS.js';
|
|
68
65
|
import './chunk-EOTMDIYC.js';
|
|
69
66
|
import './chunk-VNVZDWO3.js';
|
|
70
|
-
import './chunk-
|
|
67
|
+
import './chunk-PXGU3GKY.js';
|
|
68
|
+
import { readClaudeCredential, FORWARDED_CLAUDE_CREDENTIAL_VARIABLES } from './chunk-G4W4B33M.js';
|
|
71
69
|
import './chunk-MESOOLF4.js';
|
|
72
70
|
import './chunk-Z5GEFMRW.js';
|
|
73
71
|
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { autoConnect } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-MECW77XP.js';
|
|
6
|
-
import { resolveRepoIdentity } from './chunk-AJYZNISW.js';
|
|
7
|
-
import './chunk-NKOM4JKY.js';
|
|
3
|
+
import { autoConnect } from './chunk-AVPLEFQR.js';
|
|
4
|
+
import './chunk-FVCHHSHB.js';
|
|
8
5
|
import './chunk-Y5YCX6AL.js';
|
|
9
6
|
import './chunk-G2JWZDFA.js';
|
|
10
7
|
import './chunk-ANPNT6PM.js';
|
|
11
|
-
import
|
|
8
|
+
import './chunk-MECW77XP.js';
|
|
9
|
+
import './chunk-NKOM4JKY.js';
|
|
10
|
+
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-3N77LUQI.js';
|
|
12
11
|
import './chunk-PJDQPF5N.js';
|
|
13
|
-
import './chunk-
|
|
14
|
-
import './chunk-N7LAEN3T.js';
|
|
15
|
-
import './chunk-YOBQIXX6.js';
|
|
12
|
+
import './chunk-MOI2KDLH.js';
|
|
16
13
|
import './chunk-BJ3KTMDH.js';
|
|
17
14
|
import './chunk-ZQSANKS4.js';
|
|
15
|
+
import { resolveRepoIdentity } from './chunk-AJYZNISW.js';
|
|
18
16
|
import './chunk-5BHIBJDA.js';
|
|
19
17
|
import './chunk-CDDED64E.js';
|
|
20
18
|
import './chunk-RA3O54FC.js';
|
|
@@ -22,7 +20,8 @@ import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
|
22
20
|
import './chunk-FGXT5OXS.js';
|
|
23
21
|
import './chunk-EOTMDIYC.js';
|
|
24
22
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
25
|
-
import './chunk-
|
|
23
|
+
import './chunk-PXGU3GKY.js';
|
|
24
|
+
import './chunk-G4W4B33M.js';
|
|
26
25
|
import './chunk-MESOOLF4.js';
|
|
27
26
|
import './chunk-Z5GEFMRW.js';
|
|
28
27
|
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { parseOwnerRepo, lookupGoverningSource, defaultGitRunner, materializeContext } from './chunk-
|
|
3
|
+
import { parseOwnerRepo, lookupGoverningSource, defaultGitRunner, materializeContext } from './chunk-CAQCDYKF.js';
|
|
4
4
|
import './chunk-JWNH4ZTF.js';
|
|
5
|
-
import { resolveGatewayCredentials, defaultFetch } from './chunk-
|
|
5
|
+
import { resolveGatewayCredentials, defaultFetch } from './chunk-3N77LUQI.js';
|
|
6
6
|
import './chunk-PJDQPF5N.js';
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-N7LAEN3T.js';
|
|
9
|
-
import './chunk-YOBQIXX6.js';
|
|
7
|
+
import './chunk-MOI2KDLH.js';
|
|
10
8
|
import './chunk-ZJSNLVCE.js';
|
|
11
9
|
import { layoutRefusalMessage, unsupportedLayout, sharedSkillNames, skillConflictMessage, composeDelivery } from './chunk-FGF52V4V.js';
|
|
12
10
|
import './chunk-HCVLP7XA.js';
|
|
@@ -22,7 +20,8 @@ import './chunk-TUSYOL2O.js';
|
|
|
22
20
|
import './chunk-FGXT5OXS.js';
|
|
23
21
|
import './chunk-EOTMDIYC.js';
|
|
24
22
|
import './chunk-VNVZDWO3.js';
|
|
25
|
-
import './chunk-
|
|
23
|
+
import './chunk-PXGU3GKY.js';
|
|
24
|
+
import './chunk-G4W4B33M.js';
|
|
26
25
|
import './chunk-MESOOLF4.js';
|
|
27
26
|
import './chunk-Z5GEFMRW.js';
|
|
28
27
|
import { execFileSync } from 'child_process';
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { childEnvironment, createDockerHost, spawnRun } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
3
|
+
export { childEnvironment, createDockerHost, spawnRun } from './chunk-5AFPP3GZ.js';
|
|
4
|
+
import './chunk-4UPET3R7.js';
|
|
5
|
+
import './chunk-MOI2KDLH.js';
|
|
6
6
|
import './chunk-AJYZNISW.js';
|
|
7
|
-
import './chunk-XLJLR7EK.js';
|
|
8
|
-
import './chunk-N7LAEN3T.js';
|
|
9
|
-
import './chunk-YOBQIXX6.js';
|
|
10
7
|
import './chunk-EOTMDIYC.js';
|
|
11
|
-
import './chunk-
|
|
8
|
+
import './chunk-PXGU3GKY.js';
|
|
9
|
+
import './chunk-G4W4B33M.js';
|
|
12
10
|
import './chunk-MESOOLF4.js';
|
|
13
11
|
import './chunk-Z5GEFMRW.js';
|
|
14
12
|
|