@outerlayer/cli 0.34.0-next.20261028152714 → 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.
Files changed (119) hide show
  1. package/dist/{agent-setup-MO7DHLV4.js → agent-setup-IVXRBFVV.js} +6 -6
  2. package/dist/{bridge-4DFOWIY2.js → bridge-4GRZFXJU.js} +2 -2
  3. package/dist/{build-D5OIIY7B.js → build-SEJJWGTO.js} +7 -7
  4. package/dist/{build-disk-TEITBQKE.js → build-disk-EYRR3PBT.js} +5 -5
  5. package/dist/build-info.json +1 -1
  6. package/dist/{builder-S42B4STV.js → builder-T7B46P7T.js} +4 -4
  7. package/dist/{check-AMTV6RTN.js → check-SPMUN5C4.js} +36 -36
  8. package/dist/{chunk-4CNUGDNU.js → chunk-2EHDLYSL.js} +9 -9
  9. package/dist/{chunk-IZKUPAXF.js → chunk-3KGXXTMN.js} +1 -1
  10. package/dist/{chunk-NYMDS542.js → chunk-4YD7N6V3.js} +4 -4
  11. package/dist/{chunk-VJQQVTCS.js → chunk-5TXQFZHY.js} +1 -1
  12. package/dist/{chunk-NPTEYMBW.js → chunk-5W2YSWIW.js} +9 -4
  13. package/dist/{chunk-LBEYOL5K.js → chunk-7JSWRF5O.js} +2 -2
  14. package/dist/{chunk-BUVDDPOM.js → chunk-BBJ6BM5U.js} +1 -1
  15. package/dist/{chunk-QELQ6Y4I.js → chunk-CUAB7FAZ.js} +1 -1
  16. package/dist/{chunk-ZXQEBRCB.js → chunk-DCBFUUDL.js} +5 -5
  17. package/dist/{chunk-4557WV4R.js → chunk-EA2PQRCU.js} +2 -2
  18. package/dist/{chunk-3PFR2WXH.js → chunk-FUOKDHRB.js} +6 -6
  19. package/dist/{chunk-GHQW2BBX.js → chunk-GG5OE6MY.js} +2 -2
  20. package/dist/{chunk-6G3BG2GI.js → chunk-H7MGR2GN.js} +2 -2
  21. package/dist/{chunk-26WUFKYZ.js → chunk-HFOZTCTN.js} +1 -1
  22. package/dist/{chunk-FG564H3C.js → chunk-I2MFIT6X.js} +5 -5
  23. package/dist/{chunk-AJZWVXXA.js → chunk-IPWKT5J7.js} +146 -28
  24. package/dist/{chunk-E3GX4WVJ.js → chunk-KH4774QT.js} +1 -1
  25. package/dist/{chunk-UAINHP2C.js → chunk-KPEMNHVF.js} +3 -3
  26. package/dist/{chunk-SH5JFBPO.js → chunk-KQDK4Q6A.js} +1 -1
  27. package/dist/{chunk-7XDF7PNF.js → chunk-MCPCOKHN.js} +2 -2
  28. package/dist/{chunk-JDQBJUXQ.js → chunk-MEIDQLXQ.js} +1 -1
  29. package/dist/{chunk-BRBZKIZG.js → chunk-MRLJK4GZ.js} +2 -2
  30. package/dist/{chunk-QGTJ5IJN.js → chunk-NCOL5RYI.js} +1 -1
  31. package/dist/{chunk-KY6H5L5O.js → chunk-OYQVLQP3.js} +37 -8
  32. package/dist/{chunk-HA46L5FG.js → chunk-P2PNBDUT.js} +5 -4
  33. package/dist/{chunk-XDCD4GD5.js → chunk-POND2SMT.js} +3 -3
  34. package/dist/{chunk-265SXBQ5.js → chunk-QGDGGLSD.js} +3 -3
  35. package/dist/{chunk-RIKXE3T5.js → chunk-QGEGLZSY.js} +6 -6
  36. package/dist/{chunk-4L46A2RR.js → chunk-QI7JB2GU.js} +87 -23
  37. package/dist/{chunk-DKIZDYUX.js → chunk-ROQPDCRU.js} +1 -1
  38. package/dist/{chunk-47SFTQA5.js → chunk-RRXS4CWE.js} +2 -2
  39. package/dist/{chunk-2CW2QMSG.js → chunk-S6UM3N4R.js} +1 -1
  40. package/dist/{chunk-64LLUVJR.js → chunk-SAAVZ2BX.js} +1 -1
  41. package/dist/{chunk-V64BEF6E.js → chunk-T3XPLCJG.js} +1 -1
  42. package/dist/{chunk-6MLX26T4.js → chunk-TDCHUEKY.js} +2 -2
  43. package/dist/{chunk-ORENXMHA.js → chunk-UXC3RQLF.js} +1 -1
  44. package/dist/{chunk-X2ZJL7GA.js → chunk-UZEIBWTP.js} +2 -2
  45. package/dist/{chunk-WHONZ53R.js → chunk-V2S2WRGD.js} +1 -1
  46. package/dist/{chunk-BEILLR5Q.js → chunk-W7E6IMEW.js} +3 -3
  47. package/dist/{chunk-HUS6X5BJ.js → chunk-WA3HIJVK.js} +3 -3
  48. package/dist/{chunk-I4V2YBMA.js → chunk-WH3FPBPO.js} +598 -40
  49. package/dist/{chunk-T664NDNT.js → chunk-XDAMLX2L.js} +5 -5
  50. package/dist/{chunk-JDYBPAPP.js → chunk-YF7W7B7Y.js} +24 -8
  51. package/dist/{chunk-43BV4MP5.js → chunk-YIK5SGEN.js} +5 -5
  52. package/dist/{chunk-4N7BQBO4.js → chunk-YLPJOUVF.js} +5 -3
  53. package/dist/{chunk-TVDKDXW6.js → chunk-ZCA34T7R.js} +3 -3
  54. package/dist/{chunk-TZXJSNN4.js → chunk-ZCZY3Q55.js} +1 -1
  55. package/dist/{chunk-BTA5QOKD.js → chunk-ZTOJIRJH.js} +2 -2
  56. package/dist/{claude-launcher-TG7CHE3N.js → claude-launcher-7IC6QWR5.js} +1 -1
  57. package/dist/{cli-DQXFGH6X.js → cli-GKROH23V.js} +110 -110
  58. package/dist/{command-JLHJ2TOH.js → command-XA6DOFL4.js} +24 -24
  59. package/dist/config-RSOCVUKC.js +17 -0
  60. package/dist/{connect-cmd-VBEYNPAK.js → connect-cmd-JFGDHFLA.js} +5 -5
  61. package/dist/{container-start-L5FDIAD7.js → container-start-ZDSVXSAL.js} +30 -30
  62. package/dist/{context-show-cmd-GMF7YMSN.js → context-show-cmd-XWLTP6R4.js} +6 -6
  63. package/dist/{control-plane-launch-4WRFVYNP.js → control-plane-launch-3MBWPYWZ.js} +5 -5
  64. package/dist/{demo-record-cmd-EGBXUDYP.js → demo-record-cmd-SIKNTSGI.js} +2 -2
  65. package/dist/{demo-voice-cmd-KFNEU2GR.js → demo-voice-cmd-SAB3QU4F.js} +11 -11
  66. package/dist/{docker-UP7EFFLL.js → docker-YMRPMDOW.js} +4 -4
  67. package/dist/{doctor-UIQ22QZC.js → doctor-NVHAE4LS.js} +24 -24
  68. package/dist/{emit-artifact-cmd-NLCKM5TU.js → emit-artifact-cmd-TZTVQCFT.js} +10 -10
  69. package/dist/{emit-criteria-cmd-GO3TDUCG.js → emit-criteria-cmd-WH7JB4RQ.js} +7 -7
  70. package/dist/{emit-demo-cmd-EJBQHFR2.js → emit-demo-cmd-DNUVG5N7.js} +11 -11
  71. package/dist/{emit-finding-cmd-PHUHZLQ3.js → emit-finding-cmd-X5CBH4ZA.js} +7 -7
  72. package/dist/{emit-result-cmd-UJSWTGDG.js → emit-result-cmd-VCKNZ4RZ.js} +9 -9
  73. package/dist/{emit-step-cmd-M2JEWJ4Q.js → emit-step-cmd-IUXZZYKO.js} +7 -7
  74. package/dist/{exec-client-BQIZRROT.js → exec-client-U4544U2S.js} +3 -3
  75. package/dist/{find-unit-H5DKNRBG.js → find-unit-QYD2FMCP.js} +8 -8
  76. package/dist/{findings-cmd-O3VCFA55.js → findings-cmd-PLHBAQW4.js} +7 -7
  77. package/dist/{fleet-readiness-SXIYBEWC.js → fleet-readiness-F65CKZY5.js} +5 -5
  78. package/dist/{governing-source-QEXH6MIZ.js → governing-source-JFCTQXYK.js} +9 -9
  79. package/dist/{guest-init-DXXSPKHY.js → guest-init-MI4SEME4.js} +4 -4
  80. package/dist/{hook-fast-DPC75LFQ.js → hook-fast-GOH4T6SN.js} +1 -1
  81. package/dist/{host-checks-BOLFMWX2.js → host-checks-LEVAIIN4.js} +28 -28
  82. package/dist/{pending-V5FBWIJ4.js → host-key-OMLDWLNG.js} +3 -3
  83. package/dist/{image-tag-3KPTSRB4.js → image-tag-YJJONB64.js} +3 -3
  84. package/dist/index.js +4 -4
  85. package/dist/{init-7G3UO6J3.js → init-JVKJTJNM.js} +21 -21
  86. package/dist/{init-N6UZ5WCL.js → init-W3ATJYLX.js} +24 -22
  87. package/dist/{init-cmd-4LYUGPB3.js → init-cmd-XJOEU2PB.js} +10 -10
  88. package/dist/{init-update-4GUGHNS5.js → init-update-KX3FFQ5H.js} +8 -8
  89. package/dist/{install-cmd-6HGNO2HF.js → install-cmd-QTIIMO6B.js} +5 -5
  90. package/dist/{logs-HUENB7U4.js → logs-YVXVAYTD.js} +2 -2
  91. package/dist/{loop-GRDMQM2J.js → loop-NNJN2XOW.js} +35 -35
  92. package/dist/{machine-QSGONNDX.js → machine-OQOHEMJB.js} +21 -21
  93. package/dist/{mcp-serve-cmd-OFK3CS2T.js → mcp-serve-cmd-ECTAPDB3.js} +4 -4
  94. package/dist/{paths-VQ3ALYZ3.js → paths-M66LPPUF.js} +2 -2
  95. package/dist/{host-key-5P3ZL5XW.js → pending-7LC6XDRO.js} +3 -3
  96. package/dist/{pidfile-AVJFRZZT.js → pidfile-DSQOOAZV.js} +3 -3
  97. package/dist/{record-XE7Z3QGF.js → record-3KKIJ3XL.js} +3 -3
  98. package/dist/{runner-env-K4DOSDUV.js → runner-env-EX7YUIUH.js} +8 -8
  99. package/dist/{runner-identity-4RVY2MHX.js → runner-identity-LJWBXNM5.js} +4 -4
  100. package/dist/{runner-key-DIGTV3G5.js → runner-key-CAUO4RKG.js} +21 -21
  101. package/dist/{session-sender-N6QHL35T.js → session-sender-U2CTD7EX.js} +10 -10
  102. package/dist/{spec-cmd-EZGRJPUQ.js → spec-cmd-SAWQYHKM.js} +8 -8
  103. package/dist/{status-NA5DLUXD.js → status-IPIMYTG5.js} +28 -28
  104. package/dist/{sync-cmd-NEAZMEIL.js → sync-cmd-EBJQ5LMH.js} +9 -9
  105. package/dist/{update-steps-7HZZPWZE.js → update-steps-E2PP5DPR.js} +29 -29
  106. package/dist/{watch-FOY5LSSS.js → watch-6NRBX6VE.js} +9 -9
  107. package/dist/{work-claim-cmd-EJT55FZY.js → work-claim-cmd-SLVX2N4L.js} +12 -12
  108. package/dist/{work-cmd-KLPPJG4U.js → work-cmd-VSHZCXHQ.js} +7 -7
  109. package/dist/{work-comment-cmd-TT6TFF6Q.js → work-comment-cmd-3DCL7VHN.js} +8 -8
  110. package/dist/{work-demo-cmd-22PLEX4X.js → work-demo-cmd-SZJIKB5J.js} +7 -7
  111. package/dist/{work-logs-cmd-DWK5AYLK.js → work-logs-cmd-MRFSBMJM.js} +7 -7
  112. package/dist/{work-open-pr-cmd-MKHZBGA6.js → work-open-pr-cmd-N7GK7FUQ.js} +8 -8
  113. package/dist/{work-pr-cmd-P7PRHAJD.js → work-pr-cmd-HD5OIHUU.js} +7 -7
  114. package/dist/{work-proofs-cmd-CNQR7RCD.js → work-proofs-cmd-H2GGE5HK.js} +8 -8
  115. package/dist/{work-proofs-record-GICELEJQ.js → work-proofs-record-CJAFFWXG.js} +14 -14
  116. package/dist/{work-stop-cmd-U42TFT7X.js → work-stop-cmd-M6RIGF7S.js} +7 -7
  117. package/package.json +1 -1
  118. package/skill-pack/maintained/outerlayer-build/SKILL.md +22 -0
  119. 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-3PFR2WXH.js';
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-TZXJSNN4.js';
8
- import { renderUpdateSteps } from './chunk-HUS6X5BJ.js';
9
- import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-JDQBJUXQ.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-AJZWVXXA.js';
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-RIKXE3T5.js';
13
- import { writeMarker, readMarker, currentVersion, removeMarker, isInLayout, startedThroughCurrent, entryIn, versionDir, switchCurrent, cleanVersions, stagingDir } from './chunk-E3GX4WVJ.js';
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-I4V2YBMA.js';
16
- import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, resolveGoverningSource, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-ZXQEBRCB.js';
17
- import { imageTag, writeUpdateStatus, pullInstruction, tagToPull } from './chunk-ORENXMHA.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, 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-JDYBPAPP.js';
20
- import { freeBytes, formatBytes, allocatedBytes } from './chunk-47SFTQA5.js';
21
- import { writeJobFile, ensureRunnerIdentity, identityDockerFor, readJobFile, exceedsDisk, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, readJobFileChecked } from './chunk-HA46L5FG.js';
22
- import { claimPidFile, releasePidFile, writePidFile, readPidFile } from './chunk-64LLUVJR.js';
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-T664NDNT.js';
25
- import { loadHostKey, ensureHostKey, signerFor } from './chunk-VJQQVTCS.js';
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-2CW2QMSG.js';
28
- import { parseClaimIdentity, parseClaimedRepositories, parseUnreachable, repositoriesOf, primaryOf, sharedUserEnvironment, JOB_MOUNT, takeClaudeCredential, heldClaudeCredential, currentClaudeCredential, fdName } from './chunk-4N7BQBO4.js';
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 free = minimum === 0 ? Number.POSITIVE_INFINITY : (state.deps.freeBytes ?? freeBytes)(root) ?? Number.POSITIVE_INFINITY;
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-KLPPJG4U.js');
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-AMTV6RTN.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
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-4N7BQBO4.js';
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-HA46L5FG.js';
4
- import { buildsDir, rootfsDir, runnerDir, imagesDir, builderCacheDiskPath } from './chunk-2CW2QMSG.js';
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,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { BUILD_HOME } from './chunk-4N7BQBO4.js';
3
+ import { BUILD_HOME } from './chunk-YLPJOUVF.js';
4
4
  import { join, dirname } from 'path';
5
5
 
6
6
  createRequire(import.meta.url);
@@ -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-2CW2QMSG.js';
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,7 +1,7 @@
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-4N7BQBO4.js';
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);
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { LiveUploader } from './chunk-FG564H3C.js';
4
- import { spoolDir } from './chunk-WHONZ53R.js';
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-2CW2QMSG.js';
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-IZKUPAXF.js';
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-4N7BQBO4.js';
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-4WRFVYNP.js');
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-FG564H3C.js';
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-BRBZKIZG.js';
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-IZKUPAXF.js';
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-AJZWVXXA.js';
4
- import { tagToPull, imageTag, pullInstruction, readUpdateStatus, runnerImageVersion } from './chunk-ORENXMHA.js';
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-UP7EFFLL.js')).spawnRun;
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 = "";