@outerlayer/cli 0.34.0-next.20261025132734 → 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/README.md +6 -0
- package/dist/{agent-setup-HEJM3D3V.js → agent-setup-FNDKCPUP.js} +8 -9
- package/dist/{bridge-NBCXFTT4.js → bridge-YJBB4YA3.js} +2 -3
- package/dist/build-B4OKU4MV.js +16 -0
- package/dist/{build-disk-LEZ6LAM3.js → build-disk-ZL46AEN3.js} +7 -9
- package/dist/build-info.json +1 -1
- package/dist/{builder-I32JOQII.js → builder-XFPWE74N.js} +6 -8
- package/dist/{check-OOUGS65D.js → check-QULEN437.js} +45 -45
- package/dist/{chunk-65AKMFBH.js → chunk-25GRRBTH.js} +1 -1
- package/dist/{chunk-3CKMB2UK.js → chunk-2D6CKNR7.js} +8 -4
- package/dist/{chunk-5THSC6BD.js → chunk-2ILU7UAU.js} +1 -1
- package/dist/{chunk-5QBUX5YZ.js → chunk-3EJBI5JW.js} +3 -3
- package/dist/{chunk-6RKD7YZ6.js → chunk-3N77LUQI.js} +1 -1
- package/dist/{chunk-ES4ULBAL.js → chunk-4UPET3R7.js} +7 -3
- package/dist/{chunk-43I7PXDP.js → chunk-5AFPP3GZ.js} +239 -15
- package/dist/{chunk-HVRQQOMH.js → chunk-63IVRRIO.js} +3 -3
- package/dist/{chunk-FVKH3PMV.js → chunk-6OLVVAOK.js} +5 -5
- package/dist/{chunk-6ZFY2L2T.js → chunk-AJYZNISW.js} +416 -20
- package/dist/{chunk-6NUPXDAA.js → chunk-AVPLEFQR.js} +3 -3
- package/dist/{chunk-EN3YWO7Q.js → chunk-BHSSGVOY.js} +4 -4
- package/dist/{chunk-O6DYCIVW.js → chunk-CAQCDYKF.js} +2 -2
- package/dist/{chunk-7WM7K2DY.js → chunk-DNZYXEMY.js} +35 -21
- package/dist/{chunk-QMWUPRYQ.js → chunk-EGVHFHY4.js} +4 -4
- package/dist/{chunk-ACRRO3MB.js → chunk-FD5ASWTG.js} +22 -22
- package/dist/{chunk-57L2YAJA.js → chunk-FDJPDZSR.js} +1 -1
- package/dist/{chunk-EE2ZZGQV.js → chunk-FVCHHSHB.js} +3 -3
- package/dist/{chunk-BALIE3BA.js → chunk-G4W4B33M.js} +191 -8
- package/dist/{chunk-ZW6L275N.js → chunk-HHFZXOBC.js} +12 -14
- package/dist/{chunk-AMEM2ZLL.js → chunk-INOUUSYI.js} +29 -9
- package/dist/{chunk-XFFUXXI4.js → chunk-JBCOUY4M.js} +3 -3
- package/dist/{chunk-YEVPRO7L.js → chunk-JQSZTQSK.js} +81 -52
- package/dist/{chunk-TDAQHYM4.js → chunk-K2UAQWYO.js} +3 -3
- package/dist/{chunk-ZYKFYNES.js → chunk-KM2HLQE3.js} +2 -2
- package/dist/{chunk-DXJTBU7A.js → chunk-LUHIN4UZ.js} +3 -3
- package/dist/{chunk-SOI6K5DY.js → chunk-MOI2KDLH.js} +1 -1
- package/dist/{chunk-QDVGOMSC.js → chunk-NW26E4YU.js} +3 -3
- package/dist/{chunk-YIBFGAYI.js → chunk-O4Z2MNNL.js} +6 -6
- package/dist/{chunk-L26V6ILJ.js → chunk-OGPEHSNW.js} +1 -1
- package/dist/{chunk-2JB4GD34.js → chunk-OQLF3MQQ.js} +3 -4
- package/dist/{chunk-Z5IW4DHH.js → chunk-OS7DJOQJ.js} +1 -1
- package/dist/{chunk-DA3PLB5N.js → chunk-PAK5P2ND.js} +1 -1
- package/dist/{chunk-3IH6K7KG.js → chunk-PFHTT4PP.js} +5 -5
- package/dist/{chunk-PA6CK6WQ.js → chunk-PXGU3GKY.js} +1 -1
- package/dist/{chunk-YGSY2NWU.js → chunk-QANM5COC.js} +6 -6
- package/dist/{chunk-K5Q6T7SE.js → chunk-QQP3S5FU.js} +3 -3
- package/dist/{chunk-62LXQM7U.js → chunk-RFVIQLNB.js} +5 -5
- package/dist/{chunk-E4ASIOVL.js → chunk-RHV5SRI2.js} +3 -3
- package/dist/{chunk-6LBSAW6I.js → chunk-SI6WDF3U.js} +1 -1
- package/dist/chunk-SUOZYOWO.js +51 -0
- package/dist/{chunk-MZBQTVFG.js → chunk-SYVRBBLW.js} +1 -1
- package/dist/{chunk-5HZGLLNW.js → chunk-TBKV4L2W.js} +5 -5
- package/dist/{chunk-GH246BGV.js → chunk-TFPNPS4Q.js} +1 -1
- package/dist/{chunk-NBZ7XBT6.js → chunk-UMYYYF7B.js} +1 -1
- package/dist/{chunk-Z4KWHSO4.js → chunk-UN3SQTVL.js} +7 -7
- package/dist/{chunk-ZVLSYWDF.js → chunk-UO4FQAOX.js} +16 -12
- package/dist/{chunk-4Y54SQXH.js → chunk-VJ34F55N.js} +105 -44
- package/dist/{chunk-272AKVRP.js → chunk-YHKU2NOZ.js} +1 -1
- package/dist/{chunk-F5UL23I2.js → chunk-YNMVVQOQ.js} +1 -1
- package/dist/{claude-launcher-MORG66PJ.js → claude-launcher-OQZNW7XJ.js} +1 -1
- package/dist/{cli-XI7RUSC5.js → cli-G3P2B2XE.js} +124 -118
- package/dist/{command-BJSHY6OB.js → command-4XOXVWFW.js} +169 -48
- package/dist/config-QASNKYM6.js +16 -0
- package/dist/{connect-cmd-YAUOCX4X.js → connect-cmd-MEDWMW3L.js} +8 -9
- package/dist/{container-start-QADK3YGL.js → container-start-2DHCWV73.js} +34 -36
- package/dist/{context-show-cmd-VHY3OBIA.js → context-show-cmd-VSFCG663.js} +9 -10
- package/dist/{control-plane-launch-QSBWTA2V.js → control-plane-launch-XBGHM7DB.js} +5 -6
- package/dist/{dist-ZAHCXYSG.js → dist-QGN5R4Y2.js} +1 -1
- package/dist/{docker-DJ73SZRC.js → docker-TAC6G4VU.js} +6 -8
- package/dist/{doctor-UR76MCGI.js → doctor-LK6E3XOW.js} +68 -43
- package/dist/{emit-artifact-cmd-DP2EQ54N.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-TTFBN6RK.js → emit-criteria-cmd-QVFOQARC.js} +10 -11
- package/dist/{emit-demo-cmd-Z7YGLEBJ.js → emit-demo-cmd-L4B6OOTV.js} +15 -16
- package/dist/{emit-finding-cmd-IQRD3J2X.js → emit-finding-cmd-YXFCIWMU.js} +10 -11
- package/dist/{emit-result-cmd-GIWB6UHH.js → emit-result-cmd-NI4LCTUM.js} +12 -13
- package/dist/{emit-step-cmd-PU5TTU6C.js → emit-step-cmd-HWAUCZZB.js} +10 -11
- package/dist/{exec-client-7PT4W7JR.js → exec-client-QB4OZRGM.js} +3 -4
- package/dist/find-unit-4UR647S4.js +18 -0
- package/dist/{findings-cmd-7J5SHCUO.js → findings-cmd-O2IBO25E.js} +10 -11
- package/dist/{fleet-readiness-G63D76EX.js → fleet-readiness-NJYTQYTA.js} +5 -6
- package/dist/{governing-source-DLESDP6T.js → governing-source-JCI7VDQ6.js} +12 -13
- package/dist/{guest-init-J3F3AEEY.js → guest-init-IF5LXGUL.js} +4 -5
- package/dist/{hook-fast-VQXRDS6E.js → hook-fast-GPUL7T77.js} +1 -1
- package/dist/host-key-5RU322O3.js +9 -0
- package/dist/{image-tag-ADSLWXBA.js → image-tag-SEMBVB5D.js} +3 -4
- package/dist/index.js +4 -4
- package/dist/{init-KSXU4PA7.js → init-2CEULE3F.js} +25 -27
- package/dist/{init-67R7LO4C.js → init-FAIF7KOK.js} +25 -27
- package/dist/{init-cmd-MNOVMADM.js → init-cmd-HZUUMO45.js} +13 -14
- package/dist/{init-update-6KEXRCJH.js → init-update-TTMFFNMB.js} +12 -13
- package/dist/{install-cmd-FV7IZ7XF.js → install-cmd-TWGRGEVL.js} +5 -6
- package/dist/{logs-HI46FO6Z.js → logs-6CMB3DO6.js} +2 -3
- package/dist/{loop-KUEOPBKX.js → loop-7U7MVICV.js} +41 -43
- package/dist/{machine-EQEAPT76.js → machine-S3JHOX4V.js} +25 -27
- package/dist/{mcp-serve-cmd-7ABBV2QE.js → mcp-serve-cmd-MWGIN6YL.js} +4 -5
- package/dist/{paths-7HVTDE6J.js → paths-T2DEBI62.js} +2 -3
- package/dist/pending-ERXWVLLG.js +9 -0
- package/dist/{pidfile-5UDLYPMC.js → pidfile-EAD2OEM7.js} +3 -4
- package/dist/{record-PPZEXAVA.js → record-IMXQNHPB.js} +3 -4
- package/dist/runner-env-BJPUHAKZ.js +18 -0
- package/dist/runner-identity-ZCPPC2BJ.js +13 -0
- package/dist/{runner-key-ML7R33HF.js → runner-key-CYSUYKSX.js} +25 -27
- package/dist/{session-sender-A43GZQ7T.js → session-sender-5T7BXPKC.js} +13 -14
- package/dist/{spec-cmd-VVUJZSG2.js → spec-cmd-4ABYAFNZ.js} +11 -12
- package/dist/{status-4G6K7I2C.js → status-2AP7J2L7.js} +32 -34
- package/dist/{sync-cmd-ZEC65ABJ.js → sync-cmd-34CGNA6T.js} +12 -13
- package/dist/{update-steps-XLO7734I.js → update-steps-JQOCCDWO.js} +33 -35
- package/dist/{watch-QB4AMWR3.js → watch-6HU7LCUY.js} +12 -13
- package/dist/{work-claim-cmd-6W3GBHRS.js → work-claim-cmd-5QKLHSCR.js} +17 -19
- package/dist/{work-cmd-LTZXOPPN.js → work-cmd-3MKUIE2C.js} +10 -11
- package/dist/{work-comment-cmd-LDZBUO6M.js → work-comment-cmd-ESC3DSHI.js} +11 -12
- package/dist/{work-demo-cmd-77LISWQ3.js → work-demo-cmd-7S23DGYO.js} +10 -11
- package/dist/{work-logs-cmd-FK7HE7PC.js → work-logs-cmd-46UPNN7Q.js} +10 -11
- package/dist/{work-open-pr-cmd-WVONEHZL.js → work-open-pr-cmd-JNGTGLIP.js} +11 -12
- package/dist/{work-pr-cmd-6IPXWJEH.js → work-pr-cmd-2J2LKETD.js} +10 -11
- package/dist/{work-proofs-cmd-TGIAP5IO.js → work-proofs-cmd-HRWTHYSS.js} +11 -12
- package/dist/{work-proofs-record-XPAU7N57.js → work-proofs-record-6OKAT3IC.js} +18 -19
- package/dist/{work-stop-cmd-UJ45EV3A.js → work-stop-cmd-Y22XIVQ6.js} +10 -11
- package/package.json +1 -1
- package/dist/build-LSU25G3M.js +0 -14
- package/dist/chunk-3Z3MPR55.js +0 -226
- package/dist/chunk-HACGUL52.js +0 -183
- package/dist/config-WRHQDGVI.js +0 -18
- package/dist/host-key-UERIQRE6.js +0 -10
- package/dist/inspect-DNLXTXLA.js +0 -6
- package/dist/install-OCBERTPQ.js +0 -19
- package/dist/pending-5HZACM2V.js +0 -10
- package/dist/runner-env-L7OPH3O3.js +0 -20
- package/dist/runner-identity-VASV2AEQ.js +0 -15
- 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-ZVLSYWDF.js';
|
|
10
|
-
import './chunk-F5UL23I2.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-6ZFY2L2T.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-PA6CK6WQ.js';
|
|
42
|
-
import './chunk-BALIE3BA.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 };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
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, 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
|
+
import './chunk-AJYZNISW.js';
|
|
9
|
+
import './chunk-EOTMDIYC.js';
|
|
10
|
+
import './chunk-VNVZDWO3.js';
|
|
11
|
+
import './chunk-PXGU3GKY.js';
|
|
12
|
+
import './chunk-G4W4B33M.js';
|
|
13
|
+
import './chunk-MESOOLF4.js';
|
|
14
|
+
import './chunk-Z5GEFMRW.js';
|
|
15
|
+
|
|
16
|
+
createRequire(import.meta.url);
|
|
@@ -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-6ZFY2L2T.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-PA6CK6WQ.js';
|
|
14
|
-
import './chunk-BALIE3BA.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-6LBSAW6I.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-ZVLSYWDF.js';
|
|
19
|
-
import './chunk-F5UL23I2.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-6ZFY2L2T.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-BALIE3BA.js';
|
|
50
|
-
import './chunk-65AKMFBH.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-6ZFY2L2T.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-PA6CK6WQ.js';
|
|
15
|
-
import './chunk-BALIE3BA.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-PA6CK6WQ.js';
|
|
9
|
-
import './chunk-BALIE3BA.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,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { CaptureDaemon, PRICE_TABLE_SOURCE, SECRET_PATTERNS, SOURCE_ADAPTERS, SUPPORTED_VERSIONS, StatuslineAggregator, WARNING_CODES, claudeCodeAdapter, codexAdapter, codexSessionIdFromPath, compareVersions, completePrefix, computeStatuslineState, costOfUsage, cursorAdapter, cursorChatIdFromPath, defaultCodexSessionsDir, defaultCursorChatsDir, defaultCursorProjectsDir, defaultProjectsDir, defaultRawDir, enrichSessionRepo, findCodexRollouts, findCursorChats, findTranscripts, isNewerThanSupported, isPriceKnown, normalizeErrorSignature, normalizeRemote, parseCodexRollout, parseCursorChat, parseTranscript, readStatuslineState, readSyncWatermarkMs, remoteLookupFailed, resolvePrice, resolveRepoIdentity, rootChildIds, scanAll, scrubDeep, scrubText, sessionIdFromPath, setCustomScrubbers, setLocalIdentity, setRepoRoot, statuslineStatePath, tailTranscript, workspacesByHash, writeStatuslineState } from './chunk-
|
|
3
|
+
export { CaptureDaemon, PRICE_TABLE_SOURCE, SECRET_PATTERNS, SOURCE_ADAPTERS, SUPPORTED_VERSIONS, StatuslineAggregator, WARNING_CODES, claudeCodeAdapter, codexAdapter, codexSessionIdFromPath, compareVersions, completePrefix, computeStatuslineState, costOfUsage, cursorAdapter, cursorChatIdFromPath, defaultCodexSessionsDir, defaultCursorChatsDir, defaultCursorProjectsDir, defaultProjectsDir, defaultRawDir, enrichSessionRepo, findCodexRollouts, findCursorChats, findTranscripts, isNewerThanSupported, isPriceKnown, normalizeErrorSignature, normalizeRemote, parseCodexRollout, parseCursorChat, parseTranscript, readStatuslineState, readSyncWatermarkMs, remoteLookupFailed, resolvePrice, resolveRepoIdentity, rootChildIds, scanAll, scrubDeep, scrubText, sessionIdFromPath, setCustomScrubbers, setLocalIdentity, setRepoRoot, statuslineStatePath, tailTranscript, workspacesByHash, writeStatuslineState } from './chunk-AJYZNISW.js';
|
|
4
4
|
import './chunk-EOTMDIYC.js';
|
|
5
5
|
import './chunk-Z5GEFMRW.js';
|
|
6
6
|
|
|
@@ -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-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-SOI6K5DY.js';
|
|
8
|
-
import './chunk-PA6CK6WQ.js';
|
|
9
|
-
import './chunk-BALIE3BA.js';
|
|
3
|
+
export { childEnvironment, createDockerHost, spawnRun } from './chunk-5AFPP3GZ.js';
|
|
4
|
+
import './chunk-4UPET3R7.js';
|
|
5
|
+
import './chunk-MOI2KDLH.js';
|
|
6
|
+
import './chunk-AJYZNISW.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
|
|