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

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/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-SEAQVLD5.js} +5 -5
  5. package/dist/build-disk-JHTMPRAA.js +16 -0
  6. package/dist/build-info.json +1 -1
  7. package/dist/{builder-DPNHJXG3.js → builder-Y4P7QARW.js} +5 -6
  8. package/dist/{check-64UX323V.js → check-MRYFTLOO.js} +36 -40
  9. package/dist/{chunk-D3HRAPNF.js → chunk-2EGCI2VW.js} +3424 -2700
  10. package/dist/{chunk-3MXPS7ED.js → chunk-2N67C6IV.js} +5 -4
  11. package/dist/{chunk-ZQOSIMKU.js → chunk-2WMZPJVE.js} +6 -3
  12. package/dist/{chunk-ZXBQ6E72.js → chunk-3RIFVLPO.js} +15 -10
  13. package/dist/{chunk-UOFBHIOZ.js → chunk-57L2YAJA.js} +1 -1
  14. package/dist/{chunk-6NWS455T.js → chunk-5THSC6BD.js} +1 -1
  15. package/dist/{chunk-QL3LPZ67.js → chunk-6LBSAW6I.js} +1 -1
  16. package/dist/{chunk-WPGBDY73.js → chunk-6RKD7YZ6.js} +1 -1
  17. package/dist/{chunk-77B36F5K.js → chunk-6Z4SZHV2.js} +4 -3
  18. package/dist/chunk-7HHNGZS5.js +146 -0
  19. package/dist/{chunk-DETKDTNL.js → chunk-AU346ENF.js} +3 -2
  20. package/dist/chunk-B2JURP6A.js +41 -0
  21. package/dist/{chunk-BCCI32ME.js → chunk-BALIE3BA.js} +36 -7
  22. package/dist/{chunk-BY36DVJV.js → chunk-BKADJZ7F.js} +3 -2
  23. package/dist/{chunk-CUBIZBMF.js → chunk-DISTLL2Q.js} +3 -3
  24. package/dist/{chunk-GN2R5Z7G.js → chunk-DXJTBU7A.js} +3 -3
  25. package/dist/{chunk-WCELNMXT.js → chunk-EUVE2EAE.js} +2 -2
  26. package/dist/{chunk-DDS2ISML.js → chunk-F5UL23I2.js} +1 -1
  27. package/dist/{chunk-43PV5KDB.js → chunk-FR7HWWCF.js} +37 -6
  28. package/dist/{chunk-JEKENLLA.js → chunk-GH246BGV.js} +1 -1
  29. package/dist/{chunk-ZRRUWNJS.js → chunk-HE4FBF4T.js} +4 -4
  30. package/dist/{chunk-W5DOK7BL.js → chunk-HVRQQOMH.js} +3 -3
  31. package/dist/{chunk-6IKSUAIA.js → chunk-HXA5GIHK.js} +61 -3
  32. package/dist/{chunk-2QT4JUW3.js → chunk-IP7BIBXJ.js} +1 -35
  33. package/dist/{chunk-LWTBE5J6.js → chunk-L26V6ILJ.js} +1 -1
  34. package/dist/{chunk-SK4TWCN3.js → chunk-MZBQTVFG.js} +1 -1
  35. package/dist/{chunk-YKYCE4HY.js → chunk-MZYOUIY5.js} +1 -1
  36. package/dist/{chunk-OWDSO3PE.js → chunk-NBZ7XBT6.js} +1 -1
  37. package/dist/{chunk-TGHBOXKJ.js → chunk-NE63JADS.js} +2 -2
  38. package/dist/{chunk-AGZNCIIJ.js → chunk-PA6CK6WQ.js} +1 -1
  39. package/dist/{chunk-L6JFFP3Q.js → chunk-PWH3BEZF.js} +55 -283
  40. package/dist/{chunk-QDMMW5PC.js → chunk-Q2CMEQV7.js} +2 -2
  41. package/dist/{chunk-DJWKUQLO.js → chunk-QPWFVE3X.js} +1 -1
  42. package/dist/{chunk-5BNWAIHN.js → chunk-RQJMN5TJ.js} +47 -7
  43. package/dist/{chunk-H7A3IQH5.js → chunk-SDU2IE22.js} +72 -28
  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-W2AEL4BJ.js +179 -0
  50. package/dist/{chunk-6C2YWM6N.js → chunk-XHHTMFCX.js} +1 -1
  51. package/dist/{chunk-FAZDYI2D.js → chunk-XL2XWWU7.js} +3 -2
  52. package/dist/{chunk-KLXWS5Z7.js → chunk-YXHKCHWG.js} +4 -4
  53. package/dist/{chunk-GWDS42JC.js → chunk-Z5IW4DHH.js} +1 -1
  54. package/dist/{claude-launcher-66GKNIRZ.js → claude-launcher-NTYHJUJM.js} +1 -1
  55. package/dist/{cli-WICFAKFW.js → cli-K6XGL4EZ.js} +126 -102
  56. package/dist/{command-VGR24IPI.js → command-7FAIIQGF.js} +25 -26
  57. package/dist/{config-DUY2PT7K.js → config-QXMUWJAQ.js} +10 -4
  58. package/dist/{connect-cmd-ADRPR6ES.js → connect-cmd-P5GASVAF.js} +5 -5
  59. package/dist/{container-start-QX53HKXW.js → container-start-CVP3NTDG.js} +23 -26
  60. package/dist/context-show-cmd-3EPJ7CJC.js +115 -0
  61. package/dist/{control-plane-launch-SMHL6MWW.js → control-plane-launch-A3YCHQNQ.js} +5 -5
  62. package/dist/{docker-GGRJHHBP.js → docker-ANW76BNW.js} +5 -6
  63. package/dist/{doctor-N3CDJ66I.js → doctor-GJAHI3KU.js} +32 -39
  64. package/dist/{emit-artifact-cmd-73OWUBH6.js → emit-artifact-cmd-FDPJKGOO.js} +11 -10
  65. package/dist/{emit-criteria-cmd-D7OR356Y.js → emit-criteria-cmd-3SVGCMJN.js} +8 -7
  66. package/dist/{emit-demo-cmd-4AV74GMZ.js → emit-demo-cmd-6DF2QIAS.js} +12 -11
  67. package/dist/{emit-finding-cmd-GEPRJ6KO.js → emit-finding-cmd-TLJWBGQE.js} +8 -7
  68. package/dist/{emit-result-cmd-N52IABK6.js → emit-result-cmd-CJNVDV5V.js} +10 -9
  69. package/dist/{emit-step-cmd-CC6MUJ2S.js → emit-step-cmd-347CZO7Y.js} +8 -7
  70. package/dist/{exec-client-KLI262IX.js → exec-client-7PT4W7JR.js} +3 -3
  71. package/dist/{findings-cmd-7I72XX2H.js → findings-cmd-LHTYEHYB.js} +8 -7
  72. package/dist/{fleet-readiness-EZAGL32M.js → fleet-readiness-KGR5AC2J.js} +5 -5
  73. package/dist/{governing-source-M7ZRJCGY.js → governing-source-JZQZUTMA.js} +10 -9
  74. package/dist/{guest-init-ZJIE6MU3.js → guest-init-J3F3AEEY.js} +4 -4
  75. package/dist/{hook-fast-WNKICZ6E.js → hook-fast-6WDMNZG5.js} +1 -1
  76. package/dist/{pending-I5TY6SQH.js → host-key-UERIQRE6.js} +3 -3
  77. package/dist/{image-tag-MORUQ4LF.js → image-tag-ADSLWXBA.js} +3 -3
  78. package/dist/index.js +4 -4
  79. package/dist/{init-VCWDBOT4.js → init-XDOKWBL2.js} +22 -25
  80. package/dist/{init-XG4NRZX4.js → init-ZQ5B3TJZ.js} +22 -25
  81. package/dist/{init-cmd-2CAMWMRP.js → init-cmd-YMGW2WXJ.js} +11 -10
  82. package/dist/{init-update-NCM4GA3S.js → init-update-X7YLZL6H.js} +8 -8
  83. package/dist/install-QPA7DQHO.js +19 -0
  84. package/dist/{install-cmd-HFGINYEE.js → install-cmd-FV7IZ7XF.js} +5 -5
  85. package/dist/{logs-QSKJ4G6M.js → logs-HI46FO6Z.js} +2 -2
  86. package/dist/{loop-PXALY3VY.js → loop-UJL2UCUM.js} +36 -40
  87. package/dist/{machine-AZRL432D.js → machine-2YPAFFCH.js} +22 -21
  88. package/dist/{mcp-serve-cmd-DQSO6MOL.js → mcp-serve-cmd-7ABBV2QE.js} +4 -4
  89. package/dist/{paths-KHDFSBEI.js → paths-7HVTDE6J.js} +2 -2
  90. package/dist/{host-key-REZADWAM.js → pending-5HZACM2V.js} +3 -3
  91. package/dist/{pidfile-BSY63HIC.js → pidfile-5UDLYPMC.js} +3 -3
  92. package/dist/{record-7CNTGRLD.js → record-PPZEXAVA.js} +3 -3
  93. package/dist/runner-env-HOUXKWIJ.js +20 -0
  94. package/dist/{runner-identity-WGH73DTV.js → runner-identity-KPUVTRLS.js} +5 -6
  95. package/dist/{runner-key-6BIULOR4.js → runner-key-FUJD66R6.js} +22 -25
  96. package/dist/{session-sender-MSHKJSBG.js → session-sender-7B3ZDWMC.js} +11 -10
  97. package/dist/{spec-cmd-AWIMO32E.js → spec-cmd-Q26NE22H.js} +9 -8
  98. package/dist/{status-BILERIXB.js → status-2KNTILGQ.js} +29 -28
  99. package/dist/{sync-cmd-BSUZ65CU.js → sync-cmd-SSUYTMLJ.js} +10 -9
  100. package/dist/{watch-UF6XCGSI.js → watch-L5NCO46E.js} +10 -9
  101. package/dist/{work-claim-cmd-4FXVAZWF.js → work-claim-cmd-NJNOQFQE.js} +16 -13
  102. package/dist/{work-cmd-NCP4637R.js → work-cmd-W7WEHMQJ.js} +8 -7
  103. package/dist/{work-comment-cmd-YNQYVHYS.js → work-comment-cmd-SSUOGVDD.js} +8 -7
  104. package/dist/{work-logs-cmd-HHWVYQBG.js → work-logs-cmd-WPMWMDX6.js} +8 -7
  105. package/dist/{work-open-pr-cmd-ALVD7KLY.js → work-open-pr-cmd-NO5YLOXD.js} +9 -8
  106. package/dist/{work-pr-cmd-KBNFVRB4.js → work-pr-cmd-37B5KECR.js} +8 -7
  107. package/dist/{work-stop-cmd-DBWNHZJO.js → work-stop-cmd-3BJLXUJ3.js} +8 -7
  108. package/package.json +1 -1
  109. package/skill-pack/maintained/outerlayer-build/SKILL.md +4 -2
  110. package/dist/build-disk-6QAXMA2J.js +0 -18
  111. package/dist/chunk-DNKUSXQU.js +0 -241
  112. package/dist/chunk-I5LGKZ4M.js +0 -107
  113. package/dist/chunk-P5FC7VUO.js +0 -111
  114. package/dist/chunk-UXYLWVTQ.js +0 -43
  115. package/dist/chunk-WBZJWVT2.js +0 -146
  116. package/dist/chunk-YJLHUKYS.js +0 -38
  117. package/dist/chunk-YYYRBYWG.js +0 -32
  118. package/dist/install-NLVYISAV.js +0 -14
  119. package/dist/runner-env-26NLQI35.js +0 -15
@@ -1,12 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { RecipeError } from './chunk-3Z3MPR55.js';
4
- import { BUILDKIT_IMAGE } from './chunk-TGHBOXKJ.js';
5
- import { parseSize } from './chunk-YJLHUKYS.js';
4
+ import { BUILDKIT_IMAGE } from './chunk-NE63JADS.js';
6
5
  import { compareVersions } from './chunk-5DNCFOXA.js';
7
- import { ensureHostKey } from './chunk-AA6LYZC4.js';
8
- import { RUNNER_DIR_MODE, RUNNER_FILE_MODE, runnerDir, jobsDir } from './chunk-AGZNCIIJ.js';
9
- import { CLAUDE_PORT, JOB_MOUNT, GATEWAY_PORT, GATEWAY_SOCKET, CLAUDE_SOCKET, RELAY_PORT, DESTINATION_BASE_PORT } from './chunk-BCCI32ME.js';
6
+ import { ensureHostKey } from './chunk-SOI6K5DY.js';
7
+ import { RUNNER_DIR_MODE, RUNNER_FILE_MODE, runnerDir, jobsDir } from './chunk-PA6CK6WQ.js';
8
+ import { CLAUDE_PORT, JOB_MOUNT, GATEWAY_PORT, GATEWAY_SOCKET, CLAUDE_SOCKET, RELAY_PORT, DESTINATION_BASE_PORT } from './chunk-BALIE3BA.js';
10
9
  import { JOIN_DIR, RELAY_ID, JOIN_SOCKET, TARGET_GATEWAY, TARGET_CLAUDE, destinationTarget, RELAY_USER } from './chunk-MESOOLF4.js';
11
10
  import { createHash } from 'crypto';
12
11
  import { existsSync, mkdirSync, createWriteStream, rmSync, readFileSync, chmodSync, writeFileSync, realpathSync, readdirSync, renameSync } from 'fs';
@@ -17,6 +16,38 @@ import { createRequire as createRequire$1 } from 'module';
17
16
  import { fileURLToPath } from 'url';
18
17
 
19
18
  createRequire(import.meta.url);
19
+
20
+ // src/runner/container/disk.ts
21
+ var UNITS = { "": 1, k: 1024, m: 1024 ** 2, g: 1024 ** 3 };
22
+ function parseSize(text) {
23
+ const match = /^(\d+(?:\.\d+)?)([kKmMgG]?)$/.exec(text);
24
+ if (match === null) return void 0;
25
+ const bytes = Number(match[1]) * UNITS[match[2].toLowerCase()];
26
+ return bytes > 0 ? bytes : void 0;
27
+ }
28
+ function exceedsDisk(usedKilobytes, limit) {
29
+ const bytes = parseSize(limit);
30
+ return usedKilobytes * 1024 > (bytes ?? Number.POSITIVE_INFINITY);
31
+ }
32
+ var TOTAL = /^(\d+)\t\/build$/;
33
+ var GONE = /: No such file or directory$/;
34
+ var LINE_MAX = 200;
35
+ function readDu(result) {
36
+ const stdoutLines = result.stdout.split("\n");
37
+ const totalAt = stdoutLines.map((line) => TOTAL.test(line)).lastIndexOf(true);
38
+ const kib = totalAt === -1 ? void 0 : Number(TOTAL.exec(stdoutLines[totalAt])[1]);
39
+ const lines2 = [...result.stderr.split("\n"), ...stdoutLines.filter((_, index) => index !== totalAt)].map((line) => line.trim()).filter((line) => line !== "");
40
+ const other = lines2.find((line) => !GONE.test(line));
41
+ if (kib !== void 0 && result.status === 0) return { kib };
42
+ if (kib !== void 0 && other === void 0 && lines2.length > 0) return { kib };
43
+ const detail = other === void 0 ? "" : `: ${cut(other.replace(/[\u0000-\u001f\u007f]/g, " "))}`;
44
+ return { ...kib === void 0 ? {} : { kib }, failure: `docker exec exited ${result.status}${detail}` };
45
+ }
46
+ function cut(line) {
47
+ const head = line.slice(0, LINE_MAX);
48
+ const last = head.charCodeAt(head.length - 1);
49
+ return last >= 55296 && last <= 56319 ? head.slice(0, -1) : head;
50
+ }
20
51
  var PACKAGE = "@devcontainers/cli";
21
52
  function buildRootFromDist(moduleDir = dirname(fileURLToPath(import.meta.url))) {
22
53
  try {
@@ -732,4 +763,4 @@ function ensureBuilder(rawRun, spec, options = {}) {
732
763
  );
733
764
  }
734
765
 
735
- export { BUILD_LABEL, COMMAND_DIR, HASH_ARGV, JUDGE_DIR, JUDGE_ITEMS, JUDGE_MAX_TURNS, JUDGE_PROGRAM, JUDGE_REPORT, MAX_ITEMS_BYTES, MAX_REPORT_BYTES, MIN_BUILDX_VERSION, RUNNER_LABEL, builderName, builderNameFor, builderSpec, buildxState, childEnvironment, containerExecArgs, containerRunArgs, createDockerHost, dockerIdentity, ensureBuilder, ensureFailureCount, ensureRunnerIdentity, isOutOfMemory, judgeCommand, parseProgramHash, pathLabelValue, prepareRunArgs, proxyEnvironment, readJobFile, readJobFileChecked, readRunnerIdentity, resolveDevcontainerCli, runnerLabelValue, spawnRun, trackImageBuild, withAnswerProtocol, writeJobFile };
766
+ export { BUILD_LABEL, COMMAND_DIR, HASH_ARGV, JUDGE_DIR, JUDGE_ITEMS, JUDGE_MAX_TURNS, JUDGE_PROGRAM, JUDGE_REPORT, MAX_ITEMS_BYTES, MAX_REPORT_BYTES, MIN_BUILDX_VERSION, RUNNER_LABEL, builderName, builderNameFor, builderSpec, buildxState, childEnvironment, containerExecArgs, containerRunArgs, createDockerHost, dockerIdentity, ensureBuilder, ensureFailureCount, ensureRunnerIdentity, exceedsDisk, isOutOfMemory, judgeCommand, parseProgramHash, parseSize, pathLabelValue, prepareRunArgs, proxyEnvironment, readDu, readJobFile, readJobFileChecked, readRunnerIdentity, resolveDevcontainerCli, runnerLabelValue, spawnRun, trackImageBuild, withAnswerProtocol, writeJobFile };
@@ -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-AGZNCIIJ.js';
3
+ import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-PA6CK6WQ.js';
4
4
  import { readFileSync, existsSync, rmSync, mkdirSync, writeFileSync, renameSync } from 'fs';
5
5
  import { join } from 'path';
6
6
 
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { builtinKind } from './chunk-5BNWAIHN.js';
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';
3
+ import { builtinKind } from './chunk-RQJMN5TJ.js';
4
+ import { parseSize } from './chunk-FR7HWWCF.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,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { TUNNEL_PORT, BRIDGE_ADDRESS, BRIDGE_CIDR } from './chunk-QL3LPZ67.js';
3
+ import { TUNNEL_PORT, BRIDGE_ADDRESS, BRIDGE_CIDR } from './chunk-6LBSAW6I.js';
4
4
  import { startTimeOf } from './chunk-JBJTC3UU.js';
5
- import { EXEC_PORT } from './chunk-LWTBE5J6.js';
6
- import { RELAY_PORT } from './chunk-BCCI32ME.js';
5
+ import { EXEC_PORT } from './chunk-L26V6ILJ.js';
6
+ import { RELAY_PORT } from './chunk-BALIE3BA.js';
7
7
  import { spawn, spawnSync } from 'child_process';
8
8
  import { symlinkSync, lstatSync, writeFileSync, chmodSync, mkdirSync, existsSync } from 'fs';
9
9
 
@@ -2,7 +2,7 @@
2
2
  import { createRequire } from 'node:module';
3
3
  import { sanitizeTerminal } from './chunk-EWVYQLD3.js';
4
4
  import { isAgentsMdLayout } from './chunk-HJYBWJAS.js';
5
- import { resolveGatewayCredentials, defaultFetch } from './chunk-WPGBDY73.js';
5
+ import { resolveGatewayCredentials, defaultFetch } from './chunk-6RKD7YZ6.js';
6
6
  import { versionAtLeast } from './chunk-HCVLP7XA.js';
7
7
  import { findGitDirs } from './chunk-BJ3KTMDH.js';
8
8
  import { machineSkillsState, staleClaudeSkills } from './chunk-GFYEMCPP.js';
@@ -11,8 +11,9 @@ import { MAINTAINED_SKILLS } from './chunk-CDDED64E.js';
11
11
  import { cliInvocation } from './chunk-CRB3POP4.js';
12
12
  import { hasSymlinkComponent } from './chunk-AVTI3FL5.js';
13
13
  import { emitTree, ALL_TARGET_IDS, classifyTree, splitRawFile } from './chunk-LJG6EMLJ.js';
14
+ import { execFileSync } from 'child_process';
14
15
  import { existsSync, readFileSync, writeFileSync, realpathSync, readdirSync } from 'fs';
15
- import { join, dirname, posix } from 'path';
16
+ import { join, dirname, posix, basename, isAbsolute, relative } from 'path';
16
17
 
17
18
  createRequire(import.meta.url);
18
19
  var PROSE_FILE = /\.mdc?$/;
@@ -220,6 +221,63 @@ function checkMachineSkills(opts) {
220
221
  }
221
222
  ];
222
223
  }
224
+ var SKILL_BASES2 = [".agents/skills", ".claude/skills"];
225
+ function ignoreRuleFor(repoRoot, path) {
226
+ let out;
227
+ try {
228
+ out = execFileSync("git", ["-C", repoRoot, "check-ignore", "-v", "--", path], { encoding: "utf8", stdio: ["ignore", "pipe", "ignore"], timeout: 5e3 });
229
+ } catch {
230
+ return void 0;
231
+ }
232
+ const match = /^(.*?):(\d+):([^\t]*)\t/.exec(out);
233
+ if (match === null || match[3].startsWith("!")) return void 0;
234
+ return { source: match[1], line: match[2], pattern: match[3] };
235
+ }
236
+ function ignoredSkillFolders(repoRoot) {
237
+ const found = [];
238
+ let any = false;
239
+ const ruleFor = (path) => ignoreRuleFor(repoRoot, path);
240
+ for (const base of SKILL_BASES2) {
241
+ let names;
242
+ try {
243
+ names = readdirSync(join(repoRoot, base), { withFileTypes: true }).filter((entry) => entry.isDirectory() || entry.isSymbolicLink()).map((entry) => entry.name).sort();
244
+ } catch {
245
+ continue;
246
+ }
247
+ for (const name of names) {
248
+ const folder = `${base}/${name}`;
249
+ any = true;
250
+ const file = existsSync(join(repoRoot, folder, "SKILL.md")) ? `${folder}/SKILL.md` : folder;
251
+ if (ruleFor(file) === void 0) continue;
252
+ const parts = file.split("/");
253
+ const ignored = parts.map((_, i) => parts.slice(0, i + 1).join("/")).find((path) => ruleFor(path) !== void 0);
254
+ found.push({ folder, ignored, ...ruleFor(ignored) });
255
+ }
256
+ }
257
+ return { found, any };
258
+ }
259
+ function ignoredSkillFix({ folder, ignored, source, line }) {
260
+ if (folder.startsWith(`${ignored}/`)) {
261
+ return `${ignored}/ is ignored as a whole, and git cannot bring back a folder inside an ignored one: change line ${line} of ${source} so it no longer matches ${ignored}/, or run \`git add -f ${folder}\`, then commit.`;
262
+ }
263
+ const target = ignored === folder ? `${folder}/` : ignored;
264
+ if (basename(source) !== ".gitignore" || isAbsolute(source)) return `Add the line \`!${target}\` to .gitignore, then commit the folder.`;
265
+ const path = relative(dirname(source), target) + (target.endsWith("/") ? "/" : "");
266
+ const anchored = path.slice(0, -1).includes("/") ? path : `/${path}`;
267
+ return `Add the line \`!${anchored}\` to ${source} below line ${line}, then commit the folder.`;
268
+ }
269
+ function checkIgnoredSkillFolders(repoRoot) {
270
+ const { found, any } = ignoredSkillFolders(repoRoot);
271
+ if (found.length === 0) {
272
+ return !any ? [] : [{ name: "Skills", status: "pass", detail: `no folder under ${SKILL_BASES2.join(" or ")} is ignored by git` }];
273
+ }
274
+ return found.map((ignored) => ({
275
+ name: "Skills",
276
+ status: "warn",
277
+ detail: `${ignored.folder} is ignored by ${ignored.source} line ${ignored.line} (\`${ignored.pattern}\`), so git never commits it and a build's clone has no ${ignored.folder.split("/").at(-1)} skill`,
278
+ fix: ignoredSkillFix(ignored)
279
+ }));
280
+ }
223
281
 
224
282
  // src/fleet-readiness.ts
225
283
  var FIRST_VERSION_WITH_MACHINE_SKILLS = "0.27.0";
@@ -297,4 +355,4 @@ async function fleetCheck(opts = {}) {
297
355
  return [{ name: CHECK_NAME, status: "pass", detail }];
298
356
  }
299
357
 
300
- export { applyReferenceRewrites, checkBuildSkill, checkCommittedMaintainedSkills, checkMachineSkills, checkMaintainedReferences, committedMaintainedFolders, describeFleet, fleetCheck, fleetReadiness, maintainedReferenceRewrites, skillsFolders };
358
+ export { applyReferenceRewrites, checkBuildSkill, checkCommittedMaintainedSkills, checkIgnoredSkillFolders, checkMachineSkills, checkMaintainedReferences, committedMaintainedFolders, describeFleet, fleetCheck, fleetReadiness, maintainedReferenceRewrites, skillsFolders };
@@ -1,11 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { fetchFactories, selectFactory, saveFactoryConnection, autoConnectedLine } from './chunk-ZQOSIMKU.js';
4
- import { resolveRepoIdentity } from './chunk-5DNCFOXA.js';
5
- import { resolveGatewayCredentials } from './chunk-WPGBDY73.js';
6
- import { findGitDirs, readRepoConnection } from './chunk-BJ3KTMDH.js';
7
- import { cliInvocation } from './chunk-CRB3POP4.js';
8
- import { homeFromEnv } from './chunk-VNVZDWO3.js';
9
3
  import { openSync, fstatSync, readSync, closeSync } from 'fs';
10
4
  import { join } from 'path';
11
5
 
@@ -82,32 +76,4 @@ function transcriptPathForSession(sessionId, home, readTailImpl = readTail) {
82
76
  return found;
83
77
  }
84
78
 
85
- // src/auto-connect.ts
86
- async function autoConnect(opts) {
87
- const env = opts.env ?? process.env;
88
- const home = opts.home ?? homeFromEnv(env);
89
- const cwd = opts.cwd ?? process.cwd();
90
- const resolved = resolveGatewayCredentials({ url: opts.url, apiKey: opts.apiKey, appId: opts.appId, home, env, cwd });
91
- if (resolved.ok || resolved.kind !== "login" || !resolved.credential || !resolved.url) return void 0;
92
- const dirs = findGitDirs(cwd);
93
- const repository = opts.repository ?? resolveRepoIdentity(cwd).gitRepo;
94
- if (dirs === void 0 || repository === void 0) return void 0;
95
- const listed = await fetchFactories(opts.fetchImpl ?? fetch, resolved.url, resolved.credential, repository);
96
- if (!listed.ok || listed.factories.length === 0) return void 0;
97
- const chosen = selectFactory(listed.factories, readRepoConnection(cwd), repository);
98
- if (chosen.factory === void 0) {
99
- return `you are logged in, but no factory is chosen for this repository, and more than one fits. Run \`${cliInvocation()} connect --factory <org>/<factory>\` with one of:
100
- ${chosen.text}
101
- Or pass --app-id / set OUTERLAYER_APP_ID.`;
102
- }
103
- try {
104
- saveFactoryConnection(dirs.gitCommonDir, void 0, chosen.factory, /* @__PURE__ */ new Date());
105
- } catch {
106
- return void 0;
107
- }
108
- process.stderr.write(`${autoConnectedLine(repository, chosen.factory, chosen.reason)}
109
- `);
110
- return void 0;
111
- }
112
-
113
- export { autoConnect, detectActiveSession, transcriptPathForSession };
79
+ export { detectActiveSession, transcriptPathForSession };
@@ -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,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
 
@@ -44,10 +44,10 @@ function guestAssetsPinned(arch) {
44
44
  var JAILER_BINARY_SHA256 = {
45
45
  x86_64: "65ef226e96f0ceda55ba643f445801ef2cc0ea667ef67cad8ac4f406c9c8434f"
46
46
  };
47
- var HOST_HELPER_ASSETS_VERSION = "10";
47
+ var HOST_HELPER_ASSETS_VERSION = "13";
48
48
  var HOST_HELPER_BASE_URL = `https://github.com/outerlayerai/guest-assets/releases/download/guest-${HOST_HELPER_ASSETS_VERSION}`;
49
49
  var HOST_HELPER_SHA256 = {
50
- x86_64: "caa06b7206cceae6d8fc569781b269817ca66cb2ccfe177740fda042ed46bfcc"
50
+ x86_64: "0d6cdbce1e5a5e084726b1d1b1cc0bc208f6662fe8d10a1d7a91e8573035505f"
51
51
  };
52
52
  function hostHelperPinned(arch = "x86_64", hashes = HOST_HELPER_SHA256) {
53
53
  return hashes[arch] !== "0".repeat(64);
@@ -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);