@outerlayer/cli 0.34.0-next.20261027190442 → 0.34.0-next.20261028002917

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 (123) hide show
  1. package/dist/{agent-setup-THDNZ5ME.js → agent-setup-6FPE6EYN.js} +6 -6
  2. package/dist/{bridge-MLB57JP6.js → bridge-JGIHPGMY.js} +2 -2
  3. package/dist/{build-25GDCEZ7.js → build-AAQ4PVP2.js} +9 -9
  4. package/dist/{build-disk-NFMQCZM3.js → build-disk-L7JRQA22.js} +7 -7
  5. package/dist/build-info.json +1 -1
  6. package/dist/{builder-OWDGC3VQ.js → builder-LMLAVVVF.js} +6 -6
  7. package/dist/{check-IFHLERRX.js → check-ZULOZVV4.js} +38 -38
  8. package/dist/{chunk-JO4SAEHH.js → chunk-23XAA7YD.js} +2 -2
  9. package/dist/{chunk-7SJNVGVC.js → chunk-32FAPJFD.js} +5 -5
  10. package/dist/{chunk-4HA4S3U2.js → chunk-3E7QAXUW.js} +152 -7
  11. package/dist/{chunk-3FTIUB7I.js → chunk-3X6OSXSB.js} +1 -1
  12. package/dist/{chunk-3RRYEZAC.js → chunk-3XOLOV5A.js} +3 -3
  13. package/dist/{chunk-PMIW6OGQ.js → chunk-4A5OJOCR.js} +9 -9
  14. package/dist/{chunk-NO6E72RM.js → chunk-4J5GRWAY.js} +1 -1
  15. package/dist/{chunk-4QQJTJUN.js → chunk-57WFXHCB.js} +1 -1
  16. package/dist/{chunk-36M4KVBT.js → chunk-5IUC2B6J.js} +2 -2
  17. package/dist/{chunk-7TLGRE5F.js → chunk-5LUN7TTR.js} +2 -2
  18. package/dist/{chunk-OP2L7OXA.js → chunk-6LS62EO4.js} +3 -3
  19. package/dist/{chunk-FVVHQIZR.js → chunk-6OLXDSQ6.js} +1 -1
  20. package/dist/{chunk-AV5T7HV3.js → chunk-6Q7O4MRI.js} +1 -1
  21. package/dist/{chunk-UZIAZXXO.js → chunk-77D5ENBA.js} +1 -1
  22. package/dist/{chunk-FLHBUQ2W.js → chunk-AHWMY3MS.js} +155 -10
  23. package/dist/{chunk-3VJYDWFV.js → chunk-AJTGTSNA.js} +1 -1
  24. package/dist/{chunk-5FHBVV25.js → chunk-BQ4C47K2.js} +7 -7
  25. package/dist/{chunk-EYJRVHBN.js → chunk-BTDBDTUY.js} +2 -2
  26. package/dist/{chunk-X7M73LKT.js → chunk-CM4J53WZ.js} +1 -1
  27. package/dist/{chunk-WX2HW2G2.js → chunk-D3CT6XQ4.js} +10 -3
  28. package/dist/{chunk-HJCNWEQK.js → chunk-D6SH7DWA.js} +2 -2
  29. package/dist/{chunk-LYX2RRSF.js → chunk-EGJY6MBC.js} +2 -2
  30. package/dist/{chunk-T6ALNN3H.js → chunk-F3BGTGQC.js} +1 -1
  31. package/dist/{chunk-BS3OYFAD.js → chunk-G4SOMWXL.js} +1 -1
  32. package/dist/{chunk-BS4CZMT6.js → chunk-GET5HKLM.js} +1 -1
  33. package/dist/{chunk-6IMQXBTZ.js → chunk-GJYGOFF3.js} +5 -5
  34. package/dist/{chunk-Y4WJ4BLX.js → chunk-GMEXR6PY.js} +6 -6
  35. package/dist/{chunk-JWMJMQRF.js → chunk-GXMMILQ4.js} +4 -4
  36. package/dist/{chunk-WR2GRWK3.js → chunk-I4YOWQH7.js} +1 -1
  37. package/dist/{chunk-S5U6RKQX.js → chunk-ILTVAD5Y.js} +47 -176
  38. package/dist/{chunk-QRIE4JZE.js → chunk-JXY66VYX.js} +2 -2
  39. package/dist/{chunk-CMMEJJTL.js → chunk-KTVZ7TZY.js} +2 -2
  40. package/dist/{chunk-GMKDAF37.js → chunk-L2OARQKP.js} +17 -98
  41. package/dist/{chunk-CFJOONWM.js → chunk-LBKCYEJT.js} +1 -1
  42. package/dist/{chunk-OHTMTMFX.js → chunk-NBETYM32.js} +4 -4
  43. package/dist/{chunk-MXAYUZJF.js → chunk-NCKH3KCM.js} +5 -5
  44. package/dist/{chunk-RCAMBC3H.js → chunk-NOEJGR4X.js} +2 -2
  45. package/dist/{chunk-62URQYCB.js → chunk-PAGB3DCI.js} +1 -1
  46. package/dist/{chunk-Y7MF32DM.js → chunk-PBI4CM4M.js} +67 -60
  47. package/dist/{chunk-JVNQNKHV.js → chunk-PHIQHIRJ.js} +1 -1
  48. package/dist/{chunk-7Q7GQELE.js → chunk-PPQTTJSW.js} +5 -5
  49. package/dist/{chunk-GPO7F757.js → chunk-QJ2SNBHL.js} +1 -1
  50. package/dist/{chunk-W246VXU4.js → chunk-QNF7LT7W.js} +2 -2
  51. package/dist/{chunk-Z4LFCJT6.js → chunk-SWCOWG2C.js} +2 -2
  52. package/dist/{chunk-SKAML7GB.js → chunk-SYMBXSAT.js} +3 -3
  53. package/dist/{chunk-5ARXP3BP.js → chunk-UEDRRWZ3.js} +3 -3
  54. package/dist/{chunk-LSFP57LI.js → chunk-VB4QD4WN.js} +273 -122
  55. package/dist/{chunk-RJZZFAXS.js → chunk-VKYU4HHW.js} +1 -1
  56. package/dist/{chunk-2YPOSVC7.js → chunk-WEQMLC7P.js} +3 -3
  57. package/dist/{chunk-ANFNZCXZ.js → chunk-WSVE5QGL.js} +4 -4
  58. package/dist/{claude-launcher-LYGS66AC.js → claude-launcher-GGZEWVYJ.js} +1 -1
  59. package/dist/{cli-7S4PEKAV.js → cli-6WPETUBZ.js} +110 -110
  60. package/dist/{command-GQVFZHJ2.js → command-NSTOWAZ6.js} +26 -26
  61. package/dist/{config-5NWSCHIO.js → config-YPUOOZB6.js} +8 -8
  62. package/dist/{connect-cmd-HB3K3AHE.js → connect-cmd-RPEEANNE.js} +5 -5
  63. package/dist/{container-start-WRD3YZQR.js → container-start-OOBTGHWF.js} +32 -32
  64. package/dist/{context-show-cmd-RJIQS2KF.js → context-show-cmd-R5WCECOT.js} +6 -6
  65. package/dist/{control-plane-launch-TS4DFJF4.js → control-plane-launch-55CJGYBK.js} +5 -5
  66. package/dist/{demo-record-cmd-VVZGUCWB.js → demo-record-cmd-SFOWQPL7.js} +4 -4
  67. package/dist/{demo-voice-cmd-3ADGIWK6.js → demo-voice-cmd-ZOBRVHOK.js} +12 -12
  68. package/dist/{docker-5VGCFZV2.js → docker-VPJW5LXB.js} +6 -6
  69. package/dist/{doctor-N4I6IEKP.js → doctor-O2EJAPZB.js} +70 -27
  70. package/dist/{emit-artifact-cmd-WJT7AXTZ.js → emit-artifact-cmd-HBFYBXJR.js} +10 -10
  71. package/dist/{emit-criteria-cmd-45IYB535.js → emit-criteria-cmd-TPUL7M2R.js} +7 -7
  72. package/dist/{emit-demo-cmd-AIIQNPXS.js → emit-demo-cmd-5CUT7W3R.js} +12 -12
  73. package/dist/{emit-finding-cmd-6YTJK2NA.js → emit-finding-cmd-IKHGMACP.js} +7 -7
  74. package/dist/{emit-result-cmd-TZGFY743.js → emit-result-cmd-F7CI6SNZ.js} +9 -9
  75. package/dist/{emit-step-cmd-LGBTIAXC.js → emit-step-cmd-DVEKGHK7.js} +7 -7
  76. package/dist/{exec-client-LR67CA24.js → exec-client-H2JG36OS.js} +3 -3
  77. package/dist/find-unit-ACTOZVVS.js +19 -0
  78. package/dist/{findings-cmd-ETJXUDQI.js → findings-cmd-ODKZ462L.js} +7 -7
  79. package/dist/{fleet-readiness-MYIMDBF7.js → fleet-readiness-UHCBNW6A.js} +5 -5
  80. package/dist/{governing-source-GBJTVMK2.js → governing-source-SRECHKPR.js} +9 -9
  81. package/dist/{guest-init-GXPOW53F.js → guest-init-6FUC4XZX.js} +4 -4
  82. package/dist/{hook-fast-5WOGLR7V.js → hook-fast-WM6YZVBJ.js} +1 -1
  83. package/dist/{host-checks-33ZTDTSH.js → host-checks-FLIHLR35.js} +30 -30
  84. package/dist/{pending-6DDSCXUD.js → host-key-OSWPVMIA.js} +3 -3
  85. package/dist/{image-tag-OYHGRHVV.js → image-tag-LF3NEGSL.js} +3 -3
  86. package/dist/index.js +4 -4
  87. package/dist/{init-OXCOPKHP.js → init-LPD75DCX.js} +23 -23
  88. package/dist/{init-2YOAKLDN.js → init-OX677NNB.js} +23 -23
  89. package/dist/{init-cmd-BUWWUQKM.js → init-cmd-ZCLVC5RR.js} +10 -10
  90. package/dist/{init-update-TXQHBY3H.js → init-update-POKSLQDQ.js} +8 -8
  91. package/dist/{install-cmd-VZGXSS73.js → install-cmd-6SQVZEXL.js} +5 -5
  92. package/dist/{logs-42QPBCMC.js → logs-QHXZTSKZ.js} +2 -2
  93. package/dist/{loop-M3XDFD6O.js → loop-WM62DR42.js} +37 -37
  94. package/dist/{machine-3BI2SGAK.js → machine-7VPFAC6L.js} +23 -23
  95. package/dist/{mcp-serve-cmd-LYJQO6U4.js → mcp-serve-cmd-J32K42HM.js} +4 -4
  96. package/dist/{paths-QLFRPIKS.js → paths-4ZGWWNTG.js} +2 -2
  97. package/dist/{host-key-GAZM4EOH.js → pending-CRXJKKKI.js} +3 -3
  98. package/dist/{pidfile-WLZ427QQ.js → pidfile-VLZPRIBZ.js} +3 -3
  99. package/dist/{record-WGCMQLQS.js → record-4ZJPJTWO.js} +3 -3
  100. package/dist/{runner-env-6FSJOSWS.js → runner-env-W53VDVOK.js} +10 -10
  101. package/dist/{runner-identity-XODZ7YBP.js → runner-identity-BH42S2MU.js} +6 -6
  102. package/dist/{runner-key-KMTC4NCQ.js → runner-key-ESAZRV3A.js} +23 -23
  103. package/dist/{session-sender-U54EQJNR.js → session-sender-UB45MUKV.js} +10 -10
  104. package/dist/{spec-cmd-EM24GTAM.js → spec-cmd-H5B55O5L.js} +8 -8
  105. package/dist/{status-WVCQCBDQ.js → status-L2OYAZHY.js} +30 -30
  106. package/dist/{sync-cmd-Y5RKWVF7.js → sync-cmd-IWA5ZTI2.js} +9 -9
  107. package/dist/{update-steps-2D4YQAW2.js → update-steps-FWQ5ASZ6.js} +31 -31
  108. package/dist/{watch-X5VYY4LH.js → watch-NOEBVS6U.js} +9 -9
  109. package/dist/{work-claim-cmd-IU3YJQKR.js → work-claim-cmd-7P7U3OQ6.js} +14 -14
  110. package/dist/{work-cmd-LUKJHAMH.js → work-cmd-77GUT7LY.js} +7 -7
  111. package/dist/{work-comment-cmd-BDNFAVKL.js → work-comment-cmd-VS3BSPGM.js} +8 -8
  112. package/dist/{work-demo-cmd-GPDJHU6F.js → work-demo-cmd-S3GXBYIA.js} +7 -7
  113. package/dist/{work-logs-cmd-B6EX4RPE.js → work-logs-cmd-6BXIINCM.js} +7 -7
  114. package/dist/{work-open-pr-cmd-TRXDCMSG.js → work-open-pr-cmd-EPOFWJDC.js} +8 -8
  115. package/dist/{work-pr-cmd-5GUR5SIU.js → work-pr-cmd-DYSYOP74.js} +7 -7
  116. package/dist/{work-proofs-cmd-5BYAAW3H.js → work-proofs-cmd-DS2VX4E4.js} +8 -8
  117. package/dist/{work-proofs-record-USD4JWFP.js → work-proofs-record-LIQGUDWH.js} +15 -15
  118. package/dist/{work-stop-cmd-J47GZB2N.js → work-stop-cmd-HYQTDNUY.js} +7 -7
  119. package/package.json +1 -1
  120. package/skill-pack/maintained/outerlayer-build/SKILL.md +8 -0
  121. package/skill-pack/maintained/outerlayer-build/references/agent-briefs.md +8 -0
  122. package/skill-pack/maintained/outerlayer-build/references/review-loop.md +2 -2
  123. package/dist/find-unit-YGDFVHVU.js +0 -19
@@ -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-Y4WJ4BLX.js';
4
+ import { reportFailedStart, fitImageBuildMemory } from './chunk-GMEXR6PY.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-UZIAZXXO.js';
8
- import { renderUpdateSteps } from './chunk-SKAML7GB.js';
9
- import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-BS4CZMT6.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-Y7MF32DM.js';
7
+ import { writePendingUpdate } from './chunk-77D5ENBA.js';
8
+ import { renderUpdateSteps } from './chunk-SYMBXSAT.js';
9
+ import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-GET5HKLM.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-PBI4CM4M.js';
11
11
  import { JOB_STATE_FORMAT, readsJobState, jobStateFormatOf } from './chunk-ZVB57WI6.js';
12
- import { realBlockedProbes, checkBlockedWithSlots, largeBuildMemoryBytes, LARGE_BUILD_DISK_BYTES, checkManagedRoom, sliceMemoryOf } from './chunk-4HA4S3U2.js';
13
- import { writeMarker, readMarker, currentVersion, removeMarker, isInLayout, startedThroughCurrent, entryIn, versionDir, switchCurrent, cleanVersions, stagingDir } from './chunk-WR2GRWK3.js';
12
+ import { realBlockedProbes, checkBlockedWithSlots, largeBuildMemoryBytes, LARGE_BUILD_DISK_BYTES, checkManagedRoom, sliceMemoryOf, createHousekeepingDocker, housekeepingDockerIfReachable, KIND_LABEL, RECIPE_KEY_LABEL } from './chunk-3E7QAXUW.js';
13
+ import { writeMarker, readMarker, currentVersion, removeMarker, isInLayout, startedThroughCurrent, entryIn, versionDir, switchCurrent, cleanVersions, stagingDir } from './chunk-I4YOWQH7.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, setUpRunnerCgroup, sweepImageBuilders, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, managedBuildSettingsFor, ADOPTED_FETCH_RETRY_WINDOW_MS, gitRemoteFor, startServicesFor, createLeaseChannel } from './chunk-LSFP57LI.js';
16
- import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, resolveGoverningSource, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-7Q7GQELE.js';
17
- import { imageTag, writeUpdateStatus, pullInstruction, tagToPull } from './chunk-CFJOONWM.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, setUpRunnerCgroup, sweepImageBuilders, stoppedHelperReason, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, ensureNetworkReady, managedBuildSettingsFor, ADOPTED_FETCH_RETRY_WINDOW_MS, gitRemoteFor, startServicesFor, createLeaseChannel } from './chunk-VB4QD4WN.js';
16
+ import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, resolveGoverningSource, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-PPQTTJSW.js';
17
+ import { imageTag, writeUpdateStatus, pullInstruction, tagToPull } from './chunk-LBKCYEJT.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-JWMJMQRF.js';
20
- import { freeBytes, formatBytes, allocatedBytes, volumeBytes } from './chunk-LYX2RRSF.js';
21
- import { writeJobFile, ensureRunnerIdentity, identityDockerFor, readJobFile, exceedsDisk, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, RUNNER_LABEL, BUILD_LABEL, readJobFileChecked } from './chunk-FLHBUQ2W.js';
22
- import { claimPidFile, writePidFile, readPidFile, releasePidFile } from './chunk-3FTIUB7I.js';
19
+ import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind, keepsHostBuilder, DEFAULT_UPDATE_MAX_WAIT_HOURS } from './chunk-GXMMILQ4.js';
20
+ import { freeBytes, formatBytes, allocatedBytes } from './chunk-EGJY6MBC.js';
21
+ import { writeJobFile, ensureRunnerIdentity, identityDockerFor, readJobFile, exceedsDisk, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, readJobFileChecked } from './chunk-AHWMY3MS.js';
22
+ import { claimPidFile, writePidFile, readPidFile, releasePidFile } from './chunk-3X6OSXSB.js';
23
23
  import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
24
- import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-6IMQXBTZ.js';
25
- import { loadHostKey, ensureHostKey, signerFor } from './chunk-RJZZFAXS.js';
24
+ import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-GJYGOFF3.js';
25
+ import { loadHostKey, ensureHostKey, signerFor } from './chunk-VKYU4HHW.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-3VJYDWFV.js';
28
- import { parseClaimIdentity, parseClaimedRepositories, parseUnreachable, repositoriesOf, primaryOf, sharedUserEnvironment, JOB_MOUNT, takeClaudeCredential, heldClaudeCredential, currentClaudeCredential, fdName } from './chunk-GMKDAF37.js';
27
+ import { RUNNER_DIR_MODE, runnerDir, buildDir, attemptStamp, jobDir, RUNNER_FILE_MODE, jobsDir, pidFilePath, spoolDir, imagesDir, rootfsDir, builderCacheDiskPath } from './chunk-AJTGTSNA.js';
28
+ import { parseClaimIdentity, parseClaimedRepositories, parseUnreachable, repositoriesOf, primaryOf, sharedUserEnvironment, JOB_MOUNT, takeClaudeCredential, heldClaudeCredential, currentClaudeCredential, fdName } from './chunk-L2OARQKP.js';
29
29
  import { COMMAND_LOST_REASON, CONTAINER_STOPPED_REASON } from './chunk-MESOOLF4.js';
30
30
  import { randomBytes } from 'crypto';
31
31
  import { mkdirSync, existsSync, chmodSync, writeFileSync, renameSync, statSync, readdirSync, readFileSync, closeSync, rmSync, lstatSync } from 'fs';
@@ -369,9 +369,9 @@ function retryFailure(version, err) {
369
369
  }
370
370
  return { outcome: "retrying", reason: messageOf(err) };
371
371
  }
372
- function finish(args, failure2) {
373
- let update = { from: args.own, to: args.version, outcome: failure2.outcome, reason: failure2.reason, at: isoAt(args.now) };
374
- if (failure2.outcome === "retrying") {
372
+ function finish(args, failure) {
373
+ let update = { from: args.own, to: args.version, outcome: failure.outcome, reason: failure.reason, at: isoAt(args.now) };
374
+ if (failure.outcome === "retrying") {
375
375
  const previous = readLastUpdate(args.configPath);
376
376
  const attempts = previous?.to === args.version && previous.outcome === "retrying" ? (previous.attempts ?? 1) + 1 : 1;
377
377
  update = { ...update, attempts };
@@ -381,16 +381,16 @@ function finish(args, failure2) {
381
381
  } catch (err) {
382
382
  args.log.error(`could not record the update attempt: ${messageOf(err)}`);
383
383
  }
384
- if (failure2.outcome === "retrying") {
384
+ if (failure.outcome === "retrying") {
385
385
  return {
386
386
  kind: "retrying",
387
- reason: failure2.reason,
388
- detail: failure2.detail ?? failure2.reason,
387
+ reason: failure.reason,
388
+ detail: failure.detail ?? failure.reason,
389
389
  attempts: update.attempts ?? 1,
390
390
  retryAtMs: retryAfterMs(update)
391
391
  };
392
392
  }
393
- return { kind: "failed", outcome: failure2.outcome, reason: failure2.reason };
393
+ return { kind: "failed", outcome: failure.outcome, reason: failure.reason };
394
394
  }
395
395
  async function earlyFailure(args) {
396
396
  const current = currentVersion(args.configPath);
@@ -421,8 +421,8 @@ async function earlyFailure(args) {
421
421
  return void 0;
422
422
  }
423
423
  async function preflightUpdate(args) {
424
- const failure2 = await earlyFailure(args);
425
- return failure2 === void 0 ? void 0 : finish(args, failure2);
424
+ const failure = await earlyFailure(args);
425
+ return failure === void 0 ? void 0 : finish(args, failure);
426
426
  }
427
427
  async function prepareUpdate(args) {
428
428
  const { configPath, version, deps } = args;
@@ -536,150 +536,6 @@ function settleUpdate(args) {
536
536
  }
537
537
  }
538
538
 
539
- // src/runner/housekeeping/docker.ts
540
- var KIND_LABEL = "ai.outerlayer.kind";
541
- var RECIPE_KEY_LABEL = "ai.outerlayer.recipe-key";
542
- var NO_BUILDER = /no builder .* found/i;
543
- function failure(result, what) {
544
- return new Error(`${what}: ${result.stderr.trim() || `docker exited ${result.status}`}`);
545
- }
546
- function labelled(stdout, runnerId) {
547
- const found = [];
548
- for (const line of stdout.split("\n")) {
549
- const [key = "", build = "", runner = ""] = line.replace(/\r?\n$/, "").split(" ");
550
- if (key.trim() === "" || build === "") continue;
551
- if (runner !== "" && runner !== runnerId) continue;
552
- found.push({ key: key.trim(), build, owned: runner === runnerId });
553
- }
554
- return found;
555
- }
556
- function decimalUnits() {
557
- return { b: 1, kb: 1e3, mb: 1e6, gb: 1e9, tb: 1e12, pb: 1e15 };
558
- }
559
- function parsePrunedBytes(stdout) {
560
- const match = /^Total(?: reclaimed space)?:\s*([\d.]+)\s*([A-Za-z]*)\s*$/im.exec(stdout);
561
- if (match === null) return 0;
562
- const unit = decimalUnits()[match[2].toLowerCase() || "b"];
563
- return unit === void 0 ? 0 : Math.round(Number(match[1]) * unit);
564
- }
565
- function createHousekeepingDocker(deps) {
566
- const run = deps.run ?? spawnRun;
567
- return {
568
- async listBuildContainers() {
569
- const result = await run("docker", [
570
- "ps",
571
- "--all",
572
- "--no-trunc",
573
- "--filter",
574
- `label=${BUILD_LABEL}`,
575
- "--format",
576
- `{{.ID}} {{.Label "${BUILD_LABEL}"}} {{.Label "${RUNNER_LABEL}"}}`
577
- ]);
578
- if (result.status !== 0) throw failure(result, "docker ps");
579
- return labelled(result.stdout, deps.runnerId).map(({ key, build, owned }) => ({ id: key, build, owned }));
580
- },
581
- async listBuildVolumes() {
582
- const result = await run("docker", [
583
- "volume",
584
- "ls",
585
- "--filter",
586
- `label=${BUILD_LABEL}`,
587
- "--format",
588
- `{{.Name}} {{.Label "${BUILD_LABEL}"}} {{.Label "${RUNNER_LABEL}"}}`
589
- ]);
590
- if (result.status !== 0) throw failure(result, "docker volume ls");
591
- return labelled(result.stdout, deps.runnerId).map(({ key, build, owned }) => ({ name: key, build, owned }));
592
- },
593
- async removeContainer(id) {
594
- const result = await run("docker", ["rm", "--force", "--volumes", id]);
595
- if (result.status !== 0) throw failure(result, `docker rm ${id}`);
596
- },
597
- async removeVolume(name) {
598
- const result = await run("docker", ["volume", "rm", "--force", name]);
599
- if (result.status !== 0) throw failure(result, `docker volume rm ${name}`);
600
- },
601
- async imageState(ref) {
602
- const result = await run("docker", ["image", "inspect", "--format", "{{.Id}}", ref]);
603
- if (result.status === 0) return "present";
604
- return /no such image|not found/i.test(result.stderr) ? "missing" : "unknown";
605
- },
606
- async listDanglingImages() {
607
- const listed = await run("docker", [
608
- "image",
609
- "ls",
610
- "--all",
611
- "--no-trunc",
612
- "--quiet",
613
- "--filter",
614
- "dangling=true",
615
- "--filter",
616
- `label=${KIND_LABEL}`,
617
- "--filter",
618
- `label=${RUNNER_LABEL}=${deps.runnerId}`
619
- ]);
620
- if (listed.status !== 0) throw failure(listed, "docker image ls");
621
- const ids = [...new Set(listed.stdout.split("\n").map((l) => l.trim()).filter(Boolean))];
622
- if (ids.length === 0) return [];
623
- const inspected = await run("docker", ["image", "inspect", ...ids]);
624
- if (inspected.status !== 0) throw failure(inspected, "docker image inspect");
625
- return JSON.parse(inspected.stdout).map((row) => ({
626
- id: row.Id,
627
- size: row.Size ?? 0,
628
- labels: row.Config?.Labels ?? {}
629
- }));
630
- },
631
- async listLabelledImages() {
632
- const listed = await run("docker", ["image", "ls", "--all", "--no-trunc", "--quiet", "--filter", `label=${KIND_LABEL}`, "--filter", `label=${RUNNER_LABEL}=${deps.runnerId}`]);
633
- if (listed.status !== 0) throw failure(listed, "docker image ls");
634
- const ids = [...new Set(listed.stdout.split("\n").map((l) => l.trim()).filter(Boolean))];
635
- if (ids.length === 0) return [];
636
- const inspected = await run("docker", ["image", "inspect", ...ids]);
637
- if (inspected.status !== 0) throw failure(inspected, "docker image inspect");
638
- return JSON.parse(inspected.stdout).map((row) => ({
639
- id: row.Id,
640
- size: row.Size ?? 0,
641
- labels: row.Config?.Labels ?? {},
642
- tags: (row.RepoTags ?? []).filter((tag) => tag !== "<none>:<none>"),
643
- createdMs: Date.parse(row.Created ?? "")
644
- }));
645
- },
646
- async removeImage(id) {
647
- const result = await run("docker", ["rmi", id]);
648
- if (result.status !== 0) throw failure(result, `docker rmi ${id}`);
649
- },
650
- async removeBuilder() {
651
- const inspected = await run("docker", ["buildx", "inspect", deps.builder]);
652
- if (inspected.status !== 0 && NO_BUILDER.test(inspected.stderr)) return void 0;
653
- const df = await run("docker", ["system", "df", "-v"]);
654
- const freedBytes = df.status === 0 ? volumeBytes(df.stdout, /* @__PURE__ */ new Set([`buildx_buildkit_${deps.builder}0_state`])) : 0;
655
- const result = await run("docker", ["buildx", "rm", deps.builder]);
656
- if (result.status !== 0 && NO_BUILDER.test(result.stderr)) return void 0;
657
- if (result.status !== 0) throw failure(result, "docker buildx rm");
658
- return { freedBytes };
659
- },
660
- async builderPrune(keepBytes) {
661
- const inspected = await run("docker", ["buildx", "inspect", deps.builder]);
662
- if (inspected.status !== 0 && NO_BUILDER.test(inspected.stderr)) return void 0;
663
- const status = inspected.status === 0 ? /^Status:\s*(\S+)/m.exec(inspected.stdout)?.[1] : void 0;
664
- if (status !== void 0 && status !== "running") return void 0;
665
- const result = await run("docker", ["buildx", "prune", "--builder", deps.builder, "--force", "--max-used-space", String(keepBytes)]);
666
- if (result.status !== 0 && (NO_BUILDER.test(result.stderr) || /driver not running/i.test(result.stderr))) return void 0;
667
- if (result.status !== 0) throw failure(result, "docker buildx prune");
668
- return { freedBytes: parsePrunedBytes(result.stdout) };
669
- }
670
- };
671
- }
672
- async function housekeepingDockerIfReachable(deps) {
673
- const run = deps.run ?? spawnRun;
674
- try {
675
- const answered = await run("docker", ["version", "--format", "{{.Server.Version}}"]);
676
- if (answered.status !== 0) return void 0;
677
- } catch {
678
- return void 0;
679
- }
680
- return createHousekeepingDocker(deps);
681
- }
682
-
683
539
  // src/runner/housekeeping/select.ts
684
540
  var DAY_MS = 864e5;
685
541
  function spoolMaxAgeMs() {
@@ -1961,7 +1817,7 @@ var CLAIM_REFUSAL_CODES = new Set(
1961
1817
  "pull_request_from_fork pull_request_on_default_branch pull_request_ambiguous pull_request_repository_not_connected repository_not_reachable branch_claimed_elsewhere".split(" ")
1962
1818
  );
1963
1819
  async function tryClaimAndStart(state, item, queue) {
1964
- const { postJson: postJson2 } = await import('./work-cmd-LUKJHAMH.js');
1820
+ const { postJson: postJson2 } = await import('./work-cmd-77GUT7LY.js');
1965
1821
  const log = logOf(state);
1966
1822
  const hostKey = await loadHostKey(state.config.configPath);
1967
1823
  const claim = await retrySend(
@@ -2761,6 +2617,18 @@ async function endStoppedBuild(state, active, where) {
2761
2617
  );
2762
2618
  void endJob(state, active, "interrupted", { stage: "command", reason: COMMAND_LOST_REASON });
2763
2619
  }
2620
+ async function endWithoutNetwork(state, active, container, tag) {
2621
+ if (container.network === void 0) return false;
2622
+ const runtime = runtimeOf(state);
2623
+ const helper = await runtime.host.state(container.network);
2624
+ if (helper !== "stopped" && helper !== "missing") return false;
2625
+ if (await runtime.host.state(container.container) !== "running" || active.ending) return false;
2626
+ const reason = helper === "missing" ? `the build's network helper container ${container.network} is gone` : await stoppedHelperReason(runtime, container.network);
2627
+ if (active.ending) return false;
2628
+ logOf(state).error(`${tag} ${reason} \xB7 ending job as failed`);
2629
+ await endJob(state, active, "failed", { stage: "command", reason });
2630
+ return true;
2631
+ }
2764
2632
  var DISK_FAILURES_LIMIT = 2;
2765
2633
  async function checkDisk(state, active, container, tag) {
2766
2634
  const log = logOf(state);
@@ -2930,6 +2798,7 @@ async function watchTick(state, active, nowMs, logMtimeMs) {
2930
2798
  return;
2931
2799
  }
2932
2800
  if (!started) return;
2801
+ if (active.job.container !== void 0 && await endWithoutNetwork(state, active, active.job.container, tag)) return;
2933
2802
  if (active.job.container !== void 0 && active.diskChecking !== true) {
2934
2803
  active.diskChecking = true;
2935
2804
  try {
@@ -3186,9 +3055,11 @@ async function readStoppedBuild(state, dirPath, job) {
3186
3055
  const container = job.container;
3187
3056
  runtime.leases.get(container.buildId)?.stop();
3188
3057
  try {
3058
+ let network;
3189
3059
  for (let attempt = 1; attempt <= STOPPED_READ_ATTEMPTS; attempt++) {
3190
- const started = await runtime.host.start(container.container);
3191
- if (started.status === 0) {
3060
+ network = await ensureNetworkReady(runtime, container);
3061
+ const started = network === void 0 ? await runtime.host.start(container.container) : void 0;
3062
+ if (started?.status === 0) {
3192
3063
  const code = await readVolumeExitCode(runtime, dirPath, container);
3193
3064
  if (code !== "unreadable") {
3194
3065
  await runtime.host.stop(container.container);
@@ -3198,7 +3069,7 @@ async function readStoppedBuild(state, dirPath, job) {
3198
3069
  }
3199
3070
  if (attempt < STOPPED_READ_ATTEMPTS) await (state.deps.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms))))(STOPPED_READ_RETRY_MS);
3200
3071
  }
3201
- logOf(state).error(`#${job.item} the stopped build's volume could not be read after ${STOPPED_READ_ATTEMPTS} tries`);
3072
+ logOf(state).error(`#${job.item} the stopped build's volume could not be read after ${STOPPED_READ_ATTEMPTS} tries${network === void 0 ? "" : `: ${network}`}`);
3202
3073
  return { code: void 0, readable: false };
3203
3074
  } catch (err) {
3204
3075
  logOf(state).error(`#${job.item} the stopped build's volume could not be read: ${describeCallFailure(err)}`);
@@ -3279,7 +3150,7 @@ async function startRunner(configPath, deps, startup) {
3279
3150
  check: update.check ? () => update.check(configPath) : async () => {
3280
3151
  const held = heldClaudeCredential();
3281
3152
  const env = held === void 0 ? process.env : { ...process.env, [held.variable]: held.value };
3282
- return (await import('./check-IFHLERRX.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
3153
+ return (await import('./check-ZULOZVV4.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
3283
3154
  },
3284
3155
  now: () => (deps.now ?? (() => /* @__PURE__ */ new Date()))().getTime(),
3285
3156
  log
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { LiveUploader } from './chunk-7SJNVGVC.js';
4
- import { spoolDir } from './chunk-4QQJTJUN.js';
3
+ import { LiveUploader } from './chunk-32FAPJFD.js';
4
+ import { spoolDir } from './chunk-57WFXHCB.js';
5
5
  import { CaptureDaemon } from './chunk-A6PJSNP6.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
- 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-WX2HW2G2.js';
4
- import { PROXY_WARNING_FLAG } from './chunk-GMKDAF37.js';
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-L2OARQKP.js';
5
5
  import { RELAY_ID, RELAY_USER } from './chunk-MESOOLF4.js';
6
6
 
7
7
  createRequire(import.meta.url);
@@ -2,7 +2,7 @@
2
2
  import { createRequire } from 'node:module';
3
3
  import { TARGET_TUNNEL, TARGET_LEASE, destinationTarget } from './chunk-MESOOLF4.js';
4
4
  import { spawn, spawnSync } from 'child_process';
5
- import { statSync, readFileSync, mkdirSync, writeFileSync, existsSync, unlinkSync, chmodSync } from 'fs';
5
+ import { statSync, readFileSync, existsSync, unlinkSync, chmodSync } from 'fs';
6
6
  import { join, dirname } from 'path';
7
7
  import { request as request$1, createServer } from 'http';
8
8
  import { request } from 'https';
@@ -780,61 +780,8 @@ function primaryOf(repositories) {
780
780
 
781
781
  // src/scrub-env.ts
782
782
  var SCRUB_ENV_VARIABLE = "OUTERLAYER_SCRUB_ENV";
783
- var MAVEN_DIR = "maven";
784
- var MAVEN_SETTINGS_FILE = "settings.xml";
785
- var MAVEN_NO_PROXY_NOTE = "MAVEN_ARGS names its own global settings file, so the build's Maven gets no proxy from the runner";
786
- var MAVEN_SPACE_NOTE = "the build's directory has whitespace in its path, which Maven cannot read from MAVEN_ARGS, so its Maven gets no proxy from the runner";
787
- function namesGlobalSettings(args) {
788
- return args.split(/\s+/).some((token) => token === "--global-settings" || token.startsWith("--global-settings=") || token === "-gs" || token.startsWith("-gs="));
789
- }
790
- function escapeXml(text) {
791
- return text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
792
- }
793
- function mavenSettingsXml(proxyUrl, noProxy) {
794
- const url = new URL(proxyUrl);
795
- const host = escapeXml(url.hostname.replace(/^\[|\]$/g, ""));
796
- const nonProxyHosts = escapeXml(noProxy.split(",").filter((entry) => entry !== "").join("|"));
797
- const proxy = (protocol) => [
798
- " <proxy>",
799
- ` <id>outerlayer-${protocol}</id>`,
800
- " <active>true</active>",
801
- ` <protocol>${protocol}</protocol>`,
802
- ` <host>${host}</host>`,
803
- ` <port>${url.port}</port>`,
804
- ` <nonProxyHosts>${nonProxyHosts}</nonProxyHosts>`,
805
- " </proxy>"
806
- ].join("\n");
807
- return [
808
- '<?xml version="1.0" encoding="UTF-8"?>',
809
- '<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0">',
810
- " <proxies>",
811
- proxy("http"),
812
- proxy("https"),
813
- " </proxies>",
814
- "</settings>",
815
- ""
816
- ].join("\n");
817
- }
818
- function writeMavenSettings(buildDir, proxyUrl, noProxy) {
819
- const dir = join(buildDir, MAVEN_DIR);
820
- mkdirSync(dir, { recursive: true });
821
- const file = join(dir, MAVEN_SETTINGS_FILE);
822
- writeFileSync(file, mavenSettingsXml(proxyUrl, noProxy));
823
- return file;
824
- }
825
- function mavenArgs(settingsFile, team) {
826
- const own = team?.trim() ?? "";
827
- if (own !== "" && namesGlobalSettings(own)) return { value: team, skipped: true };
828
- return { value: own === "" ? `--global-settings ${settingsFile}` : `--global-settings ${settingsFile} ${own}`, skipped: false };
829
- }
830
783
 
831
784
  // src/runner/container/environment.ts
832
- function buildMavenSettingsXml() {
833
- return mavenSettingsXml(PROXY_URL, proxyEnvironment(PROXY_URL).NO_PROXY);
834
- }
835
- function writeBuildMavenSettings(buildDir) {
836
- writeMavenSettings(buildDir, PROXY_URL, proxyEnvironment(PROXY_URL).NO_PROXY);
837
- }
838
785
  var RELAY_PORT = 3128;
839
786
  var JOB_MOUNT = "/outerlayer/job";
840
787
  var EVAL_INPUT_DIR = `${JOB_MOUNT}/eval-input`;
@@ -854,7 +801,6 @@ function lifecycleWorkdir(repositories, governingRepository) {
854
801
  return entry === void 0 ? CHECKOUT_DIR : checkoutPath(entry);
855
802
  }
856
803
  var MAX_HOSTS = 200;
857
- var MAVEN_SETTINGS_IN_BUILD = `${JOB_MOUNT}/${MAVEN_DIR}/${MAVEN_SETTINGS_FILE}`;
858
804
  function tokenVariables() {
859
805
  return ["GH_TOKEN", "GITHUB_TOKEN", "GH_ENTERPRISE_TOKEN", "GITHUB_ENTERPRISE_TOKEN"];
860
806
  }
@@ -863,7 +809,7 @@ function githubVariables() {
863
809
  }
864
810
  var PROXY_URL = `http://127.0.0.1:${RELAY_PORT}`;
865
811
  var NO_LOCAL = "localhost,127.0.0.1";
866
- function proxyEnvironment(proxyUrl, alsoNoProxy) {
812
+ function standardProxyEnvironment(proxyUrl, alsoNoProxy) {
867
813
  const NO_PROXY = alsoNoProxy === void 0 || NO_LOCAL.split(",").includes(alsoNoProxy) ? NO_LOCAL : `${NO_LOCAL},${alsoNoProxy}`;
868
814
  return {
869
815
  HTTPS_PROXY: proxyUrl,
@@ -872,7 +818,15 @@ function proxyEnvironment(proxyUrl, alsoNoProxy) {
872
818
  https_proxy: proxyUrl,
873
819
  http_proxy: proxyUrl,
874
820
  NO_PROXY,
875
- no_proxy: NO_PROXY,
821
+ no_proxy: NO_PROXY
822
+ };
823
+ }
824
+ function toolProxyVariables() {
825
+ return ["NODE_USE_ENV_PROXY", "YARN_HTTPS_PROXY", "YARN_HTTP_PROXY"];
826
+ }
827
+ function proxyEnvironment(proxyUrl, alsoNoProxy) {
828
+ return {
829
+ ...standardProxyEnvironment(proxyUrl, alsoNoProxy),
876
830
  NODE_USE_ENV_PROXY: "1",
877
831
  // Yarn 2 and later ignore the variables above and read only their own.
878
832
  // Without these, `yarn install` resolves registry names itself, which a
@@ -887,24 +841,12 @@ function withProxyWarningHidden(options) {
887
841
  if (given.split(/\s+/).includes(PROXY_WARNING_FLAG)) return given;
888
842
  return given === "" ? PROXY_WARNING_FLAG : `${given} ${PROXY_WARNING_FLAG}`;
889
843
  }
890
- function withoutProxyWarningFlag(options) {
891
- return options.split(/\s+/).filter((option) => option !== "" && option !== PROXY_WARNING_FLAG).join(" ");
892
- }
893
- function nodeAcceptsProxyWarningFlag(version) {
894
- const match = /^v?(\d+)\.(\d+)/.exec(version.trim());
895
- if (match === null) return true;
896
- const major = Number(match[1]);
897
- const minor = Number(match[2]);
898
- if (major === 20) return minor >= 11;
899
- if (major === 21) return minor >= 3;
900
- return major >= 22;
901
- }
902
844
  function runnerLiterals(repository, repositories = [], unpinnedRuntimes) {
903
845
  return {
904
846
  OUTERLAYER_JOB_DIR: JOB_MOUNT,
905
847
  HOME: BUILD_HOME,
906
848
  TMPDIR: "/tmp",
907
- ...proxyEnvironment(PROXY_URL),
849
+ ...standardProxyEnvironment(PROXY_URL),
908
850
  GIT_TERMINAL_PROMPT: "0",
909
851
  GH_CONFIG_DIR: `${JOB_MOUNT}/gh`,
910
852
  GH_NO_UPDATE_NOTIFIER: "1",
@@ -927,7 +869,8 @@ function reservedNames() {
927
869
  ...Object.keys(runnerLiterals("owner/name")),
928
870
  ...Object.keys(builtInEnvironment(containerBuiltInAddress, void 0)),
929
871
  "PATH",
930
- ...tokenVariables()
872
+ ...tokenVariables(),
873
+ ...toolProxyVariables()
931
874
  ]);
932
875
  }
933
876
  function isReservedVariable(name) {
@@ -974,24 +917,6 @@ function buildEnvironment(input) {
974
917
  variables.push(name);
975
918
  }
976
919
  }
977
- const nodeOptions = {};
978
- if (input.imageEnv !== void 0) {
979
- const hide = input.proxyWarning !== false;
980
- const apply = (value) => hide ? withProxyWarningHidden(value) : value === void 0 ? void 0 : withoutProxyWarningFlag(value);
981
- if (passed.NODE_OPTIONS !== void 0) passed.NODE_OPTIONS = apply(passed.NODE_OPTIONS);
982
- else {
983
- const value = apply(recipe.NODE_OPTIONS ?? input.imageEnv.NODE_OPTIONS);
984
- if (value !== void 0) nodeOptions.NODE_OPTIONS = value;
985
- }
986
- }
987
- const mavenLiterals = {};
988
- const notices = [];
989
- if (input.imageEnv !== void 0 && input.mavenProxy !== false) {
990
- const { value, skipped } = mavenArgs(MAVEN_SETTINGS_IN_BUILD, passed.MAVEN_ARGS ?? recipe.MAVEN_ARGS ?? input.imageEnv.MAVEN_ARGS);
991
- if (passed.MAVEN_ARGS !== void 0) passed.MAVEN_ARGS = value;
992
- else mavenLiterals.MAVEN_ARGS = value;
993
- if (skipped) notices.push(MAVEN_NO_PROXY_NOTE);
994
- }
995
920
  const destinations = destinationEnvironment(input.config.build?.destinations, containerLocalAddress);
996
921
  const builtInLiterals = builtIns ? builtInEnvironment(containerBuiltInAddress, input.config.managed === true ? managedClaudeCredential() : claudeCredential(input.hostEnv)) : {};
997
922
  const hooksPath = input.identity?.hooksPath;
@@ -1009,8 +934,6 @@ function buildEnvironment(input) {
1009
934
  return {
1010
935
  literals: {
1011
936
  ...recipe,
1012
- ...nodeOptions,
1013
- ...mavenLiterals,
1014
937
  ...destinations,
1015
938
  ...runnerLiterals(input.repository, repositoriesOf({ repositories: input.repositories, repository: input.repository, branch: input.branch }), input.unpinnedRuntimes),
1016
939
  ...builtInLiterals,
@@ -1019,8 +942,7 @@ function buildEnvironment(input) {
1019
942
  },
1020
943
  passed,
1021
944
  variables,
1022
- skippedTokenVariables,
1023
- notices
945
+ skippedTokenVariables
1024
946
  };
1025
947
  }
1026
948
  function checkEnvironment(input) {
@@ -1032,10 +954,7 @@ function checkEnvironment(input) {
1032
954
  hostEnv: input.hostEnv,
1033
955
  containerEnv: input.containerEnv,
1034
956
  builtIns: false,
1035
- imageEnv: input.imageEnv,
1036
- factoryVariables: input.factoryVariables,
1037
- // A check container is given no settings file, so a `MAVEN_ARGS` naming one would break the check's Maven.
1038
- mavenProxy: false
957
+ factoryVariables: input.factoryVariables
1039
958
  });
1040
959
  const withheld = /* @__PURE__ */ new Set(["OUTERLAYER_URL", "OUTERLAYER_API_KEY", ...CLAUDE_CREDENTIAL_VARIABLES]);
1041
960
  const literals = { OUTERLAYER_EVAL_INPUT: EVAL_INPUT_DIR, OUTERLAYER_CHECK_ITEMS: CHECK_ITEMS_FILE };
@@ -1085,4 +1004,4 @@ function routesOf(counts) {
1085
1004
  return routes.length === 0 ? {} : { routes };
1086
1005
  }
1087
1006
 
1088
- export { AGENT_CREDENTIAL_MISSING, BUILD_HOME, BUILD_SLICE_MEMORY_ENV, BUILT_IN_NAMES, CHECKOUT_DIR, CHECK_ITEMS_FILE, CLAUDE_CREDENTIAL_ID, CLAUDE_CREDENTIAL_VARIABLES, CLAUDE_ENV_FILE, CLAUDE_PORT, CLAUDE_SOCKET, DESTINATION_BASE_PORT, EVAL_INPUT_DIR, FD_SLOTS_PER_BUILD, FD_STORE_ENV, FORWARDED_CLAUDE_CREDENTIAL_VARIABLES, GATEWAY_PORT, GATEWAY_SOCKET, JOB_MOUNT, MAVEN_NO_PROXY_NOTE, MAVEN_SETTINGS_FILE, MAVEN_SPACE_NOTE, MIN_SYSTEMD, PROXY_WARNING_FLAG, RELAY_PORT, SCRUB_ENV_VARIABLE, authorEnvironment, buildEnvironment, buildMavenSettingsXml, builtInEnvironment, checkEnvironment, checkoutPath, claudeCredential, claudeCredentialVariablesSet, claudeEnvPath, commitIdentityRecord, containerLocalAddress, credentialLineIn, currentClaudeCredential, destinationEnvironment, fdName, headerVariables, heldClaudeCredential, inspectService, isRefusedInConfig, isReservedVariable, lifecycleWorkdir, managedClaudeCredential, mavenArgs, mavenSettingsXml, namesGlobalSettings, nodeAcceptsProxyWarningFlag, parseClaimIdentity, parseClaimedRepositories, parseIsolation, parseRunnerEnv, parseUnreachable, primaryOf, proxyEnvironment, readClaudeCredential, realFdStorePort, realInspectProbes, removedClaudeCredentialValues, repositoriesOf, repositoryPath, resolveDestinations, sharedUserEnvironment, startBuildServices, takeClaudeCredential, tokenHeader, withGitConfig, withHooksPath, withProxyWarningHidden, withTokenHeader, withTunnelRecord, withoutCredentialLines, writeBuildMavenSettings, writeMavenSettings };
1007
+ export { AGENT_CREDENTIAL_MISSING, BUILD_HOME, BUILD_SLICE_MEMORY_ENV, BUILT_IN_NAMES, CHECKOUT_DIR, CHECK_ITEMS_FILE, CLAUDE_CREDENTIAL_ID, CLAUDE_CREDENTIAL_VARIABLES, CLAUDE_ENV_FILE, CLAUDE_PORT, CLAUDE_SOCKET, DESTINATION_BASE_PORT, EVAL_INPUT_DIR, FD_SLOTS_PER_BUILD, FD_STORE_ENV, FORWARDED_CLAUDE_CREDENTIAL_VARIABLES, GATEWAY_PORT, GATEWAY_SOCKET, JOB_MOUNT, MIN_SYSTEMD, PROXY_WARNING_FLAG, RELAY_PORT, SCRUB_ENV_VARIABLE, authorEnvironment, buildEnvironment, builtInEnvironment, checkEnvironment, checkoutPath, claudeCredential, claudeCredentialVariablesSet, claudeEnvPath, commitIdentityRecord, containerLocalAddress, credentialLineIn, currentClaudeCredential, destinationEnvironment, fdName, headerVariables, heldClaudeCredential, inspectService, isRefusedInConfig, isReservedVariable, lifecycleWorkdir, managedClaudeCredential, parseClaimIdentity, parseClaimedRepositories, parseIsolation, parseRunnerEnv, parseUnreachable, primaryOf, proxyEnvironment, readClaudeCredential, realFdStorePort, realInspectProbes, removedClaudeCredentialValues, repositoriesOf, repositoryPath, resolveDestinations, sharedUserEnvironment, startBuildServices, takeClaudeCredential, tokenHeader, withGitConfig, withHooksPath, withProxyWarningHidden, withTokenHeader, withTunnelRecord, withoutCredentialLines };
@@ -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-3VJYDWFV.js';
4
+ import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-AJTGTSNA.js';
5
5
  import { readFileSync, mkdirSync, writeFileSync, renameSync } from 'fs';
6
6
  import { join } from 'path';
7
7
 
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { builtinKind, keepsHostBuilder } from './chunk-JWMJMQRF.js';
4
- import { parseSize } from './chunk-FLHBUQ2W.js';
5
- import { runnerDir } from './chunk-3VJYDWFV.js';
6
- import { FD_SLOTS_PER_BUILD, FD_STORE_ENV, BUILD_SLICE_MEMORY_ENV, CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-GMKDAF37.js';
3
+ import { builtinKind, keepsHostBuilder } from './chunk-GXMMILQ4.js';
4
+ import { parseSize } from './chunk-AHWMY3MS.js';
5
+ import { runnerDir } from './chunk-AJTGTSNA.js';
6
+ import { FD_SLOTS_PER_BUILD, FD_STORE_ENV, BUILD_SLICE_MEMORY_ENV, CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-L2OARQKP.js';
7
7
  import { existsSync, readFileSync, writeFileSync, chmodSync, renameSync } from 'fs';
8
8
  import { dirname, join } from 'path';
9
9
  import { spawnSync } from 'child_process';
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { criteriaOf, loadCitationFinder, hostItemsOf, MAX_TEST_FILE_BYTES, MAX_TEST_FILES, criterionInputs, NO_CITING_TEST_REASON, NO_VERDICT_REASON, planCriteria } from './chunk-6CK2OC4Q.js';
4
- import { WorkCommandError, resolveCredentials, getJson } from './chunk-6IMQXBTZ.js';
4
+ import { WorkCommandError, resolveCredentials, getJson } from './chunk-GJYGOFF3.js';
5
5
  import { C } from './chunk-ANPNT6PM.js';
6
6
  import { sanitizeTerminal } from './chunk-IXPH4EXK.js';
7
- import { defaultFetch } from './chunk-62URQYCB.js';
7
+ import { defaultFetch } from './chunk-PAGB3DCI.js';
8
8
  import { resolveRepoIdentity } from './chunk-A6PJSNP6.js';
9
9
  import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
10
10
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
@@ -167,14 +167,14 @@ function governingDir(cwd) {
167
167
  async function testProofMode(cwd) {
168
168
  const dir = governingDir(cwd);
169
169
  if (dir === void 0) return "any";
170
- const { testProofIn } = await import('./host-checks-33ZTDTSH.js');
170
+ const { testProofIn } = await import('./host-checks-FLIHLR35.js');
171
171
  return testProofIn(dir);
172
172
  }
173
173
  async function judgeCheckName(cwd) {
174
174
  const dir = governingDir(cwd);
175
175
  if (dir === void 0) return {};
176
176
  if (!existsSync(dir)) return { note: `the governed context at ${dir} is not readable` };
177
- const { checksIn, isJudgeCheck } = await import('./host-checks-33ZTDTSH.js');
177
+ const { checksIn, isJudgeCheck } = await import('./host-checks-FLIHLR35.js');
178
178
  const quiet = { line: () => void 0, error: () => void 0 };
179
179
  const check = checksIn(dir, quiet, "").checks.find((c) => isJudgeCheck(c) && c.judge.subjects === "criteria");
180
180
  return check === void 0 ? {} : { name: check.name };
@@ -314,7 +314,7 @@ async function runWorkProofs(opts) {
314
314
  async function runWorkProofsCommand(opts) {
315
315
  try {
316
316
  if (opts.record) {
317
- const { runWorkProofsRecord } = await import('./work-proofs-record-USD4JWFP.js');
317
+ const { runWorkProofsRecord } = await import('./work-proofs-record-LIQGUDWH.js');
318
318
  const result2 = await runWorkProofsRecord(opts);
319
319
  process.exitCode = result2.exitCode;
320
320
  return;
@@ -2,10 +2,10 @@
2
2
  import { createRequire } from 'node:module';
3
3
  import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
4
4
  import { detectActiveSession } from './chunk-IP7BIBXJ.js';
5
- import { autoConnect } from './chunk-EYJRVHBN.js';
5
+ import { autoConnect } from './chunk-BTDBDTUY.js';
6
6
  import { C } from './chunk-ANPNT6PM.js';
7
7
  import { acquireSpoolLockAt } from './chunk-IXPH4EXK.js';
8
- import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-62URQYCB.js';
8
+ import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-PAGB3DCI.js';
9
9
  import { resolveRepoIdentity } from './chunk-A6PJSNP6.js';
10
10
  import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
11
11
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { readCloudConfigStrict, readCloudConfig, cloudConfigPath } from './chunk-PJDQPF5N.js';
4
- import { signRunnerRequest, signerFor } from './chunk-RJZZFAXS.js';
4
+ import { signRunnerRequest, signerFor } from './chunk-VKYU4HHW.js';
5
5
  import { readRepoConnection, findGitDirs } from './chunk-BJ3KTMDH.js';
6
6
  import { PLAIN_VERSION, recordCliVersion, removeRecordedVersion } from './chunk-5BHIBJDA.js';
7
7
  import { resolvePackageVersion } from './chunk-RA3O54FC.js';