@outerlayer/cli 0.34.0-next.20261028132110 → 0.34.0-next.20261028164329
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-MO7DHLV4.js → agent-setup-IVXRBFVV.js} +6 -6
- package/dist/{bridge-4DFOWIY2.js → bridge-4GRZFXJU.js} +2 -2
- package/dist/{build-3IZ6XHYN.js → build-SEJJWGTO.js} +7 -7
- package/dist/{build-disk-TEITBQKE.js → build-disk-EYRR3PBT.js} +5 -5
- package/dist/build-info.json +1 -1
- package/dist/{builder-S42B4STV.js → builder-T7B46P7T.js} +4 -4
- package/dist/{check-E47RDQFK.js → check-SPMUN5C4.js} +36 -36
- package/dist/{chunk-S25I6OCB.js → chunk-2EHDLYSL.js} +9 -9
- package/dist/{chunk-IZKUPAXF.js → chunk-3KGXXTMN.js} +1 -1
- package/dist/{chunk-NYMDS542.js → chunk-4YD7N6V3.js} +4 -4
- package/dist/{chunk-VJQQVTCS.js → chunk-5TXQFZHY.js} +1 -1
- package/dist/{chunk-NPTEYMBW.js → chunk-5W2YSWIW.js} +9 -4
- package/dist/{chunk-LBEYOL5K.js → chunk-7JSWRF5O.js} +2 -2
- package/dist/{chunk-BUVDDPOM.js → chunk-BBJ6BM5U.js} +1 -1
- package/dist/{chunk-QELQ6Y4I.js → chunk-CUAB7FAZ.js} +1 -1
- package/dist/{chunk-ZXQEBRCB.js → chunk-DCBFUUDL.js} +5 -5
- package/dist/{chunk-4557WV4R.js → chunk-EA2PQRCU.js} +2 -2
- package/dist/{chunk-GHZLVKA3.js → chunk-FUOKDHRB.js} +6 -6
- package/dist/{chunk-GHQW2BBX.js → chunk-GG5OE6MY.js} +2 -2
- package/dist/{chunk-6G3BG2GI.js → chunk-H7MGR2GN.js} +2 -2
- package/dist/{chunk-26WUFKYZ.js → chunk-HFOZTCTN.js} +1 -1
- package/dist/{chunk-FG564H3C.js → chunk-I2MFIT6X.js} +5 -5
- package/dist/{chunk-AJ3CC3HT.js → chunk-IPWKT5J7.js} +147 -29
- package/dist/{chunk-E3GX4WVJ.js → chunk-KH4774QT.js} +1 -1
- package/dist/{chunk-UAINHP2C.js → chunk-KPEMNHVF.js} +3 -3
- package/dist/{chunk-SH5JFBPO.js → chunk-KQDK4Q6A.js} +1 -1
- package/dist/{chunk-7XDF7PNF.js → chunk-MCPCOKHN.js} +2 -2
- package/dist/{chunk-JDQBJUXQ.js → chunk-MEIDQLXQ.js} +1 -1
- package/dist/{chunk-BRBZKIZG.js → chunk-MRLJK4GZ.js} +2 -2
- package/dist/{chunk-QGTJ5IJN.js → chunk-NCOL5RYI.js} +1 -1
- package/dist/{chunk-S44ZN3CV.js → chunk-OYQVLQP3.js} +52 -13
- package/dist/{chunk-HA46L5FG.js → chunk-P2PNBDUT.js} +5 -4
- package/dist/{chunk-XDCD4GD5.js → chunk-POND2SMT.js} +3 -3
- package/dist/{chunk-265SXBQ5.js → chunk-QGDGGLSD.js} +3 -3
- package/dist/{chunk-262MWE4Q.js → chunk-QGEGLZSY.js} +6 -6
- package/dist/{chunk-YMYU56JD.js → chunk-QI7JB2GU.js} +87 -23
- package/dist/{chunk-DKIZDYUX.js → chunk-ROQPDCRU.js} +1 -1
- package/dist/{chunk-47SFTQA5.js → chunk-RRXS4CWE.js} +2 -2
- package/dist/{chunk-2CW2QMSG.js → chunk-S6UM3N4R.js} +1 -1
- package/dist/{chunk-64LLUVJR.js → chunk-SAAVZ2BX.js} +1 -1
- package/dist/{chunk-7XZQTJOD.js → chunk-T3XPLCJG.js} +11 -5
- package/dist/{chunk-6MLX26T4.js → chunk-TDCHUEKY.js} +2 -2
- package/dist/{chunk-ORENXMHA.js → chunk-UXC3RQLF.js} +1 -1
- package/dist/{chunk-X2ZJL7GA.js → chunk-UZEIBWTP.js} +2 -2
- package/dist/{chunk-WHONZ53R.js → chunk-V2S2WRGD.js} +1 -1
- package/dist/{chunk-BEILLR5Q.js → chunk-W7E6IMEW.js} +3 -3
- package/dist/{chunk-ESK6EWAQ.js → chunk-WA3HIJVK.js} +3 -3
- package/dist/{chunk-TTUI3S6B.js → chunk-WH3FPBPO.js} +603 -45
- package/dist/{chunk-T664NDNT.js → chunk-XDAMLX2L.js} +5 -5
- package/dist/{chunk-JDYBPAPP.js → chunk-YF7W7B7Y.js} +24 -8
- package/dist/{chunk-ECCAFFAH.js → chunk-YIK5SGEN.js} +5 -5
- package/dist/{chunk-4N7BQBO4.js → chunk-YLPJOUVF.js} +5 -3
- package/dist/{chunk-TVDKDXW6.js → chunk-ZCA34T7R.js} +3 -3
- package/dist/{chunk-TZXJSNN4.js → chunk-ZCZY3Q55.js} +1 -1
- package/dist/{chunk-BTA5QOKD.js → chunk-ZTOJIRJH.js} +2 -2
- package/dist/{claude-launcher-TG7CHE3N.js → claude-launcher-7IC6QWR5.js} +1 -1
- package/dist/{cli-3V7AMF2V.js → cli-GKROH23V.js} +110 -110
- package/dist/{command-57COSNSG.js → command-XA6DOFL4.js} +24 -24
- package/dist/config-RSOCVUKC.js +17 -0
- package/dist/{connect-cmd-VBEYNPAK.js → connect-cmd-JFGDHFLA.js} +5 -5
- package/dist/{container-start-RS3S6WYE.js → container-start-ZDSVXSAL.js} +30 -30
- package/dist/{context-show-cmd-GMF7YMSN.js → context-show-cmd-XWLTP6R4.js} +6 -6
- package/dist/{control-plane-launch-4WRFVYNP.js → control-plane-launch-3MBWPYWZ.js} +5 -5
- package/dist/{demo-record-cmd-KM2UPWPL.js → demo-record-cmd-SIKNTSGI.js} +2 -2
- package/dist/{demo-voice-cmd-KFNEU2GR.js → demo-voice-cmd-SAB3QU4F.js} +11 -11
- package/dist/{docker-UP7EFFLL.js → docker-YMRPMDOW.js} +4 -4
- package/dist/{doctor-B2EZV6SJ.js → doctor-NVHAE4LS.js} +24 -24
- package/dist/{emit-artifact-cmd-NLCKM5TU.js → emit-artifact-cmd-TZTVQCFT.js} +10 -10
- package/dist/{emit-criteria-cmd-GO3TDUCG.js → emit-criteria-cmd-WH7JB4RQ.js} +7 -7
- package/dist/{emit-demo-cmd-EJBQHFR2.js → emit-demo-cmd-DNUVG5N7.js} +11 -11
- package/dist/{emit-finding-cmd-PHUHZLQ3.js → emit-finding-cmd-X5CBH4ZA.js} +7 -7
- package/dist/{emit-result-cmd-UJSWTGDG.js → emit-result-cmd-VCKNZ4RZ.js} +9 -9
- package/dist/{emit-step-cmd-M2JEWJ4Q.js → emit-step-cmd-IUXZZYKO.js} +7 -7
- package/dist/{exec-client-BQIZRROT.js → exec-client-U4544U2S.js} +3 -3
- package/dist/{find-unit-H5DKNRBG.js → find-unit-QYD2FMCP.js} +8 -8
- package/dist/{findings-cmd-O3VCFA55.js → findings-cmd-PLHBAQW4.js} +7 -7
- package/dist/{fleet-readiness-SXIYBEWC.js → fleet-readiness-F65CKZY5.js} +5 -5
- package/dist/{governing-source-QEXH6MIZ.js → governing-source-JFCTQXYK.js} +9 -9
- package/dist/{guest-init-DXXSPKHY.js → guest-init-MI4SEME4.js} +4 -4
- package/dist/{hook-fast-DPC75LFQ.js → hook-fast-GOH4T6SN.js} +1 -1
- package/dist/{host-checks-DN6HLRIW.js → host-checks-LEVAIIN4.js} +28 -28
- package/dist/{pending-V5FBWIJ4.js → host-key-OMLDWLNG.js} +3 -3
- package/dist/{image-tag-3KPTSRB4.js → image-tag-YJJONB64.js} +3 -3
- package/dist/index.js +4 -4
- package/dist/{init-SCUDJ6QI.js → init-JVKJTJNM.js} +21 -21
- package/dist/{init-6D3RKRRB.js → init-W3ATJYLX.js} +24 -22
- package/dist/{init-cmd-ELTRVJLG.js → init-cmd-XJOEU2PB.js} +10 -10
- package/dist/{init-update-4GUGHNS5.js → init-update-KX3FFQ5H.js} +8 -8
- package/dist/{install-cmd-6HGNO2HF.js → install-cmd-QTIIMO6B.js} +5 -5
- package/dist/{logs-HUENB7U4.js → logs-YVXVAYTD.js} +2 -2
- package/dist/{loop-LILQBIHK.js → loop-NNJN2XOW.js} +35 -35
- package/dist/{machine-UVPCJGJU.js → machine-OQOHEMJB.js} +21 -21
- package/dist/{mcp-serve-cmd-OFK3CS2T.js → mcp-serve-cmd-ECTAPDB3.js} +4 -4
- package/dist/{paths-VQ3ALYZ3.js → paths-M66LPPUF.js} +2 -2
- package/dist/{host-key-5P3ZL5XW.js → pending-7LC6XDRO.js} +3 -3
- package/dist/{pidfile-AVJFRZZT.js → pidfile-DSQOOAZV.js} +3 -3
- package/dist/{record-XE7Z3QGF.js → record-3KKIJ3XL.js} +3 -3
- package/dist/{runner-env-K4DOSDUV.js → runner-env-EX7YUIUH.js} +8 -8
- package/dist/{runner-identity-4RVY2MHX.js → runner-identity-LJWBXNM5.js} +4 -4
- package/dist/{runner-key-4OIOA3CD.js → runner-key-CAUO4RKG.js} +21 -21
- package/dist/{session-sender-N6QHL35T.js → session-sender-U2CTD7EX.js} +10 -10
- package/dist/{spec-cmd-EZGRJPUQ.js → spec-cmd-SAWQYHKM.js} +8 -8
- package/dist/{status-5RSSYZBU.js → status-IPIMYTG5.js} +28 -28
- package/dist/{sync-cmd-NEAZMEIL.js → sync-cmd-EBJQ5LMH.js} +9 -9
- package/dist/{update-steps-6JOHOMGM.js → update-steps-E2PP5DPR.js} +29 -29
- package/dist/{watch-FOY5LSSS.js → watch-6NRBX6VE.js} +9 -9
- package/dist/{work-claim-cmd-EJT55FZY.js → work-claim-cmd-SLVX2N4L.js} +12 -12
- package/dist/{work-cmd-KLPPJG4U.js → work-cmd-VSHZCXHQ.js} +7 -7
- package/dist/{work-comment-cmd-TT6TFF6Q.js → work-comment-cmd-3DCL7VHN.js} +8 -8
- package/dist/{work-demo-cmd-22PLEX4X.js → work-demo-cmd-SZJIKB5J.js} +7 -7
- package/dist/{work-logs-cmd-DWK5AYLK.js → work-logs-cmd-MRFSBMJM.js} +7 -7
- package/dist/{work-open-pr-cmd-MKHZBGA6.js → work-open-pr-cmd-N7GK7FUQ.js} +8 -8
- package/dist/{work-pr-cmd-P7PRHAJD.js → work-pr-cmd-HD5OIHUU.js} +7 -7
- package/dist/{work-proofs-cmd-7C22LBBE.js → work-proofs-cmd-H2GGE5HK.js} +8 -8
- package/dist/{work-proofs-record-SLIZUXUY.js → work-proofs-record-CJAFFWXG.js} +14 -14
- package/dist/{work-stop-cmd-U42TFT7X.js → work-stop-cmd-M6RIGF7S.js} +7 -7
- package/package.json +1 -1
- package/skill-pack/maintained/outerlayer-build/SKILL.md +22 -0
- package/dist/config-2EADRNJB.js +0 -17
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { decideInstalledSwitch } from './chunk-3JVYMD4G.js';
|
|
4
|
-
import { reportFailedStart, fitImageBuildMemory } from './chunk-
|
|
4
|
+
import { reportFailedStart, fitImageBuildMemory } from './chunk-FUOKDHRB.js';
|
|
5
5
|
import { fetchVersionMeta, npmVersion, npmSupportsProvenance, fetchTarballDigest, fetchProvenance, installVersion, auditSignatures } from './chunk-E7R2GIAW.js';
|
|
6
6
|
import { RUNNER_PROTOCOL } from './chunk-MH6QLXUO.js';
|
|
7
|
-
import { writePendingUpdate } from './chunk-
|
|
8
|
-
import { renderUpdateSteps } from './chunk-
|
|
9
|
-
import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-
|
|
10
|
-
import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, readProvisionOut, workdirProblem, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, startSender, finishJob, sampleGuest, foldSample, isContainerTracked, isMicroVmTracked, probeMicroVmCommand, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isTracked, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, GUEST_USAGE_INTERVAL_MS, hookLimitsFor, AttemptLogBook, microVmOomKills, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, serveLease, vmAlive, writeGuestGhConfig, ALREADY_RELEASED, inTeardown } from './chunk-
|
|
7
|
+
import { writePendingUpdate } from './chunk-ZCZY3Q55.js';
|
|
8
|
+
import { renderUpdateSteps } from './chunk-WA3HIJVK.js';
|
|
9
|
+
import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-MEIDQLXQ.js';
|
|
10
|
+
import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, readProvisionOut, workdirProblem, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, startSender, finishJob, sampleGuest, foldSample, isContainerTracked, isMicroVmTracked, probeMicroVmCommand, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isTracked, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, GUEST_USAGE_INTERVAL_MS, hookLimitsFor, AttemptLogBook, microVmOomKills, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, serveLease, vmAlive, writeGuestGhConfig, ALREADY_RELEASED, inTeardown } from './chunk-IPWKT5J7.js';
|
|
11
11
|
import { JOB_STATE_FORMAT, readsJobState, jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
12
|
-
import { realBlockedProbes, checkBlockedWithSlots, largeBuildMemoryBytes, LARGE_BUILD_DISK_BYTES, checkManagedRoom, sliceMemoryOf, createHousekeepingDocker, housekeepingDockerIfReachable, KIND_LABEL, RECIPE_KEY_LABEL } from './chunk-
|
|
13
|
-
import { writeMarker, readMarker, currentVersion, removeMarker, isInLayout, startedThroughCurrent, entryIn, versionDir, switchCurrent, cleanVersions, stagingDir } from './chunk-
|
|
12
|
+
import { realBlockedProbes, checkBlockedWithSlots, largeBuildMemoryBytes, LARGE_BUILD_DISK_BYTES, checkManagedRoom, sliceMemoryOf, createHousekeepingDocker, housekeepingDockerIfReachable, KIND_LABEL, RECIPE_KEY_LABEL } from './chunk-QGEGLZSY.js';
|
|
13
|
+
import { writeMarker, readMarker, currentVersion, removeMarker, isInLayout, startedThroughCurrent, entryIn, versionDir, switchCurrent, cleanVersions, stagingDir } from './chunk-KH4774QT.js';
|
|
14
14
|
import { RepoFilter } from './chunk-TBT347UY.js';
|
|
15
|
-
import { leaseTimeLeftMs, createContainerRuntime, withTunnelLog, LEASE_SECONDS, attemptNote, fetchManagedClaudeKey, holdManagedClaudeKey, fetchManagedBuildSettings, holdManagedBuildSettings, needsBuildSkill, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, provisionEnvironment, resolveHostBuild, listenOnBroker, hostEnvironment, deliverExecMaven, runWithSpawn, hostCommandEnvironment, lifecycleSteps, execArgv, lifecycleFailureReason, decideHostBuildSkill, prepareBranch, currentSkillCommand, formerSkillProblem, containerCommandExec, execCommandLine, startHostServices, HELPER_ENV, setUpRunnerCgroup, sweepImageBuilders, stoppedHelperReason, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, ensureNetworkReady, managedBuildSettingsFor, ADOPTED_FETCH_RETRY_WINDOW_MS, gitRemoteFor, startServicesFor, createLeaseChannel } from './chunk-
|
|
16
|
-
import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, resolveGoverningSource, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-
|
|
17
|
-
import { imageTag, writeUpdateStatus, pullInstruction, tagToPull } from './chunk-
|
|
15
|
+
import { leaseTimeLeftMs, createContainerRuntime, withTunnelLog, LEASE_SECONDS, attemptNote, fetchManagedClaudeKey, holdManagedClaudeKey, fetchManagedBuildSettings, holdManagedBuildSettings, needsBuildSkill, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, provisionEnvironment, resolveHostBuild, listenOnBroker, hostEnvironment, deliverExecMaven, runWithSpawn, hostCommandEnvironment, lifecycleSteps, execArgv, lifecycleFailureReason, decideHostBuildSkill, prepareBranch, currentSkillCommand, formerSkillProblem, containerCommandExec, execCommandLine, startHostServices, HELPER_ENV, setUpRunnerCgroup, sweepImageBuilders, stoppedHelperReason, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, savedStatesDir, readRecords, removeOldestUntil, ensureNetworkReady, managedBuildSettingsFor, ADOPTED_FETCH_RETRY_WINDOW_MS, gitRemoteFor, startServicesFor, createLeaseChannel, selectStaleIncomplete, selectExpired, selectToFit, removeSavedState } from './chunk-WH3FPBPO.js';
|
|
16
|
+
import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, resolveGoverningSource, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-DCBFUUDL.js';
|
|
17
|
+
import { imageTag, writeUpdateStatus, pullInstruction, tagToPull } from './chunk-UXC3RQLF.js';
|
|
18
18
|
import { isVersion, compareVersions, satisfiesRange } from './chunk-TQMI335S.js';
|
|
19
|
-
import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind, keepsHostBuilder, DEFAULT_UPDATE_MAX_WAIT_HOURS } from './chunk-
|
|
20
|
-
import {
|
|
21
|
-
import { writeJobFile, ensureRunnerIdentity, identityDockerFor, readJobFile, exceedsDisk, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, readJobFileChecked } from './chunk-
|
|
22
|
-
import { claimPidFile, releasePidFile, writePidFile, readPidFile } from './chunk-
|
|
19
|
+
import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind, keepsHostBuilder, DEFAULT_SAVED_STATE_MAX_BYTES, DEFAULT_UPDATE_MAX_WAIT_HOURS } from './chunk-YF7W7B7Y.js';
|
|
20
|
+
import { formatBytes, allocatedBytes, freeBytes } from './chunk-RRXS4CWE.js';
|
|
21
|
+
import { writeJobFile, ensureRunnerIdentity, identityDockerFor, readJobFile, exceedsDisk, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, readJobFileChecked } from './chunk-P2PNBDUT.js';
|
|
22
|
+
import { claimPidFile, releasePidFile, writePidFile, readPidFile } from './chunk-SAAVZ2BX.js';
|
|
23
23
|
import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
|
|
24
|
-
import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-
|
|
25
|
-
import { loadHostKey, ensureHostKey, signerFor } from './chunk-
|
|
24
|
+
import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-XDAMLX2L.js';
|
|
25
|
+
import { loadHostKey, ensureHostKey, signerFor } from './chunk-5TXQFZHY.js';
|
|
26
26
|
import { resolveVersion } from './chunk-RA3O54FC.js';
|
|
27
|
-
import { RUNNER_DIR_MODE, runnerDir, buildDir, attemptStamp, jobDir, RUNNER_FILE_MODE, jobsDir, pidFilePath, spoolDir, imagesDir, rootfsDir, builderCacheDiskPath } from './chunk-
|
|
28
|
-
import { parseClaimIdentity, parseClaimedRepositories, parseUnreachable, repositoriesOf, primaryOf, sharedUserEnvironment, JOB_MOUNT, takeClaudeCredential, heldClaudeCredential, currentClaudeCredential, fdName } from './chunk-
|
|
27
|
+
import { RUNNER_DIR_MODE, runnerDir, buildDir, attemptStamp, jobDir, RUNNER_FILE_MODE, jobsDir, pidFilePath, spoolDir, imagesDir, rootfsDir, builderCacheDiskPath } from './chunk-S6UM3N4R.js';
|
|
28
|
+
import { parseClaimIdentity, parseClaimedRepositories, parseUnreachable, repositoriesOf, primaryOf, sharedUserEnvironment, JOB_MOUNT, takeClaudeCredential, heldClaudeCredential, currentClaudeCredential, fdName } from './chunk-YLPJOUVF.js';
|
|
29
29
|
import { COMMAND_LOST_REASON, CONTAINER_STOPPED_REASON } from './chunk-MESOOLF4.js';
|
|
30
30
|
import { randomBytes, createHash } from 'crypto';
|
|
31
31
|
import { mkdirSync, existsSync, chmodSync, writeFileSync, renameSync, statSync, readdirSync, readFileSync, rmSync, closeSync, lstatSync } from 'fs';
|
|
@@ -775,6 +775,7 @@ async function runHousekeeping(options) {
|
|
|
775
775
|
}
|
|
776
776
|
}
|
|
777
777
|
}
|
|
778
|
+
freed += await removeSavedStates(options, nowMs, savedStatesDir(root));
|
|
778
779
|
freed += removeStaleBuilderCaches(options, nowMs);
|
|
779
780
|
const spoolPath = spoolDir(root);
|
|
780
781
|
const spoolFiles = listDir(spoolPath).flatMap((name) => {
|
|
@@ -795,6 +796,38 @@ async function runHousekeeping(options) {
|
|
|
795
796
|
log.line(`housekeeping: pass finished, freed ${formatBytes(freed)}`);
|
|
796
797
|
return { freedBytes: freed };
|
|
797
798
|
}
|
|
799
|
+
async function removeSavedStates(options, nowMs, dir) {
|
|
800
|
+
const records = readRecords(dir);
|
|
801
|
+
const reasons = /* @__PURE__ */ new Map();
|
|
802
|
+
for (const record of selectStaleIncomplete(records, nowMs)) reasons.set(record.id, "its copy never finished");
|
|
803
|
+
for (const record of selectExpired(records.filter((r) => r.complete), nowMs)) reasons.set(record.id, "it is at least 7 days old");
|
|
804
|
+
if (options.savedStateMax !== void 0) {
|
|
805
|
+
const kept = records.filter((record) => record.complete && !reasons.has(record.id));
|
|
806
|
+
const max = options.savedStateMax === "off" ? 0 : options.savedStateMax;
|
|
807
|
+
for (const record of selectToFit(kept, max)) reasons.set(record.id, "the saved states pass runner.housekeeping.savedStateMax");
|
|
808
|
+
}
|
|
809
|
+
let freed = 0;
|
|
810
|
+
const docker = options.docker;
|
|
811
|
+
for (const record of records.filter((r) => reasons.has(r.id))) {
|
|
812
|
+
try {
|
|
813
|
+
await removeSavedState(record, {
|
|
814
|
+
dir,
|
|
815
|
+
removeVolume: async (name) => {
|
|
816
|
+
if (docker === void 0) throw new Error("Docker is not available");
|
|
817
|
+
await docker.removeVolume(name);
|
|
818
|
+
}
|
|
819
|
+
});
|
|
820
|
+
freed += record.bytes;
|
|
821
|
+
options.log.line(`housekeeping: removed saved state ${record.id} (${formatBytes(record.bytes)}), ${reasons.get(record.id)}`);
|
|
822
|
+
} catch (err) {
|
|
823
|
+
options.log.error(`housekeeping: could not remove saved state ${record.id} (${describeSaved(record)}): ${describeCallFailure(err)}`);
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
return freed;
|
|
827
|
+
}
|
|
828
|
+
function describeSaved(record) {
|
|
829
|
+
return record.volume ?? record.path ?? record.kind;
|
|
830
|
+
}
|
|
798
831
|
async function removeStaleRootDisks(root, unfinished, options, docker) {
|
|
799
832
|
const dir = rootfsDir(root);
|
|
800
833
|
const inUse = new Set(unfinished.flatMap((job) => job.microvm?.rootfs === void 0 ? [] : [job.microvm.rootfs]));
|
|
@@ -1416,6 +1449,34 @@ function holdWithoutRoomForLarge(state) {
|
|
|
1416
1449
|
}
|
|
1417
1450
|
return false;
|
|
1418
1451
|
}
|
|
1452
|
+
async function freeDiskFromSavedStates(state, root, readFree) {
|
|
1453
|
+
const dir = savedStatesDir(root);
|
|
1454
|
+
const records = readRecords(dir).filter((record) => record.complete);
|
|
1455
|
+
if (records.length === 0) return readFree();
|
|
1456
|
+
const log = logOf(state);
|
|
1457
|
+
const minimum = state.config.housekeeping?.minFreeDisk ?? 0;
|
|
1458
|
+
try {
|
|
1459
|
+
state.deps.housekeeping ??= {};
|
|
1460
|
+
const names = { run: state.deps.housekeeping.run, runnerId: runnerLabelValue(state.config.configPath), builder: builderName(state.config.configPath) };
|
|
1461
|
+
const hostBuilder = keepsHostBuilder(state.config, state.deps.blocked?.builderDiskPinned);
|
|
1462
|
+
const docker = state.deps.housekeeping.docker ?? (hostBuilder ? createHousekeepingDocker(names) : await housekeepingDockerIfReachable(names));
|
|
1463
|
+
await removeOldestUntil({
|
|
1464
|
+
records,
|
|
1465
|
+
deps: {
|
|
1466
|
+
dir,
|
|
1467
|
+
removeVolume: async (name) => {
|
|
1468
|
+
if (docker === void 0) throw new Error("Docker is not available");
|
|
1469
|
+
await docker.removeVolume(name);
|
|
1470
|
+
}
|
|
1471
|
+
},
|
|
1472
|
+
enough: () => readFree() >= minimum,
|
|
1473
|
+
log: (line) => log.line(`freeing disk: ${line}`)
|
|
1474
|
+
});
|
|
1475
|
+
} catch (err) {
|
|
1476
|
+
log.error(`saved states could not be removed to free disk: ${describeCallFailure(err)}`);
|
|
1477
|
+
}
|
|
1478
|
+
return readFree();
|
|
1479
|
+
}
|
|
1419
1480
|
function recordPendingUpdate(state, record) {
|
|
1420
1481
|
const text = record === void 0 ? "none" : JSON.stringify(record);
|
|
1421
1482
|
if (state.updateRecord === text) return;
|
|
@@ -1723,11 +1784,13 @@ function holdWhenBlocked(state, jailer) {
|
|
|
1723
1784
|
}
|
|
1724
1785
|
return false;
|
|
1725
1786
|
}
|
|
1726
|
-
function holdOffForDisk(state) {
|
|
1787
|
+
async function holdOffForDisk(state) {
|
|
1727
1788
|
const minimum = state.config.housekeeping?.minFreeDisk ?? 0;
|
|
1728
1789
|
const root = runnerDir(state.config.configPath);
|
|
1729
|
-
const
|
|
1790
|
+
const readFree = () => minimum === 0 ? Number.POSITIVE_INFINITY : (state.deps.freeBytes ?? freeBytes)(root) ?? Number.POSITIVE_INFINITY;
|
|
1791
|
+
let free = readFree();
|
|
1730
1792
|
const log = logOf(state);
|
|
1793
|
+
if (free < minimum) free = await freeDiskFromSavedStates(state, root, readFree);
|
|
1731
1794
|
if (free < minimum) {
|
|
1732
1795
|
if (state.lowDisk === void 0) {
|
|
1733
1796
|
log.line(
|
|
@@ -1769,6 +1832,7 @@ async function housekeepingPass(state) {
|
|
|
1769
1832
|
configPath: state.config.configPath,
|
|
1770
1833
|
keepDays: config.jobsKeepDays,
|
|
1771
1834
|
buildCacheMax: config.buildCacheMax,
|
|
1835
|
+
savedStateMax: config.savedStateMax ?? DEFAULT_SAVED_STATE_MAX_BYTES,
|
|
1772
1836
|
removeHostBuilder: !hostBuilder,
|
|
1773
1837
|
docker,
|
|
1774
1838
|
now: state.deps.now ?? (() => /* @__PURE__ */ new Date()),
|
|
@@ -1797,7 +1861,7 @@ async function runTick(state) {
|
|
|
1797
1861
|
}
|
|
1798
1862
|
const jailer = state.config.managed === true && state.deps.blocked?.jailer === void 0 ? await jailerState(state) : void 0;
|
|
1799
1863
|
if (holdWhenBlocked(state, jailer)) return;
|
|
1800
|
-
if (holdOffForDisk(state)) return;
|
|
1864
|
+
if (await holdOffForDisk(state)) return;
|
|
1801
1865
|
if (holdWithoutRoomForLarge(state)) return;
|
|
1802
1866
|
const log = logOf(state);
|
|
1803
1867
|
const repoFilter = new RepoFilter(state.config.repos);
|
|
@@ -1858,7 +1922,7 @@ var CLAIM_REFUSAL_CODES = new Set(
|
|
|
1858
1922
|
"pull_request_from_fork pull_request_on_default_branch pull_request_ambiguous pull_request_repository_not_connected repository_not_reachable branch_claimed_elsewhere".split(" ")
|
|
1859
1923
|
);
|
|
1860
1924
|
async function tryClaimAndStart(state, item, queue) {
|
|
1861
|
-
const { postJson: postJson2 } = await import('./work-cmd-
|
|
1925
|
+
const { postJson: postJson2 } = await import('./work-cmd-VSHZCXHQ.js');
|
|
1862
1926
|
const log = logOf(state);
|
|
1863
1927
|
const hostKey = await loadHostKey(state.config.configPath);
|
|
1864
1928
|
const claim = await retrySend(
|
|
@@ -3191,7 +3255,7 @@ async function startRunner(configPath, deps, startup) {
|
|
|
3191
3255
|
check: update.check ? () => update.check(configPath) : async () => {
|
|
3192
3256
|
const held = heldClaudeCredential();
|
|
3193
3257
|
const env = held === void 0 ? process.env : { ...process.env, [held.variable]: held.value };
|
|
3194
|
-
return (await import('./check-
|
|
3258
|
+
return (await import('./check-SPMUN5C4.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
|
|
3195
3259
|
},
|
|
3196
3260
|
now: () => (deps.now ?? (() => /* @__PURE__ */ new Date()))().getTime(),
|
|
3197
3261
|
log
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { RELAY_PORT, GATEWAY_SOCKET, GATEWAY_PORT, CLAUDE_SOCKET, CLAUDE_PORT, DESTINATION_BASE_PORT } from './chunk-
|
|
3
|
+
import { RELAY_PORT, GATEWAY_SOCKET, GATEWAY_PORT, CLAUDE_SOCKET, CLAUDE_PORT, DESTINATION_BASE_PORT } from './chunk-YLPJOUVF.js';
|
|
4
4
|
import { symlinkSync, unlinkSync } from 'fs';
|
|
5
5
|
import { join } from 'path';
|
|
6
6
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { parseSize, BUILD_LABEL, RUNNER_LABEL, runnerLabelValue } from './chunk-
|
|
4
|
-
import { buildsDir, rootfsDir, runnerDir, imagesDir, builderCacheDiskPath } from './chunk-
|
|
3
|
+
import { parseSize, BUILD_LABEL, RUNNER_LABEL, runnerLabelValue } from './chunk-P2PNBDUT.js';
|
|
4
|
+
import { buildsDir, rootfsDir, runnerDir, imagesDir, builderCacheDiskPath } from './chunk-S6UM3N4R.js';
|
|
5
5
|
import { spawnSync } from 'child_process';
|
|
6
6
|
import { statfsSync, statSync, existsSync, readdirSync } from 'fs';
|
|
7
7
|
import { dirname, join } from 'path';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { isSameProcess } from './chunk-JBJTC3UU.js';
|
|
4
|
-
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-
|
|
4
|
+
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-S6UM3N4R.js';
|
|
5
5
|
import { existsSync, readFileSync, mkdirSync, writeFileSync, rmSync } from 'fs';
|
|
6
6
|
import { dirname } from 'path';
|
|
7
7
|
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { GH_VERSION, VOICE_PACK_FILES, VOICE_PACK_VERSION, FFMPEG_STATIC, FFMPEG_BUILD_TAG, GH_SHA256, TINI_SHA256, TINI_VERSION, HEADLESS_SHELL_REVISION, HEADLESS_SHELL_BASE_URL, PLAYWRIGHT_FFMPEG_BASE_URL, PLAYWRIGHT_FFMPEG_REVISION, HEADLESS_SHELL, PLAYWRIGHT_FFMPEG, PLAYWRIGHT_VERSION } from './chunk-D3CT6XQ4.js';
|
|
4
|
-
import { PROXY_WARNING_FLAG } from './chunk-
|
|
4
|
+
import { PROXY_WARNING_FLAG } from './chunk-YLPJOUVF.js';
|
|
5
5
|
import { RELAY_ID, RELAY_USER } from './chunk-MESOOLF4.js';
|
|
6
6
|
|
|
7
7
|
createRequire(import.meta.url);
|
|
8
8
|
|
|
9
9
|
// src/runner/image/claude-wrapper.ts
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return [
|
|
10
|
+
var UNIVERSAL_VERSIONS_FILE = "/etc/outerlayer/universal-versions.json";
|
|
11
|
+
function claudeWrapperScript() {
|
|
12
|
+
return [
|
|
13
|
+
"#!/bin/sh",
|
|
14
|
+
`if [ -f ${UNIVERSAL_VERSIONS_FILE} ]; then PATH="$PATH:/opt/outerlayer/bin"; else PATH=/opt/outerlayer/bin:$PATH; fi`,
|
|
15
|
+
"export PATH",
|
|
16
|
+
'exec /opt/outerlayer/claude/bin/claude "$@"',
|
|
17
|
+
""
|
|
18
|
+
].join("\n");
|
|
13
19
|
}
|
|
14
20
|
|
|
15
21
|
// src/runner/image/dockerfiles.ts
|
|
@@ -106,7 +112,7 @@ function toolsDockerfile(parts) {
|
|
|
106
112
|
"RUN mkdir -p /out/opt/outerlayer/bin /out/usr/local/bin /out/etc/claude-code /out/build \\",
|
|
107
113
|
" && cp /usr/local/bin/node /out/opt/outerlayer/bin/node \\",
|
|
108
114
|
` && printf '%s\\n' '#!/bin/sh' 'exec /opt/outerlayer/bin/node /opt/outerlayer/cli/dist/index.js "$@"' > /out/usr/local/bin/outerlayer \\`,
|
|
109
|
-
` && printf '%s\\n' ${claudeWrapperScript(
|
|
115
|
+
` && printf '%s\\n' ${claudeWrapperScript().trimEnd().split("\n").map((line) => `'${line}'`).join(" ")} > /out/usr/local/bin/claude \\`,
|
|
110
116
|
` && printf '%s\\n' '${tools}' > /out/opt/outerlayer/tools.json \\`,
|
|
111
117
|
` && printf '%s\\n' '${managedSettings}' > /out/etc/claude-code/managed-settings.json \\`,
|
|
112
118
|
" && chmod 0755 /out/usr/local/bin/outerlayer /out/usr/local/bin/claude \\",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { LiveUploader } from './chunk-
|
|
4
|
-
import { spoolDir } from './chunk-
|
|
3
|
+
import { LiveUploader } from './chunk-I2MFIT6X.js';
|
|
4
|
+
import { spoolDir } from './chunk-V2S2WRGD.js';
|
|
5
5
|
import { CaptureDaemon } from './chunk-GH2HEEOH.js';
|
|
6
6
|
import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
|
|
7
7
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { isVersion, compareVersions } from './chunk-TQMI335S.js';
|
|
4
|
-
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-
|
|
4
|
+
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-S6UM3N4R.js';
|
|
5
5
|
import { readFileSync, mkdirSync, writeFileSync, renameSync } from 'fs';
|
|
6
6
|
import { join } from 'path';
|
|
7
7
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { removeRetiredSkills } from './chunk-RPST2GNG.js';
|
|
4
|
-
import { defaultFetch, resolveGatewayCredentials } from './chunk-
|
|
4
|
+
import { defaultFetch, resolveGatewayCredentials } from './chunk-3KGXXTMN.js';
|
|
5
5
|
import { appendContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
6
6
|
import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-HH3BQG65.js';
|
|
7
7
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
8
8
|
import { writeDegraded, writeSourceCache, SOURCE_CACHE_TTL_RETRY_MS, writeContextManifest, SOURCE_CACHE_TTL_SUCCESS_MS, readSourceCache, isSourceCacheFresh, clearDegraded } from './chunk-YQR6E6OV.js';
|
|
9
9
|
import { normalizeRepoName, parseOuterlayerConfig, classifyTree, emitTree } from './chunk-2EEW6FJN.js';
|
|
10
10
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
11
|
-
import { withTokenHeader } from './chunk-
|
|
11
|
+
import { withTokenHeader } from './chunk-YLPJOUVF.js';
|
|
12
12
|
import { execFileSync } from 'child_process';
|
|
13
13
|
import { existsSync, mkdirSync, writeFileSync, chmodSync, lstatSync, readFileSync, copyFileSync } from 'fs';
|
|
14
14
|
import { isAbsolute, join, dirname } from 'path';
|
|
@@ -684,7 +684,7 @@ async function missingControlPlane(cwd, sessionId, home, env) {
|
|
|
684
684
|
cleanupEarlierCopies(dirs);
|
|
685
685
|
}
|
|
686
686
|
if (!contextPossiblyGoverned(cwd, home)) return void 0;
|
|
687
|
-
const { governanceOf } = await import('./control-plane-launch-
|
|
687
|
+
const { governanceOf } = await import('./control-plane-launch-3MBWPYWZ.js');
|
|
688
688
|
if (await governanceOf({ cwd, env, home }) !== "governed") return void 0;
|
|
689
689
|
recordMissingContext(dirs, sessionId, home);
|
|
690
690
|
const launcher = `${cliInvocation()} claude`;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { staleBuildRefusal, staleBuildWarning, detectCi } from './chunk-
|
|
3
|
+
import { staleBuildRefusal, staleBuildWarning, detectCi } from './chunk-I2MFIT6X.js';
|
|
4
4
|
import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
|
|
5
5
|
import { detectActiveSession } from './chunk-IP7BIBXJ.js';
|
|
6
|
-
import { autoConnect } from './chunk-
|
|
6
|
+
import { autoConnect } from './chunk-MRLJK4GZ.js';
|
|
7
7
|
import { C } from './chunk-ANPNT6PM.js';
|
|
8
8
|
import { readEffectiveArtifactSpoolState, localArtifactIds, isArtifactTombstoned, artifactBlobsDir, appendArtifactRecord, artifactsSpoolPath, findPendingArtifactRecord, sanitizeTerminal, appendArtifactTombstone } from './chunk-VEVNGDTP.js';
|
|
9
|
-
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-
|
|
9
|
+
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-3KGXXTMN.js';
|
|
10
10
|
import { resolveRepoIdentity } from './chunk-GH2HEEOH.js';
|
|
11
11
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
12
12
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { stripTerminalControls } from './chunk-
|
|
4
|
-
import { tagToPull, imageTag, pullInstruction, readUpdateStatus, runnerImageVersion } from './chunk-
|
|
3
|
+
import { stripTerminalControls } from './chunk-IPWKT5J7.js';
|
|
4
|
+
import { tagToPull, imageTag, pullInstruction, readUpdateStatus, runnerImageVersion } from './chunk-UXC3RQLF.js';
|
|
5
5
|
import { readFileSync } from 'fs';
|
|
6
6
|
|
|
7
7
|
createRequire(import.meta.url);
|
|
@@ -55,7 +55,7 @@ function envNamesOf(row, imageEnv) {
|
|
|
55
55
|
return [...new Set(names)].sort();
|
|
56
56
|
}
|
|
57
57
|
async function readOwnContainer(deps = {}) {
|
|
58
|
-
const run = deps.run ?? (await import('./docker-
|
|
58
|
+
const run = deps.run ?? (await import('./docker-YMRPMDOW.js')).spawnRun;
|
|
59
59
|
const ids = candidateIds(deps.env ?? process.env, deps.readFile ?? ((path) => readFileSync(path, "utf8")));
|
|
60
60
|
if (ids.length === 0) return { ok: false, reason: "the runner cannot tell which container it runs in: HOSTNAME is empty and /proc/self/mountinfo names none" };
|
|
61
61
|
let problem = "";
|