@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.
Files changed (103) hide show
  1. package/dist/{agent-setup-ZNYAXAWI.js → agent-setup-E7CMDUR5.js} +6 -6
  2. package/dist/{bridge-FI7OF2H3.js → bridge-3EG6Q34K.js} +2 -2
  3. package/dist/{build-PXRDWSN4.js → build-7QD3VJ6U.js} +4 -4
  4. package/dist/build-info.json +1 -1
  5. package/dist/{builder-UNVHUZL7.js → builder-REQJGZJP.js} +5 -5
  6. package/dist/{check-N3XNBPDH.js → check-UUWPPYC3.js} +47 -34
  7. package/dist/{chunk-7YSR636F.js → chunk-2JPVI45I.js} +4 -4
  8. package/dist/{chunk-SJ4DX2AD.js → chunk-4EU4X2ML.js} +3 -3
  9. package/dist/{chunk-MBZTX4V2.js → chunk-4XPAQXJF.js} +1 -1
  10. package/dist/{chunk-TGUWHA27.js → chunk-5FHNQST3.js} +3 -3
  11. package/dist/{chunk-YVY3IVYV.js → chunk-77F7NGAZ.js} +3 -3
  12. package/dist/{chunk-3YLHIXLR.js → chunk-7UD5ONVI.js} +2 -2
  13. package/dist/{chunk-IRF2FKB5.js → chunk-APSYTJ6I.js} +1 -1
  14. package/dist/{chunk-HMAYAMOQ.js → chunk-D7O7LA2O.js} +11 -11
  15. package/dist/{chunk-AM3GMWQK.js → chunk-F3EF56LQ.js} +1 -1
  16. package/dist/{chunk-4OKXGZM3.js → chunk-GPRIHEGQ.js} +6 -6
  17. package/dist/chunk-GYCKMZQJ.js +211 -0
  18. package/dist/{chunk-WHCDULC4.js → chunk-HDSDUTX4.js} +17 -1
  19. package/dist/{chunk-TKJISBV6.js → chunk-HIGJTX5U.js} +1 -1
  20. package/dist/{chunk-DBELICD6.js → chunk-IBG2ESJX.js} +5 -5
  21. package/dist/{chunk-PS3AHE6C.js → chunk-JCCUTTRI.js} +3 -3
  22. package/dist/{chunk-SOWXLIDN.js → chunk-KP6R7CV3.js} +1 -1
  23. package/dist/{chunk-EEZO2T24.js → chunk-KQLUUTLC.js} +28 -70
  24. package/dist/{chunk-DLY22KHX.js → chunk-NIS2PIS4.js} +2 -2
  25. package/dist/{chunk-5HZDPOJI.js → chunk-NJS7JJYN.js} +3 -3
  26. package/dist/{chunk-2ZMJFGOZ.js → chunk-P7BEZAEU.js} +7 -2
  27. package/dist/{chunk-MBVSVQVH.js → chunk-QQGZ5THT.js} +1 -1
  28. package/dist/{chunk-6CNNRO53.js → chunk-RJYKTWUP.js} +3 -3
  29. package/dist/{chunk-3F7RC3UA.js → chunk-RQGHHEM7.js} +3 -3
  30. package/dist/{chunk-3XUZPSBV.js → chunk-S4IJPYDV.js} +2 -2
  31. package/dist/{chunk-B7NT4YZ3.js → chunk-SNLMMLDD.js} +23 -19
  32. package/dist/{chunk-IRTZYDZO.js → chunk-T5TBGOT6.js} +1 -1
  33. package/dist/{chunk-QWJBTFAF.js → chunk-TZQIEUDE.js} +1 -1
  34. package/dist/{chunk-FTGJ3DPV.js → chunk-V36AOTBP.js} +72 -30
  35. package/dist/{chunk-ZNMVBHGJ.js → chunk-W4ICX5WW.js} +3 -3
  36. package/dist/{chunk-RJDJFRRY.js → chunk-WRW6QCI6.js} +1 -1
  37. package/dist/{chunk-4SE6GXQA.js → chunk-WWHWF3KZ.js} +5 -5
  38. package/dist/{chunk-44CGGHJF.js → chunk-X7UUIHGH.js} +1 -1
  39. package/dist/{chunk-I3WLYIIW.js → chunk-XAV6XCI2.js} +1 -1
  40. package/dist/{chunk-TN2XMMD7.js → chunk-XTNMIV77.js} +1 -1
  41. package/dist/{chunk-5VWKCY2E.js → chunk-XU5O5JCZ.js} +11 -11
  42. package/dist/{chunk-B5CQJBZ2.js → chunk-YQTQQTYK.js} +3 -3
  43. package/dist/{chunk-D3LS7E7U.js → chunk-YV7WULXQ.js} +1 -1
  44. package/dist/{chunk-U5DC57AF.js → chunk-Z7HAIZ6X.js} +3 -3
  45. package/dist/{chunk-VL3CF4DZ.js → chunk-ZBN4JGTJ.js} +1 -1
  46. package/dist/{chunk-IUV6MUQB.js → chunk-ZD7J35IX.js} +5 -5
  47. package/dist/{chunk-LJIFCG4G.js → chunk-ZZSQYOY5.js} +1 -1
  48. package/dist/{claude-launcher-ZDZQXW76.js → claude-launcher-IG7GKYIT.js} +1 -1
  49. package/dist/{cli-4464W6E6.js → cli-SOR7FKHH.js} +101 -101
  50. package/dist/{command-2MHSC5AE.js → command-BSKFMJEH.js} +23 -23
  51. package/dist/{config-VM6GKCCE.js → config-3JRFDYZL.js} +2 -2
  52. package/dist/{connect-cmd-U2DY4OZU.js → connect-cmd-SCAZ2RIS.js} +6 -6
  53. package/dist/{container-start-XMY3VOZB.js → container-start-6AZJQJCH.js} +22 -22
  54. package/dist/{control-plane-launch-2AC4BTWL.js → control-plane-launch-JCUNTTC3.js} +5 -5
  55. package/dist/{dist-IDP7Q53A.js → dist-BE3LYGNH.js} +1 -1
  56. package/dist/{docker-K442NGCS.js → docker-CVRCHNYC.js} +5 -5
  57. package/dist/{doctor-5K4UTAT3.js → doctor-XZ47GD4V.js} +47 -25
  58. package/dist/{emit-artifact-cmd-IK7GAS7V.js → emit-artifact-cmd-ADBJJDTU.js} +10 -10
  59. package/dist/{emit-criteria-cmd-TGBRMX3P.js → emit-criteria-cmd-ZGTK2YAR.js} +7 -7
  60. package/dist/{emit-finding-cmd-KXCNLJLK.js → emit-finding-cmd-VLUMTZV7.js} +8 -8
  61. package/dist/{emit-result-cmd-WJBLCVDL.js → emit-result-cmd-ZUH5P6OY.js} +10 -10
  62. package/dist/{emit-step-cmd-OYX5X65A.js → emit-step-cmd-J5APMMJ3.js} +8 -8
  63. package/dist/{exec-client-RMGGSTGR.js → exec-client-JLCFGCZT.js} +3 -3
  64. package/dist/{findings-cmd-HFDOB6AC.js → findings-cmd-A3N3MW2C.js} +8 -8
  65. package/dist/{fleet-readiness-5S2GCWZE.js → fleet-readiness-JEQ5ITV6.js} +5 -5
  66. package/dist/{governing-source-WM3WQ6J2.js → governing-source-QGWOWLCT.js} +10 -10
  67. package/dist/{guest-init-O7INUZWE.js → guest-init-BI7267TB.js} +4 -4
  68. package/dist/{hook-fast-A2N3PSXI.js → hook-fast-UFHR6EKZ.js} +1 -1
  69. package/dist/{host-key-HJ66C6MD.js → host-key-KAYMYRO3.js} +3 -3
  70. package/dist/{image-tag-LLXOFXKP.js → image-tag-OYT7UG7Y.js} +3 -3
  71. package/dist/index.js +4 -4
  72. package/dist/{init-IADOHXZR.js → init-G2GIATYO.js} +22 -22
  73. package/dist/{init-WEFM7P2Y.js → init-WAX2O5EW.js} +22 -22
  74. package/dist/{init-cmd-6UPRZDCC.js → init-cmd-RJCTCNUA.js} +11 -11
  75. package/dist/{init-update-RN2PZ3MT.js → init-update-N6UBQH2K.js} +9 -9
  76. package/dist/{install-GZ27NW6U.js → install-OIRIEOS7.js} +4 -4
  77. package/dist/{install-cmd-26OY23ZZ.js → install-cmd-IYWVR6WX.js} +5 -5
  78. package/dist/{logs-7O3ELY35.js → logs-C3RJ3ZTC.js} +2 -2
  79. package/dist/{loop-W2D5FHES.js → loop-PJBYILSU.js} +34 -34
  80. package/dist/{machine-NESBHOCL.js → machine-2P3V7SVW.js} +18 -18
  81. package/dist/{mcp-serve-cmd-AT7G6J5V.js → mcp-serve-cmd-PB4UOTGL.js} +4 -4
  82. package/dist/{paths-32THAYBB.js → paths-OK2EZS7W.js} +2 -2
  83. package/dist/{pending-6CMYQHFL.js → pending-RKVRYOTF.js} +3 -3
  84. package/dist/{pidfile-3BH6WPOA.js → pidfile-BMFAUQAI.js} +3 -3
  85. package/dist/{record-WHPJCC6Y.js → record-26AH6WDB.js} +3 -3
  86. package/dist/{runner-env-6Q45P3IE.js → runner-env-66RAFIDJ.js} +5 -5
  87. package/dist/{runner-identity-KH7HADNF.js → runner-identity-D3XUB36T.js} +5 -5
  88. package/dist/{runner-key-C4ZWPXYD.js → runner-key-JYVNUWAY.js} +22 -22
  89. package/dist/{session-sender-N4DOGRTN.js → session-sender-KD2MDPZ7.js} +11 -11
  90. package/dist/{spec-cmd-2ISEEZVA.js → spec-cmd-COQYDQES.js} +8 -8
  91. package/dist/{status-GDI44URF.js → status-C6IM56UC.js} +25 -25
  92. package/dist/{sync-cmd-E5VRZ5DK.js → sync-cmd-RXUKCJDG.js} +10 -10
  93. package/dist/{watch-P6XAYDM2.js → watch-F6ZWVYJ5.js} +10 -10
  94. package/dist/{work-claim-cmd-MFPUOWXL.js → work-claim-cmd-NNLX6KLD.js} +11 -11
  95. package/dist/{work-cmd-LXDWHKMQ.js → work-cmd-I37TTGHI.js} +8 -8
  96. package/dist/{work-comment-cmd-2HSY4JA7.js → work-comment-cmd-C7JGN64M.js} +8 -8
  97. package/dist/{work-logs-cmd-2MQR4JHN.js → work-logs-cmd-LL6BSU5H.js} +8 -8
  98. package/dist/{work-open-pr-cmd-QUJVL4TF.js → work-open-pr-cmd-K6KESE3Q.js} +9 -9
  99. package/dist/{work-pr-cmd-HOS5ZHJI.js → work-pr-cmd-TLIB4AJK.js} +8 -8
  100. package/dist/{work-stop-cmd-4J2NJ7KL.js → work-stop-cmd-CVFSGSZK.js} +8 -8
  101. package/package.json +1 -1
  102. package/skill-pack/maintained/outerlayer-build/SKILL.md +7 -4
  103. 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-WHCDULC4.js';
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-PS3AHE6C.js';
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-FTGJ3DPV.js';
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-AM3GMWQK.js';
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-IRF2FKB5.js';
12
- import { writeSyncStatus, spoolDir } from './chunk-RJDJFRRY.js';
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-SJ4DX2AD.js';
4
+ import { autoConnect, detectActiveSession } from './chunk-4EU4X2ML.js';
5
5
  import { acquireSpoolLockAt } from './chunk-HSUUTD4E.js';
6
- import { resolveRepoIdentity } from './chunk-FTGJ3DPV.js';
6
+ import { resolveRepoIdentity } from './chunk-V36AOTBP.js';
7
7
  import { C } from './chunk-ANPNT6PM.js';
8
- import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-AM3GMWQK.js';
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,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { BUILD_HOME } from './chunk-WHCDULC4.js';
3
+ import { BUILD_HOME } from './chunk-HDSDUTX4.js';
4
4
  import { join, dirname } from 'path';
5
5
 
6
6
  createRequire(import.meta.url);
@@ -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-B7NT4YZ3.js';
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-QWJBTFAF.js';
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-44CGGHJF.js';
10
- import { currentSkillCommand, formerSkillProblem, placeholderQueues, placeholderProblem } from './chunk-ERXY3FXG.js';
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-LJIFCG4G.js';
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-5VWKCY2E.js';
15
- import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-4SE6GXQA.js';
16
- import { tagToPull, pullInstruction, imageTag, writeUpdateStatus } from './chunk-D3LS7E7U.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-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 { checkFit } from './chunk-3F7RC3UA.js';
19
- import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind, DEFAULT_UPDATE_MAX_WAIT_HOURS } from './chunk-2ZMJFGOZ.js';
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-7YSR636F.js';
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-4OKXGZM3.js';
25
- import { loadHostKey, ensureHostKey, signerFor } from './chunk-IRF2FKB5.js';
26
- import { RUNNER_DIR_MODE, runnerDir, buildDir, attemptStamp, jobDir, RUNNER_FILE_MODE, jobsDir, pidFilePath, spoolDir, rootfsDir } from './chunk-SOWXLIDN.js';
27
- import { parseClaimIdentity, parseClaimedRepositories, parseUnreachable, repositoriesOf, primaryOf, sharedUserEnvironment, JOB_MOUNT, takeClaudeCredential, heldClaudeCredential, claudeCredential, currentClaudeCredential } from './chunk-WHCDULC4.js';
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, openSync, constants, lstatSync } from 'fs';
31
+ import { mkdirSync, existsSync, chmodSync, writeFileSync, renameSync, statSync, readdirSync, readFileSync, closeSync, rmSync, lstatSync } from 'fs';
33
32
  import { join, dirname } from 'path';
34
- import { totalmem, constants as constants$1 } from 'os';
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$1.signals).find(([, value]) => value === number)?.[0];
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 holdWhenBlocked(state) {
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
- if (holdWhenBlocked(state)) return;
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-LXDWHKMQ.js');
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-N3XNBPDH.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
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-AM3GMWQK.js';
5
- import { withTokenHeader } from './chunk-WHCDULC4.js';
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-3F7RC3UA.js';
4
- import { RUNNER_FILE_MODE } from './chunk-SOWXLIDN.js';
5
- import { claudeEnvPath, withoutCredentialLines } from './chunk-WHCDULC4.js';
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-WHCDULC4.js';
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,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { EXEC_PORT } from './chunk-TKJISBV6.js';
3
+ import { EXEC_PORT } from './chunk-HIGJTX5U.js';
4
4
  import { createConnection } from 'net';
5
5
 
6
6
  createRequire(import.meta.url);
@@ -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-TN2XMMD7.js';
4
- import { EXEC_PORT } from './chunk-TKJISBV6.js';
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-WHCDULC4.js';
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-2ZMJFGOZ.js';
3
+ import { builtinKind } from './chunk-P7BEZAEU.js';
4
4
  import { parseSize } from './chunk-YJLHUKYS.js';
5
- import { runnerDir } from './chunk-SOWXLIDN.js';
6
- import { CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-WHCDULC4.js';
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-5VWKCY2E.js';
4
- import { runnerImageVersion } from './chunk-D3LS7E7U.js';
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-6CNNRO53.js';
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-ZNMVBHGJ.js';
7
- import { installScrubContext } from './chunk-DBELICD6.js';
8
- import { writeDockerClientConfig } from './chunk-TN2XMMD7.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-5VWKCY2E.js';
10
- import { waitForAgent, vmExecArgs } from './chunk-MBVSVQVH.js';
11
- import { socketPathProblem, vsockLinks, LEASE_LINK, linkVsockSockets } from './chunk-TKJISBV6.js';
12
- import { describeCallFailure, resolveGoverningSource, refusalCode, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, logStamp, createRunnerLog, removeKeptContext, formatDuration, retrySend, formatClock, keptContextTree } from './chunk-4SE6GXQA.js';
13
- import { isBuiltinContainer, isBuiltinProcess, isBuiltinVm, DEFAULT_CHECK_TIME_LIMIT_MINUTES } from './chunk-2ZMJFGOZ.js';
14
- import { readBranchHead, fetchCommit, diffBetween } from './chunk-U5DC57AF.js';
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-7YSR636F.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-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-4OKXGZM3.js';
19
+ import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-GPRIHEGQ.js';
20
20
  import { planArtifactUpload } from './chunk-HSUUTD4E.js';
21
- import { scrubText } from './chunk-FTGJ3DPV.js';
21
+ import { scrubText } from './chunk-V36AOTBP.js';
22
22
  import { readCloudConfig } from './chunk-PJDQPF5N.js';
23
- import { signerFor } from './chunk-IRF2FKB5.js';
24
- import { RUNNER_FILE_MODE, runnerDir, buildDir, vsockPath } from './chunk-SOWXLIDN.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-WHCDULC4.js';
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
- async function helperFor(runtime, log) {
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-SOWXLIDN.js';
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-SOWXLIDN.js';
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