@outerlayer/cli 0.34.0-next.20261028132110 → 0.34.0-next.20261028164329

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 (119) hide show
  1. package/dist/{agent-setup-MO7DHLV4.js → agent-setup-IVXRBFVV.js} +6 -6
  2. package/dist/{bridge-4DFOWIY2.js → bridge-4GRZFXJU.js} +2 -2
  3. package/dist/{build-3IZ6XHYN.js → build-SEJJWGTO.js} +7 -7
  4. package/dist/{build-disk-TEITBQKE.js → build-disk-EYRR3PBT.js} +5 -5
  5. package/dist/build-info.json +1 -1
  6. package/dist/{builder-S42B4STV.js → builder-T7B46P7T.js} +4 -4
  7. package/dist/{check-E47RDQFK.js → check-SPMUN5C4.js} +36 -36
  8. package/dist/{chunk-S25I6OCB.js → chunk-2EHDLYSL.js} +9 -9
  9. package/dist/{chunk-IZKUPAXF.js → chunk-3KGXXTMN.js} +1 -1
  10. package/dist/{chunk-NYMDS542.js → chunk-4YD7N6V3.js} +4 -4
  11. package/dist/{chunk-VJQQVTCS.js → chunk-5TXQFZHY.js} +1 -1
  12. package/dist/{chunk-NPTEYMBW.js → chunk-5W2YSWIW.js} +9 -4
  13. package/dist/{chunk-LBEYOL5K.js → chunk-7JSWRF5O.js} +2 -2
  14. package/dist/{chunk-BUVDDPOM.js → chunk-BBJ6BM5U.js} +1 -1
  15. package/dist/{chunk-QELQ6Y4I.js → chunk-CUAB7FAZ.js} +1 -1
  16. package/dist/{chunk-ZXQEBRCB.js → chunk-DCBFUUDL.js} +5 -5
  17. package/dist/{chunk-4557WV4R.js → chunk-EA2PQRCU.js} +2 -2
  18. package/dist/{chunk-GHZLVKA3.js → chunk-FUOKDHRB.js} +6 -6
  19. package/dist/{chunk-GHQW2BBX.js → chunk-GG5OE6MY.js} +2 -2
  20. package/dist/{chunk-6G3BG2GI.js → chunk-H7MGR2GN.js} +2 -2
  21. package/dist/{chunk-26WUFKYZ.js → chunk-HFOZTCTN.js} +1 -1
  22. package/dist/{chunk-FG564H3C.js → chunk-I2MFIT6X.js} +5 -5
  23. package/dist/{chunk-AJ3CC3HT.js → chunk-IPWKT5J7.js} +147 -29
  24. package/dist/{chunk-E3GX4WVJ.js → chunk-KH4774QT.js} +1 -1
  25. package/dist/{chunk-UAINHP2C.js → chunk-KPEMNHVF.js} +3 -3
  26. package/dist/{chunk-SH5JFBPO.js → chunk-KQDK4Q6A.js} +1 -1
  27. package/dist/{chunk-7XDF7PNF.js → chunk-MCPCOKHN.js} +2 -2
  28. package/dist/{chunk-JDQBJUXQ.js → chunk-MEIDQLXQ.js} +1 -1
  29. package/dist/{chunk-BRBZKIZG.js → chunk-MRLJK4GZ.js} +2 -2
  30. package/dist/{chunk-QGTJ5IJN.js → chunk-NCOL5RYI.js} +1 -1
  31. package/dist/{chunk-S44ZN3CV.js → chunk-OYQVLQP3.js} +52 -13
  32. package/dist/{chunk-HA46L5FG.js → chunk-P2PNBDUT.js} +5 -4
  33. package/dist/{chunk-XDCD4GD5.js → chunk-POND2SMT.js} +3 -3
  34. package/dist/{chunk-265SXBQ5.js → chunk-QGDGGLSD.js} +3 -3
  35. package/dist/{chunk-262MWE4Q.js → chunk-QGEGLZSY.js} +6 -6
  36. package/dist/{chunk-YMYU56JD.js → chunk-QI7JB2GU.js} +87 -23
  37. package/dist/{chunk-DKIZDYUX.js → chunk-ROQPDCRU.js} +1 -1
  38. package/dist/{chunk-47SFTQA5.js → chunk-RRXS4CWE.js} +2 -2
  39. package/dist/{chunk-2CW2QMSG.js → chunk-S6UM3N4R.js} +1 -1
  40. package/dist/{chunk-64LLUVJR.js → chunk-SAAVZ2BX.js} +1 -1
  41. package/dist/{chunk-7XZQTJOD.js → chunk-T3XPLCJG.js} +11 -5
  42. package/dist/{chunk-6MLX26T4.js → chunk-TDCHUEKY.js} +2 -2
  43. package/dist/{chunk-ORENXMHA.js → chunk-UXC3RQLF.js} +1 -1
  44. package/dist/{chunk-X2ZJL7GA.js → chunk-UZEIBWTP.js} +2 -2
  45. package/dist/{chunk-WHONZ53R.js → chunk-V2S2WRGD.js} +1 -1
  46. package/dist/{chunk-BEILLR5Q.js → chunk-W7E6IMEW.js} +3 -3
  47. package/dist/{chunk-ESK6EWAQ.js → chunk-WA3HIJVK.js} +3 -3
  48. package/dist/{chunk-TTUI3S6B.js → chunk-WH3FPBPO.js} +603 -45
  49. package/dist/{chunk-T664NDNT.js → chunk-XDAMLX2L.js} +5 -5
  50. package/dist/{chunk-JDYBPAPP.js → chunk-YF7W7B7Y.js} +24 -8
  51. package/dist/{chunk-ECCAFFAH.js → chunk-YIK5SGEN.js} +5 -5
  52. package/dist/{chunk-4N7BQBO4.js → chunk-YLPJOUVF.js} +5 -3
  53. package/dist/{chunk-TVDKDXW6.js → chunk-ZCA34T7R.js} +3 -3
  54. package/dist/{chunk-TZXJSNN4.js → chunk-ZCZY3Q55.js} +1 -1
  55. package/dist/{chunk-BTA5QOKD.js → chunk-ZTOJIRJH.js} +2 -2
  56. package/dist/{claude-launcher-TG7CHE3N.js → claude-launcher-7IC6QWR5.js} +1 -1
  57. package/dist/{cli-3V7AMF2V.js → cli-GKROH23V.js} +110 -110
  58. package/dist/{command-57COSNSG.js → command-XA6DOFL4.js} +24 -24
  59. package/dist/config-RSOCVUKC.js +17 -0
  60. package/dist/{connect-cmd-VBEYNPAK.js → connect-cmd-JFGDHFLA.js} +5 -5
  61. package/dist/{container-start-RS3S6WYE.js → container-start-ZDSVXSAL.js} +30 -30
  62. package/dist/{context-show-cmd-GMF7YMSN.js → context-show-cmd-XWLTP6R4.js} +6 -6
  63. package/dist/{control-plane-launch-4WRFVYNP.js → control-plane-launch-3MBWPYWZ.js} +5 -5
  64. package/dist/{demo-record-cmd-KM2UPWPL.js → demo-record-cmd-SIKNTSGI.js} +2 -2
  65. package/dist/{demo-voice-cmd-KFNEU2GR.js → demo-voice-cmd-SAB3QU4F.js} +11 -11
  66. package/dist/{docker-UP7EFFLL.js → docker-YMRPMDOW.js} +4 -4
  67. package/dist/{doctor-B2EZV6SJ.js → doctor-NVHAE4LS.js} +24 -24
  68. package/dist/{emit-artifact-cmd-NLCKM5TU.js → emit-artifact-cmd-TZTVQCFT.js} +10 -10
  69. package/dist/{emit-criteria-cmd-GO3TDUCG.js → emit-criteria-cmd-WH7JB4RQ.js} +7 -7
  70. package/dist/{emit-demo-cmd-EJBQHFR2.js → emit-demo-cmd-DNUVG5N7.js} +11 -11
  71. package/dist/{emit-finding-cmd-PHUHZLQ3.js → emit-finding-cmd-X5CBH4ZA.js} +7 -7
  72. package/dist/{emit-result-cmd-UJSWTGDG.js → emit-result-cmd-VCKNZ4RZ.js} +9 -9
  73. package/dist/{emit-step-cmd-M2JEWJ4Q.js → emit-step-cmd-IUXZZYKO.js} +7 -7
  74. package/dist/{exec-client-BQIZRROT.js → exec-client-U4544U2S.js} +3 -3
  75. package/dist/{find-unit-H5DKNRBG.js → find-unit-QYD2FMCP.js} +8 -8
  76. package/dist/{findings-cmd-O3VCFA55.js → findings-cmd-PLHBAQW4.js} +7 -7
  77. package/dist/{fleet-readiness-SXIYBEWC.js → fleet-readiness-F65CKZY5.js} +5 -5
  78. package/dist/{governing-source-QEXH6MIZ.js → governing-source-JFCTQXYK.js} +9 -9
  79. package/dist/{guest-init-DXXSPKHY.js → guest-init-MI4SEME4.js} +4 -4
  80. package/dist/{hook-fast-DPC75LFQ.js → hook-fast-GOH4T6SN.js} +1 -1
  81. package/dist/{host-checks-DN6HLRIW.js → host-checks-LEVAIIN4.js} +28 -28
  82. package/dist/{pending-V5FBWIJ4.js → host-key-OMLDWLNG.js} +3 -3
  83. package/dist/{image-tag-3KPTSRB4.js → image-tag-YJJONB64.js} +3 -3
  84. package/dist/index.js +4 -4
  85. package/dist/{init-SCUDJ6QI.js → init-JVKJTJNM.js} +21 -21
  86. package/dist/{init-6D3RKRRB.js → init-W3ATJYLX.js} +24 -22
  87. package/dist/{init-cmd-ELTRVJLG.js → init-cmd-XJOEU2PB.js} +10 -10
  88. package/dist/{init-update-4GUGHNS5.js → init-update-KX3FFQ5H.js} +8 -8
  89. package/dist/{install-cmd-6HGNO2HF.js → install-cmd-QTIIMO6B.js} +5 -5
  90. package/dist/{logs-HUENB7U4.js → logs-YVXVAYTD.js} +2 -2
  91. package/dist/{loop-LILQBIHK.js → loop-NNJN2XOW.js} +35 -35
  92. package/dist/{machine-UVPCJGJU.js → machine-OQOHEMJB.js} +21 -21
  93. package/dist/{mcp-serve-cmd-OFK3CS2T.js → mcp-serve-cmd-ECTAPDB3.js} +4 -4
  94. package/dist/{paths-VQ3ALYZ3.js → paths-M66LPPUF.js} +2 -2
  95. package/dist/{host-key-5P3ZL5XW.js → pending-7LC6XDRO.js} +3 -3
  96. package/dist/{pidfile-AVJFRZZT.js → pidfile-DSQOOAZV.js} +3 -3
  97. package/dist/{record-XE7Z3QGF.js → record-3KKIJ3XL.js} +3 -3
  98. package/dist/{runner-env-K4DOSDUV.js → runner-env-EX7YUIUH.js} +8 -8
  99. package/dist/{runner-identity-4RVY2MHX.js → runner-identity-LJWBXNM5.js} +4 -4
  100. package/dist/{runner-key-4OIOA3CD.js → runner-key-CAUO4RKG.js} +21 -21
  101. package/dist/{session-sender-N6QHL35T.js → session-sender-U2CTD7EX.js} +10 -10
  102. package/dist/{spec-cmd-EZGRJPUQ.js → spec-cmd-SAWQYHKM.js} +8 -8
  103. package/dist/{status-5RSSYZBU.js → status-IPIMYTG5.js} +28 -28
  104. package/dist/{sync-cmd-NEAZMEIL.js → sync-cmd-EBJQ5LMH.js} +9 -9
  105. package/dist/{update-steps-6JOHOMGM.js → update-steps-E2PP5DPR.js} +29 -29
  106. package/dist/{watch-FOY5LSSS.js → watch-6NRBX6VE.js} +9 -9
  107. package/dist/{work-claim-cmd-EJT55FZY.js → work-claim-cmd-SLVX2N4L.js} +12 -12
  108. package/dist/{work-cmd-KLPPJG4U.js → work-cmd-VSHZCXHQ.js} +7 -7
  109. package/dist/{work-comment-cmd-TT6TFF6Q.js → work-comment-cmd-3DCL7VHN.js} +8 -8
  110. package/dist/{work-demo-cmd-22PLEX4X.js → work-demo-cmd-SZJIKB5J.js} +7 -7
  111. package/dist/{work-logs-cmd-DWK5AYLK.js → work-logs-cmd-MRFSBMJM.js} +7 -7
  112. package/dist/{work-open-pr-cmd-MKHZBGA6.js → work-open-pr-cmd-N7GK7FUQ.js} +8 -8
  113. package/dist/{work-pr-cmd-P7PRHAJD.js → work-pr-cmd-HD5OIHUU.js} +7 -7
  114. package/dist/{work-proofs-cmd-7C22LBBE.js → work-proofs-cmd-H2GGE5HK.js} +8 -8
  115. package/dist/{work-proofs-record-SLIZUXUY.js → work-proofs-record-CJAFFWXG.js} +14 -14
  116. package/dist/{work-stop-cmd-U42TFT7X.js → work-stop-cmd-M6RIGF7S.js} +7 -7
  117. package/package.json +1 -1
  118. package/skill-pack/maintained/outerlayer-build/SKILL.md +22 -0
  119. package/dist/config-2EADRNJB.js +0 -17
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { detectActiveSession } from './chunk-IP7BIBXJ.js';
4
- import { autoConnect } from './chunk-BRBZKIZG.js';
5
- import { workPageUrl } from './chunk-26WUFKYZ.js';
4
+ import { autoConnect } from './chunk-MRLJK4GZ.js';
5
+ import { workPageUrl } from './chunk-HFOZTCTN.js';
6
6
  import { C } from './chunk-ANPNT6PM.js';
7
7
  import { sanitizeTerminal } from './chunk-VEVNGDTP.js';
8
- import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-IZKUPAXF.js';
9
- import { signRunnerRequest } from './chunk-VJQQVTCS.js';
8
+ import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-3KGXXTMN.js';
9
+ import { signRunnerRequest } from './chunk-5TXQFZHY.js';
10
10
  import { readRepoConnection } from './chunk-BJ3KTMDH.js';
11
11
  import { resolveRepoIdentity } from './chunk-GH2HEEOH.js';
12
12
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
@@ -471,7 +471,7 @@ async function runWorkLinkSession(opts) {
471
471
  return await linkSession(opts);
472
472
  } catch (err) {
473
473
  if (opts.logFailures) {
474
- const { logHookError } = await import('./hook-fast-DPC75LFQ.js');
474
+ const { logHookError } = await import('./hook-fast-GOH4T6SN.js');
475
475
  const reason = err instanceof Error ? err.message : String(err);
476
476
  logHookError(opts.home ?? homeFromEnv(opts.env ?? process.env), new Error(`work link-session #${opts.number} failed: ${reason}`));
477
477
  }
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { DEFAULT_CACHE_DISK, DEFAULT_BUILD_DISK } from './chunk-47SFTQA5.js';
4
- import { parseSize } from './chunk-HA46L5FG.js';
3
+ import { DEFAULT_CACHE_DISK, DEFAULT_BUILD_DISK } from './chunk-RRXS4CWE.js';
4
+ import { parseSize } from './chunk-P2PNBDUT.js';
5
5
  import { builderDiskPinned } from './chunk-D3CT6XQ4.js';
6
6
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
7
- import { isRefusedInConfig, resolveDestinations, isReservedVariable } from './chunk-4N7BQBO4.js';
7
+ import { isRefusedInConfig, resolveDestinations, isReservedVariable } from './chunk-YLPJOUVF.js';
8
8
  import { existsSync, statSync, accessSync, constants, readFileSync } from 'fs';
9
9
  import { hostname } from 'os';
10
10
  import { join } from 'path';
@@ -122,7 +122,8 @@ var DEFAULT_IDLE_LIMIT_MINUTES = 30;
122
122
  var DEFAULT_CHECK_TIME_LIMIT_MINUTES = 10;
123
123
  var CHECKS_KEYS = ["timeLimitMinutes"];
124
124
  var MAX_CHECK_TIME_LIMIT_MINUTES = 240;
125
- var DEFAULT_BUILD = { memory: "8g", cpus: 4, pids: 4096, disk: DEFAULT_BUILD_DISK, cacheDisk: DEFAULT_CACHE_DISK, variables: [] };
125
+ var DEFAULT_SETUP_MINUTES = 30;
126
+ var DEFAULT_BUILD = { memory: "8g", cpus: 4, pids: 4096, disk: DEFAULT_BUILD_DISK, setupMinutes: DEFAULT_SETUP_MINUTES, cacheDisk: DEFAULT_CACHE_DISK, variables: [] };
126
127
  function imageBuildOf(config) {
127
128
  if (builtinKind(config.hooks.provision) !== "vm") return "host";
128
129
  return config.build?.imageBuild ?? "vm";
@@ -130,11 +131,13 @@ function imageBuildOf(config) {
130
131
  function keepsHostBuilder(config, builderDiskIsPinned) {
131
132
  return !(imageBuildOf(config) === "vm" && (builderDiskIsPinned ?? builderDiskPinned()));
132
133
  }
133
- var BUILD_KEYS = ["memory", "cpus", "pids", "disk", "cacheDisk", "variables", "destinations", "allowHosts", "imageBuild", "egress"];
134
+ var BUILD_KEYS = ["memory", "cpus", "pids", "disk", "setupMinutes", "cacheDisk", "variables", "destinations", "allowHosts", "imageBuild", "egress"];
134
135
  var EGRESS_KEYS = ["connectionsPerSecond", "connectionBurst", "openConnections", "sendBytesPerSecond", "flagHosts"];
135
- var HOUSEKEEPING_KEYS = ["jobsKeepDays", "buildCacheMax", "minFreeDisk"];
136
+ var HOUSEKEEPING_KEYS = ["jobsKeepDays", "buildCacheMax", "minFreeDisk", "savedStateMax"];
136
137
  var DEFAULT_JOBS_KEEP_DAYS = 30;
137
138
  var DEFAULT_BUILD_CACHE_MAX = "20g";
139
+ var DEFAULT_SAVED_STATE_MAX = "20g";
140
+ var DEFAULT_SAVED_STATE_MAX_BYTES = 20 * 1024 ** 3;
138
141
  var VARIABLE_NAME = /^[A-Za-z_][A-Za-z0-9_]{0,254}$/;
139
142
  var MAX_VARIABLES = 100;
140
143
  function defaultRunnerConfigPath(home = homeFromEnv()) {
@@ -406,10 +409,19 @@ function resolveHousekeeping(configPath, block, buildDisk) {
406
409
  if (bytes === void 0) fail(configPath, "runner.housekeeping.buildCacheMax", 'must be a size such as "20g", or "off"');
407
410
  buildCacheMax = bytes;
408
411
  }
412
+ let savedStateMax;
413
+ if (keys.savedStateMax === "off") {
414
+ savedStateMax = "off";
415
+ } else {
416
+ const text = keys.savedStateMax ?? DEFAULT_SAVED_STATE_MAX;
417
+ const bytes = typeof text === "string" ? wholeBytes(parseSize(text)) : void 0;
418
+ if (bytes === void 0) fail(configPath, "runner.housekeeping.savedStateMax", 'must be a size such as "20g", or "off"');
419
+ savedStateMax = bytes;
420
+ }
409
421
  const minText = keys.minFreeDisk ?? buildDisk;
410
422
  const minFreeDisk = typeof minText === "string" ? wholeBytes(parseSize(minText)) : void 0;
411
423
  if (minFreeDisk === void 0) fail(configPath, "runner.housekeeping.minFreeDisk", 'must be a size such as "40g"');
412
- return { jobsKeepDays: keys.jobsKeepDays ?? DEFAULT_JOBS_KEEP_DAYS, buildCacheMax, minFreeDisk };
424
+ return { jobsKeepDays: keys.jobsKeepDays ?? DEFAULT_JOBS_KEEP_DAYS, buildCacheMax, minFreeDisk, savedStateMax };
413
425
  }
414
426
  function resolveChecks(configPath, block) {
415
427
  const given = block ?? {};
@@ -469,6 +481,9 @@ function resolveBuild(configPath, block) {
469
481
  if (given.pids !== void 0 && (typeof given.pids !== "number" || !Number.isInteger(given.pids) || given.pids < 1)) {
470
482
  fail(configPath, "runner.build.pids", "must be a whole number of at least 1");
471
483
  }
484
+ if (given.setupMinutes !== void 0 && (typeof given.setupMinutes !== "number" || !Number.isInteger(given.setupMinutes) || given.setupMinutes < 1)) {
485
+ fail(configPath, "runner.build.setupMinutes", "must be a whole number of at least 1");
486
+ }
472
487
  const variables = [];
473
488
  if (given.variables !== void 0) {
474
489
  if (!Array.isArray(given.variables)) fail(configPath, "runner.build.variables", "must be a list of variable names");
@@ -501,6 +516,7 @@ function resolveBuild(configPath, block) {
501
516
  cpus: given.cpus ?? DEFAULT_BUILD.cpus,
502
517
  pids: given.pids ?? DEFAULT_BUILD.pids,
503
518
  disk: given.disk ?? DEFAULT_BUILD.disk,
519
+ setupMinutes: given.setupMinutes ?? DEFAULT_BUILD.setupMinutes,
504
520
  cacheDisk: given.cacheDisk ?? DEFAULT_BUILD.cacheDisk,
505
521
  variables,
506
522
  ...destinations.length === 0 ? {} : { destinations },
@@ -535,4 +551,4 @@ function egressLimitsOf(config) {
535
551
  return resolveEgress(config.build?.egress, config.managed === true);
536
552
  }
537
553
 
538
- export { DEFAULT_CHECK_TIME_LIMIT_MINUTES, DEFAULT_UPDATE_MAX_WAIT_HOURS, EGRESS_SWITCHABLE_KEYS, MAX_ALLOW_HOSTS, RunnerConfigError, allowHostProblem, builtinKind, checkHooks, defaultRunnerConfigPath, egressSummary, emptyEgressCounts, hasRunnerBlock, hostAllowed, imageBuildOf, isBuiltinContainer, isBuiltinProcess, isBuiltinVm, keepsHostBuilder, loadRunnerConfig, optionalEgress, resolveBuild, resolveHousekeeping, runnerCredentialProblem, runnerVmOf, systemClock };
554
+ export { DEFAULT_CHECK_TIME_LIMIT_MINUTES, DEFAULT_SAVED_STATE_MAX_BYTES, DEFAULT_SETUP_MINUTES, DEFAULT_UPDATE_MAX_WAIT_HOURS, EGRESS_SWITCHABLE_KEYS, MAX_ALLOW_HOSTS, RunnerConfigError, allowHostProblem, builtinKind, checkHooks, defaultRunnerConfigPath, egressSummary, emptyEgressCounts, hasRunnerBlock, hostAllowed, imageBuildOf, isBuiltinContainer, isBuiltinProcess, isBuiltinVm, keepsHostBuilder, loadRunnerConfig, optionalEgress, resolveBuild, resolveHousekeeping, runnerCredentialProblem, runnerVmOf, systemClock };
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { criteriaOf, loadCitationFinder, hostItemsOf, testFileMatcher, criterionInputs, NO_CITING_TEST_REASON, NO_VERDICT_REASON, planCriteria, NO_TEST_FILES_REASON, MAX_TEST_FILE_BYTES, MAX_TEST_FILES } from './chunk-UE2C4STC.js';
4
- import { WorkCommandError, resolveCredentials, getJson } from './chunk-T664NDNT.js';
4
+ import { WorkCommandError, resolveCredentials, getJson } from './chunk-XDAMLX2L.js';
5
5
  import { C } from './chunk-ANPNT6PM.js';
6
6
  import { sanitizeTerminal } from './chunk-VEVNGDTP.js';
7
- import { defaultFetch } from './chunk-IZKUPAXF.js';
7
+ import { defaultFetch } from './chunk-3KGXXTMN.js';
8
8
  import { resolveRepoIdentity } from './chunk-GH2HEEOH.js';
9
9
  import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
10
10
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
@@ -177,14 +177,14 @@ function governingDir(cwd) {
177
177
  async function testProofMode(cwd) {
178
178
  const dir = governingDir(cwd);
179
179
  if (dir === void 0) return "any";
180
- const { testProofIn } = await import('./host-checks-DN6HLRIW.js');
180
+ const { testProofIn } = await import('./host-checks-LEVAIIN4.js');
181
181
  return testProofIn(dir);
182
182
  }
183
183
  async function judgeCheckName(cwd) {
184
184
  const dir = governingDir(cwd);
185
185
  if (dir === void 0) return {};
186
186
  if (!existsSync(dir)) return { note: `the governed context at ${dir} is not readable` };
187
- const { checksIn, isJudgeCheck } = await import('./host-checks-DN6HLRIW.js');
187
+ const { checksIn, isJudgeCheck } = await import('./host-checks-LEVAIIN4.js');
188
188
  const quiet = { line: () => void 0, error: () => void 0 };
189
189
  const check = checksIn(dir, quiet, "").checks.find((c) => isJudgeCheck(c) && c.judge.subjects === "criteria");
190
190
  return check === void 0 ? {} : { name: check.name };
@@ -327,7 +327,7 @@ async function runWorkProofs(opts) {
327
327
  async function runWorkProofsCommand(opts) {
328
328
  try {
329
329
  if (opts.record) {
330
- const { runWorkProofsRecord } = await import('./work-proofs-record-SLIZUXUY.js');
330
+ const { runWorkProofsRecord } = await import('./work-proofs-record-CJAFFWXG.js');
331
331
  const result2 = await runWorkProofsRecord(opts);
332
332
  process.exitCode = result2.exitCode;
333
333
  return;
@@ -841,7 +841,7 @@ function withProxyWarningHidden(options) {
841
841
  if (given.split(/\s+/).includes(PROXY_WARNING_FLAG)) return given;
842
842
  return given === "" ? PROXY_WARNING_FLAG : `${given} ${PROXY_WARNING_FLAG}`;
843
843
  }
844
- function runnerLiterals(repository, repositories = [], unpinnedRuntimes) {
844
+ function runnerLiterals(repository, repositories = [], unpinnedRuntimes, missingSetupScripts) {
845
845
  return {
846
846
  OUTERLAYER_JOB_DIR: JOB_MOUNT,
847
847
  HOME: BUILD_HOME,
@@ -858,7 +858,9 @@ function runnerLiterals(repository, repositories = [], unpinnedRuntimes) {
858
858
  )
859
859
  },
860
860
  // What the build's command reads to find the runtimes each repository uses but does not pin, on the universal image.
861
- ...unpinnedRuntimes === void 0 ? {} : { OUTERLAYER_UNPINNED_RUNTIMES: JSON.stringify(unpinnedRuntimes) }
861
+ ...unpinnedRuntimes === void 0 ? {} : { OUTERLAYER_UNPINNED_RUNTIMES: JSON.stringify(unpinnedRuntimes) },
862
+ // What the build's command reads to find the repositories that have no `.outerlayer/setup.sh`, so it can write one.
863
+ ...missingSetupScripts === void 0 || missingSetupScripts.length === 0 ? {} : { OUTERLAYER_MISSING_SETUP_SCRIPTS: JSON.stringify(missingSetupScripts) }
862
864
  };
863
865
  }
864
866
  function containerBuiltInAddress(name) {
@@ -948,7 +950,7 @@ function buildEnvironment(input) {
948
950
  literals: {
949
951
  ...recipe,
950
952
  ...destinations,
951
- ...runnerLiterals(input.repository, repositoriesOf({ repositories: input.repositories, repository: input.repository, branch: input.branch }), input.unpinnedRuntimes),
953
+ ...runnerLiterals(input.repository, repositoriesOf({ repositories: input.repositories, repository: input.repository, branch: input.branch }), input.unpinnedRuntimes, input.missingSetupScripts),
952
954
  ...builtInLiterals,
953
955
  ...authored,
954
956
  ...hooks
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { readNewestDemo } from './chunk-ER6KQCVJ.js';
4
- import { runEmitArtifact } from './chunk-BEILLR5Q.js';
4
+ import { runEmitArtifact } from './chunk-W7E6IMEW.js';
5
5
  import { VoiceDownloadError, downloadPinned, sha256OfFile } from './chunk-2PGI6RDE.js';
6
6
  import { VOICE_PACK_FILES, VOICE_PACK_VERSION } from './chunk-D3CT6XQ4.js';
7
7
  import { detectActiveSession } from './chunk-IP7BIBXJ.js';
8
- import { autoConnect } from './chunk-BRBZKIZG.js';
8
+ import { autoConnect } from './chunk-MRLJK4GZ.js';
9
9
  import { C } from './chunk-ANPNT6PM.js';
10
- import { defaultFetch, resolveGatewayCredentials } from './chunk-IZKUPAXF.js';
10
+ import { defaultFetch, resolveGatewayCredentials } from './chunk-3KGXXTMN.js';
11
11
  import { resolveRepoIdentity } from './chunk-GH2HEEOH.js';
12
12
  import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
13
13
  import { ARTIFACT_MAX_BYTES, ARTIFACT_MAX_CAPTION_LENGTH, DEMO_RECORD_MEDIA_TYPE, ARTIFACT_MAX_REPLACES_TARGETS, DEMO_MANIFEST_LATEST_VERSION, DemoManifestSchema, ARTIFACT_KINDS } from './chunk-IXRUVR25.js';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-2CW2QMSG.js';
3
+ import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-S6UM3N4R.js';
4
4
  import { readFileSync, existsSync, rmSync, mkdirSync, writeFileSync, renameSync } from 'fs';
5
5
  import { join } from 'path';
6
6
 
@@ -2,9 +2,9 @@
2
2
  import { createRequire } from 'node:module';
3
3
  import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
4
4
  import { detectActiveSession } from './chunk-IP7BIBXJ.js';
5
- import { autoConnect } from './chunk-BRBZKIZG.js';
5
+ import { autoConnect } from './chunk-MRLJK4GZ.js';
6
6
  import { C } from './chunk-ANPNT6PM.js';
7
- import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-IZKUPAXF.js';
7
+ import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-3KGXXTMN.js';
8
8
  import { resolveRepoIdentity } from './chunk-GH2HEEOH.js';
9
9
  import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
10
10
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
@@ -252,7 +252,7 @@ async function runClaudeLauncher(args, deps = {}) {
252
252
  return 1;
253
253
  }
254
254
  } else {
255
- const { resolveLaunchPlane } = await import('./control-plane-launch-4WRFVYNP.js');
255
+ const { resolveLaunchPlane } = await import('./control-plane-launch-3MBWPYWZ.js');
256
256
  const plane = env[GOVERNANCE_VARIABLE] === "self" ? { kind: "none" } : await resolveLaunchPlane({ cwd, env, home, fetchImpl: deps.fetchImpl, stderr });
257
257
  if (plane.kind === "none") {
258
258
  const own2 = ownSkillsDirFor(cwd, home, [], stderr);