@outerlayer/cli 0.7.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/README.md +5 -5
- package/dist/{agent-setup-TXLDY5RV.js → agent-setup-K6RD2Z4P.js} +4 -4
- package/dist/{build-JF5UOWKJ.js → build-MS34XEGN.js} +2 -1
- package/dist/build-info.json +1 -1
- package/dist/builder-IG6FNA54.js +13 -0
- package/dist/{check-ASZL5BEO.js → check-GX5ND6RO.js} +26 -22
- package/dist/chunk-2BRSMBBB.js +264 -0
- package/dist/{chunk-PUN7LMNS.js → chunk-4ACZCY4I.js} +2 -2
- package/dist/{chunk-2VO25HHO.js → chunk-4FPWKV7L.js} +3 -3
- package/dist/{chunk-AII7CKTH.js → chunk-5ODHQP6O.js} +68 -145
- package/dist/chunk-7RQ73DLO.js +23 -0
- package/dist/{chunk-7FTNIAHS.js → chunk-AX23QKHS.js} +7 -3
- package/dist/{chunk-6ZZHWY2Z.js → chunk-BF4KKEFY.js} +4 -4
- package/dist/{chunk-5FWNEQNZ.js → chunk-BQFNZOMQ.js} +1 -1
- package/dist/chunk-CX22S5BA.js +45 -0
- package/dist/{chunk-D6FXM5OW.js → chunk-GAYWY4GI.js} +8 -8
- package/dist/{chunk-MQPRB5K7.js → chunk-HSN5QNS5.js} +8 -8
- package/dist/chunk-I2UOAV7X.js +133 -0
- package/dist/chunk-I7CJIRMM.js +93 -0
- package/dist/{chunk-SSU747O6.js → chunk-ILEA3YHM.js} +1 -1
- package/dist/{chunk-OUUINEYB.js → chunk-JKIWMRFH.js} +1 -1
- package/dist/{chunk-JPR2WHHF.js → chunk-KSLNQOOS.js} +1 -1
- package/dist/{chunk-DGAIVMMN.js → chunk-KV47VQJZ.js} +5 -5
- package/dist/{chunk-E4PIFIC3.js → chunk-M4ERCYDB.js} +133 -159
- package/dist/chunk-PTW6W5NR.js +127 -0
- package/dist/{chunk-DTXOJDEH.js → chunk-PWBILI5P.js} +3 -2
- package/dist/{chunk-X2FSFU4C.js → chunk-PXFEYBDE.js} +3 -3
- package/dist/{chunk-6IYLDODX.js → chunk-Q4432IZT.js} +5 -5
- package/dist/{chunk-AJKEHABI.js → chunk-QB5JQH5V.js} +255 -54
- package/dist/{chunk-AQ54MKSQ.js → chunk-QNRSFEGY.js} +2 -2
- package/dist/{chunk-774HEQL6.js → chunk-TEKZRTM3.js} +91 -8
- package/dist/{chunk-CEBIA5FD.js → chunk-TTNFGMHO.js} +42 -50
- package/dist/{chunk-F6GFZXZ3.js → chunk-UXYLWVTQ.js} +1 -18
- package/dist/{chunk-M5POMKKW.js → chunk-V7NIVOFD.js} +5 -5
- package/dist/{chunk-BCLJSQCV.js → chunk-YO4PSLVB.js} +1 -1
- package/dist/{chunk-6QWV3YDJ.js → chunk-Z2THOHPP.js} +2 -2
- package/dist/{cli-LEVCGAQV.js → cli-X5ONGYNY.js} +128 -78
- package/dist/{command-FLSYCGIB.js → command-7NFU3IPO.js} +38 -20
- package/dist/{config-I3TVFYLH.js → config-Z3USDBLU.js} +3 -2
- package/dist/{connect-cmd-MJMUONDY.js → connect-cmd-PNZ6IJLJ.js} +2 -2
- package/dist/{context-adopt-CE4KDXS3.js → context-adopt-D2Z7F7PB.js} +3 -3
- package/dist/{context-materialize-QL33HDJN.js → context-materialize-4PMTDS6K.js} +3 -3
- package/dist/{dist-PXBSA7QX.js → dist-3ZTZF2TP.js} +1 -1
- package/dist/docker-PRHRSJM5.js +15 -0
- package/dist/{doctor-FVDT3KJZ.js → doctor-KALLPCRB.js} +39 -16
- package/dist/{emit-artifact-cmd-7RPMRSVP.js → emit-artifact-cmd-D5GMVWNC.js} +7 -7
- package/dist/{emit-criteria-cmd-MKI7WETO.js → emit-criteria-cmd-IE7VIM64.js} +5 -5
- package/dist/{emit-finding-cmd-RMLGZASB.js → emit-finding-cmd-46PTPN3A.js} +5 -5
- package/dist/{emit-result-cmd-MTXAZ2GV.js → emit-result-cmd-KXHHP6HX.js} +7 -7
- package/dist/{hook-fast-XBOZ3N6L.js → hook-fast-5H5QBJKT.js} +1 -1
- package/dist/{host-key-KDYZ5ECC.js → host-key-YMLXY6QB.js} +1 -1
- package/dist/index.js +3 -3
- package/dist/{init-VLW7H6RW.js → init-B4CECVOX.js} +25 -18
- package/dist/{init-BACXESVV.js → init-S4DH6PWW.js} +16 -13
- package/dist/{init-cmd-VJFB5L7X.js → init-cmd-P4MVCBCZ.js} +8 -8
- package/dist/{install-NMAPLLBQ.js → install-FHTVJZS6.js} +5 -4
- package/dist/{install-cmd-B5SEU3G7.js → install-cmd-BEC7XTNG.js} +3 -1
- package/dist/{loop-D3243JKT.js → loop-ODMRE3CW.js} +26 -22
- package/dist/{machine-EB3GEVI4.js → machine-J4SAB3Z2.js} +15 -12
- package/dist/{mcp-serve-cmd-N6UD2KBX.js → mcp-serve-cmd-CT47P4YQ.js} +2 -2
- package/dist/{session-sender-LMACEJJS.js → session-sender-V46VPWQ5.js} +6 -6
- package/dist/{status-F4THTJJK.js → status-QBKSH3QE.js} +19 -16
- package/dist/{sync-cmd-M6JA3OEE.js → sync-cmd-RJR77V4O.js} +5 -5
- package/dist/{watch-NB5TGPEZ.js → watch-YNZTFLEY.js} +5 -5
- package/dist/{work-claim-cmd-UHMWOS3G.js → work-claim-cmd-KAD3ZAH7.js} +10 -9
- package/dist/{work-cmd-6UMCFTAW.js → work-cmd-CNWPTH7W.js} +6 -6
- package/dist/{work-comment-cmd-E4LEUIXZ.js → work-comment-cmd-HH45S6UE.js} +6 -6
- package/dist/{work-open-pr-cmd-OPZWGSEQ.js → work-open-pr-cmd-5KR3KFCN.js} +7 -7
- package/dist/{work-pr-cmd-IDIAFFRU.js → work-pr-cmd-TTEGCP76.js} +6 -6
- package/package.json +2 -2
- package/skill-pack/maintained/amend/SKILL.md +22 -6
- package/dist/chunk-Q5G2ODUZ.js +0 -54
- package/dist/docker-NEGDLU6D.js +0 -7
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { fetchVersionMeta, npmVersion, npmSupportsProvenance, fetchTarballDigest, fetchProvenance, installVersion, auditSignatures } from './chunk-ABIWDUMS.js';
|
|
4
|
-
import {
|
|
5
|
-
import { LEASE_SECONDS, releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, provisionEnvironment, readProvisionOut, resolveHostBuild, workdirProblem, listenOnBroker, hostEnvironment, hostCommandEnvironment, execArgv, microVmCommandLine, runCommand, execCommandLine, startSender, startHostServices, finishJob, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, hookLimitsFor, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, ALREADY_RELEASED } from './chunk-
|
|
4
|
+
import { compareVersions, satisfiesRange } from './chunk-I2UOAV7X.js';
|
|
5
|
+
import { LEASE_SECONDS, releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, provisionEnvironment, readProvisionOut, resolveHostBuild, workdirProblem, listenOnBroker, hostEnvironment, hostCommandEnvironment, execArgv, microVmCommandLine, runCommand, execCommandLine, startSender, startHostServices, finishJob, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, hookLimitsFor, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, ALREADY_RELEASED } from './chunk-QB5JQH5V.js';
|
|
6
6
|
import { writeJobFile, readJobFile, readJobFileChecked } from './chunk-T6OIJQRT.js';
|
|
7
7
|
import { RUNNER_PROTOCOL } from './chunk-AIW6GLET.js';
|
|
8
8
|
import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-UGP76IZ5.js';
|
|
9
|
-
import { placeholderQueues, placeholderProblem } from './chunk-
|
|
9
|
+
import { placeholderQueues, placeholderProblem } from './chunk-Q4432IZT.js';
|
|
10
|
+
import { readMarker, currentVersion, removeMarker, writeMarker, entryIn, versionDir, switchCurrent, cleanVersions, isInLayout, startedThroughCurrent, stagingDir } from './chunk-TI7B7UEO.js';
|
|
10
11
|
import { freeBytes, formatBytes } from './chunk-YYYRBYWG.js';
|
|
11
12
|
import { RepoFilter } from './chunk-TBT347UY.js';
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
13
|
+
import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, provisionContainer, lifecycleSteps, lifecycleFailureReason, prepareBranch, containerCommandLine, BuildTokens, classifyRefusal, refusalCode, measureDisk, createRunnerLog, setUpRunnerCgroup, parseCpuList, ensureTunnel, keepGhConfigCurrent, createContainerRuntime, formatClock } from './chunk-M4ERCYDB.js';
|
|
14
|
+
import { checkFit } from './chunk-JKIWMRFH.js';
|
|
14
15
|
import { startTimeOf, claimPidFile, readPidFile, isSameProcess, releasePidFile } from './chunk-N5FOE5PS.js';
|
|
15
|
-
import { spawnRun } from './chunk-
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
16
|
+
import { spawnRun } from './chunk-TEKZRTM3.js';
|
|
17
|
+
import { builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, BUILD_LABEL, RUNNER_LABEL } from './chunk-2BRSMBBB.js';
|
|
18
|
+
import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-KV47VQJZ.js';
|
|
19
|
+
import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind } from './chunk-PWBILI5P.js';
|
|
20
|
+
import { exceedsDisk } from './chunk-7RQ73DLO.js';
|
|
19
21
|
import { sharedUserEnvironment, JOB_MOUNT, claudeCredential } from './chunk-OD2VTIHN.js';
|
|
20
22
|
import { parseClaimIdentity } from './chunk-HKMPVPO7.js';
|
|
21
23
|
import { resolveVersion } from './chunk-RA3O54FC.js';
|
|
22
|
-
import { loadHostKey, ensureHostKey, signerFor } from './chunk-
|
|
24
|
+
import { loadHostKey, ensureHostKey, signerFor } from './chunk-V7NIVOFD.js';
|
|
23
25
|
import { RUNNER_DIR_MODE, runnerDir, buildDir, attemptStamp, jobDir, jobsDir, pidFilePath, spoolDir, RUNNER_FILE_MODE, rootfsDir } from './chunk-ZM2IMMYN.js';
|
|
24
26
|
import { HOOKS_DIR_NAME, writeCommitHooks } from './chunk-XCCLFVXM.js';
|
|
25
27
|
import { randomBytes } from 'crypto';
|
|
@@ -37,7 +39,7 @@ function openKvm() {
|
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
function realBlockedProbes() {
|
|
40
|
-
return { env: process.env, kvm: openKvm, totalMemoryBytes: totalmem };
|
|
42
|
+
return { env: process.env, kvm: openKvm, totalMemoryBytes: totalmem, imageBuilder: "unknown" };
|
|
41
43
|
}
|
|
42
44
|
var DEFAULT_BUILD_MEMORY = "8g";
|
|
43
45
|
function checkBlocked(config, probes) {
|
|
@@ -61,6 +63,13 @@ function checkBlocked(config, probes) {
|
|
|
61
63
|
reason: "the runner cannot open /dev/kvm, so builtin:vm cannot start a microVM. Add the runner's account to the kvm group, then restart the service, because a service reads its groups only when it starts"
|
|
62
64
|
};
|
|
63
65
|
}
|
|
66
|
+
if (kind === "container" || kind === "vm") {
|
|
67
|
+
const builder = probes.imageBuilder;
|
|
68
|
+
if (builder === "unknown") {
|
|
69
|
+
return { reason: "the runner is still preparing its image builder, the container that limits image builds to runner.build.memory, so it claims nothing yet" };
|
|
70
|
+
}
|
|
71
|
+
if (builder !== "usable") return { reason: `${builder.problem}. The runner takes work again once its image builder works` };
|
|
72
|
+
}
|
|
64
73
|
if (kind !== "own" && claudeCredential(probes.env) === void 0) {
|
|
65
74
|
return {
|
|
66
75
|
reason: "there is no Claude credential in the runner's environment. Put CLAUDE_CODE_OAUTH_TOKEN (from `claude setup-token`) or ANTHROPIC_API_KEY in the runner.env beside the config, then restart the service"
|
|
@@ -181,133 +190,6 @@ function writeLastUpdate(configPath, update) {
|
|
|
181
190
|
`, { mode: RUNNER_FILE_MODE });
|
|
182
191
|
renameSync(temporary, path);
|
|
183
192
|
}
|
|
184
|
-
|
|
185
|
-
// src/runner/update/version-order.ts
|
|
186
|
-
function parse(version) {
|
|
187
|
-
const match = /^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/.exec(version);
|
|
188
|
-
if (match === null) return void 0;
|
|
189
|
-
return { core: [Number(match[1]), Number(match[2]), Number(match[3])], pre: match[4] };
|
|
190
|
-
}
|
|
191
|
-
function comparePre(a, b) {
|
|
192
|
-
const left = a.split(".");
|
|
193
|
-
const right = b.split(".");
|
|
194
|
-
for (let i = 0; i < Math.max(left.length, right.length); i++) {
|
|
195
|
-
const x = left[i];
|
|
196
|
-
const y = right[i];
|
|
197
|
-
if (x === void 0) return -1;
|
|
198
|
-
if (y === void 0) return 1;
|
|
199
|
-
const xNum = /^\d+$/.test(x);
|
|
200
|
-
const yNum = /^\d+$/.test(y);
|
|
201
|
-
if (xNum && yNum) {
|
|
202
|
-
const difference = Number(x) - Number(y);
|
|
203
|
-
if (difference !== 0) return Math.sign(difference);
|
|
204
|
-
} else if (xNum !== yNum) {
|
|
205
|
-
return xNum ? -1 : 1;
|
|
206
|
-
} else if (x < y) {
|
|
207
|
-
return -1;
|
|
208
|
-
} else if (x > y) {
|
|
209
|
-
return 1;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
return 0;
|
|
213
|
-
}
|
|
214
|
-
function compareVersions(a, b) {
|
|
215
|
-
const left = parse(a);
|
|
216
|
-
const right = parse(b);
|
|
217
|
-
if (left === void 0 || right === void 0) return void 0;
|
|
218
|
-
for (let i = 0; i < 3; i++) {
|
|
219
|
-
const difference = left.core[i] - right.core[i];
|
|
220
|
-
if (difference !== 0) return Math.sign(difference);
|
|
221
|
-
}
|
|
222
|
-
if (left.pre === right.pre) return 0;
|
|
223
|
-
if (left.pre === void 0) return 1;
|
|
224
|
-
if (right.pre === void 0) return -1;
|
|
225
|
-
return comparePre(left.pre, right.pre);
|
|
226
|
-
}
|
|
227
|
-
function compareCores(a, b) {
|
|
228
|
-
for (let i = 0; i < 3; i++) {
|
|
229
|
-
const difference = a[i] - b[i];
|
|
230
|
-
if (difference !== 0) return Math.sign(difference);
|
|
231
|
-
}
|
|
232
|
-
return 0;
|
|
233
|
-
}
|
|
234
|
-
function parsePartial(text) {
|
|
235
|
-
if (text === "" || text === "*" || text === "x" || text === "X") return [];
|
|
236
|
-
const match = /^v?(\d+|[xX*])(?:\.(\d+|[xX*]))?(?:\.(\d+|[xX*]))?$/.exec(text);
|
|
237
|
-
if (match === null) return void 0;
|
|
238
|
-
const numbers = [];
|
|
239
|
-
for (const part of [match[1], match[2], match[3]]) {
|
|
240
|
-
if (part === void 0 || !/^\d+$/.test(part)) break;
|
|
241
|
-
numbers.push(Number(part));
|
|
242
|
-
}
|
|
243
|
-
return numbers;
|
|
244
|
-
}
|
|
245
|
-
function bumpLast(numbers) {
|
|
246
|
-
const core = [numbers[0] ?? 0, numbers[1] ?? 0, numbers[2] ?? 0];
|
|
247
|
-
const last = numbers.length - 1;
|
|
248
|
-
core[last] = core[last] + 1;
|
|
249
|
-
for (let i = last + 1; i < 3; i++) core[i] = 0;
|
|
250
|
-
return core;
|
|
251
|
-
}
|
|
252
|
-
function fill(numbers) {
|
|
253
|
-
return [numbers[0] ?? 0, numbers[1] ?? 0, numbers[2] ?? 0];
|
|
254
|
-
}
|
|
255
|
-
function meets(version, comparator) {
|
|
256
|
-
const match = /^(>=|<=|>|<|=|\^|~)?(.*)$/.exec(comparator);
|
|
257
|
-
const op = match[1] ?? "";
|
|
258
|
-
const numbers = parsePartial(match[2]);
|
|
259
|
-
if (numbers === void 0) return void 0;
|
|
260
|
-
if (numbers.length === 0) return op === "" || op === "=" || op === ">=" || op === "<=" ? true : void 0;
|
|
261
|
-
const low = fill(numbers);
|
|
262
|
-
const whole = numbers.length === 3;
|
|
263
|
-
switch (op) {
|
|
264
|
-
case ">=":
|
|
265
|
-
return compareCores(version, low) >= 0;
|
|
266
|
-
case ">":
|
|
267
|
-
return whole ? compareCores(version, low) > 0 : compareCores(version, bumpLast(numbers)) >= 0;
|
|
268
|
-
case "<":
|
|
269
|
-
return compareCores(version, low) < 0;
|
|
270
|
-
case "<=":
|
|
271
|
-
return whole ? compareCores(version, low) <= 0 : compareCores(version, bumpLast(numbers)) < 0;
|
|
272
|
-
case "~":
|
|
273
|
-
return compareCores(version, low) >= 0 && compareCores(version, bumpLast(numbers.slice(0, Math.min(numbers.length, 2)))) < 0;
|
|
274
|
-
case "^": {
|
|
275
|
-
let pivot = numbers.findIndex((n) => n !== 0);
|
|
276
|
-
if (pivot === -1) pivot = numbers.length - 1;
|
|
277
|
-
return compareCores(version, low) >= 0 && compareCores(version, bumpLast(numbers.slice(0, pivot + 1))) < 0;
|
|
278
|
-
}
|
|
279
|
-
default:
|
|
280
|
-
return compareCores(version, low) >= 0 && (whole ? compareCores(version, low) <= 0 : compareCores(version, bumpLast(numbers)) < 0);
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
function satisfiesRange(version, range) {
|
|
284
|
-
const parsed = parse(version.trim().replace(/^v/, ""));
|
|
285
|
-
if (parsed === void 0 || parsed.pre !== void 0) return void 0;
|
|
286
|
-
let anyUnreadable = false;
|
|
287
|
-
for (const alternative of range.split("||")) {
|
|
288
|
-
if (/\s-\s/.test(alternative)) {
|
|
289
|
-
anyUnreadable = true;
|
|
290
|
-
continue;
|
|
291
|
-
}
|
|
292
|
-
const comparators = alternative.trim().replace(/(>=|<=|>|<|=|\^|~)\s+/g, "$1").split(/\s+/).filter((c) => c !== "");
|
|
293
|
-
if (comparators.length === 0) comparators.push("*");
|
|
294
|
-
let all = true;
|
|
295
|
-
for (const comparator of comparators) {
|
|
296
|
-
const met = meets(parsed.core, comparator);
|
|
297
|
-
if (met === void 0) {
|
|
298
|
-
anyUnreadable = true;
|
|
299
|
-
all = false;
|
|
300
|
-
break;
|
|
301
|
-
}
|
|
302
|
-
if (!met) {
|
|
303
|
-
all = false;
|
|
304
|
-
break;
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
if (all) return true;
|
|
308
|
-
}
|
|
309
|
-
return anyUnreadable ? void 0 : false;
|
|
310
|
-
}
|
|
311
193
|
var RELEASE_REPOSITORY = "https://github.com/outerlayerai/outerlayer";
|
|
312
194
|
var RELEASE_WORKFLOW_PATH = ".github/workflows/outerlayer-release.yml";
|
|
313
195
|
var UpdateStepError = class extends Error {
|
|
@@ -580,6 +462,7 @@ function settleUpdate(args) {
|
|
|
580
462
|
|
|
581
463
|
// src/runner/housekeeping/docker.ts
|
|
582
464
|
var KIND_LABEL = "ai.outerlayer.kind";
|
|
465
|
+
var NO_BUILDER = /no builder .* found/i;
|
|
583
466
|
function failure(result, what) {
|
|
584
467
|
return new Error(`${what}: ${result.stderr.trim() || `docker exited ${result.status}`}`);
|
|
585
468
|
}
|
|
@@ -671,8 +554,13 @@ function createHousekeepingDocker(deps) {
|
|
|
671
554
|
if (result.status !== 0) throw failure(result, `docker rmi ${id}`);
|
|
672
555
|
},
|
|
673
556
|
async builderPrune(keepBytes) {
|
|
674
|
-
const
|
|
675
|
-
if (
|
|
557
|
+
const inspected = await run("docker", ["buildx", "inspect", deps.builder]);
|
|
558
|
+
if (inspected.status !== 0 && NO_BUILDER.test(inspected.stderr)) return void 0;
|
|
559
|
+
const status = inspected.status === 0 ? /^Status:\s*(\S+)/m.exec(inspected.stdout)?.[1] : void 0;
|
|
560
|
+
if (status !== void 0 && status !== "running") return void 0;
|
|
561
|
+
const result = await run("docker", ["buildx", "prune", "--builder", deps.builder, "--force", "--max-used-space", String(keepBytes)]);
|
|
562
|
+
if (result.status !== 0 && (NO_BUILDER.test(result.stderr) || /driver not running/i.test(result.stderr))) return void 0;
|
|
563
|
+
if (result.status !== 0) throw failure(result, "docker buildx prune");
|
|
676
564
|
return { freedBytes: parsePrunedBytes(result.stdout) };
|
|
677
565
|
}
|
|
678
566
|
};
|
|
@@ -842,8 +730,12 @@ async function runHousekeeping(options) {
|
|
|
842
730
|
if (options.buildCacheMax !== "off") {
|
|
843
731
|
try {
|
|
844
732
|
const pruned = await docker.builderPrune(options.buildCacheMax);
|
|
845
|
-
|
|
846
|
-
|
|
733
|
+
if (pruned === void 0) {
|
|
734
|
+
log.line("housekeeping: the image builder is not running, so its build cache is left for a later pass");
|
|
735
|
+
} else {
|
|
736
|
+
freed += pruned.freedBytes;
|
|
737
|
+
log.line(`housekeeping: pruned the image builder's build cache down to ${formatBytes(options.buildCacheMax)}, freed ${formatBytes(pruned.freedBytes)}`);
|
|
738
|
+
}
|
|
847
739
|
} catch (err) {
|
|
848
740
|
log.error(`housekeeping: the build cache could not be pruned: ${describeCallFailure(err)}`);
|
|
849
741
|
}
|
|
@@ -1137,10 +1029,39 @@ async function tick(state) {
|
|
|
1137
1029
|
}
|
|
1138
1030
|
await sendTickHeartbeat(state, state.lastWorkRequest);
|
|
1139
1031
|
}
|
|
1032
|
+
function imageBuilderState(state) {
|
|
1033
|
+
const kind = builtinKind(state.config.hooks.provision);
|
|
1034
|
+
if (kind !== "container" && kind !== "vm") return "usable";
|
|
1035
|
+
if (state.deps.container?.buildImage !== void 0 || state.deps.container?.imageHost !== void 0) return "usable";
|
|
1036
|
+
const memory = state.config.build?.memory ?? "8g";
|
|
1037
|
+
let probe = state.imageBuilder;
|
|
1038
|
+
if (probe === void 0 || probe.memory !== memory) probe = state.imageBuilder = { memory, at: 0, running: false };
|
|
1039
|
+
if (probe.result?.ok === true && !probe.running && probe.failures !== void 0 && ensureFailureCount() !== probe.failures) probe.result = void 0;
|
|
1040
|
+
const nowMs = nowOf(state).getTime();
|
|
1041
|
+
const recheckMs = 10 * 6e4;
|
|
1042
|
+
const due = !probe.running && (probe.result === void 0 || !probe.result.ok || nowMs - probe.at >= recheckMs);
|
|
1043
|
+
if (due) {
|
|
1044
|
+
const checking = probe;
|
|
1045
|
+
checking.running = true;
|
|
1046
|
+
const spec = builderSpec(state.config.configPath, memory, state.deps.container?.hostEnv ?? process.env);
|
|
1047
|
+
const check = state.deps.builderProbe ?? ((s) => ensureBuilder(spawnRun, s, { bootstrap: true }));
|
|
1048
|
+
void check(spec).catch((err) => ({ ok: false, problem: `the image builder could not be checked: ${describeCallFailure(err)}` })).then((result2) => {
|
|
1049
|
+
checking.result = result2;
|
|
1050
|
+
checking.failures = ensureFailureCount();
|
|
1051
|
+
checking.at = nowOf(state).getTime();
|
|
1052
|
+
checking.running = false;
|
|
1053
|
+
if (result2.ok && state.blocked !== void 0 && state.pollTimerSeconds !== void 0) void tick(state);
|
|
1054
|
+
});
|
|
1055
|
+
}
|
|
1056
|
+
const result = probe.result;
|
|
1057
|
+
if (result === void 0) return "unknown";
|
|
1058
|
+
return result.ok ? "usable" : { problem: result.problem };
|
|
1059
|
+
}
|
|
1140
1060
|
function holdWhenBlocked(state) {
|
|
1141
1061
|
const probes = {
|
|
1142
1062
|
...realBlockedProbes(),
|
|
1143
1063
|
...state.deps.container?.hostEnv === void 0 ? {} : { env: state.deps.container.hostEnv },
|
|
1064
|
+
...state.deps.blocked?.imageBuilder === void 0 ? { imageBuilder: imageBuilderState(state) } : {},
|
|
1144
1065
|
...state.deps.blocked
|
|
1145
1066
|
};
|
|
1146
1067
|
const blocked = checkBlocked(state.config, probes);
|
|
@@ -1194,7 +1115,7 @@ async function housekeepingPass(state) {
|
|
|
1194
1115
|
state.housekeepingRunning = true;
|
|
1195
1116
|
try {
|
|
1196
1117
|
state.deps.housekeeping ??= {};
|
|
1197
|
-
state.deps.housekeeping.docker ??= createHousekeepingDocker({ runnerId: runnerLabelValue(state.config.configPath) });
|
|
1118
|
+
state.deps.housekeeping.docker ??= createHousekeepingDocker({ runnerId: runnerLabelValue(state.config.configPath), builder: builderName(state.config.configPath) });
|
|
1198
1119
|
const result = await runHousekeeping({
|
|
1199
1120
|
configPath: state.config.configPath,
|
|
1200
1121
|
keepDays: config.jobsKeepDays,
|
|
@@ -1268,7 +1189,7 @@ var CLAIM_REFUSAL_CODES = new Set(
|
|
|
1268
1189
|
"pull_request_from_fork pull_request_on_default_branch pull_request_ambiguous branch_claimed_elsewhere".split(" ")
|
|
1269
1190
|
);
|
|
1270
1191
|
async function tryClaimAndStart(state, item, queue) {
|
|
1271
|
-
const { postJson: postJson2 } = await import('./work-cmd-
|
|
1192
|
+
const { postJson: postJson2 } = await import('./work-cmd-CNWPTH7W.js');
|
|
1272
1193
|
const log = logOf(state);
|
|
1273
1194
|
const hostKey = await loadHostKey(state.config.configPath);
|
|
1274
1195
|
const claim = await retrySend(
|
|
@@ -1992,7 +1913,7 @@ async function start(configPath, deps = { fetchImpl: fetch }) {
|
|
|
1992
1913
|
const outcome = await onStartUnderMarker({
|
|
1993
1914
|
configPath,
|
|
1994
1915
|
own: ownVersionOf(deps),
|
|
1995
|
-
check: update.check ? () => update.check(configPath) : async () => (await import('./check-
|
|
1916
|
+
check: update.check ? () => update.check(configPath) : async () => (await import('./check-GX5ND6RO.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl }),
|
|
1996
1917
|
now: () => (deps.now ?? (() => /* @__PURE__ */ new Date()))().getTime(),
|
|
1997
1918
|
log
|
|
1998
1919
|
});
|
|
@@ -2034,6 +1955,8 @@ async function start(configPath, deps = { fetchImpl: fetch }) {
|
|
|
2034
1955
|
const adopted = { job, dirPath, lastRenewAtMs: nowMs(), cmd: null, cpuSample: null, ending: false };
|
|
2035
1956
|
state.jobs.set(dirPath, adopted);
|
|
2036
1957
|
if (job.container !== void 0) {
|
|
1958
|
+
const cores = job.container.cpuset === void 0 ? void 0 : parseCpuList(job.container.cpuset);
|
|
1959
|
+
if (cores !== void 0) runtimeOf(state).cpus.hold(job.container.buildId, cores);
|
|
2037
1960
|
const tokens = buildTokensFor(state, adopted, job.item);
|
|
2038
1961
|
runtimeOf(state).credentials.set(dirPath, tokens);
|
|
2039
1962
|
await ensureTunnel(runtimeOf(state), job.container, dirPath, config, job.itemKey, job.branch);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
|
|
4
|
+
createRequire(import.meta.url);
|
|
5
|
+
|
|
6
|
+
// src/runner/container/disk.ts
|
|
7
|
+
var UNITS = { "": 1, k: 1024, m: 1024 ** 2, g: 1024 ** 3 };
|
|
8
|
+
function parseSize(text) {
|
|
9
|
+
const match = /^(\d+(?:\.\d+)?)([kKmMgG]?)$/.exec(text);
|
|
10
|
+
if (match === null) return void 0;
|
|
11
|
+
const bytes = Number(match[1]) * UNITS[match[2].toLowerCase()];
|
|
12
|
+
return bytes > 0 ? bytes : void 0;
|
|
13
|
+
}
|
|
14
|
+
function parseDuKilobytes(output) {
|
|
15
|
+
const match = /^(\d+)\s/.exec(output);
|
|
16
|
+
return match === null ? void 0 : Number(match[1]);
|
|
17
|
+
}
|
|
18
|
+
function exceedsDisk(usedKilobytes, limit) {
|
|
19
|
+
const bytes = parseSize(limit);
|
|
20
|
+
return usedKilobytes * 1024 > (bytes ?? Number.POSITIVE_INFINITY);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { exceedsDisk, parseDuKilobytes, parseSize };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { runnerUnit, UNIT_MARKER } from './chunk-FBTE2A2X.js';
|
|
4
|
-
import { checkFit } from './chunk-
|
|
5
|
-
import { builtinKind } from './chunk-
|
|
4
|
+
import { checkFit } from './chunk-JKIWMRFH.js';
|
|
5
|
+
import { builtinKind } from './chunk-PWBILI5P.js';
|
|
6
6
|
import { runnerDir } from './chunk-ZM2IMMYN.js';
|
|
7
7
|
import { dirname } from 'path';
|
|
8
8
|
import { spawnSync } from 'child_process';
|
|
@@ -165,7 +165,11 @@ function installService(request, deps) {
|
|
|
165
165
|
function ensureLoginTask(deps, unitName) {
|
|
166
166
|
const tasks = deps.tasks;
|
|
167
167
|
const name = taskNameFor(unitName);
|
|
168
|
-
|
|
168
|
+
if (deps.distro === void 0 || deps.distro === "") {
|
|
169
|
+
const manual2 = `from Windows, run: schtasks /Create /F /TN ${name} /SC ONLOGON /TR "${taskCommand("<distribution>")}", with the name \`wsl -l\` shows`;
|
|
170
|
+
return [`WSL_DISTRO_NAME is not set, as under sudo, so the scheduled task that starts WSL2 at login was not made: ${manual2}`];
|
|
171
|
+
}
|
|
172
|
+
const command = taskCommand(deps.distro);
|
|
169
173
|
const manual = `from Windows, run: schtasks /Create /F /TN ${name} /SC ONLOGON /TR "${command}"`;
|
|
170
174
|
if (tasks === void 0 || !tasks.available()) {
|
|
171
175
|
return [`Windows interop is off, so the scheduled task that starts WSL2 at login was not made: ${manual}`];
|
|
@@ -5,16 +5,16 @@ import { RepoFilter } from './chunk-TBT347UY.js';
|
|
|
5
5
|
import { hookExecSpoolPath } from './chunk-F7CU5ABH.js';
|
|
6
6
|
import { applyReportedCost } from './chunk-BKO6JEZI.js';
|
|
7
7
|
import { migrateLegacyArtifactSidecars, planArtifactUpload, artifactsStatePath, sanitizeTerminal, artifactBlobsDir, resolveArtifactTurnIndex, isArtifactTombstoned, ARTIFACT_RETRY_MAX_AGE_MS, writeArtifactSpoolState, reclaimUnneededArtifactBlobs, neededArtifactShas } from './chunk-ZYHKJKSU.js';
|
|
8
|
-
import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-
|
|
8
|
+
import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-GAYWY4GI.js';
|
|
9
9
|
import { C } from './chunk-YRYMNBGQ.js';
|
|
10
10
|
import { readLaunchSpoolState, launchStatusIsDecisive, launchedItemsBySession, launchesPath } from './chunk-GQD22KKN.js';
|
|
11
11
|
import { readLatestProvenanceForSession, readContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
12
|
-
import { defaultFetch } from './chunk-
|
|
12
|
+
import { defaultFetch } from './chunk-YO4PSLVB.js';
|
|
13
13
|
import { resolveGatewayCredentials, unauthorizedMessage } from './chunk-BOLTI6LR.js';
|
|
14
14
|
import { CAPTURE_TIERS, inferArtifactKind, bannedPathsForTier, downconvertSession, isHumanUserTurn, turnCountBound, EVENT_TYPES } from './chunk-YNJEOGDL.js';
|
|
15
15
|
import { readCloudConfig, cloudConfigPath, writeCloudConfig } from './chunk-EABW6AJQ.js';
|
|
16
|
-
import { signerFor, signRunnerRequest } from './chunk-
|
|
17
|
-
import { writeSyncStatus, spoolDir } from './chunk-
|
|
16
|
+
import { signerFor, signRunnerRequest } from './chunk-V7NIVOFD.js';
|
|
17
|
+
import { writeSyncStatus, spoolDir } from './chunk-KSLNQOOS.js';
|
|
18
18
|
import { removeJournalHooks } from './chunk-XCCLFVXM.js';
|
|
19
19
|
import { readRepoConnection, findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
20
20
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -4,7 +4,7 @@ import { appendContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
|
4
4
|
import { readPin, pinExists, readBuildHold, readContextManifest, manifestFilesPresent, writeDegraded, writeSourceCache, SOURCE_CACHE_TTL_RETRY_MS, SOURCE_CACHE_TTL_SUCCESS_MS, isLastCheckFresh, readDegraded, touchLastCheck, clearDegraded, writeContextManifest, writePinIfChanged, readSourceCache, isSourceCacheFresh } from './chunk-ZZXLM64C.js';
|
|
5
5
|
import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-VXLJORHL.js';
|
|
6
6
|
import { parseGoverns, normalizeRepoName, CONTEXT_SOURCE_CONFIG_PATH, parseOuterlayerConfig, classifyTree, emitTree } from './chunk-7ZR5UPMB.js';
|
|
7
|
-
import { defaultFetch } from './chunk-
|
|
7
|
+
import { defaultFetch } from './chunk-YO4PSLVB.js';
|
|
8
8
|
import { resolveGatewayCredentials } from './chunk-BOLTI6LR.js';
|
|
9
9
|
import { ensureContextExcludes, ensurePreCommitGuardHook } from './chunk-XCCLFVXM.js';
|
|
10
10
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
|
|
4
|
+
createRequire(import.meta.url);
|
|
5
|
+
|
|
6
|
+
// src/runner/image/pins.ts
|
|
7
|
+
var CLAUDE_CODE_VERSION = "2.1.284";
|
|
8
|
+
var DEFAULT_BASE_IMAGE = "ubuntu:24.04@sha256:008173c23f95b170204355c12626cb5a965d779a7e1283b09e9cffbb1bf33ca3";
|
|
9
|
+
var NODE_IMAGE = "node:22-bookworm-slim@sha256:43ac6c60b8f89723f746e8a92ce91abd5017e627ce1ddfe4238355d3a30b772c";
|
|
10
|
+
var BUILDKIT_IMAGE = "moby/buildkit:v0.33.1@sha256:cec9f139f45e93c5c69c60f8b07cfad9f43f4ef6b6a6cd917527fea5ff2e3dea";
|
|
11
|
+
var GH_VERSION = "2.101.0";
|
|
12
|
+
var GH_SHA256 = {
|
|
13
|
+
amd64: "9bca2d1c16825f109907a23307628a2f0698fbf99662b73a5cf0b020293072b8",
|
|
14
|
+
arm64: "b57e8063f18862647c9d22727c32e9da1b963f8bf9db648fe123a6975695640f"
|
|
15
|
+
};
|
|
16
|
+
var TINI_VERSION = "0.19.0";
|
|
17
|
+
var TINI_SHA256 = {
|
|
18
|
+
amd64: "c5b0666b4cb676901f90dfcb37106783c5fe2077b04590973b885950611b30ee",
|
|
19
|
+
arm64: "eae1d3aa50c48fb23b8cbdf4e369d0910dfc538566bfd09df89a774aa84a48b9"
|
|
20
|
+
};
|
|
21
|
+
var MICROVM_ARCHES = ["x86_64"];
|
|
22
|
+
function firecrackerArch(nodeArch) {
|
|
23
|
+
return nodeArch === "x64" ? "x86_64" : nodeArch === "arm64" ? "aarch64" : nodeArch;
|
|
24
|
+
}
|
|
25
|
+
var FIRECRACKER_VERSION = "1.13.1";
|
|
26
|
+
var FIRECRACKER_SHA256 = {
|
|
27
|
+
x86_64: "59450b9171ff2ebdf2f9a25be3a248a7ba79fb6371aec51a9d6d8eefca7b4faf"
|
|
28
|
+
};
|
|
29
|
+
var FIRECRACKER_BINARY_SHA256 = {
|
|
30
|
+
x86_64: "7d3924e0c8761edafbf85cb2a94c268ffad249644a40fd02d4e15cde4c206f6e"
|
|
31
|
+
};
|
|
32
|
+
var GUEST_ASSETS_VERSION = "1";
|
|
33
|
+
var GUEST_ASSETS_BASE_URL = `https://github.com/outerlayerai/guest-assets/releases/download/guest-${GUEST_ASSETS_VERSION}`;
|
|
34
|
+
var GUEST_KERNEL_SHA256 = {
|
|
35
|
+
x86_64: "5a2d716d301615c69fefc2f9574954e838269f14d5e8b0d1bad88b680cd372ee"
|
|
36
|
+
};
|
|
37
|
+
var GUEST_HELPER_SHA256 = {
|
|
38
|
+
x86_64: "4175e89ae8cb633113b5f69ef8b6e206093954411fe53edf86357bc1b7e822f9"
|
|
39
|
+
};
|
|
40
|
+
function guestAssetsPinned(arch) {
|
|
41
|
+
const zero = "0".repeat(64);
|
|
42
|
+
return GUEST_KERNEL_SHA256[arch] !== zero && GUEST_HELPER_SHA256[arch] !== zero;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export { BUILDKIT_IMAGE, CLAUDE_CODE_VERSION, DEFAULT_BASE_IMAGE, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256, FIRECRACKER_VERSION, GH_SHA256, GH_VERSION, GUEST_ASSETS_BASE_URL, GUEST_ASSETS_VERSION, GUEST_HELPER_SHA256, GUEST_KERNEL_SHA256, MICROVM_ARCHES, NODE_IMAGE, TINI_SHA256, TINI_VERSION, firecrackerArch, guestAssetsPinned };
|
|
@@ -21970,14 +21970,14 @@ var ModelRegistryImpl = class {
|
|
|
21970
21970
|
};
|
|
21971
21971
|
var models_default = {
|
|
21972
21972
|
version: "1.0.0",
|
|
21973
|
-
generatedAt: "2026-10-
|
|
21973
|
+
generatedAt: "2026-10-05T04:49:52.578Z",
|
|
21974
21974
|
sources: {
|
|
21975
21975
|
litellm: {
|
|
21976
|
-
fetchedAt: "2026-10-
|
|
21976
|
+
fetchedAt: "2026-10-05T04:49:52.578Z",
|
|
21977
21977
|
modelCount: 1887
|
|
21978
21978
|
},
|
|
21979
21979
|
openrouter: {
|
|
21980
|
-
fetchedAt: "2026-10-
|
|
21980
|
+
fetchedAt: "2026-10-05T04:49:52.578Z",
|
|
21981
21981
|
modelCount: 198
|
|
21982
21982
|
}
|
|
21983
21983
|
},
|
|
@@ -43490,12 +43490,12 @@ var models_default = {
|
|
|
43490
43490
|
"top_p"
|
|
43491
43491
|
],
|
|
43492
43492
|
pricing: {
|
|
43493
|
-
inputCostPerToken:
|
|
43494
|
-
outputCostPerToken:
|
|
43493
|
+
inputCostPerToken: 29e-8,
|
|
43494
|
+
outputCostPerToken: 114e-8
|
|
43495
43495
|
},
|
|
43496
43496
|
context: {
|
|
43497
43497
|
maxInputTokens: 163840,
|
|
43498
|
-
maxOutputTokens:
|
|
43498
|
+
maxOutputTokens: 115200
|
|
43499
43499
|
},
|
|
43500
43500
|
capabilities: {
|
|
43501
43501
|
functionCalling: true,
|
|
@@ -52756,8 +52756,8 @@ var models_default = {
|
|
|
52756
52756
|
"max_tokens"
|
|
52757
52757
|
],
|
|
52758
52758
|
pricing: {
|
|
52759
|
-
inputCostPerToken:
|
|
52760
|
-
outputCostPerToken:
|
|
52759
|
+
inputCostPerToken: 2e-6,
|
|
52760
|
+
outputCostPerToken: 1e-5
|
|
52761
52761
|
},
|
|
52762
52762
|
context: {
|
|
52763
52763
|
maxInputTokens: 105e4,
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { readStatuslineState, STATE_FRESH_MS } from './chunk-F47JBIAW.js';
|
|
4
|
-
import { resolveCredentials, getJson, WorkCommandError } from './chunk-
|
|
5
|
-
import { isLinkedRepository } from './chunk-
|
|
4
|
+
import { resolveCredentials, getJson, WorkCommandError } from './chunk-KV47VQJZ.js';
|
|
5
|
+
import { isLinkedRepository } from './chunk-ILEA3YHM.js';
|
|
6
6
|
import { sanitizeTerminal } from './chunk-ZYHKJKSU.js';
|
|
7
|
-
import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-
|
|
7
|
+
import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-GAYWY4GI.js';
|
|
8
8
|
import { C } from './chunk-YRYMNBGQ.js';
|
|
9
9
|
import { readSettings, settingsPath, isOurStatuslineSlot, statuslineWrappedOriginal, REGISTERED_EVENTS, isOurHookCommand, ourCommandBins, cliBinResolvable, ourDirectScriptBins, wrappedOriginalCommand } from './chunk-5QRP3MVS.js';
|
|
10
10
|
import { readPin, readContextManifest, readDegraded, readSourceCache } from './chunk-ZZXLM64C.js';
|
|
11
|
-
import { defaultFetch } from './chunk-
|
|
11
|
+
import { defaultFetch } from './chunk-YO4PSLVB.js';
|
|
12
12
|
import { resolveGatewayCredentials } from './chunk-BOLTI6LR.js';
|
|
13
13
|
import { readCloudConfig } from './chunk-EABW6AJQ.js';
|
|
14
|
-
import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-
|
|
14
|
+
import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-KSLNQOOS.js';
|
|
15
15
|
import { deadHooksState, preparePackageManagerCommand, contextExcludesPresent } from './chunk-XCCLFVXM.js';
|
|
16
16
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
17
17
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -1004,7 +1004,7 @@ function doctorExitCode(checks) {
|
|
|
1004
1004
|
|
|
1005
1005
|
// src/doctor-report.ts
|
|
1006
1006
|
async function gatherDoctorChecks() {
|
|
1007
|
-
const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-
|
|
1007
|
+
const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-Z3USDBLU.js');
|
|
1008
1008
|
const configPath = defaultRunnerConfigPath();
|
|
1009
1009
|
const checks = runDoctor({ runnerHost: hasRunnerBlock(configPath) });
|
|
1010
1010
|
const credential = await credentialChecks();
|
|
@@ -1016,7 +1016,7 @@ async function gatherDoctorChecks() {
|
|
|
1016
1016
|
const { runnerVmCheck } = await import('./doctor-53F2PYY7.js');
|
|
1017
1017
|
checks.push(runnerVmCheck(configPath, { lima: realLima(), home: homeFromEnv(), instance: runnerVm.instance }));
|
|
1018
1018
|
} else if (hasRunnerBlock(configPath)) {
|
|
1019
|
-
const { runnerHostChecks } = await import('./doctor-
|
|
1019
|
+
const { runnerHostChecks } = await import('./doctor-KALLPCRB.js');
|
|
1020
1020
|
const hooks = (() => {
|
|
1021
1021
|
try {
|
|
1022
1022
|
return loadRunnerConfig(configPath).hooks;
|
|
@@ -1051,7 +1051,7 @@ async function gatherDoctorChecks() {
|
|
|
1051
1051
|
const { existsSync: existsSync2 } = await import('fs');
|
|
1052
1052
|
if (process.platform !== "linux" || !existsSync2("/run/systemd/system")) return void 0;
|
|
1053
1053
|
const { inspectService, realInspectProbes } = await import('./inspect-XAUSB7L3.js');
|
|
1054
|
-
const { DEFAULT_UNIT_NAME } = await import('./install-
|
|
1054
|
+
const { DEFAULT_UNIT_NAME } = await import('./install-FHTVJZS6.js');
|
|
1055
1055
|
const { dirname: dirname2 } = await import('path');
|
|
1056
1056
|
return inspectService(DEFAULT_UNIT_NAME, dirname2(configPath), realInspectProbes());
|
|
1057
1057
|
})();
|