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

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 (29) hide show
  1. package/dist/build-info.json +1 -1
  2. package/dist/{check-QGM2SECF.js → check-IFHLERRX.js} +6 -6
  3. package/dist/{chunk-QWSAZGH6.js → chunk-4HA4S3U2.js} +1 -1
  4. package/dist/{chunk-J3Q3QCOF.js → chunk-LSFP57LI.js} +20 -6
  5. package/dist/{chunk-NEBMTP7T.js → chunk-MXAYUZJF.js} +3 -3
  6. package/dist/{chunk-N33OOF3K.js → chunk-PMIW6OGQ.js} +1 -1
  7. package/dist/{chunk-CKVJSOY3.js → chunk-S5U6RKQX.js} +6 -6
  8. package/dist/{chunk-MGF346ND.js → chunk-SKAML7GB.js} +1 -1
  9. package/dist/{chunk-KVGK2JL3.js → chunk-Y4WJ4BLX.js} +1 -1
  10. package/dist/{chunk-BCIBSJZH.js → chunk-Y7MF32DM.js} +4 -3
  11. package/dist/{cli-HVBFWC3J.js → cli-7S4PEKAV.js} +21 -21
  12. package/dist/{command-J3CDQLWC.js → command-GQVFZHJ2.js} +1 -1
  13. package/dist/{container-start-YLKDT2JG.js → container-start-WRD3YZQR.js} +4 -4
  14. package/dist/{doctor-AG73VZNG.js → doctor-N4I6IEKP.js} +2 -2
  15. package/dist/{host-checks-6G2F2HTK.js → host-checks-33ZTDTSH.js} +2 -2
  16. package/dist/index.js +1 -1
  17. package/dist/{init-7VWIU5TG.js → init-2YOAKLDN.js} +1 -1
  18. package/dist/{init-Y2OJSOAA.js → init-OXCOPKHP.js} +1 -1
  19. package/dist/{init-cmd-77XKBRUF.js → init-cmd-BUWWUQKM.js} +1 -1
  20. package/dist/{loop-FRT5NSFG.js → loop-M3XDFD6O.js} +6 -6
  21. package/dist/{machine-TEG554M5.js → machine-3BI2SGAK.js} +1 -1
  22. package/dist/{runner-key-T3V7N7CL.js → runner-key-KMTC4NCQ.js} +1 -1
  23. package/dist/{status-4YO4TUEH.js → status-WVCQCBDQ.js} +2 -2
  24. package/dist/{update-steps-KNN4Y2ZU.js → update-steps-2D4YQAW2.js} +3 -3
  25. package/dist/{work-proofs-cmd-PBY7WNYI.js → work-proofs-cmd-5BYAAW3H.js} +1 -1
  26. package/dist/{work-proofs-record-AVKJFZOD.js → work-proofs-record-USD4JWFP.js} +1 -1
  27. package/package.json +1 -1
  28. package/skill-pack/maintained/outerlayer-build/references/agent-briefs.md +7 -4
  29. package/skill-pack/maintained/outerlayer-build/references/review-briefs.md +3 -0
@@ -1 +1 @@
1
- {"id":"2026-10-27T16:28:14.920Z+d66ae09","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
1
+ {"id":"2026-10-27T19:09:01.789Z+1403660","root":"/home/runner/work/outerlayer/outerlayer","pkg":"outerlayer"}
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { probeCredentials } from './chunk-CKVJSOY3.js';
3
+ import { probeCredentials } from './chunk-S5U6RKQX.js';
4
4
  import './chunk-3JVYMD4G.js';
5
- import './chunk-KVGK2JL3.js';
5
+ import './chunk-Y4WJ4BLX.js';
6
6
  import './chunk-E7R2GIAW.js';
7
7
  import './chunk-MH6QLXUO.js';
8
8
  import './chunk-UZIAZXXO.js';
9
- import './chunk-MGF346ND.js';
9
+ import './chunk-SKAML7GB.js';
10
10
  import './chunk-BS4CZMT6.js';
11
- import './chunk-BCIBSJZH.js';
11
+ import './chunk-Y7MF32DM.js';
12
12
  import './chunk-6CK2OC4Q.js';
13
13
  import './chunk-ZVB57WI6.js';
14
14
  import './chunk-5ARXP3BP.js';
@@ -18,12 +18,12 @@ import './chunk-7SJNVGVC.js';
18
18
  import './chunk-RCAMBC3H.js';
19
19
  import './chunk-ESVW4MJY.js';
20
20
  import './chunk-GPO7F757.js';
21
- import { managedProblems, managedFactsOf } from './chunk-QWSAZGH6.js';
21
+ import { managedProblems, managedFactsOf } from './chunk-4HA4S3U2.js';
22
22
  import './chunk-WR2GRWK3.js';
23
23
  import './chunk-TBT347UY.js';
24
24
  import { findServiceUnit } from './chunk-7TLGRE5F.js';
25
25
  import './chunk-TZMDRHWB.js';
26
- import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, HELPER_ENV, helperSocketPath, probeHelper, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-J3Q3QCOF.js';
26
+ import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, HELPER_ENV, helperSocketPath, probeHelper, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-LSFP57LI.js';
27
27
  import './chunk-2PGI6RDE.js';
28
28
  import './chunk-5FHBVV25.js';
29
29
  import './chunk-CMMEJJTL.js';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { placeholderQueues, placeholderProblem } from './chunk-J3Q3QCOF.js';
3
+ import { placeholderQueues, placeholderProblem } from './chunk-LSFP57LI.js';
4
4
  import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-OHTMTMFX.js';
5
5
  import { builtinKind, EGRESS_SWITCHABLE_KEYS, imageBuildOf, keepsHostBuilder } from './chunk-JWMJMQRF.js';
6
6
  import { realBuildDiskProbe, checkDiskFit, DEFAULT_CACHE_DISK, DEFAULT_BUILD_DISK } from './chunk-LYX2RRSF.js';
@@ -3018,8 +3018,8 @@ async function provisionRuntimes(input) {
3018
3018
  }
3019
3019
  return { ok: true, unpinned, dropProxyWarning };
3020
3020
  }
3021
- function runtimeStepInput(report, services, dropProxyWarning) {
3022
- return report.base === void 0 ? {} : { runtimes: { refusals: () => services.record().refusals, dropProxyWarning } };
3021
+ function runtimeStepInput(report, services) {
3022
+ return report.base === void 0 ? {} : { runtimes: { refusals: () => services.record().refusals } };
3023
3023
  }
3024
3024
  function keepUnpinnedRuntimes(state, steps) {
3025
3025
  if (steps.unpinnedRuntimes !== void 0) state.unpinnedRuntimes = steps.unpinnedRuntimes;
@@ -3030,6 +3030,17 @@ var aborted = () => ({ ok: false, reason: "", aborted: true });
3030
3030
  function firstLine5(text) {
3031
3031
  return text.trim().split("\n")[0] ?? "";
3032
3032
  }
3033
+ async function nodeRejectsProxyWarningFlag(repositories, exec, log, tag) {
3034
+ for (const entry of repositories) {
3035
+ const ran = await exec(["node", "--version"], checkoutPath(entry), { quiet: true, withoutProxyWarning: true });
3036
+ if (ran.status !== 0) continue;
3037
+ const version = firstLine5(ran.stdout);
3038
+ if (nodeAcceptsProxyWarningFlag(version)) continue;
3039
+ log.line(`${tag} ${entry.repository}: leaving ${PROXY_WARNING_FLAG} out of NODE_OPTIONS because node ${version} does not accept it`);
3040
+ return true;
3041
+ }
3042
+ return false;
3043
+ }
3033
3044
  function gitErrorLine(text) {
3034
3045
  const lines = text.split("\n").map((line2) => line2.trim()).filter((line2) => line2 !== "");
3035
3046
  return lines.find((line2) => /^(fatal|error):/.test(line2)) ?? lines.at(-1) ?? "";
@@ -3151,12 +3162,14 @@ async function runBuildSteps(input) {
3151
3162
  }
3152
3163
  if (input.governing !== void 0) await noteIgnoredDevcontainers(input, repositories, input.governing.repository);
3153
3164
  let unpinnedRuntimes;
3165
+ const ordered = [{ ...primary, primary: true }, ...repositories.filter((candidate) => candidate.repository !== primary.repository).map((entry) => ({ ...entry, primary: false }))];
3154
3166
  if (input.runtimes !== void 0) {
3155
- const ordered = [{ ...primary, primary: true }, ...repositories.filter((candidate) => candidate.repository !== primary.repository).map((entry) => ({ ...entry, primary: false }))];
3156
3167
  const chosen = await provisionRuntimes({ repositories: ordered, exec, log, tag, refusals: input.runtimes.refusals, aborted: input.aborted });
3157
3168
  if (!chosen.ok) return chosen.aborted === true ? aborted() : { ok: false, reason: chosen.reason };
3158
3169
  unpinnedRuntimes = chosen.unpinned;
3159
- if (chosen.dropProxyWarning) input.runtimes.dropProxyWarning();
3170
+ if (chosen.dropProxyWarning) input.dropProxyWarning?.();
3171
+ } else if (input.dropProxyWarning !== void 0 && await nodeRejectsProxyWarningFlag(ordered, exec, log, tag)) {
3172
+ input.dropProxyWarning();
3160
3173
  }
3161
3174
  const lifecycleDir = lifecycleWorkdir(repositories, input.governing?.repository);
3162
3175
  for (const step of lifecycleSteps(input.lifecycle)) {
@@ -4830,10 +4843,11 @@ async function provisionContainer(input) {
4830
4843
  keepIn: jobDir,
4831
4844
  ...input.requireBuildSkill === true ? { requireBuildSkill: true } : {},
4832
4845
  // A repository with no devcontainer file builds on the universal image, whose runtimes the build chooses and installs.
4833
- ...runtimeStepInput(report, services, () => {
4846
+ ...runtimeStepInput(report, services),
4847
+ dropProxyWarning: () => {
4834
4848
  state.proxyWarningDropped = true;
4835
4849
  execEnv = plainEnv;
4836
- })
4850
+ }
4837
4851
  });
4838
4852
  if (!steps.ok) return bail(steps.reason, steps.aborted === true);
4839
4853
  state.startCommit = steps.startCommit;
@@ -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-6G2F2HTK.js');
170
+ const { testProofIn } = await import('./host-checks-33ZTDTSH.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-6G2F2HTK.js');
177
+ const { checksIn, isJudgeCheck } = await import('./host-checks-33ZTDTSH.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-AVKJFZOD.js');
317
+ const { runWorkProofsRecord } = await import('./work-proofs-record-USD4JWFP.js');
318
318
  const result2 = await runWorkProofsRecord(opts);
319
319
  process.exitCode = result2.exitCode;
320
320
  return;
@@ -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-AG73VZNG.js');
1220
+ const { runnerHostChecks } = await import('./doctor-N4I6IEKP.js');
1221
1221
  const gateway = (() => {
1222
1222
  try {
1223
1223
  const { url, apiKey, appId } = loadRunnerConfig(configPath);
@@ -1,18 +1,18 @@
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-KVGK2JL3.js';
4
+ import { reportFailedStart, fitImageBuildMemory } from './chunk-Y4WJ4BLX.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-UZIAZXXO.js';
8
- import { renderUpdateSteps } from './chunk-MGF346ND.js';
8
+ import { renderUpdateSteps } from './chunk-SKAML7GB.js';
9
9
  import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-BS4CZMT6.js';
10
- import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, readProvisionOut, workdirProblem, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, startSender, finishJob, sampleGuest, foldSample, isContainerTracked, isMicroVmTracked, probeMicroVmCommand, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isTracked, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, GUEST_USAGE_INTERVAL_MS, hookLimitsFor, AttemptLogBook, microVmOomKills, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, serveLease, vmAlive, writeGuestGhConfig, ALREADY_RELEASED, inTeardown } from './chunk-BCIBSJZH.js';
10
+ import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, readProvisionOut, workdirProblem, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, startSender, finishJob, sampleGuest, foldSample, isContainerTracked, isMicroVmTracked, probeMicroVmCommand, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isTracked, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, GUEST_USAGE_INTERVAL_MS, hookLimitsFor, AttemptLogBook, microVmOomKills, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, serveLease, vmAlive, writeGuestGhConfig, ALREADY_RELEASED, inTeardown } from './chunk-Y7MF32DM.js';
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-QWSAZGH6.js';
12
+ import { realBlockedProbes, checkBlockedWithSlots, largeBuildMemoryBytes, LARGE_BUILD_DISK_BYTES, checkManagedRoom, sliceMemoryOf } from './chunk-4HA4S3U2.js';
13
13
  import { writeMarker, readMarker, currentVersion, removeMarker, isInLayout, startedThroughCurrent, entryIn, versionDir, switchCurrent, cleanVersions, stagingDir } from './chunk-WR2GRWK3.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-J3Q3QCOF.js';
15
+ import { leaseTimeLeftMs, createContainerRuntime, withTunnelLog, LEASE_SECONDS, attemptNote, fetchManagedClaudeKey, holdManagedClaudeKey, fetchManagedBuildSettings, holdManagedBuildSettings, needsBuildSkill, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, provisionEnvironment, resolveHostBuild, listenOnBroker, hostEnvironment, deliverExecMaven, runWithSpawn, hostCommandEnvironment, lifecycleSteps, execArgv, lifecycleFailureReason, decideHostBuildSkill, prepareBranch, currentSkillCommand, formerSkillProblem, containerCommandExec, execCommandLine, startHostServices, setUpRunnerCgroup, sweepImageBuilders, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, managedBuildSettingsFor, ADOPTED_FETCH_RETRY_WINDOW_MS, gitRemoteFor, startServicesFor, createLeaseChannel } from './chunk-LSFP57LI.js';
16
16
  import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, resolveGoverningSource, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-7Q7GQELE.js';
17
17
  import { imageTag, writeUpdateStatus, pullInstruction, tagToPull } from './chunk-CFJOONWM.js';
18
18
  import { isVersion, compareVersions, satisfiesRange } from './chunk-TQMI335S.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-QGM2SECF.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
3282
+ return (await import('./check-IFHLERRX.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 { stripTerminalControls } from './chunk-BCIBSJZH.js';
3
+ import { stripTerminalControls } from './chunk-Y7MF32DM.js';
4
4
  import { tagToPull, imageTag, pullInstruction, readUpdateStatus, runnerImageVersion } from './chunk-CFJOONWM.js';
5
5
  import { readFileSync } from 'fs';
6
6
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { scrubReason, stripTerminalControls } from './chunk-BCIBSJZH.js';
3
+ import { scrubReason, stripTerminalControls } from './chunk-Y7MF32DM.js';
4
4
  import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-OHTMTMFX.js';
5
5
  import { RunnerAlreadyRunningError, readPidFile } from './chunk-3FTIUB7I.js';
6
6
  import { isSameProcess } from './chunk-JBJTC3UU.js';
@@ -8,7 +8,7 @@ import { senderPidfile } from './chunk-QRIE4JZE.js';
8
8
  import { installScrubContext } from './chunk-7SJNVGVC.js';
9
9
  import { writeDockerClientConfig } from './chunk-GPO7F757.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, runtimeStepInput, keepUnpinnedRuntimes, 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-J3Q3QCOF.js';
11
+ import { ADDED_USER, shellQuote, GH_CONFIG_YML, ghHostsYml, hasClaudeCredential, AssetError, obtainImage, ensureRootfs, makeBuildsDirPrivate, gitRemoteFor, startServicesFor, createLeaseChannel, createBuildDisk, machineConfig, startJailedInto, resolveAgentUser, AgentUserError, runBuildSteps, runtimeStepInput, keepUnpinnedRuntimes, 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-LSFP57LI.js';
12
12
  import { fetchCommit, readBranchHead, diffBetween } from './chunk-5FHBVV25.js';
13
13
  import { waitForAgent, vmExecArgs } from './chunk-JVNQNKHV.js';
14
14
  import { socketPathProblem, vsockLinks, LEASE_LINK, linkVsockSockets } from './chunk-BS3OYFAD.js';
@@ -654,10 +654,11 @@ async function provisionMicroVm(input) {
654
654
  keepIn: jobDir,
655
655
  ...input.requireBuildSkill === true ? { requireBuildSkill: true } : {},
656
656
  // A repository with no devcontainer file builds on the universal image, whose runtimes the build chooses and installs.
657
- ...runtimeStepInput(report, services, () => {
657
+ ...runtimeStepInput(report, services),
658
+ dropProxyWarning: () => {
658
659
  state.proxyWarningDropped = true;
659
660
  execEnv = plainEnv;
660
- })
661
+ }
661
662
  });
662
663
  if (!steps.ok) return bail(steps.reason, steps.aborted === true);
663
664
  state.startCommit = steps.startCommit;
@@ -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-N33OOF3K.js';
3
+ import { gatherDoctorChecks, doctorExitCode, summarizeChecks, renderDoctorText, recordWrapped, recordUnwrapped, recordRemoval, readManifest, recordInstall, recordStatusline } from './chunk-PMIW6OGQ.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-77XKBRUF.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-BUWWUQKM.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-77XKBRUF.js');
3935
+ const { runInitCommand } = await import('./init-cmd-BUWWUQKM.js');
3936
3936
  const code = await runInitCommand(
3937
3937
  { json: opts.json, factory: opts.factory, shellFunction: opts.shellFunction },
3938
3938
  {
@@ -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-PBY7WNYI.js');
5002
+ const { runWorkProofsCommand } = await import('./work-proofs-cmd-5BYAAW3H.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) => {
@@ -5146,7 +5146,7 @@ function registerRunnerCommands(program2) {
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
5148
  const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-5NWSCHIO.js');
5149
- const { start, RunnerStartError } = await import('./loop-FRT5NSFG.js');
5149
+ const { start, RunnerStartError } = await import('./loop-M3XDFD6O.js');
5150
5150
  const { RunnerAlreadyRunningError } = await import('./pidfile-WLZ427QQ.js');
5151
5151
  const configPath = opts.config ?? defaultRunnerConfigPath();
5152
5152
  try {
@@ -5165,8 +5165,8 @@ function registerRunnerCommands(program2) {
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
5167
  const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-5NWSCHIO.js');
5168
- const { containerStart } = await import('./container-start-YLKDT2JG.js');
5169
- const { start, RunnerStartError } = await import('./loop-FRT5NSFG.js');
5168
+ const { containerStart } = await import('./container-start-WRD3YZQR.js');
5169
+ const { start, RunnerStartError } = await import('./loop-M3XDFD6O.js');
5170
5170
  const { RunnerAlreadyRunningError } = await import('./pidfile-WLZ427QQ.js');
5171
5171
  try {
5172
5172
  const result = await containerStart({
@@ -5190,14 +5190,14 @@ function registerRunnerCommands(program2) {
5190
5190
  ).action(async (opts) => {
5191
5191
  const { defaultRunnerConfigPath } = await import('./config-5NWSCHIO.js');
5192
5192
  const { runnerDir } = await import('./paths-QLFRPIKS.js');
5193
- const { runUpdateSteps } = await import('./update-steps-KNN4Y2ZU.js');
5193
+ const { runUpdateSteps } = await import('./update-steps-2D4YQAW2.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
5199
  const { defaultRunnerConfigPath } = await import('./config-5NWSCHIO.js');
5200
- const { runRunnerCheck } = await import('./check-QGM2SECF.js');
5200
+ const { runRunnerCheck } = await import('./check-IFHLERRX.js');
5201
5201
  const configPath = opts.config ?? defaultRunnerConfigPath();
5202
5202
  const result = await runRunnerCheck(configPath);
5203
5203
  if (!result.ok) {
@@ -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-J3CDQLWC.js')).cpusAreValid(buildCpusMax)) {
5234
+ if (buildCpusMax !== void 0 && !(await import('./command-GQVFZHJ2.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-J3CDQLWC.js');
5240
+ const { installServiceCommand } = await import('./command-GQVFZHJ2.js');
5241
5241
  const result2 = await installServiceCommand({
5242
5242
  configPath,
5243
5243
  print: opts.print,
@@ -5295,7 +5295,7 @@ To keep it running, run ${C.yellow}${cliInvocation()} runner install --service${
5295
5295
  return;
5296
5296
  }
5297
5297
  const { defaultRunnerConfigPath } = await import('./config-5NWSCHIO.js');
5298
- const { uninstallServiceCommand } = await import('./command-J3CDQLWC.js');
5298
+ const { uninstallServiceCommand } = await import('./command-GQVFZHJ2.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
  `);
@@ -5323,10 +5323,10 @@ already in claude.env is used.
5323
5323
  `
5324
5324
  ).action(async (opts) => {
5325
5325
  const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-5NWSCHIO.js');
5326
- const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-Y2OJSOAA.js');
5327
- const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-T3V7N7CL.js');
5328
- const { detectMachine } = await import('./machine-TEG554M5.js');
5329
- const { chooseVm, runVmInit, VmInitError } = await import('./init-7VWIU5TG.js');
5326
+ const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-OXCOPKHP.js');
5327
+ const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-KMTC4NCQ.js');
5328
+ const { detectMachine } = await import('./machine-3BI2SGAK.js');
5329
+ const { chooseVm, runVmInit, VmInitError } = await import('./init-2YOAKLDN.js');
5330
5330
  const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-6FSJOSWS.js');
5331
5331
  const configPath = opts.config ?? defaultRunnerConfigPath();
5332
5332
  if (opts.agent !== void 0 && !isAgentName(opts.agent)) {
@@ -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-J3CDQLWC.js');
5480
+ const { installServiceCommand } = await import('./command-GQVFZHJ2.js');
5481
5481
  const service = await installServiceCommand({
5482
5482
  configPath,
5483
5483
  entryPath: process.argv[1] ?? "",
@@ -5606,7 +5606,7 @@ Next:
5606
5606
  });
5607
5607
  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) => {
5608
5608
  const { defaultRunnerConfigPath } = await import('./config-5NWSCHIO.js');
5609
- const { requestStop } = await import('./loop-FRT5NSFG.js');
5609
+ const { requestStop } = await import('./loop-M3XDFD6O.js');
5610
5610
  const configPath = opts.config ?? defaultRunnerConfigPath();
5611
5611
  const { runnerImageVersion } = await import('./image-tag-OYHGRHVV.js');
5612
5612
  await requestStop(configPath, Boolean(opts.now), void 0, { image: runnerImageVersion() !== void 0 });
@@ -5614,8 +5614,8 @@ Next:
5614
5614
  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) => {
5615
5615
  const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-5NWSCHIO.js');
5616
5616
  const { jobsDir, runnerDir } = await import('./paths-QLFRPIKS.js');
5617
- const { listJobFiles, runnerProcessState } = await import('./loop-FRT5NSFG.js');
5618
- const { renderStatus } = await import('./status-4YO4TUEH.js');
5617
+ const { listJobFiles, runnerProcessState } = await import('./loop-M3XDFD6O.js');
5618
+ const { renderStatus } = await import('./status-WVCQCBDQ.js');
5619
5619
  const { readHousekeepingRecord } = await import('./record-WGCMQLQS.js');
5620
5620
  const path2 = await import('path');
5621
5621
  const configPath = opts.config ?? defaultRunnerConfigPath();
@@ -5674,7 +5674,7 @@ Next:
5674
5674
  });
5675
5675
  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) => {
5676
5676
  const { defaultRunnerConfigPath } = await import('./config-5NWSCHIO.js');
5677
- const { listJobFiles } = await import('./loop-FRT5NSFG.js');
5677
+ const { listJobFiles } = await import('./loop-M3XDFD6O.js');
5678
5678
  const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-42QPBCMC.js');
5679
5679
  const configPath = opts.config ?? defaultRunnerConfigPath();
5680
5680
  const item = parseTrackerNumber(itemArg);
@@ -3,7 +3,7 @@ import { createRequire } from 'node:module';
3
3
  import { realOwnership, accountNamed, handOver, runRunnerInstall, launcherSummary, restartNote, accountIdentity } from './chunk-2YPOSVC7.js';
4
4
  import './chunk-AV5T7HV3.js';
5
5
  import { currentLink, execStartCommand } from './chunk-WR2GRWK3.js';
6
- import { detectMachine, helperSocketPath, ensureFirecrackerAndJailer } from './chunk-J3Q3QCOF.js';
6
+ import { detectMachine, helperSocketPath, ensureFirecrackerAndJailer } from './chunk-LSFP57LI.js';
7
7
  import './chunk-2PGI6RDE.js';
8
8
  import './chunk-5FHBVV25.js';
9
9
  import './chunk-CMMEJJTL.js';
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { reportFailedStart, BUILD_MEMORY_VARIABLE } from './chunk-KVGK2JL3.js';
4
- import { readOwnContainer } from './chunk-MGF346ND.js';
5
- import './chunk-BCIBSJZH.js';
3
+ import { reportFailedStart, BUILD_MEMORY_VARIABLE } from './chunk-Y4WJ4BLX.js';
4
+ import { readOwnContainer } from './chunk-SKAML7GB.js';
5
+ import './chunk-Y7MF32DM.js';
6
6
  import './chunk-6CK2OC4Q.js';
7
7
  import './chunk-ZVB57WI6.js';
8
8
  import './chunk-5ARXP3BP.js';
@@ -14,7 +14,7 @@ import './chunk-ESVW4MJY.js';
14
14
  import './chunk-GPO7F757.js';
15
15
  import './chunk-TBT347UY.js';
16
16
  import './chunk-TZMDRHWB.js';
17
- import { detectMachine, supportsContainerBuilds, MIN_ENGINE_MAJOR, describeMachineDocker, RunnerInitError, prepareRunnerInit, writeRunnerInit } from './chunk-J3Q3QCOF.js';
17
+ import { detectMachine, supportsContainerBuilds, MIN_ENGINE_MAJOR, describeMachineDocker, RunnerInitError, prepareRunnerInit, writeRunnerInit } from './chunk-LSFP57LI.js';
18
18
  import './chunk-2PGI6RDE.js';
19
19
  import './chunk-5FHBVV25.js';
20
20
  import './chunk-CMMEJJTL.js';
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { managedProblems } from './chunk-QWSAZGH6.js';
3
+ import { managedProblems } from './chunk-4HA4S3U2.js';
4
4
  import { launcherCheck } from './chunk-AV5T7HV3.js';
5
5
  import './chunk-WR2GRWK3.js';
6
6
  import { RepoFilter } from './chunk-TBT347UY.js';
7
- import { needsClaudeCredential, claudeCredentialCheck, detectMachine, supportsContainerBuilds, describeMachineDocker, MIN_ENGINE_MAJOR, reachDockerStep, supportsMicroVmBuilds, microVmArchSupported, microVmAssetsPinned, helperFirecrackerNote, probeHelper, helperSocketPath, missingPermissionOf, missingPermissionFix } from './chunk-J3Q3QCOF.js';
7
+ import { needsClaudeCredential, claudeCredentialCheck, detectMachine, supportsContainerBuilds, describeMachineDocker, MIN_ENGINE_MAJOR, reachDockerStep, supportsMicroVmBuilds, microVmArchSupported, microVmAssetsPinned, helperFirecrackerNote, probeHelper, helperSocketPath, missingPermissionOf, missingPermissionFix } from './chunk-LSFP57LI.js';
8
8
  import './chunk-2PGI6RDE.js';
9
9
  import './chunk-5FHBVV25.js';
10
10
  import './chunk-CMMEJJTL.js';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { MAX_CHECK_ITEMS_BYTES, checksIn, commandItems, isJudgeCheck, makeRecorder, readDefinitions, runHostChecks, testProofIn, timeoutAfter } from './chunk-BCIBSJZH.js';
3
+ export { MAX_CHECK_ITEMS_BYTES, checksIn, commandItems, isJudgeCheck, makeRecorder, readDefinitions, runHostChecks, testProofIn, timeoutAfter } from './chunk-Y7MF32DM.js';
4
4
  import './chunk-6CK2OC4Q.js';
5
5
  import './chunk-ZVB57WI6.js';
6
6
  import './chunk-5ARXP3BP.js';
@@ -12,7 +12,7 @@ import './chunk-ESVW4MJY.js';
12
12
  import './chunk-GPO7F757.js';
13
13
  import './chunk-TBT347UY.js';
14
14
  import './chunk-TZMDRHWB.js';
15
- import './chunk-J3Q3QCOF.js';
15
+ import './chunk-LSFP57LI.js';
16
16
  import './chunk-2PGI6RDE.js';
17
17
  import './chunk-5FHBVV25.js';
18
18
  import './chunk-CMMEJJTL.js';
package/dist/index.js CHANGED
@@ -26,5 +26,5 @@ if (argv[0] === "claude") {
26
26
  process.exit(await runClaudeLauncher(argv.slice(1)));
27
27
  }
28
28
  (await import('./hook-fast-5WOGLR7V.js')).recordLinkExitFailure(argv);
29
- var { runCli } = await import('./cli-HVBFWC3J.js');
29
+ var { runCli } = await import('./cli-7S4PEKAV.js');
30
30
  await runCli(process.argv);
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { npmSupportsProvenance } from './chunk-E7R2GIAW.js';
4
- import { RunnerInitError, readConfigObject } from './chunk-J3Q3QCOF.js';
4
+ import { RunnerInitError, readConfigObject } from './chunk-LSFP57LI.js';
5
5
  import './chunk-2PGI6RDE.js';
6
6
  import './chunk-5FHBVV25.js';
7
7
  import './chunk-CMMEJJTL.js';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { PLACEHOLDER_MARKER, RunnerInitError, isPlaceholderCommand, prepareRunnerInit, readConfigObject, runRunnerInit, writeRunnerInit } from './chunk-J3Q3QCOF.js';
3
+ export { PLACEHOLDER_MARKER, RunnerInitError, isPlaceholderCommand, prepareRunnerInit, readConfigObject, runRunnerInit, writeRunnerInit } from './chunk-LSFP57LI.js';
4
4
  import './chunk-2PGI6RDE.js';
5
5
  import './chunk-5FHBVV25.js';
6
6
  import './chunk-CMMEJJTL.js';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { summarizeChecks, summaryText, renderDoctorText } from './chunk-N33OOF3K.js';
3
+ import { summarizeChecks, summaryText, renderDoctorText } from './chunk-PMIW6OGQ.js';
4
4
  import './chunk-TZMDRHWB.js';
5
5
  import { shellFunctionInstalled, removeShellFunction, installShellFunction, SHELL_FUNCTION_LINE } from './chunk-CJJDJ7AT.js';
6
6
  import './chunk-KT4CN6OU.js';
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { RunnerStartError, leaseTimeLeftFor, listJobFiles, logUnusableHelper, probeBuild, probeCredentials, requestStop, runnerProcessState, runtimeOf, sampleUsage, start, tick, watchTick } from './chunk-CKVJSOY3.js';
3
+ export { RunnerStartError, leaseTimeLeftFor, listJobFiles, logUnusableHelper, probeBuild, probeCredentials, requestStop, runnerProcessState, runtimeOf, sampleUsage, start, tick, watchTick } from './chunk-S5U6RKQX.js';
4
4
  import './chunk-3JVYMD4G.js';
5
- import './chunk-KVGK2JL3.js';
5
+ import './chunk-Y4WJ4BLX.js';
6
6
  import './chunk-E7R2GIAW.js';
7
7
  import './chunk-MH6QLXUO.js';
8
8
  import './chunk-UZIAZXXO.js';
9
- import './chunk-MGF346ND.js';
9
+ import './chunk-SKAML7GB.js';
10
10
  import './chunk-BS4CZMT6.js';
11
- import './chunk-BCIBSJZH.js';
11
+ import './chunk-Y7MF32DM.js';
12
12
  import './chunk-6CK2OC4Q.js';
13
13
  import './chunk-ZVB57WI6.js';
14
14
  import './chunk-5ARXP3BP.js';
@@ -18,11 +18,11 @@ import './chunk-7SJNVGVC.js';
18
18
  import './chunk-RCAMBC3H.js';
19
19
  import './chunk-ESVW4MJY.js';
20
20
  import './chunk-GPO7F757.js';
21
- import './chunk-QWSAZGH6.js';
21
+ import './chunk-4HA4S3U2.js';
22
22
  import './chunk-WR2GRWK3.js';
23
23
  import './chunk-TBT347UY.js';
24
24
  import './chunk-TZMDRHWB.js';
25
- import './chunk-J3Q3QCOF.js';
25
+ import './chunk-LSFP57LI.js';
26
26
  import './chunk-2PGI6RDE.js';
27
27
  import './chunk-5FHBVV25.js';
28
28
  import './chunk-CMMEJJTL.js';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { describeMachineDocker, detectMachine, microVmArchSupported, microVmAssetsPinned, reachDockerStep, supportsContainerBuilds, supportsMicroVmBuilds } from './chunk-J3Q3QCOF.js';
3
+ export { describeMachineDocker, detectMachine, microVmArchSupported, microVmAssetsPinned, reachDockerStep, supportsContainerBuilds, supportsMicroVmBuilds } from './chunk-LSFP57LI.js';
4
4
  import './chunk-2PGI6RDE.js';
5
5
  import './chunk-5FHBVV25.js';
6
6
  import './chunk-CMMEJJTL.js';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { readConfigObject, RunnerInitError } from './chunk-J3Q3QCOF.js';
3
+ import { readConfigObject, RunnerInitError } from './chunk-LSFP57LI.js';
4
4
  import './chunk-2PGI6RDE.js';
5
5
  import './chunk-5FHBVV25.js';
6
6
  import './chunk-CMMEJJTL.js';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { isReadable, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-BCIBSJZH.js';
3
+ import { isReadable, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-Y7MF32DM.js';
4
4
  import './chunk-6CK2OC4Q.js';
5
5
  import { jobStateFormatOf } from './chunk-ZVB57WI6.js';
6
6
  import './chunk-5ARXP3BP.js';
@@ -12,7 +12,7 @@ import './chunk-ESVW4MJY.js';
12
12
  import './chunk-GPO7F757.js';
13
13
  import './chunk-TBT347UY.js';
14
14
  import './chunk-TZMDRHWB.js';
15
- import { LEASE_SECONDS } from './chunk-J3Q3QCOF.js';
15
+ import { LEASE_SECONDS } from './chunk-LSFP57LI.js';
16
16
  import './chunk-2PGI6RDE.js';
17
17
  import './chunk-5FHBVV25.js';
18
18
  import './chunk-CMMEJJTL.js';
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { readOwnContainer, renderUpdateSteps, runUpdateSteps } from './chunk-MGF346ND.js';
4
- import './chunk-BCIBSJZH.js';
3
+ export { readOwnContainer, renderUpdateSteps, runUpdateSteps } from './chunk-SKAML7GB.js';
4
+ import './chunk-Y7MF32DM.js';
5
5
  import './chunk-6CK2OC4Q.js';
6
6
  import './chunk-ZVB57WI6.js';
7
7
  import './chunk-5ARXP3BP.js';
@@ -13,7 +13,7 @@ import './chunk-ESVW4MJY.js';
13
13
  import './chunk-GPO7F757.js';
14
14
  import './chunk-TBT347UY.js';
15
15
  import './chunk-TZMDRHWB.js';
16
- import './chunk-J3Q3QCOF.js';
16
+ import './chunk-LSFP57LI.js';
17
17
  import './chunk-2PGI6RDE.js';
18
18
  import './chunk-5FHBVV25.js';
19
19
  import './chunk-CMMEJJTL.js';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { classifyProofs, classifyProofsAt, otherPullRequestHeads, resolveProofsItem, runWorkProofs, runWorkProofsCommand } from './chunk-NEBMTP7T.js';
3
+ export { classifyProofs, classifyProofsAt, otherPullRequestHeads, resolveProofsItem, runWorkProofs, runWorkProofsCommand } from './chunk-MXAYUZJF.js';
4
4
  import './chunk-6CK2OC4Q.js';
5
5
  import './chunk-6IMQXBTZ.js';
6
6
  import './chunk-IP7BIBXJ.js';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { resolveProofsItem, ownPullRequest, proofsCommentId, otherPullRequestHeads, classifyProofsAt, kindProblem, proofsCommentBody, runWorkProofs } from './chunk-NEBMTP7T.js';
3
+ import { resolveProofsItem, ownPullRequest, proofsCommentId, otherPullRequestHeads, classifyProofsAt, kindProblem, proofsCommentBody, runWorkProofs } from './chunk-MXAYUZJF.js';
4
4
  import { runWorkComment } from './chunk-HJCNWEQK.js';
5
5
  import './chunk-6CK2OC4Q.js';
6
6
  import { runEmitDemo } from './chunk-ANFNZCXZ.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@outerlayer/cli",
3
- "version": "0.34.0-next.20261027162612",
3
+ "version": "0.34.0-next.20261027190442",
4
4
  "description": "OuterLayer CLI — commands: init, claude, connect, doctor, login, logout, sync, daemon (alias: watch), emit, demo, findings, work, spec, runner, hooks, mcp, context. Capture and sync coding-agent sessions, and record proof of factory work.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Magu Studios, Inc.",
@@ -206,10 +206,13 @@ its file updated.
206
206
  Run the repository's own pre-push checks and tests, as its instructions file
207
207
  names them, in the foreground with the maximum timeout. When the repository
208
208
  has a changed-lines mutation tool, run it over the final branch diff. Run it
209
- the way its instructions say CI runs it. The review's run does not count,
210
- because fixes changed lines after it. A run that ends over its time budget, or
211
- with no score, is a red gate, as a low score is: run it again with a larger
212
- budget. Then run any check the repository runs only in CI, when the diff
209
+ the way its instructions say to run it before a push, not with CI's settings.
210
+ CI's time budget is sized for a CI job. On this machine it can stop a run
211
+ before the run scores anything. Run the tool again after the review's run,
212
+ because fixes changed lines after it. When the tool can reuse an earlier run's
213
+ results, let it. Then this run tests again only what the fixes changed. A run
214
+ that ends over its time budget, or with no score, is a red gate, as a low
215
+ score is: run it again with a larger budget. Then run any check the repository runs only in CI, when the diff
213
216
  touches its domain, each in the foreground, and quote every result in your
214
217
  report. A check this machine cannot
215
218
  run is named in the report with the reason. A check that fails is a red gate,
@@ -264,6 +264,9 @@ dependencies, and give its path in your report. Reviewers are reading the
264
264
  shared tree while you run, so no mutation may touch it.
265
265
 
266
266
  1. Run the repository's changed-lines mutation tool once over the whole diff.
267
+ Run it the way the repository's instructions say to run it before a push,
268
+ not with CI's settings. When the tool can keep its results for a later
269
+ run, let it, so the run after the fixes tests only what changed.
267
270
  Every survivor it reports is a finding. Never rerun it per file, never
268
271
  lower its budget, and never run a whole suite or a coverage run. The
269
272
  tool can run longer than your shell's maximum timeout. Then your shell