@outerlayer/cli 0.33.0-next.20261022195547 → 0.33.0-next.20261023002325

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 (111) hide show
  1. package/README.md +5 -0
  2. package/dist/{agent-setup-RJOVRRHK.js → agent-setup-55ZDEXCS.js} +6 -6
  3. package/dist/{bridge-BCG2EB7F.js → bridge-NBCXFTT4.js} +2 -2
  4. package/dist/{build-GKCVFHF4.js → build-G4GUF6LT.js} +4 -4
  5. package/dist/{build-disk-6QAXMA2J.js → build-disk-3GL3KKEB.js} +5 -5
  6. package/dist/build-info.json +1 -1
  7. package/dist/{builder-DPNHJXG3.js → builder-3CUKTVSY.js} +4 -4
  8. package/dist/{check-64UX323V.js → check-64FD5G3X.js} +35 -37
  9. package/dist/{chunk-3MXPS7ED.js → chunk-2N67C6IV.js} +5 -4
  10. package/dist/{chunk-ZQOSIMKU.js → chunk-2WMZPJVE.js} +6 -3
  11. package/dist/{chunk-5BNWAIHN.js → chunk-3DCB3GOV.js} +41 -3
  12. package/dist/{chunk-UOFBHIOZ.js → chunk-57L2YAJA.js} +1 -1
  13. package/dist/{chunk-6NWS455T.js → chunk-5THSC6BD.js} +1 -1
  14. package/dist/{chunk-QL3LPZ67.js → chunk-6LBSAW6I.js} +1 -1
  15. package/dist/{chunk-WPGBDY73.js → chunk-6RKD7YZ6.js} +1 -1
  16. package/dist/{chunk-77B36F5K.js → chunk-6Z4SZHV2.js} +4 -3
  17. package/dist/{chunk-DETKDTNL.js → chunk-AU346ENF.js} +3 -2
  18. package/dist/chunk-B2JURP6A.js +41 -0
  19. package/dist/{chunk-BCCI32ME.js → chunk-BALIE3BA.js} +36 -7
  20. package/dist/{chunk-BY36DVJV.js → chunk-BKADJZ7F.js} +3 -2
  21. package/dist/{chunk-H7A3IQH5.js → chunk-CANYZTD5.js} +39 -22
  22. package/dist/{chunk-L6JFFP3Q.js → chunk-DGI66PGY.js} +32 -20
  23. package/dist/{chunk-GN2R5Z7G.js → chunk-DXJTBU7A.js} +3 -3
  24. package/dist/{chunk-WCELNMXT.js → chunk-EUVE2EAE.js} +2 -2
  25. package/dist/{chunk-DDS2ISML.js → chunk-F5UL23I2.js} +1 -1
  26. package/dist/{chunk-43PV5KDB.js → chunk-GFVDC5S3.js} +3 -3
  27. package/dist/{chunk-JEKENLLA.js → chunk-GH246BGV.js} +1 -1
  28. package/dist/{chunk-W5DOK7BL.js → chunk-HVRQQOMH.js} +3 -3
  29. package/dist/{chunk-6IKSUAIA.js → chunk-HXA5GIHK.js} +61 -3
  30. package/dist/{chunk-2QT4JUW3.js → chunk-IP7BIBXJ.js} +1 -35
  31. package/dist/{chunk-KLXWS5Z7.js → chunk-JPG43G6Y.js} +3 -3
  32. package/dist/{chunk-D3HRAPNF.js → chunk-JRZCRIEO.js} +1044 -640
  33. package/dist/{chunk-LWTBE5J6.js → chunk-L26V6ILJ.js} +1 -1
  34. package/dist/{chunk-ZXBQ6E72.js → chunk-LJUIG5K4.js} +14 -9
  35. package/dist/{chunk-ZRRUWNJS.js → chunk-LYE3KB6L.js} +3 -3
  36. package/dist/{chunk-SK4TWCN3.js → chunk-MZBQTVFG.js} +1 -1
  37. package/dist/{chunk-YKYCE4HY.js → chunk-MZYOUIY5.js} +1 -1
  38. package/dist/{chunk-OWDSO3PE.js → chunk-NBZ7XBT6.js} +1 -1
  39. package/dist/{chunk-6C2YWM6N.js → chunk-OOCAF3ID.js} +1 -1
  40. package/dist/{chunk-AGZNCIIJ.js → chunk-PA6CK6WQ.js} +1 -1
  41. package/dist/{chunk-QDMMW5PC.js → chunk-Q2CMEQV7.js} +2 -2
  42. package/dist/{chunk-DNKUSXQU.js → chunk-QFQC5K4J.js} +6 -113
  43. package/dist/{chunk-DJWKUQLO.js → chunk-QPWFVE3X.js} +1 -1
  44. package/dist/{chunk-AA6LYZC4.js → chunk-SOI6K5DY.js} +1 -1
  45. package/dist/{chunk-35IY5HQY.js → chunk-SVDOA4W2.js} +1 -1
  46. package/dist/{chunk-RBJG5MM4.js → chunk-T5REPMNL.js} +5 -5
  47. package/dist/{chunk-6KLPC4U7.js → chunk-ULBNTSAD.js} +3 -2
  48. package/dist/{chunk-CMKY36NV.js → chunk-VT4TTJPG.js} +6 -5
  49. package/dist/{chunk-FAZDYI2D.js → chunk-XL2XWWU7.js} +3 -2
  50. package/dist/{chunk-P5FC7VUO.js → chunk-XWFSAOC7.js} +2 -2
  51. package/dist/{chunk-CUBIZBMF.js → chunk-YERR22SY.js} +3 -3
  52. package/dist/{chunk-GWDS42JC.js → chunk-Z5IW4DHH.js} +1 -1
  53. package/dist/{claude-launcher-66GKNIRZ.js → claude-launcher-NTYHJUJM.js} +1 -1
  54. package/dist/{cli-WICFAKFW.js → cli-WKRURGHC.js} +126 -102
  55. package/dist/{command-VGR24IPI.js → command-WG54AUHK.js} +23 -23
  56. package/dist/{config-DUY2PT7K.js → config-LZSFW2O3.js} +2 -3
  57. package/dist/{connect-cmd-ADRPR6ES.js → connect-cmd-P5GASVAF.js} +5 -5
  58. package/dist/{container-start-QX53HKXW.js → container-start-DQKFQ3CL.js} +21 -23
  59. package/dist/context-show-cmd-3EPJ7CJC.js +115 -0
  60. package/dist/{control-plane-launch-SMHL6MWW.js → control-plane-launch-A3YCHQNQ.js} +5 -5
  61. package/dist/{docker-GGRJHHBP.js → docker-4ERXWTRW.js} +4 -4
  62. package/dist/{doctor-N3CDJ66I.js → doctor-GRCEYJXA.js} +24 -26
  63. package/dist/{emit-artifact-cmd-73OWUBH6.js → emit-artifact-cmd-FDPJKGOO.js} +11 -10
  64. package/dist/{emit-criteria-cmd-D7OR356Y.js → emit-criteria-cmd-3SVGCMJN.js} +8 -7
  65. package/dist/{emit-demo-cmd-4AV74GMZ.js → emit-demo-cmd-JSVI56WY.js} +11 -10
  66. package/dist/{emit-finding-cmd-GEPRJ6KO.js → emit-finding-cmd-TLJWBGQE.js} +8 -7
  67. package/dist/{emit-result-cmd-N52IABK6.js → emit-result-cmd-CJNVDV5V.js} +10 -9
  68. package/dist/{emit-step-cmd-CC6MUJ2S.js → emit-step-cmd-347CZO7Y.js} +8 -7
  69. package/dist/{exec-client-KLI262IX.js → exec-client-7PT4W7JR.js} +3 -3
  70. package/dist/{findings-cmd-7I72XX2H.js → findings-cmd-LHTYEHYB.js} +8 -7
  71. package/dist/{fleet-readiness-EZAGL32M.js → fleet-readiness-KGR5AC2J.js} +5 -5
  72. package/dist/{governing-source-M7ZRJCGY.js → governing-source-JZQZUTMA.js} +10 -9
  73. package/dist/{guest-init-ZJIE6MU3.js → guest-init-J3F3AEEY.js} +4 -4
  74. package/dist/{hook-fast-WNKICZ6E.js → hook-fast-6WDMNZG5.js} +1 -1
  75. package/dist/{pending-I5TY6SQH.js → host-key-UERIQRE6.js} +3 -3
  76. package/dist/{image-tag-MORUQ4LF.js → image-tag-ADSLWXBA.js} +3 -3
  77. package/dist/index.js +4 -4
  78. package/dist/{init-XG4NRZX4.js → init-OKJAI77M.js} +20 -22
  79. package/dist/{init-VCWDBOT4.js → init-WNO4NAO7.js} +20 -22
  80. package/dist/{init-cmd-2CAMWMRP.js → init-cmd-PFW4XTG7.js} +11 -10
  81. package/dist/{init-update-NCM4GA3S.js → init-update-X7YLZL6H.js} +8 -8
  82. package/dist/{install-NLVYISAV.js → install-GQUCHIGE.js} +4 -5
  83. package/dist/{install-cmd-HFGINYEE.js → install-cmd-FV7IZ7XF.js} +5 -5
  84. package/dist/{logs-QSKJ4G6M.js → logs-HI46FO6Z.js} +2 -2
  85. package/dist/{loop-PXALY3VY.js → loop-2SITCQ6H.js} +35 -37
  86. package/dist/{machine-AZRL432D.js → machine-YHBCNRUO.js} +20 -18
  87. package/dist/{mcp-serve-cmd-DQSO6MOL.js → mcp-serve-cmd-7ABBV2QE.js} +4 -4
  88. package/dist/{paths-KHDFSBEI.js → paths-7HVTDE6J.js} +2 -2
  89. package/dist/{host-key-REZADWAM.js → pending-5HZACM2V.js} +3 -3
  90. package/dist/{pidfile-BSY63HIC.js → pidfile-5UDLYPMC.js} +3 -3
  91. package/dist/{record-7CNTGRLD.js → record-PPZEXAVA.js} +3 -3
  92. package/dist/{runner-env-26NLQI35.js → runner-env-QYE7KZFP.js} +5 -6
  93. package/dist/{runner-identity-WGH73DTV.js → runner-identity-FIHOECSH.js} +4 -4
  94. package/dist/{runner-key-6BIULOR4.js → runner-key-YUKU2MWK.js} +20 -22
  95. package/dist/{session-sender-MSHKJSBG.js → session-sender-7B3ZDWMC.js} +11 -10
  96. package/dist/{spec-cmd-AWIMO32E.js → spec-cmd-Q26NE22H.js} +9 -8
  97. package/dist/{status-BILERIXB.js → status-VBQJMFEX.js} +27 -25
  98. package/dist/{sync-cmd-BSUZ65CU.js → sync-cmd-SSUYTMLJ.js} +10 -9
  99. package/dist/{watch-UF6XCGSI.js → watch-L5NCO46E.js} +10 -9
  100. package/dist/{work-claim-cmd-4FXVAZWF.js → work-claim-cmd-MFND6Z4S.js} +12 -12
  101. package/dist/{work-cmd-NCP4637R.js → work-cmd-W7WEHMQJ.js} +8 -7
  102. package/dist/{work-comment-cmd-YNQYVHYS.js → work-comment-cmd-SSUOGVDD.js} +8 -7
  103. package/dist/{work-logs-cmd-HHWVYQBG.js → work-logs-cmd-WPMWMDX6.js} +8 -7
  104. package/dist/{work-open-pr-cmd-ALVD7KLY.js → work-open-pr-cmd-NO5YLOXD.js} +9 -8
  105. package/dist/{work-pr-cmd-KBNFVRB4.js → work-pr-cmd-37B5KECR.js} +8 -7
  106. package/dist/{work-stop-cmd-DBWNHZJO.js → work-stop-cmd-3BJLXUJ3.js} +8 -7
  107. package/package.json +1 -1
  108. package/skill-pack/maintained/outerlayer-build/SKILL.md +4 -2
  109. package/dist/chunk-I5LGKZ4M.js +0 -107
  110. package/dist/chunk-UXYLWVTQ.js +0 -43
  111. package/dist/chunk-WBZJWVT2.js +0 -146
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { RELAY_PORT, GATEWAY_SOCKET, GATEWAY_PORT, CLAUDE_SOCKET, CLAUDE_PORT, DESTINATION_BASE_PORT } from './chunk-BCCI32ME.js';
3
+ import { RELAY_PORT, GATEWAY_SOCKET, GATEWAY_PORT, CLAUDE_SOCKET, CLAUDE_PORT, DESTINATION_BASE_PORT } from './chunk-BALIE3BA.js';
4
4
  import { symlinkSync, unlinkSync } from 'fs';
5
5
  import { join } from 'path';
6
6
 
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { checkStarterFiles, contextIsGoverned } from './chunk-BJQ25STI.js';
4
- import { fleetCheck, checkBuildSkill, checkMachineSkills, checkCommittedMaintainedSkills, checkMaintainedReferences } from './chunk-6IKSUAIA.js';
5
- import { resolveCredentials, getJson, WorkCommandError } from './chunk-CMKY36NV.js';
6
- import { isLinkedRepository } from './chunk-ZQOSIMKU.js';
4
+ import { fleetCheck, checkBuildSkill, checkMachineSkills, checkCommittedMaintainedSkills, checkMaintainedReferences, checkIgnoredSkillFolders } from './chunk-HXA5GIHK.js';
5
+ import { resolveCredentials, getJson, WorkCommandError } from './chunk-VT4TTJPG.js';
6
+ import { isLinkedRepository } from './chunk-2WMZPJVE.js';
7
7
  import { sanitizeTerminal } from './chunk-EWVYQLD3.js';
8
8
  import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-5DNCFOXA.js';
9
9
  import { C } from './chunk-ANPNT6PM.js';
10
10
  import { checkFormerSkillNames } from './chunk-UIUGTW5C.js';
11
- import { resolveGatewayCredentials, defaultFetch } from './chunk-WPGBDY73.js';
12
- import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-DJWKUQLO.js';
11
+ import { resolveGatewayCredentials, defaultFetch } from './chunk-6RKD7YZ6.js';
12
+ import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-QPWFVE3X.js';
13
13
  import { readStatuslineState, STATE_FRESH_MS } from './chunk-I7RZHMXW.js';
14
14
  import { hookCommandEscapesControlPlane, CONTROL_PLANE_DIR_VARIABLE } from './chunk-HCVLP7XA.js';
15
15
  import { findGitDirs } from './chunk-BJ3KTMDH.js';
@@ -194,6 +194,7 @@ function runDoctor(env = {}) {
194
194
  ...starter?.checks ?? [],
195
195
  ...laptop ? checkRenamedSkills(env.cwd) : [],
196
196
  ...checkBuildSkillState(env.cwd, home),
197
+ ...checkIgnoredSkills(env.cwd),
197
198
  ...starter !== void 0 && !starter.mcpOutdated ? checkMcpCommand(env.cwd, env.processEnv) : [],
198
199
  ...checkContextSource(env.cwd),
199
200
  ...checkGovernsList(env.cwd),
@@ -206,6 +207,10 @@ function checkRenamedSkills(cwd) {
206
207
  if (dirs === void 0 || contextIsGoverned(dirs.gitCommonDir)) return [];
207
208
  return checkFormerSkillNames(dirs.repoRoot);
208
209
  }
210
+ function checkIgnoredSkills(cwd) {
211
+ const dirs = findGitDirs(cwd ?? process.cwd());
212
+ return dirs === void 0 ? [] : checkIgnoredSkillFolders(dirs.repoRoot);
213
+ }
209
214
  function checkBuildSkillState(cwd, home) {
210
215
  const dirs = findGitDirs(cwd ?? process.cwd());
211
216
  if (dirs === void 0 || contextIsGoverned(dirs.gitCommonDir)) return [];
@@ -1190,8 +1195,8 @@ function doctorExitCode(checks) {
1190
1195
 
1191
1196
  // src/doctor-report.ts
1192
1197
  async function gatherDoctorChecks() {
1193
- const { DEFAULT_BUILD_DISK } = await import('./build-disk-6QAXMA2J.js');
1194
- const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-DUY2PT7K.js');
1198
+ const { DEFAULT_BUILD_DISK } = await import('./build-disk-3GL3KKEB.js');
1199
+ const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-LZSFW2O3.js');
1195
1200
  const configPath = defaultRunnerConfigPath();
1196
1201
  const runnerHost = hasRunnerBlock(configPath);
1197
1202
  const hooks = (() => {
@@ -1212,7 +1217,7 @@ async function gatherDoctorChecks() {
1212
1217
  const { runnerVmCheck } = await import('./doctor-53F2PYY7.js');
1213
1218
  checks.push(runnerVmCheck(configPath, { lima: realLima(), home: homeFromEnv(), instance: runnerVm.instance }));
1214
1219
  } else if (hasRunnerBlock(configPath)) {
1215
- const { runnerHostChecks } = await import('./doctor-N3CDJ66I.js');
1220
+ const { runnerHostChecks } = await import('./doctor-GRCEYJXA.js');
1216
1221
  const gateway = (() => {
1217
1222
  try {
1218
1223
  const { url, apiKey, appId } = loadRunnerConfig(configPath);
@@ -1240,7 +1245,7 @@ async function gatherDoctorChecks() {
1240
1245
  const { existsSync: existsSync3 } = await import('fs');
1241
1246
  if (process.platform !== "linux" || !existsSync3("/run/systemd/system")) return void 0;
1242
1247
  const { inspectService, realInspectProbes } = await import('./inspect-DNLXTXLA.js');
1243
- const { DEFAULT_UNIT_NAME } = await import('./install-NLVYISAV.js');
1248
+ const { DEFAULT_UNIT_NAME } = await import('./install-GQUCHIGE.js');
1244
1249
  const { dirname: dirname2 } = await import('path');
1245
1250
  return inspectService(DEFAULT_UNIT_NAME, dirname2(configPath), realInspectProbes());
1246
1251
  })();
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { builtinKind } from './chunk-5BNWAIHN.js';
3
+ import { builtinKind } from './chunk-3DCB3GOV.js';
4
4
  import { parseSize } from './chunk-YJLHUKYS.js';
5
- import { runnerDir } from './chunk-AGZNCIIJ.js';
6
- import { CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-BCCI32ME.js';
5
+ import { runnerDir } from './chunk-PA6CK6WQ.js';
6
+ import { CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-BALIE3BA.js';
7
7
  import { FD_SLOTS_PER_BUILD, FD_STORE_ENV } from './chunk-HACGUL52.js';
8
8
  import { existsSync, readFileSync, writeFileSync, chmodSync, renameSync } from 'fs';
9
9
  import { dirname, join } from 'path';
@@ -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-AGZNCIIJ.js';
4
+ import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-PA6CK6WQ.js';
5
5
  import { readFileSync, mkdirSync, writeFileSync, renameSync } from 'fs';
6
6
  import { join } from 'path';
7
7
 
@@ -4,6 +4,6 @@ import { createRequire } from 'node:module';
4
4
  createRequire(import.meta.url);
5
5
 
6
6
  // src/runner/protocol.ts
7
- var RUNNER_PROTOCOL = 27;
7
+ var RUNNER_PROTOCOL = 28;
8
8
 
9
9
  export { RUNNER_PROTOCOL };
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-AGZNCIIJ.js';
3
+ import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-PA6CK6WQ.js';
4
4
  import { readlinkSync, realpathSync, mkdirSync, unlinkSync, symlinkSync, renameSync, readFileSync, writeFileSync, rmSync, existsSync, readdirSync } from 'fs';
5
5
  import { join, basename, sep, resolve } from 'path';
6
6
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-ZRRUWNJS.js';
3
+ import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-LYE3KB6L.js';
4
4
  import { readFileSync } from 'fs';
5
5
 
6
6
  createRequire(import.meta.url);
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { BUILD_HOME } from './chunk-BCCI32ME.js';
3
+ import { BUILD_HOME } from './chunk-BALIE3BA.js';
4
4
  import { join, dirname } from 'path';
5
5
 
6
6
  createRequire(import.meta.url);
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { LiveUploader } from './chunk-3MXPS7ED.js';
3
+ import { LiveUploader } from './chunk-2N67C6IV.js';
4
4
  import { CaptureDaemon } from './chunk-5DNCFOXA.js';
5
- import { spoolDir } from './chunk-DJWKUQLO.js';
5
+ import { spoolDir } from './chunk-QPWFVE3X.js';
6
6
  import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
7
7
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
8
8
  import { mkdirSync, writeFileSync, rmSync } from 'fs';
@@ -1,122 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { isPlaceholderCommand } from './chunk-WBZJWVT2.js';
4
- import { describeCallFailure } from './chunk-RBJG5MM4.js';
5
- import { checkFit } from './chunk-ZRRUWNJS.js';
6
- import { realBuildDiskProbe, checkDiskFit, DEFAULT_BUILD_DISK } from './chunk-P5FC7VUO.js';
3
+ import { placeholderQueues, placeholderProblem } from './chunk-JRZCRIEO.js';
4
+ import { checkFit } from './chunk-LYE3KB6L.js';
5
+ import { realBuildDiskProbe, checkDiskFit, DEFAULT_BUILD_DISK } from './chunk-XWFSAOC7.js';
7
6
  import { builderDiskPinned } from './chunk-TGHBOXKJ.js';
8
- import { builtinKind, imageBuildOf } from './chunk-5BNWAIHN.js';
9
- import { WorkCommandError, getJson } from './chunk-CMKY36NV.js';
10
- import { sanitizeTerminal } from './chunk-EWVYQLD3.js';
11
- import { signerFor } from './chunk-AA6LYZC4.js';
12
- import { CLAUDE_CREDENTIAL_VARIABLES, claudeCredential, claudeCredentialVariablesSet } from './chunk-BCCI32ME.js';
7
+ import { builtinKind, imageBuildOf } from './chunk-3DCB3GOV.js';
8
+ import { claudeCredentialVariablesSet, claudeCredential } from './chunk-BALIE3BA.js';
13
9
  import { closeSync, openSync, constants } from 'fs';
14
10
  import { totalmem } from 'os';
15
11
 
16
12
  createRequire(import.meta.url);
17
-
18
- // src/runner/host-setup.ts
19
- function placeholderQueues(config) {
20
- return config.queues.filter((queue) => {
21
- const command = config.commands[queue];
22
- return command !== void 0 && isPlaceholderCommand(command);
23
- });
24
- }
25
- function placeholderProblem(queues) {
26
- const keys = queues.map((queue) => `runner.commands.${queue}`).join(", ");
27
- return `${keys} ${queues.length === 1 ? "is" : "are"} still the placeholder \`runner init\` wrote, which fails every item. Edit ${queues.length === 1 ? "it" : "them"} to start your agent on item $OUTERLAYER_WORK`;
28
- }
29
- var CLAUDE_PERMISSION_MODES = ["acceptEdits", "auto", "bypassPermissions", "default", "dontAsk", "manual", "plan"];
30
- var CLAUDE_COMMAND = /(?:^|[;&|(])\s*(?:(?:exec|env|nohup|time)\s+)*(?:[A-Za-z_][A-Za-z0-9_]*=\S*\s+)*(?:\S*\/)?claude\s/;
31
- var PERMISSION_MODE_FLAG = /--permission-mode(?:=|\s+)(?:"([^"]*)"|'([^']*)'|([^\s;&|()]+))/g;
32
- function permissionModeProblems(config) {
33
- const problems = [];
34
- for (const queue of config.queues) {
35
- const command = config.commands[queue];
36
- if (command === void 0 || !CLAUDE_COMMAND.test(command)) continue;
37
- for (const match of command.matchAll(PERMISSION_MODE_FLAG)) {
38
- const value = match[1] ?? match[2] ?? match[3] ?? "";
39
- if (value.includes("$") || value.includes("`") || CLAUDE_PERMISSION_MODES.includes(value)) continue;
40
- problems.push({ queue, command, value });
41
- }
42
- }
43
- return problems;
44
- }
45
- function permissionModeProblem(problems) {
46
- return problems.map(({ queue, command, value }) => `runner.commands.${queue} is \`${command}\`, and \`${value}\` is not a permission mode Claude Code accepts (${CLAUDE_PERMISSION_MODES.join(", ")}). The command would fail only when a build ran it`).join(". ");
47
- }
48
- var FORMER_AMEND_COMMAND = /(^|["'\s])\/amend(?=["'\s]|$)/g;
49
- function currentSkillCommand(command) {
50
- return command.replace(FORMER_AMEND_COMMAND, "$1/outerlayer-amend");
51
- }
52
- function formerSkillQueues(config) {
53
- return config.queues.filter((queue) => {
54
- const command = config.commands[queue];
55
- return command !== void 0 && currentSkillCommand(command) !== command;
56
- });
57
- }
58
- function formerSkillProblem(queues) {
59
- const keys = queues.map((queue) => `runner.commands.${queue}`).join(", ");
60
- return `${keys} ${queues.length === 1 ? "starts" : "start"} /amend, which is now /outerlayer-amend. The runner runs /outerlayer-amend in its place; edit the config to say so`;
61
- }
62
- function needsClaudeCredential(hooks) {
63
- return builtinKind(hooks.provision) !== "own";
64
- }
65
- var CREDENTIAL_FIX = "Run `claude setup-token`, then pipe the token it prints (or an Anthropic API key) to `outerlayer runner init --agent claude`, which stores it in the claude.env beside the config. Or start the runner with CLAUDE_CODE_OAUTH_TOKEN (or ANTHROPIC_API_KEY) set";
66
- function claudeCredentialCheck(env, options = {}) {
67
- const name = "Claude credential";
68
- if (options.service !== void 0) {
69
- const { unit, variables } = options.service;
70
- if (variables.length === 0) {
71
- return {
72
- name,
73
- status: "fail",
74
- detail: `the service ${unit} has no Claude credential: neither ${CLAUDE_CREDENTIAL_VARIABLES.slice(0, 2).join(" nor ")} is set in its claude.env or runner.env, so every build fails at provision as agent_credential_missing`,
75
- fix: `${CREDENTIAL_FIX}, then restart the service: sudo systemctl restart ${unit}.`
76
- };
77
- }
78
- return { name, status: "pass", detail: `${variables[0]} is set in the claude.env or runner.env of the service ${unit}` };
79
- }
80
- const held = claudeCredential(env, { ignoreHeld: options.ignoreHeld === true });
81
- if (held === void 0) {
82
- return {
83
- name,
84
- status: "fail",
85
- detail: `neither ${CLAUDE_CREDENTIAL_VARIABLES.slice(0, 2).join(" nor ")} is set, so every build fails at provision as agent_credential_missing`,
86
- fix: `${CREDENTIAL_FIX}.`
87
- };
88
- }
89
- const sameVariables = options.shell === true ? "; the runner must be started with the same variable" : "";
90
- return { name, status: "pass", detail: `${held.variable} is set${sameVariables}` };
91
- }
92
- function missingPermissionOf(err) {
93
- if (!(err instanceof WorkCommandError) || err.status !== 403) return void 0;
94
- const permission = /missing required permission '([^']+)'/i.exec(err.message)?.[1];
95
- return permission === void 0 ? void 0 : sanitizeTerminal(permission);
96
- }
97
- function missingPermissionFix(permission) {
98
- return `use a key that holds ${permission}: create one with the Runner preset on the factory's API keys page, then run \`outerlayer login\` with it`;
99
- }
100
- async function claimPermissionProblem(config, fetchImpl = fetch) {
101
- const unverified = (what, err) => ({
102
- status: "unverified",
103
- reason: sanitizeTerminal(`${what}: ${err instanceof Error ? describeCallFailure(err) : String(err)}`)
104
- });
105
- let signer;
106
- try {
107
- signer = await signerFor(config.configPath);
108
- } catch (err) {
109
- return unverified("this host's key could not be read, so whether the runner key can claim work was not checked", err);
110
- }
111
- try {
112
- await getJson(config.url, "/v1/runner/host-key", config.apiKey, config.appId, fetchImpl, signer);
113
- return { status: "ok" };
114
- } catch (err) {
115
- const permission = missingPermissionOf(err);
116
- if (permission === void 0) return unverified("the host-key call did not say whether the runner key can claim work", err);
117
- return { status: "lacks", problem: `the runner key lacks ${permission}, which a runner needs to claim work: ${missingPermissionFix(permission)}` };
118
- }
119
- }
120
13
  function openKvm() {
121
14
  try {
122
15
  closeSync(openSync("/dev/kvm", constants.O_RDWR));
@@ -238,4 +131,4 @@ function checkBlocked(config, probes) {
238
131
  return void 0;
239
132
  }
240
133
 
241
- export { checkBlocked, claimPermissionProblem, claudeCredentialCheck, currentSkillCommand, formerSkillProblem, formerSkillQueues, managedFactsOf, managedProblems, missingPermissionFix, missingPermissionOf, needsClaudeCredential, permissionModeProblem, permissionModeProblems, placeholderProblem, placeholderQueues, realBlockedProbes };
134
+ export { checkBlocked, managedFactsOf, managedProblems, realBlockedProbes };
@@ -684,7 +684,7 @@ async function missingControlPlane(cwd, sessionId, home, env) {
684
684
  cleanupEarlierCopies(dirs);
685
685
  }
686
686
  if (!contextPossiblyGoverned(cwd, home)) return void 0;
687
- const { governanceOf } = await import('./control-plane-launch-SMHL6MWW.js');
687
+ const { governanceOf } = await import('./control-plane-launch-A3YCHQNQ.js');
688
688
  if (await governanceOf({ cwd, env, home }) !== "governed") return void 0;
689
689
  recordMissingContext(dirs, sessionId, home);
690
690
  const launcher = `${cliInvocation()} claude`;
@@ -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-AGZNCIIJ.js';
3
+ import { hostKeyPath, runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-PA6CK6WQ.js';
4
4
  import { generateKeyPairSync, createPrivateKey, createPublicKey, sign } from 'crypto';
5
5
  import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';
6
6
 
@@ -5,7 +5,7 @@ import { addStdioMcpEntryIfAbsent, addDocsMcpEntryIfAbsent, DOCS_MCP_SERVER_NAME
5
5
  import { installStarterPack } from './chunk-DY7Y7UT4.js';
6
6
  import { AGENTS_MD_LAYOUT, declareAgentsMdLayout, linkClaudeSkills, SKILLS_LINK_PATH, describeSkillsLink, isAgentsMdLayout, holdsTodaysLayoutSources, discoverOuterlayerPaths } from './chunk-HJYBWJAS.js';
7
7
  import { C } from './chunk-ANPNT6PM.js';
8
- import { resolveGitCommonDir, defaultGitRunner } from './chunk-WCELNMXT.js';
8
+ import { resolveGitCommonDir, defaultGitRunner } from './chunk-EUVE2EAE.js';
9
9
  import { loadTemplateFiles, loadMaintainedFiles, skillDir, AGENTS_SKILLS_BASE } from './chunk-G63KT5I5.js';
10
10
  import { cliInvocation } from './chunk-CRB3POP4.js';
11
11
  import { linkedAgentsPath } from './chunk-AVTI3FL5.js';
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { WorkCommandError, postJson } from './chunk-CMKY36NV.js';
4
- import { defaultGitRunner, materializeContext, fetchControlPlaneCommit, lookupGoverningSource } from './chunk-WCELNMXT.js';
5
- import { signingFetchFor } from './chunk-WPGBDY73.js';
6
- import { signerFor } from './chunk-AA6LYZC4.js';
7
- import { SHIM_DIR, stagedContextDir, contextHomeDir, deliveryDir, keptContextDir } from './chunk-AGZNCIIJ.js';
3
+ import { WorkCommandError, postJson } from './chunk-VT4TTJPG.js';
4
+ import { defaultGitRunner, materializeContext, fetchControlPlaneCommit, lookupGoverningSource } from './chunk-EUVE2EAE.js';
5
+ import { signingFetchFor } from './chunk-6RKD7YZ6.js';
6
+ import { signerFor } from './chunk-SOI6K5DY.js';
7
+ import { SHIM_DIR, stagedContextDir, contextHomeDir, deliveryDir, keptContextDir } from './chunk-PA6CK6WQ.js';
8
8
  import { unsupportedLayout, layoutRefusalReason, composeDelivery } from './chunk-FGF52V4V.js';
9
9
  import { SHIM_SCRIPT, GOVERNANCE_VARIABLE } from './chunk-HCVLP7XA.js';
10
10
  import { readDegraded, readContextManifest, readSourceCache } from './chunk-YQR6E6OV.js';
@@ -1,9 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { autoConnect, detectActiveSession } from './chunk-2QT4JUW3.js';
3
+ import { detectActiveSession } from './chunk-IP7BIBXJ.js';
4
+ import { autoConnect } from './chunk-B2JURP6A.js';
4
5
  import { resolveRepoIdentity } from './chunk-5DNCFOXA.js';
5
6
  import { C } from './chunk-ANPNT6PM.js';
6
- import { defaultFetch, unauthorizedMessage, resolveGatewayCredentials } from './chunk-WPGBDY73.js';
7
+ import { defaultFetch, unauthorizedMessage, resolveGatewayCredentials } from './chunk-6RKD7YZ6.js';
7
8
  import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
8
9
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
9
10
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
@@ -1,12 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { detectActiveSession, autoConnect } from './chunk-2QT4JUW3.js';
4
- import { workPageUrl } from './chunk-ZQOSIMKU.js';
3
+ import { detectActiveSession } from './chunk-IP7BIBXJ.js';
4
+ import { autoConnect } from './chunk-B2JURP6A.js';
5
+ import { workPageUrl } from './chunk-2WMZPJVE.js';
5
6
  import { sanitizeTerminal } from './chunk-EWVYQLD3.js';
6
7
  import { resolveRepoIdentity } from './chunk-5DNCFOXA.js';
7
8
  import { C } from './chunk-ANPNT6PM.js';
8
- import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-WPGBDY73.js';
9
- import { signRunnerRequest } from './chunk-AA6LYZC4.js';
9
+ import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-6RKD7YZ6.js';
10
+ import { signRunnerRequest } from './chunk-SOI6K5DY.js';
10
11
  import { readRepoConnection } from './chunk-BJ3KTMDH.js';
11
12
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
12
13
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
@@ -441,7 +442,7 @@ async function runWorkLinkSession(opts) {
441
442
  return await linkSession(opts);
442
443
  } catch (err) {
443
444
  if (opts.logFailures) {
444
- const { logHookError } = await import('./hook-fast-WNKICZ6E.js');
445
+ const { logHookError } = await import('./hook-fast-6WDMNZG5.js');
445
446
  const reason = err instanceof Error ? err.message : String(err);
446
447
  logHookError(opts.home ?? homeFromEnv(opts.env ?? process.env), new Error(`work link-session #${opts.number} failed: ${reason}`));
447
448
  }
@@ -1,10 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
4
- import { detectActiveSession, autoConnect } from './chunk-2QT4JUW3.js';
4
+ import { detectActiveSession } from './chunk-IP7BIBXJ.js';
5
+ import { autoConnect } from './chunk-B2JURP6A.js';
5
6
  import { resolveRepoIdentity } from './chunk-5DNCFOXA.js';
6
7
  import { C } from './chunk-ANPNT6PM.js';
7
- import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-WPGBDY73.js';
8
+ import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-6RKD7YZ6.js';
8
9
  import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
9
10
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
10
11
  import { CriteriaListSchema } from './chunk-E6CO3MJE.js';
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { formatBytes, freeBytes } from './chunk-YYYRBYWG.js';
4
- import { BUILD_LABEL, RUNNER_LABEL, runnerLabelValue } from './chunk-43PV5KDB.js';
4
+ import { BUILD_LABEL, RUNNER_LABEL, runnerLabelValue } from './chunk-GFVDC5S3.js';
5
5
  import { parseSize } from './chunk-YJLHUKYS.js';
6
- import { buildsDir, rootfsDir, runnerDir } from './chunk-AGZNCIIJ.js';
6
+ import { buildsDir, rootfsDir, runnerDir } from './chunk-PA6CK6WQ.js';
7
7
  import { spawnSync } from 'child_process';
8
8
  import { existsSync, statSync, readdirSync } from 'fs';
9
9
  import { join } from 'path';
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { DEFAULT_UNIT_NAME } from './chunk-ZRRUWNJS.js';
4
- import { RUNNER_FILE_MODE } from './chunk-AGZNCIIJ.js';
5
- import { claudeEnvPath, withoutCredentialLines } from './chunk-BCCI32ME.js';
3
+ import { DEFAULT_UNIT_NAME } from './chunk-LYE3KB6L.js';
4
+ import { RUNNER_FILE_MODE } from './chunk-PA6CK6WQ.js';
5
+ import { claudeEnvPath, withoutCredentialLines } from './chunk-BALIE3BA.js';
6
6
  import { parseRunnerEnv } from './chunk-HACGUL52.js';
7
7
  import { existsSync, readFileSync, writeFileSync, renameSync, rmSync } from 'fs';
8
8
  import { join, dirname } from 'path';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { currentLink } from './chunk-OWDSO3PE.js';
3
+ import { currentLink } from './chunk-NBZ7XBT6.js';
4
4
  import { readFileSync, statSync, chmodSync, mkdirSync, writeFileSync, renameSync, rmSync, existsSync, lstatSync, accessSync, constants, realpathSync } from 'fs';
5
5
  import { randomBytes } from 'crypto';
6
6
  import { join, dirname, delimiter, resolve } from 'path';
@@ -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-SMHL6MWW.js');
255
+ const { resolveLaunchPlane } = await import('./control-plane-launch-A3YCHQNQ.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);