@outerlayer/cli 0.34.0-next.20261026230708 → 0.34.0-next.20261027013606

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 (51) hide show
  1. package/README.md +4 -3
  2. package/dist/{build-M4UYZAFH.js → build-YSOVDTAN.js} +4 -3
  3. package/dist/{build-disk-ZDVSSHO2.js → build-disk-RZ7AZKTY.js} +3 -3
  4. package/dist/build-info.json +1 -1
  5. package/dist/{builder-IORYS76D.js → builder-MQIL24HI.js} +2 -2
  6. package/dist/{check-V66LZDNK.js → check-JD3GVQFP.js} +15 -14
  7. package/dist/chunk-7GY3DVIL.js +255 -0
  8. package/dist/{chunk-MIRCFK4X.js → chunk-7PCA37ZS.js} +1 -1
  9. package/dist/{chunk-TLIZ7FY4.js → chunk-7QF2EXAN.js} +2 -2
  10. package/dist/{chunk-XDJ376OP.js → chunk-7X2G463B.js} +5 -169
  11. package/dist/{chunk-DFBY6LX3.js → chunk-AHAYHJNN.js} +10 -7
  12. package/dist/{chunk-6NXBXWOP.js → chunk-BLSEHKZ4.js} +1 -1
  13. package/dist/{chunk-Q3L5AC75.js → chunk-DEJCZ43H.js} +3 -3
  14. package/dist/{chunk-F5H3LVHR.js → chunk-DM4EEV73.js} +2 -2
  15. package/dist/{chunk-IZVDQXTC.js → chunk-EP3WBNMC.js} +9 -9
  16. package/dist/{chunk-JZLMFYFM.js → chunk-FQGC22IP.js} +1 -1
  17. package/dist/{chunk-TGBST2QL.js → chunk-FQOUIYBL.js} +6 -6
  18. package/dist/{chunk-T7HUNNJ2.js → chunk-GK6OYFMU.js} +3 -3
  19. package/dist/{chunk-KOZ6IBEI.js → chunk-GR7ZVGNI.js} +1 -1
  20. package/dist/{chunk-PN7RMFPP.js → chunk-JM3YQ4LC.js} +2 -2
  21. package/dist/{chunk-T6HSNQAT.js → chunk-MPNASRYB.js} +4 -4
  22. package/dist/{chunk-63A6NUEZ.js → chunk-Q2KGDDUX.js} +1 -1
  23. package/dist/{chunk-4UPET3R7.js → chunk-QUOITPN7.js} +21 -2
  24. package/dist/{chunk-XLJXO4QC.js → chunk-VUJURIPJ.js} +5 -5
  25. package/dist/{cli-HQWQEHXJ.js → cli-3BAUWQCS.js} +45 -45
  26. package/dist/{command-TONUMZ2A.js → command-UVGNJILP.js} +9 -8
  27. package/dist/{config-4K6OG2SZ.js → config-NGCQD6SN.js} +4 -4
  28. package/dist/{container-start-R74IO7CI.js → container-start-YBENDAOQ.js} +12 -11
  29. package/dist/{demo-record-cmd-7HJ5C7KM.js → demo-record-cmd-C2C4P2EQ.js} +10 -1
  30. package/dist/{demo-voice-cmd-MBK3BGHZ.js → demo-voice-cmd-RWTRJUAX.js} +2 -2
  31. package/dist/{docker-XWQM4F7B.js → docker-TRGA5QRL.js} +2 -2
  32. package/dist/{doctor-SF4GAWAO.js → doctor-QENPDYBD.js} +10 -9
  33. package/dist/{emit-demo-cmd-6VTA5BSJ.js → emit-demo-cmd-QMRDQGB6.js} +2 -2
  34. package/dist/{find-unit-I4GWKY4T.js → find-unit-IOCVYPNW.js} +6 -6
  35. package/dist/{host-checks-FKLQST3J.js → host-checks-UNEQTQ6L.js} +10 -9
  36. package/dist/index.js +1 -1
  37. package/dist/{init-TDLUTI6F.js → init-6UEOOD2J.js} +9 -8
  38. package/dist/{init-3MO5WCU3.js → init-JR62PVKC.js} +9 -8
  39. package/dist/{init-cmd-MQ5R35O2.js → init-cmd-34YWWGQZ.js} +1 -1
  40. package/dist/{loop-NNNDBFAS.js → loop-WHK6EVUE.js} +14 -13
  41. package/dist/{machine-GCW2GGI2.js → machine-ZZOQ7LLV.js} +9 -8
  42. package/dist/{runner-env-LVVLUHY2.js → runner-env-DH7YA4BU.js} +6 -6
  43. package/dist/{runner-identity-73F2IWBT.js → runner-identity-GLL56XY7.js} +2 -2
  44. package/dist/{runner-key-ASPZ7TQH.js → runner-key-4ASVLQGM.js} +9 -8
  45. package/dist/{status-35Z3TW42.js → status-7YP2C2QK.js} +10 -9
  46. package/dist/{update-steps-ZTNIK7LA.js → update-steps-J54P3SBL.js} +11 -10
  47. package/dist/{work-claim-cmd-QPYCZUMI.js → work-claim-cmd-JF5GGDFZ.js} +4 -4
  48. package/dist/{work-proofs-cmd-56EY7O45.js → work-proofs-cmd-DTFQ3FSB.js} +1 -1
  49. package/dist/{work-proofs-record-SPGI47OS.js → work-proofs-record-XG544MGV.js} +3 -3
  50. package/package.json +1 -1
  51. package/skill-pack/maintained/outerlayer-build/references/agent-briefs.md +8 -4
@@ -1,18 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { sha256OfFile, downloadPinned, VoiceDownloadError } from './chunk-2PGI6RDE.js';
4
- import { readDefaultBranchHead, cloneRepository, buildRepositoryImage, prepareImageBuild, KEY_PREFIX, FETCHED_DIR, toolsDockerfile, TAG_HOST, metadataFromLabels, writeRecord, FETCHED_FFMPEG, FETCHED_GH, FETCHED_TINI, FETCHED_VOICE_DIR } from './chunk-XDJ376OP.js';
4
+ import { readDefaultBranchHead, cloneRepository, buildRepositoryImage, prepareImageBuild, KEY_PREFIX, TAG_HOST, metadataFromLabels, writeRecord } from './chunk-7X2G463B.js';
5
+ import { FETCHED_DIR, toolsDockerfile, FETCHED_FFMPEG, FETCHED_GH, FETCHED_TINI, FETCHED_HEADLESS_SHELL, FETCHED_PLAYWRIGHT_FFMPEG, FETCHED_VOICE_DIR } from './chunk-7GY3DVIL.js';
5
6
  import { currentCliBuild } from './chunk-OGFGZQA3.js';
6
7
  import { runExec, execCapture, waitForAgent } from './chunk-3VZTNXK5.js';
7
8
  import { GUEST_CID, linkVsockSockets } from './chunk-6KFJIU73.js';
8
9
  import { retrySend, describeCallFailure, keepStagedContext, controlPlaneTokenFailure, refusalCode, resolveGoverningSource, prefetchGovernedContext, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, shimScript, WORKFLOW_PERMISSION_REASON } from './chunk-77VBS2RT.js';
9
10
  import { runnerImageVersion } from './chunk-SDELQEG4.js';
10
- import { hasStoredCredential, AGENT_COMMANDS, storeClaudeCredential, credentialFromStdin, isAgentName } from './chunk-63A6NUEZ.js';
11
- import { runnerCredentialProblem, builtinKind, allowHostProblem, hostAllowed } from './chunk-Q3L5AC75.js';
12
- import { formatBytes, allocatedBytes } from './chunk-6NXBXWOP.js';
13
- import { createDockerHost, builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, containerRunArgs, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, containerExecArgs, childEnvironment, readDu, JUDGE_DIR, MAX_ITEMS_BYTES, JUDGE_ITEMS, MAX_REPORT_BYTES, JUDGE_REPORT, spawnRun } from './chunk-KOZ6IBEI.js';
14
- import { firecrackerArch, MICROVM_ARCHES, FIRECRACKER_VERSION, hostHelperPinned, CLAUDE_CODE_VERSION, builderDiskPinned, guestAssetsPinned, GUEST_HELPER_SHA256, GUEST_ASSETS_BASE_URL, GUEST_KERNEL_SHA256, JAILER_BINARY_SHA256, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256, GUEST_ASSETS_VERSION, BUILDER_DISK_VERSION, FFMPEG_STATIC, FFMPEG_BUILD_TAG, GH_SHA256, GH_VERSION, TINI_SHA256, TINI_VERSION, VOICE_PACK_FILES, BUILDER_DISK_SHA256, BUILDER_DISK_BASE_URL, DEFAULT_BASE_IMAGE } from './chunk-4UPET3R7.js';
11
+ import { hasStoredCredential, AGENT_COMMANDS, storeClaudeCredential, credentialFromStdin, isAgentName } from './chunk-Q2KGDDUX.js';
12
+ import { runnerCredentialProblem, builtinKind, allowHostProblem, hostAllowed } from './chunk-DEJCZ43H.js';
13
+ import { formatBytes, allocatedBytes } from './chunk-BLSEHKZ4.js';
14
+ import { createDockerHost, builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, containerRunArgs, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, containerExecArgs, childEnvironment, readDu, JUDGE_DIR, MAX_ITEMS_BYTES, JUDGE_ITEMS, MAX_REPORT_BYTES, JUDGE_REPORT, spawnRun } from './chunk-GR7ZVGNI.js';
15
15
  import { RecipeError, DOCKER_FEATURE, writeSanitizedRecipe, classifyProperties } from './chunk-HDLON3RJ.js';
16
+ import { firecrackerArch, MICROVM_ARCHES, FIRECRACKER_VERSION, hostHelperPinned, CLAUDE_CODE_VERSION, builderDiskPinned, guestAssetsPinned, GUEST_HELPER_SHA256, GUEST_ASSETS_BASE_URL, GUEST_KERNEL_SHA256, JAILER_BINARY_SHA256, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256, GUEST_ASSETS_VERSION, BUILDER_DISK_VERSION, FFMPEG_STATIC, FFMPEG_BUILD_TAG, GH_SHA256, GH_VERSION, TINI_SHA256, TINI_VERSION, HEADLESS_SHELL, HEADLESS_SHELL_BASE_URL, PLAYWRIGHT_FFMPEG, PLAYWRIGHT_FFMPEG_BASE_URL, VOICE_PACK_FILES, BUILDER_DISK_SHA256, BUILDER_DISK_BASE_URL, DEFAULT_BASE_IMAGE } from './chunk-QUOITPN7.js';
16
17
  import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
17
18
  import { postJson, WorkCommandError, getJson } from './chunk-QABXXQ67.js';
18
19
  import { sanitizeTerminal } from './chunk-IXPH4EXK.js';
@@ -539,7 +540,9 @@ function toolFilePins(arch) {
539
540
  ...VOICE_PACK_FILES.map((file) => ({ path: `${FETCHED_VOICE_DIR}/${file.name}`, url: file.url, sha256: file.sha256 })),
540
541
  { path: FETCHED_FFMPEG, url: `https://github.com/BtbN/FFmpeg-Builds/releases/download/${FFMPEG_BUILD_TAG}/${FFMPEG_STATIC[arch].file}`, sha256: FFMPEG_STATIC[arch].sha256 },
541
542
  { path: FETCHED_GH, url: `https://github.com/cli/cli/releases/download/v${GH_VERSION}/gh_${GH_VERSION}_linux_${arch}.tar.gz`, sha256: GH_SHA256[arch] },
542
- { path: FETCHED_TINI, url: `https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-static-${arch}`, sha256: TINI_SHA256[arch] }
543
+ { path: FETCHED_TINI, url: `https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-static-${arch}`, sha256: TINI_SHA256[arch] },
544
+ { path: FETCHED_HEADLESS_SHELL, url: `${HEADLESS_SHELL_BASE_URL}/${HEADLESS_SHELL[arch].file}`, sha256: HEADLESS_SHELL[arch].sha256 },
545
+ { path: FETCHED_PLAYWRIGHT_FFMPEG, url: `${PLAYWRIGHT_FFMPEG_BASE_URL}/${PLAYWRIGHT_FFMPEG[arch].file}`, sha256: PLAYWRIGHT_FFMPEG[arch].sha256 }
543
546
  ];
544
547
  }
545
548
  function pinsDir(runnerDir2, pins) {
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { parseSize, BUILD_LABEL, RUNNER_LABEL, runnerLabelValue } from './chunk-KOZ6IBEI.js';
3
+ import { parseSize, BUILD_LABEL, RUNNER_LABEL, runnerLabelValue } from './chunk-GR7ZVGNI.js';
4
4
  import { buildsDir, rootfsDir, runnerDir, imagesDir, builderCacheDiskPath } from './chunk-GJ4KBHBD.js';
5
5
  import { spawnSync } from 'child_process';
6
6
  import { statfsSync, statSync, existsSync, readdirSync } from 'fs';
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { DEFAULT_CACHE_DISK, DEFAULT_BUILD_DISK } from './chunk-6NXBXWOP.js';
4
- import { parseSize } from './chunk-KOZ6IBEI.js';
5
- import { builderDiskPinned } from './chunk-4UPET3R7.js';
3
+ import { DEFAULT_CACHE_DISK, DEFAULT_BUILD_DISK } from './chunk-BLSEHKZ4.js';
4
+ import { parseSize } from './chunk-GR7ZVGNI.js';
5
+ import { builderDiskPinned } from './chunk-QUOITPN7.js';
6
6
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
7
7
  import { isRefusedInConfig, resolveDestinations, isReservedVariable } from './chunk-SDAEXUIX.js';
8
8
  import { existsSync, statSync, accessSync, constants, readFileSync } from 'fs';
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { scrubReason, stripTerminalControls } from './chunk-TGBST2QL.js';
4
- import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-TLIZ7FY4.js';
3
+ import { scrubReason, stripTerminalControls } from './chunk-FQOUIYBL.js';
4
+ import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-7QF2EXAN.js';
5
5
  import { RunnerAlreadyRunningError, readPidFile } from './chunk-LQHCNXPK.js';
6
6
  import { isSameProcess } from './chunk-JBJTC3UU.js';
7
7
  import { isSignatureRefusal, postJson } from './chunk-QABXXQ67.js';
@@ -1,24 +1,24 @@
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-F5H3LVHR.js';
4
+ import { reportFailedStart, fitImageBuildMemory } from './chunk-DM4EEV73.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
7
  import { writePendingUpdate } from './chunk-HOUFCUMH.js';
8
- import { renderUpdateSteps } from './chunk-PN7RMFPP.js';
8
+ import { renderUpdateSteps } from './chunk-JM3YQ4LC.js';
9
9
  import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-TS3EFB7S.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-TGBST2QL.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-FQOUIYBL.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-XLJXO4QC.js';
12
+ import { realBlockedProbes, checkBlockedWithSlots, largeBuildMemoryBytes, LARGE_BUILD_DISK_BYTES, checkManagedRoom, sliceMemoryOf } from './chunk-VUJURIPJ.js';
13
13
  import { writeMarker, readMarker, currentVersion, removeMarker, isInLayout, startedThroughCurrent, entryIn, versionDir, switchCurrent, cleanVersions, stagingDir } from './chunk-YL3RWW7X.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-DFBY6LX3.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-AHAYHJNN.js';
16
16
  import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, resolveGoverningSource, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-77VBS2RT.js';
17
17
  import { imageTag, writeUpdateStatus, pullInstruction, tagToPull } from './chunk-SDELQEG4.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-Q3L5AC75.js';
20
- import { freeBytes, formatBytes, allocatedBytes, volumeBytes } from './chunk-6NXBXWOP.js';
21
- import { writeJobFile, ensureRunnerIdentity, identityDockerFor, readJobFile, exceedsDisk, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, RUNNER_LABEL, BUILD_LABEL, readJobFileChecked } from './chunk-KOZ6IBEI.js';
19
+ import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind, keepsHostBuilder, DEFAULT_UPDATE_MAX_WAIT_HOURS } from './chunk-DEJCZ43H.js';
20
+ import { freeBytes, formatBytes, allocatedBytes, volumeBytes } from './chunk-BLSEHKZ4.js';
21
+ import { writeJobFile, ensureRunnerIdentity, identityDockerFor, readJobFile, exceedsDisk, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, RUNNER_LABEL, BUILD_LABEL, readJobFileChecked } from './chunk-GR7ZVGNI.js';
22
22
  import { claimPidFile, writePidFile, readPidFile, releasePidFile } from './chunk-LQHCNXPK.js';
23
23
  import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
24
24
  import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-QABXXQ67.js';
@@ -3279,7 +3279,7 @@ async function startRunner(configPath, deps, startup) {
3279
3279
  check: update.check ? () => update.check(configPath) : async () => {
3280
3280
  const held = heldClaudeCredential();
3281
3281
  const env = held === void 0 ? process.env : { ...process.env, [held.variable]: held.value };
3282
- return (await import('./check-V66LZDNK.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
3282
+ return (await import('./check-JD3GVQFP.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
3283
3283
  },
3284
3284
  now: () => (deps.now ?? (() => /* @__PURE__ */ new Date()))().getTime(),
3285
3285
  log
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { escapeUnitPath, UNIT_MARKER, DEFAULT_UNIT_NAME } from './chunk-TLIZ7FY4.js';
3
+ import { escapeUnitPath, UNIT_MARKER, DEFAULT_UNIT_NAME } from './chunk-7QF2EXAN.js';
4
4
  import { inspectService, realInspectProbes } from './chunk-SDAEXUIX.js';
5
5
  import { realpathSync, readFileSync, readdirSync } from 'fs';
6
6
  import { resolve, dirname, join } from 'path';
@@ -8,15 +8,15 @@ import { senderPidfile } from './chunk-WBTPI5MP.js';
8
8
  import { installScrubContext } from './chunk-QRJIBTNQ.js';
9
9
  import { writeDockerClientConfig } from './chunk-CFFVCI2I.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-DFBY6LX3.js';
12
- import { fetchCommit, readBranchHead, diffBetween } from './chunk-XDJ376OP.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-AHAYHJNN.js';
12
+ import { fetchCommit, readBranchHead, diffBetween } from './chunk-7X2G463B.js';
13
13
  import { waitForAgent, vmExecArgs } from './chunk-3VZTNXK5.js';
14
14
  import { socketPathProblem, vsockLinks, LEASE_LINK, linkVsockSockets } from './chunk-6KFJIU73.js';
15
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-Q3L5AC75.js';
17
- import { formatBytes, DEFAULT_CACHE_DISK, allocatedBytes } from './chunk-6NXBXWOP.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-KOZ6IBEI.js';
19
- import { CLAUDE_CODE_VERSION, FIRECRACKER_VERSION } from './chunk-4UPET3R7.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';
19
+ import { CLAUDE_CODE_VERSION, FIRECRACKER_VERSION } from './chunk-QUOITPN7.js';
20
20
  import { isSameProcess, startTimeOf } from './chunk-JBJTC3UU.js';
21
21
  import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-QABXXQ67.js';
22
22
  import { planArtifactUpload } from './chunk-IXPH4EXK.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-FKLQST3J.js');
170
+ const { testProofIn } = await import('./host-checks-UNEQTQ6L.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-FKLQST3J.js');
177
+ const { checksIn, isJudgeCheck } = await import('./host-checks-UNEQTQ6L.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-SPGI47OS.js');
317
+ const { runWorkProofsRecord } = await import('./work-proofs-record-XG544MGV.js');
318
318
  const result2 = await runWorkProofsRecord(opts);
319
319
  process.exitCode = result2.exitCode;
320
320
  return;
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { BUILDKIT_IMAGE } from './chunk-4UPET3R7.js';
4
3
  import { resolveDevcontainerCli, devcontainerBuildInvocation, RecipeError } from './chunk-HDLON3RJ.js';
4
+ import { BUILDKIT_IMAGE } from './chunk-QUOITPN7.js';
5
5
  import { ensureHostKey } from './chunk-L5VHGRQE.js';
6
6
  import { compareVersions } from './chunk-OOD5NDQA.js';
7
7
  import { RUNNER_DIR_MODE, RUNNER_FILE_MODE, runnerDir, jobsDir } from './chunk-GJ4KBHBD.js';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { stripTerminalControls } from './chunk-TGBST2QL.js';
3
+ import { stripTerminalControls } from './chunk-FQOUIYBL.js';
4
4
  import { tagToPull, imageTag, pullInstruction, readUpdateStatus, runnerImageVersion } from './chunk-SDELQEG4.js';
5
5
  import { readFileSync } from 'fs';
6
6
 
@@ -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-XWQM4F7B.js')).spawnRun;
58
+ const run = deps.run ?? (await import('./docker-TRGA5QRL.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 = "";
@@ -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-ZDVSSHO2.js');
1199
- const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-4K6OG2SZ.js');
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');
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-SF4GAWAO.js');
1220
+ const { runnerHostChecks } = await import('./doctor-QENPDYBD.js');
1221
1221
  const gateway = (() => {
1222
1222
  try {
1223
1223
  const { url, apiKey, appId } = loadRunnerConfig(configPath);
@@ -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-I4GWKY4T.js');
1247
+ const { inspectRunnerService } = await import('./find-unit-IOCVYPNW.js');
1248
1248
  return inspectRunnerService(configPath);
1249
1249
  })();
1250
1250
  checks.push(...await runnerHostChecks({ configPath, hooks, gateway, repos, runner, service }));
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { DEFAULT_UNIT_NAME } from './chunk-TLIZ7FY4.js';
3
+ import { DEFAULT_UNIT_NAME } from './chunk-7QF2EXAN.js';
4
4
  import { RUNNER_FILE_MODE } from './chunk-GJ4KBHBD.js';
5
5
  import { claudeEnvPath, withoutCredentialLines, parseRunnerEnv } from './chunk-SDAEXUIX.js';
6
6
  import { existsSync, readFileSync, writeFileSync, renameSync, rmSync } from 'fs';
@@ -106,7 +106,26 @@ var FFMPEG_STATIC = {
106
106
  sha256: "8463881ca7a25015ca6e00f5c91dd2f1637eb73d33c8230413cb74db760a86b3"
107
107
  }
108
108
  };
109
- var MEDIA_PINS = `${VOICE_PACK_VERSION}+${FFMPEG_BUILD_TAG}`;
110
109
  var PLAYWRIGHT_VERSION = "1.64.1";
110
+ var HEADLESS_SHELL_VERSION = "156.0.8078.4";
111
+ var HEADLESS_SHELL_REVISION = "1248";
112
+ var HEADLESS_SHELL_BASE_URL = `https://cdn.playwright.dev/builds/cft/${HEADLESS_SHELL_VERSION}`;
113
+ var HEADLESS_SHELL = {
114
+ amd64: {
115
+ file: "linux64/chrome-headless-shell-linux64.zip",
116
+ sha256: "c3e50596aef52c58f8fda3c6b3411c33d34c88b177b3ed1c2243359fd3b8ba20"
117
+ },
118
+ arm64: {
119
+ file: "linux-arm64/chrome-headless-shell-linux-arm64.zip",
120
+ sha256: "81ab9d4d3c301dc5fdfb6c541b9e6632b16fc819a6a854460f40a76fe2b2c476"
121
+ }
122
+ };
123
+ var PLAYWRIGHT_FFMPEG_REVISION = "1013";
124
+ var PLAYWRIGHT_FFMPEG_BASE_URL = `https://cdn.playwright.dev/dbazure/download/playwright/builds/ffmpeg/${PLAYWRIGHT_FFMPEG_REVISION}`;
125
+ var PLAYWRIGHT_FFMPEG = {
126
+ amd64: { file: "ffmpeg-linux.zip", sha256: "ee986434d158f74fb5d9c5ff1092026ceedb63f324fe90b5be89460926b7b679" },
127
+ arm64: { file: "ffmpeg-linux-arm64.zip", sha256: "457360e803a7d8d5f8f7f5ecf562b2d338f6b4f7f86339d0c31938a451e8878b" }
128
+ };
129
+ var MEDIA_PINS = `${VOICE_PACK_VERSION}+${FFMPEG_BUILD_TAG}+${HEADLESS_SHELL_VERSION}+${PLAYWRIGHT_FFMPEG_REVISION}`;
111
130
 
112
- export { BUILDER_DISK_BASE_URL, BUILDER_DISK_SHA256, BUILDER_DISK_VERSION, BUILDKIT_IMAGE, CLAUDE_CODE_VERSION, DEFAULT_BASE_IMAGE, FFMPEG_BUILD_TAG, FFMPEG_STATIC, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256, FIRECRACKER_VERSION, GH_SHA256, GH_VERSION, GUEST_ASSETS_BASE_URL, GUEST_ASSETS_VERSION, GUEST_HELPER_SHA256, GUEST_KERNEL_SHA256, HOST_HELPER_ASSETS_VERSION, HOST_HELPER_BASE_URL, HOST_HELPER_SHA256, HOST_HELPER_SLICE_SINCE, JAILER_BINARY_SHA256, MEDIA_PINS, MICROVM_ARCHES, NODE_IMAGE, PLAYWRIGHT_VERSION, TINI_SHA256, TINI_VERSION, VOICE_PACK_FILES, VOICE_PACK_VERSION, builderDiskPinned, firecrackerArch, guestAssetsPinned, hostHelperPinned, hostHelperSupportsSlice };
131
+ export { BUILDER_DISK_BASE_URL, BUILDER_DISK_SHA256, BUILDER_DISK_VERSION, BUILDKIT_IMAGE, CLAUDE_CODE_VERSION, DEFAULT_BASE_IMAGE, FFMPEG_BUILD_TAG, FFMPEG_STATIC, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256, FIRECRACKER_VERSION, GH_SHA256, GH_VERSION, GUEST_ASSETS_BASE_URL, GUEST_ASSETS_VERSION, GUEST_HELPER_SHA256, GUEST_KERNEL_SHA256, HEADLESS_SHELL, HEADLESS_SHELL_BASE_URL, HEADLESS_SHELL_REVISION, HOST_HELPER_ASSETS_VERSION, HOST_HELPER_BASE_URL, HOST_HELPER_SHA256, HOST_HELPER_SLICE_SINCE, JAILER_BINARY_SHA256, MEDIA_PINS, MICROVM_ARCHES, NODE_IMAGE, PLAYWRIGHT_FFMPEG, PLAYWRIGHT_FFMPEG_BASE_URL, PLAYWRIGHT_FFMPEG_REVISION, PLAYWRIGHT_VERSION, TINI_SHA256, TINI_VERSION, VOICE_PACK_FILES, VOICE_PACK_VERSION, builderDiskPinned, firecrackerArch, guestAssetsPinned, hostHelperPinned, hostHelperSupportsSlice };
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { placeholderQueues, placeholderProblem } from './chunk-DFBY6LX3.js';
4
- import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-TLIZ7FY4.js';
5
- import { builtinKind, imageBuildOf, keepsHostBuilder } from './chunk-Q3L5AC75.js';
6
- import { realBuildDiskProbe, checkDiskFit, DEFAULT_CACHE_DISK, DEFAULT_BUILD_DISK } from './chunk-6NXBXWOP.js';
7
- import { builderDiskPinned } from './chunk-4UPET3R7.js';
3
+ import { placeholderQueues, placeholderProblem } from './chunk-AHAYHJNN.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';
7
+ import { builderDiskPinned } from './chunk-QUOITPN7.js';
8
8
  import { BUILD_SLICE_MEMORY_ENV, FORWARDED_CLAUDE_CREDENTIAL_VARIABLES, claudeCredentialVariablesSet, claudeCredential, claudeEnvPath, parseRunnerEnv } from './chunk-SDAEXUIX.js';
9
9
  import { closeSync, openSync, constants, readFileSync } from 'fs';
10
10
  import { join, dirname } from 'path';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { gatherDoctorChecks, doctorExitCode, summarizeChecks, renderDoctorText, recordWrapped, recordUnwrapped, recordRemoval, readManifest, recordInstall, recordStatusline } from './chunk-T6HSNQAT.js';
3
+ import { gatherDoctorChecks, doctorExitCode, summarizeChecks, renderDoctorText, recordWrapped, recordUnwrapped, recordRemoval, readManifest, recordInstall, recordStatusline } from './chunk-MPNASRYB.js';
4
4
  import './chunk-TZMDRHWB.js';
5
5
  import './chunk-KT4CN6OU.js';
6
6
  import './chunk-J7EJMIDR.js';
@@ -3926,13 +3926,13 @@ what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocat
3926
3926
  if (changed.length > 0 && !opts.json) process.stdout.write(`Removed the claude function from ${changed.join(", ")}.
3927
3927
  `);
3928
3928
  }
3929
- const shell = !opts.remove && opts.shellFunction !== void 0 ? (await import('./init-cmd-MQ5R35O2.js')).applyShellFunctionFlag(opts.shellFunction, { home: homeFromEnv(), shellPath: process.env.SHELL }) : void 0;
3929
+ const shell = !opts.remove && opts.shellFunction !== void 0 ? (await import('./init-cmd-34YWWGQZ.js')).applyShellFunctionFlag(opts.shellFunction, { home: homeFromEnv(), shellPath: process.env.SHELL }) : void 0;
3930
3930
  if (opts.json) writeJson(shell === void 0 ? outcome.result : { ...outcome.result, shellFunction: { outcome: shell.outcome, reason: shell.reason } });
3931
3931
  else process.stdout.write(outcome.text + skillsLine + (shell?.text ?? ""));
3932
3932
  return;
3933
3933
  }
3934
3934
  await installMachineSkillsForSetup();
3935
- const { runInitCommand } = await import('./init-cmd-MQ5R35O2.js');
3935
+ const { runInitCommand } = await import('./init-cmd-34YWWGQZ.js');
3936
3936
  const code = await runInitCommand(
3937
3937
  { json: opts.json, factory: opts.factory, shellFunction: opts.shellFunction },
3938
3938
  {
@@ -4394,7 +4394,7 @@ its criterion, and the new record retires the old record. The id must be the ite
4394
4394
  as \`work demo --item <n> --json\` prints it.
4395
4395
  `
4396
4396
  ).action(async (manifest, opts) => {
4397
- const { runEmitDemo, EmitDemoError } = await import('./emit-demo-cmd-6VTA5BSJ.js');
4397
+ const { runEmitDemo, EmitDemoError } = await import('./emit-demo-cmd-QMRDQGB6.js');
4398
4398
  let item;
4399
4399
  if (opts.item !== void 0) {
4400
4400
  item = parseTrackerNumber(opts.item);
@@ -4437,7 +4437,7 @@ as \`work demo --item <n> --json\` prints it.
4437
4437
  }
4438
4438
  });
4439
4439
  program2.command("demo-voice", { hidden: true }).description("Speak demo lines for a recorder: JSON lines in on stdin, out on stdout").action(async () => {
4440
- const { runDemoVoice } = await import('./demo-voice-cmd-MBK3BGHZ.js');
4440
+ const { runDemoVoice } = await import('./demo-voice-cmd-RWTRJUAX.js');
4441
4441
  await runDemoVoice();
4442
4442
  });
4443
4443
  const demoCmd = program2.command("demo").description("Record demos with the recorder this CLI carries");
@@ -4455,7 +4455,7 @@ and the command prints the manifest's path for \`emit demo\`. Under \`work proof
4455
4455
  to OUTERLAYER_PROOF_OUT instead. Exit 1 means the demo's test failed; its manifest is written all the same.
4456
4456
  `
4457
4457
  ).action(async (file, opts) => {
4458
- const { runDemoRecord, DemoRecordError } = await import('./demo-record-cmd-7HJ5C7KM.js');
4458
+ const { runDemoRecord, DemoRecordError } = await import('./demo-record-cmd-C2C4P2EQ.js');
4459
4459
  try {
4460
4460
  const result = await runDemoRecord({
4461
4461
  file,
@@ -4999,7 +4999,7 @@ differs from HEAD.
4999
4999
  fail(trackerNumberError("--pr", opts.pr));
5000
5000
  return;
5001
5001
  }
5002
- const { runWorkProofsCommand } = await import('./work-proofs-cmd-56EY7O45.js');
5002
+ const { runWorkProofsCommand } = await import('./work-proofs-cmd-DTFQ3FSB.js');
5003
5003
  await runWorkProofsCommand({ ...opts, ...pr === void 0 ? {} : { pr } });
5004
5004
  });
5005
5005
  workCmd.command("list").description("List live work items for this factory").option("--stage <spec|build|review>", "filter by stage").option("--section <attention|waiting|flowing>", "filter by Queue section").option("--repo <owner/name>", "repository (default: the current checkout's remote)").option("--unclaimed", "only items with no live lease").option("--claimed", "only items with a live lease, held by a host or a local session").option("--startable", "only items a host can start: a build request, no open PR, no live lease").option("--needs <amend>", "only items with a thread waiting on an agent").option("--json", "machine-readable JSON output").option("--url <url>", "cloud base URL (or OUTERLAYER_URL / config)").addOption(apiKeyOption()).option("--app-id <id>", "factory id the key is bound to (or OUTERLAYER_APP_ID / config)").action(async (opts) => {
@@ -5024,7 +5024,7 @@ by a different key is refused; claiming again with the same key extends
5024
5024
  it. --host is a label only.
5025
5025
  `
5026
5026
  ).action(async (opts) => {
5027
- const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-QPYCZUMI.js');
5027
+ const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-JF5GGDFZ.js');
5028
5028
  try {
5029
5029
  await runWorkClaim(opts);
5030
5030
  } catch (err) {
@@ -5044,7 +5044,7 @@ Extends the live lease this API key holds. Refused with a 410 if the
5044
5044
  lease has expired, or a 403 if a different key holds it.
5045
5045
  `
5046
5046
  ).action(async (opts) => {
5047
- const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-QPYCZUMI.js');
5047
+ const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-JF5GGDFZ.js');
5048
5048
  try {
5049
5049
  await runWorkRenew(opts);
5050
5050
  } catch (err) {
@@ -5076,7 +5076,7 @@ applies to a host's lease only. A later tool call in the session
5076
5076
  takes the lease again.
5077
5077
  `
5078
5078
  ).action(async (opts) => {
5079
- const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-QPYCZUMI.js');
5079
+ const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-JF5GGDFZ.js');
5080
5080
  try {
5081
5081
  await runWorkRelease(opts);
5082
5082
  } catch (err) {
@@ -5145,8 +5145,8 @@ function registerRunnerCommands(program2) {
5145
5145
  const runnerCmd = program2.command("runner").description("Take work from the implement and amend queues on this machine");
5146
5146
  const configOption = "the cloud config file to run against (default: ~/.outerlayer/config.json)";
5147
5147
  runnerCmd.command("start").description("Run the loop: claim work, run it, report, clean up, repeat").option("--config <path>", configOption).action(async (opts) => {
5148
- const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-4K6OG2SZ.js');
5149
- const { start, RunnerStartError } = await import('./loop-NNNDBFAS.js');
5148
+ const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-NGCQD6SN.js');
5149
+ const { start, RunnerStartError } = await import('./loop-WHK6EVUE.js');
5150
5150
  const { RunnerAlreadyRunningError } = await import('./pidfile-PCG2H5T4.js');
5151
5151
  const configPath = opts.config ?? defaultRunnerConfigPath();
5152
5152
  try {
@@ -5164,9 +5164,9 @@ function registerRunnerCommands(program2) {
5164
5164
  "after",
5165
5165
  "\nReads OUTERLAYER_URL, OUTERLAYER_APP_ID, OUTERLAYER_API_KEY, OUTERLAYER_RUNNER_NAME and one Claude credential\n(CLAUDE_CODE_OAUTH_TOKEN or ANTHROPIC_API_KEY) from the environment. OUTERLAYER_AGENT\nis optional and defaults to claude. On a later start it refuses variables that disagree with the config in the volume.\nThe image sets OUTERLAYER_RUNNER_IMAGE; outside the image, use `runner start`.\n"
5166
5166
  ).action(async () => {
5167
- const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-4K6OG2SZ.js');
5168
- const { containerStart } = await import('./container-start-R74IO7CI.js');
5169
- const { start, RunnerStartError } = await import('./loop-NNNDBFAS.js');
5167
+ const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-NGCQD6SN.js');
5168
+ const { containerStart } = await import('./container-start-YBENDAOQ.js');
5169
+ const { start, RunnerStartError } = await import('./loop-WHK6EVUE.js');
5170
5170
  const { RunnerAlreadyRunningError } = await import('./pidfile-PCG2H5T4.js');
5171
5171
  try {
5172
5172
  const result = await containerStart({
@@ -5188,16 +5188,16 @@ function registerRunnerCommands(program2) {
5188
5188
  "after",
5189
5189
  "\nIn the runner image, run it with `docker exec <container> outerlayer runner update-steps`. It reads the\ncontainer with `docker inspect` and changes nothing. The steps rename the old container and never remove it\nbefore the new one runs. They name the container's variables and never print a value.\n"
5190
5190
  ).action(async (opts) => {
5191
- const { defaultRunnerConfigPath } = await import('./config-4K6OG2SZ.js');
5191
+ const { defaultRunnerConfigPath } = await import('./config-NGCQD6SN.js');
5192
5192
  const { runnerDir } = await import('./paths-AQ47ZRHK.js');
5193
- const { runUpdateSteps } = await import('./update-steps-ZTNIK7LA.js');
5193
+ const { runUpdateSteps } = await import('./update-steps-J54P3SBL.js');
5194
5194
  const text = await runUpdateSteps({ runnerDirPath: runnerDir(opts.config ?? defaultRunnerConfigPath()) });
5195
5195
  process.stdout.write(`${text}
5196
5196
  `);
5197
5197
  });
5198
5198
  runnerCmd.command("check").description("Validate the config, the hooks and the key, and print the effective settings").option("--config <path>", configOption).action(async (opts) => {
5199
- const { defaultRunnerConfigPath } = await import('./config-4K6OG2SZ.js');
5200
- const { runRunnerCheck } = await import('./check-V66LZDNK.js');
5199
+ const { defaultRunnerConfigPath } = await import('./config-NGCQD6SN.js');
5200
+ const { runRunnerCheck } = await import('./check-JD3GVQFP.js');
5201
5201
  const configPath = opts.config ?? defaultRunnerConfigPath();
5202
5202
  const result = await runRunnerCheck(configPath);
5203
5203
  if (!result.ok) {
@@ -5218,7 +5218,7 @@ function registerRunnerCommands(program2) {
5218
5218
  `);
5219
5219
  });
5220
5220
  runnerCmd.command("install").description("Put this CLI in the runner's install layout; --service adds its service").option("--config <path>", configOption).option("--service", "set up the service that keeps the runner running").option("--print", "with --service, print the unit and set up nothing").option("--user <account>", "with --service, the account the service runs as").option("--replace", "replace a unit or launcher file this command did not write").option("--allow-downgrade", "install this CLI even when it is older than the version the runner runs").option("--unit-name <name>", "with --service, the unit's name, to run a second runner beside the first").option("--build-memory-max <size>", "with --service, memory all builds may use together, such as 16g").option("--build-cpus-max <n>", "with --service, CPUs all builds may use together, such as 4").action(async (opts) => {
5221
- const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-4K6OG2SZ.js');
5221
+ const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-NGCQD6SN.js');
5222
5222
  const { runRunnerInstall, RunnerInstallError, launcherSummary, restartNote } = await import('./install-cmd-RGO7NWKP.js');
5223
5223
  const configPath = opts.config ?? defaultRunnerConfigPath();
5224
5224
  if (opts.service !== true) {
@@ -5231,13 +5231,13 @@ function registerRunnerCommands(program2) {
5231
5231
  }
5232
5232
  }
5233
5233
  const buildCpusMax = opts.buildCpusMax === void 0 ? void 0 : Number(opts.buildCpusMax);
5234
- if (buildCpusMax !== void 0 && !(await import('./command-TONUMZ2A.js')).cpusAreValid(buildCpusMax)) {
5234
+ if (buildCpusMax !== void 0 && !(await import('./command-UVGNJILP.js')).cpusAreValid(buildCpusMax)) {
5235
5235
  fail(`--build-cpus-max ${opts.buildCpusMax} is not a number of CPUs from 0.01 to 1024.`);
5236
5236
  return;
5237
5237
  }
5238
5238
  try {
5239
5239
  if (opts.service === true) {
5240
- const { installServiceCommand } = await import('./command-TONUMZ2A.js');
5240
+ const { installServiceCommand } = await import('./command-UVGNJILP.js');
5241
5241
  const result2 = await installServiceCommand({
5242
5242
  configPath,
5243
5243
  print: opts.print,
@@ -5294,8 +5294,8 @@ To keep it running, run ${C.yellow}${cliInvocation()} runner install --service${
5294
5294
  fail(`pass --service: \`${cliInvocation()} runner uninstall --service\` removes the runner's service.`);
5295
5295
  return;
5296
5296
  }
5297
- const { defaultRunnerConfigPath } = await import('./config-4K6OG2SZ.js');
5298
- const { uninstallServiceCommand } = await import('./command-TONUMZ2A.js');
5297
+ const { defaultRunnerConfigPath } = await import('./config-NGCQD6SN.js');
5298
+ const { uninstallServiceCommand } = await import('./command-UVGNJILP.js');
5299
5299
  const result = await uninstallServiceCommand({ configPath: opts.config ?? defaultRunnerConfigPath(), unitName: opts.unitName, home: homeFromEnv() });
5300
5300
  if (result.ok) for (const line of result.lines) process.stdout.write(`${C.green}\u2713${C.reset} ${line}
5301
5301
  `);
@@ -5322,12 +5322,12 @@ already in claude.env is used.
5322
5322
  printf '%s' "$CLAUDE_CODE_OAUTH_TOKEN" | ${cliInvocation()} runner init --agent claude --factory <org>/<factory>
5323
5323
  `
5324
5324
  ).action(async (opts) => {
5325
- const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-4K6OG2SZ.js');
5326
- const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-3MO5WCU3.js');
5327
- const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-ASPZ7TQH.js');
5328
- const { detectMachine } = await import('./machine-GCW2GGI2.js');
5329
- const { chooseVm, runVmInit, VmInitError } = await import('./init-TDLUTI6F.js');
5330
- const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-LVVLUHY2.js');
5325
+ const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-NGCQD6SN.js');
5326
+ const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-JR62PVKC.js');
5327
+ const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-4ASVLQGM.js');
5328
+ const { detectMachine } = await import('./machine-ZZOQ7LLV.js');
5329
+ const { chooseVm, runVmInit, VmInitError } = await import('./init-6UEOOD2J.js');
5330
+ const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-DH7YA4BU.js');
5331
5331
  const configPath = opts.config ?? defaultRunnerConfigPath();
5332
5332
  if (opts.agent !== void 0 && !isAgentName(opts.agent)) {
5333
5333
  fail(`--agent ${opts.agent}: runner init writes commands for ${Object.keys(AGENT_COMMANDS).join(", ")}. For another agent, leave --agent out and edit runner.commands.`);
@@ -5477,7 +5477,7 @@ ${C.yellow}The runner will not update itself: ${installErr.message}${C.reset}
5477
5477
  let serviceUp = false;
5478
5478
  let restart;
5479
5479
  if (installedLayout) {
5480
- const { installServiceCommand } = await import('./command-TONUMZ2A.js');
5480
+ const { installServiceCommand } = await import('./command-UVGNJILP.js');
5481
5481
  const service = await installServiceCommand({
5482
5482
  configPath,
5483
5483
  entryPath: process.argv[1] ?? "",
@@ -5521,12 +5521,12 @@ Next:
5521
5521
  "after",
5522
5522
  "\nA repository governed by a control plane builds the control plane's image, at the commit\nthe gateway has stored for it. A repository that governs itself fetches the head of its\ndefault branch into the runner's cache. Either way it reads .devcontainer/devcontainer.json\nand builds the image with the devcontainer CLI. Settings\nthat reach the host or widen the container's privileges are ignored and listed. The\nimage holds this CLI and a pinned Claude Code. Nothing runs inside the image.\n"
5523
5523
  ).action(async (opts) => {
5524
- const { defaultRunnerConfigPath } = await import('./config-4K6OG2SZ.js');
5525
- const { buildRepositoryImage, RecipeError } = await import('./build-M4UYZAFH.js');
5524
+ const { defaultRunnerConfigPath } = await import('./config-NGCQD6SN.js');
5525
+ const { buildRepositoryImage, RecipeError } = await import('./build-YSOVDTAN.js');
5526
5526
  const { currentCliBuild } = await import('./cli-build-K56DK4DS.js');
5527
- const { createDockerHost } = await import('./docker-XWQM4F7B.js');
5528
- const { builderSpec } = await import('./builder-IORYS76D.js');
5529
- const { loadRunnerConfig } = await import('./config-4K6OG2SZ.js');
5527
+ const { createDockerHost } = await import('./docker-TRGA5QRL.js');
5528
+ const { builderSpec } = await import('./builder-MQIL24HI.js');
5529
+ const { loadRunnerConfig } = await import('./config-NGCQD6SN.js');
5530
5530
  const configPath = opts.config ?? defaultRunnerConfigPath();
5531
5531
  const loaded = (() => {
5532
5532
  try {
@@ -5537,7 +5537,7 @@ Next:
5537
5537
  })();
5538
5538
  const memory = loaded?.build?.memory ?? "8g";
5539
5539
  try {
5540
- const { ensureRunnerIdentity } = await import('./runner-identity-73F2IWBT.js');
5540
+ const { ensureRunnerIdentity } = await import('./runner-identity-GLL56XY7.js');
5541
5541
  await ensureRunnerIdentity(configPath, { log: (line) => console.error(line) }).catch((err) => {
5542
5542
  console.error(`the runner's Docker identity could not be stored: ${err instanceof Error ? err.message : String(err)}`);
5543
5543
  });
@@ -5604,17 +5604,17 @@ Next:
5604
5604
  }
5605
5605
  });
5606
5606
  runnerCmd.command("stop").description("Take no more work; finish running jobs, then exit").option("--config <path>", "the cloud config file naming the runner to stop").option("--now", "end running jobs immediately, with outcome stopped").action(async (opts) => {
5607
- const { defaultRunnerConfigPath } = await import('./config-4K6OG2SZ.js');
5608
- const { requestStop } = await import('./loop-NNNDBFAS.js');
5607
+ const { defaultRunnerConfigPath } = await import('./config-NGCQD6SN.js');
5608
+ const { requestStop } = await import('./loop-WHK6EVUE.js');
5609
5609
  const configPath = opts.config ?? defaultRunnerConfigPath();
5610
5610
  const { runnerImageVersion } = await import('./image-tag-BTXKIH73.js');
5611
5611
  await requestStop(configPath, Boolean(opts.now), void 0, { image: runnerImageVersion() !== void 0 });
5612
5612
  });
5613
5613
  runnerCmd.command("status").description("List running jobs; with --recent, finished ones too").option("--config <path>", "the cloud config file naming the runner to inspect").option("--recent", "also list finished jobs, newest first, capped at 20").option("--json", "machine-readable JSON output").action(async (opts) => {
5614
- const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-4K6OG2SZ.js');
5614
+ const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-NGCQD6SN.js');
5615
5615
  const { jobsDir, runnerDir } = await import('./paths-AQ47ZRHK.js');
5616
- const { listJobFiles, runnerProcessState } = await import('./loop-NNNDBFAS.js');
5617
- const { renderStatus } = await import('./status-35Z3TW42.js');
5616
+ const { listJobFiles, runnerProcessState } = await import('./loop-WHK6EVUE.js');
5617
+ const { renderStatus } = await import('./status-7YP2C2QK.js');
5618
5618
  const { readHousekeepingRecord } = await import('./record-SVCNFCGQ.js');
5619
5619
  const path2 = await import('path');
5620
5620
  const configPath = opts.config ?? defaultRunnerConfigPath();
@@ -5635,7 +5635,7 @@ Next:
5635
5635
  const processState = runnerProcessState(configPath);
5636
5636
  const service = await (async () => {
5637
5637
  if (process.platform !== "linux" || !existsSync("/run/systemd/system")) return void 0;
5638
- const { inspectRunnerService } = await import('./find-unit-I4GWKY4T.js');
5638
+ const { inspectRunnerService } = await import('./find-unit-IOCVYPNW.js');
5639
5639
  const facts = inspectRunnerService(configPath);
5640
5640
  return facts === void 0 ? void 0 : { unit: facts.unit, running: facts.mainPid !== void 0, delegated: facts.delegate };
5641
5641
  })();
@@ -5672,8 +5672,8 @@ Next:
5672
5672
  );
5673
5673
  });
5674
5674
  runnerCmd.command("logs").argument("<item>", "the work item's number in the factory").description("Print the newest attempt's log for one item").option("--config <path>", "the cloud config file naming the runner to inspect").option("-f, --follow", "keep printing as the log grows").action(async (itemArg, opts) => {
5675
- const { defaultRunnerConfigPath } = await import('./config-4K6OG2SZ.js');
5676
- const { listJobFiles } = await import('./loop-NNNDBFAS.js');
5675
+ const { defaultRunnerConfigPath } = await import('./config-NGCQD6SN.js');
5676
+ const { listJobFiles } = await import('./loop-WHK6EVUE.js');
5677
5677
  const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-LEVH6VAI.js');
5678
5678
  const configPath = opts.config ?? defaultRunnerConfigPath();
5679
5679
  const item = parseTrackerNumber(itemArg);
@@ -3,22 +3,23 @@ import { createRequire } from 'node:module';
3
3
  import { realOwnership, accountNamed, handOver, runRunnerInstall, launcherSummary, restartNote, accountIdentity } from './chunk-RR3VDM7M.js';
4
4
  import './chunk-MN3PP45X.js';
5
5
  import { currentLink, execStartCommand } from './chunk-YL3RWW7X.js';
6
- import { detectMachine, helperSocketPath, ensureFirecrackerAndJailer } from './chunk-DFBY6LX3.js';
6
+ import { detectMachine, helperSocketPath, ensureFirecrackerAndJailer } from './chunk-AHAYHJNN.js';
7
7
  import './chunk-2PGI6RDE.js';
8
- import './chunk-XDJ376OP.js';
8
+ import './chunk-7X2G463B.js';
9
+ import './chunk-7GY3DVIL.js';
9
10
  import './chunk-OGFGZQA3.js';
10
11
  import './chunk-3VZTNXK5.js';
11
12
  import './chunk-6KFJIU73.js';
12
13
  import './chunk-77VBS2RT.js';
13
14
  import './chunk-SDELQEG4.js';
14
15
  import './chunk-TQMI335S.js';
15
- import './chunk-63A6NUEZ.js';
16
- import { unitNameProblem, DEFAULT_UNIT_NAME, checkFit, installService, uninstallService, realTaskScheduler, UNIT_MARKER } from './chunk-TLIZ7FY4.js';
17
- import { runnerVmOf, loadRunnerConfig, builtinKind } from './chunk-Q3L5AC75.js';
18
- import './chunk-6NXBXWOP.js';
19
- import { parseSize, readJobFile } from './chunk-KOZ6IBEI.js';
20
- import { HOST_HELPER_ASSETS_VERSION, builderDiskPinned, hostHelperSupportsSlice, HOST_HELPER_SLICE_SINCE, firecrackerArch, MICROVM_ARCHES, FIRECRACKER_VERSION, FIRECRACKER_BINARY_SHA256, JAILER_BINARY_SHA256, HOST_HELPER_SHA256, HOST_HELPER_BASE_URL, hostHelperPinned } from './chunk-4UPET3R7.js';
16
+ import './chunk-Q2KGDDUX.js';
17
+ import { unitNameProblem, DEFAULT_UNIT_NAME, checkFit, installService, uninstallService, realTaskScheduler, UNIT_MARKER } from './chunk-7QF2EXAN.js';
18
+ import { runnerVmOf, loadRunnerConfig, builtinKind } from './chunk-DEJCZ43H.js';
19
+ import './chunk-BLSEHKZ4.js';
20
+ import { parseSize, readJobFile } from './chunk-GR7ZVGNI.js';
21
21
  import './chunk-HDLON3RJ.js';
22
+ import { HOST_HELPER_ASSETS_VERSION, builderDiskPinned, hostHelperSupportsSlice, HOST_HELPER_SLICE_SINCE, firecrackerArch, MICROVM_ARCHES, FIRECRACKER_VERSION, FIRECRACKER_BINARY_SHA256, JAILER_BINARY_SHA256, HOST_HELPER_SHA256, HOST_HELPER_BASE_URL, hostHelperPinned } from './chunk-QUOITPN7.js';
22
23
  import { realLima } from './chunk-77MM5RYD.js';
23
24
  import { writeLaunchAgent, launchAgentPath } from './chunk-LF6MLJCY.js';
24
25
  import './chunk-LQHCNXPK.js';