@outerlayer/cli 0.26.2 → 0.26.4
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/CHANGELOG.md +16 -0
- package/dist/{agent-setup-PZYQWN4H.js → agent-setup-5DXPEO64.js} +7 -7
- package/dist/{build-AW4A2QPK.js → build-F5QWH7G5.js} +4 -4
- package/dist/build-info.json +1 -1
- package/dist/{builder-TDCBQ2RD.js → builder-KDUXCHTY.js} +4 -4
- package/dist/{check-KL3LDAI3.js → check-ZSYCR5WG.js} +31 -31
- package/dist/{chunk-OL2O5PEI.js → chunk-27RDUTQH.js} +21 -13
- package/dist/{chunk-665QWBNW.js → chunk-2J46BQ5Y.js} +1 -1
- package/dist/{chunk-W3NVHOCS.js → chunk-4UFSTKE5.js} +1 -1
- package/dist/{chunk-XSPA5ODY.js → chunk-6BLXUD56.js} +4 -3
- package/dist/{chunk-GMPXOQTH.js → chunk-6CGXSMKX.js} +5 -5
- package/dist/{chunk-MLD2NA7N.js → chunk-6SPXKRQR.js} +1 -1
- package/dist/{chunk-XFGL53GU.js → chunk-6WTAYEKJ.js} +1 -1
- package/dist/{chunk-4IFKLYMM.js → chunk-7Z2WMXM5.js} +1 -1
- package/dist/{chunk-FI66JNLT.js → chunk-B6K7R5UY.js} +4 -4
- package/dist/{chunk-RO3BRAO6.js → chunk-EHBDYLM6.js} +3 -3
- package/dist/{chunk-L4CW6LZQ.js → chunk-F3BBEBPL.js} +4 -1
- package/dist/{chunk-GOSFARMS.js → chunk-G2JWZDFA.js} +9 -2
- package/dist/{chunk-DJILFADE.js → chunk-GFHLEVUE.js} +3 -3
- package/dist/{chunk-F6DIHHBS.js → chunk-GWRDL75D.js} +1 -1
- package/dist/{chunk-HXFRJKMU.js → chunk-H57M3HC7.js} +2 -2
- package/dist/{chunk-PYSKSROG.js → chunk-IZAOO5AR.js} +1 -1
- package/dist/{chunk-KDDFI5MR.js → chunk-K4FXNMV5.js} +1 -1
- package/dist/{chunk-6M4LNO22.js → chunk-KNBWOL2B.js} +2 -2
- package/dist/{chunk-YVZJ6GKF.js → chunk-KT4CN6OU.js} +1 -1
- package/dist/{chunk-QRZLUUNN.js → chunk-MCSINUVC.js} +8 -3
- package/dist/{chunk-6FAP657M.js → chunk-NWPRNKZ5.js} +1 -1
- package/dist/{chunk-TPAF24PK.js → chunk-O4362FPA.js} +2 -2
- package/dist/{chunk-TKL74NLB.js → chunk-OFTFW7TH.js} +1 -1
- package/dist/{chunk-PCY7IGSL.js → chunk-OQUD3UYF.js} +4 -4
- package/dist/{chunk-DXHISLCI.js → chunk-OZKEEXVH.js} +28 -7
- package/dist/{chunk-EABW6AJQ.js → chunk-PJDQPF5N.js} +18 -5
- package/dist/{chunk-TEVO3RUV.js → chunk-PZA6ZFYW.js} +3 -3
- package/dist/{chunk-V5LUWRCV.js → chunk-Q2SVLBMI.js} +2 -2
- package/dist/{chunk-KZLLLARE.js → chunk-QUP6CVBQ.js} +3 -3
- package/dist/{chunk-GUT4IU7K.js → chunk-SBW4K3XZ.js} +17 -8
- package/dist/{chunk-TODY3MTS.js → chunk-UOGQZQXN.js} +4 -4
- package/dist/{chunk-2EAVBJMO.js → chunk-UZEQVPKF.js} +40 -3
- package/dist/{chunk-6OYAW5SF.js → chunk-V3YJFEZA.js} +29 -22
- package/dist/{chunk-5PMQDQFV.js → chunk-VGHKTSHU.js} +2 -2
- package/dist/{chunk-U2FSJBNI.js → chunk-VQ7OAG6H.js} +5 -5
- package/dist/{chunk-EORWWFPA.js → chunk-WK35HB56.js} +2 -2
- package/dist/{chunk-JF572PM5.js → chunk-Y4BXRVDI.js} +3 -3
- package/dist/{chunk-WA7R6U2F.js → chunk-ZMZGWLYD.js} +7 -7
- package/dist/{claude-launcher-O2U6P6ZD.js → claude-launcher-TTLTS4N6.js} +1 -1
- package/dist/{cli-UH2YQA5M.js → cli-SKF3AMZ5.js} +89 -89
- package/dist/{command-ZECJJNLY.js → command-E5OG5NCH.js} +22 -22
- package/dist/{connect-cmd-2JHSLBXK.js → connect-cmd-SL4S5HJM.js} +7 -7
- package/dist/{container-start-GFH5LLSG.js → container-start-IA2HK4QI.js} +21 -21
- package/dist/{control-plane-launch-654RV5PO.js → control-plane-launch-JIQOE6BP.js} +5 -5
- package/dist/{docker-Q7QJMX7I.js → docker-KKE5Q5S2.js} +4 -4
- package/dist/{doctor-3LCCPBX6.js → doctor-U2N7AF3N.js} +24 -24
- package/dist/{emit-artifact-cmd-AIBDDJGW.js → emit-artifact-cmd-SDG5H6D7.js} +11 -11
- package/dist/{emit-criteria-cmd-VMZIRJCQ.js → emit-criteria-cmd-QGSP77AG.js} +8 -8
- package/dist/{emit-finding-cmd-KMJNYQI7.js → emit-finding-cmd-6FGMTEFM.js} +8 -8
- package/dist/{emit-result-cmd-LQN6AGGP.js → emit-result-cmd-AUPIXPEU.js} +11 -11
- package/dist/{emit-step-cmd-AUHA3EXY.js → emit-step-cmd-PORHEKHN.js} +9 -9
- package/dist/{governing-source-5OU235UP.js → governing-source-YPBK4H5H.js} +11 -11
- package/dist/hook-fast-XMZFMBKC.js +12 -0
- package/dist/{pending-54HC7MM3.js → host-key-GQFBRX3J.js} +2 -2
- package/dist/{image-tag-5SJ6ZKT7.js → image-tag-W4JKVNP4.js} +2 -2
- package/dist/index.js +4 -4
- package/dist/{init-ARB2JUPA.js → init-GEFKJNJU.js} +21 -21
- package/dist/{init-C2RROWQU.js → init-Y64OAKKQ.js} +21 -21
- package/dist/{init-cmd-SLXPX44L.js → init-cmd-YR4LLIRU.js} +13 -13
- package/dist/{init-update-FJDKY4SJ.js → init-update-46G6QJHB.js} +11 -11
- package/dist/{install-QSTTBUHX.js → install-AFMXH25X.js} +2 -2
- package/dist/{install-cmd-3DXJJUAA.js → install-cmd-X5XCUTSX.js} +4 -4
- package/dist/{login-browser-4OMZFP3U.js → login-browser-EWXSGHM7.js} +3 -3
- package/dist/{logout-cmd-5V5MMBSY.js → logout-cmd-5WE2N5B5.js} +2 -2
- package/dist/{logs-VN2HKDSH.js → logs-PKNQOJN6.js} +1 -1
- package/dist/{loop-QQV4PYNX.js → loop-3TJKFRN7.js} +31 -31
- package/dist/{machine-OVXDPPFK.js → machine-3W4LKTEW.js} +18 -18
- package/dist/{mcp-install-cmd-GGWB3JJ2.js → mcp-install-cmd-LD7KYAOP.js} +2 -2
- package/dist/{mcp-serve-cmd-U5N5DK3H.js → mcp-serve-cmd-MJIJHSQ6.js} +4 -4
- package/dist/{paths-ZC6BMWMT.js → paths-6V7572NN.js} +1 -1
- package/dist/{host-key-5TKBNUZ4.js → pending-GUHHKO42.js} +2 -2
- package/dist/{pidfile-BY5Z6YH7.js → pidfile-ZQOFDY7T.js} +2 -2
- package/dist/{record-K23IN6QN.js → record-C4ZVSLKV.js} +2 -2
- package/dist/{runner-env-2D7MPOIJ.js → runner-env-6Q2RMENH.js} +3 -3
- package/dist/{runner-identity-QQU6BUUO.js → runner-identity-DP577A7S.js} +4 -4
- package/dist/{runner-key-WIEESRA5.js → runner-key-LR5P2EJ5.js} +21 -21
- package/dist/{session-sender-DFB2N3DO.js → session-sender-ZTPWIU5L.js} +12 -12
- package/dist/{spec-cmd-FBA4BJPZ.js → spec-cmd-RLZMX67G.js} +9 -9
- package/dist/{status-V2DWSLL3.js → status-GNUOTHRH.js} +22 -22
- package/dist/{sync-cmd-KU567KX6.js → sync-cmd-GLWEAULP.js} +11 -11
- package/dist/{watch-LBPCO6GR.js → watch-F47NPUDX.js} +11 -11
- package/dist/{work-claim-cmd-IT7R7G3E.js → work-claim-cmd-GXPIRRBG.js} +11 -11
- package/dist/{work-cmd-SJB6N6FZ.js → work-cmd-S2FHIFJA.js} +9 -9
- package/dist/{work-comment-cmd-FGUQM2F3.js → work-comment-cmd-UJRKULO6.js} +9 -9
- package/dist/{work-logs-cmd-74GRYFTW.js → work-logs-cmd-SCAHJXSP.js} +9 -9
- package/dist/{work-open-pr-cmd-CX7A2BE5.js → work-open-pr-cmd-BGMHUQGD.js} +10 -10
- package/dist/{work-pr-cmd-DKTBEFHO.js → work-pr-cmd-EDDRP5DK.js} +9 -9
- package/dist/{work-stop-cmd-W6EKY5Y3.js → work-stop-cmd-ADE5K6UX.js} +9 -9
- package/package.json +1 -1
- package/dist/hook-fast-LZSHEKUA.js +0 -12
|
@@ -1,26 +1,26 @@
|
|
|
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-
|
|
4
|
-
import './chunk-
|
|
3
|
+
import { gatherDoctorChecks, doctorExitCode, summarizeChecks, renderDoctorText, recordWrapped, recordUnwrapped, recordRemoval, readManifest, recordInstall, recordStatusline } from './chunk-ZMZGWLYD.js';
|
|
4
|
+
import './chunk-6WTAYEKJ.js';
|
|
5
5
|
import './chunk-VJBFQP3H.js';
|
|
6
|
-
import { verifiedTrackerNames, TRACKERS } from './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
6
|
+
import { verifiedTrackerNames, TRACKERS } from './chunk-6CGXSMKX.js';
|
|
7
|
+
import './chunk-H57M3HC7.js';
|
|
8
|
+
import './chunk-PZA6ZFYW.js';
|
|
9
9
|
import './chunk-BUP5N3X6.js';
|
|
10
|
-
import './chunk-
|
|
11
|
-
import './chunk-
|
|
10
|
+
import './chunk-6BLXUD56.js';
|
|
11
|
+
import './chunk-G2JWZDFA.js';
|
|
12
12
|
import './chunk-MQ743JX3.js';
|
|
13
|
-
import './chunk-
|
|
14
|
-
import { hookFiredMarkerPath, installedCliDistDir } from './chunk-
|
|
13
|
+
import './chunk-MCSINUVC.js';
|
|
14
|
+
import { hookFiredMarkerPath, installedCliDistDir } from './chunk-UZEQVPKF.js';
|
|
15
15
|
import './chunk-ZJSNLVCE.js';
|
|
16
16
|
import './chunk-I7RZHMXW.js';
|
|
17
17
|
import './chunk-BKO6JEZI.js';
|
|
18
18
|
import './chunk-HCVLP7XA.js';
|
|
19
19
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
20
20
|
import './chunk-QE3UQAHK.js';
|
|
21
|
-
import './chunk-
|
|
21
|
+
import './chunk-KT4CN6OU.js';
|
|
22
22
|
import { C, warnDeprecated, API_KEY_FLAG_DEPRECATION, NO_COLOR_FLAG, stripNoColor } from './chunk-ANPNT6PM.js';
|
|
23
|
-
import './chunk-
|
|
23
|
+
import './chunk-PJDQPF5N.js';
|
|
24
24
|
import { FIRST_VERSION_READING_AGENTS_SKILLS } from './chunk-JKNYTNYD.js';
|
|
25
25
|
import './chunk-HBISTTG3.js';
|
|
26
26
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
@@ -33,8 +33,8 @@ import './chunk-RKOTJQVG.js';
|
|
|
33
33
|
import './chunk-QZBXLLTV.js';
|
|
34
34
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
35
35
|
import { resolveVersion } from './chunk-RA3O54FC.js';
|
|
36
|
-
import './chunk-
|
|
37
|
-
import './chunk-
|
|
36
|
+
import './chunk-GWRDL75D.js';
|
|
37
|
+
import './chunk-F3BBEBPL.js';
|
|
38
38
|
import './chunk-2K3TCQHW.js';
|
|
39
39
|
import './chunk-JGD5TWQ2.js';
|
|
40
40
|
import './chunk-Z5GEFMRW.js';
|
|
@@ -3786,7 +3786,7 @@ ${starter.output}`),
|
|
|
3786
3786
|
}
|
|
3787
3787
|
}
|
|
3788
3788
|
async function realConnectDepsForCwd() {
|
|
3789
|
-
const { realConnectDeps } = await import('./connect-cmd-
|
|
3789
|
+
const { realConnectDeps } = await import('./connect-cmd-SL4S5HJM.js');
|
|
3790
3790
|
const { resolveRepoIdentity } = await import('./dist-QPHZE47F.js');
|
|
3791
3791
|
return {
|
|
3792
3792
|
...realConnectDeps(),
|
|
@@ -3853,7 +3853,7 @@ edited file, and writes nothing. --control-plane makes no link and says
|
|
|
3853
3853
|
what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocation() + " doctor` reports the same\nstates under Starter files.\n"
|
|
3854
3854
|
).action(async (opts) => {
|
|
3855
3855
|
if (opts.update || opts.dryRun) {
|
|
3856
|
-
const { runInitUpdate, formatInitUpdate, updateFlagProblem } = await import('./init-update-
|
|
3856
|
+
const { runInitUpdate, formatInitUpdate, updateFlagProblem } = await import('./init-update-46G6QJHB.js');
|
|
3857
3857
|
const problem = updateFlagProblem(opts);
|
|
3858
3858
|
if (problem !== void 0) {
|
|
3859
3859
|
fail(problem);
|
|
@@ -3900,12 +3900,12 @@ what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocat
|
|
|
3900
3900
|
if (changed.length > 0 && !opts.json) process.stdout.write(`Removed the claude function from ${changed.join(", ")}.
|
|
3901
3901
|
`);
|
|
3902
3902
|
}
|
|
3903
|
-
const shell = !opts.remove && opts.shellFunction !== void 0 ? (await import('./init-cmd-
|
|
3903
|
+
const shell = !opts.remove && opts.shellFunction !== void 0 ? (await import('./init-cmd-YR4LLIRU.js')).applyShellFunctionFlag(opts.shellFunction, { home: homeFromEnv(), shellPath: process.env.SHELL }) : void 0;
|
|
3904
3904
|
if (opts.json) writeJson(shell === void 0 ? outcome.result : { ...outcome.result, shellFunction: { outcome: shell.outcome, reason: shell.reason } });
|
|
3905
3905
|
else process.stdout.write(outcome.text + (shell?.text ?? ""));
|
|
3906
3906
|
return;
|
|
3907
3907
|
}
|
|
3908
|
-
const { runInitCommand } = await import('./init-cmd-
|
|
3908
|
+
const { runInitCommand } = await import('./init-cmd-YR4LLIRU.js');
|
|
3909
3909
|
const code = await runInitCommand(
|
|
3910
3910
|
{ json: opts.json, factory: opts.factory, shellFunction: opts.shellFunction },
|
|
3911
3911
|
{
|
|
@@ -3917,7 +3917,7 @@ what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocat
|
|
|
3917
3917
|
return { ok, text, detail };
|
|
3918
3918
|
},
|
|
3919
3919
|
runAgentSetup: async () => {
|
|
3920
|
-
const { runAgentSetup } = await import('./agent-setup-
|
|
3920
|
+
const { runAgentSetup } = await import('./agent-setup-5DXPEO64.js');
|
|
3921
3921
|
return runAgentSetup({ cwd: process.cwd(), skillsLink: opts.skillsLink !== false });
|
|
3922
3922
|
},
|
|
3923
3923
|
runDoctorChecks: gatherDoctorChecks,
|
|
@@ -3926,7 +3926,7 @@ what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocat
|
|
|
3926
3926
|
shellPath: process.env.SHELL,
|
|
3927
3927
|
interactive: Boolean(process.stdin.isTTY && process.stderr.isTTY) && opts.json !== true,
|
|
3928
3928
|
ask: async () => {
|
|
3929
|
-
const { promptOnTerminal } = await import('./connect-cmd-
|
|
3929
|
+
const { promptOnTerminal } = await import('./connect-cmd-SL4S5HJM.js');
|
|
3930
3930
|
const answer = await promptOnTerminal({
|
|
3931
3931
|
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.`,
|
|
3932
3932
|
options: [
|
|
@@ -3965,7 +3965,7 @@ linked (true, false, or null when it could not be checked) and, when false,
|
|
|
3965
3965
|
linkUrl.
|
|
3966
3966
|
`
|
|
3967
3967
|
).action(async (opts) => {
|
|
3968
|
-
const { runConnectCommand } = await import('./connect-cmd-
|
|
3968
|
+
const { runConnectCommand } = await import('./connect-cmd-SL4S5HJM.js');
|
|
3969
3969
|
const code = await runConnectCommand({ factory: opts.factory, json: opts.json }, await realConnectDepsForCwd(), {
|
|
3970
3970
|
stdout: process.stdout,
|
|
3971
3971
|
stderr: process.stderr
|
|
@@ -4004,7 +4004,7 @@ Every later command reads the saved file, so none of them needs a key on
|
|
|
4004
4004
|
its command line. A saved key is checked for real on the first \`sync\`.
|
|
4005
4005
|
`
|
|
4006
4006
|
).action(async (opts) => {
|
|
4007
|
-
const { runLoginCommand, realLoginDeps } = await import('./login-browser-
|
|
4007
|
+
const { runLoginCommand, realLoginDeps } = await import('./login-browser-EWXSGHM7.js');
|
|
4008
4008
|
const code = await runLoginCommand(
|
|
4009
4009
|
{
|
|
4010
4010
|
browser: opts.browser !== false,
|
|
@@ -4028,7 +4028,7 @@ dashboard cannot be reached the local copy is still deleted and the exit
|
|
|
4028
4028
|
code is 1: revoke the token on /profile/security.
|
|
4029
4029
|
`
|
|
4030
4030
|
).action(async () => {
|
|
4031
|
-
const { runLogoutCommand, realLogoutDeps } = await import('./logout-cmd-
|
|
4031
|
+
const { runLogoutCommand, realLogoutDeps } = await import('./logout-cmd-5WE2N5B5.js');
|
|
4032
4032
|
const code = await runLogoutCommand(realLogoutDeps());
|
|
4033
4033
|
if (code !== 0) process.exitCode = code;
|
|
4034
4034
|
});
|
|
@@ -4043,7 +4043,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4043
4043
|
else fail(found.reason);
|
|
4044
4044
|
return;
|
|
4045
4045
|
}
|
|
4046
|
-
const { runSync, SyncConfigError, SyncTransportError } = await import('./sync-cmd-
|
|
4046
|
+
const { runSync, SyncConfigError, SyncTransportError } = await import('./sync-cmd-GLWEAULP.js');
|
|
4047
4047
|
try {
|
|
4048
4048
|
const result = await runSync({
|
|
4049
4049
|
url: opts.url,
|
|
@@ -4074,7 +4074,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4074
4074
|
if (invokedCommandToken(argv) === "watch") {
|
|
4075
4075
|
warnDeprecated(`\`${cliInvocation()} watch\` is now \`${cliInvocation()} daemon\`; the old name will be removed in a future release.`);
|
|
4076
4076
|
}
|
|
4077
|
-
const { runWatch } = await import('./watch-
|
|
4077
|
+
const { runWatch } = await import('./watch-F47NPUDX.js');
|
|
4078
4078
|
await runWatch({ once: opts.once });
|
|
4079
4079
|
});
|
|
4080
4080
|
program2.command("hook <event>", { hidden: true }).description("capture-hook fast path, installed by `init`").action(() => {
|
|
@@ -4164,7 +4164,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4164
4164
|
process.exitCode = await runBuildCommand({ dir: opts.dir, argv: command });
|
|
4165
4165
|
});
|
|
4166
4166
|
program2.command("session-sender", { hidden: true }).description("stream a runner build's sessions to its work item while the build runs").action(async () => {
|
|
4167
|
-
const { runSessionSender } = await import('./session-sender-
|
|
4167
|
+
const { runSessionSender } = await import('./session-sender-ZTPWIU5L.js');
|
|
4168
4168
|
try {
|
|
4169
4169
|
await runSessionSender();
|
|
4170
4170
|
} catch (err) {
|
|
@@ -4254,7 +4254,7 @@ Compiling .outerlayer/ moved to \`${cliInvocation()} context emit\`.
|
|
|
4254
4254
|
await compileContext({ dir: opts.dir, check: opts.check, json: opts.json });
|
|
4255
4255
|
return;
|
|
4256
4256
|
}
|
|
4257
|
-
const { runEmitResult, EmitResultError } = await import('./emit-result-cmd-
|
|
4257
|
+
const { runEmitResult, EmitResultError } = await import('./emit-result-cmd-AUPIXPEU.js');
|
|
4258
4258
|
try {
|
|
4259
4259
|
const result = await runEmitResult({
|
|
4260
4260
|
name,
|
|
@@ -4304,7 +4304,7 @@ everywhere, bytes and deep link untouched; a still-queued one is cancelled
|
|
|
4304
4304
|
locally so it never uploads. One correction can retire several duplicates.
|
|
4305
4305
|
`
|
|
4306
4306
|
).action(async (file, opts) => {
|
|
4307
|
-
const { runEmitArtifact, EmitArtifactError } = await import('./emit-artifact-cmd-
|
|
4307
|
+
const { runEmitArtifact, EmitArtifactError } = await import('./emit-artifact-cmd-SDG5H6D7.js');
|
|
4308
4308
|
let pr;
|
|
4309
4309
|
if (opts.pr !== void 0) {
|
|
4310
4310
|
pr = parseTrackerNumber(opts.pr);
|
|
@@ -4363,7 +4363,7 @@ recent events with their ids. --find <text> searches all of them.
|
|
|
4363
4363
|
item that session was launched for is used automatically.
|
|
4364
4364
|
`
|
|
4365
4365
|
).action(async (opts) => {
|
|
4366
|
-
const { runEmitFinding, refuseRemovedFindingFlags, EmitFindingError } = await import('./emit-finding-cmd-
|
|
4366
|
+
const { runEmitFinding, refuseRemovedFindingFlags, EmitFindingError } = await import('./emit-finding-cmd-6FGMTEFM.js');
|
|
4367
4367
|
try {
|
|
4368
4368
|
refuseRemovedFindingFlags(opts);
|
|
4369
4369
|
const result = await runEmitFinding({
|
|
@@ -4430,7 +4430,7 @@ the whole batch. "untimed": true records one with no time on purpose.
|
|
|
4430
4430
|
that session was launched for is used automatically.
|
|
4431
4431
|
`
|
|
4432
4432
|
).action(async (file, opts) => {
|
|
4433
|
-
const { runEmitFindings, EmitFindingError } = await import('./emit-finding-cmd-
|
|
4433
|
+
const { runEmitFindings, EmitFindingError } = await import('./emit-finding-cmd-6FGMTEFM.js');
|
|
4434
4434
|
try {
|
|
4435
4435
|
const result = await runEmitFindings({
|
|
4436
4436
|
file,
|
|
@@ -4465,7 +4465,7 @@ command, the command exits 0, and \`sync\` sends it later. If the gateway refuse
|
|
|
4465
4465
|
the step, the command prints why and exits 1.
|
|
4466
4466
|
`
|
|
4467
4467
|
).action(async (name, opts) => {
|
|
4468
|
-
const { runEmitStep, EmitStepError } = await import('./emit-step-cmd-
|
|
4468
|
+
const { runEmitStep, EmitStepError } = await import('./emit-step-cmd-PORHEKHN.js');
|
|
4469
4469
|
try {
|
|
4470
4470
|
await runEmitStep({
|
|
4471
4471
|
name,
|
|
@@ -4508,7 +4508,7 @@ of the item, and a (proof: <kind>) annotation names its proof.
|
|
|
4508
4508
|
${cliInvocation()} emit criteria acceptance/412-login.md --item 412
|
|
4509
4509
|
`
|
|
4510
4510
|
).action(async (file, opts) => {
|
|
4511
|
-
const { runEmitCriteria, EmitCriteriaError } = await import('./emit-criteria-cmd-
|
|
4511
|
+
const { runEmitCriteria, EmitCriteriaError } = await import('./emit-criteria-cmd-QGSP77AG.js');
|
|
4512
4512
|
try {
|
|
4513
4513
|
const result = await runEmitCriteria({
|
|
4514
4514
|
file,
|
|
@@ -4532,9 +4532,9 @@ function registerSpecCommands(program2) {
|
|
|
4532
4532
|
const specCmd = program2.command("spec").description("Find, file and edit the issue a spec lives in, in your factory's tracker");
|
|
4533
4533
|
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)");
|
|
4534
4534
|
const run = async (action) => {
|
|
4535
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4535
|
+
const { WorkCommandError } = await import('./work-cmd-S2FHIFJA.js');
|
|
4536
4536
|
try {
|
|
4537
|
-
await action(await import('./spec-cmd-
|
|
4537
|
+
await action(await import('./spec-cmd-RLZMX67G.js'));
|
|
4538
4538
|
} catch (err) {
|
|
4539
4539
|
if (err instanceof WorkCommandError) {
|
|
4540
4540
|
fail(err.message);
|
|
@@ -4576,7 +4576,7 @@ takes it, and prints the line that starts your session on it. That
|
|
|
4576
4576
|
session links itself and holds the item's lease while it works.
|
|
4577
4577
|
`
|
|
4578
4578
|
).action(async (opts) => {
|
|
4579
|
-
const { runWorkBuild, WorkCommandError } = await import('./work-cmd-
|
|
4579
|
+
const { runWorkBuild, WorkCommandError } = await import('./work-cmd-S2FHIFJA.js');
|
|
4580
4580
|
try {
|
|
4581
4581
|
await runWorkBuild(opts);
|
|
4582
4582
|
} catch (err) {
|
|
@@ -4599,7 +4599,7 @@ renews that session's own 20-minute lease, unless --no-lease or
|
|
|
4599
4599
|
--ended is given, or another worker already holds a live one.
|
|
4600
4600
|
`
|
|
4601
4601
|
).action(async (number, opts) => {
|
|
4602
|
-
const { runWorkLinkSession, WorkCommandError } = await import('./work-cmd-
|
|
4602
|
+
const { runWorkLinkSession, WorkCommandError } = await import('./work-cmd-S2FHIFJA.js');
|
|
4603
4603
|
try {
|
|
4604
4604
|
await runWorkLinkSession({ ...opts, number, noLease: opts.lease === false, logFailures: opts.logFailures === true });
|
|
4605
4605
|
} catch (err) {
|
|
@@ -4623,8 +4623,8 @@ criterion's new proof; --ready hands the thread back to a person. At
|
|
|
4623
4623
|
most one action flag may be given.
|
|
4624
4624
|
`
|
|
4625
4625
|
).action(async (opts) => {
|
|
4626
|
-
const { runWorkComment, WorkCommentCommandError } = await import('./work-comment-cmd-
|
|
4627
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4626
|
+
const { runWorkComment, WorkCommentCommandError } = await import('./work-comment-cmd-UJRKULO6.js');
|
|
4627
|
+
const { WorkCommandError } = await import('./work-cmd-S2FHIFJA.js');
|
|
4628
4628
|
try {
|
|
4629
4629
|
await runWorkComment(opts);
|
|
4630
4630
|
} catch (err) {
|
|
@@ -4645,8 +4645,8 @@ criterion that carries proof or a comment, each with who is waiting
|
|
|
4645
4645
|
on whom next.
|
|
4646
4646
|
`
|
|
4647
4647
|
).action(async (opts) => {
|
|
4648
|
-
const { runWorkThreads, WorkCommentCommandError } = await import('./work-comment-cmd-
|
|
4649
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4648
|
+
const { runWorkThreads, WorkCommentCommandError } = await import('./work-comment-cmd-UJRKULO6.js');
|
|
4649
|
+
const { WorkCommandError } = await import('./work-cmd-S2FHIFJA.js');
|
|
4650
4650
|
try {
|
|
4651
4651
|
await runWorkThreads(opts);
|
|
4652
4652
|
} catch (err) {
|
|
@@ -4670,8 +4670,8 @@ still running, or that an older runner released, has no log and the
|
|
|
4670
4670
|
command exits 1.
|
|
4671
4671
|
`
|
|
4672
4672
|
).action(async (opts) => {
|
|
4673
|
-
const { runWorkLogs, WorkLogsCommandError } = await import('./work-logs-cmd-
|
|
4674
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4673
|
+
const { runWorkLogs, WorkLogsCommandError } = await import('./work-logs-cmd-SCAHJXSP.js');
|
|
4674
|
+
const { WorkCommandError } = await import('./work-cmd-S2FHIFJA.js');
|
|
4675
4675
|
try {
|
|
4676
4676
|
await runWorkLogs(opts);
|
|
4677
4677
|
} catch (err) {
|
|
@@ -4694,8 +4694,8 @@ item is not built again until a new build request. Exits 1 when no host
|
|
|
4694
4694
|
build is running for the item.
|
|
4695
4695
|
`
|
|
4696
4696
|
).action(async (opts) => {
|
|
4697
|
-
const { runWorkStop, WorkStopCommandError } = await import('./work-stop-cmd-
|
|
4698
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4697
|
+
const { runWorkStop, WorkStopCommandError } = await import('./work-stop-cmd-ADE5K6UX.js');
|
|
4698
|
+
const { WorkCommandError } = await import('./work-cmd-S2FHIFJA.js');
|
|
4699
4699
|
try {
|
|
4700
4700
|
await runWorkStop(opts);
|
|
4701
4701
|
} catch (err) {
|
|
@@ -4716,7 +4716,7 @@ deletes anything \u2014 the item is removed from Work only once no
|
|
|
4716
4716
|
live addition remains on it.
|
|
4717
4717
|
`
|
|
4718
4718
|
).action(async (opts) => {
|
|
4719
|
-
const { runWorkRemove, WorkCommandError } = await import('./work-cmd-
|
|
4719
|
+
const { runWorkRemove, WorkCommandError } = await import('./work-cmd-S2FHIFJA.js');
|
|
4720
4720
|
try {
|
|
4721
4721
|
await runWorkRemove(opts);
|
|
4722
4722
|
} catch (err) {
|
|
@@ -4728,7 +4728,7 @@ live addition remains on it.
|
|
|
4728
4728
|
}
|
|
4729
4729
|
});
|
|
4730
4730
|
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) => {
|
|
4731
|
-
const { runWorkStatus, WorkCommandError } = await import('./work-cmd-
|
|
4731
|
+
const { runWorkStatus, WorkCommandError } = await import('./work-cmd-S2FHIFJA.js');
|
|
4732
4732
|
try {
|
|
4733
4733
|
await runWorkStatus(opts);
|
|
4734
4734
|
} catch (err) {
|
|
@@ -4740,7 +4740,7 @@ live addition remains on it.
|
|
|
4740
4740
|
}
|
|
4741
4741
|
});
|
|
4742
4742
|
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) => {
|
|
4743
|
-
const { runWorkList, WorkCommandError } = await import('./work-cmd-
|
|
4743
|
+
const { runWorkList, WorkCommandError } = await import('./work-cmd-S2FHIFJA.js');
|
|
4744
4744
|
try {
|
|
4745
4745
|
await runWorkList(opts);
|
|
4746
4746
|
} catch (err) {
|
|
@@ -4761,7 +4761,7 @@ by a different key is refused; claiming again with the same key extends
|
|
|
4761
4761
|
it. --host is a label only.
|
|
4762
4762
|
`
|
|
4763
4763
|
).action(async (opts) => {
|
|
4764
|
-
const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-
|
|
4764
|
+
const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-GXPIRRBG.js');
|
|
4765
4765
|
try {
|
|
4766
4766
|
await runWorkClaim(opts);
|
|
4767
4767
|
} catch (err) {
|
|
@@ -4781,7 +4781,7 @@ Extends the live lease this API key holds. Refused with a 410 if the
|
|
|
4781
4781
|
lease has expired, or a 403 if a different key holds it.
|
|
4782
4782
|
`
|
|
4783
4783
|
).action(async (opts) => {
|
|
4784
|
-
const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-
|
|
4784
|
+
const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-GXPIRRBG.js');
|
|
4785
4785
|
try {
|
|
4786
4786
|
await runWorkRenew(opts);
|
|
4787
4787
|
} catch (err) {
|
|
@@ -4813,7 +4813,7 @@ applies to a host's lease only. A later tool call in the session
|
|
|
4813
4813
|
takes the lease again.
|
|
4814
4814
|
`
|
|
4815
4815
|
).action(async (opts) => {
|
|
4816
|
-
const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-
|
|
4816
|
+
const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-GXPIRRBG.js');
|
|
4817
4817
|
try {
|
|
4818
4818
|
await runWorkRelease(opts);
|
|
4819
4819
|
} catch (err) {
|
|
@@ -4840,7 +4840,7 @@ Idempotent: declaring the same pull request twice is a no-op.
|
|
|
4840
4840
|
needs your own login; an agent session or a factory key is refused.
|
|
4841
4841
|
`
|
|
4842
4842
|
).action(async (number, opts) => {
|
|
4843
|
-
const { runWorkPr, WorkPrCommandError } = await import('./work-pr-cmd-
|
|
4843
|
+
const { runWorkPr, WorkPrCommandError } = await import('./work-pr-cmd-EDDRP5DK.js');
|
|
4844
4844
|
try {
|
|
4845
4845
|
await runWorkPr({ ...opts, number });
|
|
4846
4846
|
} catch (err) {
|
|
@@ -4865,8 +4865,8 @@ login, then declares the pull request on the item, as \`work pr\` does.
|
|
|
4865
4865
|
Run it again after a change to the title or description.
|
|
4866
4866
|
`
|
|
4867
4867
|
).action(async (opts) => {
|
|
4868
|
-
const { runWorkOpenPr, WorkOpenPrCommandError } = await import('./work-open-pr-cmd-
|
|
4869
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4868
|
+
const { runWorkOpenPr, WorkOpenPrCommandError } = await import('./work-open-pr-cmd-BGMHUQGD.js');
|
|
4869
|
+
const { WorkCommandError } = await import('./work-cmd-S2FHIFJA.js');
|
|
4870
4870
|
try {
|
|
4871
4871
|
await runWorkOpenPr(opts);
|
|
4872
4872
|
} catch (err) {
|
|
@@ -4883,8 +4883,8 @@ function registerRunnerCommands(program2) {
|
|
|
4883
4883
|
const configOption = "the cloud config file to run against (default: ~/.outerlayer/config.json)";
|
|
4884
4884
|
runnerCmd.command("start").description("Run the loop: claim work, run it, report, clean up, repeat").option("--config <path>", configOption).action(async (opts) => {
|
|
4885
4885
|
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-JJ3EO7SB.js');
|
|
4886
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
4887
|
-
const { RunnerAlreadyRunningError } = await import('./pidfile-
|
|
4886
|
+
const { start, RunnerStartError } = await import('./loop-3TJKFRN7.js');
|
|
4887
|
+
const { RunnerAlreadyRunningError } = await import('./pidfile-ZQOFDY7T.js');
|
|
4888
4888
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
4889
4889
|
try {
|
|
4890
4890
|
const { realUpdateDeps } = await import('./real-deps-KNNBQC75.js');
|
|
@@ -4902,9 +4902,9 @@ function registerRunnerCommands(program2) {
|
|
|
4902
4902
|
"\nReads OUTERLAYER_URL, OUTERLAYER_APP_ID, OUTERLAYER_API_KEY, OUTERLAYER_RUNNER_NAME and one Claude credential\n(CLAUDE_CODE_OAUTH_TOKEN, ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN) 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"
|
|
4903
4903
|
).action(async () => {
|
|
4904
4904
|
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-JJ3EO7SB.js');
|
|
4905
|
-
const { containerStart } = await import('./container-start-
|
|
4906
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
4907
|
-
const { RunnerAlreadyRunningError } = await import('./pidfile-
|
|
4905
|
+
const { containerStart } = await import('./container-start-IA2HK4QI.js');
|
|
4906
|
+
const { start, RunnerStartError } = await import('./loop-3TJKFRN7.js');
|
|
4907
|
+
const { RunnerAlreadyRunningError } = await import('./pidfile-ZQOFDY7T.js');
|
|
4908
4908
|
try {
|
|
4909
4909
|
const result = await containerStart({
|
|
4910
4910
|
env: process.env,
|
|
@@ -4923,7 +4923,7 @@ function registerRunnerCommands(program2) {
|
|
|
4923
4923
|
});
|
|
4924
4924
|
runnerCmd.command("check").description("Validate the config, the hooks and the key, and print the effective settings").option("--config <path>", configOption).action(async (opts) => {
|
|
4925
4925
|
const { defaultRunnerConfigPath } = await import('./config-JJ3EO7SB.js');
|
|
4926
|
-
const { runRunnerCheck } = await import('./check-
|
|
4926
|
+
const { runRunnerCheck } = await import('./check-ZSYCR5WG.js');
|
|
4927
4927
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
4928
4928
|
const result = await runRunnerCheck(configPath);
|
|
4929
4929
|
if (!result.ok) {
|
|
@@ -4945,7 +4945,7 @@ function registerRunnerCommands(program2) {
|
|
|
4945
4945
|
});
|
|
4946
4946
|
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) => {
|
|
4947
4947
|
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-JJ3EO7SB.js');
|
|
4948
|
-
const { runRunnerInstall, RunnerInstallError, launcherSummary, restartNote } = await import('./install-cmd-
|
|
4948
|
+
const { runRunnerInstall, RunnerInstallError, launcherSummary, restartNote } = await import('./install-cmd-X5XCUTSX.js');
|
|
4949
4949
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
4950
4950
|
if (opts.service !== true) {
|
|
4951
4951
|
for (const flag of ["print", "user", "unitName"]) {
|
|
@@ -4957,7 +4957,7 @@ function registerRunnerCommands(program2) {
|
|
|
4957
4957
|
}
|
|
4958
4958
|
try {
|
|
4959
4959
|
if (opts.service === true) {
|
|
4960
|
-
const { installServiceCommand } = await import('./command-
|
|
4960
|
+
const { installServiceCommand } = await import('./command-E5OG5NCH.js');
|
|
4961
4961
|
const result2 = await installServiceCommand({
|
|
4962
4962
|
configPath,
|
|
4963
4963
|
print: opts.print,
|
|
@@ -5013,7 +5013,7 @@ To keep it running, run ${C.yellow}${cliInvocation()} runner install --service${
|
|
|
5013
5013
|
return;
|
|
5014
5014
|
}
|
|
5015
5015
|
const { defaultRunnerConfigPath } = await import('./config-JJ3EO7SB.js');
|
|
5016
|
-
const { uninstallServiceCommand } = await import('./command-
|
|
5016
|
+
const { uninstallServiceCommand } = await import('./command-E5OG5NCH.js');
|
|
5017
5017
|
const result = await uninstallServiceCommand({ configPath: opts.config ?? defaultRunnerConfigPath(), unitName: opts.unitName, home: homeFromEnv() });
|
|
5018
5018
|
if (result.ok) for (const line of result.lines) process.stdout.write(`${C.green}\u2713${C.reset} ${line}
|
|
5019
5019
|
`);
|
|
@@ -5041,11 +5041,11 @@ already in runner.env is used.
|
|
|
5041
5041
|
`
|
|
5042
5042
|
).action(async (opts) => {
|
|
5043
5043
|
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-JJ3EO7SB.js');
|
|
5044
|
-
const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-
|
|
5045
|
-
const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-
|
|
5046
|
-
const { detectMachine } = await import('./machine-
|
|
5047
|
-
const { chooseVm, runVmInit, VmInitError } = await import('./init-
|
|
5048
|
-
const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-
|
|
5044
|
+
const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-GEFKJNJU.js');
|
|
5045
|
+
const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-LR5P2EJ5.js');
|
|
5046
|
+
const { detectMachine } = await import('./machine-3W4LKTEW.js');
|
|
5047
|
+
const { chooseVm, runVmInit, VmInitError } = await import('./init-Y64OAKKQ.js');
|
|
5048
|
+
const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-6Q2RMENH.js');
|
|
5049
5049
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5050
5050
|
if (opts.agent !== void 0 && !isAgentName(opts.agent)) {
|
|
5051
5051
|
fail(`--agent ${opts.agent}: runner init writes commands for ${Object.keys(AGENT_COMMANDS).join(", ")}. For another agent, leave --agent out and edit runner.commands.`);
|
|
@@ -5059,7 +5059,7 @@ already in runner.env is used.
|
|
|
5059
5059
|
try {
|
|
5060
5060
|
let credential;
|
|
5061
5061
|
if (agent !== void 0) {
|
|
5062
|
-
const { readPipedKey } = await import('./login-browser-
|
|
5062
|
+
const { readPipedKey } = await import('./login-browser-EWXSGHM7.js');
|
|
5063
5063
|
credential = credentialFromStdin(
|
|
5064
5064
|
await readPipedKey(process.stdin, {
|
|
5065
5065
|
onWaiting: () => process.stderr.write(`runner init is waiting for Claude's credential on stdin; close stdin to use the one already in runner.env
|
|
@@ -5076,7 +5076,7 @@ already in runner.env is used.
|
|
|
5076
5076
|
const chunks = [];
|
|
5077
5077
|
for await (const chunk of process.stdin) chunks.push(Buffer.from(chunk));
|
|
5078
5078
|
const result2 = runRunnerInit(configPath, { machine, configFromStdin: Buffer.concat(chunks).toString("utf8"), requireContainer: true });
|
|
5079
|
-
const { ensureHostKey: ensureHostKey2 } = await import('./host-key-
|
|
5079
|
+
const { ensureHostKey: ensureHostKey2 } = await import('./host-key-GQFBRX3J.js');
|
|
5080
5080
|
const hostKey2 = await ensureHostKey2(configPath);
|
|
5081
5081
|
process.stdout.write(`host key ${hostKey2.fingerprint}
|
|
5082
5082
|
hooks: ${result2.hooks}
|
|
@@ -5135,7 +5135,7 @@ hooks: ${result2.hooks}
|
|
|
5135
5135
|
const prepared = prepareRunnerInit(configPath, { machine, allowProcess, agent, credential, keyFromLogin: makeKey !== void 0 });
|
|
5136
5136
|
const created = makeKey === void 0 ? void 0 : await makeKey();
|
|
5137
5137
|
const result = writeRunnerInit(prepared, created);
|
|
5138
|
-
const { ensureHostKey } = await import('./host-key-
|
|
5138
|
+
const { ensureHostKey } = await import('./host-key-GQFBRX3J.js');
|
|
5139
5139
|
const hostKey = await ensureHostKey(configPath);
|
|
5140
5140
|
if (created !== void 0) {
|
|
5141
5141
|
process.stdout.write(`${C.green}\u2713${C.reset} saved the runner key in ${result.configPath}
|
|
@@ -5163,7 +5163,7 @@ ${C.yellow}${result.note}${C.reset}
|
|
|
5163
5163
|
To isolate builds in containers instead, run ${C.yellow}${cliInvocation()} runner init --vm${C.reset}.
|
|
5164
5164
|
`);
|
|
5165
5165
|
}
|
|
5166
|
-
const { runRunnerInstall, RunnerInstallError, RunnerDowngradeError, launcherSummary } = await import('./install-cmd-
|
|
5166
|
+
const { runRunnerInstall, RunnerInstallError, RunnerDowngradeError, launcherSummary } = await import('./install-cmd-X5XCUTSX.js');
|
|
5167
5167
|
let installedLayout = false;
|
|
5168
5168
|
let noService = "it starts the runner from the install layout, which needs a CLI installed with npm";
|
|
5169
5169
|
try {
|
|
@@ -5195,7 +5195,7 @@ ${C.yellow}The runner will not update itself: ${installErr.message}${C.reset}
|
|
|
5195
5195
|
let serviceUp = false;
|
|
5196
5196
|
let restart;
|
|
5197
5197
|
if (installedLayout) {
|
|
5198
|
-
const { installServiceCommand } = await import('./command-
|
|
5198
|
+
const { installServiceCommand } = await import('./command-E5OG5NCH.js');
|
|
5199
5199
|
const service = await installServiceCommand({
|
|
5200
5200
|
configPath,
|
|
5201
5201
|
entryPath: process.argv[1] ?? "",
|
|
@@ -5240,10 +5240,10 @@ Next:
|
|
|
5240
5240
|
"\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"
|
|
5241
5241
|
).action(async (opts) => {
|
|
5242
5242
|
const { defaultRunnerConfigPath } = await import('./config-JJ3EO7SB.js');
|
|
5243
|
-
const { buildRepositoryImage, RecipeError } = await import('./build-
|
|
5243
|
+
const { buildRepositoryImage, RecipeError } = await import('./build-F5QWH7G5.js');
|
|
5244
5244
|
const { currentCliBuild } = await import('./cli-build-K56DK4DS.js');
|
|
5245
|
-
const { createDockerHost } = await import('./docker-
|
|
5246
|
-
const { builderSpec } = await import('./builder-
|
|
5245
|
+
const { createDockerHost } = await import('./docker-KKE5Q5S2.js');
|
|
5246
|
+
const { builderSpec } = await import('./builder-KDUXCHTY.js');
|
|
5247
5247
|
const { loadRunnerConfig } = await import('./config-JJ3EO7SB.js');
|
|
5248
5248
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5249
5249
|
const loaded = (() => {
|
|
@@ -5255,11 +5255,11 @@ Next:
|
|
|
5255
5255
|
})();
|
|
5256
5256
|
const memory = loaded?.build?.memory ?? "8g";
|
|
5257
5257
|
try {
|
|
5258
|
-
const { ensureRunnerIdentity } = await import('./runner-identity-
|
|
5258
|
+
const { ensureRunnerIdentity } = await import('./runner-identity-DP577A7S.js');
|
|
5259
5259
|
await ensureRunnerIdentity(configPath, { log: (line) => console.error(line) }).catch((err) => {
|
|
5260
5260
|
console.error(`the runner's Docker identity could not be stored: ${err instanceof Error ? err.message : String(err)}`);
|
|
5261
5261
|
});
|
|
5262
|
-
const { imageTargetFor } = await import('./governing-source-
|
|
5262
|
+
const { imageTargetFor } = await import('./governing-source-YPBK4H5H.js');
|
|
5263
5263
|
const target = await imageTargetFor({ config: loaded, repository: opts.repository, fetchImpl: fetch });
|
|
5264
5264
|
if (!target.ok) {
|
|
5265
5265
|
if (opts.json) {
|
|
@@ -5323,24 +5323,24 @@ Next:
|
|
|
5323
5323
|
});
|
|
5324
5324
|
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) => {
|
|
5325
5325
|
const { defaultRunnerConfigPath } = await import('./config-JJ3EO7SB.js');
|
|
5326
|
-
const { requestStop } = await import('./loop-
|
|
5326
|
+
const { requestStop } = await import('./loop-3TJKFRN7.js');
|
|
5327
5327
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5328
|
-
const { runnerImageVersion } = await import('./image-tag-
|
|
5328
|
+
const { runnerImageVersion } = await import('./image-tag-W4JKVNP4.js');
|
|
5329
5329
|
await requestStop(configPath, Boolean(opts.now), void 0, { image: runnerImageVersion() !== void 0 });
|
|
5330
5330
|
});
|
|
5331
5331
|
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) => {
|
|
5332
5332
|
const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-JJ3EO7SB.js');
|
|
5333
|
-
const { jobsDir, runnerDir } = await import('./paths-
|
|
5334
|
-
const { listJobFiles, runnerProcessState } = await import('./loop-
|
|
5335
|
-
const { renderStatus } = await import('./status-
|
|
5336
|
-
const { readHousekeepingRecord } = await import('./record-
|
|
5333
|
+
const { jobsDir, runnerDir } = await import('./paths-6V7572NN.js');
|
|
5334
|
+
const { listJobFiles, runnerProcessState } = await import('./loop-3TJKFRN7.js');
|
|
5335
|
+
const { renderStatus } = await import('./status-GNUOTHRH.js');
|
|
5336
|
+
const { readHousekeepingRecord } = await import('./record-C4ZVSLKV.js');
|
|
5337
5337
|
const path2 = await import('path');
|
|
5338
5338
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5339
5339
|
const all = listJobFiles(configPath);
|
|
5340
5340
|
const housekeeping = readHousekeepingRecord(runnerDir(configPath));
|
|
5341
|
-
const { readPendingUpdate } = await import('./pending-
|
|
5341
|
+
const { readPendingUpdate } = await import('./pending-GUHHKO42.js');
|
|
5342
5342
|
const pendingUpdate = readPendingUpdate(runnerDir(configPath));
|
|
5343
|
-
const { readImageStatus } = await import('./image-tag-
|
|
5343
|
+
const { readImageStatus } = await import('./image-tag-W4JKVNP4.js');
|
|
5344
5344
|
const image = readImageStatus(runnerDir(configPath));
|
|
5345
5345
|
let host = "unknown";
|
|
5346
5346
|
let concurrency = 1;
|
|
@@ -5354,7 +5354,7 @@ Next:
|
|
|
5354
5354
|
const service = await (async () => {
|
|
5355
5355
|
if (process.platform !== "linux" || !existsSync("/run/systemd/system")) return void 0;
|
|
5356
5356
|
const { inspectService, realInspectProbes } = await import('./inspect-6UYAAXH7.js');
|
|
5357
|
-
const { DEFAULT_UNIT_NAME } = await import('./install-
|
|
5357
|
+
const { DEFAULT_UNIT_NAME } = await import('./install-AFMXH25X.js');
|
|
5358
5358
|
const facts = inspectService(DEFAULT_UNIT_NAME, path2.dirname(configPath), realInspectProbes());
|
|
5359
5359
|
return facts === void 0 ? void 0 : { unit: facts.unit, running: facts.mainPid !== void 0, delegated: facts.delegate };
|
|
5360
5360
|
})();
|
|
@@ -5392,8 +5392,8 @@ Next:
|
|
|
5392
5392
|
});
|
|
5393
5393
|
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) => {
|
|
5394
5394
|
const { defaultRunnerConfigPath } = await import('./config-JJ3EO7SB.js');
|
|
5395
|
-
const { listJobFiles } = await import('./loop-
|
|
5396
|
-
const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-
|
|
5395
|
+
const { listJobFiles } = await import('./loop-3TJKFRN7.js');
|
|
5396
|
+
const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-PKNQOJN6.js');
|
|
5397
5397
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5398
5398
|
const item = parseTrackerNumber(itemArg);
|
|
5399
5399
|
if (item === void 0) {
|
|
@@ -5602,7 +5602,7 @@ Self-host deployments also need --app-id: without a key service to resolve the
|
|
|
5602
5602
|
caller from the bearer token, the gateway answers 401 without that header.
|
|
5603
5603
|
`
|
|
5604
5604
|
).action(async (opts) => {
|
|
5605
|
-
const { runMcpInstall, handleMcpInstallError, McpInstallError } = await import('./mcp-install-cmd-
|
|
5605
|
+
const { runMcpInstall, handleMcpInstallError, McpInstallError } = await import('./mcp-install-cmd-LD7KYAOP.js');
|
|
5606
5606
|
try {
|
|
5607
5607
|
if (opts.transport !== void 0 && opts.transport !== "stdio" && opts.transport !== "http") {
|
|
5608
5608
|
throw new McpInstallError(`--transport must be "stdio" or "http", got "${opts.transport}"`);
|
|
@@ -5624,7 +5624,7 @@ caller from the bearer token, the gateway answers 401 without that header.
|
|
|
5624
5624
|
"after",
|
|
5625
5625
|
"\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"
|
|
5626
5626
|
).action(async (opts) => {
|
|
5627
|
-
const { runMcpServe, handleMcpServeError } = await import('./mcp-serve-cmd-
|
|
5627
|
+
const { runMcpServe, handleMcpServeError } = await import('./mcp-serve-cmd-MJIJHSQ6.js');
|
|
5628
5628
|
try {
|
|
5629
5629
|
await runMcpServe({ url: opts.url, appId: opts.appId });
|
|
5630
5630
|
} catch (err) {
|