@outerlayer/cli 0.33.0-next.20261022160949 → 0.33.0-next.20261022173306
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/dist/{agent-setup-2MJXGAZ5.js → agent-setup-TXC37SDW.js} +7 -7
- package/dist/{bridge-3EG6Q34K.js → bridge-DMFMBDRG.js} +3 -3
- package/dist/{build-NCELVKHF.js → build-ZG3IYBVK.js} +5 -5
- package/dist/{build-disk-5GIWYDOB.js → build-disk-5CI7FSX4.js} +6 -6
- package/dist/build-info.json +1 -1
- package/dist/{builder-EELBB7SI.js → builder-6CZUYTHS.js} +5 -5
- package/dist/{check-EJKRXI2N.js → check-TKBLYWSD.js} +36 -36
- package/dist/{chunk-THTBXIK5.js → chunk-25JWQ3PF.js} +2 -2
- package/dist/{chunk-S2IJQER5.js → chunk-427LS26N.js} +3 -3
- package/dist/{chunk-TA6TFYAN.js → chunk-64P3ZIGA.js} +3 -3
- package/dist/{chunk-HBBCQ5NE.js → chunk-6N4CYTHB.js} +4 -4
- package/dist/{chunk-D7ECJX4J.js → chunk-6QHLXYS2.js} +10 -10
- package/dist/{chunk-MBE6FEQ3.js → chunk-7EBXH2LK.js} +2 -2
- package/dist/{chunk-M5ZXOQYS.js → chunk-7NEOLKCQ.js} +1 -1
- package/dist/{chunk-QJNFO7TQ.js → chunk-7ZPHKBYH.js} +2 -2
- package/dist/{chunk-OJ63GRZ2.js → chunk-BZZIW2A3.js} +2 -2
- package/dist/{chunk-A3H27SYX.js → chunk-CBJTDU2Z.js} +1 -1
- package/dist/{chunk-XTBGPISI.js → chunk-CWP6P7FQ.js} +8 -8
- package/dist/{chunk-HDSDUTX4.js → chunk-D5ZGMXUL.js} +1 -1
- package/dist/{chunk-B3EE7OKK.js → chunk-DSSDKQGX.js} +1 -1
- package/dist/{chunk-LWODW66U.js → chunk-FXTYLRFW.js} +22 -20
- package/dist/{chunk-IPJ6HR7E.js → chunk-FZMBBIZR.js} +1 -1
- package/dist/{chunk-AESNEWYR.js → chunk-GMMHAUBZ.js} +2 -2
- package/dist/{chunk-XD4ZCMA4.js → chunk-HACGUL52.js} +12 -3
- package/dist/{chunk-ELYHDWCC.js → chunk-HAD7LYDL.js} +3 -3
- package/dist/{chunk-6WUQSARX.js → chunk-IJXZFFW4.js} +10 -10
- package/dist/{chunk-533QGXGZ.js → chunk-ILHDLZKE.js} +1 -1
- package/dist/{chunk-FQW7TKIU.js → chunk-IOF4N6ED.js} +5 -5
- package/dist/{chunk-ESP5VZBD.js → chunk-IX6EADX7.js} +1 -1
- package/dist/{chunk-JT3YO5MH.js → chunk-IZDBVUBY.js} +1 -1
- package/dist/{chunk-6JNCNHSV.js → chunk-KCRUMHSL.js} +5 -5
- package/dist/{chunk-IK6M37BI.js → chunk-KGLEUJZO.js} +3 -3
- package/dist/{chunk-HVIYKGK5.js → chunk-KM2ZFYJ5.js} +19 -19
- package/dist/{chunk-J42MMS4R.js → chunk-LCHFBISI.js} +2 -2
- package/dist/{chunk-VQ2JGZSC.js → chunk-M5B7QVWU.js} +1 -1
- package/dist/{chunk-52C3SSNF.js → chunk-NVU7QK3A.js} +4 -4
- package/dist/{chunk-HIGJTX5U.js → chunk-O5F376JJ.js} +1 -1
- package/dist/{chunk-CNRMP6EN.js → chunk-PETBUIR4.js} +1 -1
- package/dist/{chunk-QSSYXK6C.js → chunk-QY7BNRS6.js} +2 -2
- package/dist/{chunk-V2EUC2MJ.js → chunk-T44DZRT2.js} +3 -3
- package/dist/{chunk-XTNMIV77.js → chunk-TTACRX4N.js} +1 -1
- package/dist/{chunk-3VGDZ23W.js → chunk-USCRSIES.js} +1 -1
- package/dist/{chunk-2GHI2J26.js → chunk-V4KIB7DX.js} +1 -1
- package/dist/{chunk-C3XLVHN6.js → chunk-VBXNRP5E.js} +2 -2
- package/dist/{chunk-JZ4FXSLI.js → chunk-VORMBXWO.js} +2 -2
- package/dist/{chunk-LCVR4UIS.js → chunk-VTCV2EIC.js} +5 -5
- package/dist/{chunk-LH3KULPL.js → chunk-WPVIC2ST.js} +1 -1
- package/dist/{chunk-72BIONOT.js → chunk-XR4HMWQI.js} +1 -1
- package/dist/{chunk-QQGZ5THT.js → chunk-XXVYHC6D.js} +1 -1
- package/dist/{chunk-L3DUKDTR.js → chunk-ZPSS4CVW.js} +1 -1
- package/dist/{chunk-ALSE7YKX.js → chunk-ZQ7VRXYM.js} +1 -1
- package/dist/{chunk-WHRR55PC.js → chunk-ZU4ZY7CZ.js} +4 -4
- package/dist/{claude-launcher-IUDNUD2J.js → claude-launcher-H23NRBGG.js} +1 -1
- package/dist/{cli-OHQKHGEU.js → cli-H2SKBBUA.js} +102 -102
- package/dist/{command-7IY3XGAG.js → command-FPIWWJOW.js} +23 -23
- package/dist/{config-CUJ3Q4L2.js → config-WAIYUZUG.js} +3 -3
- package/dist/{connect-cmd-AQSJVDQU.js → connect-cmd-6CTOXCMO.js} +6 -6
- package/dist/{container-start-BPQHJMNF.js → container-start-22L2L3ZN.js} +23 -23
- package/dist/{control-plane-launch-K7YD6KEN.js → control-plane-launch-LMMGKN45.js} +6 -6
- package/dist/{docker-UKJBLZLW.js → docker-HRRTSESV.js} +5 -5
- package/dist/{doctor-JUR62PMF.js → doctor-SXCEI4PK.js} +26 -26
- package/dist/{emit-artifact-cmd-HI3EYJA3.js → emit-artifact-cmd-PNU53NHX.js} +11 -11
- package/dist/{emit-criteria-cmd-6D4D5ZBW.js → emit-criteria-cmd-TAHE36VH.js} +8 -8
- package/dist/{emit-demo-cmd-HWDC3MAK.js → emit-demo-cmd-LQLAACNI.js} +11 -11
- package/dist/{emit-finding-cmd-A7RBLHTN.js → emit-finding-cmd-XAPF2ADX.js} +8 -8
- package/dist/{emit-result-cmd-2WVVAGST.js → emit-result-cmd-5JCWPMDF.js} +10 -10
- package/dist/{emit-step-cmd-KNVHYSXT.js → emit-step-cmd-XGZ4Y7WB.js} +8 -8
- package/dist/{exec-client-JLCFGCZT.js → exec-client-ODRV5HSQ.js} +4 -4
- package/dist/{findings-cmd-ISP3P3UY.js → findings-cmd-GFRXCIDW.js} +8 -8
- package/dist/{fleet-readiness-O2WAJJVT.js → fleet-readiness-2UOPN73C.js} +6 -6
- package/dist/{governing-source-PMWZJCXJ.js → governing-source-UE2YJEFL.js} +10 -10
- package/dist/{guest-init-3LNAL3TB.js → guest-init-KDK4DQFK.js} +5 -5
- package/dist/{hook-fast-FJ2PMBML.js → hook-fast-CSR32RVX.js} +1 -1
- package/dist/host-key-D3EFK52H.js +10 -0
- package/dist/{image-tag-V2LXTKK7.js → image-tag-SHPANRDC.js} +4 -4
- package/dist/index.js +4 -4
- package/dist/{init-YRSKJNSB.js → init-5MBBGEV6.js} +22 -22
- package/dist/{init-ZXV6LILS.js → init-XYXY27AZ.js} +22 -22
- package/dist/{init-cmd-3F436JBW.js → init-cmd-KUQIWSPY.js} +11 -11
- package/dist/{init-update-6OPETOBA.js → init-update-CVBL77OI.js} +9 -9
- package/dist/{inspect-L7JIBK3Y.js → inspect-DNLXTXLA.js} +1 -1
- package/dist/{install-3DBYJITP.js → install-TWT2WXEO.js} +5 -5
- package/dist/{install-cmd-EELSKBSZ.js → install-cmd-45CPGPLT.js} +6 -6
- package/dist/{logs-ET75ZUCN.js → logs-2LMXN7GQ.js} +3 -3
- package/dist/{loop-MCR3EUSZ.js → loop-VHTNWIHI.js} +36 -36
- package/dist/{machine-35YQ7MGN.js → machine-7HDA6MFG.js} +18 -18
- package/dist/{mcp-serve-cmd-WYUP263T.js → mcp-serve-cmd-3GCJKTSF.js} +5 -5
- package/dist/{paths-BN7X2YPM.js → paths-G6G3BJHG.js} +3 -3
- package/dist/pending-7B67ODWC.js +10 -0
- package/dist/{pidfile-52TGLGQH.js → pidfile-WVL54AJK.js} +4 -4
- package/dist/{record-BSY4BKJ5.js → record-H4A3HMMD.js} +4 -4
- package/dist/{runner-env-H6XLACTG.js → runner-env-WXG5KLBK.js} +6 -6
- package/dist/{runner-identity-GO762MHZ.js → runner-identity-KARE5T3G.js} +5 -5
- package/dist/{runner-key-BQSR6MK4.js → runner-key-FFWA4AOV.js} +22 -22
- package/dist/{session-sender-ENL3IBVD.js → session-sender-CHJJC2WE.js} +11 -11
- package/dist/{spec-cmd-ZJAPP2XZ.js → spec-cmd-7D5PPR4I.js} +9 -9
- package/dist/{status-GQEAZBUJ.js → status-UPDTLTTF.js} +25 -25
- package/dist/{sync-cmd-Z4BYKM6K.js → sync-cmd-IVN4LVOH.js} +10 -10
- package/dist/{watch-MBEA6QB4.js → watch-OELQXJA3.js} +10 -10
- package/dist/{work-claim-cmd-TLXRPJWO.js → work-claim-cmd-EIE6NU5O.js} +11 -11
- package/dist/{work-cmd-DYM67Z3F.js → work-cmd-LPEBBF4I.js} +8 -8
- package/dist/{work-comment-cmd-CRRWP3AH.js → work-comment-cmd-JDIXMD6G.js} +8 -8
- package/dist/{work-logs-cmd-7LFOEVXI.js → work-logs-cmd-3QFTKXR2.js} +8 -8
- package/dist/{work-open-pr-cmd-XXQ75PSU.js → work-open-pr-cmd-LM7C63XI.js} +9 -9
- package/dist/{work-pr-cmd-ZVE7EGSC.js → work-pr-cmd-VFEQMSAI.js} +8 -8
- package/dist/{work-stop-cmd-GVFSTGLK.js → work-stop-cmd-YKXWUGTC.js} +8 -8
- package/package.json +1 -1
- package/skill-pack/maintained/outerlayer-amend/SKILL.md +9 -11
- package/skill-pack/maintained/outerlayer-build/SKILL.md +1 -1
- package/skill-pack/maintained/outerlayer-cli/SKILL.md +1 -1
- package/skill-pack/maintained/outerlayer-evidence/SKILL.md +1 -1
- package/skill-pack/maintained/outerlayer-findings/SKILL.md +4 -6
- package/skill-pack/shipped.json +1 -0
- package/skill-pack/template/spec/SKILL.md +1 -1
- package/dist/host-key-UEWE4PXB.js +0 -10
- package/dist/pending-ROAIK5WO.js +0 -10
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { gatherDoctorChecks, doctorExitCode, summarizeChecks, renderDoctorText, recordWrapped, recordUnwrapped, recordRemoval, readManifest, recordInstall, recordStatusline } from './chunk-
|
|
3
|
+
import { gatherDoctorChecks, doctorExitCode, summarizeChecks, renderDoctorText, recordWrapped, recordUnwrapped, recordRemoval, readManifest, recordInstall, recordStatusline } from './chunk-IJXZFFW4.js';
|
|
4
4
|
import './chunk-BJQ25STI.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-XR4HMWQI.js';
|
|
6
6
|
import './chunk-KT4CN6OU.js';
|
|
7
7
|
import './chunk-DY7Y7UT4.js';
|
|
8
|
-
import { verifiedTrackerNames, TRACKERS } from './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
8
|
+
import { verifiedTrackerNames, TRACKERS } from './chunk-KCRUMHSL.js';
|
|
9
|
+
import './chunk-VBXNRP5E.js';
|
|
10
|
+
import './chunk-DSSDKQGX.js';
|
|
11
11
|
import './chunk-EWVYQLD3.js';
|
|
12
12
|
import './chunk-5DNCFOXA.js';
|
|
13
13
|
import { FIRST_VERSION_READING_AGENTS_SKILLS } from './chunk-HJYBWJAS.js';
|
|
@@ -15,12 +15,12 @@ import './chunk-NSPRS7WK.js';
|
|
|
15
15
|
import './chunk-G2JWZDFA.js';
|
|
16
16
|
import { C, warnDeprecated, API_KEY_FLAG_DEPRECATION, NO_COLOR_FLAG, stripNoColor } from './chunk-ANPNT6PM.js';
|
|
17
17
|
import './chunk-UIUGTW5C.js';
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-M5B7QVWU.js';
|
|
19
19
|
import './chunk-PJDQPF5N.js';
|
|
20
|
-
import './chunk-
|
|
21
|
-
import './chunk-
|
|
22
|
-
import './chunk-
|
|
23
|
-
import { hookFiredMarkerPath, installedCliDistDir } from './chunk-
|
|
20
|
+
import './chunk-IZDBVUBY.js';
|
|
21
|
+
import './chunk-IX6EADX7.js';
|
|
22
|
+
import './chunk-D5ZGMXUL.js';
|
|
23
|
+
import { hookFiredMarkerPath, installedCliDistDir } from './chunk-ZPSS4CVW.js';
|
|
24
24
|
import './chunk-ZJSNLVCE.js';
|
|
25
25
|
import './chunk-I7RZHMXW.js';
|
|
26
26
|
import './chunk-BKO6JEZI.js';
|
|
@@ -40,7 +40,7 @@ import { removeJournalHooks, removePreCommitGuardHook } from './chunk-TUSYOL2O.j
|
|
|
40
40
|
import './chunk-LJG6EMLJ.js';
|
|
41
41
|
import './chunk-E6CO3MJE.js';
|
|
42
42
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
43
|
-
import './chunk-
|
|
43
|
+
import './chunk-HACGUL52.js';
|
|
44
44
|
import './chunk-MESOOLF4.js';
|
|
45
45
|
import './chunk-Z5GEFMRW.js';
|
|
46
46
|
import { EventEmitter } from 'events';
|
|
@@ -3799,7 +3799,7 @@ async function installMachineSkillsForSetup() {
|
|
|
3799
3799
|
` : "";
|
|
3800
3800
|
}
|
|
3801
3801
|
async function realConnectDepsForCwd() {
|
|
3802
|
-
const { realConnectDeps } = await import('./connect-cmd-
|
|
3802
|
+
const { realConnectDeps } = await import('./connect-cmd-6CTOXCMO.js');
|
|
3803
3803
|
const { resolveRepoIdentity } = await import('./dist-ACTRIBVW.js');
|
|
3804
3804
|
return {
|
|
3805
3805
|
...realConnectDeps(),
|
|
@@ -3874,8 +3874,8 @@ build, ../outerlayer-build/SKILL.md becomes ~/.agents/skills/outerlayer-build/SK
|
|
|
3874
3874
|
what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocation() + " doctor` reports the same\nstates under Starter files.\n"
|
|
3875
3875
|
).action(async (opts) => {
|
|
3876
3876
|
if (opts.update || opts.dryRun) {
|
|
3877
|
-
const { runInitUpdateWithFleet, formatInitUpdate, updateFlagProblem } = await import('./init-update-
|
|
3878
|
-
const { fleetReadiness } = await import('./fleet-readiness-
|
|
3877
|
+
const { runInitUpdateWithFleet, formatInitUpdate, updateFlagProblem } = await import('./init-update-CVBL77OI.js');
|
|
3878
|
+
const { fleetReadiness } = await import('./fleet-readiness-2UOPN73C.js');
|
|
3879
3879
|
const problem = updateFlagProblem(opts);
|
|
3880
3880
|
if (problem !== void 0) {
|
|
3881
3881
|
fail(problem);
|
|
@@ -3926,13 +3926,13 @@ what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocat
|
|
|
3926
3926
|
if (changed.length > 0 && !opts.json) process.stdout.write(`Removed the claude function from ${changed.join(", ")}.
|
|
3927
3927
|
`);
|
|
3928
3928
|
}
|
|
3929
|
-
const shell = !opts.remove && opts.shellFunction !== void 0 ? (await import('./init-cmd-
|
|
3929
|
+
const shell = !opts.remove && opts.shellFunction !== void 0 ? (await import('./init-cmd-KUQIWSPY.js')).applyShellFunctionFlag(opts.shellFunction, { home: homeFromEnv(), shellPath: process.env.SHELL }) : void 0;
|
|
3930
3930
|
if (opts.json) writeJson(shell === void 0 ? outcome.result : { ...outcome.result, shellFunction: { outcome: shell.outcome, reason: shell.reason } });
|
|
3931
3931
|
else process.stdout.write(outcome.text + skillsLine + (shell?.text ?? ""));
|
|
3932
3932
|
return;
|
|
3933
3933
|
}
|
|
3934
3934
|
await installMachineSkillsForSetup();
|
|
3935
|
-
const { runInitCommand } = await import('./init-cmd-
|
|
3935
|
+
const { runInitCommand } = await import('./init-cmd-KUQIWSPY.js');
|
|
3936
3936
|
const code = await runInitCommand(
|
|
3937
3937
|
{ json: opts.json, factory: opts.factory, shellFunction: opts.shellFunction },
|
|
3938
3938
|
{
|
|
@@ -3944,7 +3944,7 @@ what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocat
|
|
|
3944
3944
|
return { ok, text, detail };
|
|
3945
3945
|
},
|
|
3946
3946
|
runAgentSetup: async () => {
|
|
3947
|
-
const { runAgentSetup } = await import('./agent-setup-
|
|
3947
|
+
const { runAgentSetup } = await import('./agent-setup-TXC37SDW.js');
|
|
3948
3948
|
return runAgentSetup({ cwd: process.cwd(), skillsLink: opts.skillsLink !== false });
|
|
3949
3949
|
},
|
|
3950
3950
|
runDoctorChecks: gatherDoctorChecks,
|
|
@@ -3953,7 +3953,7 @@ what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocat
|
|
|
3953
3953
|
shellPath: process.env.SHELL,
|
|
3954
3954
|
interactive: Boolean(process.stdin.isTTY && process.stderr.isTTY) && opts.json !== true,
|
|
3955
3955
|
ask: async () => {
|
|
3956
|
-
const { promptOnTerminal } = await import('./connect-cmd-
|
|
3956
|
+
const { promptOnTerminal } = await import('./connect-cmd-6CTOXCMO.js');
|
|
3957
3957
|
const answer = await promptOnTerminal({
|
|
3958
3958
|
message: `Should plain claude start Claude Code through ${cliInvocation()} claude? That is how a session in a governed repository gets its control plane. It adds one block to your zsh or bash startup file.`,
|
|
3959
3959
|
options: [
|
|
@@ -3992,7 +3992,7 @@ linked (true, false, or null when it could not be checked) and, when false,
|
|
|
3992
3992
|
linkUrl.
|
|
3993
3993
|
`
|
|
3994
3994
|
).action(async (opts) => {
|
|
3995
|
-
const { runConnectCommand } = await import('./connect-cmd-
|
|
3995
|
+
const { runConnectCommand } = await import('./connect-cmd-6CTOXCMO.js');
|
|
3996
3996
|
const code = await runConnectCommand({ factory: opts.factory, json: opts.json }, await realConnectDepsForCwd(), {
|
|
3997
3997
|
stdout: process.stdout,
|
|
3998
3998
|
stderr: process.stderr
|
|
@@ -4070,7 +4070,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4070
4070
|
else fail(found.reason);
|
|
4071
4071
|
return;
|
|
4072
4072
|
}
|
|
4073
|
-
const { runSync, SyncConfigError, SyncTransportError } = await import('./sync-cmd-
|
|
4073
|
+
const { runSync, SyncConfigError, SyncTransportError } = await import('./sync-cmd-IVN4LVOH.js');
|
|
4074
4074
|
try {
|
|
4075
4075
|
const result = await runSync({
|
|
4076
4076
|
url: opts.url,
|
|
@@ -4101,7 +4101,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4101
4101
|
if (invokedCommandToken(argv) === "watch") {
|
|
4102
4102
|
warnDeprecated(`\`${cliInvocation()} watch\` is now \`${cliInvocation()} daemon\`; the old name will be removed in a future release.`);
|
|
4103
4103
|
}
|
|
4104
|
-
const { runWatch } = await import('./watch-
|
|
4104
|
+
const { runWatch } = await import('./watch-OELQXJA3.js');
|
|
4105
4105
|
await runWatch({ once: opts.once });
|
|
4106
4106
|
});
|
|
4107
4107
|
program2.command("hook <event>", { hidden: true }).description("capture-hook fast path, installed by `init`").action(() => {
|
|
@@ -4162,7 +4162,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4162
4162
|
}
|
|
4163
4163
|
});
|
|
4164
4164
|
program2.command("vm-exec", { hidden: true }).description("run a command in a microVM build's guest through its exec agent").requiredOption("--socket <path>", "the Unix socket Firecracker serves the build's vsock device on").option("--user <user>", "the user to run as", "").option("--cwd <dir>", "the working directory", "/").option("--env <NAME=value>", "an environment value the command line carries; repeatable", (value, previous) => [...previous, value], []).option("--pass <NAME>", "an environment variable whose value is read from this process; repeatable", (value, previous) => [...previous, value], []).argument("<argv...>", "the command and its arguments").action(async (argv2, opts) => {
|
|
4165
|
-
const { runVmExec } = await import('./exec-client-
|
|
4165
|
+
const { runVmExec } = await import('./exec-client-ODRV5HSQ.js');
|
|
4166
4166
|
const env = {};
|
|
4167
4167
|
for (const entry of opts.env) {
|
|
4168
4168
|
const eq = entry.indexOf("=");
|
|
@@ -4191,7 +4191,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4191
4191
|
process.exitCode = await runBuildCommand({ dir: opts.dir, argv: command });
|
|
4192
4192
|
});
|
|
4193
4193
|
program2.command("session-sender", { hidden: true }).description("stream a runner build's sessions to its work item while the build runs").action(async () => {
|
|
4194
|
-
const { runSessionSender } = await import('./session-sender-
|
|
4194
|
+
const { runSessionSender } = await import('./session-sender-CHJJC2WE.js');
|
|
4195
4195
|
try {
|
|
4196
4196
|
await runSessionSender();
|
|
4197
4197
|
} catch (err) {
|
|
@@ -4199,7 +4199,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4199
4199
|
}
|
|
4200
4200
|
});
|
|
4201
4201
|
program2.command("vm-init", { hidden: true }).description("lay out a microVM build's guest; the guest helper runs it").action(async () => {
|
|
4202
|
-
const { realGuestHost, runGuestInit } = await import('./guest-init-
|
|
4202
|
+
const { realGuestHost, runGuestInit } = await import('./guest-init-KDK4DQFK.js');
|
|
4203
4203
|
const { readFileSync: readFileSync3 } = await import('fs');
|
|
4204
4204
|
try {
|
|
4205
4205
|
runGuestInit(realGuestHost(), readFileSync3("/proc/cmdline", "utf8"));
|
|
@@ -4208,7 +4208,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4208
4208
|
}
|
|
4209
4209
|
});
|
|
4210
4210
|
program2.command("vm-forward", { hidden: true }).description("pipe a guest port to another; vm-init runs it").requiredOption("--listen <host:port>", "the address to listen on").requiredOption("--to <host:port>", "the address to pipe each connection to").action(async (opts) => {
|
|
4211
|
-
const { startBridgeForward } = await import('./bridge-
|
|
4211
|
+
const { startBridgeForward } = await import('./bridge-DMFMBDRG.js');
|
|
4212
4212
|
try {
|
|
4213
4213
|
await startBridgeForward(opts);
|
|
4214
4214
|
} catch (err) {
|
|
@@ -4287,7 +4287,7 @@ Compiling .outerlayer/ moved to \`${cliInvocation()} context emit\`.
|
|
|
4287
4287
|
await compileContext({ dir: opts.dir, check: opts.check, json: opts.json });
|
|
4288
4288
|
return;
|
|
4289
4289
|
}
|
|
4290
|
-
const { runEmitResult, EmitResultError } = await import('./emit-result-cmd-
|
|
4290
|
+
const { runEmitResult, EmitResultError } = await import('./emit-result-cmd-5JCWPMDF.js');
|
|
4291
4291
|
try {
|
|
4292
4292
|
const result = await runEmitResult({
|
|
4293
4293
|
name,
|
|
@@ -4338,7 +4338,7 @@ everywhere, bytes and deep link untouched; a still-queued one is cancelled
|
|
|
4338
4338
|
locally so it never uploads. One correction can retire several duplicates.
|
|
4339
4339
|
`
|
|
4340
4340
|
).action(async (file, opts) => {
|
|
4341
|
-
const { runEmitArtifact, EmitArtifactError } = await import('./emit-artifact-cmd-
|
|
4341
|
+
const { runEmitArtifact, EmitArtifactError } = await import('./emit-artifact-cmd-PNU53NHX.js');
|
|
4342
4342
|
let pr;
|
|
4343
4343
|
if (opts.pr !== void 0) {
|
|
4344
4344
|
pr = parseTrackerNumber(opts.pr);
|
|
@@ -4387,7 +4387,7 @@ check. A chapter reads yes when every still matches and no when one differs; the
|
|
|
4387
4387
|
the region. One run, or a chapter with no stills, reads not checked. Comparing never changes which clips bind.
|
|
4388
4388
|
`
|
|
4389
4389
|
).action(async (manifest, opts) => {
|
|
4390
|
-
const { runEmitDemo, EmitDemoError } = await import('./emit-demo-cmd-
|
|
4390
|
+
const { runEmitDemo, EmitDemoError } = await import('./emit-demo-cmd-LQLAACNI.js');
|
|
4391
4391
|
let item;
|
|
4392
4392
|
if (opts.item !== void 0) {
|
|
4393
4393
|
item = parseTrackerNumber(opts.item);
|
|
@@ -4456,7 +4456,7 @@ recent events with their ids. --find <text> searches all of them.
|
|
|
4456
4456
|
item that session was launched for is used automatically.
|
|
4457
4457
|
`
|
|
4458
4458
|
).action(async (opts) => {
|
|
4459
|
-
const { runEmitFinding, refuseRemovedFindingFlags, EmitFindingError } = await import('./emit-finding-cmd-
|
|
4459
|
+
const { runEmitFinding, refuseRemovedFindingFlags, EmitFindingError } = await import('./emit-finding-cmd-XAPF2ADX.js');
|
|
4460
4460
|
try {
|
|
4461
4461
|
refuseRemovedFindingFlags(opts);
|
|
4462
4462
|
const result = await runEmitFinding({
|
|
@@ -4523,7 +4523,7 @@ the whole batch. "untimed": true records one with no time on purpose.
|
|
|
4523
4523
|
that session was launched for is used automatically.
|
|
4524
4524
|
`
|
|
4525
4525
|
).action(async (file, opts) => {
|
|
4526
|
-
const { runEmitFindings, EmitFindingError } = await import('./emit-finding-cmd-
|
|
4526
|
+
const { runEmitFindings, EmitFindingError } = await import('./emit-finding-cmd-XAPF2ADX.js');
|
|
4527
4527
|
try {
|
|
4528
4528
|
const result = await runEmitFindings({
|
|
4529
4529
|
file,
|
|
@@ -4558,7 +4558,7 @@ command, the command exits 0, and \`sync\` sends it later. If the gateway refuse
|
|
|
4558
4558
|
the step, the command prints why and exits 1.
|
|
4559
4559
|
`
|
|
4560
4560
|
).action(async (name, opts) => {
|
|
4561
|
-
const { runEmitStep, EmitStepError } = await import('./emit-step-cmd-
|
|
4561
|
+
const { runEmitStep, EmitStepError } = await import('./emit-step-cmd-XGZ4Y7WB.js');
|
|
4562
4562
|
try {
|
|
4563
4563
|
await runEmitStep({
|
|
4564
4564
|
name,
|
|
@@ -4601,7 +4601,7 @@ of the item, and a (proof: <kind>) annotation names its proof.
|
|
|
4601
4601
|
${cliInvocation()} emit criteria acceptance/412-login.md --item 412
|
|
4602
4602
|
`
|
|
4603
4603
|
).action(async (file, opts) => {
|
|
4604
|
-
const { runEmitCriteria, EmitCriteriaError } = await import('./emit-criteria-cmd-
|
|
4604
|
+
const { runEmitCriteria, EmitCriteriaError } = await import('./emit-criteria-cmd-TAHE36VH.js');
|
|
4605
4605
|
try {
|
|
4606
4606
|
const result = await runEmitCriteria({
|
|
4607
4607
|
file,
|
|
@@ -4625,9 +4625,9 @@ function registerSpecCommands(program2) {
|
|
|
4625
4625
|
const specCmd = program2.command("spec").description("Find, file and edit the issue a spec lives in, in your factory's tracker");
|
|
4626
4626
|
const credentialOptions = (command) => command.option("--json", "machine-readable JSON output").option("--url <url>", "cloud base URL (or OUTERLAYER_URL / config)").addOption(apiKeyOption()).option("--app-id <id>", "factory id the key is bound to (or OUTERLAYER_APP_ID / config)");
|
|
4627
4627
|
const run = async (action) => {
|
|
4628
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4628
|
+
const { WorkCommandError } = await import('./work-cmd-LPEBBF4I.js');
|
|
4629
4629
|
try {
|
|
4630
|
-
await action(await import('./spec-cmd-
|
|
4630
|
+
await action(await import('./spec-cmd-7D5PPR4I.js'));
|
|
4631
4631
|
} catch (err) {
|
|
4632
4632
|
if (err instanceof WorkCommandError) {
|
|
4633
4633
|
fail(err.message);
|
|
@@ -4662,7 +4662,7 @@ Prints each problem the item covers with its id, its reports and its result.
|
|
|
4662
4662
|
session was launched for is used.
|
|
4663
4663
|
`
|
|
4664
4664
|
).action(async (opts) => {
|
|
4665
|
-
const { runFindingsShow, FindingsCommandError } = await import('./findings-cmd-
|
|
4665
|
+
const { runFindingsShow, FindingsCommandError } = await import('./findings-cmd-GFRXCIDW.js');
|
|
4666
4666
|
try {
|
|
4667
4667
|
const result = await runFindingsShow({
|
|
4668
4668
|
item: opts.item,
|
|
@@ -4690,7 +4690,7 @@ Give exactly one of --fixed and --not-fixed, and a --note. Run it again for the
|
|
|
4690
4690
|
problem to replace the earlier result. A problem the item does not cover is refused.
|
|
4691
4691
|
`
|
|
4692
4692
|
).action(async (problem, opts) => {
|
|
4693
|
-
const { runFindingsResult, FindingsCommandError } = await import('./findings-cmd-
|
|
4693
|
+
const { runFindingsResult, FindingsCommandError } = await import('./findings-cmd-GFRXCIDW.js');
|
|
4694
4694
|
try {
|
|
4695
4695
|
const result = await runFindingsResult({
|
|
4696
4696
|
problem,
|
|
@@ -4731,7 +4731,7 @@ takes it, and prints the line that starts your session on it. That
|
|
|
4731
4731
|
session links itself and holds the item's lease while it works.
|
|
4732
4732
|
`
|
|
4733
4733
|
).action(async (opts) => {
|
|
4734
|
-
const { runWorkBuild, WorkCommandError } = await import('./work-cmd-
|
|
4734
|
+
const { runWorkBuild, WorkCommandError } = await import('./work-cmd-LPEBBF4I.js');
|
|
4735
4735
|
try {
|
|
4736
4736
|
await runWorkBuild(opts);
|
|
4737
4737
|
} catch (err) {
|
|
@@ -4754,7 +4754,7 @@ renews that session's own 20-minute lease, unless --no-lease or
|
|
|
4754
4754
|
--ended is given, or another worker already holds a live one.
|
|
4755
4755
|
`
|
|
4756
4756
|
).action(async (number, opts) => {
|
|
4757
|
-
const { runWorkLinkSession, WorkCommandError } = await import('./work-cmd-
|
|
4757
|
+
const { runWorkLinkSession, WorkCommandError } = await import('./work-cmd-LPEBBF4I.js');
|
|
4758
4758
|
try {
|
|
4759
4759
|
await runWorkLinkSession({ ...opts, number, noLease: opts.lease === false, logFailures: opts.logFailures === true });
|
|
4760
4760
|
} catch (err) {
|
|
@@ -4778,8 +4778,8 @@ criterion's new proof; --ready hands the thread back to a person. At
|
|
|
4778
4778
|
most one action flag may be given.
|
|
4779
4779
|
`
|
|
4780
4780
|
).action(async (opts) => {
|
|
4781
|
-
const { runWorkComment, WorkCommentCommandError } = await import('./work-comment-cmd-
|
|
4782
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4781
|
+
const { runWorkComment, WorkCommentCommandError } = await import('./work-comment-cmd-JDIXMD6G.js');
|
|
4782
|
+
const { WorkCommandError } = await import('./work-cmd-LPEBBF4I.js');
|
|
4783
4783
|
try {
|
|
4784
4784
|
await runWorkComment(opts);
|
|
4785
4785
|
} catch (err) {
|
|
@@ -4800,8 +4800,8 @@ criterion that carries proof or a comment, each with who is waiting
|
|
|
4800
4800
|
on whom next.
|
|
4801
4801
|
`
|
|
4802
4802
|
).action(async (opts) => {
|
|
4803
|
-
const { runWorkThreads, WorkCommentCommandError } = await import('./work-comment-cmd-
|
|
4804
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4803
|
+
const { runWorkThreads, WorkCommentCommandError } = await import('./work-comment-cmd-JDIXMD6G.js');
|
|
4804
|
+
const { WorkCommandError } = await import('./work-cmd-LPEBBF4I.js');
|
|
4805
4805
|
try {
|
|
4806
4806
|
await runWorkThreads(opts);
|
|
4807
4807
|
} catch (err) {
|
|
@@ -4825,8 +4825,8 @@ still running, or that an older runner released, has no log and the
|
|
|
4825
4825
|
command exits 1.
|
|
4826
4826
|
`
|
|
4827
4827
|
).action(async (opts) => {
|
|
4828
|
-
const { runWorkLogs, WorkLogsCommandError } = await import('./work-logs-cmd-
|
|
4829
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4828
|
+
const { runWorkLogs, WorkLogsCommandError } = await import('./work-logs-cmd-3QFTKXR2.js');
|
|
4829
|
+
const { WorkCommandError } = await import('./work-cmd-LPEBBF4I.js');
|
|
4830
4830
|
try {
|
|
4831
4831
|
await runWorkLogs(opts);
|
|
4832
4832
|
} catch (err) {
|
|
@@ -4849,8 +4849,8 @@ item is not built again until a new build request. Exits 1 when no host
|
|
|
4849
4849
|
build is running for the item.
|
|
4850
4850
|
`
|
|
4851
4851
|
).action(async (opts) => {
|
|
4852
|
-
const { runWorkStop, WorkStopCommandError } = await import('./work-stop-cmd-
|
|
4853
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4852
|
+
const { runWorkStop, WorkStopCommandError } = await import('./work-stop-cmd-YKXWUGTC.js');
|
|
4853
|
+
const { WorkCommandError } = await import('./work-cmd-LPEBBF4I.js');
|
|
4854
4854
|
try {
|
|
4855
4855
|
await runWorkStop(opts);
|
|
4856
4856
|
} catch (err) {
|
|
@@ -4871,7 +4871,7 @@ deletes anything \u2014 the item is removed from Work only once no
|
|
|
4871
4871
|
live addition remains on it.
|
|
4872
4872
|
`
|
|
4873
4873
|
).action(async (opts) => {
|
|
4874
|
-
const { runWorkRemove, WorkCommandError } = await import('./work-cmd-
|
|
4874
|
+
const { runWorkRemove, WorkCommandError } = await import('./work-cmd-LPEBBF4I.js');
|
|
4875
4875
|
try {
|
|
4876
4876
|
await runWorkRemove(opts);
|
|
4877
4877
|
} catch (err) {
|
|
@@ -4883,7 +4883,7 @@ live addition remains on it.
|
|
|
4883
4883
|
}
|
|
4884
4884
|
});
|
|
4885
4885
|
workCmd.command("status").description("Show one item's stage, gate ledger, and additions").option("--item <number>", "the item's number inside this factory").option("--issue <number>", "issue number, or a Linear/Jira key like ENG-123").option(TRACKER_OPTION_FLAG, "tracker for a keyed --issue, when both hold the key").option("--repo <owner/name>", "repository for an issue number (default: the checkout's remote)").option("--json", "machine-readable JSON output").option("--url <url>", "cloud base URL (or OUTERLAYER_URL / config)").addOption(apiKeyOption()).option("--app-id <id>", "factory id the key is bound to (or OUTERLAYER_APP_ID / config)").action(async (opts) => {
|
|
4886
|
-
const { runWorkStatus, WorkCommandError } = await import('./work-cmd-
|
|
4886
|
+
const { runWorkStatus, WorkCommandError } = await import('./work-cmd-LPEBBF4I.js');
|
|
4887
4887
|
try {
|
|
4888
4888
|
await runWorkStatus(opts);
|
|
4889
4889
|
} catch (err) {
|
|
@@ -4895,7 +4895,7 @@ live addition remains on it.
|
|
|
4895
4895
|
}
|
|
4896
4896
|
});
|
|
4897
4897
|
workCmd.command("list").description("List live work items for this factory").option("--stage <spec|build|review>", "filter by stage").option("--section <attention|waiting|flowing>", "filter by Queue section").option("--repo <owner/name>", "repository (default: the current checkout's remote)").option("--unclaimed", "only items with no live lease").option("--claimed", "only items with a live lease, held by a host or a local session").option("--startable", "only items a host can start: a build request, no open PR, no live lease").option("--needs <amend>", "only items with a thread waiting on an agent").option("--json", "machine-readable JSON output").option("--url <url>", "cloud base URL (or OUTERLAYER_URL / config)").addOption(apiKeyOption()).option("--app-id <id>", "factory id the key is bound to (or OUTERLAYER_APP_ID / config)").action(async (opts) => {
|
|
4898
|
-
const { runWorkList, WorkCommandError } = await import('./work-cmd-
|
|
4898
|
+
const { runWorkList, WorkCommandError } = await import('./work-cmd-LPEBBF4I.js');
|
|
4899
4899
|
try {
|
|
4900
4900
|
await runWorkList(opts);
|
|
4901
4901
|
} catch (err) {
|
|
@@ -4916,7 +4916,7 @@ by a different key is refused; claiming again with the same key extends
|
|
|
4916
4916
|
it. --host is a label only.
|
|
4917
4917
|
`
|
|
4918
4918
|
).action(async (opts) => {
|
|
4919
|
-
const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-
|
|
4919
|
+
const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-EIE6NU5O.js');
|
|
4920
4920
|
try {
|
|
4921
4921
|
await runWorkClaim(opts);
|
|
4922
4922
|
} catch (err) {
|
|
@@ -4936,7 +4936,7 @@ Extends the live lease this API key holds. Refused with a 410 if the
|
|
|
4936
4936
|
lease has expired, or a 403 if a different key holds it.
|
|
4937
4937
|
`
|
|
4938
4938
|
).action(async (opts) => {
|
|
4939
|
-
const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-
|
|
4939
|
+
const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-EIE6NU5O.js');
|
|
4940
4940
|
try {
|
|
4941
4941
|
await runWorkRenew(opts);
|
|
4942
4942
|
} catch (err) {
|
|
@@ -4968,7 +4968,7 @@ applies to a host's lease only. A later tool call in the session
|
|
|
4968
4968
|
takes the lease again.
|
|
4969
4969
|
`
|
|
4970
4970
|
).action(async (opts) => {
|
|
4971
|
-
const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-
|
|
4971
|
+
const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-EIE6NU5O.js');
|
|
4972
4972
|
try {
|
|
4973
4973
|
await runWorkRelease(opts);
|
|
4974
4974
|
} catch (err) {
|
|
@@ -4995,7 +4995,7 @@ Idempotent: declaring the same pull request twice is a no-op.
|
|
|
4995
4995
|
needs your own login; an agent session or a factory key is refused.
|
|
4996
4996
|
`
|
|
4997
4997
|
).action(async (number, opts) => {
|
|
4998
|
-
const { runWorkPr, WorkPrCommandError } = await import('./work-pr-cmd-
|
|
4998
|
+
const { runWorkPr, WorkPrCommandError } = await import('./work-pr-cmd-VFEQMSAI.js');
|
|
4999
4999
|
try {
|
|
5000
5000
|
await runWorkPr({ ...opts, number });
|
|
5001
5001
|
} catch (err) {
|
|
@@ -5020,8 +5020,8 @@ login, then declares the pull request on the item, as \`work pr\` does.
|
|
|
5020
5020
|
Run it again after a change to the title or description.
|
|
5021
5021
|
`
|
|
5022
5022
|
).action(async (opts) => {
|
|
5023
|
-
const { runWorkOpenPr, WorkOpenPrCommandError } = await import('./work-open-pr-cmd-
|
|
5024
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
5023
|
+
const { runWorkOpenPr, WorkOpenPrCommandError } = await import('./work-open-pr-cmd-LM7C63XI.js');
|
|
5024
|
+
const { WorkCommandError } = await import('./work-cmd-LPEBBF4I.js');
|
|
5025
5025
|
try {
|
|
5026
5026
|
await runWorkOpenPr(opts);
|
|
5027
5027
|
} catch (err) {
|
|
@@ -5037,9 +5037,9 @@ function registerRunnerCommands(program2) {
|
|
|
5037
5037
|
const runnerCmd = program2.command("runner").description("Take work from the implement and amend queues on this machine");
|
|
5038
5038
|
const configOption = "the cloud config file to run against (default: ~/.outerlayer/config.json)";
|
|
5039
5039
|
runnerCmd.command("start").description("Run the loop: claim work, run it, report, clean up, repeat").option("--config <path>", configOption).action(async (opts) => {
|
|
5040
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5041
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
5042
|
-
const { RunnerAlreadyRunningError } = await import('./pidfile-
|
|
5040
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-WAIYUZUG.js');
|
|
5041
|
+
const { start, RunnerStartError } = await import('./loop-VHTNWIHI.js');
|
|
5042
|
+
const { RunnerAlreadyRunningError } = await import('./pidfile-WVL54AJK.js');
|
|
5043
5043
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5044
5044
|
try {
|
|
5045
5045
|
const { realUpdateDeps } = await import('./real-deps-QX5YH7FG.js');
|
|
@@ -5056,10 +5056,10 @@ function registerRunnerCommands(program2) {
|
|
|
5056
5056
|
"after",
|
|
5057
5057
|
"\nReads OUTERLAYER_URL, OUTERLAYER_APP_ID, OUTERLAYER_API_KEY, OUTERLAYER_RUNNER_NAME and one Claude credential\n(CLAUDE_CODE_OAUTH_TOKEN or ANTHROPIC_API_KEY) from the environment. OUTERLAYER_AGENT\nis optional and defaults to claude. On a later start it refuses variables that disagree with the config in the volume.\nThe image sets OUTERLAYER_RUNNER_IMAGE; outside the image, use `runner start`.\n"
|
|
5058
5058
|
).action(async () => {
|
|
5059
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5060
|
-
const { containerStart } = await import('./container-start-
|
|
5061
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
5062
|
-
const { RunnerAlreadyRunningError } = await import('./pidfile-
|
|
5059
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-WAIYUZUG.js');
|
|
5060
|
+
const { containerStart } = await import('./container-start-22L2L3ZN.js');
|
|
5061
|
+
const { start, RunnerStartError } = await import('./loop-VHTNWIHI.js');
|
|
5062
|
+
const { RunnerAlreadyRunningError } = await import('./pidfile-WVL54AJK.js');
|
|
5063
5063
|
try {
|
|
5064
5064
|
const result = await containerStart({
|
|
5065
5065
|
env: process.env,
|
|
@@ -5077,8 +5077,8 @@ function registerRunnerCommands(program2) {
|
|
|
5077
5077
|
}
|
|
5078
5078
|
});
|
|
5079
5079
|
runnerCmd.command("check").description("Validate the config, the hooks and the key, and print the effective settings").option("--config <path>", configOption).action(async (opts) => {
|
|
5080
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5081
|
-
const { runRunnerCheck } = await import('./check-
|
|
5080
|
+
const { defaultRunnerConfigPath } = await import('./config-WAIYUZUG.js');
|
|
5081
|
+
const { runRunnerCheck } = await import('./check-TKBLYWSD.js');
|
|
5082
5082
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5083
5083
|
const result = await runRunnerCheck(configPath);
|
|
5084
5084
|
if (!result.ok) {
|
|
@@ -5099,8 +5099,8 @@ function registerRunnerCommands(program2) {
|
|
|
5099
5099
|
`);
|
|
5100
5100
|
});
|
|
5101
5101
|
runnerCmd.command("install").description("Put this CLI in the runner's install layout; --service adds its service").option("--config <path>", configOption).option("--service", "set up the service that keeps the runner running").option("--print", "with --service, print the unit and set up nothing").option("--user <account>", "with --service, the account the service runs as").option("--replace", "replace a unit or launcher file this command did not write").option("--allow-downgrade", "install this CLI even when it is older than the version the runner runs").option("--unit-name <name>", "with --service, the unit's name, to run a second runner beside the first").action(async (opts) => {
|
|
5102
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5103
|
-
const { runRunnerInstall, RunnerInstallError, launcherSummary, restartNote } = await import('./install-cmd-
|
|
5102
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-WAIYUZUG.js');
|
|
5103
|
+
const { runRunnerInstall, RunnerInstallError, launcherSummary, restartNote } = await import('./install-cmd-45CPGPLT.js');
|
|
5104
5104
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5105
5105
|
if (opts.service !== true) {
|
|
5106
5106
|
for (const flag of ["print", "user", "unitName"]) {
|
|
@@ -5112,7 +5112,7 @@ function registerRunnerCommands(program2) {
|
|
|
5112
5112
|
}
|
|
5113
5113
|
try {
|
|
5114
5114
|
if (opts.service === true) {
|
|
5115
|
-
const { installServiceCommand } = await import('./command-
|
|
5115
|
+
const { installServiceCommand } = await import('./command-FPIWWJOW.js');
|
|
5116
5116
|
const result2 = await installServiceCommand({
|
|
5117
5117
|
configPath,
|
|
5118
5118
|
print: opts.print,
|
|
@@ -5167,8 +5167,8 @@ To keep it running, run ${C.yellow}${cliInvocation()} runner install --service${
|
|
|
5167
5167
|
fail(`pass --service: \`${cliInvocation()} runner uninstall --service\` removes the runner's service.`);
|
|
5168
5168
|
return;
|
|
5169
5169
|
}
|
|
5170
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5171
|
-
const { uninstallServiceCommand } = await import('./command-
|
|
5170
|
+
const { defaultRunnerConfigPath } = await import('./config-WAIYUZUG.js');
|
|
5171
|
+
const { uninstallServiceCommand } = await import('./command-FPIWWJOW.js');
|
|
5172
5172
|
const result = await uninstallServiceCommand({ configPath: opts.config ?? defaultRunnerConfigPath(), unitName: opts.unitName, home: homeFromEnv() });
|
|
5173
5173
|
if (result.ok) for (const line of result.lines) process.stdout.write(`${C.green}\u2713${C.reset} ${line}
|
|
5174
5174
|
`);
|
|
@@ -5195,12 +5195,12 @@ already in claude.env is used.
|
|
|
5195
5195
|
printf '%s' "$CLAUDE_CODE_OAUTH_TOKEN" | ${cliInvocation()} runner init --agent claude --factory <org>/<factory>
|
|
5196
5196
|
`
|
|
5197
5197
|
).action(async (opts) => {
|
|
5198
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5199
|
-
const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-
|
|
5200
|
-
const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-
|
|
5201
|
-
const { detectMachine } = await import('./machine-
|
|
5202
|
-
const { chooseVm, runVmInit, VmInitError } = await import('./init-
|
|
5203
|
-
const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-
|
|
5198
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-WAIYUZUG.js');
|
|
5199
|
+
const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-5MBBGEV6.js');
|
|
5200
|
+
const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-FFWA4AOV.js');
|
|
5201
|
+
const { detectMachine } = await import('./machine-7HDA6MFG.js');
|
|
5202
|
+
const { chooseVm, runVmInit, VmInitError } = await import('./init-XYXY27AZ.js');
|
|
5203
|
+
const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-WXG5KLBK.js');
|
|
5204
5204
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5205
5205
|
if (opts.agent !== void 0 && !isAgentName(opts.agent)) {
|
|
5206
5206
|
fail(`--agent ${opts.agent}: runner init writes commands for ${Object.keys(AGENT_COMMANDS).join(", ")}. For another agent, leave --agent out and edit runner.commands.`);
|
|
@@ -5231,7 +5231,7 @@ already in claude.env is used.
|
|
|
5231
5231
|
const chunks = [];
|
|
5232
5232
|
for await (const chunk of process.stdin) chunks.push(Buffer.from(chunk));
|
|
5233
5233
|
const result2 = runRunnerInit(configPath, { machine, configFromStdin: Buffer.concat(chunks).toString("utf8"), requireContainer: true });
|
|
5234
|
-
const { ensureHostKey: ensureHostKey2 } = await import('./host-key-
|
|
5234
|
+
const { ensureHostKey: ensureHostKey2 } = await import('./host-key-D3EFK52H.js');
|
|
5235
5235
|
const hostKey2 = await ensureHostKey2(configPath);
|
|
5236
5236
|
process.stdout.write(`host key ${hostKey2.fingerprint}
|
|
5237
5237
|
hooks: ${result2.hooks}
|
|
@@ -5290,7 +5290,7 @@ hooks: ${result2.hooks}
|
|
|
5290
5290
|
const prepared = prepareRunnerInit(configPath, { machine, allowProcess, agent, credential, keyFromLogin: makeKey !== void 0 });
|
|
5291
5291
|
const created = makeKey === void 0 ? void 0 : await makeKey();
|
|
5292
5292
|
const result = writeRunnerInit(prepared, created);
|
|
5293
|
-
const { ensureHostKey } = await import('./host-key-
|
|
5293
|
+
const { ensureHostKey } = await import('./host-key-D3EFK52H.js');
|
|
5294
5294
|
const hostKey = await ensureHostKey(configPath);
|
|
5295
5295
|
if (created !== void 0) {
|
|
5296
5296
|
process.stdout.write(`${C.green}\u2713${C.reset} saved the runner key in ${result.configPath}
|
|
@@ -5318,7 +5318,7 @@ ${C.yellow}${result.note}${C.reset}
|
|
|
5318
5318
|
To isolate builds in containers instead, run ${C.yellow}${cliInvocation()} runner init --vm${C.reset}.
|
|
5319
5319
|
`);
|
|
5320
5320
|
}
|
|
5321
|
-
const { runRunnerInstall, RunnerInstallError, RunnerDowngradeError, launcherSummary } = await import('./install-cmd-
|
|
5321
|
+
const { runRunnerInstall, RunnerInstallError, RunnerDowngradeError, launcherSummary } = await import('./install-cmd-45CPGPLT.js');
|
|
5322
5322
|
let installedLayout = false;
|
|
5323
5323
|
let noService = "it starts the runner from the install layout, which needs a CLI installed with npm";
|
|
5324
5324
|
try {
|
|
@@ -5350,7 +5350,7 @@ ${C.yellow}The runner will not update itself: ${installErr.message}${C.reset}
|
|
|
5350
5350
|
let serviceUp = false;
|
|
5351
5351
|
let restart;
|
|
5352
5352
|
if (installedLayout) {
|
|
5353
|
-
const { installServiceCommand } = await import('./command-
|
|
5353
|
+
const { installServiceCommand } = await import('./command-FPIWWJOW.js');
|
|
5354
5354
|
const service = await installServiceCommand({
|
|
5355
5355
|
configPath,
|
|
5356
5356
|
entryPath: process.argv[1] ?? "",
|
|
@@ -5394,12 +5394,12 @@ Next:
|
|
|
5394
5394
|
"after",
|
|
5395
5395
|
"\nA repository governed by a control plane builds the control plane's image, at the commit\nthe gateway has stored for it. A repository that governs itself fetches the head of its\ndefault branch into the runner's cache. Either way it reads .devcontainer/devcontainer.json\nand builds the image with the devcontainer CLI. Settings\nthat reach the host or widen the container's privileges are ignored and listed. The\nimage holds this CLI and a pinned Claude Code. Nothing runs inside the image.\n"
|
|
5396
5396
|
).action(async (opts) => {
|
|
5397
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5398
|
-
const { buildRepositoryImage, RecipeError } = await import('./build-
|
|
5397
|
+
const { defaultRunnerConfigPath } = await import('./config-WAIYUZUG.js');
|
|
5398
|
+
const { buildRepositoryImage, RecipeError } = await import('./build-ZG3IYBVK.js');
|
|
5399
5399
|
const { currentCliBuild } = await import('./cli-build-K56DK4DS.js');
|
|
5400
|
-
const { createDockerHost } = await import('./docker-
|
|
5401
|
-
const { builderSpec } = await import('./builder-
|
|
5402
|
-
const { loadRunnerConfig } = await import('./config-
|
|
5400
|
+
const { createDockerHost } = await import('./docker-HRRTSESV.js');
|
|
5401
|
+
const { builderSpec } = await import('./builder-6CZUYTHS.js');
|
|
5402
|
+
const { loadRunnerConfig } = await import('./config-WAIYUZUG.js');
|
|
5403
5403
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5404
5404
|
const loaded = (() => {
|
|
5405
5405
|
try {
|
|
@@ -5410,11 +5410,11 @@ Next:
|
|
|
5410
5410
|
})();
|
|
5411
5411
|
const memory = loaded?.build?.memory ?? "8g";
|
|
5412
5412
|
try {
|
|
5413
|
-
const { ensureRunnerIdentity } = await import('./runner-identity-
|
|
5413
|
+
const { ensureRunnerIdentity } = await import('./runner-identity-KARE5T3G.js');
|
|
5414
5414
|
await ensureRunnerIdentity(configPath, { log: (line) => console.error(line) }).catch((err) => {
|
|
5415
5415
|
console.error(`the runner's Docker identity could not be stored: ${err instanceof Error ? err.message : String(err)}`);
|
|
5416
5416
|
});
|
|
5417
|
-
const { imageTargetFor } = await import('./governing-source-
|
|
5417
|
+
const { imageTargetFor } = await import('./governing-source-UE2YJEFL.js');
|
|
5418
5418
|
const target = await imageTargetFor({ config: loaded, repository: opts.repository, fetchImpl: fetch });
|
|
5419
5419
|
if (!target.ok) {
|
|
5420
5420
|
if (opts.json) {
|
|
@@ -5477,25 +5477,25 @@ Next:
|
|
|
5477
5477
|
}
|
|
5478
5478
|
});
|
|
5479
5479
|
runnerCmd.command("stop").description("Take no more work; finish running jobs, then exit").option("--config <path>", "the cloud config file naming the runner to stop").option("--now", "end running jobs immediately, with outcome stopped").action(async (opts) => {
|
|
5480
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5481
|
-
const { requestStop } = await import('./loop-
|
|
5480
|
+
const { defaultRunnerConfigPath } = await import('./config-WAIYUZUG.js');
|
|
5481
|
+
const { requestStop } = await import('./loop-VHTNWIHI.js');
|
|
5482
5482
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5483
|
-
const { runnerImageVersion } = await import('./image-tag-
|
|
5483
|
+
const { runnerImageVersion } = await import('./image-tag-SHPANRDC.js');
|
|
5484
5484
|
await requestStop(configPath, Boolean(opts.now), void 0, { image: runnerImageVersion() !== void 0 });
|
|
5485
5485
|
});
|
|
5486
5486
|
runnerCmd.command("status").description("List running jobs; with --recent, finished ones too").option("--config <path>", "the cloud config file naming the runner to inspect").option("--recent", "also list finished jobs, newest first, capped at 20").option("--json", "machine-readable JSON output").action(async (opts) => {
|
|
5487
|
-
const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-
|
|
5488
|
-
const { jobsDir, runnerDir } = await import('./paths-
|
|
5489
|
-
const { listJobFiles, runnerProcessState } = await import('./loop-
|
|
5490
|
-
const { renderStatus } = await import('./status-
|
|
5491
|
-
const { readHousekeepingRecord } = await import('./record-
|
|
5487
|
+
const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-WAIYUZUG.js');
|
|
5488
|
+
const { jobsDir, runnerDir } = await import('./paths-G6G3BJHG.js');
|
|
5489
|
+
const { listJobFiles, runnerProcessState } = await import('./loop-VHTNWIHI.js');
|
|
5490
|
+
const { renderStatus } = await import('./status-UPDTLTTF.js');
|
|
5491
|
+
const { readHousekeepingRecord } = await import('./record-H4A3HMMD.js');
|
|
5492
5492
|
const path2 = await import('path');
|
|
5493
5493
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5494
5494
|
const all = listJobFiles(configPath);
|
|
5495
5495
|
const housekeeping = readHousekeepingRecord(runnerDir(configPath));
|
|
5496
|
-
const { readPendingUpdate } = await import('./pending-
|
|
5496
|
+
const { readPendingUpdate } = await import('./pending-7B67ODWC.js');
|
|
5497
5497
|
const pendingUpdate = readPendingUpdate(runnerDir(configPath));
|
|
5498
|
-
const { readImageStatus } = await import('./image-tag-
|
|
5498
|
+
const { readImageStatus } = await import('./image-tag-SHPANRDC.js');
|
|
5499
5499
|
const image = readImageStatus(runnerDir(configPath));
|
|
5500
5500
|
let host = "unknown";
|
|
5501
5501
|
let concurrency = 1;
|
|
@@ -5508,8 +5508,8 @@ Next:
|
|
|
5508
5508
|
const processState = runnerProcessState(configPath);
|
|
5509
5509
|
const service = await (async () => {
|
|
5510
5510
|
if (process.platform !== "linux" || !existsSync("/run/systemd/system")) return void 0;
|
|
5511
|
-
const { inspectService, realInspectProbes } = await import('./inspect-
|
|
5512
|
-
const { DEFAULT_UNIT_NAME } = await import('./install-
|
|
5511
|
+
const { inspectService, realInspectProbes } = await import('./inspect-DNLXTXLA.js');
|
|
5512
|
+
const { DEFAULT_UNIT_NAME } = await import('./install-TWT2WXEO.js');
|
|
5513
5513
|
const facts = inspectService(DEFAULT_UNIT_NAME, path2.dirname(configPath), realInspectProbes());
|
|
5514
5514
|
return facts === void 0 ? void 0 : { unit: facts.unit, running: facts.mainPid !== void 0, delegated: facts.delegate };
|
|
5515
5515
|
})();
|
|
@@ -5546,9 +5546,9 @@ Next:
|
|
|
5546
5546
|
);
|
|
5547
5547
|
});
|
|
5548
5548
|
runnerCmd.command("logs").argument("<item>", "the work item's number in the factory").description("Print the newest attempt's log for one item").option("--config <path>", "the cloud config file naming the runner to inspect").option("-f, --follow", "keep printing as the log grows").action(async (itemArg, opts) => {
|
|
5549
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5550
|
-
const { listJobFiles } = await import('./loop-
|
|
5551
|
-
const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-
|
|
5549
|
+
const { defaultRunnerConfigPath } = await import('./config-WAIYUZUG.js');
|
|
5550
|
+
const { listJobFiles } = await import('./loop-VHTNWIHI.js');
|
|
5551
|
+
const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-2LMXN7GQ.js');
|
|
5552
5552
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5553
5553
|
const item = parseTrackerNumber(itemArg);
|
|
5554
5554
|
if (item === void 0) {
|
|
@@ -5779,7 +5779,7 @@ caller from the bearer token, the gateway answers 401 without that header.
|
|
|
5779
5779
|
"after",
|
|
5780
5780
|
"\nWhat the stdio .mcp.json entry spawns. Reads newline-delimited JSON-RPC 2.0 on\nstdin and writes responses on stdout. The API key comes from OUTERLAYER_API_KEY\nor ~/.outerlayer/config.json at start-up; with neither the command exits 1 and\nprints why, which the MCP client shows as the connect error.\n"
|
|
5781
5781
|
).action(async (opts) => {
|
|
5782
|
-
const { runMcpServe, handleMcpServeError } = await import('./mcp-serve-cmd-
|
|
5782
|
+
const { runMcpServe, handleMcpServeError } = await import('./mcp-serve-cmd-3GCJKTSF.js');
|
|
5783
5783
|
try {
|
|
5784
5784
|
await runMcpServe({ url: opts.url, appId: opts.appId });
|
|
5785
5785
|
} catch (err) {
|