@outerlayer/cli 0.34.0-next.20261027023105 → 0.34.0-next.20261027121359

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 (117) hide show
  1. package/dist/{agent-setup-2A6P2SYL.js → agent-setup-UPRMGVB7.js} +6 -6
  2. package/dist/{bridge-F5FBQSPZ.js → bridge-GVZUP3NU.js} +2 -2
  3. package/dist/{build-FS7TQEJ6.js → build-ZDYL7ZGP.js} +7 -7
  4. package/dist/{build-disk-RZ7AZKTY.js → build-disk-WMIRA4RD.js} +5 -5
  5. package/dist/build-info.json +1 -1
  6. package/dist/{builder-MQIL24HI.js → builder-XTAHDFV5.js} +4 -4
  7. package/dist/{check-YIUZ3UX3.js → check-FAG4QKIX.js} +36 -36
  8. package/dist/{chunk-MYLOOVRJ.js → chunk-3NMDGGZS.js} +2 -2
  9. package/dist/{chunk-JL4GSPGD.js → chunk-4IB5WUY2.js} +6 -6
  10. package/dist/{chunk-77VBS2RT.js → chunk-66TKWWTX.js} +5 -5
  11. package/dist/{chunk-P3NPTFLF.js → chunk-6SJ3DJDH.js} +3 -3
  12. package/dist/{chunk-LKTH7PUH.js → chunk-ARPPH7VS.js} +164 -26
  13. package/dist/{chunk-QRJIBTNQ.js → chunk-B7LPFCIN.js} +5 -5
  14. package/dist/{chunk-CCHSD7RS.js → chunk-CHDWAWQA.js} +1 -1
  15. package/dist/{chunk-HOUFCUMH.js → chunk-DUG3JXAT.js} +1 -1
  16. package/dist/{chunk-WYR4INK3.js → chunk-FRETDGET.js} +2 -2
  17. package/dist/{chunk-SDELQEG4.js → chunk-HO4XRLAZ.js} +1 -1
  18. package/dist/{chunk-GJ4KBHBD.js → chunk-I2GHZ2VA.js} +1 -1
  19. package/dist/{chunk-YL3RWW7X.js → chunk-J2X5CTYY.js} +1 -1
  20. package/dist/{chunk-FQGC22IP.js → chunk-JKOONI3H.js} +2 -2
  21. package/dist/{chunk-L5VHGRQE.js → chunk-KDSKFXPE.js} +1 -1
  22. package/dist/{chunk-EBVK3QBO.js → chunk-KFXPH7SJ.js} +2 -2
  23. package/dist/{chunk-QWXBWOVV.js → chunk-L4DCIEVT.js} +3 -3
  24. package/dist/{chunk-O7QPHJWN.js → chunk-L7RPNSAA.js} +1 -1
  25. package/dist/{chunk-MN3PP45X.js → chunk-LHUZVM3L.js} +1 -1
  26. package/dist/{chunk-UWDFA6WW.js → chunk-LTMFHECB.js} +20 -20
  27. package/dist/{chunk-7PCA37ZS.js → chunk-LUYTNCMS.js} +3 -3
  28. package/dist/{chunk-25XBOX3K.js → chunk-LXOBWRVC.js} +2 -2
  29. package/dist/{chunk-66LH5QAV.js → chunk-M6YTST7G.js} +2 -2
  30. package/dist/{chunk-72CJOYN6.js → chunk-N752ZNZ5.js} +1 -1
  31. package/dist/{chunk-QABXXQ67.js → chunk-NGZBVN6F.js} +5 -5
  32. package/dist/{chunk-TS3EFB7S.js → chunk-PBZODW5X.js} +1 -1
  33. package/dist/{chunk-RR3VDM7M.js → chunk-Q3ATWA2U.js} +3 -3
  34. package/dist/{chunk-7DK2FOZ4.js → chunk-QBBZGVZJ.js} +2 -2
  35. package/dist/{chunk-JA2ARVY6.js → chunk-QTAADTIO.js} +1 -1
  36. package/dist/{chunk-6KFJIU73.js → chunk-RMJSYOSV.js} +1 -1
  37. package/dist/{chunk-DEJCZ43H.js → chunk-RO2NZJHZ.js} +82 -6
  38. package/dist/{chunk-IYQPUGST.js → chunk-SGT7YU3X.js} +5 -5
  39. package/dist/{chunk-DX4FF5P5.js → chunk-SJY6A6EH.js} +24 -18
  40. package/dist/{chunk-7QAJQDHS.js → chunk-T375XV3H.js} +1 -1
  41. package/dist/{chunk-BLSEHKZ4.js → chunk-TS2YACAQ.js} +2 -2
  42. package/dist/{chunk-GTBY7BTI.js → chunk-UC4OSOQS.js} +1 -1
  43. package/dist/{chunk-SSRB5HEL.js → chunk-UDRBQI5J.js} +10 -10
  44. package/dist/{chunk-7QF2EXAN.js → chunk-UXGWAAGQ.js} +4 -4
  45. package/dist/{chunk-GR7ZVGNI.js → chunk-UYWGR35C.js} +3 -3
  46. package/dist/{chunk-LQHCNXPK.js → chunk-W5EKMK37.js} +1 -1
  47. package/dist/{chunk-WPDL7MBC.js → chunk-W774NREK.js} +3 -3
  48. package/dist/{chunk-36U7LY7C.js → chunk-WS5E73JO.js} +5 -5
  49. package/dist/{chunk-ZK3A4W3I.js → chunk-XEJ5USHY.js} +13 -5
  50. package/dist/{chunk-Q2KGDDUX.js → chunk-XSUM3E67.js} +3 -3
  51. package/dist/{chunk-CFFVCI2I.js → chunk-XZGURZHF.js} +1 -1
  52. package/dist/{chunk-WBTPI5MP.js → chunk-YGX72FUQ.js} +2 -2
  53. package/dist/{chunk-OKGHWCSK.js → chunk-YIBHQR3B.js} +2 -2
  54. package/dist/{chunk-SDAEXUIX.js → chunk-Z7THNFUU.js} +1 -0
  55. package/dist/{chunk-3VZTNXK5.js → chunk-ZV6GOXYA.js} +1 -1
  56. package/dist/{claude-launcher-EO3ALKBS.js → claude-launcher-SGZSOGKZ.js} +1 -1
  57. package/dist/{cli-MP5AUR36.js → cli-6QN7TH6U.js} +110 -110
  58. package/dist/{command-RGBJLW72.js → command-6T6RI5XY.js} +24 -24
  59. package/dist/{config-NGCQD6SN.js → config-CWYMIXTV.js} +6 -6
  60. package/dist/{connect-cmd-65YBQRSY.js → connect-cmd-MY6SR4OK.js} +5 -5
  61. package/dist/{container-start-KT2KKAQX.js → container-start-FDXR4QND.js} +30 -30
  62. package/dist/{context-show-cmd-S5SEBOI2.js → context-show-cmd-WRTV3ACH.js} +6 -6
  63. package/dist/{control-plane-launch-BDSUP4DK.js → control-plane-launch-UM4IHOJQ.js} +5 -5
  64. package/dist/{demo-record-cmd-BUNOOCNM.js → demo-record-cmd-XBWTORVM.js} +2 -2
  65. package/dist/{demo-voice-cmd-RWTRJUAX.js → demo-voice-cmd-FLU4GDKS.js} +11 -11
  66. package/dist/{docker-TRGA5QRL.js → docker-IUPWQ2RK.js} +4 -4
  67. package/dist/{doctor-NEO7NXJJ.js → doctor-5VNZ2BLY.js} +28 -26
  68. package/dist/{emit-artifact-cmd-56C6DBUP.js → emit-artifact-cmd-RDXIWRFU.js} +10 -10
  69. package/dist/{emit-criteria-cmd-HRCWXD3W.js → emit-criteria-cmd-EDJOWGKL.js} +7 -7
  70. package/dist/{emit-demo-cmd-QMRDQGB6.js → emit-demo-cmd-W3BXFFU3.js} +11 -11
  71. package/dist/{emit-finding-cmd-6MVFN4BO.js → emit-finding-cmd-TMZIOQIP.js} +7 -7
  72. package/dist/{emit-result-cmd-E3YYBXRY.js → emit-result-cmd-P55JBD2W.js} +9 -9
  73. package/dist/{emit-step-cmd-DM4CRYYI.js → emit-step-cmd-Y7LKI7L3.js} +7 -7
  74. package/dist/{exec-client-LXHTMVIB.js → exec-client-FB3OBHOJ.js} +3 -3
  75. package/dist/{find-unit-IOCVYPNW.js → find-unit-R4I5GJCH.js} +8 -8
  76. package/dist/{findings-cmd-K2OYBTUH.js → findings-cmd-D64BYS7Z.js} +7 -7
  77. package/dist/{fleet-readiness-VIAVQYRP.js → fleet-readiness-75KQEZ6E.js} +5 -5
  78. package/dist/{governing-source-MQA2SDJT.js → governing-source-YYEU46PP.js} +9 -9
  79. package/dist/{guest-init-WWL2WL7R.js → guest-init-SGF6ZVZN.js} +4 -4
  80. package/dist/{hook-fast-KXAQ22LZ.js → hook-fast-XX5HZOCR.js} +1 -1
  81. package/dist/{host-checks-JH2ILNZT.js → host-checks-VKBAGGWH.js} +28 -28
  82. package/dist/{pending-UWFDVFOA.js → host-key-CNCHVNDC.js} +3 -3
  83. package/dist/{image-tag-BTXKIH73.js → image-tag-MRWNQGXA.js} +3 -3
  84. package/dist/index.js +4 -4
  85. package/dist/{init-WGVNY4NP.js → init-B5S5LMIL.js} +21 -21
  86. package/dist/{init-HGJQW2NL.js → init-BB2TLXVB.js} +21 -21
  87. package/dist/{init-cmd-L2SG2WSN.js → init-cmd-I2Z4VZSG.js} +10 -10
  88. package/dist/{init-update-JMVLGBDE.js → init-update-TIZILQXL.js} +8 -8
  89. package/dist/{install-cmd-RGO7NWKP.js → install-cmd-X4OHS36T.js} +5 -5
  90. package/dist/{logs-LEVH6VAI.js → logs-BPEOYWRW.js} +2 -2
  91. package/dist/{loop-F6E6PGWG.js → loop-XULUT5HL.js} +35 -35
  92. package/dist/{machine-GYTMJSIY.js → machine-UYFUUSEQ.js} +21 -21
  93. package/dist/{mcp-serve-cmd-4O5INM77.js → mcp-serve-cmd-NCPWJJDZ.js} +4 -4
  94. package/dist/{paths-AQ47ZRHK.js → paths-WXGOFVCF.js} +2 -2
  95. package/dist/{host-key-TSOKVSZX.js → pending-GEDI4K7P.js} +3 -3
  96. package/dist/{pidfile-PCG2H5T4.js → pidfile-MYLBUG2I.js} +3 -3
  97. package/dist/{record-SVCNFCGQ.js → record-Y2JIOP56.js} +3 -3
  98. package/dist/{runner-env-DH7YA4BU.js → runner-env-Y2PBG7TR.js} +8 -8
  99. package/dist/{runner-identity-GLL56XY7.js → runner-identity-PL442M57.js} +4 -4
  100. package/dist/{runner-key-HMXSBRBE.js → runner-key-L6LXC4QA.js} +21 -21
  101. package/dist/{session-sender-KLOMLL7X.js → session-sender-AXROAZSC.js} +10 -10
  102. package/dist/{spec-cmd-MX5QFW32.js → spec-cmd-JG4QLGGJ.js} +8 -8
  103. package/dist/{status-QNKTP6OU.js → status-VOGNQ3NG.js} +28 -28
  104. package/dist/{sync-cmd-CO4DFMHU.js → sync-cmd-B3KQZJZO.js} +9 -9
  105. package/dist/{update-steps-M2UKG4QZ.js → update-steps-RSYFLNTL.js} +29 -29
  106. package/dist/{watch-GU62YVQY.js → watch-IHZRBUYV.js} +9 -9
  107. package/dist/{work-claim-cmd-JF5GGDFZ.js → work-claim-cmd-YEMHNW3H.js} +12 -12
  108. package/dist/{work-cmd-VR7PPSP6.js → work-cmd-OWZS3ZXL.js} +7 -7
  109. package/dist/{work-comment-cmd-HVZF72B4.js → work-comment-cmd-ESBYAE4K.js} +8 -8
  110. package/dist/{work-demo-cmd-EDGNM5VJ.js → work-demo-cmd-FT3FQWM7.js} +7 -7
  111. package/dist/{work-logs-cmd-ZZVAHX36.js → work-logs-cmd-K6NTURGR.js} +7 -7
  112. package/dist/{work-open-pr-cmd-AQWZRJHZ.js → work-open-pr-cmd-NGD4Z2TO.js} +8 -8
  113. package/dist/{work-pr-cmd-UJ7VWCJN.js → work-pr-cmd-274YUPQB.js} +7 -7
  114. package/dist/{work-proofs-cmd-A7SZSM2A.js → work-proofs-cmd-JLSQHVKO.js} +8 -8
  115. package/dist/{work-proofs-record-YG6HD6SJ.js → work-proofs-record-AYUWUFBE.js} +14 -14
  116. package/dist/{work-stop-cmd-SAT4XVM2.js → work-stop-cmd-VQLLLJ3H.js} +7 -7
  117. package/package.json +1 -1
@@ -2,26 +2,26 @@
2
2
  import { createRequire } from 'node:module';
3
3
  import { itemsSentence, criteriaOf, hostItemsOf, loadCitationFinder, MAX_TEST_FILE_BYTES, MAX_TEST_FILES, criterionInputs, planCriteria, parseJudgeAnswer, inCriteriaOrder, oneLineReason, judgedItems } from './chunk-6CK2OC4Q.js';
4
4
  import { readsJobState, READ_JOB_STATE_FORMATS, jobStateFormatOf } from './chunk-ZVB57WI6.js';
5
- import { DOCKERD_LOG, HELPER_PATH, HELPER_RECORD } from './chunk-P3NPTFLF.js';
5
+ import { DOCKERD_LOG, HELPER_PATH, HELPER_RECORD } from './chunk-6SJ3DJDH.js';
6
6
  import { zodProblem } from './chunk-I3LTIAOR.js';
7
- import { senderPidfile } from './chunk-WBTPI5MP.js';
8
- import { installScrubContext } from './chunk-QRJIBTNQ.js';
9
- import { writeDockerClientConfig } from './chunk-CFFVCI2I.js';
7
+ import { senderPidfile } from './chunk-YGX72FUQ.js';
8
+ import { installScrubContext } from './chunk-B7LPFCIN.js';
9
+ import { writeDockerClientConfig } from './chunk-XZGURZHF.js';
10
10
  import { upgradedStarterText } from './chunk-TZMDRHWB.js';
11
- import { ADDED_USER, shellQuote, GH_CONFIG_YML, ghHostsYml, hasClaudeCredential, AssetError, obtainImage, ensureRootfs, makeBuildsDirPrivate, gitRemoteFor, startServicesFor, createLeaseChannel, createBuildDisk, machineConfig, startJailedInto, resolveAgentUser, AgentUserError, runBuildSteps, createContainerRuntime, containerSenderCommand, hostCommandEnvironment, execArgv, signalInContainer, startHostServices, LEASE_SECONDS, managedBuildSettingsFor, stopContainer, cleanupContainer, outOfMemoryReason, closeHostBuild, dropManagedClaudeKey, dropManagedBuildSettings, startCheckContainer, lifecycleSteps, lifecycleFailureReason, writeEvalInput, DeliveryFailure, EVAL_INPUT_NAME, syncInContainer, copyTranscriptsFromContainer, MANAGED_UNJAILED_REASON, senderAliveScript, managedMachineLimits, withFactoryHosts, helperFirecrackerNote, managedClaudeKeyValues, managedBuildSettingValues, stopJailed, deleteBuildDisk, managedClaudeKeyFor, ROOT_DISK_ID_PREFIX, copyTranscripts, containerJudgeEnvironment, senderSignalScript, copyJudgeTree } from './chunk-LKTH7PUH.js';
12
- import { fetchCommit, readBranchHead, diffBetween } from './chunk-IYQPUGST.js';
13
- import { waitForAgent, vmExecArgs } from './chunk-3VZTNXK5.js';
14
- import { socketPathProblem, vsockLinks, LEASE_LINK, linkVsockSockets } from './chunk-6KFJIU73.js';
15
- import { describeCallFailure, resolveGoverningSource, prefetchGovernedContext, refusalCode, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, logStamp, createRunnerLog, removeKeptContext, formatDuration, retrySend, formatClock, keptContextTree, WORKFLOW_PERMISSION_REASON } from './chunk-77VBS2RT.js';
16
- import { imageBuildOf, isBuiltinContainer, isBuiltinProcess, isBuiltinVm, DEFAULT_CHECK_TIME_LIMIT_MINUTES } from './chunk-DEJCZ43H.js';
17
- import { formatBytes, DEFAULT_CACHE_DISK, allocatedBytes } from './chunk-BLSEHKZ4.js';
18
- import { HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, writeJobFile, readJobFile, parseSize, childEnvironment, withAnswerProtocol, judgeCommand, MAX_REPORT_BYTES, JUDGE_MAX_TURNS, JUDGE_DIR, COMMAND_DIR, MAX_ITEMS_BYTES } from './chunk-GR7ZVGNI.js';
11
+ import { ADDED_USER, shellQuote, GH_CONFIG_YML, ghHostsYml, hasClaudeCredential, AssetError, obtainImage, ensureRootfs, makeBuildsDirPrivate, gitRemoteFor, startServicesFor, createLeaseChannel, createBuildDisk, machineConfig, startJailedInto, resolveAgentUser, AgentUserError, runBuildSteps, createContainerRuntime, containerSenderCommand, hostCommandEnvironment, execArgv, signalInContainer, startHostServices, LEASE_SECONDS, managedBuildSettingsFor, stopContainer, cleanupContainer, outOfMemoryReason, closeHostBuild, dropManagedClaudeKey, dropManagedBuildSettings, startCheckContainer, lifecycleSteps, lifecycleFailureReason, writeEvalInput, DeliveryFailure, EVAL_INPUT_NAME, syncInContainer, copyTranscriptsFromContainer, MANAGED_UNJAILED_REASON, senderAliveScript, managedMachineLimits, withFactoryHosts, helperFirecrackerNote, managedClaudeKeyValues, managedBuildSettingValues, stopJailed, deleteBuildDisk, managedClaudeKeyFor, ROOT_DISK_ID_PREFIX, copyTranscripts, containerJudgeEnvironment, senderSignalScript, copyJudgeTree } from './chunk-ARPPH7VS.js';
12
+ import { fetchCommit, readBranchHead, diffBetween } from './chunk-SGT7YU3X.js';
13
+ import { waitForAgent, vmExecArgs } from './chunk-ZV6GOXYA.js';
14
+ import { socketPathProblem, vsockLinks, LEASE_LINK, linkVsockSockets } from './chunk-RMJSYOSV.js';
15
+ import { describeCallFailure, resolveGoverningSource, prefetchGovernedContext, refusalCode, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, logStamp, createRunnerLog, removeKeptContext, formatDuration, retrySend, formatClock, keptContextTree, WORKFLOW_PERMISSION_REASON } from './chunk-66TKWWTX.js';
16
+ import { imageBuildOf, isBuiltinContainer, isBuiltinProcess, isBuiltinVm, egressSummary, DEFAULT_CHECK_TIME_LIMIT_MINUTES, optionalEgress } from './chunk-RO2NZJHZ.js';
17
+ import { formatBytes, DEFAULT_CACHE_DISK, allocatedBytes } from './chunk-TS2YACAQ.js';
18
+ import { HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, writeJobFile, readJobFile, parseSize, childEnvironment, withAnswerProtocol, judgeCommand, MAX_REPORT_BYTES, JUDGE_MAX_TURNS, JUDGE_DIR, COMMAND_DIR, MAX_ITEMS_BYTES } from './chunk-UYWGR35C.js';
19
19
  import { CLAUDE_CODE_VERSION, FIRECRACKER_VERSION } from './chunk-QUOITPN7.js';
20
20
  import { isSameProcess, startTimeOf } from './chunk-JBJTC3UU.js';
21
- import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-QABXXQ67.js';
21
+ import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-NGZBVN6F.js';
22
22
  import { planArtifactUpload } from './chunk-IXPH4EXK.js';
23
23
  import { readCloudConfig } from './chunk-PJDQPF5N.js';
24
- import { signerFor } from './chunk-L5VHGRQE.js';
24
+ import { signerFor } from './chunk-KDSKFXPE.js';
25
25
  import { AGENTS_SKILLS_BASE, OUTERLAYER_SKILLS_BASE, resolvePackRoot } from './chunk-OVNF4LLC.js';
26
26
  import { scrubText } from './chunk-OOD5NDQA.js';
27
27
  import { MAINTAINED_SKILLS } from './chunk-CDDED64E.js';
@@ -29,8 +29,8 @@ import { resolveVersion } from './chunk-RA3O54FC.js';
29
29
  import { parsePolicy } from './chunk-XFJ7YOPD.js';
30
30
  import { CheckItemsSchema } from './chunk-DINRXUQA.js';
31
31
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
32
- import { RUNNER_FILE_MODE, runnerDir, buildDir, vsockPath, jobConsolePath } from './chunk-GJ4KBHBD.js';
33
- import { JOB_MOUNT, repositoriesOf, primaryOf, buildEnvironment, CHECKOUT_DIR, claudeCredential, AGENT_CREDENTIAL_MISSING, sharedUserEnvironment, headerVariables, authorEnvironment, withTunnelRecord, commitIdentityRecord, RELAY_PORT, repositoryPath, lifecycleWorkdir, CHECK_ITEMS_FILE, fdName, buildMavenSettingsXml, CLAUDE_CREDENTIAL_VARIABLES, currentClaudeCredential, removedClaudeCredentialValues, managedClaudeCredential, checkEnvironment, MAVEN_SETTINGS_FILE, EVAL_INPUT_DIR } from './chunk-SDAEXUIX.js';
32
+ import { RUNNER_FILE_MODE, runnerDir, buildDir, vsockPath, jobConsolePath } from './chunk-I2GHZ2VA.js';
33
+ import { JOB_MOUNT, repositoriesOf, primaryOf, buildEnvironment, CHECKOUT_DIR, claudeCredential, AGENT_CREDENTIAL_MISSING, sharedUserEnvironment, headerVariables, authorEnvironment, withTunnelRecord, commitIdentityRecord, RELAY_PORT, repositoryPath, lifecycleWorkdir, CHECK_ITEMS_FILE, fdName, buildMavenSettingsXml, CLAUDE_CREDENTIAL_VARIABLES, currentClaudeCredential, removedClaudeCredentialValues, managedClaudeCredential, checkEnvironment, MAVEN_SETTINGS_FILE, EVAL_INPUT_DIR } from './chunk-Z7THNFUU.js';
34
34
  import { RUNNER_WORDED_REASONS, UNKNOWN_TRACKING_REASON } from './chunk-MESOOLF4.js';
35
35
  import { randomBytes, createHash } from 'crypto';
36
36
  import { rmSync, existsSync, statSync, appendFileSync, mkdirSync, chmodSync, writeFileSync, openSync, closeSync, readFileSync, readdirSync, lstatSync, realpathSync, fstatSync, readSync } from 'fs';
@@ -217,6 +217,7 @@ function builderMachineFor(config, jobDir, assets, limits) {
217
217
  limits: { ...limits, cacheDiskBytes: parseSize(config.build?.cacheDisk ?? DEFAULT_CACHE_DISK) ?? parseSize(DEFAULT_CACHE_DISK) },
218
218
  memory: memoryTextOf(config, jobDir, limits),
219
219
  allowHosts: withFactoryHosts(config.build?.allowHosts, managedBuildSettingsFor(jobDir)),
220
+ ...optionalEgress(config),
220
221
  managed: config.managed === true,
221
222
  timeLimitMinutes: config.timeLimitMinutes
222
223
  };
@@ -2297,6 +2298,7 @@ function scrubTunnelRecord(record, config) {
2297
2298
  refusalsMore: record.refusalsMore,
2298
2299
  refusals: record.refusals.map((r) => ({ ...r, host: scrubText(r.host) })),
2299
2300
  destinations: (record.destinations ?? []).map((name) => scrubText(name)),
2301
+ ...record.egress === void 0 ? {} : { egress: record.egress },
2300
2302
  ...record.routes === void 0 ? {} : { routes: Object.fromEntries(Object.entries(record.routes).map(([name, counts]) => [scrubText(name), counts])) }
2301
2303
  };
2302
2304
  }
@@ -2909,15 +2911,19 @@ async function finishJob(job, jobDirPath, outcome, config, deps, ending) {
2909
2911
  );
2910
2912
  } else if (release.ok) {
2911
2913
  log.line(
2912
- outcome === void 0 ? `${tag} released \xB7 not attempted (provision exit 75) \xB7 ${total}` : `${tag} released \xB7 outcome ${outcome} \xB7 ${total}`
2914
+ outcome === void 0 ? `${tag} released \xB7 not attempted (provision exit 75) \xB7 ${total}` : `${tag} released \xB7 outcome ${outcome} \xB7 ${total}${egressText(tunnelRecord)}`
2913
2915
  );
2914
2916
  } else {
2915
2917
  log.error(
2916
- `${tag} release failed after ${release.attempts} attempt(s): ${release.reason}; the lease expires at ${formatClock(leaseExpiry(job, endedAt), endedAt)}`
2918
+ `${tag} release failed after ${release.attempts} attempt(s): ${release.reason}; the lease expires at ${formatClock(leaseExpiry(job, endedAt), endedAt)}${egressText(tunnelRecord)}`
2917
2919
  );
2918
2920
  }
2919
2921
  return job;
2920
2922
  }
2923
+ function egressText(record) {
2924
+ if (record === void 0) return "";
2925
+ return record.egress === void 0 ? " \xB7 tunnel counts not recorded" : ` \xB7 ${egressSummary(record.egress)}`;
2926
+ }
2921
2927
  function readLogState(logPath) {
2922
2928
  try {
2923
2929
  const stats = statSync(logPath);
@@ -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-L5VHGRQE.js';
4
+ import { signRunnerRequest, signerFor } from './chunk-KDSKFXPE.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';
@@ -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-GR7ZVGNI.js';
4
- import { buildsDir, rootfsDir, runnerDir, imagesDir, builderCacheDiskPath } from './chunk-GJ4KBHBD.js';
3
+ import { parseSize, BUILD_LABEL, RUNNER_LABEL, runnerLabelValue } from './chunk-UYWGR35C.js';
4
+ import { buildsDir, rootfsDir, runnerDir, imagesDir, builderCacheDiskPath } from './chunk-I2GHZ2VA.js';
5
5
  import { spawnSync } from 'child_process';
6
6
  import { statfsSync, statSync, existsSync, readdirSync } from 'fs';
7
7
  import { dirname, join } from 'path';
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { 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-QUOITPN7.js';
4
- import { PROXY_WARNING_FLAG } from './chunk-SDAEXUIX.js';
4
+ import { PROXY_WARNING_FLAG } from './chunk-Z7THNFUU.js';
5
5
  import { RELAY_ID, RELAY_USER } from './chunk-MESOOLF4.js';
6
6
 
7
7
  createRequire(import.meta.url);
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { checkStarterFiles, contextIsGoverned } from './chunk-TZMDRHWB.js';
4
- import { resolveCredentials, getJson, WorkCommandError } from './chunk-QABXXQ67.js';
5
- import { isLinkedRepository } from './chunk-O7QPHJWN.js';
4
+ import { resolveCredentials, getJson, WorkCommandError } from './chunk-NGZBVN6F.js';
5
+ import { isLinkedRepository } from './chunk-L7RPNSAA.js';
6
6
  import { C } from './chunk-ANPNT6PM.js';
7
- import { fleetCheck, checkBuildSkill, checkMachineSkills, checkCommittedMaintainedSkills, checkMaintainedReferences, checkIgnoredSkillFolders } from './chunk-JA2ARVY6.js';
7
+ import { fleetCheck, checkBuildSkill, checkMachineSkills, checkCommittedMaintainedSkills, checkMaintainedReferences, checkIgnoredSkillFolders } from './chunk-QTAADTIO.js';
8
8
  import { sanitizeTerminal } from './chunk-IXPH4EXK.js';
9
9
  import { checkFormerSkillNames } from './chunk-LMYRR5MO.js';
10
- import { resolveGatewayCredentials, defaultFetch } from './chunk-7QAJQDHS.js';
11
- import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-CCHSD7RS.js';
10
+ import { resolveGatewayCredentials, defaultFetch } from './chunk-T375XV3H.js';
11
+ import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-CHDWAWQA.js';
12
12
  import { readStatuslineState, STATE_FRESH_MS } from './chunk-I7RZHMXW.js';
13
13
  import { hookCommandEscapesControlPlane, CONTROL_PLANE_DIR_VARIABLE } from './chunk-HCVLP7XA.js';
14
14
  import { findGitDirs } from './chunk-BJ3KTMDH.js';
@@ -1195,8 +1195,8 @@ function doctorExitCode(checks) {
1195
1195
 
1196
1196
  // src/doctor-report.ts
1197
1197
  async function gatherDoctorChecks() {
1198
- const { DEFAULT_BUILD_DISK, DEFAULT_CACHE_DISK } = await import('./build-disk-RZ7AZKTY.js');
1199
- const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-NGCQD6SN.js');
1198
+ const { DEFAULT_BUILD_DISK, DEFAULT_CACHE_DISK } = await import('./build-disk-WMIRA4RD.js');
1199
+ const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-CWYMIXTV.js');
1200
1200
  const configPath = defaultRunnerConfigPath();
1201
1201
  const runnerHost = hasRunnerBlock(configPath);
1202
1202
  const hooks = (() => {
@@ -1217,7 +1217,7 @@ async function gatherDoctorChecks() {
1217
1217
  const { runnerVmCheck } = await import('./doctor-53F2PYY7.js');
1218
1218
  checks.push(runnerVmCheck(configPath, { lima: realLima(), home: homeFromEnv(), instance: runnerVm.instance }));
1219
1219
  } else if (hasRunnerBlock(configPath)) {
1220
- const { runnerHostChecks } = await import('./doctor-NEO7NXJJ.js');
1220
+ const { runnerHostChecks } = await import('./doctor-5VNZ2BLY.js');
1221
1221
  const gateway = (() => {
1222
1222
  try {
1223
1223
  const { url, apiKey, appId } = loadRunnerConfig(configPath);
@@ -1236,7 +1236,7 @@ async function gatherDoctorChecks() {
1236
1236
  const runner = (() => {
1237
1237
  try {
1238
1238
  const { concurrency, build, housekeeping, managed } = loadRunnerConfig(configPath);
1239
- return { concurrency, buildMemory: build?.memory ?? "8g", buildDisk: build?.disk ?? DEFAULT_BUILD_DISK, cacheDisk: build?.cacheDisk ?? DEFAULT_CACHE_DISK, minFreeDisk: housekeeping?.minFreeDisk, allowHosts: build?.allowHosts, ...build?.imageBuild === void 0 ? {} : { imageBuild: build.imageBuild }, ...managed === true ? { managed } : {} };
1239
+ return { concurrency, buildMemory: build?.memory ?? "8g", buildDisk: build?.disk ?? DEFAULT_BUILD_DISK, cacheDisk: build?.cacheDisk ?? DEFAULT_CACHE_DISK, minFreeDisk: housekeeping?.minFreeDisk, allowHosts: build?.allowHosts, ...build?.egress === void 0 ? {} : { egress: build.egress }, ...build?.imageBuild === void 0 ? {} : { imageBuild: build.imageBuild }, ...managed === true ? { managed } : {} };
1240
1240
  } catch {
1241
1241
  return void 0;
1242
1242
  }
@@ -1244,7 +1244,7 @@ async function gatherDoctorChecks() {
1244
1244
  const service = await (async () => {
1245
1245
  const { existsSync: existsSync3 } = await import('fs');
1246
1246
  if (process.platform !== "linux" || !existsSync3("/run/systemd/system")) return void 0;
1247
- const { inspectRunnerService } = await import('./find-unit-IOCVYPNW.js');
1247
+ const { inspectRunnerService } = await import('./find-unit-R4I5GJCH.js');
1248
1248
  return inspectRunnerService(configPath);
1249
1249
  })();
1250
1250
  checks.push(...await runnerHostChecks({ configPath, hooks, gateway, repos, runner, service }));
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { builtinKind, keepsHostBuilder } from './chunk-DEJCZ43H.js';
4
- import { parseSize } from './chunk-GR7ZVGNI.js';
5
- import { runnerDir } from './chunk-GJ4KBHBD.js';
6
- import { FD_SLOTS_PER_BUILD, FD_STORE_ENV, BUILD_SLICE_MEMORY_ENV, CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-SDAEXUIX.js';
3
+ import { builtinKind, keepsHostBuilder } from './chunk-RO2NZJHZ.js';
4
+ import { parseSize } from './chunk-UYWGR35C.js';
5
+ import { runnerDir } from './chunk-I2GHZ2VA.js';
6
+ import { FD_SLOTS_PER_BUILD, FD_STORE_ENV, BUILD_SLICE_MEMORY_ENV, CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-Z7THNFUU.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';
@@ -2,10 +2,10 @@
2
2
  import { createRequire } from 'node:module';
3
3
  import { resolveDevcontainerCli, devcontainerBuildInvocation, RecipeError } from './chunk-HDLON3RJ.js';
4
4
  import { BUILDKIT_IMAGE } from './chunk-QUOITPN7.js';
5
- import { ensureHostKey } from './chunk-L5VHGRQE.js';
5
+ import { ensureHostKey } from './chunk-KDSKFXPE.js';
6
6
  import { compareVersions } from './chunk-OOD5NDQA.js';
7
- import { RUNNER_DIR_MODE, RUNNER_FILE_MODE, runnerDir, jobsDir } from './chunk-GJ4KBHBD.js';
8
- import { CLAUDE_PORT, JOB_MOUNT, GATEWAY_PORT, GATEWAY_SOCKET, CLAUDE_SOCKET, RELAY_PORT, DESTINATION_BASE_PORT } from './chunk-SDAEXUIX.js';
7
+ import { RUNNER_DIR_MODE, RUNNER_FILE_MODE, runnerDir, jobsDir } from './chunk-I2GHZ2VA.js';
8
+ import { CLAUDE_PORT, JOB_MOUNT, GATEWAY_PORT, GATEWAY_SOCKET, CLAUDE_SOCKET, RELAY_PORT, DESTINATION_BASE_PORT } from './chunk-Z7THNFUU.js';
9
9
  import { JOIN_DIR, RELAY_ID, JOIN_SOCKET, TARGET_GATEWAY, TARGET_CLAUDE, destinationTarget, RELAY_USER } from './chunk-MESOOLF4.js';
10
10
  import { createHash } from 'crypto';
11
11
  import { mkdirSync, createWriteStream, rmSync, existsSync, readFileSync, chmodSync, writeFileSync, realpathSync, readdirSync, renameSync } from 'fs';
@@ -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-GJ4KBHBD.js';
4
+ import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-I2GHZ2VA.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
- import { stripTerminalControls } from './chunk-DX4FF5P5.js';
4
- import { tagToPull, imageTag, pullInstruction, readUpdateStatus, runnerImageVersion } from './chunk-SDELQEG4.js';
3
+ import { stripTerminalControls } from './chunk-SJY6A6EH.js';
4
+ import { tagToPull, imageTag, pullInstruction, readUpdateStatus, runnerImageVersion } from './chunk-HO4XRLAZ.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-TRGA5QRL.js')).spawnRun;
58
+ const run = deps.run ?? (await import('./docker-IUPWQ2RK.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 = "";
@@ -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-QABXXQ67.js';
4
+ import { WorkCommandError, resolveCredentials, getJson } from './chunk-NGZBVN6F.js';
5
5
  import { C } from './chunk-ANPNT6PM.js';
6
6
  import { sanitizeTerminal } from './chunk-IXPH4EXK.js';
7
- import { defaultFetch } from './chunk-7QAJQDHS.js';
7
+ import { defaultFetch } from './chunk-T375XV3H.js';
8
8
  import { resolveRepoIdentity } from './chunk-OOD5NDQA.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-JH2ILNZT.js');
170
+ const { testProofIn } = await import('./host-checks-VKBAGGWH.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-JH2ILNZT.js');
177
+ const { checksIn, isJudgeCheck } = await import('./host-checks-VKBAGGWH.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-YG6HD6SJ.js');
317
+ const { runWorkProofsRecord } = await import('./work-proofs-record-AYUWUFBE.js');
318
318
  const result2 = await runWorkProofsRecord(opts);
319
319
  process.exitCode = result2.exitCode;
320
320
  return;
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { placeholderQueues, placeholderProblem } from './chunk-LKTH7PUH.js';
4
- import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-7QF2EXAN.js';
5
- import { builtinKind, imageBuildOf, keepsHostBuilder } from './chunk-DEJCZ43H.js';
6
- import { realBuildDiskProbe, checkDiskFit, DEFAULT_CACHE_DISK, DEFAULT_BUILD_DISK } from './chunk-BLSEHKZ4.js';
3
+ import { placeholderQueues, placeholderProblem } from './chunk-ARPPH7VS.js';
4
+ import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-UXGWAAGQ.js';
5
+ import { builtinKind, EGRESS_SWITCHABLE_KEYS, imageBuildOf, keepsHostBuilder } from './chunk-RO2NZJHZ.js';
6
+ import { realBuildDiskProbe, checkDiskFit, DEFAULT_CACHE_DISK, DEFAULT_BUILD_DISK } from './chunk-TS2YACAQ.js';
7
7
  import { builderDiskPinned } from './chunk-QUOITPN7.js';
8
- import { BUILD_SLICE_MEMORY_ENV, FORWARDED_CLAUDE_CREDENTIAL_VARIABLES, claudeCredentialVariablesSet, claudeCredential, claudeEnvPath, parseRunnerEnv } from './chunk-SDAEXUIX.js';
8
+ import { BUILD_SLICE_MEMORY_ENV, FORWARDED_CLAUDE_CREDENTIAL_VARIABLES, claudeCredentialVariablesSet, claudeCredential, claudeEnvPath, parseRunnerEnv } from './chunk-Z7THNFUU.js';
9
9
  import { closeSync, openSync, constants, readFileSync } from 'fs';
10
10
  import { join, dirname } from 'path';
11
11
  import { totalmem } from 'os';
@@ -56,6 +56,13 @@ function managedProblems(facts) {
56
56
  reason: "runner.build.allowHosts is not set, and a managed runner needs it so that a build reaches only the public hosts it lists. List the hosts your builds need; an empty list allows none"
57
57
  });
58
58
  }
59
+ const off = EGRESS_SWITCHABLE_KEYS.filter((key) => facts.egress?.[key] === 0);
60
+ if (off.length > 0) {
61
+ problems.push({
62
+ condition: "egress",
63
+ reason: `${off.map((key) => `runner.build.egress.${key}`).join(" and ")} ${off.length === 1 ? "is" : "are"} 0, which turns ${off.length === 1 ? "that limit" : "those limits"} off. A managed runner limits how fast a build opens connections and sends bytes, because every organization on the host shares one address. Remove ${off.length === 1 ? "the key" : "the keys"} to use the default, or set a value above 0`
64
+ });
65
+ }
59
66
  if (builtinKind(facts.provision) === "vm") {
60
67
  if (facts.imageBuild === "host") {
61
68
  problems.push({
@@ -92,6 +99,7 @@ function managedFactsOf(config, probes) {
92
99
  jailer: probes.jailer ?? "unknown",
93
100
  credentials: /* @__PURE__ */ new Set([...claudeCredentialVariablesSet(probes.env), ...credentialsInFiles(config.configPath)]),
94
101
  allowHosts: config.build?.allowHosts,
102
+ egress: config.build?.egress,
95
103
  imageBuild: imageBuildOf(config),
96
104
  builderDiskPinned: probes.builderDiskPinned ?? builderDiskPinned()
97
105
  };
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { DEFAULT_UNIT_NAME } from './chunk-7QF2EXAN.js';
4
- import { RUNNER_FILE_MODE } from './chunk-GJ4KBHBD.js';
5
- import { claudeEnvPath, withoutCredentialLines, parseRunnerEnv } from './chunk-SDAEXUIX.js';
3
+ import { DEFAULT_UNIT_NAME } from './chunk-UXGWAAGQ.js';
4
+ import { RUNNER_FILE_MODE } from './chunk-I2GHZ2VA.js';
5
+ import { claudeEnvPath, withoutCredentialLines, parseRunnerEnv } from './chunk-Z7THNFUU.js';
6
6
  import { existsSync, readFileSync, writeFileSync, renameSync, rmSync } from 'fs';
7
7
  import { join, dirname } from 'path';
8
8
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { RELAY_PORT, BUILD_HOME } from './chunk-SDAEXUIX.js';
3
+ import { RELAY_PORT, BUILD_HOME } from './chunk-Z7THNFUU.js';
4
4
  import { createServer, connect } from 'net';
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
- import { LiveUploader } from './chunk-QRJIBTNQ.js';
4
- import { spoolDir } from './chunk-CCHSD7RS.js';
3
+ import { LiveUploader } from './chunk-B7LPFCIN.js';
4
+ import { spoolDir } from './chunk-CHDWAWQA.js';
5
5
  import { CaptureDaemon } from './chunk-OOD5NDQA.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 { fetchFactories, selectFactory, saveFactoryConnection, autoConnectedLine } from './chunk-O7QPHJWN.js';
4
- import { resolveGatewayCredentials } from './chunk-7QAJQDHS.js';
3
+ import { fetchFactories, selectFactory, saveFactoryConnection, autoConnectedLine } from './chunk-L7RPNSAA.js';
4
+ import { resolveGatewayCredentials } from './chunk-T375XV3H.js';
5
5
  import { readCloudConfig } from './chunk-PJDQPF5N.js';
6
6
  import { findGitDirs, readRepoConnection } from './chunk-BJ3KTMDH.js';
7
7
  import { resolveRepoIdentity } from './chunk-OOD5NDQA.js';
@@ -618,6 +618,7 @@ async function startBuildServices(input) {
618
618
  ...streamed ? { socket: false } : {},
619
619
  ...streamed ? {} : listenOnFor("tunnel.sock"),
620
620
  ...input.allowHosts === void 0 ? {} : { allowHosts: input.allowHosts },
621
+ ...input.egress === void 0 ? {} : { egress: input.egress },
621
622
  recordPath: join(input.jobDir, "tunnel.json")
622
623
  });
623
624
  const servers = [];
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { EXEC_PORT } from './chunk-6KFJIU73.js';
3
+ import { EXEC_PORT } from './chunk-RMJSYOSV.js';
4
4
  import { createConnection } from 'net';
5
5
 
6
6
  createRequire(import.meta.url);
@@ -252,7 +252,7 @@ async function runClaudeLauncher(args, deps = {}) {
252
252
  return 1;
253
253
  }
254
254
  } else {
255
- const { resolveLaunchPlane } = await import('./control-plane-launch-BDSUP4DK.js');
255
+ const { resolveLaunchPlane } = await import('./control-plane-launch-UM4IHOJQ.js');
256
256
  const plane = env[GOVERNANCE_VARIABLE] === "self" ? { kind: "none" } : await resolveLaunchPlane({ cwd, env, home, fetchImpl: deps.fetchImpl, stderr });
257
257
  if (plane.kind === "none") {
258
258
  const own2 = ownSkillsDirFor(cwd, home, [], stderr);