@outerlayer/cli 0.10.2 → 0.11.0

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 (44) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/build-info.json +1 -1
  3. package/dist/{builder-EVO6F2NO.js → builder-PP436VGZ.js} +2 -2
  4. package/dist/{check-NQYQHITZ.js → check-YDXOLVJ5.js} +16 -15
  5. package/dist/{chunk-VVIRHTH4.js → chunk-2GBCTEN4.js} +1 -1
  6. package/dist/{chunk-ERHJETKP.js → chunk-3YFCWYBU.js} +128 -30
  7. package/dist/{chunk-M6G7TJVF.js → chunk-4Q7OMKAT.js} +44 -4
  8. package/dist/{chunk-MC6J453K.js → chunk-7C4T5BGN.js} +2 -2
  9. package/dist/{chunk-472KC6JV.js → chunk-BEZSECPA.js} +1 -1
  10. package/dist/{chunk-KZ5M4QOB.js → chunk-BHOBM3IZ.js} +32 -14
  11. package/dist/{chunk-JSUUXA5W.js → chunk-CJGQQZWB.js} +1 -1
  12. package/dist/{chunk-BREEX2Z7.js → chunk-E5DC4VZL.js} +115 -58
  13. package/dist/{chunk-R2UYH4QV.js → chunk-EOWWTFUU.js} +3 -3
  14. package/dist/{chunk-PDTSUOVT.js → chunk-FI5UYJMQ.js} +1 -1
  15. package/dist/{chunk-V42JY4F6.js → chunk-HYZRY4KZ.js} +2 -2
  16. package/dist/chunk-O765JR4W.js +35 -0
  17. package/dist/{chunk-6CXYORUS.js → chunk-QKFB4K7X.js} +1 -1
  18. package/dist/{chunk-ESZJ5QIC.js → chunk-R7BJYFD2.js} +4 -4
  19. package/dist/{chunk-S6IUUNCD.js → chunk-RSNSZ2LJ.js} +1 -1
  20. package/dist/{chunk-NTLGWCWK.js → chunk-TFIOXPZT.js} +1 -1
  21. package/dist/{chunk-M2PBLRB7.js → chunk-XR3BJN33.js} +23 -3
  22. package/dist/{cli-ZCWMJCEK.js → cli-RQZXTOEI.js} +39 -35
  23. package/dist/{command-LNEFKIVC.js → command-U6UGIBVT.js} +9 -9
  24. package/dist/config-MKBX2ZQD.js +11 -0
  25. package/dist/{docker-GM526LGX.js → docker-WVRRMK6R.js} +3 -3
  26. package/dist/{doctor-QSV4DYT2.js → doctor-ZF4PYWVN.js} +10 -10
  27. package/dist/{exec-client-QTUO6TZT.js → exec-client-CQV746UF.js} +3 -3
  28. package/dist/{guest-init-4UW4HM6N.js → guest-init-LJP5GPZF.js} +3 -3
  29. package/dist/index.js +1 -1
  30. package/dist/{init-MJ2PO2VQ.js → init-M5IBAGVE.js} +9 -9
  31. package/dist/{init-OKCDXEOG.js → init-PUY2BUHH.js} +8 -8
  32. package/dist/{init-cmd-5TEM2QNH.js → init-cmd-NPNR23UL.js} +1 -1
  33. package/dist/{install-PYNCWSTV.js → install-HKOVISUP.js} +3 -3
  34. package/dist/{loop-DBF3UJAD.js → loop-3FNROLW7.js} +16 -15
  35. package/dist/{machine-TBJKZ6TN.js → machine-RWDDJRWB.js} +7 -7
  36. package/dist/pending-MXLSRYMO.js +7 -0
  37. package/dist/{status-KPDVZMJ6.js → status-2OW5AKWL.js} +17 -9
  38. package/dist/{work-claim-cmd-DYD6II56.js → work-claim-cmd-LXXSNEGF.js} +3 -3
  39. package/dist/{work-open-pr-cmd-N2RBDKZ4.js → work-open-pr-cmd-YZAENDP6.js} +5 -4
  40. package/package.json +1 -1
  41. package/skill-pack/maintained/amend/SKILL.md +10 -1
  42. package/skill-pack/maintained/outerlayer/SKILL.md +19 -3
  43. package/skill-pack/maintained/outerlayer/references/open-pull-request.md +11 -0
  44. package/dist/config-X45X7AS4.js +0 -11
@@ -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-R2UYH4QV.js';
3
+ import { gatherDoctorChecks, doctorExitCode, summarizeChecks, renderDoctorText, recordWrapped, recordUnwrapped, recordRemoval, readManifest, recordInstall, recordStatusline } from './chunk-EOWWTFUU.js';
4
4
  import './chunk-F47JBIAW.js';
5
5
  import './chunk-BKO6JEZI.js';
6
6
  import './chunk-DTDZXDQ3.js';
@@ -3855,7 +3855,7 @@ function buildProgram(argv = process.argv) {
3855
3855
  else process.stdout.write(outcome.text);
3856
3856
  return;
3857
3857
  }
3858
- const { runInitCommand } = await import('./init-cmd-5TEM2QNH.js');
3858
+ const { runInitCommand } = await import('./init-cmd-NPNR23UL.js');
3859
3859
  const code = await runInitCommand(
3860
3860
  { json: opts.json, factory: opts.factory },
3861
3861
  {
@@ -3985,7 +3985,7 @@ function buildProgram(argv = process.argv) {
3985
3985
  await startRelay({ port, socketPath: opts.socket, forwards });
3986
3986
  });
3987
3987
  program2.command("vm-exec", { hidden: true }).description("run a command in a microVM build's guest through its exec agent").requiredOption("--socket <path>", "the Unix socket Firecracker serves the build's vsock device on").option("--user <user>", "the user to run as", "").option("--cwd <dir>", "the working directory", "/").option("--env <NAME=value>", "an environment value the command line carries; repeatable", (value, previous) => [...previous, value], []).option("--pass <NAME>", "an environment variable whose value is read from this process; repeatable", (value, previous) => [...previous, value], []).argument("<argv...>", "the command and its arguments").action(async (argv2, opts) => {
3988
- const { runVmExec } = await import('./exec-client-QTUO6TZT.js');
3988
+ const { runVmExec } = await import('./exec-client-CQV746UF.js');
3989
3989
  const env = {};
3990
3990
  for (const entry of opts.env) {
3991
3991
  const eq = entry.indexOf("=");
@@ -4018,7 +4018,7 @@ function buildProgram(argv = process.argv) {
4018
4018
  }
4019
4019
  });
4020
4020
  program2.command("vm-init", { hidden: true }).description("lay out a microVM build's guest; the guest helper runs it").action(async () => {
4021
- const { realGuestHost, runGuestInit } = await import('./guest-init-4UW4HM6N.js');
4021
+ const { realGuestHost, runGuestInit } = await import('./guest-init-LJP5GPZF.js');
4022
4022
  const { readFileSync: readFileSync3 } = await import('fs');
4023
4023
  try {
4024
4024
  runGuestInit(realGuestHost(), readFileSync3("/proc/cmdline", "utf8"));
@@ -4367,7 +4367,7 @@ live addition remains on it.
4367
4367
  "\n outerlayer work claim --item 42 --kind implement\n\nRecords a lease held by the API key that sends it. A live lease held\nby a different key is refused; claiming again with the same key extends\nit. --host is a label only.\n"
4368
4368
  ).action(async (opts) => {
4369
4369
  warnIfApiKeyFlag(opts);
4370
- const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-DYD6II56.js');
4370
+ const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-LXXSNEGF.js');
4371
4371
  try {
4372
4372
  await runWorkClaim(opts);
4373
4373
  } catch (err) {
@@ -4383,7 +4383,7 @@ live addition remains on it.
4383
4383
  "\n outerlayer work renew --item 42\n\nExtends the live lease this API key holds. Refused with a 410 if the\nlease has expired, or a 403 if a different key holds it.\n"
4384
4384
  ).action(async (opts) => {
4385
4385
  warnIfApiKeyFlag(opts);
4386
- const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-DYD6II56.js');
4386
+ const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-LXXSNEGF.js');
4387
4387
  try {
4388
4388
  await runWorkRenew(opts);
4389
4389
  } catch (err) {
@@ -4402,7 +4402,7 @@ live addition remains on it.
4402
4402
  "\n outerlayer work release --item 42 --outcome ok\n outerlayer work release --item 42\n\nMarks the lease this API key holds released, optionally with an\noutcome. A lease held by a different key is refused. Releasing an\nalready-released lease is a no-op that returns the recorded release\ntime and outcome.\n\nRun inside a session with no --host, it releases that session's own\nlease instead, so the item's review opens without ending the\nsession. It never releases another session's lease. --outcome\napplies to a host's lease only. A later tool call in the session\ntakes the lease again.\n"
4403
4403
  ).action(async (opts) => {
4404
4404
  warnIfApiKeyFlag(opts);
4405
- const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-DYD6II56.js');
4405
+ const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-LXXSNEGF.js');
4406
4406
  try {
4407
4407
  await runWorkRelease(opts);
4408
4408
  } catch (err) {
@@ -4429,12 +4429,12 @@ live addition remains on it.
4429
4429
  throw err;
4430
4430
  }
4431
4431
  });
4432
- workCmd.command("open-pr").description("Open, or edit, the pull request for the work item this session is on").requiredOption("--title <title>", "the pull request's title").requiredOption("--body-file <path>", "a file holding the pull request's description").option("--repo <owner/name>", "repository, on the gh path (default: the current checkout's remote)").option("--session-id <id>", "session id to record as-is, on the gh path, skipping detection").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)").addHelpText(
4432
+ workCmd.command("open-pr").description("Open, or edit, the pull request for the work item this session is on").requiredOption("--title <title>", "the pull request's title").requiredOption("--body-file <path>", "a file holding the pull request's description").option("--repository <owner/name>", "repository to open the pull request in (default: the primary)").option("--repo <owner/name>", "same as --repository, on the gh path").option("--session-id <id>", "session id to record as-is, on the gh path, skipping detection").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)").addHelpText(
4433
4433
  "after",
4434
- '\n outerlayer work open-pr --title "Add the thing" --body-file pr.md\n\nIn a host build, which holds an item key, the gateway opens the pull\nrequest as the factory\'s GitHub App, from the branch the claim named,\nor edits the one already open on that branch. No gh command runs.\nIn your own session it runs `gh pr create` (or `gh pr edit`) under your\nlogin, then declares the pull request on the item, as `work pr` does.\nRun it again after a change to the title or description.\n'
4434
+ '\n outerlayer work open-pr --title "Add the thing" --body-file pr.md\n outerlayer work open-pr --repository acme/web --title "Add the thing" --body-file pr.md\n\nIn a host build, which holds an item key, the gateway opens the pull\nrequest as the factory\'s GitHub App, from the branch the claim named,\nor edits the one already open on that branch. No gh command runs.\nIn your own session it runs `gh pr create` (or `gh pr edit`) under your\nlogin, then declares the pull request on the item, as `work pr` does.\nRun it again after a change to the title or description.\n'
4435
4435
  ).action(async (opts) => {
4436
4436
  warnIfApiKeyFlag(opts);
4437
- const { runWorkOpenPr, WorkOpenPrCommandError } = await import('./work-open-pr-cmd-N2RBDKZ4.js');
4437
+ const { runWorkOpenPr, WorkOpenPrCommandError } = await import('./work-open-pr-cmd-YZAENDP6.js');
4438
4438
  const { WorkCommandError } = await import('./work-cmd-ZJY3NA2G.js');
4439
4439
  try {
4440
4440
  await runWorkOpenPr(opts);
@@ -4451,8 +4451,8 @@ function registerRunnerCommands(program2) {
4451
4451
  const runnerCmd = program2.command("runner").description("Take work from the implement and amend queues on this machine");
4452
4452
  const configOption = "the cloud config file to run against (default: ~/.outerlayer/config.json)";
4453
4453
  runnerCmd.command("start").description("Run the loop: claim work, run it, report, clean up, repeat").option("--config <path>", configOption).action(async (opts) => {
4454
- const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-X45X7AS4.js');
4455
- const { start, RunnerStartError } = await import('./loop-DBF3UJAD.js');
4454
+ const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-MKBX2ZQD.js');
4455
+ const { start, RunnerStartError } = await import('./loop-3FNROLW7.js');
4456
4456
  const { RunnerAlreadyRunningError } = await import('./pidfile-UZRH774M.js');
4457
4457
  const configPath = opts.config ?? defaultRunnerConfigPath();
4458
4458
  try {
@@ -4467,8 +4467,8 @@ function registerRunnerCommands(program2) {
4467
4467
  }
4468
4468
  });
4469
4469
  runnerCmd.command("check").description("Validate the config, the hooks and the key, and print the effective settings").option("--config <path>", configOption).action(async (opts) => {
4470
- const { defaultRunnerConfigPath } = await import('./config-X45X7AS4.js');
4471
- const { runRunnerCheck } = await import('./check-NQYQHITZ.js');
4470
+ const { defaultRunnerConfigPath } = await import('./config-MKBX2ZQD.js');
4471
+ const { runRunnerCheck } = await import('./check-YDXOLVJ5.js');
4472
4472
  const configPath = opts.config ?? defaultRunnerConfigPath();
4473
4473
  const result = await runRunnerCheck(configPath);
4474
4474
  if (!result.ok) {
@@ -4484,7 +4484,7 @@ function registerRunnerCommands(program2) {
4484
4484
  `);
4485
4485
  });
4486
4486
  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").action(async (opts) => {
4487
- const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-X45X7AS4.js');
4487
+ const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-MKBX2ZQD.js');
4488
4488
  const { runRunnerInstall, RunnerInstallError, launcherSummary, restartNote } = await import('./install-cmd-5HYMXLEW.js');
4489
4489
  const configPath = opts.config ?? defaultRunnerConfigPath();
4490
4490
  if (opts.service !== true) {
@@ -4497,7 +4497,7 @@ function registerRunnerCommands(program2) {
4497
4497
  }
4498
4498
  try {
4499
4499
  if (opts.service === true) {
4500
- const { installServiceCommand } = await import('./command-LNEFKIVC.js');
4500
+ const { installServiceCommand } = await import('./command-U6UGIBVT.js');
4501
4501
  const result2 = await installServiceCommand({
4502
4502
  configPath,
4503
4503
  print: opts.print,
@@ -4552,18 +4552,18 @@ To keep it running, run ${C.yellow}outerlayer runner install --service${C.reset}
4552
4552
  fail("pass --service: `outerlayer runner uninstall --service` removes the runner's service.");
4553
4553
  return;
4554
4554
  }
4555
- const { defaultRunnerConfigPath } = await import('./config-X45X7AS4.js');
4556
- const { uninstallServiceCommand } = await import('./command-LNEFKIVC.js');
4555
+ const { defaultRunnerConfigPath } = await import('./config-MKBX2ZQD.js');
4556
+ const { uninstallServiceCommand } = await import('./command-U6UGIBVT.js');
4557
4557
  const result = await uninstallServiceCommand({ configPath: opts.config ?? defaultRunnerConfigPath(), unitName: opts.unitName, home: homeFromEnv() });
4558
4558
  if (result.ok) for (const line of result.lines) process.stdout.write(`${C.green}\u2713${C.reset} ${line}
4559
4559
  `);
4560
4560
  else fail(result.lines.length > 0 ? result.lines.join("\n ") : "the service was not removed");
4561
4561
  });
4562
4562
  runnerCmd.command("init").description("Write a runner block that fits this machine; on macOS, offers a Linux VM").option("--config <path>", configOption).option("--vm", "on macOS, run the runner in a Linux VM (Lima), with container builds").option("--no-vm", "on macOS, skip the VM and run builds as unisolated processes").option("--allow-process-builds", "where builds cannot be isolated, run them as processes anyway").addOption(new Option("--config-stdin", "the VM-side hand-off: read the whole config as JSON on stdin").hideHelp()).option("--vm-cli-package <path>", "with --vm, install this packed CLI tarball in the VM").option("--unit-name <name>", "the service unit's name, to run a second runner beside the first").action(async (opts) => {
4563
- const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-X45X7AS4.js');
4564
- const { runRunnerInit, RunnerInitError } = await import('./init-OKCDXEOG.js');
4565
- const { detectMachine } = await import('./machine-TBJKZ6TN.js');
4566
- const { chooseVm, runVmInit, VmInitError } = await import('./init-MJ2PO2VQ.js');
4563
+ const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-MKBX2ZQD.js');
4564
+ const { runRunnerInit, RunnerInitError } = await import('./init-PUY2BUHH.js');
4565
+ const { detectMachine } = await import('./machine-RWDDJRWB.js');
4566
+ const { chooseVm, runVmInit, VmInitError } = await import('./init-M5IBAGVE.js');
4567
4567
  const configPath = opts.config ?? defaultRunnerConfigPath();
4568
4568
  try {
4569
4569
  const machine = detectMachine();
@@ -4663,7 +4663,7 @@ ${C.yellow}The runner will not update itself: ${installErr.message}${C.reset}
4663
4663
  }
4664
4664
  let serviceUp = false;
4665
4665
  if (installedLayout) {
4666
- const { installServiceCommand } = await import('./command-LNEFKIVC.js');
4666
+ const { installServiceCommand } = await import('./command-U6UGIBVT.js');
4667
4667
  const service = await installServiceCommand({
4668
4668
  configPath,
4669
4669
  entryPath: process.argv[1] ?? "",
@@ -4701,12 +4701,12 @@ Next:
4701
4701
  "after",
4702
4702
  "\nFetches the head of the default branch into the runner's cache, reads its\n.devcontainer/devcontainer.json, and 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"
4703
4703
  ).action(async (opts) => {
4704
- const { defaultRunnerConfigPath } = await import('./config-X45X7AS4.js');
4704
+ const { defaultRunnerConfigPath } = await import('./config-MKBX2ZQD.js');
4705
4705
  const { buildRepositoryImage, RecipeError } = await import('./build-LELVCWHV.js');
4706
4706
  const { currentCliBuild } = await import('./cli-build-K56DK4DS.js');
4707
- const { createDockerHost } = await import('./docker-GM526LGX.js');
4708
- const { builderSpec } = await import('./builder-EVO6F2NO.js');
4709
- const { loadRunnerConfig } = await import('./config-X45X7AS4.js');
4707
+ const { createDockerHost } = await import('./docker-WVRRMK6R.js');
4708
+ const { builderSpec } = await import('./builder-PP436VGZ.js');
4709
+ const { loadRunnerConfig } = await import('./config-MKBX2ZQD.js');
4710
4710
  const configPath = opts.config ?? defaultRunnerConfigPath();
4711
4711
  const memory = (() => {
4712
4712
  try {
@@ -4767,21 +4767,23 @@ Next:
4767
4767
  }
4768
4768
  });
4769
4769
  runnerCmd.command("stop").description("Take no more work; wait for running jobs to finish, 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) => {
4770
- const { defaultRunnerConfigPath } = await import('./config-X45X7AS4.js');
4771
- const { requestStop } = await import('./loop-DBF3UJAD.js');
4770
+ const { defaultRunnerConfigPath } = await import('./config-MKBX2ZQD.js');
4771
+ const { requestStop } = await import('./loop-3FNROLW7.js');
4772
4772
  const configPath = opts.config ?? defaultRunnerConfigPath();
4773
4773
  await requestStop(configPath, Boolean(opts.now));
4774
4774
  });
4775
4775
  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) => {
4776
- const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-X45X7AS4.js');
4776
+ const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-MKBX2ZQD.js');
4777
4777
  const { jobsDir, runnerDir } = await import('./paths-OYKMVYJP.js');
4778
- const { listJobFiles, runnerProcessState } = await import('./loop-DBF3UJAD.js');
4779
- const { renderStatus } = await import('./status-KPDVZMJ6.js');
4778
+ const { listJobFiles, runnerProcessState } = await import('./loop-3FNROLW7.js');
4779
+ const { renderStatus } = await import('./status-2OW5AKWL.js');
4780
4780
  const { readHousekeepingRecord } = await import('./record-C43U4PKS.js');
4781
4781
  const path2 = await import('path');
4782
4782
  const configPath = opts.config ?? defaultRunnerConfigPath();
4783
4783
  const all = listJobFiles(configPath);
4784
4784
  const housekeeping = readHousekeepingRecord(runnerDir(configPath));
4785
+ const { readPendingUpdate } = await import('./pending-MXLSRYMO.js');
4786
+ const pendingUpdate = readPendingUpdate(runnerDir(configPath));
4785
4787
  let host = "unknown";
4786
4788
  let concurrency = 1;
4787
4789
  try {
@@ -4794,7 +4796,7 @@ Next:
4794
4796
  const service = await (async () => {
4795
4797
  if (process.platform !== "linux" || !existsSync("/run/systemd/system")) return void 0;
4796
4798
  const { inspectService, realInspectProbes } = await import('./inspect-6UYAAXH7.js');
4797
- const { DEFAULT_UNIT_NAME } = await import('./install-PYNCWSTV.js');
4799
+ const { DEFAULT_UNIT_NAME } = await import('./install-HKOVISUP.js');
4798
4800
  const facts = inspectService(DEFAULT_UNIT_NAME, path2.dirname(configPath), realInspectProbes());
4799
4801
  return facts === void 0 ? void 0 : { unit: facts.unit, running: facts.mainPid !== void 0, delegated: facts.delegate };
4800
4802
  })();
@@ -4807,6 +4809,7 @@ Next:
4807
4809
  concurrency,
4808
4810
  // A hold is only true of a runner that is running.
4809
4811
  housekeeping: processState.state === "running" ? housekeeping : { ...housekeeping, holding: void 0 },
4812
+ pendingUpdate: processState.state === "running" ? pendingUpdate : void 0,
4810
4813
  jobs: all.map(({ dirName, job }) => ({ ...withoutItemKey(job), jobDir: path2.join(jobsDir(configPath), dirName) }))
4811
4814
  });
4812
4815
  return;
@@ -4821,14 +4824,15 @@ Next:
4821
4824
  now: /* @__PURE__ */ new Date(),
4822
4825
  recent: Boolean(opts.recent),
4823
4826
  housekeeping,
4827
+ pendingUpdate,
4824
4828
  service
4825
4829
  })}
4826
4830
  `
4827
4831
  );
4828
4832
  });
4829
4833
  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) => {
4830
- const { defaultRunnerConfigPath } = await import('./config-X45X7AS4.js');
4831
- const { listJobFiles } = await import('./loop-DBF3UJAD.js');
4834
+ const { defaultRunnerConfigPath } = await import('./config-MKBX2ZQD.js');
4835
+ const { listJobFiles } = await import('./loop-3FNROLW7.js');
4832
4836
  const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-H55NWW4H.js');
4833
4837
  const configPath = opts.config ?? defaultRunnerConfigPath();
4834
4838
  const item = parseTrackerNumber(itemArg);
@@ -5,9 +5,9 @@ import './chunk-I2UOAV7X.js';
5
5
  import { readJobFile } from './chunk-T6OIJQRT.js';
6
6
  import './chunk-PTW6W5NR.js';
7
7
  import { currentLink, execStartCommand } from './chunk-TI7B7UEO.js';
8
- import { detectMachine } from './chunk-472KC6JV.js';
9
- import './chunk-BREEX2Z7.js';
10
- import { installService, uninstallService, realTaskScheduler } from './chunk-NTLGWCWK.js';
8
+ import { detectMachine } from './chunk-BEZSECPA.js';
9
+ import './chunk-E5DC4VZL.js';
10
+ import { installService, uninstallService, realTaskScheduler } from './chunk-TFIOXPZT.js';
11
11
  import './chunk-FBTE2A2X.js';
12
12
  import './chunk-JKIWMRFH.js';
13
13
  import { realLima } from './chunk-77MM5RYD.js';
@@ -15,12 +15,12 @@ import { writeLaunchAgent, launchAgentPath } from './chunk-LF6MLJCY.js';
15
15
  import './chunk-3FMPZPJQ.js';
16
16
  import './chunk-N5FOE5PS.js';
17
17
  import './chunk-OGFGZQA3.js';
18
- import './chunk-VVIRHTH4.js';
18
+ import './chunk-2GBCTEN4.js';
19
19
  import './chunk-QOZKPLVJ.js';
20
- import './chunk-JSUUXA5W.js';
20
+ import './chunk-CJGQQZWB.js';
21
21
  import './chunk-CX22S5BA.js';
22
- import './chunk-6CXYORUS.js';
23
- import './chunk-S6IUUNCD.js';
22
+ import './chunk-QKFB4K7X.js';
23
+ import './chunk-RSNSZ2LJ.js';
24
24
  import './chunk-DTDZXDQ3.js';
25
25
  import './chunk-ZQ5JGHUO.js';
26
26
  import './chunk-BFESLKPP.js';
@@ -30,10 +30,10 @@ import './chunk-IU4NZROR.js';
30
30
  import './chunk-USO2DKBD.js';
31
31
  import './chunk-N6LURUEF.js';
32
32
  import './chunk-YRYMNBGQ.js';
33
- import { runnerVmOf, loadRunnerConfig } from './chunk-M2PBLRB7.js';
33
+ import { runnerVmOf, loadRunnerConfig } from './chunk-XR3BJN33.js';
34
34
  import './chunk-UXYLWVTQ.js';
35
35
  import './chunk-7RQ73DLO.js';
36
- import './chunk-M6G7TJVF.js';
36
+ import './chunk-4Q7OMKAT.js';
37
37
  import './chunk-WZBHBH3J.js';
38
38
  import './chunk-RWQWPZB4.js';
39
39
  import './chunk-ZJSNLVCE.js';
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'node:module';
3
+ export { DEFAULT_CHECK_TIME_LIMIT_MINUTES, DEFAULT_UPDATE_MAX_WAIT_HOURS, RunnerConfigError, builtinKind, checkHooks, defaultRunnerConfigPath, hasRunnerBlock, isBuiltinContainer, isBuiltinProcess, isBuiltinVm, loadRunnerConfig, resolveBuild, resolveHousekeeping, runnerVmOf } from './chunk-XR3BJN33.js';
4
+ import './chunk-UXYLWVTQ.js';
5
+ import './chunk-7RQ73DLO.js';
6
+ import './chunk-4Q7OMKAT.js';
7
+ import './chunk-BYT5O5RV.js';
8
+ import './chunk-VNVZDWO3.js';
9
+ import './chunk-Z5GEFMRW.js';
10
+
11
+ createRequire(import.meta.url);
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { childEnvironment, createDockerHost, spawnRun } from './chunk-VVIRHTH4.js';
3
+ export { childEnvironment, createDockerHost, spawnRun } from './chunk-2GBCTEN4.js';
4
4
  import './chunk-QOZKPLVJ.js';
5
- import './chunk-JSUUXA5W.js';
5
+ import './chunk-CJGQQZWB.js';
6
6
  import './chunk-CX22S5BA.js';
7
7
  import './chunk-IU4NZROR.js';
8
8
  import './chunk-7RQ73DLO.js';
9
- import './chunk-M6G7TJVF.js';
9
+ import './chunk-4Q7OMKAT.js';
10
10
  import './chunk-YT35WGIP.js';
11
11
  import './chunk-BYT5O5RV.js';
12
12
  import './chunk-ZM2IMMYN.js';
@@ -1,22 +1,22 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { needsClaudeCredential, claudeCredentialCheck, missingPermissionOf, missingPermissionFix } from './chunk-ESZJ5QIC.js';
3
+ import { needsClaudeCredential, claudeCredentialCheck, missingPermissionOf, missingPermissionFix } from './chunk-R7BJYFD2.js';
4
4
  import { launcherCheck } from './chunk-PTW6W5NR.js';
5
5
  import './chunk-TI7B7UEO.js';
6
6
  import { freeBytes, formatBytes } from './chunk-YYYRBYWG.js';
7
7
  import { RepoFilter } from './chunk-TBT347UY.js';
8
- import './chunk-MC6J453K.js';
9
- import { detectMachine, supportsContainerBuilds, describeMachineDocker, reachDockerStep, supportsMicroVmBuilds, microVmArchSupported, microVmAssetsPinned } from './chunk-472KC6JV.js';
10
- import { MIN_ENGINE_MAJOR } from './chunk-BREEX2Z7.js';
8
+ import './chunk-7C4T5BGN.js';
9
+ import { detectMachine, supportsContainerBuilds, describeMachineDocker, reachDockerStep, supportsMicroVmBuilds, microVmArchSupported, microVmAssetsPinned } from './chunk-BEZSECPA.js';
10
+ import { MIN_ENGINE_MAJOR } from './chunk-E5DC4VZL.js';
11
11
  import './chunk-3FMPZPJQ.js';
12
12
  import './chunk-N5FOE5PS.js';
13
13
  import './chunk-OGFGZQA3.js';
14
- import { resolveDevcontainerCli, spawnRun } from './chunk-VVIRHTH4.js';
14
+ import { resolveDevcontainerCli, spawnRun } from './chunk-2GBCTEN4.js';
15
15
  import { locateRecipe, assertBuildable, readRecipe, RecipeError } from './chunk-QOZKPLVJ.js';
16
- import { buildxState } from './chunk-JSUUXA5W.js';
16
+ import { buildxState } from './chunk-CJGQQZWB.js';
17
17
  import { CLAUDE_CODE_VERSION } from './chunk-CX22S5BA.js';
18
- import './chunk-6CXYORUS.js';
19
- import './chunk-S6IUUNCD.js';
18
+ import './chunk-QKFB4K7X.js';
19
+ import './chunk-RSNSZ2LJ.js';
20
20
  import { getJson, WorkCommandError, signatureRefusalMessage } from './chunk-DTDZXDQ3.js';
21
21
  import './chunk-ZQ5JGHUO.js';
22
22
  import './chunk-BFESLKPP.js';
@@ -26,10 +26,10 @@ import { compareVersions } from './chunk-IU4NZROR.js';
26
26
  import './chunk-USO2DKBD.js';
27
27
  import './chunk-N6LURUEF.js';
28
28
  import './chunk-YRYMNBGQ.js';
29
- import { builtinKind } from './chunk-M2PBLRB7.js';
29
+ import { builtinKind } from './chunk-XR3BJN33.js';
30
30
  import { allowHostProblem, MAX_ALLOW_HOSTS } from './chunk-UXYLWVTQ.js';
31
31
  import { parseSize } from './chunk-7RQ73DLO.js';
32
- import './chunk-M6G7TJVF.js';
32
+ import './chunk-4Q7OMKAT.js';
33
33
  import './chunk-WZBHBH3J.js';
34
34
  import { defaultGitRunner } from './chunk-RWQWPZB4.js';
35
35
  import './chunk-ZJSNLVCE.js';
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { CAPTURE_LIMIT_BYTES, ExecConnectionError, HANDSHAKE_TIMEOUT_MS, execCapture, runExec, runVmExec, vmExecArgs, waitForAgent } from './chunk-6CXYORUS.js';
4
- import './chunk-S6IUUNCD.js';
5
- import './chunk-M6G7TJVF.js';
3
+ export { CAPTURE_LIMIT_BYTES, ExecConnectionError, HANDSHAKE_TIMEOUT_MS, execCapture, runExec, runVmExec, vmExecArgs, waitForAgent } from './chunk-QKFB4K7X.js';
4
+ import './chunk-RSNSZ2LJ.js';
5
+ import './chunk-4Q7OMKAT.js';
6
6
  import './chunk-BYT5O5RV.js';
7
7
  import './chunk-Z5GEFMRW.js';
8
8
 
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { DOCKERD_LOG, HELPER_PATH, realGuestHost, relayPortsFrom, runGuestInit } from './chunk-V42JY4F6.js';
4
- import './chunk-S6IUUNCD.js';
5
- import './chunk-M6G7TJVF.js';
3
+ export { DOCKERD_LOG, HELPER_PATH, realGuestHost, relayPortsFrom, runGuestInit } from './chunk-HYZRY4KZ.js';
4
+ import './chunk-RSNSZ2LJ.js';
5
+ import './chunk-4Q7OMKAT.js';
6
6
  import './chunk-BYT5O5RV.js';
7
7
  import './chunk-Z5GEFMRW.js';
8
8
 
package/dist/index.js CHANGED
@@ -22,5 +22,5 @@ if (argv[0] === "statusline") {
22
22
  process.exit(0);
23
23
  }
24
24
  (await import('./hook-fast-AQCAQIA6.js')).recordLinkExitFailure(argv);
25
- var { runCli } = await import('./cli-ZCWMJCEK.js');
25
+ var { runCli } = await import('./cli-RQZXTOEI.js');
26
26
  await runCli(process.argv);
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { npmSupportsProvenance } from './chunk-YETTWTAY.js';
4
- import { readConfigObject, RunnerInitError } from './chunk-MC6J453K.js';
5
- import './chunk-472KC6JV.js';
6
- import './chunk-BREEX2Z7.js';
4
+ import { readConfigObject, RunnerInitError } from './chunk-7C4T5BGN.js';
5
+ import './chunk-BEZSECPA.js';
6
+ import './chunk-E5DC4VZL.js';
7
7
  import { VM_SERVICE_NAME } from './chunk-FBTE2A2X.js';
8
8
  import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-JKIWMRFH.js';
9
9
  import { writeLaunchAgent } from './chunk-LF6MLJCY.js';
10
10
  import './chunk-3FMPZPJQ.js';
11
11
  import './chunk-N5FOE5PS.js';
12
12
  import './chunk-OGFGZQA3.js';
13
- import './chunk-VVIRHTH4.js';
13
+ import './chunk-2GBCTEN4.js';
14
14
  import './chunk-QOZKPLVJ.js';
15
- import './chunk-JSUUXA5W.js';
15
+ import './chunk-CJGQQZWB.js';
16
16
  import './chunk-CX22S5BA.js';
17
- import './chunk-6CXYORUS.js';
18
- import './chunk-S6IUUNCD.js';
17
+ import './chunk-QKFB4K7X.js';
18
+ import './chunk-RSNSZ2LJ.js';
19
19
  import './chunk-DTDZXDQ3.js';
20
20
  import './chunk-ZQ5JGHUO.js';
21
21
  import './chunk-BFESLKPP.js';
@@ -25,10 +25,10 @@ import './chunk-IU4NZROR.js';
25
25
  import './chunk-USO2DKBD.js';
26
26
  import './chunk-N6LURUEF.js';
27
27
  import './chunk-YRYMNBGQ.js';
28
- import { resolveBuild, resolveHousekeeping } from './chunk-M2PBLRB7.js';
28
+ import { resolveBuild, resolveHousekeeping } from './chunk-XR3BJN33.js';
29
29
  import './chunk-UXYLWVTQ.js';
30
30
  import { parseSize } from './chunk-7RQ73DLO.js';
31
- import './chunk-M6G7TJVF.js';
31
+ import './chunk-4Q7OMKAT.js';
32
32
  import './chunk-WZBHBH3J.js';
33
33
  import './chunk-RWQWPZB4.js';
34
34
  import './chunk-ZJSNLVCE.js';
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { PLACEHOLDER_MARKER, RunnerInitError, isPlaceholderCommand, readConfigObject, runRunnerInit } from './chunk-MC6J453K.js';
4
- import './chunk-472KC6JV.js';
5
- import './chunk-BREEX2Z7.js';
3
+ export { PLACEHOLDER_MARKER, RunnerInitError, isPlaceholderCommand, readConfigObject, runRunnerInit } from './chunk-7C4T5BGN.js';
4
+ import './chunk-BEZSECPA.js';
5
+ import './chunk-E5DC4VZL.js';
6
6
  import './chunk-3FMPZPJQ.js';
7
7
  import './chunk-N5FOE5PS.js';
8
8
  import './chunk-OGFGZQA3.js';
9
- import './chunk-VVIRHTH4.js';
9
+ import './chunk-2GBCTEN4.js';
10
10
  import './chunk-QOZKPLVJ.js';
11
- import './chunk-JSUUXA5W.js';
11
+ import './chunk-CJGQQZWB.js';
12
12
  import './chunk-CX22S5BA.js';
13
- import './chunk-6CXYORUS.js';
14
- import './chunk-S6IUUNCD.js';
13
+ import './chunk-QKFB4K7X.js';
14
+ import './chunk-RSNSZ2LJ.js';
15
15
  import './chunk-DTDZXDQ3.js';
16
16
  import './chunk-ZQ5JGHUO.js';
17
17
  import './chunk-BFESLKPP.js';
@@ -23,7 +23,7 @@ import './chunk-N6LURUEF.js';
23
23
  import './chunk-YRYMNBGQ.js';
24
24
  import './chunk-UXYLWVTQ.js';
25
25
  import './chunk-7RQ73DLO.js';
26
- import './chunk-M6G7TJVF.js';
26
+ import './chunk-4Q7OMKAT.js';
27
27
  import './chunk-WZBHBH3J.js';
28
28
  import './chunk-RWQWPZB4.js';
29
29
  import './chunk-ZJSNLVCE.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-R2UYH4QV.js';
3
+ import { summarizeChecks, summaryText, renderDoctorText } from './chunk-EOWWTFUU.js';
4
4
  import './chunk-F47JBIAW.js';
5
5
  import './chunk-BKO6JEZI.js';
6
6
  import './chunk-DTDZXDQ3.js';
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { DEFAULT_UNIT_NAME, installService, uninstallService, unitPathFor } from './chunk-NTLGWCWK.js';
3
+ export { DEFAULT_UNIT_NAME, installService, uninstallService, unitPathFor } from './chunk-TFIOXPZT.js';
4
4
  import './chunk-FBTE2A2X.js';
5
5
  import './chunk-JKIWMRFH.js';
6
- import './chunk-M2PBLRB7.js';
6
+ import './chunk-XR3BJN33.js';
7
7
  import './chunk-UXYLWVTQ.js';
8
8
  import './chunk-7RQ73DLO.js';
9
- import './chunk-M6G7TJVF.js';
9
+ import './chunk-4Q7OMKAT.js';
10
10
  import './chunk-BYT5O5RV.js';
11
11
  import './chunk-ZM2IMMYN.js';
12
12
  import './chunk-VNVZDWO3.js';
@@ -1,34 +1,35 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { RunnerStartError, listJobFiles, probeCredentials, requestStop, runnerProcessState, start, tick, watchTick } from './chunk-ERHJETKP.js';
3
+ export { RunnerStartError, listJobFiles, probeCredentials, requestStop, runnerProcessState, start, tick, watchTick } from './chunk-3YFCWYBU.js';
4
+ import './chunk-UGP76IZ5.js';
4
5
  import './chunk-3JVYMD4G.js';
5
6
  import './chunk-I2UOAV7X.js';
6
7
  import './chunk-YETTWTAY.js';
7
- import './chunk-KZ5M4QOB.js';
8
+ import './chunk-BHOBM3IZ.js';
8
9
  import './chunk-T6OIJQRT.js';
9
- import './chunk-PDTSUOVT.js';
10
- import './chunk-UGP76IZ5.js';
10
+ import './chunk-FI5UYJMQ.js';
11
+ import './chunk-O765JR4W.js';
11
12
  import './chunk-HKUH5AR2.js';
12
- import './chunk-V42JY4F6.js';
13
+ import './chunk-HYZRY4KZ.js';
13
14
  import './chunk-Y6P5XX2B.js';
14
15
  import './chunk-HHJDN6AU.js';
15
- import './chunk-ESZJ5QIC.js';
16
+ import './chunk-R7BJYFD2.js';
16
17
  import './chunk-TI7B7UEO.js';
17
18
  import './chunk-YYYRBYWG.js';
18
19
  import './chunk-TBT347UY.js';
19
- import './chunk-MC6J453K.js';
20
- import './chunk-472KC6JV.js';
21
- import './chunk-BREEX2Z7.js';
20
+ import './chunk-7C4T5BGN.js';
21
+ import './chunk-BEZSECPA.js';
22
+ import './chunk-E5DC4VZL.js';
22
23
  import './chunk-JKIWMRFH.js';
23
24
  import './chunk-3FMPZPJQ.js';
24
25
  import './chunk-N5FOE5PS.js';
25
26
  import './chunk-OGFGZQA3.js';
26
- import './chunk-VVIRHTH4.js';
27
+ import './chunk-2GBCTEN4.js';
27
28
  import './chunk-QOZKPLVJ.js';
28
- import './chunk-JSUUXA5W.js';
29
+ import './chunk-CJGQQZWB.js';
29
30
  import './chunk-CX22S5BA.js';
30
- import './chunk-6CXYORUS.js';
31
- import './chunk-S6IUUNCD.js';
31
+ import './chunk-QKFB4K7X.js';
32
+ import './chunk-RSNSZ2LJ.js';
32
33
  import './chunk-F7CU5ABH.js';
33
34
  import './chunk-BKO6JEZI.js';
34
35
  import './chunk-DTDZXDQ3.js';
@@ -40,10 +41,10 @@ import './chunk-IU4NZROR.js';
40
41
  import './chunk-USO2DKBD.js';
41
42
  import './chunk-N6LURUEF.js';
42
43
  import './chunk-YRYMNBGQ.js';
43
- import './chunk-M2PBLRB7.js';
44
+ import './chunk-XR3BJN33.js';
44
45
  import './chunk-UXYLWVTQ.js';
45
46
  import './chunk-7RQ73DLO.js';
46
- import './chunk-M6G7TJVF.js';
47
+ import './chunk-4Q7OMKAT.js';
47
48
  import './chunk-GQD22KKN.js';
48
49
  import './chunk-WZBHBH3J.js';
49
50
  import './chunk-5QRP3MVS.js';
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { describeMachineDocker, detectMachine, microVmArchSupported, microVmAssetsPinned, reachDockerStep, supportsContainerBuilds, supportsMicroVmBuilds } from './chunk-472KC6JV.js';
4
- import './chunk-BREEX2Z7.js';
3
+ export { describeMachineDocker, detectMachine, microVmArchSupported, microVmAssetsPinned, reachDockerStep, supportsContainerBuilds, supportsMicroVmBuilds } from './chunk-BEZSECPA.js';
4
+ import './chunk-E5DC4VZL.js';
5
5
  import './chunk-3FMPZPJQ.js';
6
6
  import './chunk-N5FOE5PS.js';
7
7
  import './chunk-OGFGZQA3.js';
8
- import './chunk-VVIRHTH4.js';
8
+ import './chunk-2GBCTEN4.js';
9
9
  import './chunk-QOZKPLVJ.js';
10
- import './chunk-JSUUXA5W.js';
10
+ import './chunk-CJGQQZWB.js';
11
11
  import './chunk-CX22S5BA.js';
12
- import './chunk-6CXYORUS.js';
13
- import './chunk-S6IUUNCD.js';
12
+ import './chunk-QKFB4K7X.js';
13
+ import './chunk-RSNSZ2LJ.js';
14
14
  import './chunk-DTDZXDQ3.js';
15
15
  import './chunk-ZQ5JGHUO.js';
16
16
  import './chunk-BFESLKPP.js';
@@ -22,7 +22,7 @@ import './chunk-N6LURUEF.js';
22
22
  import './chunk-YRYMNBGQ.js';
23
23
  import './chunk-UXYLWVTQ.js';
24
24
  import './chunk-7RQ73DLO.js';
25
- import './chunk-M6G7TJVF.js';
25
+ import './chunk-4Q7OMKAT.js';
26
26
  import './chunk-WZBHBH3J.js';
27
27
  import './chunk-RWQWPZB4.js';
28
28
  import './chunk-ZJSNLVCE.js';
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'node:module';
3
+ export { readPendingUpdate, writePendingUpdate } from './chunk-O765JR4W.js';
4
+ import './chunk-ZM2IMMYN.js';
5
+ import './chunk-Z5GEFMRW.js';
6
+
7
+ createRequire(import.meta.url);