@outerlayer/cli 0.30.2-next.20261020115557 → 0.31.0-next.20261020133458
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-ZNYAXAWI.js → agent-setup-E7CMDUR5.js} +6 -6
- package/dist/{bridge-FI7OF2H3.js → bridge-3EG6Q34K.js} +2 -2
- package/dist/{build-PXRDWSN4.js → build-7QD3VJ6U.js} +4 -4
- package/dist/build-info.json +1 -1
- package/dist/{builder-UNVHUZL7.js → builder-REQJGZJP.js} +5 -5
- package/dist/{check-N3XNBPDH.js → check-UUWPPYC3.js} +47 -34
- package/dist/{chunk-7YSR636F.js → chunk-2JPVI45I.js} +4 -4
- package/dist/{chunk-SJ4DX2AD.js → chunk-4EU4X2ML.js} +3 -3
- package/dist/{chunk-MBZTX4V2.js → chunk-4XPAQXJF.js} +1 -1
- package/dist/{chunk-TGUWHA27.js → chunk-5FHNQST3.js} +3 -3
- package/dist/{chunk-YVY3IVYV.js → chunk-77F7NGAZ.js} +3 -3
- package/dist/{chunk-3YLHIXLR.js → chunk-7UD5ONVI.js} +2 -2
- package/dist/{chunk-IRF2FKB5.js → chunk-APSYTJ6I.js} +1 -1
- package/dist/{chunk-HMAYAMOQ.js → chunk-D7O7LA2O.js} +11 -11
- package/dist/{chunk-AM3GMWQK.js → chunk-F3EF56LQ.js} +1 -1
- package/dist/{chunk-4OKXGZM3.js → chunk-GPRIHEGQ.js} +6 -6
- package/dist/chunk-GYCKMZQJ.js +211 -0
- package/dist/{chunk-WHCDULC4.js → chunk-HDSDUTX4.js} +17 -1
- package/dist/{chunk-TKJISBV6.js → chunk-HIGJTX5U.js} +1 -1
- package/dist/{chunk-DBELICD6.js → chunk-IBG2ESJX.js} +5 -5
- package/dist/{chunk-PS3AHE6C.js → chunk-JCCUTTRI.js} +3 -3
- package/dist/{chunk-SOWXLIDN.js → chunk-KP6R7CV3.js} +1 -1
- package/dist/{chunk-EEZO2T24.js → chunk-KQLUUTLC.js} +28 -70
- package/dist/{chunk-DLY22KHX.js → chunk-NIS2PIS4.js} +2 -2
- package/dist/{chunk-5HZDPOJI.js → chunk-NJS7JJYN.js} +3 -3
- package/dist/{chunk-2ZMJFGOZ.js → chunk-P7BEZAEU.js} +7 -2
- package/dist/{chunk-MBVSVQVH.js → chunk-QQGZ5THT.js} +1 -1
- package/dist/{chunk-6CNNRO53.js → chunk-RJYKTWUP.js} +3 -3
- package/dist/{chunk-3F7RC3UA.js → chunk-RQGHHEM7.js} +3 -3
- package/dist/{chunk-3XUZPSBV.js → chunk-S4IJPYDV.js} +2 -2
- package/dist/{chunk-B7NT4YZ3.js → chunk-SNLMMLDD.js} +23 -19
- package/dist/{chunk-IRTZYDZO.js → chunk-T5TBGOT6.js} +1 -1
- package/dist/{chunk-QWJBTFAF.js → chunk-TZQIEUDE.js} +1 -1
- package/dist/{chunk-FTGJ3DPV.js → chunk-V36AOTBP.js} +72 -30
- package/dist/{chunk-ZNMVBHGJ.js → chunk-W4ICX5WW.js} +3 -3
- package/dist/{chunk-RJDJFRRY.js → chunk-WRW6QCI6.js} +1 -1
- package/dist/{chunk-4SE6GXQA.js → chunk-WWHWF3KZ.js} +5 -5
- package/dist/{chunk-44CGGHJF.js → chunk-X7UUIHGH.js} +1 -1
- package/dist/{chunk-I3WLYIIW.js → chunk-XAV6XCI2.js} +1 -1
- package/dist/{chunk-TN2XMMD7.js → chunk-XTNMIV77.js} +1 -1
- package/dist/{chunk-5VWKCY2E.js → chunk-XU5O5JCZ.js} +11 -11
- package/dist/{chunk-B5CQJBZ2.js → chunk-YQTQQTYK.js} +3 -3
- package/dist/{chunk-D3LS7E7U.js → chunk-YV7WULXQ.js} +1 -1
- package/dist/{chunk-U5DC57AF.js → chunk-Z7HAIZ6X.js} +3 -3
- package/dist/{chunk-VL3CF4DZ.js → chunk-ZBN4JGTJ.js} +1 -1
- package/dist/{chunk-IUV6MUQB.js → chunk-ZD7J35IX.js} +5 -5
- package/dist/{chunk-LJIFCG4G.js → chunk-ZZSQYOY5.js} +1 -1
- package/dist/{claude-launcher-ZDZQXW76.js → claude-launcher-IG7GKYIT.js} +1 -1
- package/dist/{cli-4464W6E6.js → cli-SOR7FKHH.js} +101 -101
- package/dist/{command-2MHSC5AE.js → command-BSKFMJEH.js} +23 -23
- package/dist/{config-VM6GKCCE.js → config-3JRFDYZL.js} +2 -2
- package/dist/{connect-cmd-U2DY4OZU.js → connect-cmd-SCAZ2RIS.js} +6 -6
- package/dist/{container-start-XMY3VOZB.js → container-start-6AZJQJCH.js} +22 -22
- package/dist/{control-plane-launch-2AC4BTWL.js → control-plane-launch-JCUNTTC3.js} +5 -5
- package/dist/{dist-IDP7Q53A.js → dist-BE3LYGNH.js} +1 -1
- package/dist/{docker-K442NGCS.js → docker-CVRCHNYC.js} +5 -5
- package/dist/{doctor-5K4UTAT3.js → doctor-XZ47GD4V.js} +47 -25
- package/dist/{emit-artifact-cmd-IK7GAS7V.js → emit-artifact-cmd-ADBJJDTU.js} +10 -10
- package/dist/{emit-criteria-cmd-TGBRMX3P.js → emit-criteria-cmd-ZGTK2YAR.js} +7 -7
- package/dist/{emit-finding-cmd-KXCNLJLK.js → emit-finding-cmd-VLUMTZV7.js} +8 -8
- package/dist/{emit-result-cmd-WJBLCVDL.js → emit-result-cmd-ZUH5P6OY.js} +10 -10
- package/dist/{emit-step-cmd-OYX5X65A.js → emit-step-cmd-J5APMMJ3.js} +8 -8
- package/dist/{exec-client-RMGGSTGR.js → exec-client-JLCFGCZT.js} +3 -3
- package/dist/{findings-cmd-HFDOB6AC.js → findings-cmd-A3N3MW2C.js} +8 -8
- package/dist/{fleet-readiness-5S2GCWZE.js → fleet-readiness-JEQ5ITV6.js} +5 -5
- package/dist/{governing-source-WM3WQ6J2.js → governing-source-QGWOWLCT.js} +10 -10
- package/dist/{guest-init-O7INUZWE.js → guest-init-BI7267TB.js} +4 -4
- package/dist/{hook-fast-A2N3PSXI.js → hook-fast-UFHR6EKZ.js} +1 -1
- package/dist/{host-key-HJ66C6MD.js → host-key-KAYMYRO3.js} +3 -3
- package/dist/{image-tag-LLXOFXKP.js → image-tag-OYT7UG7Y.js} +3 -3
- package/dist/index.js +4 -4
- package/dist/{init-IADOHXZR.js → init-G2GIATYO.js} +22 -22
- package/dist/{init-WEFM7P2Y.js → init-WAX2O5EW.js} +22 -22
- package/dist/{init-cmd-6UPRZDCC.js → init-cmd-RJCTCNUA.js} +11 -11
- package/dist/{init-update-RN2PZ3MT.js → init-update-N6UBQH2K.js} +9 -9
- package/dist/{install-GZ27NW6U.js → install-OIRIEOS7.js} +4 -4
- package/dist/{install-cmd-26OY23ZZ.js → install-cmd-IYWVR6WX.js} +5 -5
- package/dist/{logs-7O3ELY35.js → logs-C3RJ3ZTC.js} +2 -2
- package/dist/{loop-W2D5FHES.js → loop-PJBYILSU.js} +34 -34
- package/dist/{machine-NESBHOCL.js → machine-2P3V7SVW.js} +18 -18
- package/dist/{mcp-serve-cmd-AT7G6J5V.js → mcp-serve-cmd-PB4UOTGL.js} +4 -4
- package/dist/{paths-32THAYBB.js → paths-OK2EZS7W.js} +2 -2
- package/dist/{pending-6CMYQHFL.js → pending-RKVRYOTF.js} +3 -3
- package/dist/{pidfile-3BH6WPOA.js → pidfile-BMFAUQAI.js} +3 -3
- package/dist/{record-WHPJCC6Y.js → record-26AH6WDB.js} +3 -3
- package/dist/{runner-env-6Q45P3IE.js → runner-env-66RAFIDJ.js} +5 -5
- package/dist/{runner-identity-KH7HADNF.js → runner-identity-D3XUB36T.js} +5 -5
- package/dist/{runner-key-C4ZWPXYD.js → runner-key-JYVNUWAY.js} +22 -22
- package/dist/{session-sender-N4DOGRTN.js → session-sender-KD2MDPZ7.js} +11 -11
- package/dist/{spec-cmd-2ISEEZVA.js → spec-cmd-COQYDQES.js} +8 -8
- package/dist/{status-GDI44URF.js → status-C6IM56UC.js} +25 -25
- package/dist/{sync-cmd-E5VRZ5DK.js → sync-cmd-RXUKCJDG.js} +10 -10
- package/dist/{watch-P6XAYDM2.js → watch-F6ZWVYJ5.js} +10 -10
- package/dist/{work-claim-cmd-MFPUOWXL.js → work-claim-cmd-NNLX6KLD.js} +11 -11
- package/dist/{work-cmd-LXDWHKMQ.js → work-cmd-I37TTGHI.js} +8 -8
- package/dist/{work-comment-cmd-2HSY4JA7.js → work-comment-cmd-C7JGN64M.js} +8 -8
- package/dist/{work-logs-cmd-2MQR4JHN.js → work-logs-cmd-LL6BSU5H.js} +8 -8
- package/dist/{work-open-pr-cmd-QUJVL4TF.js → work-open-pr-cmd-K6KESE3Q.js} +9 -9
- package/dist/{work-pr-cmd-HOS5ZHJI.js → work-pr-cmd-TLIB4AJK.js} +8 -8
- package/dist/{work-stop-cmd-4J2NJ7KL.js → work-stop-cmd-CVFSGSZK.js} +8 -8
- package/package.json +1 -1
- package/skill-pack/maintained/outerlayer-build/SKILL.md +7 -4
- package/dist/chunk-ERXY3FXG.js +0 -116
|
@@ -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-HDSDUTX4.js';
|
|
4
4
|
import { symlinkSync, unlinkSync } from 'fs';
|
|
5
5
|
import { join } from 'path';
|
|
6
6
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { uploadSpooledSteps } from './chunk-
|
|
3
|
+
import { uploadSpooledSteps } from './chunk-JCCUTTRI.js';
|
|
4
4
|
import { LaunchFilter } from './chunk-ESVW4MJY.js';
|
|
5
5
|
import { RepoFilter } from './chunk-TBT347UY.js';
|
|
6
6
|
import { migrateLegacyArtifactSidecars, planArtifactUpload, artifactsStatePath, sanitizeTerminal, acquireArtifactSpoolLock, artifactBlobsDir, resolveArtifactTurnIndex, isArtifactTombstoned, ARTIFACT_RETRY_MAX_AGE_MS, writeArtifactSpoolState, reclaimUnneededArtifactBlobs, neededArtifactShas } from './chunk-HSUUTD4E.js';
|
|
7
|
-
import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-
|
|
7
|
+
import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-V36AOTBP.js';
|
|
8
8
|
import { C } from './chunk-ANPNT6PM.js';
|
|
9
|
-
import { cliFetch, resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-
|
|
9
|
+
import { cliFetch, resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-F3EF56LQ.js';
|
|
10
10
|
import { readCloudConfig, cloudConfigPath, writeCloudConfig } from './chunk-PJDQPF5N.js';
|
|
11
|
-
import { signerFor, signRunnerRequest } from './chunk-
|
|
12
|
-
import { writeSyncStatus, spoolDir } from './chunk-
|
|
11
|
+
import { signerFor, signRunnerRequest } from './chunk-APSYTJ6I.js';
|
|
12
|
+
import { writeSyncStatus, spoolDir } from './chunk-WRW6QCI6.js';
|
|
13
13
|
import { readLatestProvenanceForSession, readContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
14
14
|
import { hookExecSpoolPath } from './chunk-2O5KA67H.js';
|
|
15
15
|
import { applyReportedCost } from './chunk-BKO6JEZI.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
|
|
4
|
-
import { autoConnect, detectActiveSession } from './chunk-
|
|
4
|
+
import { autoConnect, detectActiveSession } from './chunk-4EU4X2ML.js';
|
|
5
5
|
import { acquireSpoolLockAt } from './chunk-HSUUTD4E.js';
|
|
6
|
-
import { resolveRepoIdentity } from './chunk-
|
|
6
|
+
import { resolveRepoIdentity } from './chunk-V36AOTBP.js';
|
|
7
7
|
import { C } from './chunk-ANPNT6PM.js';
|
|
8
|
-
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-
|
|
8
|
+
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-F3EF56LQ.js';
|
|
9
9
|
import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
|
|
10
10
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
11
11
|
import { StepNameSchema, StepBodySchema } from './chunk-IWFYKNAO.js';
|
|
@@ -1,86 +1,38 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, provisionEnvironment, readProvisionOut, resolveHostBuild, workdirProblem, listenOnBroker, hostEnvironment, hostCommandEnvironment, execArgv, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, execCommandLine, startSender, startHostServices, finishJob, isContainerTracked, isMicroVmTracked, probeMicroVmCommand, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isTracked, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, hookLimitsFor, AttemptLogBook, microVmOomKills, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, serveLease, vmAlive, writeGuestGhConfig, ALREADY_RELEASED, inTeardown } from './chunk-
|
|
3
|
+
import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, provisionEnvironment, readProvisionOut, resolveHostBuild, workdirProblem, listenOnBroker, hostEnvironment, hostCommandEnvironment, execArgv, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, execCommandLine, startSender, startHostServices, finishJob, isContainerTracked, isMicroVmTracked, probeMicroVmCommand, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isTracked, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, hookLimitsFor, AttemptLogBook, microVmOomKills, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, serveLease, vmAlive, writeGuestGhConfig, ALREADY_RELEASED, inTeardown } from './chunk-SNLMMLDD.js';
|
|
4
4
|
import { decideInstalledSwitch } from './chunk-3JVYMD4G.js';
|
|
5
5
|
import { fetchVersionMeta, npmVersion, npmSupportsProvenance, fetchTarballDigest, fetchProvenance, installVersion, auditSignatures } from './chunk-E7R2GIAW.js';
|
|
6
6
|
import { RUNNER_PROTOCOL } from './chunk-6C5MZ7UG.js';
|
|
7
|
-
import { writePendingUpdate } from './chunk-
|
|
7
|
+
import { writePendingUpdate } from './chunk-TZQIEUDE.js';
|
|
8
8
|
import { JOB_STATE_FORMAT, readsJobState, jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
9
|
-
import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-
|
|
10
|
-
import { currentSkillCommand, formerSkillProblem,
|
|
9
|
+
import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-X7UUIHGH.js';
|
|
10
|
+
import { currentSkillCommand, formerSkillProblem, realBlockedProbes, checkBlocked } from './chunk-GYCKMZQJ.js';
|
|
11
11
|
import { freeBytes, formatBytes } from './chunk-YYYRBYWG.js';
|
|
12
|
-
import { writeMarker, readMarker, currentVersion, removeMarker, entryIn, versionDir, startedThroughCurrent, switchCurrent, isInLayout, cleanVersions, stagingDir } from './chunk-
|
|
12
|
+
import { writeMarker, readMarker, currentVersion, removeMarker, entryIn, versionDir, startedThroughCurrent, switchCurrent, isInLayout, cleanVersions, stagingDir } from './chunk-ZZSQYOY5.js';
|
|
13
13
|
import { RepoFilter } from './chunk-TBT347UY.js';
|
|
14
|
-
import { leaseTimeLeftMs, createContainerRuntime, withTunnelLog, LEASE_SECONDS, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, lifecycleSteps, lifecycleFailureReason, prepareBranch, containerCommandExec, setUpRunnerCgroup, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, gitRemoteFor, startServicesFor, createLeaseChannel } from './chunk-
|
|
15
|
-
import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-
|
|
16
|
-
import { tagToPull, pullInstruction, imageTag, writeUpdateStatus } from './chunk-
|
|
14
|
+
import { leaseTimeLeftMs, createContainerRuntime, withTunnelLog, LEASE_SECONDS, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, lifecycleSteps, lifecycleFailureReason, prepareBranch, containerCommandExec, setUpRunnerCgroup, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, gitRemoteFor, startServicesFor, createLeaseChannel } from './chunk-XU5O5JCZ.js';
|
|
15
|
+
import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-WWHWF3KZ.js';
|
|
16
|
+
import { tagToPull, pullInstruction, imageTag, writeUpdateStatus } from './chunk-YV7WULXQ.js';
|
|
17
17
|
import { isVersion, compareVersions, satisfiesRange } from './chunk-TQMI335S.js';
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import { claimPidFile, writePidFile, readPidFile, releasePidFile } from './chunk-IRTZYDZO.js';
|
|
18
|
+
import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind, DEFAULT_UPDATE_MAX_WAIT_HOURS } from './chunk-P7BEZAEU.js';
|
|
19
|
+
import { claimPidFile, writePidFile, readPidFile, releasePidFile } from './chunk-T5TBGOT6.js';
|
|
21
20
|
import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
|
|
22
|
-
import { writeJobFile, ensureRunnerIdentity, readJobFile, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, BUILD_LABEL, RUNNER_LABEL, readJobFileChecked } from './chunk-
|
|
21
|
+
import { writeJobFile, ensureRunnerIdentity, readJobFile, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, BUILD_LABEL, RUNNER_LABEL, readJobFileChecked } from './chunk-2JPVI45I.js';
|
|
23
22
|
import { exceedsDisk } from './chunk-YJLHUKYS.js';
|
|
24
|
-
import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-
|
|
25
|
-
import { loadHostKey, ensureHostKey, signerFor } from './chunk-
|
|
26
|
-
import { RUNNER_DIR_MODE, runnerDir, buildDir, attemptStamp, jobDir, RUNNER_FILE_MODE, jobsDir, pidFilePath, spoolDir, rootfsDir } from './chunk-
|
|
27
|
-
import { parseClaimIdentity, parseClaimedRepositories, parseUnreachable, repositoriesOf, primaryOf, sharedUserEnvironment, JOB_MOUNT, takeClaudeCredential, heldClaudeCredential,
|
|
23
|
+
import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-GPRIHEGQ.js';
|
|
24
|
+
import { loadHostKey, ensureHostKey, signerFor } from './chunk-APSYTJ6I.js';
|
|
25
|
+
import { RUNNER_DIR_MODE, runnerDir, buildDir, attemptStamp, jobDir, RUNNER_FILE_MODE, jobsDir, pidFilePath, spoolDir, rootfsDir } from './chunk-KP6R7CV3.js';
|
|
26
|
+
import { parseClaimIdentity, parseClaimedRepositories, parseUnreachable, repositoriesOf, primaryOf, sharedUserEnvironment, JOB_MOUNT, takeClaudeCredential, heldClaudeCredential, currentClaudeCredential } from './chunk-HDSDUTX4.js';
|
|
28
27
|
import { resolveVersion } from './chunk-RA3O54FC.js';
|
|
29
28
|
import { fdName } from './chunk-XD4ZCMA4.js';
|
|
30
29
|
import { COMMAND_LOST_REASON, CONTAINER_STOPPED_REASON } from './chunk-MESOOLF4.js';
|
|
31
30
|
import { randomBytes } from 'crypto';
|
|
32
|
-
import { mkdirSync, existsSync, chmodSync, writeFileSync, renameSync, statSync, readdirSync, readFileSync, closeSync, rmSync,
|
|
31
|
+
import { mkdirSync, existsSync, chmodSync, writeFileSync, renameSync, statSync, readdirSync, readFileSync, closeSync, rmSync, lstatSync } from 'fs';
|
|
33
32
|
import { join, dirname } from 'path';
|
|
34
|
-
import {
|
|
33
|
+
import { constants } from 'os';
|
|
35
34
|
|
|
36
35
|
createRequire(import.meta.url);
|
|
37
|
-
function openKvm() {
|
|
38
|
-
try {
|
|
39
|
-
closeSync(openSync("/dev/kvm", constants.O_RDWR));
|
|
40
|
-
return "usable";
|
|
41
|
-
} catch (err) {
|
|
42
|
-
return err.code === "ENOENT" ? "absent" : "no-permission";
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
function realBlockedProbes() {
|
|
46
|
-
return { env: process.env, kvm: openKvm, totalMemoryBytes: totalmem, imageBuilder: "unknown" };
|
|
47
|
-
}
|
|
48
|
-
var DEFAULT_BUILD_MEMORY = "8g";
|
|
49
|
-
function checkBlocked(config, probes) {
|
|
50
|
-
const placeholders = placeholderQueues(config);
|
|
51
|
-
if (placeholders.length > 0) return { reason: `${placeholderProblem(placeholders)}. The runner takes work again once the config is edited` };
|
|
52
|
-
const kind = builtinKind(config.hooks.provision);
|
|
53
|
-
if (kind === "container" || kind === "vm") {
|
|
54
|
-
const fit = checkFit({
|
|
55
|
-
concurrency: config.concurrency,
|
|
56
|
-
buildMemory: config.build?.memory ?? DEFAULT_BUILD_MEMORY,
|
|
57
|
-
usableBytes: probes.totalMemoryBytes()
|
|
58
|
-
});
|
|
59
|
-
if (!fit.fits) return { reason: `${fit.message}. Lower runner.concurrency or runner.build.memory` };
|
|
60
|
-
}
|
|
61
|
-
const kvm = kind === "vm" ? probes.kvm() : "usable";
|
|
62
|
-
if (kvm === "absent") {
|
|
63
|
-
return { reason: "/dev/kvm does not exist on this machine, so builtin:vm cannot start a microVM. Use a host with KVM enabled, or builtin:container hooks" };
|
|
64
|
-
}
|
|
65
|
-
if (kvm !== "usable") {
|
|
66
|
-
return {
|
|
67
|
-
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"
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
if (kind === "container" || kind === "vm") {
|
|
71
|
-
const builder = probes.imageBuilder;
|
|
72
|
-
if (builder === "unknown") {
|
|
73
|
-
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" };
|
|
74
|
-
}
|
|
75
|
-
if (builder !== "usable") return { reason: `${builder.problem}. The runner takes work again once its image builder works` };
|
|
76
|
-
}
|
|
77
|
-
if (kind !== "own" && claudeCredential(probes.env) === void 0) {
|
|
78
|
-
return {
|
|
79
|
-
reason: "there is no Claude credential in the runner's environment. Store CLAUDE_CODE_OAUTH_TOKEN (from `claude setup-token`) or ANTHROPIC_API_KEY with `outerlayer runner init --agent claude`, which writes the claude.env beside the config, then restart the service"
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
return void 0;
|
|
83
|
-
}
|
|
84
36
|
|
|
85
37
|
// src/runner/heartbeat.ts
|
|
86
38
|
var HEARTBEAT_TIMEOUT_MS = 1e4;
|
|
@@ -1053,7 +1005,7 @@ function linuxSignalName(number) {
|
|
|
1053
1005
|
return names[number];
|
|
1054
1006
|
}
|
|
1055
1007
|
function hostSignalName(number) {
|
|
1056
|
-
return Object.entries(constants
|
|
1008
|
+
return Object.entries(constants.signals).find(([, value]) => value === number)?.[0];
|
|
1057
1009
|
}
|
|
1058
1010
|
function notEndedByRunnerReason(exit, isolated) {
|
|
1059
1011
|
if (exit.signal !== null) {
|
|
@@ -1641,11 +1593,16 @@ function imageBuilderState(state) {
|
|
|
1641
1593
|
if (result === void 0) return "unknown";
|
|
1642
1594
|
return result.ok ? "usable" : { problem: result.problem };
|
|
1643
1595
|
}
|
|
1644
|
-
function
|
|
1596
|
+
async function jailerState(state) {
|
|
1597
|
+
const probe = await runtimeOf(state).vm.helper.probe();
|
|
1598
|
+
return probe.ok ? "usable" : { problem: probe.detail };
|
|
1599
|
+
}
|
|
1600
|
+
function holdWhenBlocked(state, jailer) {
|
|
1645
1601
|
const probes = {
|
|
1646
1602
|
...realBlockedProbes(),
|
|
1647
1603
|
...state.deps.container?.hostEnv === void 0 ? {} : { env: state.deps.container.hostEnv },
|
|
1648
1604
|
...state.deps.blocked?.imageBuilder === void 0 ? { imageBuilder: imageBuilderState(state) } : {},
|
|
1605
|
+
...jailer === void 0 ? {} : { jailer },
|
|
1649
1606
|
...state.deps.blocked
|
|
1650
1607
|
};
|
|
1651
1608
|
const blocked = checkBlocked(state.config, probes);
|
|
@@ -1728,7 +1685,8 @@ async function runTick(state) {
|
|
|
1728
1685
|
state.holdingForUpdate = true;
|
|
1729
1686
|
return;
|
|
1730
1687
|
}
|
|
1731
|
-
|
|
1688
|
+
const jailer = state.config.managed === true && state.deps.blocked?.jailer === void 0 ? await jailerState(state) : void 0;
|
|
1689
|
+
if (holdWhenBlocked(state, jailer)) return;
|
|
1732
1690
|
if (holdOffForDisk(state)) return;
|
|
1733
1691
|
const log = logOf(state);
|
|
1734
1692
|
const repoFilter = new RepoFilter(state.config.repos);
|
|
@@ -1787,7 +1745,7 @@ var CLAIM_REFUSAL_CODES = new Set(
|
|
|
1787
1745
|
"pull_request_from_fork pull_request_on_default_branch pull_request_ambiguous pull_request_repository_not_connected repository_not_reachable branch_claimed_elsewhere".split(" ")
|
|
1788
1746
|
);
|
|
1789
1747
|
async function tryClaimAndStart(state, item, queue) {
|
|
1790
|
-
const { postJson: postJson2 } = await import('./work-cmd-
|
|
1748
|
+
const { postJson: postJson2 } = await import('./work-cmd-I37TTGHI.js');
|
|
1791
1749
|
const log = logOf(state);
|
|
1792
1750
|
const hostKey = await loadHostKey(state.config.configPath);
|
|
1793
1751
|
const claim = await retrySend(
|
|
@@ -2968,7 +2926,7 @@ async function start(configPath, deps = { fetchImpl: fetch }) {
|
|
|
2968
2926
|
check: update.check ? () => update.check(configPath) : async () => {
|
|
2969
2927
|
const held = heldClaudeCredential();
|
|
2970
2928
|
const env = held === void 0 ? process.env : { ...process.env, [held.variable]: held.value };
|
|
2971
|
-
return (await import('./check-
|
|
2929
|
+
return (await import('./check-UUWPPYC3.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
|
|
2972
2930
|
},
|
|
2973
2931
|
now: () => (deps.now ?? (() => /* @__PURE__ */ new Date()))().getTime(),
|
|
2974
2932
|
log
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { removeRetiredSkills } from './chunk-V6IYYQU3.js';
|
|
4
|
-
import { defaultFetch, resolveGatewayCredentials } from './chunk-
|
|
5
|
-
import { withTokenHeader } from './chunk-
|
|
4
|
+
import { defaultFetch, resolveGatewayCredentials } from './chunk-F3EF56LQ.js';
|
|
5
|
+
import { withTokenHeader } from './chunk-HDSDUTX4.js';
|
|
6
6
|
import { appendContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
7
7
|
import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-AKKVPUGK.js';
|
|
8
8
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { DEFAULT_UNIT_NAME } from './chunk-
|
|
4
|
-
import { RUNNER_FILE_MODE } from './chunk-
|
|
5
|
-
import { claudeEnvPath, withoutCredentialLines } from './chunk-
|
|
3
|
+
import { DEFAULT_UNIT_NAME } from './chunk-RQGHHEM7.js';
|
|
4
|
+
import { RUNNER_FILE_MODE } from './chunk-KP6R7CV3.js';
|
|
5
|
+
import { claudeEnvPath, withoutCredentialLines } from './chunk-HDSDUTX4.js';
|
|
6
6
|
import { parseRunnerEnv } from './chunk-XD4ZCMA4.js';
|
|
7
7
|
import { existsSync, readFileSync, writeFileSync, renameSync, rmSync } from 'fs';
|
|
8
8
|
import { join, dirname } from 'path';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { MAX_ALLOW_HOSTS, allowHostProblem } from './chunk-UXYLWVTQ.js';
|
|
4
4
|
import { parseSize } from './chunk-YJLHUKYS.js';
|
|
5
|
-
import { isRefusedInConfig, resolveDestinations, isReservedVariable } from './chunk-
|
|
5
|
+
import { isRefusedInConfig, resolveDestinations, isReservedVariable } from './chunk-HDSDUTX4.js';
|
|
6
6
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
7
7
|
import { existsSync, statSync, accessSync, constants, readFileSync } from 'fs';
|
|
8
8
|
import { hostname } from 'os';
|
|
@@ -105,6 +105,7 @@ var RUNNER_KEYS = [
|
|
|
105
105
|
"housekeeping",
|
|
106
106
|
"checks",
|
|
107
107
|
"autoUpdate",
|
|
108
|
+
"managed",
|
|
108
109
|
"update"
|
|
109
110
|
];
|
|
110
111
|
var UPDATE_KEYS = ["maxWaitHours"];
|
|
@@ -213,6 +214,9 @@ function loadRunnerConfig(configPath) {
|
|
|
213
214
|
if (runner.autoUpdate !== void 0 && typeof runner.autoUpdate !== "boolean") {
|
|
214
215
|
fail(configPath, "runner.autoUpdate", "must be true or false");
|
|
215
216
|
}
|
|
217
|
+
if (runner.managed !== void 0 && typeof runner.managed !== "boolean") {
|
|
218
|
+
fail(configPath, "runner.managed", "must be true or false");
|
|
219
|
+
}
|
|
216
220
|
if (runner.name !== void 0 && runner.host !== void 0 && runner.name !== runner.host) {
|
|
217
221
|
fail(configPath, "runner.name", `is "${runner.name}" and runner.host is "${runner.host}"; set runner.name only, since runner.host is its earlier name`);
|
|
218
222
|
}
|
|
@@ -266,7 +270,8 @@ function loadRunnerConfig(configPath) {
|
|
|
266
270
|
// under; it opts in. The built-in hooks are the runner's own. Provision
|
|
267
271
|
// and cleanup are built-in together or not at all (checkBuiltinHooks), so
|
|
268
272
|
// provision alone tells which.
|
|
269
|
-
autoUpdate: runner.autoUpdate ?? builtinKind(runner.hooks.provision) !== "own"
|
|
273
|
+
autoUpdate: runner.autoUpdate ?? builtinKind(runner.hooks.provision) !== "own",
|
|
274
|
+
...runner.managed === void 0 ? {} : { managed: runner.managed }
|
|
270
275
|
};
|
|
271
276
|
}
|
|
272
277
|
function checkBuiltinHooks(configPath, hooks) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { BRIDGE_ADDRESS, TUNNEL_PORT, BRIDGE_CIDR } from './chunk-
|
|
4
|
-
import { EXEC_PORT } from './chunk-
|
|
3
|
+
import { BRIDGE_ADDRESS, TUNNEL_PORT, BRIDGE_CIDR } from './chunk-XTNMIV77.js';
|
|
4
|
+
import { EXEC_PORT } from './chunk-HIGJTX5U.js';
|
|
5
5
|
import { startTimeOf } from './chunk-JBJTC3UU.js';
|
|
6
|
-
import { RELAY_PORT } from './chunk-
|
|
6
|
+
import { RELAY_PORT } from './chunk-HDSDUTX4.js';
|
|
7
7
|
import { spawn, spawnSync } from 'child_process';
|
|
8
8
|
import { symlinkSync, lstatSync, writeFileSync, chmodSync, mkdirSync } from 'fs';
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { builtinKind } from './chunk-
|
|
3
|
+
import { builtinKind } from './chunk-P7BEZAEU.js';
|
|
4
4
|
import { parseSize } from './chunk-YJLHUKYS.js';
|
|
5
|
-
import { runnerDir } from './chunk-
|
|
6
|
-
import { CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-
|
|
5
|
+
import { runnerDir } from './chunk-KP6R7CV3.js';
|
|
6
|
+
import { CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-HDSDUTX4.js';
|
|
7
7
|
import { FD_SLOTS_PER_BUILD, FD_STORE_ENV } from './chunk-XD4ZCMA4.js';
|
|
8
8
|
import { existsSync, readFileSync, writeFileSync, chmodSync, renameSync } from 'fs';
|
|
9
9
|
import { dirname, join } from 'path';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { MIN_ENGINE_MAJOR } from './chunk-
|
|
4
|
-
import { runnerImageVersion } from './chunk-
|
|
3
|
+
import { MIN_ENGINE_MAJOR } from './chunk-XU5O5JCZ.js';
|
|
4
|
+
import { runnerImageVersion } from './chunk-YV7WULXQ.js';
|
|
5
5
|
import { firecrackerArch, MICROVM_ARCHES, guestAssetsPinned } from './chunk-SJZL5F3F.js';
|
|
6
6
|
import { spawnSync } from 'child_process';
|
|
7
7
|
import { existsSync, accessSync, constants, statSync, readFileSync } from 'fs';
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { readsJobState, READ_JOB_STATE_FORMATS, jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
4
|
-
import { DOCKERD_LOG, HELPER_PATH, HELPER_RECORD } from './chunk-
|
|
4
|
+
import { DOCKERD_LOG, HELPER_PATH, HELPER_RECORD } from './chunk-RJYKTWUP.js';
|
|
5
5
|
import { zodProblem } from './chunk-I3LTIAOR.js';
|
|
6
|
-
import { senderPidfile } from './chunk-
|
|
7
|
-
import { installScrubContext } from './chunk-
|
|
8
|
-
import { writeDockerClientConfig } from './chunk-
|
|
9
|
-
import { ADDED_USER, shellQuote, GH_CONFIG_YML, ghHostsYml, AssetError, obtainImage, ensureRootfs, gitRemoteFor, startServicesFor, createLeaseChannel, createBuildDisk, machineConfig, resolveAgentUser, AgentUserError, runBuildSteps, LEASE_SECONDS, createContainerRuntime, stopContainer, cleanupContainer, outOfMemoryReason, containerSenderCommand, signalInContainer, syncInContainer, copyTranscriptsFromContainer, senderAliveScript, helperFirecrackerNote, HelperRefusal, isLiteralAddress, deleteBuildDisk, startCheckContainer, lifecycleSteps, lifecycleFailureReason, writeEvalInput, DeliveryFailure, EVAL_INPUT_NAME, copyTranscripts, senderSignalScript, containerJudgeEnvironment, copyJudgeTree } from './chunk-
|
|
10
|
-
import { waitForAgent, vmExecArgs } from './chunk-
|
|
11
|
-
import { socketPathProblem, vsockLinks, LEASE_LINK, linkVsockSockets } from './chunk-
|
|
12
|
-
import { describeCallFailure, resolveGoverningSource, refusalCode, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, logStamp, createRunnerLog, removeKeptContext, formatDuration, retrySend, formatClock, keptContextTree } from './chunk-
|
|
13
|
-
import { isBuiltinContainer, isBuiltinProcess, isBuiltinVm, DEFAULT_CHECK_TIME_LIMIT_MINUTES } from './chunk-
|
|
14
|
-
import { readBranchHead, fetchCommit, diffBetween } from './chunk-
|
|
6
|
+
import { senderPidfile } from './chunk-W4ICX5WW.js';
|
|
7
|
+
import { installScrubContext } from './chunk-IBG2ESJX.js';
|
|
8
|
+
import { writeDockerClientConfig } from './chunk-XTNMIV77.js';
|
|
9
|
+
import { ADDED_USER, shellQuote, GH_CONFIG_YML, ghHostsYml, AssetError, obtainImage, ensureRootfs, gitRemoteFor, startServicesFor, createLeaseChannel, createBuildDisk, machineConfig, resolveAgentUser, AgentUserError, runBuildSteps, LEASE_SECONDS, createContainerRuntime, stopContainer, cleanupContainer, outOfMemoryReason, containerSenderCommand, signalInContainer, syncInContainer, copyTranscriptsFromContainer, senderAliveScript, helperFirecrackerNote, HelperRefusal, isLiteralAddress, deleteBuildDisk, startCheckContainer, lifecycleSteps, lifecycleFailureReason, writeEvalInput, DeliveryFailure, EVAL_INPUT_NAME, copyTranscripts, senderSignalScript, containerJudgeEnvironment, copyJudgeTree } from './chunk-XU5O5JCZ.js';
|
|
10
|
+
import { waitForAgent, vmExecArgs } from './chunk-QQGZ5THT.js';
|
|
11
|
+
import { socketPathProblem, vsockLinks, LEASE_LINK, linkVsockSockets } from './chunk-HIGJTX5U.js';
|
|
12
|
+
import { describeCallFailure, resolveGoverningSource, refusalCode, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, logStamp, createRunnerLog, removeKeptContext, formatDuration, retrySend, formatClock, keptContextTree } from './chunk-WWHWF3KZ.js';
|
|
13
|
+
import { isBuiltinContainer, isBuiltinProcess, isBuiltinVm, DEFAULT_CHECK_TIME_LIMIT_MINUTES } from './chunk-P7BEZAEU.js';
|
|
14
|
+
import { readBranchHead, fetchCommit, diffBetween } from './chunk-Z7HAIZ6X.js';
|
|
15
15
|
import { isSameProcess, startTimeOf } from './chunk-JBJTC3UU.js';
|
|
16
|
-
import { HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, writeJobFile, readJobFile, childEnvironment, withAnswerProtocol, judgeCommand, MAX_REPORT_BYTES, JUDGE_MAX_TURNS, JUDGE_DIR, COMMAND_DIR, MAX_ITEMS_BYTES } from './chunk-
|
|
16
|
+
import { HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, writeJobFile, readJobFile, childEnvironment, withAnswerProtocol, judgeCommand, MAX_REPORT_BYTES, JUDGE_MAX_TURNS, JUDGE_DIR, COMMAND_DIR, MAX_ITEMS_BYTES } from './chunk-2JPVI45I.js';
|
|
17
17
|
import { parseSize } from './chunk-YJLHUKYS.js';
|
|
18
18
|
import { CLAUDE_CODE_VERSION, FIRECRACKER_VERSION } from './chunk-SJZL5F3F.js';
|
|
19
|
-
import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-
|
|
19
|
+
import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-GPRIHEGQ.js';
|
|
20
20
|
import { planArtifactUpload } from './chunk-HSUUTD4E.js';
|
|
21
|
-
import { scrubText } from './chunk-
|
|
21
|
+
import { scrubText } from './chunk-V36AOTBP.js';
|
|
22
22
|
import { readCloudConfig } from './chunk-PJDQPF5N.js';
|
|
23
|
-
import { signerFor } from './chunk-
|
|
24
|
-
import { RUNNER_FILE_MODE, runnerDir, buildDir, vsockPath } from './chunk-
|
|
25
|
-
import { JOB_MOUNT, claudeCredential, repositoriesOf, primaryOf, buildEnvironment, CHECKOUT_DIR, parseIsolation, proxyEnvironment, withProxyWarningHidden, containerLocalAddress, destinationEnvironment, CLAUDE_CREDENTIAL_VARIABLES, builtInEnvironment, withHooksPath, startBuildServices, BUILT_IN_NAMES, AGENT_CREDENTIAL_MISSING, sharedUserEnvironment, headerVariables, authorEnvironment, withTunnelRecord, commitIdentityRecord, RELAY_PORT, repositoryPath, lifecycleWorkdir, CHECK_ITEMS_FILE, currentClaudeCredential, removedClaudeCredentialValues, checkEnvironment, EVAL_INPUT_DIR } from './chunk-
|
|
23
|
+
import { signerFor } from './chunk-APSYTJ6I.js';
|
|
24
|
+
import { RUNNER_FILE_MODE, runnerDir, buildDir, vsockPath } from './chunk-KP6R7CV3.js';
|
|
25
|
+
import { JOB_MOUNT, claudeCredential, repositoriesOf, primaryOf, buildEnvironment, CHECKOUT_DIR, parseIsolation, proxyEnvironment, withProxyWarningHidden, containerLocalAddress, destinationEnvironment, CLAUDE_CREDENTIAL_VARIABLES, builtInEnvironment, withHooksPath, startBuildServices, BUILT_IN_NAMES, AGENT_CREDENTIAL_MISSING, sharedUserEnvironment, headerVariables, authorEnvironment, withTunnelRecord, commitIdentityRecord, RELAY_PORT, repositoryPath, lifecycleWorkdir, CHECK_ITEMS_FILE, currentClaudeCredential, removedClaudeCredentialValues, checkEnvironment, EVAL_INPUT_DIR } from './chunk-HDSDUTX4.js';
|
|
26
26
|
import { resolvePackRoot } from './chunk-AKKVPUGK.js';
|
|
27
27
|
import { MAINTAINED_SKILLS } from './chunk-CDDED64E.js';
|
|
28
28
|
import { resolveVersion } from './chunk-RA3O54FC.js';
|
|
@@ -292,12 +292,14 @@ function makeBuildsDirPrivate(buildDir2) {
|
|
|
292
292
|
const stat = statSync(builds);
|
|
293
293
|
if (stat.uid === process.getuid?.() && (stat.mode & 18) !== 0) chmodSync(builds, 448);
|
|
294
294
|
}
|
|
295
|
-
|
|
295
|
+
var MANAGED_UNJAILED_REASON = "the root helper does not answer, and a managed runner starts no build without the jailer. The build did not start; restore the helper with `outerlayer runner install --service --replace`";
|
|
296
|
+
async function helperFor(runtime, log, managed) {
|
|
296
297
|
const probe = await runtime.vm.helper.probe();
|
|
297
298
|
if (probe.ok) {
|
|
298
299
|
if (probe.firecracker !== FIRECRACKER_VERSION) log(`${helperFirecrackerNote(probe.firecracker)}; run \`outerlayer runner install --service --replace\` to update it`);
|
|
299
300
|
return probe.client;
|
|
300
301
|
}
|
|
302
|
+
if (managed) return void 0;
|
|
301
303
|
if (probe.reason === "unsupported") log(probe.detail);
|
|
302
304
|
else if (probe.unreachable === true) log(`${probe.detail}, so this build runs without the jailer`);
|
|
303
305
|
return void 0;
|
|
@@ -477,7 +479,8 @@ async function provisionMicroVm(input) {
|
|
|
477
479
|
}
|
|
478
480
|
}
|
|
479
481
|
const configPath = join(buildDir2, "vm.json");
|
|
480
|
-
const helper = await helperFor(runtime, (line) => log.line(`${tag} ${line}`));
|
|
482
|
+
const helper = await helperFor(runtime, (line) => log.line(`${tag} ${line}`), config.managed === true);
|
|
483
|
+
if (helper === void 0 && config.managed === true) return bail(MANAGED_UNJAILED_REASON);
|
|
481
484
|
try {
|
|
482
485
|
if (helper === void 0) linkVsockSockets({ buildDir: buildDir2, vsockPath: state.vsockPath, links: served });
|
|
483
486
|
await createBuildDisk({ host: vm.rootfs, runnerDir: runnerDirPath, bytes: limits.diskBytes, dest: state.buildDisk, memoryBytes: limits.memoryBytes });
|
|
@@ -955,7 +958,8 @@ async function startCheckMicroVm(input) {
|
|
|
955
958
|
};
|
|
956
959
|
const links = vsockLinks({ destinations: config.build?.destinations?.length ?? 0, builtIns: false });
|
|
957
960
|
const configPath = join(buildDir2, "vm.json");
|
|
958
|
-
const helper = await helperFor(runtime, (line) => log.line(`${tag} ${line}`));
|
|
961
|
+
const helper = await helperFor(runtime, (line) => log.line(`${tag} ${line}`), config.managed === true);
|
|
962
|
+
if (helper === void 0 && config.managed === true) return fail(MANAGED_UNJAILED_REASON);
|
|
959
963
|
try {
|
|
960
964
|
if (helper === void 0) linkVsockSockets({ buildDir: buildDir2, vsockPath: state.vsockPath, links });
|
|
961
965
|
await createBuildDisk({ host: vm.rootfs, runnerDir: runnerDirPath, bytes: limits.diskBytes, dest: state.buildDisk, memoryBytes: limits.memoryBytes });
|
|
@@ -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-KP6R7CV3.js';
|
|
5
5
|
import { existsSync, readFileSync, mkdirSync, writeFileSync, rmSync } from 'fs';
|
|
6
6
|
import { dirname } from 'path';
|
|
7
7
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-
|
|
3
|
+
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-KP6R7CV3.js';
|
|
4
4
|
import { readFileSync, existsSync, rmSync, mkdirSync, writeFileSync, renameSync } from 'fs';
|
|
5
5
|
import { join } from 'path';
|
|
6
6
|
|