@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.
- package/README.md +5 -0
- package/dist/{agent-setup-RJOVRRHK.js → agent-setup-55ZDEXCS.js} +6 -6
- package/dist/{bridge-BCG2EB7F.js → bridge-NBCXFTT4.js} +2 -2
- package/dist/{build-GKCVFHF4.js → build-G4GUF6LT.js} +4 -4
- package/dist/{build-disk-6QAXMA2J.js → build-disk-3GL3KKEB.js} +5 -5
- package/dist/build-info.json +1 -1
- package/dist/{builder-DPNHJXG3.js → builder-3CUKTVSY.js} +4 -4
- package/dist/{check-64UX323V.js → check-64FD5G3X.js} +35 -37
- package/dist/{chunk-3MXPS7ED.js → chunk-2N67C6IV.js} +5 -4
- package/dist/{chunk-ZQOSIMKU.js → chunk-2WMZPJVE.js} +6 -3
- package/dist/{chunk-5BNWAIHN.js → chunk-3DCB3GOV.js} +41 -3
- package/dist/{chunk-UOFBHIOZ.js → chunk-57L2YAJA.js} +1 -1
- package/dist/{chunk-6NWS455T.js → chunk-5THSC6BD.js} +1 -1
- package/dist/{chunk-QL3LPZ67.js → chunk-6LBSAW6I.js} +1 -1
- package/dist/{chunk-WPGBDY73.js → chunk-6RKD7YZ6.js} +1 -1
- package/dist/{chunk-77B36F5K.js → chunk-6Z4SZHV2.js} +4 -3
- package/dist/{chunk-DETKDTNL.js → chunk-AU346ENF.js} +3 -2
- package/dist/chunk-B2JURP6A.js +41 -0
- package/dist/{chunk-BCCI32ME.js → chunk-BALIE3BA.js} +36 -7
- package/dist/{chunk-BY36DVJV.js → chunk-BKADJZ7F.js} +3 -2
- package/dist/{chunk-H7A3IQH5.js → chunk-CANYZTD5.js} +39 -22
- package/dist/{chunk-L6JFFP3Q.js → chunk-DGI66PGY.js} +32 -20
- package/dist/{chunk-GN2R5Z7G.js → chunk-DXJTBU7A.js} +3 -3
- package/dist/{chunk-WCELNMXT.js → chunk-EUVE2EAE.js} +2 -2
- package/dist/{chunk-DDS2ISML.js → chunk-F5UL23I2.js} +1 -1
- package/dist/{chunk-43PV5KDB.js → chunk-GFVDC5S3.js} +3 -3
- package/dist/{chunk-JEKENLLA.js → chunk-GH246BGV.js} +1 -1
- package/dist/{chunk-W5DOK7BL.js → chunk-HVRQQOMH.js} +3 -3
- package/dist/{chunk-6IKSUAIA.js → chunk-HXA5GIHK.js} +61 -3
- package/dist/{chunk-2QT4JUW3.js → chunk-IP7BIBXJ.js} +1 -35
- package/dist/{chunk-KLXWS5Z7.js → chunk-JPG43G6Y.js} +3 -3
- package/dist/{chunk-D3HRAPNF.js → chunk-JRZCRIEO.js} +1044 -640
- package/dist/{chunk-LWTBE5J6.js → chunk-L26V6ILJ.js} +1 -1
- package/dist/{chunk-ZXBQ6E72.js → chunk-LJUIG5K4.js} +14 -9
- package/dist/{chunk-ZRRUWNJS.js → chunk-LYE3KB6L.js} +3 -3
- package/dist/{chunk-SK4TWCN3.js → chunk-MZBQTVFG.js} +1 -1
- package/dist/{chunk-YKYCE4HY.js → chunk-MZYOUIY5.js} +1 -1
- package/dist/{chunk-OWDSO3PE.js → chunk-NBZ7XBT6.js} +1 -1
- package/dist/{chunk-6C2YWM6N.js → chunk-OOCAF3ID.js} +1 -1
- package/dist/{chunk-AGZNCIIJ.js → chunk-PA6CK6WQ.js} +1 -1
- package/dist/{chunk-QDMMW5PC.js → chunk-Q2CMEQV7.js} +2 -2
- package/dist/{chunk-DNKUSXQU.js → chunk-QFQC5K4J.js} +6 -113
- package/dist/{chunk-DJWKUQLO.js → chunk-QPWFVE3X.js} +1 -1
- package/dist/{chunk-AA6LYZC4.js → chunk-SOI6K5DY.js} +1 -1
- package/dist/{chunk-35IY5HQY.js → chunk-SVDOA4W2.js} +1 -1
- package/dist/{chunk-RBJG5MM4.js → chunk-T5REPMNL.js} +5 -5
- package/dist/{chunk-6KLPC4U7.js → chunk-ULBNTSAD.js} +3 -2
- package/dist/{chunk-CMKY36NV.js → chunk-VT4TTJPG.js} +6 -5
- package/dist/{chunk-FAZDYI2D.js → chunk-XL2XWWU7.js} +3 -2
- package/dist/{chunk-P5FC7VUO.js → chunk-XWFSAOC7.js} +2 -2
- package/dist/{chunk-CUBIZBMF.js → chunk-YERR22SY.js} +3 -3
- package/dist/{chunk-GWDS42JC.js → chunk-Z5IW4DHH.js} +1 -1
- package/dist/{claude-launcher-66GKNIRZ.js → claude-launcher-NTYHJUJM.js} +1 -1
- package/dist/{cli-WICFAKFW.js → cli-WKRURGHC.js} +126 -102
- package/dist/{command-VGR24IPI.js → command-WG54AUHK.js} +23 -23
- package/dist/{config-DUY2PT7K.js → config-LZSFW2O3.js} +2 -3
- package/dist/{connect-cmd-ADRPR6ES.js → connect-cmd-P5GASVAF.js} +5 -5
- package/dist/{container-start-QX53HKXW.js → container-start-DQKFQ3CL.js} +21 -23
- package/dist/context-show-cmd-3EPJ7CJC.js +115 -0
- package/dist/{control-plane-launch-SMHL6MWW.js → control-plane-launch-A3YCHQNQ.js} +5 -5
- package/dist/{docker-GGRJHHBP.js → docker-4ERXWTRW.js} +4 -4
- package/dist/{doctor-N3CDJ66I.js → doctor-GRCEYJXA.js} +24 -26
- package/dist/{emit-artifact-cmd-73OWUBH6.js → emit-artifact-cmd-FDPJKGOO.js} +11 -10
- package/dist/{emit-criteria-cmd-D7OR356Y.js → emit-criteria-cmd-3SVGCMJN.js} +8 -7
- package/dist/{emit-demo-cmd-4AV74GMZ.js → emit-demo-cmd-JSVI56WY.js} +11 -10
- package/dist/{emit-finding-cmd-GEPRJ6KO.js → emit-finding-cmd-TLJWBGQE.js} +8 -7
- package/dist/{emit-result-cmd-N52IABK6.js → emit-result-cmd-CJNVDV5V.js} +10 -9
- package/dist/{emit-step-cmd-CC6MUJ2S.js → emit-step-cmd-347CZO7Y.js} +8 -7
- package/dist/{exec-client-KLI262IX.js → exec-client-7PT4W7JR.js} +3 -3
- package/dist/{findings-cmd-7I72XX2H.js → findings-cmd-LHTYEHYB.js} +8 -7
- package/dist/{fleet-readiness-EZAGL32M.js → fleet-readiness-KGR5AC2J.js} +5 -5
- package/dist/{governing-source-M7ZRJCGY.js → governing-source-JZQZUTMA.js} +10 -9
- package/dist/{guest-init-ZJIE6MU3.js → guest-init-J3F3AEEY.js} +4 -4
- package/dist/{hook-fast-WNKICZ6E.js → hook-fast-6WDMNZG5.js} +1 -1
- package/dist/{pending-I5TY6SQH.js → host-key-UERIQRE6.js} +3 -3
- package/dist/{image-tag-MORUQ4LF.js → image-tag-ADSLWXBA.js} +3 -3
- package/dist/index.js +4 -4
- package/dist/{init-XG4NRZX4.js → init-OKJAI77M.js} +20 -22
- package/dist/{init-VCWDBOT4.js → init-WNO4NAO7.js} +20 -22
- package/dist/{init-cmd-2CAMWMRP.js → init-cmd-PFW4XTG7.js} +11 -10
- package/dist/{init-update-NCM4GA3S.js → init-update-X7YLZL6H.js} +8 -8
- package/dist/{install-NLVYISAV.js → install-GQUCHIGE.js} +4 -5
- package/dist/{install-cmd-HFGINYEE.js → install-cmd-FV7IZ7XF.js} +5 -5
- package/dist/{logs-QSKJ4G6M.js → logs-HI46FO6Z.js} +2 -2
- package/dist/{loop-PXALY3VY.js → loop-2SITCQ6H.js} +35 -37
- package/dist/{machine-AZRL432D.js → machine-YHBCNRUO.js} +20 -18
- package/dist/{mcp-serve-cmd-DQSO6MOL.js → mcp-serve-cmd-7ABBV2QE.js} +4 -4
- package/dist/{paths-KHDFSBEI.js → paths-7HVTDE6J.js} +2 -2
- package/dist/{host-key-REZADWAM.js → pending-5HZACM2V.js} +3 -3
- package/dist/{pidfile-BSY63HIC.js → pidfile-5UDLYPMC.js} +3 -3
- package/dist/{record-7CNTGRLD.js → record-PPZEXAVA.js} +3 -3
- package/dist/{runner-env-26NLQI35.js → runner-env-QYE7KZFP.js} +5 -6
- package/dist/{runner-identity-WGH73DTV.js → runner-identity-FIHOECSH.js} +4 -4
- package/dist/{runner-key-6BIULOR4.js → runner-key-YUKU2MWK.js} +20 -22
- package/dist/{session-sender-MSHKJSBG.js → session-sender-7B3ZDWMC.js} +11 -10
- package/dist/{spec-cmd-AWIMO32E.js → spec-cmd-Q26NE22H.js} +9 -8
- package/dist/{status-BILERIXB.js → status-VBQJMFEX.js} +27 -25
- package/dist/{sync-cmd-BSUZ65CU.js → sync-cmd-SSUYTMLJ.js} +10 -9
- package/dist/{watch-UF6XCGSI.js → watch-L5NCO46E.js} +10 -9
- package/dist/{work-claim-cmd-4FXVAZWF.js → work-claim-cmd-MFND6Z4S.js} +12 -12
- package/dist/{work-cmd-NCP4637R.js → work-cmd-W7WEHMQJ.js} +8 -7
- package/dist/{work-comment-cmd-YNQYVHYS.js → work-comment-cmd-SSUOGVDD.js} +8 -7
- package/dist/{work-logs-cmd-HHWVYQBG.js → work-logs-cmd-WPMWMDX6.js} +8 -7
- package/dist/{work-open-pr-cmd-ALVD7KLY.js → work-open-pr-cmd-NO5YLOXD.js} +9 -8
- package/dist/{work-pr-cmd-KBNFVRB4.js → work-pr-cmd-37B5KECR.js} +8 -7
- package/dist/{work-stop-cmd-DBWNHZJO.js → work-stop-cmd-3BJLXUJ3.js} +8 -7
- package/package.json +1 -1
- package/skill-pack/maintained/outerlayer-build/SKILL.md +4 -2
- package/dist/chunk-I5LGKZ4M.js +0 -107
- package/dist/chunk-UXYLWVTQ.js +0 -43
- 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-
|
|
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-
|
|
5
|
-
import { resolveCredentials, getJson, WorkCommandError } from './chunk-
|
|
6
|
-
import { isLinkedRepository } from './chunk-
|
|
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-
|
|
12
|
-
import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-
|
|
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-
|
|
1194
|
-
const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-
|
|
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-
|
|
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-
|
|
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-
|
|
3
|
+
import { builtinKind } from './chunk-3DCB3GOV.js';
|
|
4
4
|
import { parseSize } from './chunk-YJLHUKYS.js';
|
|
5
|
-
import { runnerDir } from './chunk-
|
|
6
|
-
import { CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-
|
|
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-
|
|
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
|
|
|
@@ -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-
|
|
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-
|
|
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,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { LiveUploader } from './chunk-
|
|
3
|
+
import { LiveUploader } from './chunk-2N67C6IV.js';
|
|
4
4
|
import { CaptureDaemon } from './chunk-5DNCFOXA.js';
|
|
5
|
-
import { spoolDir } from './chunk-
|
|
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 {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
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-
|
|
9
|
-
import {
|
|
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,
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
4
|
-
import { defaultGitRunner, materializeContext, fetchControlPlaneCommit, lookupGoverningSource } from './chunk-
|
|
5
|
-
import { signingFetchFor } from './chunk-
|
|
6
|
-
import { signerFor } from './chunk-
|
|
7
|
-
import { SHIM_DIR, stagedContextDir, contextHomeDir, deliveryDir, keptContextDir } from './chunk-
|
|
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 {
|
|
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-
|
|
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
|
|
4
|
-
import {
|
|
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-
|
|
9
|
-
import { signRunnerRequest } from './chunk-
|
|
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-
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
4
|
-
import { RUNNER_FILE_MODE } from './chunk-
|
|
5
|
-
import { claudeEnvPath, withoutCredentialLines } from './chunk-
|
|
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-
|
|
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-
|
|
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);
|