@outerlayer/cli 0.34.0-next.20261026145838 → 0.34.0-next.20261026182624
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/{agent-setup-FNDKCPUP.js → agent-setup-WOEZELVB.js} +6 -6
- package/dist/{bridge-YJBB4YA3.js → bridge-F5FBQSPZ.js} +2 -2
- package/dist/{build-ZJK6CPNH.js → build-UDOBVX5J.js} +7 -7
- package/dist/{build-disk-7HS4UF7O.js → build-disk-C3WIAHCL.js} +6 -6
- package/dist/build-info.json +1 -1
- package/dist/{builder-MHZKDI4H.js → builder-YNXWVH2V.js} +5 -5
- package/dist/{check-4W4QUBMP.js → check-G2K76NEM.js} +39 -38
- package/dist/{chunk-2ILU7UAU.js → chunk-3VZTNXK5.js} +1 -1
- package/dist/{chunk-4YFMNF5Y.js → chunk-4J2FF5HZ.js} +3 -3
- package/dist/{chunk-CAQCDYKF.js → chunk-5JGPTYLT.js} +2 -2
- package/dist/chunk-6D7H5DMZ.js +152 -0
- package/dist/{chunk-OGPEHSNW.js → chunk-6KFJIU73.js} +1 -1
- package/dist/{chunk-3EJBI5JW.js → chunk-7FQYTM7M.js} +1 -1
- package/dist/{chunk-3N77LUQI.js → chunk-7QAJQDHS.js} +1 -1
- package/dist/{chunk-SI6WDF3U.js → chunk-CFFVCI2I.js} +1 -1
- package/dist/{chunk-7P3H4RY2.js → chunk-CNZRUVZ5.js} +102 -36
- package/dist/{chunk-WMNPKBX5.js → chunk-ELO5XEES.js} +4 -4
- package/dist/{chunk-PP6OX4OT.js → chunk-EPFFYDNX.js} +5 -5
- package/dist/{chunk-CY5TCVBS.js → chunk-ERTIEYDG.js} +6 -6
- package/dist/{chunk-35JMYSUD.js → chunk-EUQZAH2W.js} +2 -2
- package/dist/{chunk-WHDS6MEG.js → chunk-GHFI5GBF.js} +3 -3
- package/dist/{chunk-PXGU3GKY.js → chunk-GJ4KBHBD.js} +1 -1
- package/dist/chunk-GYVMMU3U.js +321 -0
- package/dist/{chunk-VVOSUGEF.js → chunk-H47VGSCW.js} +4 -4
- package/dist/{chunk-TFPNPS4Q.js → chunk-HOUFCUMH.js} +1 -1
- package/dist/{chunk-7JE2WFNK.js → chunk-HVPW272H.js} +3 -3
- package/dist/{chunk-M3ME6TLQ.js → chunk-HVQMIZ22.js} +4 -4
- package/dist/{chunk-7DXVL7TN.js → chunk-IO2BBKG4.js} +3 -3
- package/dist/{chunk-UONH72CJ.js → chunk-IWVGALDC.js} +2 -2
- package/dist/{chunk-ZP7GKJSM.js → chunk-JC6AQ6PC.js} +39 -6
- package/dist/{chunk-6JZXIWX7.js → chunk-JKNOJKVD.js} +34 -9
- package/dist/{chunk-GEQT3RPN.js → chunk-JSZRBQY3.js} +3 -3
- package/dist/{chunk-MOI2KDLH.js → chunk-L5VHGRQE.js} +1 -1
- package/dist/{chunk-SKVA4KWD.js → chunk-LD3BHLK7.js} +3 -3
- package/dist/{chunk-YNMVVQOQ.js → chunk-LQHCNXPK.js} +1 -1
- package/dist/{chunk-PWSUNS6Y.js → chunk-LTN2YFLR.js} +99 -31
- package/dist/{chunk-YHKU2NOZ.js → chunk-LTYBHCL4.js} +1 -1
- package/dist/{chunk-PAK5P2ND.js → chunk-MH6QLXUO.js} +1 -1
- package/dist/{chunk-OS7DJOQJ.js → chunk-MN3PP45X.js} +1 -1
- package/dist/{chunk-25GRRBTH.js → chunk-NHEU5CON.js} +1 -1
- package/dist/{chunk-IM6IL3F4.js → chunk-OQT7RT5I.js} +3 -3
- package/dist/{chunk-KRTD2F3I.js → chunk-P3CHDKXD.js} +3 -3
- package/dist/{chunk-63IVRRIO.js → chunk-P3NPTFLF.js} +3 -3
- package/dist/{chunk-GC5PVMIJ.js → chunk-RR3VDM7M.js} +3 -3
- package/dist/{chunk-G4W4B33M.js → chunk-SDAEXUIX.js} +25 -10
- package/dist/{chunk-SYVRBBLW.js → chunk-SDELQEG4.js} +1 -1
- package/dist/{chunk-AE3OTPUU.js → chunk-SZU4YCBH.js} +964 -1056
- package/dist/{chunk-FDJPDZSR.js → chunk-TS3EFB7S.js} +1 -1
- package/dist/{chunk-EMH2LNIE.js → chunk-V2VJYK46.js} +4 -4
- package/dist/{chunk-KAVZAB3E.js → chunk-VEJWLQ4G.js} +10 -10
- package/dist/{chunk-XTYYF6P7.js → chunk-VUQKGBIQ.js} +14 -7
- package/dist/{chunk-3RLKILPT.js → chunk-WE4C3ODP.js} +2 -2
- package/dist/{chunk-QEIA5Q35.js → chunk-XL2MPORM.js} +4 -4
- package/dist/{chunk-VGRCZE6U.js → chunk-XSFR76J7.js} +3 -3
- package/dist/{chunk-UMYYYF7B.js → chunk-YL3RWW7X.js} +1 -1
- package/dist/{chunk-GSSVJNP2.js → chunk-Z7WMU3RA.js} +3 -2
- package/dist/{chunk-3EHDZTRT.js → chunk-ZIKZZ4LK.js} +3 -3
- package/dist/{claude-launcher-OQZNW7XJ.js → claude-launcher-6KGANL7E.js} +1 -1
- package/dist/{cli-PFWJD5QM.js → cli-5KY3TE3S.js} +114 -112
- package/dist/{command-CM22HPN5.js → command-VQPQDPCZ.js} +24 -24
- package/dist/{config-W2XWNR4C.js → config-WSZIWPP4.js} +7 -7
- package/dist/{connect-cmd-TOWE4P45.js → connect-cmd-LI34HS5Q.js} +6 -6
- package/dist/{container-start-D2OEPMUO.js → container-start-XRR4VC5Z.js} +31 -30
- package/dist/{context-show-cmd-5UJUWBJL.js → context-show-cmd-X27GMOT6.js} +7 -7
- package/dist/{control-plane-launch-XBGHM7DB.js → control-plane-launch-74EIIB5Z.js} +5 -5
- package/dist/dist-HVXLUMRV.js +7 -0
- package/dist/{docker-GA63DVME.js → docker-KZ3OQTPW.js} +5 -5
- package/dist/{doctor-GVWQBHBC.js → doctor-KPKLFIJH.js} +24 -24
- package/dist/{emit-artifact-cmd-TUOLSGHB.js → emit-artifact-cmd-BJICHW2E.js} +11 -11
- package/dist/{emit-criteria-cmd-VEUMA7MZ.js → emit-criteria-cmd-MUWPT25P.js} +8 -8
- package/dist/{emit-demo-cmd-YLEZB6FG.js → emit-demo-cmd-YQN7VKQH.js} +12 -12
- package/dist/{emit-finding-cmd-BX3FWGSX.js → emit-finding-cmd-NPBWVY44.js} +8 -8
- package/dist/{emit-result-cmd-AYXGCIPR.js → emit-result-cmd-7CJZZQGK.js} +10 -10
- package/dist/{emit-step-cmd-CU6GQ3WW.js → emit-step-cmd-ZPLHZAMA.js} +8 -8
- package/dist/{exec-client-QB4OZRGM.js → exec-client-LXHTMVIB.js} +3 -3
- package/dist/find-unit-UKH6JH4S.js +18 -0
- package/dist/{findings-cmd-G4V4M3PO.js → findings-cmd-DZ4ESTHX.js} +8 -8
- package/dist/{fleet-readiness-NJYTQYTA.js → fleet-readiness-YSI4NOHT.js} +5 -5
- package/dist/{governing-source-JQV3ZKD7.js → governing-source-JPRMOB3O.js} +10 -10
- package/dist/{guest-init-IF5LXGUL.js → guest-init-WWL2WL7R.js} +4 -4
- package/dist/{hook-fast-GPUL7T77.js → hook-fast-6EW2MGA2.js} +1 -1
- package/dist/host-checks-NDXNYOMA.js +75 -0
- package/dist/{pending-ERXWVLLG.js → host-key-TSOKVSZX.js} +3 -3
- package/dist/{image-tag-SEMBVB5D.js → image-tag-BTXKIH73.js} +3 -3
- package/dist/index.js +4 -4
- package/dist/{init-FY3HP73H.js → init-MN3MNG7V.js} +21 -21
- package/dist/{init-3NT4YX2X.js → init-V6Y2VNKW.js} +21 -21
- package/dist/{init-cmd-RXHHEAOT.js → init-cmd-QCWLJDIF.js} +11 -11
- package/dist/{init-update-RHS6HWLI.js → init-update-GTFLPDEL.js} +9 -9
- package/dist/{install-cmd-5H6M2KJ7.js → install-cmd-RGO7NWKP.js} +5 -5
- package/dist/{logs-6CMB3DO6.js → logs-LEVH6VAI.js} +2 -2
- package/dist/{loop-V3GED2WX.js → loop-NGFNQF3Y.js} +38 -37
- package/dist/{machine-HLZLH327.js → machine-XG54XYYZ.js} +21 -21
- package/dist/{mcp-serve-cmd-MWGIN6YL.js → mcp-serve-cmd-4O5INM77.js} +4 -4
- package/dist/{paths-T2DEBI62.js → paths-AQ47ZRHK.js} +2 -2
- package/dist/{host-key-5RU322O3.js → pending-UWFDVFOA.js} +3 -3
- package/dist/{pidfile-EAD2OEM7.js → pidfile-PCG2H5T4.js} +3 -3
- package/dist/{record-IMXQNHPB.js → record-SVCNFCGQ.js} +3 -3
- package/dist/{runner-env-V52JUOD5.js → runner-env-YPXWTNP3.js} +9 -9
- package/dist/{runner-identity-J4NCBSBU.js → runner-identity-XPZO3TG4.js} +5 -5
- package/dist/{runner-key-ZUHMQCHZ.js → runner-key-B5EJH25Z.js} +21 -21
- package/dist/{session-sender-XDKMK4SF.js → session-sender-XED7CKHP.js} +11 -11
- package/dist/{spec-cmd-XQV7EIJW.js → spec-cmd-TRXAGQYM.js} +9 -9
- package/dist/{status-ZJJEJ52D.js → status-WQ53MWC3.js} +29 -28
- package/dist/{sync-cmd-BG2M536W.js → sync-cmd-UQVENF25.js} +10 -10
- package/dist/{update-steps-I5JLERXS.js → update-steps-IQVAL64Y.js} +30 -29
- package/dist/{watch-7A63565I.js → watch-EZGDDRTQ.js} +10 -10
- package/dist/{work-claim-cmd-OVPMBIRR.js → work-claim-cmd-YSAJ7DAK.js} +14 -14
- package/dist/{work-cmd-KVFRK24I.js → work-cmd-V5FHLWJM.js} +8 -8
- package/dist/{work-comment-cmd-GC3WAFM7.js → work-comment-cmd-KLEMDYI4.js} +9 -9
- package/dist/{work-demo-cmd-IOB5UDGQ.js → work-demo-cmd-XYRKFP4G.js} +8 -8
- package/dist/{work-logs-cmd-7II6D2JJ.js → work-logs-cmd-DOGPK7Q6.js} +8 -8
- package/dist/{work-open-pr-cmd-FYKRKCDL.js → work-open-pr-cmd-UAUEEP3V.js} +9 -9
- package/dist/{work-pr-cmd-KP3RI7TV.js → work-pr-cmd-LYWL7ZLF.js} +8 -8
- package/dist/{work-proofs-cmd-TVU6QFZN.js → work-proofs-cmd-YMMDAA6W.js} +11 -9
- package/dist/{work-proofs-record-XANZE3K4.js → work-proofs-record-NUCWR7ZJ.js} +17 -15
- package/dist/{work-stop-cmd-5V3DV3HJ.js → work-stop-cmd-MRLJEQRP.js} +8 -8
- package/package.json +1 -1
- package/skill-pack/maintained/outerlayer-amend/SKILL.md +2 -1
- package/skill-pack/maintained/outerlayer-build/SKILL.md +3 -1
- package/skill-pack/maintained/outerlayer-build/references/evidence.md +9 -3
- package/dist/chunk-YZ375YBI.js +0 -151
- package/dist/dist-IOPJIQWK.js +0 -7
- package/dist/find-unit-GGBRYOSO.js +0 -18
|
@@ -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-VEJWLQ4G.js';
|
|
4
4
|
import './chunk-XKJOIQ2Q.js';
|
|
5
5
|
import './chunk-KT4CN6OU.js';
|
|
6
6
|
import './chunk-4P6QGMPN.js';
|
|
7
|
-
import { verifiedTrackerNames, TRACKERS } from './chunk-
|
|
7
|
+
import { verifiedTrackerNames, TRACKERS } from './chunk-JKNOJKVD.js';
|
|
8
8
|
import './chunk-IP7BIBXJ.js';
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
9
|
+
import './chunk-IO2BBKG4.js';
|
|
10
|
+
import './chunk-EUQZAH2W.js';
|
|
11
11
|
import './chunk-Y5YCX6AL.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-LTYBHCL4.js';
|
|
15
15
|
import './chunk-MECW77XP.js';
|
|
16
16
|
import { FIRST_VERSION_READING_AGENTS_SKILLS } from './chunk-NKOM4JKY.js';
|
|
17
17
|
import './chunk-JWNH4ZTF.js';
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-7QAJQDHS.js';
|
|
19
19
|
import './chunk-PJDQPF5N.js';
|
|
20
|
-
import './chunk-
|
|
21
|
-
import { hookFiredMarkerPath, installedCliDistDir } from './chunk-
|
|
20
|
+
import './chunk-L5VHGRQE.js';
|
|
21
|
+
import { hookFiredMarkerPath, installedCliDistDir } from './chunk-NHEU5CON.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-RCRE42V6.js';
|
|
28
28
|
import './chunk-ZQSANKS4.js';
|
|
29
|
-
import './chunk-
|
|
29
|
+
import './chunk-Z7WMU3RA.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-FGXT5OXS.js';
|
|
40
40
|
import './chunk-EOTMDIYC.js';
|
|
41
41
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
42
|
-
import './chunk-
|
|
43
|
-
import './chunk-
|
|
42
|
+
import './chunk-GJ4KBHBD.js';
|
|
43
|
+
import './chunk-SDAEXUIX.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-LI34HS5Q.js');
|
|
3803
|
+
const { resolveRepoIdentity } = await import('./dist-HVXLUMRV.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-GTFLPDEL.js');
|
|
3878
|
+
const { fleetReadiness } = await import('./fleet-readiness-YSI4NOHT.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-QCWLJDIF.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-QCWLJDIF.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-WOEZELVB.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-LI34HS5Q.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-LI34HS5Q.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-UQVENF25.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-EZGDDRTQ.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-LXHTMVIB.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-XED7CKHP.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-WWL2WL7R.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-F5FBQSPZ.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-7CJZZQGK.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-BJICHW2E.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-YQN7VKQH.js');
|
|
4398
4398
|
let item;
|
|
4399
4399
|
if (opts.item !== void 0) {
|
|
4400
4400
|
item = parseTrackerNumber(opts.item);
|
|
@@ -4464,7 +4464,7 @@ recent events with their ids. --find <text> searches all of them.
|
|
|
4464
4464
|
item that session was launched for is used automatically.
|
|
4465
4465
|
`
|
|
4466
4466
|
).action(async (opts) => {
|
|
4467
|
-
const { runEmitFinding, refuseRemovedFindingFlags, EmitFindingError } = await import('./emit-finding-cmd-
|
|
4467
|
+
const { runEmitFinding, refuseRemovedFindingFlags, EmitFindingError } = await import('./emit-finding-cmd-NPBWVY44.js');
|
|
4468
4468
|
try {
|
|
4469
4469
|
refuseRemovedFindingFlags(opts);
|
|
4470
4470
|
const result = await runEmitFinding({
|
|
@@ -4531,7 +4531,7 @@ the whole batch. "untimed": true records one with no time on purpose.
|
|
|
4531
4531
|
that session was launched for is used automatically.
|
|
4532
4532
|
`
|
|
4533
4533
|
).action(async (file, opts) => {
|
|
4534
|
-
const { runEmitFindings, EmitFindingError } = await import('./emit-finding-cmd-
|
|
4534
|
+
const { runEmitFindings, EmitFindingError } = await import('./emit-finding-cmd-NPBWVY44.js');
|
|
4535
4535
|
try {
|
|
4536
4536
|
const result = await runEmitFindings({
|
|
4537
4537
|
file,
|
|
@@ -4566,7 +4566,7 @@ command, the command exits 0, and \`sync\` sends it later. If the gateway refuse
|
|
|
4566
4566
|
the step, the command prints why and exits 1.
|
|
4567
4567
|
`
|
|
4568
4568
|
).action(async (name, opts) => {
|
|
4569
|
-
const { runEmitStep, EmitStepError } = await import('./emit-step-cmd-
|
|
4569
|
+
const { runEmitStep, EmitStepError } = await import('./emit-step-cmd-ZPLHZAMA.js');
|
|
4570
4570
|
try {
|
|
4571
4571
|
await runEmitStep({
|
|
4572
4572
|
name,
|
|
@@ -4609,7 +4609,7 @@ of the item, and a (proof: <kind>) annotation names its proof.
|
|
|
4609
4609
|
${cliInvocation()} emit criteria acceptance/412-login.md --item 412
|
|
4610
4610
|
`
|
|
4611
4611
|
).action(async (file, opts) => {
|
|
4612
|
-
const { runEmitCriteria, EmitCriteriaError } = await import('./emit-criteria-cmd-
|
|
4612
|
+
const { runEmitCriteria, EmitCriteriaError } = await import('./emit-criteria-cmd-MUWPT25P.js');
|
|
4613
4613
|
try {
|
|
4614
4614
|
const result = await runEmitCriteria({
|
|
4615
4615
|
file,
|
|
@@ -4633,9 +4633,9 @@ function registerSpecCommands(program2) {
|
|
|
4633
4633
|
const specCmd = program2.command("spec").description("Find, file and edit the issue a spec lives in, in your factory's tracker");
|
|
4634
4634
|
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)");
|
|
4635
4635
|
const run = async (action) => {
|
|
4636
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4636
|
+
const { WorkCommandError } = await import('./work-cmd-V5FHLWJM.js');
|
|
4637
4637
|
try {
|
|
4638
|
-
await action(await import('./spec-cmd-
|
|
4638
|
+
await action(await import('./spec-cmd-TRXAGQYM.js'));
|
|
4639
4639
|
} catch (err) {
|
|
4640
4640
|
if (err instanceof WorkCommandError) {
|
|
4641
4641
|
fail(err.message);
|
|
@@ -4670,7 +4670,7 @@ Prints each problem the item covers with its id, its reports and its result.
|
|
|
4670
4670
|
session was launched for is used.
|
|
4671
4671
|
`
|
|
4672
4672
|
).action(async (opts) => {
|
|
4673
|
-
const { runFindingsShow, FindingsCommandError } = await import('./findings-cmd-
|
|
4673
|
+
const { runFindingsShow, FindingsCommandError } = await import('./findings-cmd-DZ4ESTHX.js');
|
|
4674
4674
|
try {
|
|
4675
4675
|
const result = await runFindingsShow({
|
|
4676
4676
|
item: opts.item,
|
|
@@ -4698,7 +4698,7 @@ Give exactly one of --fixed and --not-fixed, and a --note. Run it again for the
|
|
|
4698
4698
|
problem to replace the earlier result. A problem the item does not cover is refused.
|
|
4699
4699
|
`
|
|
4700
4700
|
).action(async (problem, opts) => {
|
|
4701
|
-
const { runFindingsResult, FindingsCommandError } = await import('./findings-cmd-
|
|
4701
|
+
const { runFindingsResult, FindingsCommandError } = await import('./findings-cmd-DZ4ESTHX.js');
|
|
4702
4702
|
try {
|
|
4703
4703
|
const result = await runFindingsResult({
|
|
4704
4704
|
problem,
|
|
@@ -4721,12 +4721,13 @@ problem to replace the earlier result. A problem the item does not cover is refu
|
|
|
4721
4721
|
}
|
|
4722
4722
|
});
|
|
4723
4723
|
const workCmd = program2.command("work").description("Start, remove, or read what the factory is working on (the Work page)");
|
|
4724
|
-
workCmd.command("build").description("Start work on an item: a host builds it, or with --local you do").option("--issue <number>", "issue number, or a Linear/Jira key like ENG-123 (adds it to Work first)").option(TRACKER_OPTION_FLAG, "tracker for a keyed --issue \u2014 required if more than one is connected").option("--item <number>", "the item's own number inside this factory \u2014 must already exist").option("--local", "you build it in a session you start; no host takes it").option("--repo <owner/name>", "repository \u2014 the checkout's remote for a number, never guessed for a key").option("--note <text>", "a short note for people to read; the agent never sees it").option("--instructions <text>", "text the build's agent receives, up to 2000 characters; not with --local").option("--session-id <id>", "session id to record as-is, skipping detection").option("--retry <count>", "retries after a gateway answer worth trying again").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)").addHelpText(
|
|
4724
|
+
workCmd.command("build").description("Start work on an item: a host builds it, or with --local you do").option("--issue <number>", "issue number, or a Linear/Jira key like ENG-123 (adds it to Work first)").option(TRACKER_OPTION_FLAG, "tracker for a keyed --issue \u2014 required if more than one is connected").option("--item <number>", "the item's own number inside this factory \u2014 must already exist").option("--local", "you build it in a session you start; no host takes it").option("--repo <owner/name>", "repository \u2014 the checkout's remote for a number, never guessed for a key").option("--note <text>", "a short note for people to read; the agent never sees it").option("--instructions <text>", "text the build's agent receives, up to 2000 characters; not with --local").option("--runner <kind>", "kind of runner that takes the build: managed or self-hosted; not with --local").option("--session-id <id>", "session id to record as-is, skipping detection").option("--retry <count>", "retries after a gateway answer worth trying again").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)").addHelpText(
|
|
4725
4725
|
"after",
|
|
4726
4726
|
`
|
|
4727
4727
|
${cliInvocation()} work build --issue 42 # a host builds it
|
|
4728
4728
|
${cliInvocation()} work build --item 7 # retry an item already on Work
|
|
4729
4729
|
${cliInvocation()} work build --issue 42 --instructions "skip the docs" # the agent reads this
|
|
4730
|
+
${cliInvocation()} work build --issue 42 --runner managed # a managed runner builds it
|
|
4730
4731
|
${cliInvocation()} work build --issue 42 --local # you build it
|
|
4731
4732
|
${cliInvocation()} work build --issue ENG-123 --tracker linear # a Linear issue
|
|
4732
4733
|
|
|
@@ -4739,7 +4740,7 @@ takes it, and prints the line that starts your session on it. That
|
|
|
4739
4740
|
session links itself and holds the item's lease while it works.
|
|
4740
4741
|
`
|
|
4741
4742
|
).action(async (opts) => {
|
|
4742
|
-
const { runWorkBuild, WorkCommandError } = await import('./work-cmd-
|
|
4743
|
+
const { runWorkBuild, WorkCommandError } = await import('./work-cmd-V5FHLWJM.js');
|
|
4743
4744
|
try {
|
|
4744
4745
|
await runWorkBuild(opts);
|
|
4745
4746
|
} catch (err) {
|
|
@@ -4762,7 +4763,7 @@ renews that session's own 20-minute lease, unless --no-lease or
|
|
|
4762
4763
|
--ended is given, or another worker already holds a live one.
|
|
4763
4764
|
`
|
|
4764
4765
|
).action(async (number, opts) => {
|
|
4765
|
-
const { runWorkLinkSession, WorkCommandError } = await import('./work-cmd-
|
|
4766
|
+
const { runWorkLinkSession, WorkCommandError } = await import('./work-cmd-V5FHLWJM.js');
|
|
4766
4767
|
try {
|
|
4767
4768
|
await runWorkLinkSession({ ...opts, number, noLease: opts.lease === false, logFailures: opts.logFailures === true });
|
|
4768
4769
|
} catch (err) {
|
|
@@ -4786,8 +4787,8 @@ criterion's new proof; --ready hands the thread back to a person. At
|
|
|
4786
4787
|
most one action flag may be given.
|
|
4787
4788
|
`
|
|
4788
4789
|
).action(async (opts) => {
|
|
4789
|
-
const { runWorkComment, WorkCommentCommandError } = await import('./work-comment-cmd-
|
|
4790
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4790
|
+
const { runWorkComment, WorkCommentCommandError } = await import('./work-comment-cmd-KLEMDYI4.js');
|
|
4791
|
+
const { WorkCommandError } = await import('./work-cmd-V5FHLWJM.js');
|
|
4791
4792
|
try {
|
|
4792
4793
|
await runWorkComment(opts);
|
|
4793
4794
|
} catch (err) {
|
|
@@ -4808,8 +4809,8 @@ criterion that carries proof or a comment, each with who is waiting
|
|
|
4808
4809
|
on whom next.
|
|
4809
4810
|
`
|
|
4810
4811
|
).action(async (opts) => {
|
|
4811
|
-
const { runWorkThreads, WorkCommentCommandError } = await import('./work-comment-cmd-
|
|
4812
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4812
|
+
const { runWorkThreads, WorkCommentCommandError } = await import('./work-comment-cmd-KLEMDYI4.js');
|
|
4813
|
+
const { WorkCommandError } = await import('./work-cmd-V5FHLWJM.js');
|
|
4813
4814
|
try {
|
|
4814
4815
|
await runWorkThreads(opts);
|
|
4815
4816
|
} catch (err) {
|
|
@@ -4833,8 +4834,8 @@ still running, or that an older runner released, has no log and the
|
|
|
4833
4834
|
command exits 1.
|
|
4834
4835
|
`
|
|
4835
4836
|
).action(async (opts) => {
|
|
4836
|
-
const { runWorkLogs, WorkLogsCommandError } = await import('./work-logs-cmd-
|
|
4837
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4837
|
+
const { runWorkLogs, WorkLogsCommandError } = await import('./work-logs-cmd-DOGPK7Q6.js');
|
|
4838
|
+
const { WorkCommandError } = await import('./work-cmd-V5FHLWJM.js');
|
|
4838
4839
|
try {
|
|
4839
4840
|
await runWorkLogs(opts);
|
|
4840
4841
|
} catch (err) {
|
|
@@ -4857,8 +4858,8 @@ item is not built again until a new build request. Exits 1 when no host
|
|
|
4857
4858
|
build is running for the item.
|
|
4858
4859
|
`
|
|
4859
4860
|
).action(async (opts) => {
|
|
4860
|
-
const { runWorkStop, WorkStopCommandError } = await import('./work-stop-cmd-
|
|
4861
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4861
|
+
const { runWorkStop, WorkStopCommandError } = await import('./work-stop-cmd-MRLJEQRP.js');
|
|
4862
|
+
const { WorkCommandError } = await import('./work-cmd-V5FHLWJM.js');
|
|
4862
4863
|
try {
|
|
4863
4864
|
await runWorkStop(opts);
|
|
4864
4865
|
} catch (err) {
|
|
@@ -4879,8 +4880,8 @@ Prints the item's newest live demo record: its artifact id, the commit it was re
|
|
|
4879
4880
|
test file that recorded it. With --json, prints { "demo": null } for an item with no demo.
|
|
4880
4881
|
`
|
|
4881
4882
|
).action(async (opts) => {
|
|
4882
|
-
const { runWorkDemo, WorkDemoCommandError } = await import('./work-demo-cmd-
|
|
4883
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4883
|
+
const { runWorkDemo, WorkDemoCommandError } = await import('./work-demo-cmd-XYRKFP4G.js');
|
|
4884
|
+
const { WorkCommandError } = await import('./work-cmd-V5FHLWJM.js');
|
|
4884
4885
|
try {
|
|
4885
4886
|
await runWorkDemo(opts);
|
|
4886
4887
|
} catch (err) {
|
|
@@ -4901,7 +4902,7 @@ deletes anything \u2014 the item is removed from Work only once no
|
|
|
4901
4902
|
live addition remains on it.
|
|
4902
4903
|
`
|
|
4903
4904
|
).action(async (opts) => {
|
|
4904
|
-
const { runWorkRemove, WorkCommandError } = await import('./work-cmd-
|
|
4905
|
+
const { runWorkRemove, WorkCommandError } = await import('./work-cmd-V5FHLWJM.js');
|
|
4905
4906
|
try {
|
|
4906
4907
|
await runWorkRemove(opts);
|
|
4907
4908
|
} catch (err) {
|
|
@@ -4913,7 +4914,7 @@ live addition remains on it.
|
|
|
4913
4914
|
}
|
|
4914
4915
|
});
|
|
4915
4916
|
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) => {
|
|
4916
|
-
const { runWorkStatus, WorkCommandError } = await import('./work-cmd-
|
|
4917
|
+
const { runWorkStatus, WorkCommandError } = await import('./work-cmd-V5FHLWJM.js');
|
|
4917
4918
|
try {
|
|
4918
4919
|
await runWorkStatus(opts);
|
|
4919
4920
|
} catch (err) {
|
|
@@ -4935,7 +4936,8 @@ A proof is current when it was recorded at this checkout's HEAD, or at the head
|
|
|
4935
4936
|
linked pull request that is open or merged. Run \`outerlayer sync\` first, so the
|
|
4936
4937
|
gateway has the artifacts you just emitted. Test proofs are not listed.
|
|
4937
4938
|
Exits 0 when every listed proof is current, 1 when any is out of date or missing,
|
|
4938
|
-
and 2 when it cannot tell.
|
|
4939
|
+
and 2 when it cannot tell. It also lists each criterion the criteria judge fails without
|
|
4940
|
+
reading a test, as uncited or failed. In a runner build those rows give exit 1.
|
|
4939
4941
|
|
|
4940
4942
|
--record reads .outerlayer-proofs.yaml from the HEAD commit and finds the test files at HEAD
|
|
4941
4943
|
that hold the id of each proof that is not current. It runs setup, then each runner once with
|
|
@@ -4957,11 +4959,11 @@ differs from HEAD.
|
|
|
4957
4959
|
fail(trackerNumberError("--pr", opts.pr));
|
|
4958
4960
|
return;
|
|
4959
4961
|
}
|
|
4960
|
-
const { runWorkProofsCommand } = await import('./work-proofs-cmd-
|
|
4962
|
+
const { runWorkProofsCommand } = await import('./work-proofs-cmd-YMMDAA6W.js');
|
|
4961
4963
|
await runWorkProofsCommand({ ...opts, ...pr === void 0 ? {} : { pr } });
|
|
4962
4964
|
});
|
|
4963
4965
|
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) => {
|
|
4964
|
-
const { runWorkList, WorkCommandError } = await import('./work-cmd-
|
|
4966
|
+
const { runWorkList, WorkCommandError } = await import('./work-cmd-V5FHLWJM.js');
|
|
4965
4967
|
try {
|
|
4966
4968
|
await runWorkList(opts);
|
|
4967
4969
|
} catch (err) {
|
|
@@ -4982,7 +4984,7 @@ by a different key is refused; claiming again with the same key extends
|
|
|
4982
4984
|
it. --host is a label only.
|
|
4983
4985
|
`
|
|
4984
4986
|
).action(async (opts) => {
|
|
4985
|
-
const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-
|
|
4987
|
+
const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-YSAJ7DAK.js');
|
|
4986
4988
|
try {
|
|
4987
4989
|
await runWorkClaim(opts);
|
|
4988
4990
|
} catch (err) {
|
|
@@ -5002,7 +5004,7 @@ Extends the live lease this API key holds. Refused with a 410 if the
|
|
|
5002
5004
|
lease has expired, or a 403 if a different key holds it.
|
|
5003
5005
|
`
|
|
5004
5006
|
).action(async (opts) => {
|
|
5005
|
-
const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-
|
|
5007
|
+
const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-YSAJ7DAK.js');
|
|
5006
5008
|
try {
|
|
5007
5009
|
await runWorkRenew(opts);
|
|
5008
5010
|
} catch (err) {
|
|
@@ -5034,7 +5036,7 @@ applies to a host's lease only. A later tool call in the session
|
|
|
5034
5036
|
takes the lease again.
|
|
5035
5037
|
`
|
|
5036
5038
|
).action(async (opts) => {
|
|
5037
|
-
const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-
|
|
5039
|
+
const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-YSAJ7DAK.js');
|
|
5038
5040
|
try {
|
|
5039
5041
|
await runWorkRelease(opts);
|
|
5040
5042
|
} catch (err) {
|
|
@@ -5061,7 +5063,7 @@ Idempotent: declaring the same pull request twice is a no-op.
|
|
|
5061
5063
|
needs your own login; an agent session or a factory key is refused.
|
|
5062
5064
|
`
|
|
5063
5065
|
).action(async (number, opts) => {
|
|
5064
|
-
const { runWorkPr, WorkPrCommandError } = await import('./work-pr-cmd-
|
|
5066
|
+
const { runWorkPr, WorkPrCommandError } = await import('./work-pr-cmd-LYWL7ZLF.js');
|
|
5065
5067
|
try {
|
|
5066
5068
|
await runWorkPr({ ...opts, number });
|
|
5067
5069
|
} catch (err) {
|
|
@@ -5086,8 +5088,8 @@ login, then declares the pull request on the item, as \`work pr\` does.
|
|
|
5086
5088
|
Run it again after a change to the title or description.
|
|
5087
5089
|
`
|
|
5088
5090
|
).action(async (opts) => {
|
|
5089
|
-
const { runWorkOpenPr, WorkOpenPrCommandError } = await import('./work-open-pr-cmd-
|
|
5090
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
5091
|
+
const { runWorkOpenPr, WorkOpenPrCommandError } = await import('./work-open-pr-cmd-UAUEEP3V.js');
|
|
5092
|
+
const { WorkCommandError } = await import('./work-cmd-V5FHLWJM.js');
|
|
5091
5093
|
try {
|
|
5092
5094
|
await runWorkOpenPr(opts);
|
|
5093
5095
|
} catch (err) {
|
|
@@ -5103,9 +5105,9 @@ function registerRunnerCommands(program2) {
|
|
|
5103
5105
|
const runnerCmd = program2.command("runner").description("Take work from the implement and amend queues on this machine");
|
|
5104
5106
|
const configOption = "the cloud config file to run against (default: ~/.outerlayer/config.json)";
|
|
5105
5107
|
runnerCmd.command("start").description("Run the loop: claim work, run it, report, clean up, repeat").option("--config <path>", configOption).action(async (opts) => {
|
|
5106
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5107
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
5108
|
-
const { RunnerAlreadyRunningError } = await import('./pidfile-
|
|
5108
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-WSZIWPP4.js');
|
|
5109
|
+
const { start, RunnerStartError } = await import('./loop-NGFNQF3Y.js');
|
|
5110
|
+
const { RunnerAlreadyRunningError } = await import('./pidfile-PCG2H5T4.js');
|
|
5109
5111
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5110
5112
|
try {
|
|
5111
5113
|
const { realUpdateDeps } = await import('./real-deps-QX5YH7FG.js');
|
|
@@ -5122,10 +5124,10 @@ function registerRunnerCommands(program2) {
|
|
|
5122
5124
|
"after",
|
|
5123
5125
|
"\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"
|
|
5124
5126
|
).action(async () => {
|
|
5125
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5126
|
-
const { containerStart } = await import('./container-start-
|
|
5127
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
5128
|
-
const { RunnerAlreadyRunningError } = await import('./pidfile-
|
|
5127
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-WSZIWPP4.js');
|
|
5128
|
+
const { containerStart } = await import('./container-start-XRR4VC5Z.js');
|
|
5129
|
+
const { start, RunnerStartError } = await import('./loop-NGFNQF3Y.js');
|
|
5130
|
+
const { RunnerAlreadyRunningError } = await import('./pidfile-PCG2H5T4.js');
|
|
5129
5131
|
try {
|
|
5130
5132
|
const result = await containerStart({
|
|
5131
5133
|
env: process.env,
|
|
@@ -5146,16 +5148,16 @@ function registerRunnerCommands(program2) {
|
|
|
5146
5148
|
"after",
|
|
5147
5149
|
"\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"
|
|
5148
5150
|
).action(async (opts) => {
|
|
5149
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5150
|
-
const { runnerDir } = await import('./paths-
|
|
5151
|
-
const { runUpdateSteps } = await import('./update-steps-
|
|
5151
|
+
const { defaultRunnerConfigPath } = await import('./config-WSZIWPP4.js');
|
|
5152
|
+
const { runnerDir } = await import('./paths-AQ47ZRHK.js');
|
|
5153
|
+
const { runUpdateSteps } = await import('./update-steps-IQVAL64Y.js');
|
|
5152
5154
|
const text = await runUpdateSteps({ runnerDirPath: runnerDir(opts.config ?? defaultRunnerConfigPath()) });
|
|
5153
5155
|
process.stdout.write(`${text}
|
|
5154
5156
|
`);
|
|
5155
5157
|
});
|
|
5156
5158
|
runnerCmd.command("check").description("Validate the config, the hooks and the key, and print the effective settings").option("--config <path>", configOption).action(async (opts) => {
|
|
5157
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5158
|
-
const { runRunnerCheck } = await import('./check-
|
|
5159
|
+
const { defaultRunnerConfigPath } = await import('./config-WSZIWPP4.js');
|
|
5160
|
+
const { runRunnerCheck } = await import('./check-G2K76NEM.js');
|
|
5159
5161
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5160
5162
|
const result = await runRunnerCheck(configPath);
|
|
5161
5163
|
if (!result.ok) {
|
|
@@ -5176,8 +5178,8 @@ function registerRunnerCommands(program2) {
|
|
|
5176
5178
|
`);
|
|
5177
5179
|
});
|
|
5178
5180
|
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) => {
|
|
5179
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5180
|
-
const { runRunnerInstall, RunnerInstallError, launcherSummary, restartNote } = await import('./install-cmd-
|
|
5181
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-WSZIWPP4.js');
|
|
5182
|
+
const { runRunnerInstall, RunnerInstallError, launcherSummary, restartNote } = await import('./install-cmd-RGO7NWKP.js');
|
|
5181
5183
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5182
5184
|
if (opts.service !== true) {
|
|
5183
5185
|
const names = { print: "print", user: "user", unitName: "unit-name", buildMemoryMax: "build-memory-max", buildCpusMax: "build-cpus-max" };
|
|
@@ -5189,13 +5191,13 @@ function registerRunnerCommands(program2) {
|
|
|
5189
5191
|
}
|
|
5190
5192
|
}
|
|
5191
5193
|
const buildCpusMax = opts.buildCpusMax === void 0 ? void 0 : Number(opts.buildCpusMax);
|
|
5192
|
-
if (buildCpusMax !== void 0 && !(await import('./command-
|
|
5194
|
+
if (buildCpusMax !== void 0 && !(await import('./command-VQPQDPCZ.js')).cpusAreValid(buildCpusMax)) {
|
|
5193
5195
|
fail(`--build-cpus-max ${opts.buildCpusMax} is not a number of CPUs from 0.01 to 1024.`);
|
|
5194
5196
|
return;
|
|
5195
5197
|
}
|
|
5196
5198
|
try {
|
|
5197
5199
|
if (opts.service === true) {
|
|
5198
|
-
const { installServiceCommand } = await import('./command-
|
|
5200
|
+
const { installServiceCommand } = await import('./command-VQPQDPCZ.js');
|
|
5199
5201
|
const result2 = await installServiceCommand({
|
|
5200
5202
|
configPath,
|
|
5201
5203
|
print: opts.print,
|
|
@@ -5252,8 +5254,8 @@ To keep it running, run ${C.yellow}${cliInvocation()} runner install --service${
|
|
|
5252
5254
|
fail(`pass --service: \`${cliInvocation()} runner uninstall --service\` removes the runner's service.`);
|
|
5253
5255
|
return;
|
|
5254
5256
|
}
|
|
5255
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5256
|
-
const { uninstallServiceCommand } = await import('./command-
|
|
5257
|
+
const { defaultRunnerConfigPath } = await import('./config-WSZIWPP4.js');
|
|
5258
|
+
const { uninstallServiceCommand } = await import('./command-VQPQDPCZ.js');
|
|
5257
5259
|
const result = await uninstallServiceCommand({ configPath: opts.config ?? defaultRunnerConfigPath(), unitName: opts.unitName, home: homeFromEnv() });
|
|
5258
5260
|
if (result.ok) for (const line of result.lines) process.stdout.write(`${C.green}\u2713${C.reset} ${line}
|
|
5259
5261
|
`);
|
|
@@ -5280,12 +5282,12 @@ already in claude.env is used.
|
|
|
5280
5282
|
printf '%s' "$CLAUDE_CODE_OAUTH_TOKEN" | ${cliInvocation()} runner init --agent claude --factory <org>/<factory>
|
|
5281
5283
|
`
|
|
5282
5284
|
).action(async (opts) => {
|
|
5283
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5284
|
-
const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-
|
|
5285
|
-
const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-
|
|
5286
|
-
const { detectMachine } = await import('./machine-
|
|
5287
|
-
const { chooseVm, runVmInit, VmInitError } = await import('./init-
|
|
5288
|
-
const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-
|
|
5285
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-WSZIWPP4.js');
|
|
5286
|
+
const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-V6Y2VNKW.js');
|
|
5287
|
+
const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-B5EJH25Z.js');
|
|
5288
|
+
const { detectMachine } = await import('./machine-XG54XYYZ.js');
|
|
5289
|
+
const { chooseVm, runVmInit, VmInitError } = await import('./init-MN3MNG7V.js');
|
|
5290
|
+
const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-YPXWTNP3.js');
|
|
5289
5291
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5290
5292
|
if (opts.agent !== void 0 && !isAgentName(opts.agent)) {
|
|
5291
5293
|
fail(`--agent ${opts.agent}: runner init writes commands for ${Object.keys(AGENT_COMMANDS).join(", ")}. For another agent, leave --agent out and edit runner.commands.`);
|
|
@@ -5316,7 +5318,7 @@ already in claude.env is used.
|
|
|
5316
5318
|
const chunks = [];
|
|
5317
5319
|
for await (const chunk of process.stdin) chunks.push(Buffer.from(chunk));
|
|
5318
5320
|
const result2 = runRunnerInit(configPath, { machine, configFromStdin: Buffer.concat(chunks).toString("utf8"), requireContainer: true });
|
|
5319
|
-
const { ensureHostKey: ensureHostKey2 } = await import('./host-key-
|
|
5321
|
+
const { ensureHostKey: ensureHostKey2 } = await import('./host-key-TSOKVSZX.js');
|
|
5320
5322
|
const hostKey2 = await ensureHostKey2(configPath);
|
|
5321
5323
|
process.stdout.write(`host key ${hostKey2.fingerprint}
|
|
5322
5324
|
hooks: ${result2.hooks}
|
|
@@ -5375,7 +5377,7 @@ hooks: ${result2.hooks}
|
|
|
5375
5377
|
const prepared = prepareRunnerInit(configPath, { machine, allowProcess, agent, credential, keyFromLogin: makeKey !== void 0 });
|
|
5376
5378
|
const created = makeKey === void 0 ? void 0 : await makeKey();
|
|
5377
5379
|
const result = writeRunnerInit(prepared, created);
|
|
5378
|
-
const { ensureHostKey } = await import('./host-key-
|
|
5380
|
+
const { ensureHostKey } = await import('./host-key-TSOKVSZX.js');
|
|
5379
5381
|
const hostKey = await ensureHostKey(configPath);
|
|
5380
5382
|
if (created !== void 0) {
|
|
5381
5383
|
process.stdout.write(`${C.green}\u2713${C.reset} saved the runner key in ${result.configPath}
|
|
@@ -5403,7 +5405,7 @@ ${C.yellow}${result.note}${C.reset}
|
|
|
5403
5405
|
To isolate builds in containers instead, run ${C.yellow}${cliInvocation()} runner init --vm${C.reset}.
|
|
5404
5406
|
`);
|
|
5405
5407
|
}
|
|
5406
|
-
const { runRunnerInstall, RunnerInstallError, RunnerDowngradeError, launcherSummary } = await import('./install-cmd-
|
|
5408
|
+
const { runRunnerInstall, RunnerInstallError, RunnerDowngradeError, launcherSummary } = await import('./install-cmd-RGO7NWKP.js');
|
|
5407
5409
|
let installedLayout = false;
|
|
5408
5410
|
let noService = "it starts the runner from the install layout, which needs a CLI installed with npm";
|
|
5409
5411
|
try {
|
|
@@ -5435,7 +5437,7 @@ ${C.yellow}The runner will not update itself: ${installErr.message}${C.reset}
|
|
|
5435
5437
|
let serviceUp = false;
|
|
5436
5438
|
let restart;
|
|
5437
5439
|
if (installedLayout) {
|
|
5438
|
-
const { installServiceCommand } = await import('./command-
|
|
5440
|
+
const { installServiceCommand } = await import('./command-VQPQDPCZ.js');
|
|
5439
5441
|
const service = await installServiceCommand({
|
|
5440
5442
|
configPath,
|
|
5441
5443
|
entryPath: process.argv[1] ?? "",
|
|
@@ -5479,12 +5481,12 @@ Next:
|
|
|
5479
5481
|
"after",
|
|
5480
5482
|
"\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"
|
|
5481
5483
|
).action(async (opts) => {
|
|
5482
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5483
|
-
const { buildRepositoryImage, RecipeError } = await import('./build-
|
|
5484
|
+
const { defaultRunnerConfigPath } = await import('./config-WSZIWPP4.js');
|
|
5485
|
+
const { buildRepositoryImage, RecipeError } = await import('./build-UDOBVX5J.js');
|
|
5484
5486
|
const { currentCliBuild } = await import('./cli-build-K56DK4DS.js');
|
|
5485
|
-
const { createDockerHost } = await import('./docker-
|
|
5486
|
-
const { builderSpec } = await import('./builder-
|
|
5487
|
-
const { loadRunnerConfig } = await import('./config-
|
|
5487
|
+
const { createDockerHost } = await import('./docker-KZ3OQTPW.js');
|
|
5488
|
+
const { builderSpec } = await import('./builder-YNXWVH2V.js');
|
|
5489
|
+
const { loadRunnerConfig } = await import('./config-WSZIWPP4.js');
|
|
5488
5490
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5489
5491
|
const loaded = (() => {
|
|
5490
5492
|
try {
|
|
@@ -5495,11 +5497,11 @@ Next:
|
|
|
5495
5497
|
})();
|
|
5496
5498
|
const memory = loaded?.build?.memory ?? "8g";
|
|
5497
5499
|
try {
|
|
5498
|
-
const { ensureRunnerIdentity } = await import('./runner-identity-
|
|
5500
|
+
const { ensureRunnerIdentity } = await import('./runner-identity-XPZO3TG4.js');
|
|
5499
5501
|
await ensureRunnerIdentity(configPath, { log: (line) => console.error(line) }).catch((err) => {
|
|
5500
5502
|
console.error(`the runner's Docker identity could not be stored: ${err instanceof Error ? err.message : String(err)}`);
|
|
5501
5503
|
});
|
|
5502
|
-
const { imageTargetFor } = await import('./governing-source-
|
|
5504
|
+
const { imageTargetFor } = await import('./governing-source-JPRMOB3O.js');
|
|
5503
5505
|
const target = await imageTargetFor({ config: loaded, repository: opts.repository, fetchImpl: fetch });
|
|
5504
5506
|
if (!target.ok) {
|
|
5505
5507
|
if (opts.json) {
|
|
@@ -5562,25 +5564,25 @@ Next:
|
|
|
5562
5564
|
}
|
|
5563
5565
|
});
|
|
5564
5566
|
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) => {
|
|
5565
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5566
|
-
const { requestStop } = await import('./loop-
|
|
5567
|
+
const { defaultRunnerConfigPath } = await import('./config-WSZIWPP4.js');
|
|
5568
|
+
const { requestStop } = await import('./loop-NGFNQF3Y.js');
|
|
5567
5569
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5568
|
-
const { runnerImageVersion } = await import('./image-tag-
|
|
5570
|
+
const { runnerImageVersion } = await import('./image-tag-BTXKIH73.js');
|
|
5569
5571
|
await requestStop(configPath, Boolean(opts.now), void 0, { image: runnerImageVersion() !== void 0 });
|
|
5570
5572
|
});
|
|
5571
5573
|
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) => {
|
|
5572
|
-
const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-
|
|
5573
|
-
const { jobsDir, runnerDir } = await import('./paths-
|
|
5574
|
-
const { listJobFiles, runnerProcessState } = await import('./loop-
|
|
5575
|
-
const { renderStatus } = await import('./status-
|
|
5576
|
-
const { readHousekeepingRecord } = await import('./record-
|
|
5574
|
+
const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-WSZIWPP4.js');
|
|
5575
|
+
const { jobsDir, runnerDir } = await import('./paths-AQ47ZRHK.js');
|
|
5576
|
+
const { listJobFiles, runnerProcessState } = await import('./loop-NGFNQF3Y.js');
|
|
5577
|
+
const { renderStatus } = await import('./status-WQ53MWC3.js');
|
|
5578
|
+
const { readHousekeepingRecord } = await import('./record-SVCNFCGQ.js');
|
|
5577
5579
|
const path2 = await import('path');
|
|
5578
5580
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5579
5581
|
const all = listJobFiles(configPath);
|
|
5580
5582
|
const housekeeping = readHousekeepingRecord(runnerDir(configPath));
|
|
5581
|
-
const { readPendingUpdate } = await import('./pending-
|
|
5583
|
+
const { readPendingUpdate } = await import('./pending-UWFDVFOA.js');
|
|
5582
5584
|
const pendingUpdate = readPendingUpdate(runnerDir(configPath));
|
|
5583
|
-
const { readImageStatus } = await import('./image-tag-
|
|
5585
|
+
const { readImageStatus } = await import('./image-tag-BTXKIH73.js');
|
|
5584
5586
|
const image = readImageStatus(runnerDir(configPath));
|
|
5585
5587
|
let host = "unknown";
|
|
5586
5588
|
let concurrency = 1;
|
|
@@ -5593,7 +5595,7 @@ Next:
|
|
|
5593
5595
|
const processState = runnerProcessState(configPath);
|
|
5594
5596
|
const service = await (async () => {
|
|
5595
5597
|
if (process.platform !== "linux" || !existsSync("/run/systemd/system")) return void 0;
|
|
5596
|
-
const { inspectRunnerService } = await import('./find-unit-
|
|
5598
|
+
const { inspectRunnerService } = await import('./find-unit-UKH6JH4S.js');
|
|
5597
5599
|
const facts = inspectRunnerService(configPath);
|
|
5598
5600
|
return facts === void 0 ? void 0 : { unit: facts.unit, running: facts.mainPid !== void 0, delegated: facts.delegate };
|
|
5599
5601
|
})();
|
|
@@ -5630,9 +5632,9 @@ Next:
|
|
|
5630
5632
|
);
|
|
5631
5633
|
});
|
|
5632
5634
|
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) => {
|
|
5633
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5634
|
-
const { listJobFiles } = await import('./loop-
|
|
5635
|
-
const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-
|
|
5635
|
+
const { defaultRunnerConfigPath } = await import('./config-WSZIWPP4.js');
|
|
5636
|
+
const { listJobFiles } = await import('./loop-NGFNQF3Y.js');
|
|
5637
|
+
const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-LEVH6VAI.js');
|
|
5636
5638
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5637
5639
|
const item = parseTrackerNumber(itemArg);
|
|
5638
5640
|
if (item === void 0) {
|
|
@@ -5863,7 +5865,7 @@ caller from the bearer token, the gateway answers 401 without that header.
|
|
|
5863
5865
|
"after",
|
|
5864
5866
|
"\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"
|
|
5865
5867
|
).action(async (opts) => {
|
|
5866
|
-
const { runMcpServe, handleMcpServeError } = await import('./mcp-serve-cmd-
|
|
5868
|
+
const { runMcpServe, handleMcpServeError } = await import('./mcp-serve-cmd-4O5INM77.js');
|
|
5867
5869
|
try {
|
|
5868
5870
|
await runMcpServe({ url: opts.url, appId: opts.appId });
|
|
5869
5871
|
} catch (err) {
|
|
@@ -5884,7 +5886,7 @@ would get, the instruction files and the names of the skills. It warns when the
|
|
|
5884
5886
|
no \`build\`. It needs the context-read permission: a login or a factory key with it is enough.
|
|
5885
5887
|
`
|
|
5886
5888
|
).action(async (opts) => {
|
|
5887
|
-
const { runContextShow, ContextShowError } = await import('./context-show-cmd-
|
|
5889
|
+
const { runContextShow, ContextShowError } = await import('./context-show-cmd-X27GMOT6.js');
|
|
5888
5890
|
try {
|
|
5889
5891
|
const result = await runContextShow({ repo: opts.repo, json: opts.json, url: opts.url, apiKey: opts.apiKey, appId: opts.appId });
|
|
5890
5892
|
process.stdout.write(result.output);
|