@outerlayer/cli 0.27.1 → 0.28.1

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 (128) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +6 -0
  3. package/dist/{agent-setup-UW36TAQM.js → agent-setup-YVR5RO56.js} +17 -14
  4. package/dist/{bridge-B5VJVECY.js → bridge-WW2V7DTB.js} +3 -2
  5. package/dist/build-5FRC3RKM.js +13 -0
  6. package/dist/build-info.json +1 -1
  7. package/dist/{builder-6Y6ZWGNH.js → builder-4F2XNSFC.js} +7 -6
  8. package/dist/{check-YTXFVWK7.js → check-NDDOASVO.js} +70 -61
  9. package/dist/{chunk-VS27BP3E.js → chunk-2YSCKEL2.js} +7 -7
  10. package/dist/{chunk-BPKO76QR.js → chunk-4XN5FRRJ.js} +4 -4
  11. package/dist/{chunk-EPPIISRD.js → chunk-55XLX5PA.js} +1 -1
  12. package/dist/{chunk-LOKSLO25.js → chunk-5B7BEQPR.js} +1 -1
  13. package/dist/chunk-5BHIBJDA.js +93 -0
  14. package/dist/{chunk-RHAGBUL5.js → chunk-5K3KB4YR.js} +1 -1
  15. package/dist/{chunk-ABXQBEYK.js → chunk-66T6XJAB.js} +1 -1
  16. package/dist/{chunk-LPFOWUHG.js → chunk-6BWJQGTV.js} +20 -13
  17. package/dist/{chunk-BWH36FOC.js → chunk-7CK2TJFB.js} +20 -4
  18. package/dist/{chunk-5VMDGJGH.js → chunk-7UGFIWIW.js} +37 -23
  19. package/dist/{chunk-QKIQ2R7F.js → chunk-ATJOFXTE.js} +3 -3
  20. package/dist/chunk-CDDED64E.js +13 -0
  21. package/dist/{chunk-QHH4OSD4.js → chunk-CTYSTE5C.js} +1 -1
  22. package/dist/{chunk-DJHNEGNM.js → chunk-DKWQMPSL.js} +18 -2
  23. package/dist/{chunk-IMOB4IOI.js → chunk-DQYMQ47E.js} +3 -2
  24. package/dist/{chunk-YETTWTAY.js → chunk-E7R2GIAW.js} +4 -4
  25. package/dist/{chunk-GFUE5TKO.js → chunk-F4FA3ZUT.js} +24 -14
  26. package/dist/{chunk-6TRNCUM4.js → chunk-FGF52V4V.js} +1 -1
  27. package/dist/{chunk-MATUHHN4.js → chunk-GUXWQIEY.js} +1 -1
  28. package/dist/{chunk-2I3LIRZP.js → chunk-HXAEQPZR.js} +101 -10
  29. package/dist/{chunk-R7SGBXUD.js → chunk-IKXY47R5.js} +107 -56
  30. package/dist/{chunk-P33PZIWS.js → chunk-ITAIEJ2T.js} +7 -142
  31. package/dist/{chunk-RHGF73IU.js → chunk-IVX3U7KV.js} +1 -1
  32. package/dist/{chunk-7OUOLGUV.js → chunk-JGML2VUN.js} +3 -7
  33. package/dist/{chunk-6VFH52MP.js → chunk-KVDVNOUK.js} +24 -22
  34. package/dist/{chunk-2F762IXY.js → chunk-LNIFYSNK.js} +3 -3
  35. package/dist/{chunk-XBPUTQ7E.js → chunk-MHAR6S7B.js} +1 -1
  36. package/dist/{chunk-7AQ5AM7U.js → chunk-MQHTM4YJ.js} +177 -21
  37. package/dist/{chunk-6KKM7VGZ.js → chunk-N7WAEEIU.js} +3 -3
  38. package/dist/{chunk-D7ECMB7B.js → chunk-NUHZV3A4.js} +1 -1
  39. package/dist/{chunk-MHX7YX7Y.js → chunk-P2RWZCV7.js} +1 -1
  40. package/dist/chunk-QBQHQEUG.js +300 -0
  41. package/dist/{chunk-FP23SVDD.js → chunk-QJFDAKRF.js} +5 -5
  42. package/dist/{chunk-WUL2OP5A.js → chunk-QKXF7CLR.js} +3 -3
  43. package/dist/{chunk-Y7ZCHBYB.js → chunk-QWAYRAUX.js} +3 -3
  44. package/dist/{chunk-64GMBWAK.js → chunk-R7SS5RLJ.js} +6 -6
  45. package/dist/{chunk-XZ6Q6ZNR.js → chunk-SATUCMAJ.js} +3 -2
  46. package/dist/{chunk-2BTFKNTR.js → chunk-SJZL5F3F.js} +2 -2
  47. package/dist/{chunk-HWDYLXHH.js → chunk-T2QSWFSU.js} +4 -4
  48. package/dist/{chunk-B7DJVG25.js → chunk-T57XUI6N.js} +3 -3
  49. package/dist/{chunk-E5IJ5533.js → chunk-TF7G2PR6.js} +3 -3
  50. package/dist/{chunk-O2IJTY7L.js → chunk-TVZAC2NP.js} +3 -3
  51. package/dist/{chunk-QE3UQAHK.js → chunk-UHU7H57K.js} +26 -7
  52. package/dist/{chunk-WSYXLLA5.js → chunk-USJZ2LDK.js} +6 -6
  53. package/dist/{chunk-EX5MQYEF.js → chunk-VC5J7QPV.js} +5 -5
  54. package/dist/{chunk-N4D5TMVU.js → chunk-VU7ZJPIR.js} +5 -5
  55. package/dist/{chunk-ZFBJUOYT.js → chunk-W3FSGH2M.js} +10 -10
  56. package/dist/{chunk-GLUKDQS4.js → chunk-WWQVKFN6.js} +1 -1
  57. package/dist/{chunk-55GNQPO6.js → chunk-X52PMPOM.js} +7 -7
  58. package/dist/{chunk-YB3CSYXX.js → chunk-XD4ZCMA4.js} +81 -2
  59. package/dist/{chunk-Y4OKEFAX.js → chunk-YL2VDSNF.js} +1 -1
  60. package/dist/{chunk-M3MHHIUW.js → chunk-Z3ASAXVU.js} +1 -1
  61. package/dist/{chunk-XS3FDWSZ.js → chunk-ZTY7HHYB.js} +1 -1
  62. package/dist/{claude-launcher-NQSZBTQ5.js → claude-launcher-7RGVOYCD.js} +6 -5
  63. package/dist/{cli-GHEOBXC7.js → cli-QC6ZKHPK.js} +149 -128
  64. package/dist/cli-update-notice-4DLZ3655.js +9 -0
  65. package/dist/{command-V7B7GTPZ.js → command-3F6GY4CK.js} +53 -37
  66. package/dist/{config-TWS5VZEN.js → config-5QYIKYUP.js} +3 -2
  67. package/dist/{connect-cmd-HGS7YPA2.js → connect-cmd-5TYAOK5M.js} +14 -11
  68. package/dist/{container-start-FHB2VDC4.js → container-start-P7O5XGOB.js} +37 -36
  69. package/dist/{control-plane-launch-DBQA3KLJ.js → control-plane-launch-FZMD4MXX.js} +13 -10
  70. package/dist/{dist-QPHZE47F.js → dist-JFVKLUHL.js} +1 -1
  71. package/dist/{docker-YT6Z3LXI.js → docker-ZTC4EIU4.js} +7 -6
  72. package/dist/{doctor-Y4NCNSJM.js → doctor-QPQDF7FB.js} +159 -41
  73. package/dist/{emit-artifact-cmd-ALDK55Y2.js → emit-artifact-cmd-O3IBUMUY.js} +19 -16
  74. package/dist/{emit-cmd-VAQHRWJR.js → emit-cmd-QUABLVO6.js} +6 -5
  75. package/dist/{emit-criteria-cmd-Q7SM6VP2.js → emit-criteria-cmd-JDO2VUG5.js} +15 -12
  76. package/dist/{emit-finding-cmd-2NBAPDSV.js → emit-finding-cmd-VCQPCLI2.js} +16 -13
  77. package/dist/{emit-result-cmd-KUSL56RI.js → emit-result-cmd-BNS57DD3.js} +19 -16
  78. package/dist/{emit-step-cmd-KD4AKEAT.js → emit-step-cmd-XN44BXYU.js} +16 -13
  79. package/dist/{exec-client-6WVS7DRZ.js → exec-client-VKT2XNB3.js} +4 -3
  80. package/dist/fleet-readiness-G5X3MKP2.js +29 -0
  81. package/dist/{governing-source-VVUA5TKB.js → governing-source-B3M2U4BC.js} +21 -18
  82. package/dist/{guest-init-H5K2RW3P.js → guest-init-QW2DPX7H.js} +5 -4
  83. package/dist/{hook-fast-3SUJM765.js → hook-fast-EFC44SXV.js} +4 -1
  84. package/dist/{host-key-XNKZCWTS.js → host-key-AC6LTZDS.js} +4 -3
  85. package/dist/{image-tag-R34J4O3F.js → image-tag-SS7YKJHN.js} +4 -3
  86. package/dist/index.js +4 -4
  87. package/dist/{init-3DAGX7UY.js → init-36XMFFRQ.js} +38 -37
  88. package/dist/init-HHEAJDPN.js +56 -0
  89. package/dist/{init-cmd-RIDBVSE4.js → init-cmd-K2IKTSXJ.js} +25 -21
  90. package/dist/{init-update-ECWNG47R.js → init-update-RWTQSTPE.js} +51 -35
  91. package/dist/{inspect-IPFA7AAT.js → inspect-L7JIBK3Y.js} +1 -1
  92. package/dist/{install-6OIY3KHZ.js → install-35SAMY75.js} +5 -5
  93. package/dist/{install-cmd-JMT67P35.js → install-cmd-GFY4QF72.js} +6 -5
  94. package/dist/{layout-XNFDTOET.js → layout-BBTQPS6V.js} +4 -3
  95. package/dist/{login-browser-EWXSGHM7.js → login-browser-WSOSQH2T.js} +2 -2
  96. package/dist/{logs-XHAS6LMZ.js → logs-X2IRDP5T.js} +3 -2
  97. package/dist/loop-F5ASKFRJ.js +80 -0
  98. package/dist/{machine-OOQ2NXC3.js → machine-6STGIRJJ.js} +32 -30
  99. package/dist/{machine-skills-FLIRJYP7.js → machine-skills-O7W6NMWB.js} +4 -3
  100. package/dist/{mcp-serve-cmd-LY5A3CE7.js → mcp-serve-cmd-IITCPAAR.js} +9 -6
  101. package/dist/{paths-LHSPNORF.js → paths-32DWGK35.js} +3 -2
  102. package/dist/pending-CSIY4Y2I.js +10 -0
  103. package/dist/{pidfile-DKMYYXLH.js → pidfile-CYCTH6NQ.js} +4 -3
  104. package/dist/{real-deps-KNNBQC75.js → real-deps-QX5YH7FG.js} +1 -1
  105. package/dist/{record-3LPTY3G5.js → record-N4WPZCGK.js} +4 -3
  106. package/dist/{runner-env-YRRNRKF4.js → runner-env-EIB6WFPG.js} +6 -7
  107. package/dist/{runner-identity-YS2BZXZV.js → runner-identity-S3V6I4I3.js} +7 -6
  108. package/dist/{runner-key-EFNTZWNX.js → runner-key-Y76QXVNV.js} +36 -35
  109. package/dist/{session-sender-SC5PSU2G.js → session-sender-LFYMN6TT.js} +20 -17
  110. package/dist/{spec-cmd-JGYHHJ4P.js → spec-cmd-Z6MGATWC.js} +16 -13
  111. package/dist/{starter-pack-GPU4X6B7.js → starter-pack-5SOT5V4I.js} +4 -3
  112. package/dist/{status-7WM7S7JX.js → status-OANG2EM3.js} +39 -37
  113. package/dist/{sync-cmd-ATXJVS7S.js → sync-cmd-TNOOUPY2.js} +19 -16
  114. package/dist/{watch-M7NR3DOW.js → watch-HBNNYATF.js} +19 -16
  115. package/dist/{work-claim-cmd-DNUDZKJA.js → work-claim-cmd-CXALMILD.js} +21 -18
  116. package/dist/{work-cmd-VECTYST6.js → work-cmd-COESFSHE.js} +16 -13
  117. package/dist/{work-comment-cmd-F3NRWKPZ.js → work-comment-cmd-A4ZUVCSA.js} +16 -13
  118. package/dist/{work-logs-cmd-QF6P32FE.js → work-logs-cmd-CTF43MBE.js} +16 -13
  119. package/dist/{work-open-pr-cmd-XE23JA3R.js → work-open-pr-cmd-EMGYJXVD.js} +17 -14
  120. package/dist/{work-pr-cmd-BH56GUKN.js → work-pr-cmd-FEXMS6RH.js} +16 -13
  121. package/dist/{work-stop-cmd-C3F5HNUO.js → work-stop-cmd-NIHAN45R.js} +16 -13
  122. package/package.json +1 -1
  123. package/dist/build-HRLACBOZ.js +0 -12
  124. package/dist/chunk-STSLH5EJ.js +0 -71
  125. package/dist/init-SWKYV6CL.js +0 -55
  126. package/dist/loop-AIJZVUNA.js +0 -79
  127. package/dist/pending-3YZCSKON.js +0 -9
  128. package/dist/{chunk-6BLXUD56.js → chunk-HOU33DW5.js} +1 -1
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { detectActiveSession, autoConnect } from './chunk-2F762IXY.js';
4
- import { workPageUrl } from './chunk-N4D5TMVU.js';
3
+ import { detectActiveSession, autoConnect } from './chunk-LNIFYSNK.js';
4
+ import { workPageUrl } from './chunk-VU7ZJPIR.js';
5
5
  import { sanitizeTerminal } from './chunk-BUP5N3X6.js';
6
- import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-BWH36FOC.js';
7
- import { readRepoConnection } from './chunk-BJ3KTMDH.js';
8
- import { resolveRepoIdentity } from './chunk-QE3UQAHK.js';
6
+ import { resolveRepoIdentity } from './chunk-UHU7H57K.js';
9
7
  import { C } from './chunk-ANPNT6PM.js';
8
+ import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-7CK2TJFB.js';
9
+ import { signRunnerRequest } from './chunk-YL2VDSNF.js';
10
+ import { readRepoConnection } from './chunk-BJ3KTMDH.js';
10
11
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
11
12
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
12
- import { signRunnerRequest } from './chunk-Y4OKEFAX.js';
13
13
 
14
14
  createRequire(import.meta.url);
15
15
 
@@ -428,7 +428,7 @@ async function runWorkLinkSession(opts) {
428
428
  return await linkSession(opts);
429
429
  } catch (err) {
430
430
  if (opts.logFailures) {
431
- const { logHookError } = await import('./hook-fast-3SUJM765.js');
431
+ const { logHookError } = await import('./hook-fast-EFC44SXV.js');
432
432
  const reason = err instanceof Error ? err.message : String(err);
433
433
  logHookError(opts.home ?? homeFromEnv(opts.env ?? process.env), new Error(`work link-session #${opts.number} failed: ${reason}`));
434
434
  }
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { spawn } from 'child_process';
3
+ import { spawn, spawnSync } from 'child_process';
4
+ import { statSync, readFileSync } from 'fs';
5
+ import { join } from 'path';
4
6
 
5
7
  createRequire(import.meta.url);
6
8
  var FD_STORE_ENV = "OUTERLAYER_FD_STORE";
@@ -92,4 +94,81 @@ function realFdStorePort(options = {}) {
92
94
  };
93
95
  }
94
96
 
95
- export { FD_SLOTS_PER_BUILD, FD_STORE_ENV, fdName, realFdStorePort };
97
+ // src/runner/service/inspect.ts
98
+ var CREDENTIAL_VARIABLES = ["CLAUDE_CODE_OAUTH_TOKEN", "ANTHROPIC_API_KEY"];
99
+ function property(shown, name) {
100
+ return new RegExp(`^${name}=(.*)$`, "m").exec(shown)?.[1]?.trim();
101
+ }
102
+ function holdsGroup(status, gid) {
103
+ const primary = /^Gid:\s+(\d+)/m.exec(status)?.[1];
104
+ const supplementary = /^Groups:[ \t]*(.*)$/m.exec(status)?.[1]?.trim().split(/\s+/).filter((g) => g !== "") ?? [];
105
+ return [primary, ...supplementary].some((g) => g !== void 0 && Number(g) === gid);
106
+ }
107
+ function parseRunnerEnv(text) {
108
+ const env = {};
109
+ for (const line of text.split("\n")) {
110
+ const match = /^\s*(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)=(.*)$/.exec(line);
111
+ if (match === null) continue;
112
+ env[match[1]] = match[2].trim().replace(/^(["'])(.*)\1$/, "$2");
113
+ }
114
+ return env;
115
+ }
116
+ function credentialNames(env) {
117
+ const set = parseRunnerEnv(env ?? "");
118
+ return CREDENTIAL_VARIABLES.filter((name) => (set[name] ?? "").trim() !== "");
119
+ }
120
+ function startedWithStore(environ) {
121
+ const vars = new Map(environ.split("\0").map((entry) => [entry.slice(0, entry.indexOf("=")), entry.slice(entry.indexOf("=") + 1)]));
122
+ return (vars.get("NOTIFY_SOCKET") ?? "") !== "" && Number(vars.get(FD_STORE_ENV)) > 0;
123
+ }
124
+ function inspectService(unit, configDir, probes) {
125
+ const shown = probes.show(unit);
126
+ if (shown === void 0 || property(shown, "LoadState") !== "loaded") return void 0;
127
+ const pid = Number(property(shown, "MainPID") ?? "0");
128
+ const mainPid = Number.isInteger(pid) && pid > 0 ? pid : void 0;
129
+ const delegate = property(shown, "Delegate");
130
+ const storeMax = Number(property(shown, "FileDescriptorStoreMax"));
131
+ const status = mainPid === void 0 ? void 0 : probes.readFile(`/proc/${mainPid}/status`);
132
+ const environ = mainPid === void 0 ? void 0 : probes.readFile(`/proc/${mainPid}/environ`);
133
+ const systemd = Number(/^systemd (\d+)/.exec(probes.systemctlVersion?.() ?? "")?.[1]);
134
+ const kvm = probes.kvmGid();
135
+ return {
136
+ unit,
137
+ mainPid,
138
+ delegate: delegate === void 0 ? void 0 : delegate !== "no",
139
+ ...Number.isInteger(storeMax) && property(shown, "FileDescriptorStoreMax") !== void 0 ? { fdStoreMax: storeMax } : {},
140
+ hasKvmGroup: status === void 0 || kvm === void 0 ? void 0 : holdsGroup(status, kvm),
141
+ ...environ === void 0 ? {} : { startedWithStore: startedWithStore(environ) },
142
+ ...systemd > 0 ? { systemdVersion: systemd } : {},
143
+ // `claude.env` first, where the service loads the credential from; `runner.env` holds one that was never moved.
144
+ credentialVariables: [.../* @__PURE__ */ new Set([...credentialNames(probes.readFile(join(configDir, "claude.env"))), ...credentialNames(probes.readFile(join(configDir, "runner.env")))])]
145
+ };
146
+ }
147
+ function realInspectProbes() {
148
+ return {
149
+ show: (unit) => {
150
+ const result = spawnSync("systemctl", ["show", "--property=LoadState,MainPID,Delegate,FileDescriptorStoreMax", unit], { encoding: "utf8", timeout: 1e4 });
151
+ return result.status === 0 ? result.stdout : void 0;
152
+ },
153
+ readFile: (path) => {
154
+ try {
155
+ return readFileSync(path, "utf8");
156
+ } catch {
157
+ return void 0;
158
+ }
159
+ },
160
+ systemctlVersion: () => {
161
+ const result = spawnSync("systemctl", ["--version"], { encoding: "utf8", timeout: 1e4 });
162
+ return result.status === 0 ? result.stdout : void 0;
163
+ },
164
+ kvmGid: () => {
165
+ try {
166
+ return statSync("/dev/kvm").gid;
167
+ } catch {
168
+ return void 0;
169
+ }
170
+ }
171
+ };
172
+ }
173
+
174
+ export { FD_SLOTS_PER_BUILD, FD_STORE_ENV, MIN_SYSTEMD, fdName, inspectService, parseRunnerEnv, realFdStorePort, realInspectProbes };
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { hostKeyPath, runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-RHAGBUL5.js';
3
+ import { hostKeyPath, runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-5K3KB4YR.js';
4
4
  import { generateKeyPairSync, createPrivateKey, createPublicKey, sign } from 'crypto';
5
5
  import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';
6
6
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { isVersion, compareVersions } from './chunk-TQMI335S.js';
4
- import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-RHAGBUL5.js';
4
+ import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-5K3KB4YR.js';
5
5
  import { readFileSync, mkdirSync, writeFileSync, renameSync } from 'fs';
6
6
  import { join } from 'path';
7
7
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { RELAY_PORT, BUILD_HOME } from './chunk-2I3LIRZP.js';
3
+ import { RELAY_PORT, BUILD_HOME } from './chunk-HXAEQPZR.js';
4
4
  import { createServer, connect } from 'net';
5
5
 
6
6
  createRequire(import.meta.url);
@@ -1,15 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { sharedSkillNames } from './chunk-6TRNCUM4.js';
3
+ import { sharedSkillNames } from './chunk-FGF52V4V.js';
4
4
  import { GOVERNANCE_VARIABLE, versionAtLeast, MINIMUM_CLAUDE_VERSION, SHIM_SCRIPT, CONTROL_PLANE_DIR_VARIABLE } from './chunk-HCVLP7XA.js';
5
5
  export { MINIMUM_CLAUDE_VERSION } from './chunk-HCVLP7XA.js';
6
6
  import { findGitDirs } from './chunk-BJ3KTMDH.js';
7
- import { setupMachineSkills } from './chunk-IMOB4IOI.js';
8
- import './chunk-7OUOLGUV.js';
7
+ import { setupMachineSkills } from './chunk-DQYMQ47E.js';
8
+ import './chunk-JGML2VUN.js';
9
+ import './chunk-CDDED64E.js';
10
+ import './chunk-RA3O54FC.js';
9
11
  import './chunk-RKOTJQVG.js';
10
12
  import './chunk-QZBXLLTV.js';
11
13
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
12
- import './chunk-RA3O54FC.js';
13
14
  import './chunk-Z5GEFMRW.js';
14
15
  import { spawnSync, execFileSync, spawn } from 'child_process';
15
16
  import { existsSync, accessSync, constants, statSync, readFileSync, readdirSync, lstatSync, rmSync, mkdirSync, realpathSync, symlinkSync, renameSync, readlinkSync, writeFileSync } from 'fs';
@@ -240,7 +241,7 @@ async function runClaudeLauncher(args, deps = {}) {
240
241
  return 1;
241
242
  }
242
243
  } else {
243
- const { resolveLaunchPlane } = await import('./control-plane-launch-DBQA3KLJ.js');
244
+ const { resolveLaunchPlane } = await import('./control-plane-launch-FZMD4MXX.js');
244
245
  const plane = env[GOVERNANCE_VARIABLE] === "self" ? { kind: "none" } : await resolveLaunchPlane({ cwd, env, home, fetchImpl: deps.fetchImpl, stderr });
245
246
  if (plane.kind === "none") {
246
247
  const own2 = ownSkillsDirFor(cwd, home, [], stderr);