@outerlayer/cli 0.34.0-next.20261027121359 → 0.34.0-next.20261027174501
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-UPRMGVB7.js → agent-setup-THDNZ5ME.js} +6 -6
- package/dist/{bridge-GVZUP3NU.js → bridge-MLB57JP6.js} +2 -2
- package/dist/build-25GDCEZ7.js +18 -0
- package/dist/{build-disk-WMIRA4RD.js → build-disk-NFMQCZM3.js} +8 -8
- package/dist/build-info.json +1 -1
- package/dist/{builder-XTAHDFV5.js → builder-OWDGC3VQ.js} +7 -7
- package/dist/{check-FAG4QKIX.js → check-IFHLERRX.js} +39 -39
- package/dist/{chunk-Q3ATWA2U.js → chunk-2YPOSVC7.js} +3 -3
- package/dist/{chunk-M6YTST7G.js → chunk-36M4KVBT.js} +2 -2
- package/dist/{chunk-W5EKMK37.js → chunk-3FTIUB7I.js} +1 -1
- package/dist/{chunk-L4DCIEVT.js → chunk-3RRYEZAC.js} +4 -4
- package/dist/{chunk-I2GHZ2VA.js → chunk-3VJYDWFV.js} +1 -1
- package/dist/{chunk-XEJ5USHY.js → chunk-4HA4S3U2.js} +6 -6
- package/dist/{chunk-CHDWAWQA.js → chunk-4QQJTJUN.js} +1 -1
- package/dist/{chunk-6SJ3DJDH.js → chunk-5ARXP3BP.js} +3 -3
- package/dist/{chunk-SGT7YU3X.js → chunk-5FHBVV25.js} +104 -59
- package/dist/{chunk-T375XV3H.js → chunk-62URQYCB.js} +1 -1
- package/dist/{chunk-NGZBVN6F.js → chunk-6IMQXBTZ.js} +6 -6
- package/dist/{chunk-66TKWWTX.js → chunk-7Q7GQELE.js} +5 -5
- package/dist/{chunk-B7LPFCIN.js → chunk-7SJNVGVC.js} +6 -6
- package/dist/{chunk-JKOONI3H.js → chunk-7TLGRE5F.js} +2 -2
- package/dist/{chunk-OOD5NDQA.js → chunk-A6PJSNP6.js} +349 -94
- package/dist/{chunk-LUYTNCMS.js → chunk-ANFNZCXZ.js} +5 -5
- package/dist/{chunk-LHUZVM3L.js → chunk-AV5T7HV3.js} +1 -1
- package/dist/{chunk-RMJSYOSV.js → chunk-BS3OYFAD.js} +1 -1
- package/dist/{chunk-PBZODW5X.js → chunk-BS4CZMT6.js} +1 -1
- package/dist/{chunk-HO4XRLAZ.js → chunk-CFJOONWM.js} +1 -1
- package/dist/{chunk-UC4OSOQS.js → chunk-CMMEJJTL.js} +10 -35
- package/dist/{chunk-YIBHQR3B.js → chunk-EYJRVHBN.js} +3 -3
- package/dist/{chunk-UYWGR35C.js → chunk-FLHBUQ2W.js} +7 -6
- package/dist/{chunk-N752ZNZ5.js → chunk-FVVHQIZR.js} +1 -1
- package/dist/{chunk-Z7THNFUU.js → chunk-GMKDAF37.js} +25 -6
- package/dist/{chunk-XZGURZHF.js → chunk-GPO7F757.js} +1 -1
- package/dist/{chunk-KFXPH7SJ.js → chunk-HJCNWEQK.js} +3 -3
- package/dist/{chunk-3NMDGGZS.js → chunk-JO4SAEHH.js} +3 -3
- package/dist/{chunk-ZV6GOXYA.js → chunk-JVNQNKHV.js} +1 -1
- package/dist/{chunk-RO2NZJHZ.js → chunk-JWMJMQRF.js} +4 -4
- package/dist/{chunk-ARPPH7VS.js → chunk-LSFP57LI.js} +257 -79
- package/dist/{chunk-TS2YACAQ.js → chunk-LYX2RRSF.js} +2 -2
- package/dist/{chunk-WS5E73JO.js → chunk-MXAYUZJF.js} +6 -6
- package/dist/{chunk-L7RPNSAA.js → chunk-NO6E72RM.js} +2 -2
- package/dist/{chunk-UXGWAAGQ.js → chunk-OHTMTMFX.js} +4 -4
- package/dist/{chunk-XSUM3E67.js → chunk-OP2L7OXA.js} +3 -3
- package/dist/{chunk-UDRBQI5J.js → chunk-PMIW6OGQ.js} +10 -10
- package/dist/{chunk-YGX72FUQ.js → chunk-QRIE4JZE.js} +3 -3
- package/dist/{chunk-QBBZGVZJ.js → chunk-RCAMBC3H.js} +3 -3
- package/dist/{chunk-KDSKFXPE.js → chunk-RJZZFAXS.js} +1 -1
- package/dist/{chunk-LTMFHECB.js → chunk-S5U6RKQX.js} +20 -20
- package/dist/{chunk-W774NREK.js → chunk-SKAML7GB.js} +3 -3
- package/dist/{chunk-QTAADTIO.js → chunk-T6ALNN3H.js} +1 -1
- package/dist/{chunk-DUG3JXAT.js → chunk-UZIAZXXO.js} +1 -1
- package/dist/{chunk-LXOBWRVC.js → chunk-W246VXU4.js} +3 -3
- package/dist/{chunk-J2X5CTYY.js → chunk-WR2GRWK3.js} +1 -1
- package/dist/{chunk-QUOITPN7.js → chunk-WX2HW2G2.js} +8 -1
- package/dist/{chunk-HDLON3RJ.js → chunk-X7M73LKT.js} +9 -2
- package/dist/{chunk-4IB5WUY2.js → chunk-Y4WJ4BLX.js} +6 -6
- package/dist/{chunk-SJY6A6EH.js → chunk-Y7MF32DM.js} +36 -22
- package/dist/{chunk-FRETDGET.js → chunk-Z4LFCJT6.js} +3 -3
- package/dist/{claude-launcher-SGZSOGKZ.js → claude-launcher-LYGS66AC.js} +1 -1
- package/dist/{cli-6QN7TH6U.js → cli-7S4PEKAV.js} +114 -113
- package/dist/{command-6T6RI5XY.js → command-GQVFZHJ2.js} +27 -27
- package/dist/{config-CWYMIXTV.js → config-5NWSCHIO.js} +9 -9
- package/dist/{connect-cmd-MY6SR4OK.js → connect-cmd-HB3K3AHE.js} +6 -6
- package/dist/{container-start-FDXR4QND.js → container-start-WRD3YZQR.js} +33 -33
- package/dist/{context-show-cmd-WRTV3ACH.js → context-show-cmd-RJIQS2KF.js} +7 -7
- package/dist/{control-plane-launch-UM4IHOJQ.js → control-plane-launch-TS4DFJF4.js} +5 -5
- package/dist/{demo-record-cmd-XBWTORVM.js → demo-record-cmd-VVZGUCWB.js} +4 -4
- package/dist/{demo-voice-cmd-FLU4GDKS.js → demo-voice-cmd-3ADGIWK6.js} +13 -13
- package/dist/{dist-ADKRGE7I.js → dist-BUSLJNSZ.js} +1 -1
- package/dist/{docker-IUPWQ2RK.js → docker-5VGCFZV2.js} +7 -7
- package/dist/{doctor-5VNZ2BLY.js → doctor-N4I6IEKP.js} +28 -28
- package/dist/{emit-artifact-cmd-RDXIWRFU.js → emit-artifact-cmd-WJT7AXTZ.js} +11 -11
- package/dist/{emit-criteria-cmd-EDJOWGKL.js → emit-criteria-cmd-45IYB535.js} +8 -8
- package/dist/{emit-demo-cmd-W3BXFFU3.js → emit-demo-cmd-AIIQNPXS.js} +13 -13
- package/dist/{emit-finding-cmd-TMZIOQIP.js → emit-finding-cmd-6YTJK2NA.js} +8 -8
- package/dist/{emit-result-cmd-P55JBD2W.js → emit-result-cmd-TZGFY743.js} +10 -10
- package/dist/{emit-step-cmd-Y7LKI7L3.js → emit-step-cmd-LGBTIAXC.js} +8 -8
- package/dist/{exec-client-FB3OBHOJ.js → exec-client-LR67CA24.js} +3 -3
- package/dist/find-unit-YGDFVHVU.js +19 -0
- package/dist/{findings-cmd-D64BYS7Z.js → findings-cmd-ETJXUDQI.js} +8 -8
- package/dist/{fleet-readiness-75KQEZ6E.js → fleet-readiness-MYIMDBF7.js} +5 -5
- package/dist/{governing-source-YYEU46PP.js → governing-source-GBJTVMK2.js} +10 -10
- package/dist/{guest-init-SGF6ZVZN.js → guest-init-GXPOW53F.js} +4 -4
- package/dist/{hook-fast-XX5HZOCR.js → hook-fast-5WOGLR7V.js} +1 -1
- package/dist/{host-checks-VKBAGGWH.js → host-checks-33ZTDTSH.js} +31 -31
- package/dist/{pending-GEDI4K7P.js → host-key-GAZM4EOH.js} +3 -3
- package/dist/{image-tag-MRWNQGXA.js → image-tag-OYHGRHVV.js} +3 -3
- package/dist/index.js +4 -4
- package/dist/{init-B5S5LMIL.js → init-2YOAKLDN.js} +24 -24
- package/dist/{init-BB2TLXVB.js → init-OXCOPKHP.js} +24 -24
- package/dist/{init-cmd-I2Z4VZSG.js → init-cmd-BUWWUQKM.js} +11 -11
- package/dist/{init-update-TIZILQXL.js → init-update-TXQHBY3H.js} +9 -9
- package/dist/{install-cmd-X4OHS36T.js → install-cmd-VZGXSS73.js} +5 -5
- package/dist/{logs-BPEOYWRW.js → logs-42QPBCMC.js} +2 -2
- package/dist/{loop-XULUT5HL.js → loop-M3XDFD6O.js} +38 -38
- package/dist/{machine-UYFUUSEQ.js → machine-3BI2SGAK.js} +24 -24
- package/dist/{mcp-serve-cmd-NCPWJJDZ.js → mcp-serve-cmd-LYJQO6U4.js} +4 -4
- package/dist/{paths-WXGOFVCF.js → paths-QLFRPIKS.js} +2 -2
- package/dist/{host-key-CNCHVNDC.js → pending-6DDSCXUD.js} +3 -3
- package/dist/{pidfile-MYLBUG2I.js → pidfile-WLZ427QQ.js} +3 -3
- package/dist/{record-Y2JIOP56.js → record-WGCMQLQS.js} +3 -3
- package/dist/{runner-env-Y2PBG7TR.js → runner-env-6FSJOSWS.js} +11 -11
- package/dist/{runner-identity-PL442M57.js → runner-identity-XODZ7YBP.js} +7 -7
- package/dist/{runner-key-L6LXC4QA.js → runner-key-KMTC4NCQ.js} +24 -24
- package/dist/{session-sender-AXROAZSC.js → session-sender-U54EQJNR.js} +11 -11
- package/dist/{spec-cmd-JG4QLGGJ.js → spec-cmd-EM24GTAM.js} +9 -9
- package/dist/{status-VOGNQ3NG.js → status-WVCQCBDQ.js} +31 -31
- package/dist/{sync-cmd-B3KQZJZO.js → sync-cmd-Y5RKWVF7.js} +10 -10
- package/dist/{update-steps-RSYFLNTL.js → update-steps-2D4YQAW2.js} +32 -32
- package/dist/{watch-IHZRBUYV.js → watch-X5VYY4LH.js} +10 -10
- package/dist/{work-claim-cmd-YEMHNW3H.js → work-claim-cmd-IU3YJQKR.js} +15 -15
- package/dist/{work-cmd-OWZS3ZXL.js → work-cmd-LUKJHAMH.js} +8 -8
- package/dist/{work-comment-cmd-ESBYAE4K.js → work-comment-cmd-BDNFAVKL.js} +9 -9
- package/dist/{work-demo-cmd-FT3FQWM7.js → work-demo-cmd-GPDJHU6F.js} +8 -8
- package/dist/{work-logs-cmd-K6NTURGR.js → work-logs-cmd-B6EX4RPE.js} +8 -8
- package/dist/{work-open-pr-cmd-NGD4Z2TO.js → work-open-pr-cmd-TRXDCMSG.js} +9 -9
- package/dist/{work-pr-cmd-274YUPQB.js → work-pr-cmd-5GUR5SIU.js} +8 -8
- package/dist/{work-proofs-cmd-JLSQHVKO.js → work-proofs-cmd-5BYAAW3H.js} +9 -9
- package/dist/{work-proofs-record-AYUWUFBE.js → work-proofs-record-USD4JWFP.js} +16 -16
- package/dist/{work-stop-cmd-VQLLLJ3H.js → work-stop-cmd-J47GZB2N.js} +8 -8
- package/package.json +1 -1
- package/skill-pack/maintained/outerlayer-build/SKILL.md +15 -0
- package/dist/build-ZDYL7ZGP.js +0 -18
- package/dist/find-unit-R4I5GJCH.js +0 -19
|
@@ -1,24 +1,24 @@
|
|
|
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-PMIW6OGQ.js';
|
|
4
4
|
import './chunk-TZMDRHWB.js';
|
|
5
5
|
import './chunk-KT4CN6OU.js';
|
|
6
6
|
import './chunk-J7EJMIDR.js';
|
|
7
|
-
import { verifiedTrackerNames, TRACKERS } from './chunk-
|
|
7
|
+
import { verifiedTrackerNames, TRACKERS } from './chunk-6IMQXBTZ.js';
|
|
8
8
|
import './chunk-IP7BIBXJ.js';
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
9
|
+
import './chunk-EYJRVHBN.js';
|
|
10
|
+
import './chunk-NO6E72RM.js';
|
|
11
11
|
import './chunk-NWHU5G6R.js';
|
|
12
12
|
import './chunk-G2JWZDFA.js';
|
|
13
13
|
import { C, warnDeprecated, API_KEY_FLAG_DEPRECATION, NO_COLOR_FLAG, stripNoColor } from './chunk-ANPNT6PM.js';
|
|
14
|
-
import './chunk-
|
|
14
|
+
import './chunk-T6ALNN3H.js';
|
|
15
15
|
import './chunk-IXPH4EXK.js';
|
|
16
16
|
import { FIRST_VERSION_READING_AGENTS_SKILLS } from './chunk-LYCJQOO2.js';
|
|
17
17
|
import './chunk-LMYRR5MO.js';
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-62URQYCB.js';
|
|
19
19
|
import './chunk-PJDQPF5N.js';
|
|
20
|
-
import './chunk-
|
|
21
|
-
import { hookFiredMarkerPath, installedCliDistDir } from './chunk-
|
|
20
|
+
import './chunk-RJZZFAXS.js';
|
|
21
|
+
import { hookFiredMarkerPath, installedCliDistDir } from './chunk-4QQJTJUN.js';
|
|
22
22
|
import './chunk-ZJSNLVCE.js';
|
|
23
23
|
import './chunk-I7RZHMXW.js';
|
|
24
24
|
import './chunk-BKO6JEZI.js';
|
|
@@ -26,7 +26,7 @@ import './chunk-HCVLP7XA.js';
|
|
|
26
26
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
27
27
|
import './chunk-LASKTDCR.js';
|
|
28
28
|
import './chunk-OVNF4LLC.js';
|
|
29
|
-
import './chunk-
|
|
29
|
+
import './chunk-A6PJSNP6.js';
|
|
30
30
|
import './chunk-5BHIBJDA.js';
|
|
31
31
|
import './chunk-CDDED64E.js';
|
|
32
32
|
import { resolveVersion, resolvePackageVersion } from './chunk-RA3O54FC.js';
|
|
@@ -39,8 +39,8 @@ import { removeJournalHooks, removePreCommitGuardHook } from './chunk-TUSYOL2O.j
|
|
|
39
39
|
import './chunk-XFJ7YOPD.js';
|
|
40
40
|
import './chunk-DINRXUQA.js';
|
|
41
41
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
42
|
-
import './chunk-
|
|
43
|
-
import './chunk-
|
|
42
|
+
import './chunk-3VJYDWFV.js';
|
|
43
|
+
import './chunk-GMKDAF37.js';
|
|
44
44
|
import './chunk-MESOOLF4.js';
|
|
45
45
|
import './chunk-Z5GEFMRW.js';
|
|
46
46
|
import { EventEmitter } from 'events';
|
|
@@ -3799,8 +3799,8 @@ async function installMachineSkillsForSetup() {
|
|
|
3799
3799
|
` : "";
|
|
3800
3800
|
}
|
|
3801
3801
|
async function realConnectDepsForCwd() {
|
|
3802
|
-
const { realConnectDeps } = await import('./connect-cmd-
|
|
3803
|
-
const { resolveRepoIdentity } = await import('./dist-
|
|
3802
|
+
const { realConnectDeps } = await import('./connect-cmd-HB3K3AHE.js');
|
|
3803
|
+
const { resolveRepoIdentity } = await import('./dist-BUSLJNSZ.js');
|
|
3804
3804
|
return {
|
|
3805
3805
|
...realConnectDeps(),
|
|
3806
3806
|
home: homeFromEnv(),
|
|
@@ -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-TXQHBY3H.js');
|
|
3878
|
+
const { fleetReadiness } = await import('./fleet-readiness-MYIMDBF7.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-BUWWUQKM.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-BUWWUQKM.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-THDNZ5ME.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-HB3K3AHE.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-HB3K3AHE.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-Y5RKWVF7.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-X5VYY4LH.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-LR67CA24.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-U54EQJNR.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-GXPOW53F.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-MLB57JP6.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-TZGFY743.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-WJT7AXTZ.js');
|
|
4342
4342
|
let pr;
|
|
4343
4343
|
if (opts.pr !== void 0) {
|
|
4344
4344
|
pr = parseTrackerNumber(opts.pr);
|
|
@@ -4394,7 +4394,7 @@ its criterion, and the new record retires the old record. The id must be the ite
|
|
|
4394
4394
|
as \`work demo --item <n> --json\` prints it.
|
|
4395
4395
|
`
|
|
4396
4396
|
).action(async (manifest, opts) => {
|
|
4397
|
-
const { runEmitDemo, EmitDemoError } = await import('./emit-demo-cmd-
|
|
4397
|
+
const { runEmitDemo, EmitDemoError } = await import('./emit-demo-cmd-AIIQNPXS.js');
|
|
4398
4398
|
let item;
|
|
4399
4399
|
if (opts.item !== void 0) {
|
|
4400
4400
|
item = parseTrackerNumber(opts.item);
|
|
@@ -4437,7 +4437,7 @@ as \`work demo --item <n> --json\` prints it.
|
|
|
4437
4437
|
}
|
|
4438
4438
|
});
|
|
4439
4439
|
program2.command("demo-voice", { hidden: true }).description("Speak demo lines for a recorder: JSON lines in on stdin, out on stdout").action(async () => {
|
|
4440
|
-
const { runDemoVoice } = await import('./demo-voice-cmd-
|
|
4440
|
+
const { runDemoVoice } = await import('./demo-voice-cmd-3ADGIWK6.js');
|
|
4441
4441
|
await runDemoVoice();
|
|
4442
4442
|
});
|
|
4443
4443
|
const demoCmd = program2.command("demo").description("Record demos with the recorder this CLI carries");
|
|
@@ -4455,7 +4455,7 @@ and the command prints the manifest's path for \`emit demo\`. Under \`work proof
|
|
|
4455
4455
|
to OUTERLAYER_PROOF_OUT instead. Exit 1 means the demo's test failed; its manifest is written all the same.
|
|
4456
4456
|
`
|
|
4457
4457
|
).action(async (file, opts) => {
|
|
4458
|
-
const { runDemoRecord, DemoRecordError } = await import('./demo-record-cmd-
|
|
4458
|
+
const { runDemoRecord, DemoRecordError } = await import('./demo-record-cmd-VVZGUCWB.js');
|
|
4459
4459
|
try {
|
|
4460
4460
|
const result = await runDemoRecord({
|
|
4461
4461
|
file,
|
|
@@ -4504,7 +4504,7 @@ recent events with their ids. --find <text> searches all of them.
|
|
|
4504
4504
|
item that session was launched for is used automatically.
|
|
4505
4505
|
`
|
|
4506
4506
|
).action(async (opts) => {
|
|
4507
|
-
const { runEmitFinding, refuseRemovedFindingFlags, EmitFindingError } = await import('./emit-finding-cmd-
|
|
4507
|
+
const { runEmitFinding, refuseRemovedFindingFlags, EmitFindingError } = await import('./emit-finding-cmd-6YTJK2NA.js');
|
|
4508
4508
|
try {
|
|
4509
4509
|
refuseRemovedFindingFlags(opts);
|
|
4510
4510
|
const result = await runEmitFinding({
|
|
@@ -4571,7 +4571,7 @@ the whole batch. "untimed": true records one with no time on purpose.
|
|
|
4571
4571
|
that session was launched for is used automatically.
|
|
4572
4572
|
`
|
|
4573
4573
|
).action(async (file, opts) => {
|
|
4574
|
-
const { runEmitFindings, EmitFindingError } = await import('./emit-finding-cmd-
|
|
4574
|
+
const { runEmitFindings, EmitFindingError } = await import('./emit-finding-cmd-6YTJK2NA.js');
|
|
4575
4575
|
try {
|
|
4576
4576
|
const result = await runEmitFindings({
|
|
4577
4577
|
file,
|
|
@@ -4606,7 +4606,7 @@ command, the command exits 0, and \`sync\` sends it later. If the gateway refuse
|
|
|
4606
4606
|
the step, the command prints why and exits 1.
|
|
4607
4607
|
`
|
|
4608
4608
|
).action(async (name, opts) => {
|
|
4609
|
-
const { runEmitStep, EmitStepError } = await import('./emit-step-cmd-
|
|
4609
|
+
const { runEmitStep, EmitStepError } = await import('./emit-step-cmd-LGBTIAXC.js');
|
|
4610
4610
|
try {
|
|
4611
4611
|
await runEmitStep({
|
|
4612
4612
|
name,
|
|
@@ -4649,7 +4649,7 @@ of the item, and a (proof: <kind>) annotation names its proof.
|
|
|
4649
4649
|
${cliInvocation()} emit criteria acceptance/412-login.md --item 412
|
|
4650
4650
|
`
|
|
4651
4651
|
).action(async (file, opts) => {
|
|
4652
|
-
const { runEmitCriteria, EmitCriteriaError } = await import('./emit-criteria-cmd-
|
|
4652
|
+
const { runEmitCriteria, EmitCriteriaError } = await import('./emit-criteria-cmd-45IYB535.js');
|
|
4653
4653
|
try {
|
|
4654
4654
|
const result = await runEmitCriteria({
|
|
4655
4655
|
file,
|
|
@@ -4673,9 +4673,9 @@ function registerSpecCommands(program2) {
|
|
|
4673
4673
|
const specCmd = program2.command("spec").description("Find, file and edit the issue a spec lives in, in your factory's tracker");
|
|
4674
4674
|
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)");
|
|
4675
4675
|
const run = async (action) => {
|
|
4676
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4676
|
+
const { WorkCommandError } = await import('./work-cmd-LUKJHAMH.js');
|
|
4677
4677
|
try {
|
|
4678
|
-
await action(await import('./spec-cmd-
|
|
4678
|
+
await action(await import('./spec-cmd-EM24GTAM.js'));
|
|
4679
4679
|
} catch (err) {
|
|
4680
4680
|
if (err instanceof WorkCommandError) {
|
|
4681
4681
|
fail(err.message);
|
|
@@ -4710,7 +4710,7 @@ Prints each problem the item covers with its id, its reports and its result.
|
|
|
4710
4710
|
session was launched for is used.
|
|
4711
4711
|
`
|
|
4712
4712
|
).action(async (opts) => {
|
|
4713
|
-
const { runFindingsShow, FindingsCommandError } = await import('./findings-cmd-
|
|
4713
|
+
const { runFindingsShow, FindingsCommandError } = await import('./findings-cmd-ETJXUDQI.js');
|
|
4714
4714
|
try {
|
|
4715
4715
|
const result = await runFindingsShow({
|
|
4716
4716
|
item: opts.item,
|
|
@@ -4738,7 +4738,7 @@ Give exactly one of --fixed and --not-fixed, and a --note. Run it again for the
|
|
|
4738
4738
|
problem to replace the earlier result. A problem the item does not cover is refused.
|
|
4739
4739
|
`
|
|
4740
4740
|
).action(async (problem, opts) => {
|
|
4741
|
-
const { runFindingsResult, FindingsCommandError } = await import('./findings-cmd-
|
|
4741
|
+
const { runFindingsResult, FindingsCommandError } = await import('./findings-cmd-ETJXUDQI.js');
|
|
4742
4742
|
try {
|
|
4743
4743
|
const result = await runFindingsResult({
|
|
4744
4744
|
problem,
|
|
@@ -4780,7 +4780,7 @@ takes it, and prints the line that starts your session on it. That
|
|
|
4780
4780
|
session links itself and holds the item's lease while it works.
|
|
4781
4781
|
`
|
|
4782
4782
|
).action(async (opts) => {
|
|
4783
|
-
const { runWorkBuild, WorkCommandError } = await import('./work-cmd-
|
|
4783
|
+
const { runWorkBuild, WorkCommandError } = await import('./work-cmd-LUKJHAMH.js');
|
|
4784
4784
|
try {
|
|
4785
4785
|
await runWorkBuild(opts);
|
|
4786
4786
|
} catch (err) {
|
|
@@ -4803,7 +4803,7 @@ renews that session's own 20-minute lease, unless --no-lease or
|
|
|
4803
4803
|
--ended is given, or another worker already holds a live one.
|
|
4804
4804
|
`
|
|
4805
4805
|
).action(async (number, opts) => {
|
|
4806
|
-
const { runWorkLinkSession, WorkCommandError } = await import('./work-cmd-
|
|
4806
|
+
const { runWorkLinkSession, WorkCommandError } = await import('./work-cmd-LUKJHAMH.js');
|
|
4807
4807
|
try {
|
|
4808
4808
|
await runWorkLinkSession({ ...opts, number, noLease: opts.lease === false, logFailures: opts.logFailures === true });
|
|
4809
4809
|
} catch (err) {
|
|
@@ -4827,8 +4827,8 @@ criterion's new proof; --ready hands the thread back to a person. At
|
|
|
4827
4827
|
most one action flag may be given.
|
|
4828
4828
|
`
|
|
4829
4829
|
).action(async (opts) => {
|
|
4830
|
-
const { runWorkComment, WorkCommentCommandError } = await import('./work-comment-cmd-
|
|
4831
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4830
|
+
const { runWorkComment, WorkCommentCommandError } = await import('./work-comment-cmd-BDNFAVKL.js');
|
|
4831
|
+
const { WorkCommandError } = await import('./work-cmd-LUKJHAMH.js');
|
|
4832
4832
|
try {
|
|
4833
4833
|
await runWorkComment(opts);
|
|
4834
4834
|
} catch (err) {
|
|
@@ -4849,8 +4849,8 @@ criterion that carries proof or a comment, each with who is waiting
|
|
|
4849
4849
|
on whom next.
|
|
4850
4850
|
`
|
|
4851
4851
|
).action(async (opts) => {
|
|
4852
|
-
const { runWorkThreads, WorkCommentCommandError } = await import('./work-comment-cmd-
|
|
4853
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4852
|
+
const { runWorkThreads, WorkCommentCommandError } = await import('./work-comment-cmd-BDNFAVKL.js');
|
|
4853
|
+
const { WorkCommandError } = await import('./work-cmd-LUKJHAMH.js');
|
|
4854
4854
|
try {
|
|
4855
4855
|
await runWorkThreads(opts);
|
|
4856
4856
|
} catch (err) {
|
|
@@ -4874,8 +4874,8 @@ still running, or that an older runner released, has no log and the
|
|
|
4874
4874
|
command exits 1.
|
|
4875
4875
|
`
|
|
4876
4876
|
).action(async (opts) => {
|
|
4877
|
-
const { runWorkLogs, WorkLogsCommandError } = await import('./work-logs-cmd-
|
|
4878
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4877
|
+
const { runWorkLogs, WorkLogsCommandError } = await import('./work-logs-cmd-B6EX4RPE.js');
|
|
4878
|
+
const { WorkCommandError } = await import('./work-cmd-LUKJHAMH.js');
|
|
4879
4879
|
try {
|
|
4880
4880
|
await runWorkLogs(opts);
|
|
4881
4881
|
} catch (err) {
|
|
@@ -4898,8 +4898,8 @@ item is not built again until a new build request. Exits 1 when no host
|
|
|
4898
4898
|
build is running for the item.
|
|
4899
4899
|
`
|
|
4900
4900
|
).action(async (opts) => {
|
|
4901
|
-
const { runWorkStop, WorkStopCommandError } = await import('./work-stop-cmd-
|
|
4902
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4901
|
+
const { runWorkStop, WorkStopCommandError } = await import('./work-stop-cmd-J47GZB2N.js');
|
|
4902
|
+
const { WorkCommandError } = await import('./work-cmd-LUKJHAMH.js');
|
|
4903
4903
|
try {
|
|
4904
4904
|
await runWorkStop(opts);
|
|
4905
4905
|
} catch (err) {
|
|
@@ -4920,8 +4920,8 @@ Prints the item's newest live demo record: its artifact id, the commit it was re
|
|
|
4920
4920
|
test file that recorded it. With --json, prints { "demo": null } for an item with no demo.
|
|
4921
4921
|
`
|
|
4922
4922
|
).action(async (opts) => {
|
|
4923
|
-
const { runWorkDemo, WorkDemoCommandError } = await import('./work-demo-cmd-
|
|
4924
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4923
|
+
const { runWorkDemo, WorkDemoCommandError } = await import('./work-demo-cmd-GPDJHU6F.js');
|
|
4924
|
+
const { WorkCommandError } = await import('./work-cmd-LUKJHAMH.js');
|
|
4925
4925
|
try {
|
|
4926
4926
|
await runWorkDemo(opts);
|
|
4927
4927
|
} catch (err) {
|
|
@@ -4942,7 +4942,7 @@ deletes anything \u2014 the item is removed from Work only once no
|
|
|
4942
4942
|
live addition remains on it.
|
|
4943
4943
|
`
|
|
4944
4944
|
).action(async (opts) => {
|
|
4945
|
-
const { runWorkRemove, WorkCommandError } = await import('./work-cmd-
|
|
4945
|
+
const { runWorkRemove, WorkCommandError } = await import('./work-cmd-LUKJHAMH.js');
|
|
4946
4946
|
try {
|
|
4947
4947
|
await runWorkRemove(opts);
|
|
4948
4948
|
} catch (err) {
|
|
@@ -4954,7 +4954,7 @@ live addition remains on it.
|
|
|
4954
4954
|
}
|
|
4955
4955
|
});
|
|
4956
4956
|
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) => {
|
|
4957
|
-
const { runWorkStatus, WorkCommandError } = await import('./work-cmd-
|
|
4957
|
+
const { runWorkStatus, WorkCommandError } = await import('./work-cmd-LUKJHAMH.js');
|
|
4958
4958
|
try {
|
|
4959
4959
|
await runWorkStatus(opts);
|
|
4960
4960
|
} catch (err) {
|
|
@@ -4999,11 +4999,11 @@ differs from HEAD.
|
|
|
4999
4999
|
fail(trackerNumberError("--pr", opts.pr));
|
|
5000
5000
|
return;
|
|
5001
5001
|
}
|
|
5002
|
-
const { runWorkProofsCommand } = await import('./work-proofs-cmd-
|
|
5002
|
+
const { runWorkProofsCommand } = await import('./work-proofs-cmd-5BYAAW3H.js');
|
|
5003
5003
|
await runWorkProofsCommand({ ...opts, ...pr === void 0 ? {} : { pr } });
|
|
5004
5004
|
});
|
|
5005
5005
|
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) => {
|
|
5006
|
-
const { runWorkList, WorkCommandError } = await import('./work-cmd-
|
|
5006
|
+
const { runWorkList, WorkCommandError } = await import('./work-cmd-LUKJHAMH.js');
|
|
5007
5007
|
try {
|
|
5008
5008
|
await runWorkList(opts);
|
|
5009
5009
|
} catch (err) {
|
|
@@ -5024,7 +5024,7 @@ by a different key is refused; claiming again with the same key extends
|
|
|
5024
5024
|
it. --host is a label only.
|
|
5025
5025
|
`
|
|
5026
5026
|
).action(async (opts) => {
|
|
5027
|
-
const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-
|
|
5027
|
+
const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-IU3YJQKR.js');
|
|
5028
5028
|
try {
|
|
5029
5029
|
await runWorkClaim(opts);
|
|
5030
5030
|
} catch (err) {
|
|
@@ -5044,7 +5044,7 @@ Extends the live lease this API key holds. Refused with a 410 if the
|
|
|
5044
5044
|
lease has expired, or a 403 if a different key holds it.
|
|
5045
5045
|
`
|
|
5046
5046
|
).action(async (opts) => {
|
|
5047
|
-
const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-
|
|
5047
|
+
const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-IU3YJQKR.js');
|
|
5048
5048
|
try {
|
|
5049
5049
|
await runWorkRenew(opts);
|
|
5050
5050
|
} catch (err) {
|
|
@@ -5076,7 +5076,7 @@ applies to a host's lease only. A later tool call in the session
|
|
|
5076
5076
|
takes the lease again.
|
|
5077
5077
|
`
|
|
5078
5078
|
).action(async (opts) => {
|
|
5079
|
-
const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-
|
|
5079
|
+
const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-IU3YJQKR.js');
|
|
5080
5080
|
try {
|
|
5081
5081
|
await runWorkRelease(opts);
|
|
5082
5082
|
} catch (err) {
|
|
@@ -5103,7 +5103,7 @@ Idempotent: declaring the same pull request twice is a no-op.
|
|
|
5103
5103
|
needs your own login; an agent session or a factory key is refused.
|
|
5104
5104
|
`
|
|
5105
5105
|
).action(async (number, opts) => {
|
|
5106
|
-
const { runWorkPr, WorkPrCommandError } = await import('./work-pr-cmd-
|
|
5106
|
+
const { runWorkPr, WorkPrCommandError } = await import('./work-pr-cmd-5GUR5SIU.js');
|
|
5107
5107
|
try {
|
|
5108
5108
|
await runWorkPr({ ...opts, number });
|
|
5109
5109
|
} catch (err) {
|
|
@@ -5128,8 +5128,8 @@ login, then declares the pull request on the item, as \`work pr\` does.
|
|
|
5128
5128
|
Run it again after a change to the title or description.
|
|
5129
5129
|
`
|
|
5130
5130
|
).action(async (opts) => {
|
|
5131
|
-
const { runWorkOpenPr, WorkOpenPrCommandError } = await import('./work-open-pr-cmd-
|
|
5132
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
5131
|
+
const { runWorkOpenPr, WorkOpenPrCommandError } = await import('./work-open-pr-cmd-TRXDCMSG.js');
|
|
5132
|
+
const { WorkCommandError } = await import('./work-cmd-LUKJHAMH.js');
|
|
5133
5133
|
try {
|
|
5134
5134
|
await runWorkOpenPr(opts);
|
|
5135
5135
|
} catch (err) {
|
|
@@ -5145,9 +5145,9 @@ function registerRunnerCommands(program2) {
|
|
|
5145
5145
|
const runnerCmd = program2.command("runner").description("Take work from the implement and amend queues on this machine");
|
|
5146
5146
|
const configOption = "the cloud config file to run against (default: ~/.outerlayer/config.json)";
|
|
5147
5147
|
runnerCmd.command("start").description("Run the loop: claim work, run it, report, clean up, repeat").option("--config <path>", configOption).action(async (opts) => {
|
|
5148
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5149
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
5150
|
-
const { RunnerAlreadyRunningError } = await import('./pidfile-
|
|
5148
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-5NWSCHIO.js');
|
|
5149
|
+
const { start, RunnerStartError } = await import('./loop-M3XDFD6O.js');
|
|
5150
|
+
const { RunnerAlreadyRunningError } = await import('./pidfile-WLZ427QQ.js');
|
|
5151
5151
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5152
5152
|
try {
|
|
5153
5153
|
const { realUpdateDeps } = await import('./real-deps-QX5YH7FG.js');
|
|
@@ -5164,10 +5164,10 @@ function registerRunnerCommands(program2) {
|
|
|
5164
5164
|
"after",
|
|
5165
5165
|
"\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"
|
|
5166
5166
|
).action(async () => {
|
|
5167
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5168
|
-
const { containerStart } = await import('./container-start-
|
|
5169
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
5170
|
-
const { RunnerAlreadyRunningError } = await import('./pidfile-
|
|
5167
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-5NWSCHIO.js');
|
|
5168
|
+
const { containerStart } = await import('./container-start-WRD3YZQR.js');
|
|
5169
|
+
const { start, RunnerStartError } = await import('./loop-M3XDFD6O.js');
|
|
5170
|
+
const { RunnerAlreadyRunningError } = await import('./pidfile-WLZ427QQ.js');
|
|
5171
5171
|
try {
|
|
5172
5172
|
const result = await containerStart({
|
|
5173
5173
|
env: process.env,
|
|
@@ -5188,16 +5188,16 @@ function registerRunnerCommands(program2) {
|
|
|
5188
5188
|
"after",
|
|
5189
5189
|
"\nIn the runner image, run it with `docker exec <container> outerlayer runner update-steps`. It reads the\ncontainer with `docker inspect` and changes nothing. The steps rename the old container and never remove it\nbefore the new one runs. They name the container's variables and never print a value.\n"
|
|
5190
5190
|
).action(async (opts) => {
|
|
5191
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5192
|
-
const { runnerDir } = await import('./paths-
|
|
5193
|
-
const { runUpdateSteps } = await import('./update-steps-
|
|
5191
|
+
const { defaultRunnerConfigPath } = await import('./config-5NWSCHIO.js');
|
|
5192
|
+
const { runnerDir } = await import('./paths-QLFRPIKS.js');
|
|
5193
|
+
const { runUpdateSteps } = await import('./update-steps-2D4YQAW2.js');
|
|
5194
5194
|
const text = await runUpdateSteps({ runnerDirPath: runnerDir(opts.config ?? defaultRunnerConfigPath()) });
|
|
5195
5195
|
process.stdout.write(`${text}
|
|
5196
5196
|
`);
|
|
5197
5197
|
});
|
|
5198
5198
|
runnerCmd.command("check").description("Validate the config, the hooks and the key, and print the effective settings").option("--config <path>", configOption).action(async (opts) => {
|
|
5199
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5200
|
-
const { runRunnerCheck } = await import('./check-
|
|
5199
|
+
const { defaultRunnerConfigPath } = await import('./config-5NWSCHIO.js');
|
|
5200
|
+
const { runRunnerCheck } = await import('./check-IFHLERRX.js');
|
|
5201
5201
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5202
5202
|
const result = await runRunnerCheck(configPath);
|
|
5203
5203
|
if (!result.ok) {
|
|
@@ -5218,8 +5218,8 @@ function registerRunnerCommands(program2) {
|
|
|
5218
5218
|
`);
|
|
5219
5219
|
});
|
|
5220
5220
|
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").option("--build-memory-max <size>", "with --service, memory all builds may use together, such as 16g").option("--build-cpus-max <n>", "with --service, CPUs all builds may use together, such as 4").action(async (opts) => {
|
|
5221
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5222
|
-
const { runRunnerInstall, RunnerInstallError, launcherSummary, restartNote } = await import('./install-cmd-
|
|
5221
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-5NWSCHIO.js');
|
|
5222
|
+
const { runRunnerInstall, RunnerInstallError, launcherSummary, restartNote } = await import('./install-cmd-VZGXSS73.js');
|
|
5223
5223
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5224
5224
|
if (opts.service !== true) {
|
|
5225
5225
|
const names = { print: "print", user: "user", unitName: "unit-name", buildMemoryMax: "build-memory-max", buildCpusMax: "build-cpus-max" };
|
|
@@ -5231,13 +5231,13 @@ function registerRunnerCommands(program2) {
|
|
|
5231
5231
|
}
|
|
5232
5232
|
}
|
|
5233
5233
|
const buildCpusMax = opts.buildCpusMax === void 0 ? void 0 : Number(opts.buildCpusMax);
|
|
5234
|
-
if (buildCpusMax !== void 0 && !(await import('./command-
|
|
5234
|
+
if (buildCpusMax !== void 0 && !(await import('./command-GQVFZHJ2.js')).cpusAreValid(buildCpusMax)) {
|
|
5235
5235
|
fail(`--build-cpus-max ${opts.buildCpusMax} is not a number of CPUs from 0.01 to 1024.`);
|
|
5236
5236
|
return;
|
|
5237
5237
|
}
|
|
5238
5238
|
try {
|
|
5239
5239
|
if (opts.service === true) {
|
|
5240
|
-
const { installServiceCommand } = await import('./command-
|
|
5240
|
+
const { installServiceCommand } = await import('./command-GQVFZHJ2.js');
|
|
5241
5241
|
const result2 = await installServiceCommand({
|
|
5242
5242
|
configPath,
|
|
5243
5243
|
print: opts.print,
|
|
@@ -5294,8 +5294,8 @@ To keep it running, run ${C.yellow}${cliInvocation()} runner install --service${
|
|
|
5294
5294
|
fail(`pass --service: \`${cliInvocation()} runner uninstall --service\` removes the runner's service.`);
|
|
5295
5295
|
return;
|
|
5296
5296
|
}
|
|
5297
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5298
|
-
const { uninstallServiceCommand } = await import('./command-
|
|
5297
|
+
const { defaultRunnerConfigPath } = await import('./config-5NWSCHIO.js');
|
|
5298
|
+
const { uninstallServiceCommand } = await import('./command-GQVFZHJ2.js');
|
|
5299
5299
|
const result = await uninstallServiceCommand({ configPath: opts.config ?? defaultRunnerConfigPath(), unitName: opts.unitName, home: homeFromEnv() });
|
|
5300
5300
|
if (result.ok) for (const line of result.lines) process.stdout.write(`${C.green}\u2713${C.reset} ${line}
|
|
5301
5301
|
`);
|
|
@@ -5322,12 +5322,12 @@ already in claude.env is used.
|
|
|
5322
5322
|
printf '%s' "$CLAUDE_CODE_OAUTH_TOKEN" | ${cliInvocation()} runner init --agent claude --factory <org>/<factory>
|
|
5323
5323
|
`
|
|
5324
5324
|
).action(async (opts) => {
|
|
5325
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5326
|
-
const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-
|
|
5327
|
-
const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-
|
|
5328
|
-
const { detectMachine } = await import('./machine-
|
|
5329
|
-
const { chooseVm, runVmInit, VmInitError } = await import('./init-
|
|
5330
|
-
const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-
|
|
5325
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-5NWSCHIO.js');
|
|
5326
|
+
const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-OXCOPKHP.js');
|
|
5327
|
+
const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-KMTC4NCQ.js');
|
|
5328
|
+
const { detectMachine } = await import('./machine-3BI2SGAK.js');
|
|
5329
|
+
const { chooseVm, runVmInit, VmInitError } = await import('./init-2YOAKLDN.js');
|
|
5330
|
+
const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-6FSJOSWS.js');
|
|
5331
5331
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5332
5332
|
if (opts.agent !== void 0 && !isAgentName(opts.agent)) {
|
|
5333
5333
|
fail(`--agent ${opts.agent}: runner init writes commands for ${Object.keys(AGENT_COMMANDS).join(", ")}. For another agent, leave --agent out and edit runner.commands.`);
|
|
@@ -5358,7 +5358,7 @@ already in claude.env is used.
|
|
|
5358
5358
|
const chunks = [];
|
|
5359
5359
|
for await (const chunk of process.stdin) chunks.push(Buffer.from(chunk));
|
|
5360
5360
|
const result2 = runRunnerInit(configPath, { machine, configFromStdin: Buffer.concat(chunks).toString("utf8"), requireContainer: true });
|
|
5361
|
-
const { ensureHostKey: ensureHostKey2 } = await import('./host-key-
|
|
5361
|
+
const { ensureHostKey: ensureHostKey2 } = await import('./host-key-GAZM4EOH.js');
|
|
5362
5362
|
const hostKey2 = await ensureHostKey2(configPath);
|
|
5363
5363
|
process.stdout.write(`host key ${hostKey2.fingerprint}
|
|
5364
5364
|
hooks: ${result2.hooks}
|
|
@@ -5417,7 +5417,7 @@ hooks: ${result2.hooks}
|
|
|
5417
5417
|
const prepared = prepareRunnerInit(configPath, { machine, allowProcess, agent, credential, keyFromLogin: makeKey !== void 0 });
|
|
5418
5418
|
const created = makeKey === void 0 ? void 0 : await makeKey();
|
|
5419
5419
|
const result = writeRunnerInit(prepared, created);
|
|
5420
|
-
const { ensureHostKey } = await import('./host-key-
|
|
5420
|
+
const { ensureHostKey } = await import('./host-key-GAZM4EOH.js');
|
|
5421
5421
|
const hostKey = await ensureHostKey(configPath);
|
|
5422
5422
|
if (created !== void 0) {
|
|
5423
5423
|
process.stdout.write(`${C.green}\u2713${C.reset} saved the runner key in ${result.configPath}
|
|
@@ -5445,7 +5445,7 @@ ${C.yellow}${result.note}${C.reset}
|
|
|
5445
5445
|
To isolate builds in containers instead, run ${C.yellow}${cliInvocation()} runner init --vm${C.reset}.
|
|
5446
5446
|
`);
|
|
5447
5447
|
}
|
|
5448
|
-
const { runRunnerInstall, RunnerInstallError, RunnerDowngradeError, launcherSummary } = await import('./install-cmd-
|
|
5448
|
+
const { runRunnerInstall, RunnerInstallError, RunnerDowngradeError, launcherSummary } = await import('./install-cmd-VZGXSS73.js');
|
|
5449
5449
|
let installedLayout = false;
|
|
5450
5450
|
let noService = "it starts the runner from the install layout, which needs a CLI installed with npm";
|
|
5451
5451
|
try {
|
|
@@ -5477,7 +5477,7 @@ ${C.yellow}The runner will not update itself: ${installErr.message}${C.reset}
|
|
|
5477
5477
|
let serviceUp = false;
|
|
5478
5478
|
let restart;
|
|
5479
5479
|
if (installedLayout) {
|
|
5480
|
-
const { installServiceCommand } = await import('./command-
|
|
5480
|
+
const { installServiceCommand } = await import('./command-GQVFZHJ2.js');
|
|
5481
5481
|
const service = await installServiceCommand({
|
|
5482
5482
|
configPath,
|
|
5483
5483
|
entryPath: process.argv[1] ?? "",
|
|
@@ -5519,14 +5519,14 @@ Next:
|
|
|
5519
5519
|
});
|
|
5520
5520
|
runnerCmd.command("image").description("Build a repository's image from its governing repository's devcontainer").requiredOption("--repository <owner/name>", "the repository to build the image for").option("--remote <url>", "where to fetch from (default: the repository's GitHub URL)").option("--config <path>", configOption).option("--json", "machine-readable JSON output").addHelpText(
|
|
5521
5521
|
"after",
|
|
5522
|
-
"\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"
|
|
5522
|
+
"\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.\nA repository with no devcontainer file builds on the universal image the CLI pins by digest.\n"
|
|
5523
5523
|
).action(async (opts) => {
|
|
5524
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5525
|
-
const { buildRepositoryImage, RecipeError } = await import('./build-
|
|
5524
|
+
const { defaultRunnerConfigPath } = await import('./config-5NWSCHIO.js');
|
|
5525
|
+
const { baseLines, buildRepositoryImage, RecipeError } = await import('./build-25GDCEZ7.js');
|
|
5526
5526
|
const { currentCliBuild } = await import('./cli-build-K56DK4DS.js');
|
|
5527
|
-
const { createDockerHost } = await import('./docker-
|
|
5528
|
-
const { builderSpec } = await import('./builder-
|
|
5529
|
-
const { loadRunnerConfig } = await import('./config-
|
|
5527
|
+
const { createDockerHost } = await import('./docker-5VGCFZV2.js');
|
|
5528
|
+
const { builderSpec } = await import('./builder-OWDGC3VQ.js');
|
|
5529
|
+
const { loadRunnerConfig } = await import('./config-5NWSCHIO.js');
|
|
5530
5530
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5531
5531
|
const loaded = (() => {
|
|
5532
5532
|
try {
|
|
@@ -5537,11 +5537,11 @@ Next:
|
|
|
5537
5537
|
})();
|
|
5538
5538
|
const memory = loaded?.build?.memory ?? "8g";
|
|
5539
5539
|
try {
|
|
5540
|
-
const { ensureRunnerIdentity } = await import('./runner-identity-
|
|
5540
|
+
const { ensureRunnerIdentity } = await import('./runner-identity-XODZ7YBP.js');
|
|
5541
5541
|
await ensureRunnerIdentity(configPath, { log: (line) => console.error(line) }).catch((err) => {
|
|
5542
5542
|
console.error(`the runner's Docker identity could not be stored: ${err instanceof Error ? err.message : String(err)}`);
|
|
5543
5543
|
});
|
|
5544
|
-
const { imageTargetFor } = await import('./governing-source-
|
|
5544
|
+
const { imageTargetFor } = await import('./governing-source-GBJTVMK2.js');
|
|
5545
5545
|
const target = await imageTargetFor({ config: loaded, repository: opts.repository, fetchImpl: fetch });
|
|
5546
5546
|
if (!target.ok) {
|
|
5547
5547
|
if (opts.json) {
|
|
@@ -5576,6 +5576,7 @@ Next:
|
|
|
5576
5576
|
`);
|
|
5577
5577
|
process.stdout.write(` recipe: ${report.recipe} at ${report.sourceCommit.slice(0, 12)} on ${report.defaultBranch}
|
|
5578
5578
|
`);
|
|
5579
|
+
for (const line of baseLines(report)) process.stdout.write(line);
|
|
5579
5580
|
if (result.checkedCommit !== report.sourceCommit) {
|
|
5580
5581
|
process.stdout.write(` checked: ${result.checkedCommit.slice(0, 12)}, the recipe has not changed since
|
|
5581
5582
|
`);
|
|
@@ -5604,25 +5605,25 @@ Next:
|
|
|
5604
5605
|
}
|
|
5605
5606
|
});
|
|
5606
5607
|
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) => {
|
|
5607
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5608
|
-
const { requestStop } = await import('./loop-
|
|
5608
|
+
const { defaultRunnerConfigPath } = await import('./config-5NWSCHIO.js');
|
|
5609
|
+
const { requestStop } = await import('./loop-M3XDFD6O.js');
|
|
5609
5610
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5610
|
-
const { runnerImageVersion } = await import('./image-tag-
|
|
5611
|
+
const { runnerImageVersion } = await import('./image-tag-OYHGRHVV.js');
|
|
5611
5612
|
await requestStop(configPath, Boolean(opts.now), void 0, { image: runnerImageVersion() !== void 0 });
|
|
5612
5613
|
});
|
|
5613
5614
|
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) => {
|
|
5614
|
-
const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-
|
|
5615
|
-
const { jobsDir, runnerDir } = await import('./paths-
|
|
5616
|
-
const { listJobFiles, runnerProcessState } = await import('./loop-
|
|
5617
|
-
const { renderStatus } = await import('./status-
|
|
5618
|
-
const { readHousekeepingRecord } = await import('./record-
|
|
5615
|
+
const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-5NWSCHIO.js');
|
|
5616
|
+
const { jobsDir, runnerDir } = await import('./paths-QLFRPIKS.js');
|
|
5617
|
+
const { listJobFiles, runnerProcessState } = await import('./loop-M3XDFD6O.js');
|
|
5618
|
+
const { renderStatus } = await import('./status-WVCQCBDQ.js');
|
|
5619
|
+
const { readHousekeepingRecord } = await import('./record-WGCMQLQS.js');
|
|
5619
5620
|
const path2 = await import('path');
|
|
5620
5621
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5621
5622
|
const all = listJobFiles(configPath);
|
|
5622
5623
|
const housekeeping = readHousekeepingRecord(runnerDir(configPath));
|
|
5623
|
-
const { readPendingUpdate } = await import('./pending-
|
|
5624
|
+
const { readPendingUpdate } = await import('./pending-6DDSCXUD.js');
|
|
5624
5625
|
const pendingUpdate = readPendingUpdate(runnerDir(configPath));
|
|
5625
|
-
const { readImageStatus } = await import('./image-tag-
|
|
5626
|
+
const { readImageStatus } = await import('./image-tag-OYHGRHVV.js');
|
|
5626
5627
|
const image = readImageStatus(runnerDir(configPath));
|
|
5627
5628
|
let host = "unknown";
|
|
5628
5629
|
let concurrency = 1;
|
|
@@ -5635,7 +5636,7 @@ Next:
|
|
|
5635
5636
|
const processState = runnerProcessState(configPath);
|
|
5636
5637
|
const service = await (async () => {
|
|
5637
5638
|
if (process.platform !== "linux" || !existsSync("/run/systemd/system")) return void 0;
|
|
5638
|
-
const { inspectRunnerService } = await import('./find-unit-
|
|
5639
|
+
const { inspectRunnerService } = await import('./find-unit-YGDFVHVU.js');
|
|
5639
5640
|
const facts = inspectRunnerService(configPath);
|
|
5640
5641
|
return facts === void 0 ? void 0 : { unit: facts.unit, running: facts.mainPid !== void 0, delegated: facts.delegate };
|
|
5641
5642
|
})();
|
|
@@ -5672,9 +5673,9 @@ Next:
|
|
|
5672
5673
|
);
|
|
5673
5674
|
});
|
|
5674
5675
|
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) => {
|
|
5675
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5676
|
-
const { listJobFiles } = await import('./loop-
|
|
5677
|
-
const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-
|
|
5676
|
+
const { defaultRunnerConfigPath } = await import('./config-5NWSCHIO.js');
|
|
5677
|
+
const { listJobFiles } = await import('./loop-M3XDFD6O.js');
|
|
5678
|
+
const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-42QPBCMC.js');
|
|
5678
5679
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5679
5680
|
const item = parseTrackerNumber(itemArg);
|
|
5680
5681
|
if (item === void 0) {
|
|
@@ -5905,7 +5906,7 @@ caller from the bearer token, the gateway answers 401 without that header.
|
|
|
5905
5906
|
"after",
|
|
5906
5907
|
"\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"
|
|
5907
5908
|
).action(async (opts) => {
|
|
5908
|
-
const { runMcpServe, handleMcpServeError } = await import('./mcp-serve-cmd-
|
|
5909
|
+
const { runMcpServe, handleMcpServeError } = await import('./mcp-serve-cmd-LYJQO6U4.js');
|
|
5909
5910
|
try {
|
|
5910
5911
|
await runMcpServe({ url: opts.url, appId: opts.appId });
|
|
5911
5912
|
} catch (err) {
|
|
@@ -5926,7 +5927,7 @@ would get, the instruction files and the names of the skills. It warns when the
|
|
|
5926
5927
|
no \`build\`. It needs the context-read permission: a login or a factory key with it is enough.
|
|
5927
5928
|
`
|
|
5928
5929
|
).action(async (opts) => {
|
|
5929
|
-
const { runContextShow, ContextShowError } = await import('./context-show-cmd-
|
|
5930
|
+
const { runContextShow, ContextShowError } = await import('./context-show-cmd-RJIQS2KF.js');
|
|
5930
5931
|
try {
|
|
5931
5932
|
const result = await runContextShow({ repo: opts.repo, json: opts.json, url: opts.url, apiKey: opts.apiKey, appId: opts.appId });
|
|
5932
5933
|
process.stdout.write(result.output);
|