@outerlayer/cli 0.34.0-next.20261025224117 → 0.34.0-next.20261026161241

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 (121) hide show
  1. package/README.md +6 -0
  2. package/dist/{agent-setup-FNDKCPUP.js → agent-setup-WOEZELVB.js} +6 -6
  3. package/dist/{bridge-YJBB4YA3.js → bridge-F5FBQSPZ.js} +2 -2
  4. package/dist/{build-B4OKU4MV.js → build-UDOBVX5J.js} +7 -7
  5. package/dist/{build-disk-ZL46AEN3.js → build-disk-C3WIAHCL.js} +6 -6
  6. package/dist/build-info.json +1 -1
  7. package/dist/{builder-XFPWE74N.js → builder-YNXWVH2V.js} +5 -5
  8. package/dist/{check-YOSEXQPQ.js → check-ERYYVAEM.js} +41 -37
  9. package/dist/{chunk-2ILU7UAU.js → chunk-3VZTNXK5.js} +1 -1
  10. package/dist/{chunk-DJO6GI7B.js → chunk-4G4IH4A7.js} +126 -61
  11. package/dist/{chunk-NW26E4YU.js → chunk-4J2FF5HZ.js} +3 -3
  12. package/dist/{chunk-CAQCDYKF.js → chunk-5JGPTYLT.js} +2 -2
  13. package/dist/{chunk-OGPEHSNW.js → chunk-6KFJIU73.js} +1 -1
  14. package/dist/{chunk-3EJBI5JW.js → chunk-7FQYTM7M.js} +1 -1
  15. package/dist/{chunk-3N77LUQI.js → chunk-7QAJQDHS.js} +1 -1
  16. package/dist/{chunk-SI6WDF3U.js → chunk-CFFVCI2I.js} +1 -1
  17. package/dist/{chunk-ZVGSCE2Q.js → chunk-CNZRUVZ5.js} +102 -36
  18. package/dist/{chunk-RLPIRL33.js → chunk-E6OVLJTR.js} +98 -30
  19. package/dist/{chunk-PFHTT4PP.js → chunk-ELO5XEES.js} +4 -4
  20. package/dist/{chunk-RFVIQLNB.js → chunk-EPFFYDNX.js} +5 -5
  21. package/dist/{chunk-FVCHHSHB.js → chunk-EUQZAH2W.js} +2 -2
  22. package/dist/{chunk-6OLVVAOK.js → chunk-FZ4G6CMK.js} +4 -4
  23. package/dist/{chunk-QQP3S5FU.js → chunk-GHFI5GBF.js} +3 -3
  24. package/dist/{chunk-PXGU3GKY.js → chunk-GJ4KBHBD.js} +1 -1
  25. package/dist/{chunk-UO4FQAOX.js → chunk-H47VGSCW.js} +4 -4
  26. package/dist/{chunk-TFPNPS4Q.js → chunk-HOUFCUMH.js} +1 -1
  27. package/dist/{chunk-OQLF3MQQ.js → chunk-HVPW272H.js} +3 -3
  28. package/dist/{chunk-5AFPP3GZ.js → chunk-HVQMIZ22.js} +4 -4
  29. package/dist/{chunk-AVPLEFQR.js → chunk-IO2BBKG4.js} +3 -3
  30. package/dist/{chunk-KM2HLQE3.js → chunk-IWVGALDC.js} +2 -2
  31. package/dist/{chunk-SMWRIAGH.js → chunk-JC6AQ6PC.js} +39 -6
  32. package/dist/{chunk-UN3SQTVL.js → chunk-JKNOJKVD.js} +34 -9
  33. package/dist/{chunk-BHSSGVOY.js → chunk-JSZRBQY3.js} +3 -3
  34. package/dist/{chunk-MOI2KDLH.js → chunk-L5VHGRQE.js} +1 -1
  35. package/dist/{chunk-JBCOUY4M.js → chunk-LD3BHLK7.js} +3 -3
  36. package/dist/{chunk-YNMVVQOQ.js → chunk-LQHCNXPK.js} +1 -1
  37. package/dist/{chunk-YHKU2NOZ.js → chunk-LTYBHCL4.js} +1 -1
  38. package/dist/{chunk-PAK5P2ND.js → chunk-MH6QLXUO.js} +1 -1
  39. package/dist/{chunk-OS7DJOQJ.js → chunk-MN3PP45X.js} +1 -1
  40. package/dist/{chunk-25GRRBTH.js → chunk-NHEU5CON.js} +1 -1
  41. package/dist/{chunk-K2UAQWYO.js → chunk-OQT7RT5I.js} +3 -3
  42. package/dist/{chunk-63IVRRIO.js → chunk-P3NPTFLF.js} +3 -3
  43. package/dist/{chunk-GC5PVMIJ.js → chunk-RR3VDM7M.js} +3 -3
  44. package/dist/{chunk-G4W4B33M.js → chunk-SDAEXUIX.js} +25 -10
  45. package/dist/{chunk-SYVRBBLW.js → chunk-SDELQEG4.js} +1 -1
  46. package/dist/{chunk-FDJPDZSR.js → chunk-TS3EFB7S.js} +1 -1
  47. package/dist/{chunk-6P4YL4CO.js → chunk-U6AWVO6L.js} +6 -6
  48. package/dist/{chunk-INOUUSYI.js → chunk-V2VJYK46.js} +4 -4
  49. package/dist/{chunk-YV7BP62T.js → chunk-VEJWLQ4G.js} +11 -11
  50. package/dist/{chunk-QANM5COC.js → chunk-VUQKGBIQ.js} +14 -7
  51. package/dist/{chunk-XJXBQQR4.js → chunk-VWZHOFBP.js} +3 -3
  52. package/dist/{chunk-SUOZYOWO.js → chunk-WE4C3ODP.js} +2 -2
  53. package/dist/{chunk-AP2K4LPI.js → chunk-XKJOIQ2Q.js} +27 -3
  54. package/dist/{chunk-TBKV4L2W.js → chunk-XL2MPORM.js} +4 -4
  55. package/dist/{chunk-EGVHFHY4.js → chunk-XSFR76J7.js} +3 -3
  56. package/dist/{chunk-UMYYYF7B.js → chunk-YL3RWW7X.js} +1 -1
  57. package/dist/{chunk-AJYZNISW.js → chunk-Z7WMU3RA.js} +8 -7
  58. package/dist/{chunk-2D6CKNR7.js → chunk-ZIKZZ4LK.js} +3 -3
  59. package/dist/{claude-launcher-OQZNW7XJ.js → claude-launcher-6KGANL7E.js} +1 -1
  60. package/dist/{cli-NKT5FAP3.js → cli-LXKVCFD7.js} +113 -112
  61. package/dist/{command-BC2NOUA5.js → command-VQPQDPCZ.js} +24 -24
  62. package/dist/{config-QASNKYM6.js → config-WSZIWPP4.js} +7 -7
  63. package/dist/{connect-cmd-MEDWMW3L.js → connect-cmd-LI34HS5Q.js} +6 -6
  64. package/dist/{container-start-3GFLLV4Q.js → container-start-IL74XEC5.js} +34 -30
  65. package/dist/{context-show-cmd-VSFCG663.js → context-show-cmd-X27GMOT6.js} +7 -7
  66. package/dist/{control-plane-launch-XBGHM7DB.js → control-plane-launch-74EIIB5Z.js} +5 -5
  67. package/dist/dist-HVXLUMRV.js +7 -0
  68. package/dist/{docker-TAC6G4VU.js → docker-KZ3OQTPW.js} +5 -5
  69. package/dist/{doctor-Z4OA5JJK.js → doctor-KPKLFIJH.js} +24 -24
  70. package/dist/{emit-artifact-cmd-L4REOPWX.js → emit-artifact-cmd-BJICHW2E.js} +11 -11
  71. package/dist/{emit-criteria-cmd-QVFOQARC.js → emit-criteria-cmd-MUWPT25P.js} +8 -8
  72. package/dist/{emit-demo-cmd-L4B6OOTV.js → emit-demo-cmd-YQN7VKQH.js} +12 -12
  73. package/dist/{emit-finding-cmd-YXFCIWMU.js → emit-finding-cmd-NPBWVY44.js} +8 -8
  74. package/dist/{emit-result-cmd-NI4LCTUM.js → emit-result-cmd-7CJZZQGK.js} +10 -10
  75. package/dist/{emit-step-cmd-HWAUCZZB.js → emit-step-cmd-ZPLHZAMA.js} +8 -8
  76. package/dist/{exec-client-QB4OZRGM.js → exec-client-LXHTMVIB.js} +3 -3
  77. package/dist/find-unit-UKH6JH4S.js +18 -0
  78. package/dist/{findings-cmd-O2IBO25E.js → findings-cmd-DZ4ESTHX.js} +8 -8
  79. package/dist/{fleet-readiness-NJYTQYTA.js → fleet-readiness-YSI4NOHT.js} +5 -5
  80. package/dist/{governing-source-JCI7VDQ6.js → governing-source-JPRMOB3O.js} +10 -10
  81. package/dist/{guest-init-IF5LXGUL.js → guest-init-WWL2WL7R.js} +4 -4
  82. package/dist/{hook-fast-GPUL7T77.js → hook-fast-6EW2MGA2.js} +1 -1
  83. package/dist/{pending-ERXWVLLG.js → host-key-TSOKVSZX.js} +3 -3
  84. package/dist/{image-tag-SEMBVB5D.js → image-tag-BTXKIH73.js} +3 -3
  85. package/dist/index.d.ts +1 -1
  86. package/dist/index.js +4 -4
  87. package/dist/{init-43LJRRQO.js → init-MN3MNG7V.js} +21 -21
  88. package/dist/{init-3KP2CDZJ.js → init-V6Y2VNKW.js} +21 -21
  89. package/dist/{init-cmd-FN7CSVLZ.js → init-cmd-QCWLJDIF.js} +12 -12
  90. package/dist/{init-update-TTMFFNMB.js → init-update-GTFLPDEL.js} +11 -10
  91. package/dist/{install-cmd-5H6M2KJ7.js → install-cmd-RGO7NWKP.js} +5 -5
  92. package/dist/{logs-6CMB3DO6.js → logs-LEVH6VAI.js} +2 -2
  93. package/dist/{loop-5MVKWHNV.js → loop-A4CB4IFF.js} +40 -36
  94. package/dist/{machine-APH6CXPC.js → machine-XG54XYYZ.js} +21 -21
  95. package/dist/{mcp-serve-cmd-MWGIN6YL.js → mcp-serve-cmd-4O5INM77.js} +4 -4
  96. package/dist/{paths-T2DEBI62.js → paths-AQ47ZRHK.js} +2 -2
  97. package/dist/{host-key-5RU322O3.js → pending-UWFDVFOA.js} +3 -3
  98. package/dist/{pidfile-EAD2OEM7.js → pidfile-PCG2H5T4.js} +3 -3
  99. package/dist/{record-IMXQNHPB.js → record-SVCNFCGQ.js} +3 -3
  100. package/dist/{runner-env-BJPUHAKZ.js → runner-env-YPXWTNP3.js} +9 -9
  101. package/dist/{runner-identity-ZCPPC2BJ.js → runner-identity-XPZO3TG4.js} +5 -5
  102. package/dist/{runner-key-WY6KFIRA.js → runner-key-B5EJH25Z.js} +21 -21
  103. package/dist/{session-sender-5T7BXPKC.js → session-sender-XED7CKHP.js} +11 -11
  104. package/dist/{spec-cmd-4ABYAFNZ.js → spec-cmd-TRXAGQYM.js} +9 -9
  105. package/dist/{status-U3Y6HJJI.js → status-6V2S63DS.js} +32 -28
  106. package/dist/{sync-cmd-34CGNA6T.js → sync-cmd-UQVENF25.js} +10 -10
  107. package/dist/{update-steps-ROLDDTPM.js → update-steps-CSC2QVJF.js} +33 -29
  108. package/dist/{watch-6HU7LCUY.js → watch-EZGDDRTQ.js} +10 -10
  109. package/dist/{work-claim-cmd-5QKLHSCR.js → work-claim-cmd-YSAJ7DAK.js} +14 -14
  110. package/dist/{work-cmd-3MKUIE2C.js → work-cmd-V5FHLWJM.js} +8 -8
  111. package/dist/{work-comment-cmd-ESC3DSHI.js → work-comment-cmd-KLEMDYI4.js} +9 -9
  112. package/dist/{work-demo-cmd-7S23DGYO.js → work-demo-cmd-XYRKFP4G.js} +8 -8
  113. package/dist/{work-logs-cmd-46UPNN7Q.js → work-logs-cmd-DOGPK7Q6.js} +8 -8
  114. package/dist/{work-open-pr-cmd-JNGTGLIP.js → work-open-pr-cmd-UAUEEP3V.js} +9 -9
  115. package/dist/{work-pr-cmd-2J2LKETD.js → work-pr-cmd-LYWL7ZLF.js} +8 -8
  116. package/dist/{work-proofs-cmd-HRWTHYSS.js → work-proofs-cmd-YMLIJDJZ.js} +9 -9
  117. package/dist/{work-proofs-record-6OKAT3IC.js → work-proofs-record-NK3ULOUQ.js} +15 -15
  118. package/dist/{work-stop-cmd-Y22XIVQ6.js → work-stop-cmd-MRLJEQRP.js} +8 -8
  119. package/package.json +2 -2
  120. package/dist/dist-QGN5R4Y2.js +0 -7
  121. package/dist/find-unit-4UR647S4.js +0 -18
@@ -1,34 +1,35 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { readsJobState, READ_JOB_STATE_FORMATS, jobStateFormatOf } from './chunk-ZVB57WI6.js';
4
- import { DOCKERD_LOG, HELPER_PATH, HELPER_RECORD } from './chunk-63IVRRIO.js';
4
+ import { DOCKERD_LOG, HELPER_PATH, HELPER_RECORD } from './chunk-P3NPTFLF.js';
5
5
  import { zodProblem } from './chunk-I3LTIAOR.js';
6
- import { senderPidfile } from './chunk-JBCOUY4M.js';
7
- import { installScrubContext } from './chunk-QANM5COC.js';
8
- import { writeDockerClientConfig } from './chunk-SI6WDF3U.js';
9
- import { ADDED_USER, shellQuote, GH_CONFIG_YML, ghHostsYml, hasClaudeCredential, AssetError, obtainImage, ensureRootfs, makeBuildsDirPrivate, gitRemoteFor, startServicesFor, createLeaseChannel, createBuildDisk, machineConfig, startJailedInto, resolveAgentUser, AgentUserError, runBuildSteps, startHostServices, LEASE_SECONDS, createContainerRuntime, stopContainer, cleanupContainer, outOfMemoryReason, closeHostBuild, dropManagedClaudeKey, containerSenderCommand, hostCommandEnvironment, execArgv, signalInContainer, syncInContainer, copyTranscriptsFromContainer, MANAGED_UNJAILED_REASON, senderAliveScript, helperFirecrackerNote, managedClaudeKeyValues, stopJailed, deleteBuildDisk, managedClaudeKeyFor, startCheckContainer, lifecycleSteps, lifecycleFailureReason, writeEvalInput, DeliveryFailure, EVAL_INPUT_NAME, copyTranscripts, senderSignalScript, containerJudgeEnvironment, ROOT_DISK_ID_PREFIX, copyJudgeTree } from './chunk-ZVGSCE2Q.js';
10
- import { readBranchHead, fetchCommit, diffBetween } from './chunk-UO4FQAOX.js';
11
- import { waitForAgent, vmExecArgs } from './chunk-2ILU7UAU.js';
12
- import { socketPathProblem, vsockLinks, LEASE_LINK, linkVsockSockets } from './chunk-OGPEHSNW.js';
13
- import { describeCallFailure, resolveGoverningSource, prefetchGovernedContext, refusalCode, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, logStamp, createRunnerLog, removeKeptContext, formatDuration, retrySend, formatClock, WORKFLOW_PERMISSION_REASON, keptContextTree } from './chunk-RFVIQLNB.js';
14
- import { imageBuildOf, isBuiltinContainer, isBuiltinProcess, isBuiltinVm, DEFAULT_CHECK_TIME_LIMIT_MINUTES } from './chunk-2D6CKNR7.js';
15
- import { DEFAULT_CACHE_DISK, formatBytes, allocatedBytes } from './chunk-KM2HLQE3.js';
16
- import { parseSize, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, writeJobFile, readJobFile, childEnvironment, withAnswerProtocol, judgeCommand, MAX_REPORT_BYTES, JUDGE_MAX_TURNS, JUDGE_DIR, COMMAND_DIR, MAX_ITEMS_BYTES } from './chunk-5AFPP3GZ.js';
6
+ import { senderPidfile } from './chunk-LD3BHLK7.js';
7
+ import { installScrubContext } from './chunk-VUQKGBIQ.js';
8
+ import { writeDockerClientConfig } from './chunk-CFFVCI2I.js';
9
+ import { upgradedStarterText } from './chunk-XKJOIQ2Q.js';
10
+ import { ADDED_USER, shellQuote, GH_CONFIG_YML, ghHostsYml, hasClaudeCredential, AssetError, obtainImage, ensureRootfs, makeBuildsDirPrivate, gitRemoteFor, startServicesFor, createLeaseChannel, createBuildDisk, machineConfig, startJailedInto, resolveAgentUser, AgentUserError, runBuildSteps, startHostServices, LEASE_SECONDS, managedBuildSettingsFor, createContainerRuntime, stopContainer, cleanupContainer, outOfMemoryReason, closeHostBuild, dropManagedClaudeKey, dropManagedBuildSettings, containerSenderCommand, hostCommandEnvironment, execArgv, signalInContainer, syncInContainer, copyTranscriptsFromContainer, MANAGED_UNJAILED_REASON, senderAliveScript, managedMachineLimits, withFactoryHosts, helperFirecrackerNote, managedClaudeKeyValues, managedBuildSettingValues, stopJailed, deleteBuildDisk, managedClaudeKeyFor, startCheckContainer, lifecycleSteps, lifecycleFailureReason, writeEvalInput, DeliveryFailure, EVAL_INPUT_NAME, copyTranscripts, senderSignalScript, containerJudgeEnvironment, ROOT_DISK_ID_PREFIX, copyJudgeTree } from './chunk-CNZRUVZ5.js';
11
+ import { readBranchHead, fetchCommit, diffBetween } from './chunk-H47VGSCW.js';
12
+ import { waitForAgent, vmExecArgs } from './chunk-3VZTNXK5.js';
13
+ import { socketPathProblem, vsockLinks, LEASE_LINK, linkVsockSockets } from './chunk-6KFJIU73.js';
14
+ import { describeCallFailure, resolveGoverningSource, prefetchGovernedContext, refusalCode, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, logStamp, createRunnerLog, removeKeptContext, formatDuration, retrySend, formatClock, WORKFLOW_PERMISSION_REASON, keptContextTree } from './chunk-EPFFYDNX.js';
15
+ import { imageBuildOf, isBuiltinContainer, isBuiltinProcess, isBuiltinVm, DEFAULT_CHECK_TIME_LIMIT_MINUTES } from './chunk-ZIKZZ4LK.js';
16
+ import { formatBytes, DEFAULT_CACHE_DISK, allocatedBytes } from './chunk-IWVGALDC.js';
17
+ 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-HVQMIZ22.js';
17
18
  import { CLAUDE_CODE_VERSION, FIRECRACKER_VERSION } from './chunk-4UPET3R7.js';
18
19
  import { isSameProcess, startTimeOf } from './chunk-JBJTC3UU.js';
19
- import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-UN3SQTVL.js';
20
+ import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-JKNOJKVD.js';
20
21
  import { planArtifactUpload } from './chunk-MECW77XP.js';
21
22
  import { readCloudConfig } from './chunk-PJDQPF5N.js';
22
- import { signerFor } from './chunk-MOI2KDLH.js';
23
- import { resolvePackRoot } from './chunk-ZQSANKS4.js';
24
- import { scrubText } from './chunk-AJYZNISW.js';
23
+ import { signerFor } from './chunk-L5VHGRQE.js';
24
+ import { resolvePackRoot, AGENTS_SKILLS_BASE, OUTERLAYER_SKILLS_BASE } from './chunk-ZQSANKS4.js';
25
+ import { scrubText } from './chunk-Z7WMU3RA.js';
25
26
  import { MAINTAINED_SKILLS } from './chunk-CDDED64E.js';
26
27
  import { resolveVersion } from './chunk-RA3O54FC.js';
27
28
  import { parsePolicy } from './chunk-FGXT5OXS.js';
28
29
  import { CheckItemsSchema, CHECK_ITEM_REASON_MAX_LENGTH } from './chunk-EOTMDIYC.js';
29
30
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
30
- import { RUNNER_FILE_MODE, runnerDir, buildDir, vsockPath, jobConsolePath } from './chunk-PXGU3GKY.js';
31
- import { JOB_MOUNT, repositoriesOf, primaryOf, buildEnvironment, CHECKOUT_DIR, claudeCredential, AGENT_CREDENTIAL_MISSING, sharedUserEnvironment, headerVariables, authorEnvironment, withTunnelRecord, commitIdentityRecord, fdName, buildMavenSettingsXml, CLAUDE_CREDENTIAL_VARIABLES, currentClaudeCredential, removedClaudeCredentialValues, managedClaudeCredential, RELAY_PORT, repositoryPath, lifecycleWorkdir, CHECK_ITEMS_FILE, MAVEN_SETTINGS_FILE, checkEnvironment, EVAL_INPUT_DIR } from './chunk-G4W4B33M.js';
31
+ import { RUNNER_FILE_MODE, runnerDir, buildDir, vsockPath, jobConsolePath } from './chunk-GJ4KBHBD.js';
32
+ import { JOB_MOUNT, repositoriesOf, primaryOf, buildEnvironment, CHECKOUT_DIR, claudeCredential, AGENT_CREDENTIAL_MISSING, sharedUserEnvironment, headerVariables, authorEnvironment, withTunnelRecord, commitIdentityRecord, fdName, buildMavenSettingsXml, CLAUDE_CREDENTIAL_VARIABLES, currentClaudeCredential, removedClaudeCredentialValues, managedClaudeCredential, RELAY_PORT, repositoryPath, lifecycleWorkdir, CHECK_ITEMS_FILE, MAVEN_SETTINGS_FILE, checkEnvironment, EVAL_INPUT_DIR } from './chunk-SDAEXUIX.js';
32
33
  import { RUNNER_WORDED_REASONS, UNKNOWN_TRACKING_REASON } from './chunk-MESOOLF4.js';
33
34
  import { existsSync, statSync, appendFileSync, rmSync, mkdirSync, chmodSync, writeFileSync, openSync, readFileSync, closeSync, readdirSync, lstatSync, fstatSync, readSync, realpathSync } from 'fs';
34
35
  import { join, dirname, delimiter, sep } from 'path';
@@ -192,6 +193,37 @@ var GUEST_MAVEN_DIR = `${JOB_MOUNT}/maven`;
192
193
  function buildMemoryBytes(config) {
193
194
  return parseSize(config.build?.memory ?? DEFAULT_MEMORY) ?? parseSize(DEFAULT_MEMORY);
194
195
  }
196
+ function machineLimits(config, jobDir) {
197
+ const settings = managedBuildSettingsFor(jobDir);
198
+ if (settings !== void 0) return managedMachineLimits(settings);
199
+ return {
200
+ cpus: config.build?.cpus ?? DEFAULT_CPUS,
201
+ memoryBytes: buildMemoryBytes(config),
202
+ diskBytes: parseSize(config.build?.disk ?? DEFAULT_DISK) ?? parseSize(DEFAULT_DISK)
203
+ };
204
+ }
205
+ function recordedLimits(limits) {
206
+ return { memoryBytes: limits.memoryBytes, diskBytes: limits.diskBytes };
207
+ }
208
+ function memoryTextOf(config, jobDir, limits) {
209
+ return managedBuildSettingsFor(jobDir) === void 0 ? config.build?.memory : `${limits.memoryBytes / 1024 ** 3}g`;
210
+ }
211
+ function builderMachineFor(config, jobDir, assets, limits) {
212
+ return {
213
+ kernel: assets.kernel,
214
+ firecracker: assets.firecracker,
215
+ limits: { ...limits, cacheDiskBytes: parseSize(config.build?.cacheDisk ?? DEFAULT_CACHE_DISK) ?? parseSize(DEFAULT_CACHE_DISK) },
216
+ memory: memoryTextOf(config, jobDir, limits),
217
+ allowHosts: withFactoryHosts(config.build?.allowHosts, managedBuildSettingsFor(jobDir)),
218
+ managed: config.managed === true,
219
+ timeLimitMinutes: config.timeLimitMinutes
220
+ };
221
+ }
222
+ function factoryVariablesOf(config, jobDir) {
223
+ const held = managedBuildSettingsFor(jobDir)?.variables;
224
+ if (held !== void 0) return held;
225
+ return config.managed === true ? [] : void 0;
226
+ }
195
227
  function firstLine(text2) {
196
228
  return text2.trim().split("\n")[0] ?? "";
197
229
  }
@@ -326,11 +358,8 @@ async function provisionMicroVm(input) {
326
358
  });
327
359
  if (unfetched !== void 0) return fail(unfetched);
328
360
  }
329
- const limits = {
330
- cpus: config.build?.cpus ?? DEFAULT_CPUS,
331
- memoryBytes: buildMemoryBytes(config),
332
- diskBytes: parseSize(config.build?.disk ?? DEFAULT_DISK) ?? parseSize(DEFAULT_DISK)
333
- };
361
+ const limits = machineLimits(config, jobDir);
362
+ const memoryText = memoryTextOf(config, jobDir, limits);
334
363
  let buildsInBuilder = imageBuildOf(config) === "vm";
335
364
  if (buildsInBuilder && !vm.builderDiskPinned()) {
336
365
  if (config.managed === true) return fail(MANAGED_NO_BUILDER_DISK_REASON);
@@ -350,17 +379,7 @@ async function provisionMicroVm(input) {
350
379
  deadlineMs: input.deadlineMs,
351
380
  now: input.now,
352
381
  guestHelper: { path: assets.helper, sha256: assets.helperSha256 },
353
- ...buildsInBuilder ? {
354
- inBuilder: {
355
- kernel: assets.kernel,
356
- firecracker: assets.firecracker,
357
- limits: { ...limits, cacheDiskBytes: parseSize(config.build?.cacheDisk ?? DEFAULT_CACHE_DISK) ?? parseSize(DEFAULT_CACHE_DISK) },
358
- memory: config.build?.memory,
359
- allowHosts: config.build?.allowHosts,
360
- managed: config.managed === true,
361
- timeLimitMinutes: config.timeLimitMinutes
362
- }
363
- } : {}
382
+ ...buildsInBuilder ? { inBuilder: builderMachineFor(config, jobDir, assets, limits) } : {}
364
383
  });
365
384
  if (!obtained.ok) return obtained.aborted === true ? { ok: false, reason: obtained.reason, aborted: true } : fail(obtained.reason);
366
385
  const { report } = obtained.built;
@@ -374,6 +393,7 @@ async function provisionMicroVm(input) {
374
393
  imageId: report.imageId,
375
394
  containerEnv: report.apply.containerEnv,
376
395
  builtIns: true,
396
+ limits: recordedLimits(limits),
377
397
  lifecycle: report.apply.lifecycle,
378
398
  ...governingSource.kind === "governed" ? { governing: { repository: governingSource.repository, ref: governingSource.ref, commit: governingSource.sha } } : {},
379
399
  ...report.docker === true ? { docker: true } : {}
@@ -386,7 +406,8 @@ async function provisionMicroVm(input) {
386
406
  repositories,
387
407
  hostEnv: runtime.hostEnv,
388
408
  containerEnv: report.apply.containerEnv,
389
- builtIns: true
409
+ builtIns: true,
410
+ factoryVariables: factoryVariablesOf(config, jobDir)
390
411
  };
391
412
  const env = buildEnvironment(envInput);
392
413
  if (env.skippedTokenVariables.length > 0) {
@@ -405,7 +426,7 @@ async function provisionMicroVm(input) {
405
426
  let why = reason;
406
427
  if (!aborted && (state.cgroup !== void 0 || state.jailed !== void 0)) {
407
428
  try {
408
- if (await microVmOomKills(runtime, state) > 0) why = outOfMemoryReason(config.build?.memory);
429
+ if (await microVmOomKills(runtime, state) > 0) why = outOfMemoryReason(memoryText);
409
430
  } catch (err) {
410
431
  log.error(`${tag} could not read the build's memory events: ${describeCallFailure(err)} \xB7 continuing`);
411
432
  }
@@ -424,7 +445,7 @@ async function provisionMicroVm(input) {
424
445
  imageConfig = { env: madeInBuilder.env, user: madeInBuilder.user };
425
446
  } else {
426
447
  try {
427
- state.rootfs = await ensureRootfs({ host: vm.rootfs, runnerDir: runnerDirPath, imageId: report.imageId, memoryBytes: buildMemoryBytes(config) });
448
+ state.rootfs = await ensureRootfs({ host: vm.rootfs, runnerDir: runnerDirPath, imageId: report.imageId, memoryBytes: limits.memoryBytes });
428
449
  imageConfig = await vm.rootfs.imageConfig(report.imageId);
429
450
  } catch (err) {
430
451
  return bail(`the image could not be converted to a root disk: ${describeCallFailure(err)}`);
@@ -677,7 +698,8 @@ function vmExecFor(input, argv) {
677
698
  containerEnv: state.containerEnv ?? {},
678
699
  builtIns: state.builtIns === true,
679
700
  identity: input.job.commitIdentity,
680
- imageEnv: state.imageEnv
701
+ imageEnv: state.imageEnv,
702
+ factoryVariables: factoryVariablesOf(input.config, input.jobDir)
681
703
  });
682
704
  const options = {
683
705
  socket: state.vsockPath,
@@ -706,7 +728,8 @@ async function startMicroVmCommand(input) {
706
728
  containerEnv: state.containerEnv ?? {},
707
729
  builtIns: state.builtIns === true,
708
730
  identity: input.job.commitIdentity,
709
- imageEnv: state.imageEnv
731
+ imageEnv: state.imageEnv,
732
+ factoryVariables: factoryVariablesOf(input.config, input.jobDir)
710
733
  });
711
734
  const started = await input.runtime.vm.exec(state.vsockPath, {
712
735
  argv: ["/bin/sh", "-c", commandWithShim(input.job, input.cmdline)],
@@ -748,7 +771,8 @@ async function syncInMicroVm(input) {
748
771
  containerEnv: state.containerEnv ?? {},
749
772
  builtIns: state.builtIns === true,
750
773
  identity: job.commitIdentity,
751
- imageEnv: state.imageEnv
774
+ imageEnv: state.imageEnv,
775
+ factoryVariables: factoryVariablesOf(input.config, input.jobDir)
752
776
  });
753
777
  const result = await runtime.vm.exec(state.vsockPath, {
754
778
  argv: ["outerlayer", "sync"],
@@ -872,6 +896,7 @@ async function startCheckMicroVm(input) {
872
896
  const { config, runtime, job, jobDir, tokens, log } = input;
873
897
  const { vm } = runtime;
874
898
  const tag = `#${job.item}`;
899
+ const limits = machineLimits(config, jobDir);
875
900
  const built = job.microvm;
876
901
  const repository = built?.repository ?? job.repository;
877
902
  if (built === void 0 || built.imageId === void 0 || repository === void 0 || job.branch === void 0) {
@@ -921,7 +946,7 @@ async function startCheckMicroVm(input) {
921
946
  state.rootfs = built.rootfs;
922
947
  } else {
923
948
  try {
924
- state.rootfs = await ensureRootfs({ host: vm.rootfs, runnerDir: runnerDirPath, imageId: built.imageId, memoryBytes: buildMemoryBytes(config) });
949
+ state.rootfs = await ensureRootfs({ host: vm.rootfs, runnerDir: runnerDirPath, imageId: built.imageId, memoryBytes: limits.memoryBytes });
925
950
  } catch (err) {
926
951
  return fail(`the image could not be converted to a root disk: ${describeCallFailure(err)}`);
927
952
  }
@@ -939,16 +964,11 @@ async function startCheckMicroVm(input) {
939
964
  log: (line) => log.line(`${tag} ${line}`),
940
965
  readOnly: true
941
966
  });
942
- runtime.tunnels.set(buildId, await startServicesFor(runtime, config, buildDir2, checksDir, void 0, false, gitRemote));
967
+ runtime.tunnels.set(buildId, await startServicesFor(runtime, config, buildDir2, checksDir, void 0, false, gitRemote, "socket", void 0, void 0, void 0, jobDir));
943
968
  } catch (err) {
944
969
  return fail(`the tunnel could not start: ${describeCallFailure(err)}`);
945
970
  }
946
971
  if (abandoned()) return fail(ABANDONED);
947
- const limits = {
948
- cpus: config.build?.cpus ?? DEFAULT_CPUS,
949
- memoryBytes: buildMemoryBytes(config),
950
- diskBytes: parseSize(config.build?.disk ?? DEFAULT_DISK) ?? parseSize(DEFAULT_DISK)
951
- };
952
972
  const links = vsockLinks({ destinations: config.build?.destinations?.length ?? 0, builtIns: false });
953
973
  const configPath = join(buildDir2, "vm.json");
954
974
  const helper = await helperFor(runtime, (line) => log.line(`${tag} ${line}`), config.managed === true);
@@ -1008,7 +1028,16 @@ async function startCheckMicroVm(input) {
1008
1028
  const failed = await boot();
1009
1029
  if (failed !== void 0) return fail(failed);
1010
1030
  if (abandoned()) return fail(ABANDONED);
1011
- const env = checkEnvironment({ config, item: job.item, repository, hostEnv: runtime.hostEnv, containerEnv: built.containerEnv ?? {}, imageEnv: built.imageEnv });
1031
+ const env = checkEnvironment({
1032
+ config,
1033
+ item: job.item,
1034
+ repository,
1035
+ hostEnv: runtime.hostEnv,
1036
+ containerEnv: built.containerEnv ?? {},
1037
+ imageEnv: built.imageEnv,
1038
+ // The checks of a managed build get its factory's variables, as its command did, and none of the runner's own.
1039
+ factoryVariables: factoryVariablesOf(config, jobDir)
1040
+ });
1012
1041
  const evalInput = { dir: join(checksDir, EVAL_INPUT_NAME), delivered: false };
1013
1042
  const deliverEvalInput = async () => {
1014
1043
  await unpackIntoGuest(runtime, state, evalInput.dir, EVAL_INPUT_DIR, { readOnly: true });
@@ -1653,9 +1682,18 @@ function validatorFilesIn(root) {
1653
1682
  }
1654
1683
  return files;
1655
1684
  }
1685
+ var CRITERIA_CHECK = "acceptance-criteria";
1686
+ function asHostReads(file, base, log, tag) {
1687
+ const upgraded = upgradedStarterText(file.path, file.content, { base });
1688
+ if (upgraded === void 0) return file;
1689
+ log.line(`${tag} ${file.path} is an unedited copy an earlier release wrote, so it is read as this CLI writes it`);
1690
+ return { path: file.path, content: upgraded };
1691
+ }
1656
1692
  function checksIn(root, log, tag) {
1657
- const policy = readInside(root, POLICY_FILE);
1658
- const loaded = parsePolicy(policy === void 0 ? null : { path: POLICY_FILE, content: policy }, validatorFilesIn(root));
1693
+ const base = existsSync(join(root, AGENTS_SKILLS_BASE)) ? AGENTS_SKILLS_BASE : OUTERLAYER_SKILLS_BASE;
1694
+ const policyText = readInside(root, POLICY_FILE);
1695
+ const policy = policyText === void 0 ? null : asHostReads({ path: POLICY_FILE, content: policyText }, base, log, tag);
1696
+ const loaded = parsePolicy(policy, validatorFilesIn(root).map((file) => asHostReads(file, base, log, tag)));
1659
1697
  for (const problem of loaded.problems) log.error(`${tag} ${problem.file}: ${problem.problem}`);
1660
1698
  const hostChecks = loaded.customs.filter((def) => def.runWhere === "host" && def.level !== "off" && def.declaresEmit !== null);
1661
1699
  const checks = [];
@@ -1663,7 +1701,8 @@ function checksIn(root, log, tag) {
1663
1701
  if (def.judge !== void 0) checks.push({ name: def.declaresEmit, judge: { brief: def.judge.brief, text: readBrief(root, def.judge.brief), subjects: def.judge.subjects } });
1664
1702
  else if (def.command !== void 0) checks.push({ name: def.declaresEmit, command: def.command });
1665
1703
  }
1666
- return checks;
1704
+ const unrecorded = loaded.customs.filter((def) => def.level !== "off" && def.declaresEmit === CRITERIA_CHECK && !checks.some((check) => check.name === CRITERIA_CHECK)).map((def) => def.id);
1705
+ return { checks, unrecorded };
1667
1706
  }
1668
1707
  async function readDefinitions(input, repository, scratch, token, tokens) {
1669
1708
  const { config, job, deps } = input;
@@ -1672,7 +1711,7 @@ async function readDefinitions(input, repository, scratch, token, tokens) {
1672
1711
  const controlPlaneUrl = (controlPlane) => deps.runtime.remoteFor?.(controlPlane) ?? `${deps.runtime.github.gitUrl}/${controlPlane}.git`;
1673
1712
  const governing = (job.container ?? job.microvm)?.governing;
1674
1713
  const kept = keptContextTree(input.jobDir, governing);
1675
- if (kept !== void 0) return { ok: true, checks: checksIn(kept, deps.log, tag) };
1714
+ if (kept !== void 0) return { ok: true, ...checksIn(kept, deps.log, tag) };
1676
1715
  const staged = await stage({
1677
1716
  config,
1678
1717
  repository,
@@ -1688,18 +1727,20 @@ async function readDefinitions(input, repository, scratch, token, tokens) {
1688
1727
  if (staged.kind === "refused") return { ok: false, reason: staged.reason };
1689
1728
  if (staged.kind === "staged") {
1690
1729
  try {
1691
- return { ok: true, checks: checksIn(join(staged.dir, "tree"), deps.log, tag) };
1730
+ return { ok: true, ...checksIn(join(staged.dir, "tree"), deps.log, tag) };
1692
1731
  } finally {
1693
1732
  rmSync(staged.dir, { recursive: true, force: true });
1694
1733
  }
1695
1734
  }
1696
1735
  const repo = join(scratch, "repo");
1697
1736
  const remote = deps.runtime.remoteFor?.(repository) ?? `${deps.runtime.github.gitUrl}/${repository}.git`;
1698
- const commit = job.environment?.recipe?.sourceCommit ?? await deps.runtime.readHead(remote, scratch);
1737
+ const started = (job.container ?? job.microvm)?.startCommit;
1738
+ const commit = started !== void 0 && started !== "" ? started : job.environment?.recipe?.sourceCommit ?? await deps.runtime.readHead(remote, scratch);
1699
1739
  if (commit === void 0) return { ok: false, reason: "the repository's default branch could not be read" };
1700
1740
  const fetched = await (deps.fetchCommit ?? fetchCommit)({ remote, dir: repo, commit, token });
1701
1741
  if (!fetched.ok) return { ok: false, reason: fetched.reason };
1702
- return { ok: true, checks: checksIn(repo, deps.log, tag) };
1742
+ deps.log.line(`${tag} check definitions read at ${commit.slice(0, 12)}`);
1743
+ return { ok: true, ...checksIn(repo, deps.log, tag) };
1703
1744
  }
1704
1745
  function timeoutAfter(ms, sleep) {
1705
1746
  if (sleep !== void 0) return { done: sleep(ms).then(() => "timeout"), cancel: () => void 0 };
@@ -2205,6 +2246,9 @@ async function runJudge(input) {
2205
2246
  for (const name of passed.value) await record2(name, "fail", `the definitions could not be read: ${definitions.reason}`, { idTag: "judge-unread" });
2206
2247
  return;
2207
2248
  }
2249
+ for (const id of definitions.unrecorded) {
2250
+ log.line(`${tag} judge not run for ${id}: the check is not run.where: host with a judge or a command, so this host records no result for it`);
2251
+ }
2208
2252
  const checks = definitions.checks.filter(isJudgeCheck);
2209
2253
  if (checks.length === 0) {
2210
2254
  rmSync(scratch, { recursive: true, force: true });
@@ -2634,7 +2678,7 @@ function mergeScrubConfig(a, b) {
2634
2678
  function releaseScrub(config, home) {
2635
2679
  const merged = mergeScrubConfig(config.scrub, readCloudConfig(home).scrub);
2636
2680
  const secrets = [...headerVariables(config.build?.destinations), ...CLAUDE_CREDENTIAL_VARIABLES].map((name) => process.env[name] ?? "");
2637
- const held = [currentClaudeCredential(process.env)?.value, ...removedClaudeCredentialValues(), ...managedClaudeKeyValues()].filter((value) => value !== void 0);
2681
+ const held = [currentClaudeCredential(process.env)?.value, ...removedClaudeCredentialValues(), ...managedClaudeKeyValues(), ...managedBuildSettingValues()].filter((value) => value !== void 0);
2638
2682
  return { literals: [...scrubList(merged?.literals), ...secrets, ...held], patterns: scrubList(merged?.patterns) };
2639
2683
  }
2640
2684
  function transcriptScrub(config, secrets) {
@@ -2911,6 +2955,15 @@ function readTunnelRecord(path) {
2911
2955
  return void 0;
2912
2956
  }
2913
2957
  }
2958
+ var VALUES_NOT_HELD = "the runner restarted and could not read this build's variables from its factory again, so it cannot remove their values from what it uploads";
2959
+ var SCRUBBED_RELEASE_LOG = "release-log.txt";
2960
+ function readScrubbedReleaseLog(jobDirPath) {
2961
+ try {
2962
+ return readFileSync(join(jobDirPath, SCRUBBED_RELEASE_LOG), "utf8");
2963
+ } catch {
2964
+ return void 0;
2965
+ }
2966
+ }
2914
2967
  async function finishJob(job, jobDirPath, outcome, config, deps, ending) {
2915
2968
  const spawnFn = deps.spawnFn ?? spawn;
2916
2969
  const now = deps.now ?? (() => /* @__PURE__ */ new Date());
@@ -2919,6 +2972,7 @@ async function finishJob(job, jobDirPath, outcome, config, deps, ending) {
2919
2972
  const logPath = join(jobDirPath, "command.log");
2920
2973
  const tag = `#${job.item}`;
2921
2974
  deps.attemptLogs?.open(job.item, jobDirPath);
2975
+ const valuesNotHeld = (job.managedVariables?.length ?? 0) > 0 && managedBuildSettingsFor(jobDirPath) === void 0;
2922
2976
  if (job.sender !== void 0) {
2923
2977
  await stopSender({ job, deps: { spawnFn, runtime: deps.container, log } });
2924
2978
  delete job.sender;
@@ -2962,6 +3016,10 @@ async function finishJob(job, jobDirPath, outcome, config, deps, ending) {
2962
3016
  writeJobFile(jobFilePath, job);
2963
3017
  }
2964
3018
  const uploadSessions = async (workdir) => {
3019
+ if (valuesNotHeld) {
3020
+ log.error(`${tag} sync skipped: ${VALUES_NOT_HELD}`);
3021
+ return;
3022
+ }
2965
3023
  if (job.container === void 0 && job.microvm === void 0 && job.build?.exec === void 0 && workdirProblem(workdir) !== void 0) {
2966
3024
  log.line(`${tag} sync skipped: workdir ${workdir} is gone`);
2967
3025
  } else if (job.itemKey === void 0) {
@@ -3020,7 +3078,8 @@ async function finishJob(job, jobDirPath, outcome, config, deps, ending) {
3020
3078
  log.error(`${tag} removing an earlier attempt's check environment failed: ${describeCallFailure(err)} \xB7 continuing`);
3021
3079
  }
3022
3080
  }
3023
- if (outcome === "ok" && !job.cleanupRan && job.judgeRan !== true) {
3081
+ if (valuesNotHeld && outcome === "ok" && !job.cleanupRan) log.error(`${tag} the host's judge and checks skipped: ${VALUES_NOT_HELD}`);
3082
+ if (outcome === "ok" && !job.cleanupRan && job.judgeRan !== true && !valuesNotHeld) {
3024
3083
  setStage(job, jobDirPath, "judge");
3025
3084
  job.judgeRan = true;
3026
3085
  writeJobFile(jobFilePath, job);
@@ -3035,7 +3094,7 @@ async function finishJob(job, jobDirPath, outcome, config, deps, ending) {
3035
3094
  log.error(`${tag} the host's judge stopped: ${describeCallFailure(err)} \xB7 continuing`);
3036
3095
  }
3037
3096
  }
3038
- if (outcome === "ok" && !job.cleanupRan && job.checksRan !== true) {
3097
+ if (outcome === "ok" && !job.cleanupRan && job.checksRan !== true && !valuesNotHeld) {
3039
3098
  setStage(job, jobDirPath, "checks");
3040
3099
  job.checksRan = true;
3041
3100
  writeJobFile(jobFilePath, job);
@@ -3249,12 +3308,17 @@ async function finishJob(job, jobDirPath, outcome, config, deps, ending) {
3249
3308
  writeJobFile(jobFilePath, job);
3250
3309
  }
3251
3310
  const sentAtMs = now().getTime();
3252
- const runnerLog = releaseLogFor(jobDirPath, job, config);
3311
+ const runnerLog = valuesNotHeld ? `The runner sends no log for this attempt: ${VALUES_NOT_HELD}.
3312
+ ` : releaseLogFor(jobDirPath, job, config);
3253
3313
  const detail = outcome === void 0 ? { log: runnerLog } : { stage: job.endStage, exitCode: job.endExitCode, reason: job.reason, environment: job.environment, log: runnerLog };
3254
3314
  const release = await retrySend(() => releaseLease(config, job.item, outcome, detail, deps.fetchImpl), {
3255
3315
  now: deps.now,
3256
3316
  sleep: deps.sleep
3257
3317
  });
3318
+ if (!release.ok && release.retryable && job.managedVariables !== void 0 && runnerLog !== void 0) {
3319
+ writeFileSync(join(jobDirPath, SCRUBBED_RELEASE_LOG), runnerLog, { mode: RUNNER_FILE_MODE });
3320
+ }
3321
+ dropManagedBuildSettings(jobDirPath);
3258
3322
  const alreadyReleased = release.ok && wasAlreadyReleased(release.value, outcome, sentAtMs);
3259
3323
  const endedAt = now();
3260
3324
  job.outcome = outcome;
@@ -3307,13 +3371,14 @@ async function retryFailedReleases(jobsDirPath, config, deps) {
3307
3371
  if (!job || job.releaseFailed === void 0 || job.releaseFailed === ALREADY_RELEASED || isUnfinished(job)) {
3308
3372
  continue;
3309
3373
  }
3310
- const runnerLog = releaseLogFor(dirPath, job, config);
3374
+ const runnerLog = readScrubbedReleaseLog(dirPath) ?? releaseLogFor(dirPath, job, config);
3311
3375
  const detail = job.outcome === void 0 ? { log: runnerLog } : { stage: job.endStage, exitCode: job.endExitCode, reason: job.reason, environment: job.environment, log: runnerLog };
3312
3376
  const release = await retrySend(() => releaseLease(config, job.item, job.outcome, detail, deps.fetchImpl), {
3313
3377
  now: deps.now,
3314
3378
  sleep: deps.sleep
3315
3379
  });
3316
3380
  if (release.ok || !release.retryable) {
3381
+ rmSync(join(dirPath, SCRUBBED_RELEASE_LOG), { force: true });
3317
3382
  job.releaseFailed = void 0;
3318
3383
  writeJobFile(jobFilePath, job);
3319
3384
  } else {
@@ -3436,7 +3501,7 @@ function launchFor(config, job, jobDir, deps) {
3436
3501
  if (job.microvm !== void 0) {
3437
3502
  const runtime = deps.runtime ?? createContainerRuntime();
3438
3503
  const cli = deps.cliPath ?? join(runtime.cliBuild().distDir, "index.js");
3439
- return { ...microVmSenderCommand({ job, runtime, config, cli }), cwd: jobDir };
3504
+ return { ...microVmSenderCommand({ job, jobDir, runtime, config, cli }), cwd: jobDir };
3440
3505
  }
3441
3506
  if (job.container !== void 0) {
3442
3507
  return { ...containerSenderCommand({ job, runtime: deps.runtime ?? createContainerRuntime(), config }), cwd: jobDir };
@@ -2,11 +2,11 @@
2
2
  import { createRequire } from 'node:module';
3
3
  import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
4
4
  import { detectActiveSession, transcriptPathForSession } from './chunk-IP7BIBXJ.js';
5
- import { autoConnect } from './chunk-AVPLEFQR.js';
5
+ import { autoConnect } from './chunk-IO2BBKG4.js';
6
6
  import { C } from './chunk-ANPNT6PM.js';
7
- import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-3N77LUQI.js';
7
+ import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-7QAJQDHS.js';
8
8
  import { readLatestProvenanceForSession } from './chunk-ZJSNLVCE.js';
9
- import { resolveRepoIdentity, defaultProjectsDir, findTranscripts, sessionIdFromPath, scrubText } from './chunk-AJYZNISW.js';
9
+ import { resolveRepoIdentity, defaultProjectsDir, findTranscripts, sessionIdFromPath, scrubText } from './chunk-Z7WMU3RA.js';
10
10
  import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
11
11
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
12
12
  import { cliInvocation } from './chunk-CRB3POP4.js';
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { removeRetiredSkills } from './chunk-JWNH4ZTF.js';
4
- import { defaultFetch, resolveGatewayCredentials } from './chunk-3N77LUQI.js';
4
+ import { defaultFetch, resolveGatewayCredentials } from './chunk-7QAJQDHS.js';
5
5
  import { appendContextProvenance } from './chunk-ZJSNLVCE.js';
6
6
  import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-ZQSANKS4.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-FGXT5OXS.js';
10
10
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
11
- import { withTokenHeader } from './chunk-G4W4B33M.js';
11
+ import { withTokenHeader } from './chunk-SDAEXUIX.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';
@@ -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-G4W4B33M.js';
3
+ import { RELAY_PORT, GATEWAY_SOCKET, GATEWAY_PORT, CLAUDE_SOCKET, CLAUDE_PORT, DESTINATION_BASE_PORT } from './chunk-SDAEXUIX.js';
4
4
  import { symlinkSync, unlinkSync } from 'fs';
5
5
  import { join } from 'path';
6
6
 
@@ -5,7 +5,7 @@ import { addStdioMcpEntryIfAbsent, addDocsMcpEntryIfAbsent, DOCS_MCP_SERVER_NAME
5
5
  import { installStarterPack } from './chunk-4P6QGMPN.js';
6
6
  import { C } from './chunk-ANPNT6PM.js';
7
7
  import { AGENTS_MD_LAYOUT, declareAgentsMdLayout, linkClaudeSkills, SKILLS_LINK_PATH, describeSkillsLink, isAgentsMdLayout, holdsTodaysLayoutSources, discoverOuterlayerPaths } from './chunk-NKOM4JKY.js';
8
- import { resolveGitCommonDir, defaultGitRunner } from './chunk-CAQCDYKF.js';
8
+ import { resolveGitCommonDir, defaultGitRunner } from './chunk-5JGPTYLT.js';
9
9
  import { loadTemplateFiles, loadMaintainedFiles, skillDir, AGENTS_SKILLS_BASE } from './chunk-ZQSANKS4.js';
10
10
  import { cliInvocation } from './chunk-CRB3POP4.js';
11
11
  import { linkedAgentsPath } from './chunk-DQ6YO7FH.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-MOI2KDLH.js';
4
+ import { signRunnerRequest, signerFor } from './chunk-L5VHGRQE.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,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { RELAY_PORT, BUILD_HOME } from './chunk-G4W4B33M.js';
3
+ import { RELAY_PORT, BUILD_HOME } from './chunk-SDAEXUIX.js';
4
4
  import { createServer, connect } from 'net';
5
5
 
6
6
  createRequire(import.meta.url);