@outerlayer/cli 0.34.0-next.20261026184303 → 0.34.0-next.20261026214534
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-WOEZELVB.js → agent-setup-2A6P2SYL.js} +10 -10
- package/dist/{artifact-link-cmd-LWPY3V4N.js → artifact-link-cmd-4XQJO55P.js} +2 -2
- package/dist/{build-UDOBVX5J.js → build-BBWAD5LR.js} +4 -4
- package/dist/{build-disk-C3WIAHCL.js → build-disk-TGLM5XK7.js} +4 -4
- package/dist/build-info.json +1 -1
- package/dist/{builder-YNXWVH2V.js → builder-FD53GTWL.js} +3 -3
- package/dist/{check-G2K76NEM.js → check-FOWN6M3C.js} +34 -34
- package/dist/{chunk-GHFI5GBF.js → chunk-25XBOX3K.js} +3 -3
- package/dist/{chunk-VEJWLQ4G.js → chunk-2GDKM2O4.js} +12 -12
- package/dist/{chunk-IWVGALDC.js → chunk-3HJMY3H5.js} +1 -1
- package/dist/{chunk-V2VJYK46.js → chunk-3NCWHEGM.js} +2 -2
- package/dist/{chunk-CNZRUVZ5.js → chunk-3PUOHONX.js} +11 -11
- package/dist/{chunk-P3CHDKXD.js → chunk-5ZBVKRDK.js} +2 -2
- package/dist/{chunk-5JGPTYLT.js → chunk-66LH5QAV.js} +3 -3
- package/dist/{chunk-6D7H5DMZ.js → chunk-6CK2OC4Q.js} +2 -2
- package/dist/{chunk-7FQYTM7M.js → chunk-72CJOYN6.js} +7 -7
- package/dist/{chunk-EPFFYDNX.js → chunk-77VBS2RT.js} +2 -2
- package/dist/{chunk-XSFR76J7.js → chunk-7DK2FOZ4.js} +4 -4
- package/dist/{chunk-ZIKZZ4LK.js → chunk-BQQPDBSF.js} +2 -2
- package/dist/{chunk-NHEU5CON.js → chunk-CCHSD7RS.js} +2 -2
- package/dist/{chunk-EOTMDIYC.js → chunk-DINRXUQA.js} +43 -2
- package/dist/{chunk-JSZRBQY3.js → chunk-EBVK3QBO.js} +3 -3
- package/dist/{chunk-LTN2YFLR.js → chunk-FVF2LMVG.js} +12 -12
- package/dist/{chunk-MECW77XP.js → chunk-IXPH4EXK.js} +1 -1
- package/dist/{chunk-4P6QGMPN.js → chunk-J7EJMIDR.js} +2 -2
- package/dist/{chunk-LTYBHCL4.js → chunk-JA2ARVY6.js} +6 -6
- package/dist/{chunk-SZU4YCBH.js → chunk-JKLSQOYO.js} +16 -16
- package/dist/{chunk-ELO5XEES.js → chunk-K3ACC2CV.js} +475 -103
- package/dist/{chunk-GYVMMU3U.js → chunk-KR2TIRNQ.js} +7 -7
- package/dist/{chunk-RCRE42V6.js → chunk-LASKTDCR.js} +1 -1
- package/dist/{chunk-JWNH4ZTF.js → chunk-LMYRR5MO.js} +2 -2
- package/dist/{chunk-WE4C3ODP.js → chunk-LY62UHRR.js} +1 -1
- package/dist/{chunk-NKOM4JKY.js → chunk-LYCJQOO2.js} +2 -2
- package/dist/{chunk-4J2FF5HZ.js → chunk-MYLOOVRJ.js} +3 -3
- package/dist/{chunk-Y5YCX6AL.js → chunk-NWHU5G6R.js} +1 -1
- package/dist/{chunk-EUQZAH2W.js → chunk-O7QPHJWN.js} +4 -4
- package/dist/{chunk-IO2BBKG4.js → chunk-OKGHWCSK.js} +2 -2
- package/dist/{chunk-Z7WMU3RA.js → chunk-OOD5NDQA.js} +1 -1
- package/dist/{chunk-ZQSANKS4.js → chunk-OVNF4LLC.js} +1 -1
- package/dist/{chunk-JKNOJKVD.js → chunk-QABXXQ67.js} +5 -5
- package/dist/{chunk-VUQKGBIQ.js → chunk-QRJIBTNQ.js} +5 -5
- package/dist/{chunk-XL2MPORM.js → chunk-QWXBWOVV.js} +5 -5
- package/dist/{chunk-ERTIEYDG.js → chunk-RNMCFAYH.js} +3 -3
- package/dist/{chunk-HVPW272H.js → chunk-T2HH7IHT.js} +1 -1
- package/dist/{chunk-KPHRRCUY.js → chunk-TWFBOZQ5.js} +4 -4
- package/dist/{chunk-XKJOIQ2Q.js → chunk-TZMDRHWB.js} +4 -4
- package/dist/{chunk-DQ6YO7FH.js → chunk-UPA5KOOX.js} +1 -1
- package/dist/{chunk-LD3BHLK7.js → chunk-WBTPI5MP.js} +3 -3
- package/dist/{chunk-OQT7RT5I.js → chunk-WYR4INK3.js} +2 -2
- package/dist/{chunk-FGXT5OXS.js → chunk-XFJ7YOPD.js} +1 -1
- package/dist/{chunk-H47VGSCW.js → chunk-XHZBLIB2.js} +1 -1
- package/dist/{chunk-HVQMIZ22.js → chunk-XYLHSCLR.js} +1 -1
- package/dist/{chunk-JC6AQ6PC.js → chunk-ZADRW2V2.js} +4 -4
- package/dist/{claude-launcher-6KGANL7E.js → claude-launcher-EO3ALKBS.js} +5 -5
- package/dist/{cli-5KY3TE3S.js → cli-3RDQSLYI.js} +115 -110
- package/dist/{command-VQPQDPCZ.js → command-C5YKBTK4.js} +20 -20
- package/dist/{config-WSZIWPP4.js → config-EBT5VYPX.js} +5 -5
- package/dist/{connect-cmd-LI34HS5Q.js → connect-cmd-65YBQRSY.js} +8 -8
- package/dist/{container-start-XRR4VC5Z.js → container-start-RLX2PL3C.js} +31 -31
- package/dist/{context-cleanup-LUBEZB3L.js → context-cleanup-VJXMM27E.js} +3 -3
- package/dist/{context-show-cmd-X27GMOT6.js → context-show-cmd-S5SEBOI2.js} +9 -9
- package/dist/{control-plane-launch-74EIIB5Z.js → control-plane-launch-BDSUP4DK.js} +6 -6
- package/dist/demo-voice-cmd-DF6C7EST.js +83 -0
- package/dist/{dist-HVXLUMRV.js → dist-ADKRGE7I.js} +2 -2
- package/dist/{docker-KZ3OQTPW.js → docker-CP656XNO.js} +3 -3
- package/dist/{doctor-KPKLFIJH.js → doctor-EQIAHHZD.js} +21 -21
- package/dist/{emit-artifact-cmd-BJICHW2E.js → emit-artifact-cmd-56C6DBUP.js} +13 -13
- package/dist/{emit-cmd-7TU3JBJ2.js → emit-cmd-C3BUFAUR.js} +6 -6
- package/dist/{emit-criteria-cmd-MUWPT25P.js → emit-criteria-cmd-HRCWXD3W.js} +10 -10
- package/dist/{emit-demo-cmd-YQN7VKQH.js → emit-demo-cmd-YKTL6XWP.js} +15 -14
- package/dist/{emit-finding-cmd-NPBWVY44.js → emit-finding-cmd-6MVFN4BO.js} +10 -10
- package/dist/{emit-result-cmd-7CJZZQGK.js → emit-result-cmd-E3YYBXRY.js} +12 -12
- package/dist/{emit-step-cmd-ZPLHZAMA.js → emit-step-cmd-DM4CRYYI.js} +10 -10
- package/dist/{find-unit-UKH6JH4S.js → find-unit-O6WL6UIW.js} +7 -7
- package/dist/{findings-cmd-DZ4ESTHX.js → findings-cmd-K2OYBTUH.js} +10 -10
- package/dist/{fleet-readiness-YSI4NOHT.js → fleet-readiness-VIAVQYRP.js} +8 -8
- package/dist/{governing-source-JPRMOB3O.js → governing-source-MQA2SDJT.js} +13 -13
- package/dist/{hook-fast-6EW2MGA2.js → hook-fast-KXAQ22LZ.js} +1 -1
- package/dist/{host-checks-NDXNYOMA.js → host-checks-V25YUP4Q.js} +29 -29
- package/dist/index.js +4 -4
- package/dist/{init-V6Y2VNKW.js → init-KO3FT2XP.js} +20 -20
- package/dist/{init-MN3MNG7V.js → init-YYZ7B4ZD.js} +20 -20
- package/dist/{init-cmd-QCWLJDIF.js → init-cmd-D3BDS7KY.js} +18 -18
- package/dist/{init-update-GTFLPDEL.js → init-update-JMVLGBDE.js} +17 -17
- package/dist/{layout-7B3O3FT3.js → layout-KRWLUGYZ.js} +4 -4
- package/dist/{login-browser-DQ6YRXUB.js → login-browser-BAFZYJBR.js} +2 -2
- package/dist/{loop-NGFNQF3Y.js → loop-UVONXWXB.js} +33 -33
- package/dist/{machine-XG54XYYZ.js → machine-2BI76JZO.js} +20 -20
- package/dist/{machine-skills-3FEGR376.js → machine-skills-YVS4ZYCT.js} +4 -4
- package/dist/{runner-env-YPXWTNP3.js → runner-env-QN4BLTVZ.js} +7 -7
- package/dist/{runner-identity-XPZO3TG4.js → runner-identity-53I4UTVY.js} +3 -3
- package/dist/{runner-key-B5EJH25Z.js → runner-key-JKXJWGGY.js} +20 -20
- package/dist/{session-sender-XED7CKHP.js → session-sender-KLOMLL7X.js} +13 -13
- package/dist/{spec-cmd-TRXAGQYM.js → spec-cmd-MX5QFW32.js} +11 -11
- package/dist/{starter-pack-LEL3Q2DB.js → starter-pack-QWDE6FDK.js} +5 -5
- package/dist/{status-WQ53MWC3.js → status-YCQHAY45.js} +29 -29
- package/dist/{sync-cmd-UQVENF25.js → sync-cmd-CO4DFMHU.js} +12 -12
- package/dist/{update-steps-IQVAL64Y.js → update-steps-MC3IUHW7.js} +30 -30
- package/dist/{watch-EZGDDRTQ.js → watch-GU62YVQY.js} +12 -12
- package/dist/{work-claim-cmd-YSAJ7DAK.js → work-claim-cmd-O54L5DSL.js} +15 -15
- package/dist/{work-cmd-V5FHLWJM.js → work-cmd-VR7PPSP6.js} +10 -10
- package/dist/{work-comment-cmd-KLEMDYI4.js → work-comment-cmd-HVZF72B4.js} +11 -11
- package/dist/{work-demo-cmd-XYRKFP4G.js → work-demo-cmd-EDGNM5VJ.js} +10 -10
- package/dist/{work-logs-cmd-DOGPK7Q6.js → work-logs-cmd-ZZVAHX36.js} +10 -10
- package/dist/{work-open-pr-cmd-UAUEEP3V.js → work-open-pr-cmd-AQWZRJHZ.js} +11 -11
- package/dist/{work-pr-cmd-LYWL7ZLF.js → work-pr-cmd-UJ7VWCJN.js} +10 -10
- package/dist/{work-proofs-cmd-YMMDAA6W.js → work-proofs-cmd-LIXV252G.js} +12 -12
- package/dist/{work-proofs-record-NUCWR7ZJ.js → work-proofs-record-MCSA56F5.js} +19 -18
- package/dist/{work-stop-cmd-MRLJEQRP.js → work-stop-cmd-SAT4XVM2.js} +10 -10
- package/package.json +1 -1
- package/skill-pack/maintained/outerlayer-build/references/agent-briefs.md +5 -2
- package/skill-pack/maintained/outerlayer-evidence/SKILL.md +19 -40
- package/skill-pack/maintained/outerlayer-evidence/references/demo.md +75 -0
|
@@ -1,43 +1,43 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { gatherDoctorChecks, doctorExitCode, summarizeChecks, renderDoctorText, recordWrapped, recordUnwrapped, recordRemoval, readManifest, recordInstall, recordStatusline } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
import { gatherDoctorChecks, doctorExitCode, summarizeChecks, renderDoctorText, recordWrapped, recordUnwrapped, recordRemoval, readManifest, recordInstall, recordStatusline } from './chunk-2GDKM2O4.js';
|
|
4
|
+
import './chunk-TZMDRHWB.js';
|
|
5
5
|
import './chunk-KT4CN6OU.js';
|
|
6
|
-
import './chunk-
|
|
7
|
-
import { verifiedTrackerNames, TRACKERS } from './chunk-
|
|
6
|
+
import './chunk-J7EJMIDR.js';
|
|
7
|
+
import { verifiedTrackerNames, TRACKERS } from './chunk-QABXXQ67.js';
|
|
8
8
|
import './chunk-IP7BIBXJ.js';
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
11
|
-
import './chunk-
|
|
9
|
+
import './chunk-OKGHWCSK.js';
|
|
10
|
+
import './chunk-O7QPHJWN.js';
|
|
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-
|
|
15
|
-
import './chunk-
|
|
16
|
-
import { FIRST_VERSION_READING_AGENTS_SKILLS } from './chunk-
|
|
17
|
-
import './chunk-
|
|
14
|
+
import './chunk-JA2ARVY6.js';
|
|
15
|
+
import './chunk-IXPH4EXK.js';
|
|
16
|
+
import { FIRST_VERSION_READING_AGENTS_SKILLS } from './chunk-LYCJQOO2.js';
|
|
17
|
+
import './chunk-LMYRR5MO.js';
|
|
18
18
|
import './chunk-7QAJQDHS.js';
|
|
19
19
|
import './chunk-PJDQPF5N.js';
|
|
20
20
|
import './chunk-L5VHGRQE.js';
|
|
21
|
-
import { hookFiredMarkerPath, installedCliDistDir } from './chunk-
|
|
21
|
+
import { hookFiredMarkerPath, installedCliDistDir } from './chunk-CCHSD7RS.js';
|
|
22
22
|
import './chunk-ZJSNLVCE.js';
|
|
23
23
|
import './chunk-I7RZHMXW.js';
|
|
24
24
|
import './chunk-BKO6JEZI.js';
|
|
25
25
|
import './chunk-HCVLP7XA.js';
|
|
26
26
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
27
|
-
import './chunk-
|
|
28
|
-
import './chunk-
|
|
29
|
-
import './chunk-
|
|
27
|
+
import './chunk-LASKTDCR.js';
|
|
28
|
+
import './chunk-OVNF4LLC.js';
|
|
29
|
+
import './chunk-OOD5NDQA.js';
|
|
30
30
|
import './chunk-5BHIBJDA.js';
|
|
31
31
|
import './chunk-CDDED64E.js';
|
|
32
32
|
import { resolveVersion, resolvePackageVersion } from './chunk-RA3O54FC.js';
|
|
33
33
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
34
34
|
import { cliInvocation, packageRunnerOf } from './chunk-CRB3POP4.js';
|
|
35
35
|
import { settingsPath, readSettings, SettingsParseError, listHookCandidates, PORTABLE_BIN, wrapHooks, writeSettings, unwrapHooks, REGISTERED_EVENTS, removeHooks, removeStatusline, cliBinResolvable, mergeHooks, repointWrappedHooks, AUTO_WRAP_EVENTS, mergeStatusline } from './chunk-URIZRCRY.js';
|
|
36
|
-
import './chunk-
|
|
36
|
+
import './chunk-UPA5KOOX.js';
|
|
37
37
|
import { cloneIsGoverned } from './chunk-YQR6E6OV.js';
|
|
38
38
|
import { removeJournalHooks, removePreCommitGuardHook } from './chunk-TUSYOL2O.js';
|
|
39
|
-
import './chunk-
|
|
40
|
-
import './chunk-
|
|
39
|
+
import './chunk-XFJ7YOPD.js';
|
|
40
|
+
import './chunk-DINRXUQA.js';
|
|
41
41
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
42
42
|
import './chunk-GJ4KBHBD.js';
|
|
43
43
|
import './chunk-SDAEXUIX.js';
|
|
@@ -3658,14 +3658,14 @@ function apiKeyOption() {
|
|
|
3658
3658
|
return new Option("--api-key <key>", `deprecated: use \`${cliInvocation()} login\` or OUTERLAYER_API_KEY`).hideHelp();
|
|
3659
3659
|
}
|
|
3660
3660
|
async function installStarterPackInRepo() {
|
|
3661
|
-
const { installStarterPack, formatStarterPackOutput } = await import('./starter-pack-
|
|
3661
|
+
const { installStarterPack, formatStarterPackOutput } = await import('./starter-pack-QWDE6FDK.js');
|
|
3662
3662
|
const cwd = process.cwd();
|
|
3663
3663
|
let repoRoot = cwd;
|
|
3664
3664
|
try {
|
|
3665
3665
|
repoRoot = execFileSync("git", ["rev-parse", "--show-toplevel"], { cwd, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim() || cwd;
|
|
3666
3666
|
} catch {
|
|
3667
3667
|
}
|
|
3668
|
-
const { declareAgentsMdLayout, isAgentsMdLayout, skillsBaseFor } = await import('./layout-
|
|
3668
|
+
const { declareAgentsMdLayout, isAgentsMdLayout, skillsBaseFor } = await import('./layout-KRWLUGYZ.js');
|
|
3669
3669
|
const fresh = !isAgentsMdLayout(repoRoot) && !existsSync(join(repoRoot, ".outerlayer/skills")) && !existsSync(join(repoRoot, ".outerlayer/AGENTS.md"));
|
|
3670
3670
|
const result = installStarterPack({ repoRoot, base: fresh ? ".agents/skills" : skillsBaseFor(repoRoot) });
|
|
3671
3671
|
if (fresh) declareAgentsMdLayout(repoRoot);
|
|
@@ -3791,7 +3791,7 @@ ${starter.output}`),
|
|
|
3791
3791
|
}
|
|
3792
3792
|
}
|
|
3793
3793
|
async function installMachineSkillsForSetup() {
|
|
3794
|
-
const { setupMachineSkills } = await import('./machine-skills-
|
|
3794
|
+
const { setupMachineSkills } = await import('./machine-skills-YVS4ZYCT.js');
|
|
3795
3795
|
const result = setupMachineSkills(homeFromEnv());
|
|
3796
3796
|
for (const failure of result.failures) process.stderr.write(`${C.yellow}!${C.reset} Could not write a maintained skill: ${failure}
|
|
3797
3797
|
`);
|
|
@@ -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-65YBQRSY.js');
|
|
3803
|
+
const { resolveRepoIdentity } = await import('./dist-ADKRGE7I.js');
|
|
3804
3804
|
return {
|
|
3805
3805
|
...realConnectDeps(),
|
|
3806
3806
|
home: homeFromEnv(),
|
|
@@ -3817,7 +3817,7 @@ function buildProgram(argv = process.argv) {
|
|
|
3817
3817
|
const program2 = new Command();
|
|
3818
3818
|
program2.name(cliInvocation()).description("OuterLayer \u2014 see what your coding agents actually do").enablePositionalOptions().version(resolveVersion()).hook("preAction", async (_root, command) => {
|
|
3819
3819
|
if (command.opts().apiKey !== void 0) warnDeprecated(API_KEY_FLAG_DEPRECATION);
|
|
3820
|
-
const { machineRefreshSkipped, refreshMachineSkills } = await import('./machine-skills-
|
|
3820
|
+
const { machineRefreshSkipped, refreshMachineSkills } = await import('./machine-skills-YVS4ZYCT.js');
|
|
3821
3821
|
const names = [];
|
|
3822
3822
|
for (let at = command; at?.parent; at = at.parent) names.push(at.name());
|
|
3823
3823
|
if (!machineRefreshSkipped(names, command._hidden === true, argv)) refreshMachineSkills(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-JMVLGBDE.js');
|
|
3878
|
+
const { fleetReadiness } = await import('./fleet-readiness-VIAVQYRP.js');
|
|
3879
3879
|
const problem = updateFlagProblem(opts);
|
|
3880
3880
|
if (problem !== void 0) {
|
|
3881
3881
|
fail(problem);
|
|
@@ -3892,7 +3892,7 @@ what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocat
|
|
|
3892
3892
|
}
|
|
3893
3893
|
let starterTemplate;
|
|
3894
3894
|
if (opts.template !== void 0) {
|
|
3895
|
-
const { assertKnownTemplate, StarterPackError } = await import('./starter-pack-
|
|
3895
|
+
const { assertKnownTemplate, StarterPackError } = await import('./starter-pack-QWDE6FDK.js');
|
|
3896
3896
|
try {
|
|
3897
3897
|
assertKnownTemplate(opts.template);
|
|
3898
3898
|
} catch (err) {
|
|
@@ -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-D3BDS7KY.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-D3BDS7KY.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-2A6P2SYL.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-65YBQRSY.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-65YBQRSY.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
|
|
@@ -4031,7 +4031,7 @@ Every later command reads the saved file, so none of them needs a key on
|
|
|
4031
4031
|
its command line. A saved key is checked for real on the first \`sync\`.
|
|
4032
4032
|
`
|
|
4033
4033
|
).action(async (opts) => {
|
|
4034
|
-
const { runLoginCommand, realLoginDeps } = await import('./login-browser-
|
|
4034
|
+
const { runLoginCommand, realLoginDeps } = await import('./login-browser-BAFZYJBR.js');
|
|
4035
4035
|
const code = await runLoginCommand(
|
|
4036
4036
|
{
|
|
4037
4037
|
browser: opts.browser !== false,
|
|
@@ -4064,13 +4064,13 @@ code is 1: revoke the token on /profile/security.
|
|
|
4064
4064
|
"\nIncremental: only sessions newer than the last checkpoint ship. The tier\nis applied on this machine before anything leaves it; `--dry-run` prints\nexactly what would. The hook-triggered background sync runs `--quiet`.\nExit 2 means the server rejected at least one session.\n"
|
|
4065
4065
|
).action(async (opts) => {
|
|
4066
4066
|
if (opts.link !== void 0) {
|
|
4067
|
-
const { lookupArtifactLink } = await import('./artifact-link-cmd-
|
|
4067
|
+
const { lookupArtifactLink } = await import('./artifact-link-cmd-4XQJO55P.js');
|
|
4068
4068
|
const found = lookupArtifactLink(opts.link);
|
|
4069
4069
|
if (found.ok) process.stdout.write(found.url + "\n");
|
|
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-CO4DFMHU.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-GU62YVQY.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(() => {
|
|
@@ -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-KLOMLL7X.js');
|
|
4195
4195
|
try {
|
|
4196
4196
|
await runSessionSender();
|
|
4197
4197
|
} catch (err) {
|
|
@@ -4234,7 +4234,7 @@ async function runCli(processArgv) {
|
|
|
4234
4234
|
await buildProgram(argv).parseAsync(argv);
|
|
4235
4235
|
}
|
|
4236
4236
|
async function compileContext(opts) {
|
|
4237
|
-
const { runEmit, EmitError } = await import('./emit-cmd-
|
|
4237
|
+
const { runEmit, EmitError } = await import('./emit-cmd-C3BUFAUR.js');
|
|
4238
4238
|
try {
|
|
4239
4239
|
const result = runEmit({ cwd: opts.dir, check: opts.check, json: opts.json });
|
|
4240
4240
|
if (result.exitCode !== 0) process.exitCode = result.exitCode;
|
|
@@ -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-E3YYBXRY.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-56C6DBUP.js');
|
|
4342
4342
|
let pr;
|
|
4343
4343
|
if (opts.pr !== void 0) {
|
|
4344
4344
|
pr = parseTrackerNumber(opts.pr);
|
|
@@ -4368,7 +4368,7 @@ locally so it never uploads. One correction can retire several duplicates.
|
|
|
4368
4368
|
throw err;
|
|
4369
4369
|
}
|
|
4370
4370
|
});
|
|
4371
|
-
emitCmd.command("demo <manifest>").description("Emit a narrated demo: one video artifact for each chapter of a recorded manifest").option("--no-narration", "store the clips with no speech; needs neither espeak-ng nor the voice pack").option("--item <number>", "work item whose recorded criteria the chapters are checked against").option("--pr <number>", "pull request number to anchor to, outside a recorded session").option("--compare <manifest>", "manifest of a second run of the same demo, to compare their stills").option("--replaces <artifact-id>", "item's newest demo record id, to retire; outside a recorded session needs --item").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(
|
|
4371
|
+
emitCmd.command("demo <manifest>").description("Emit a narrated demo: one video artifact for each chapter of a recorded manifest").option("--no-narration", "store the clips with no speech; needs neither espeak-ng nor the voice pack").option("--item <number>", "work item whose recorded criteria the chapters are checked against").option("--pr <number>", "pull request number to anchor to, outside a recorded session").option("--compare <manifest>", "manifest of a second run of the same demo, to compare their stills").option("--replaces <artifact-id>", "item's newest demo record id, to retire; outside a recorded session needs --item").option("--output <file>", "render the demo to this WebM file and stop; uploads nothing and needs no item").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(
|
|
4372
4372
|
"after",
|
|
4373
4373
|
`
|
|
4374
4374
|
${cliInvocation()} emit demo test-results/demo/manifest.json --item 412
|
|
@@ -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-YKTL6XWP.js');
|
|
4398
4398
|
let item;
|
|
4399
4399
|
if (opts.item !== void 0) {
|
|
4400
4400
|
item = parseTrackerNumber(opts.item);
|
|
@@ -4419,6 +4419,7 @@ as \`work demo --item <n> --json\` prints it.
|
|
|
4419
4419
|
pr,
|
|
4420
4420
|
compare: opts.compare,
|
|
4421
4421
|
replaces: opts.replaces,
|
|
4422
|
+
output: opts.output,
|
|
4422
4423
|
json: opts.json,
|
|
4423
4424
|
url: opts.url,
|
|
4424
4425
|
apiKey: opts.apiKey,
|
|
@@ -4435,6 +4436,10 @@ as \`work demo --item <n> --json\` prints it.
|
|
|
4435
4436
|
throw err;
|
|
4436
4437
|
}
|
|
4437
4438
|
});
|
|
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-DF6C7EST.js');
|
|
4441
|
+
await runDemoVoice();
|
|
4442
|
+
});
|
|
4438
4443
|
emitCmd.command("finding").description("Record one finding: a problem you hit in the factory").requiredOption("--id <id>", "client id \u2014 re-emitting the same id replaces it").option("--category <context|flaky-test|tooling|environment|defect|other>", "what kind of problem this is").requiredOption("--title <text>", "one sentence").requiredOption("--file <path>", "the file the problem is in, or the instruction's own path").option("--line <number>", "line number in --file").option("--rule-path <path>", "the instruction's own path \u2014 required for a context finding").option("--rule-line <number>", "line number in --rule-path").option("--rule-quote <text>", "the instruction's quoted sentence \u2014 required unless --rule-relation is missing").option("--rule-relation <wrong|broken|missing>", "how the instruction fails \u2014 required for a context finding").requiredOption("--where <label>", 'where this was recorded, e.g. "build session"').option("--detail <text>", "what happened, a few paragraphs").option("--cause <text>", 'what is actually wrong, or "unknown"').option("--suggestion <text>", "what would help").option("--command <text>", "the command that misbehaved").option("--error <text>", "the first error line").option("--test <name>", "the test name, for a flaky test").option("--symbol <name>", "the function the problem is in, for a defect").option("--started-at <event>", "event id where you hit the problem (default: first output showing --error)").option("--ended-at <event>", "event id where you got past it (default: the newest event)").option("--untimed", "record no time, only when the problem cost none in this session").option("--find <text>", "list this session's events that contain the text, and record nothing").option("--problem <id>", "a problem this finding reports; repeat for each one (needs --link-reason)", (value, previous = []) => [...previous, value]).option("--link-reason <text>", "why the finding reports each --problem").option("--new", "record a new problem instead of linking an existing one").option("--trace-id <id>", "the session's trace id, when there is one").option("--turn <number>", "turn index within the session").option("--round <number>", "round number, when there is one").addOption(new Option("--subject <value>").hideHelp()).addOption(new Option("--kind <value>").hideHelp()).addOption(new Option("--severity <value>").hideHelp()).addOption(new Option("--verdict <value>").hideHelp()).addOption(new Option("--fixed").hideHelp()).addOption(new Option("--source <value>").hideHelp()).option("--head-sha <sha>", "the commit this batch was recorded against").option("--context-source-sha <sha>", "the context-source commit this batch was recorded against").option("--item <number>", "work item to record on directly, by its number in this factory").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(
|
|
4439
4444
|
"after",
|
|
4440
4445
|
`
|
|
@@ -4464,7 +4469,7 @@ recent events with their ids. --find <text> searches all of them.
|
|
|
4464
4469
|
item that session was launched for is used automatically.
|
|
4465
4470
|
`
|
|
4466
4471
|
).action(async (opts) => {
|
|
4467
|
-
const { runEmitFinding, refuseRemovedFindingFlags, EmitFindingError } = await import('./emit-finding-cmd-
|
|
4472
|
+
const { runEmitFinding, refuseRemovedFindingFlags, EmitFindingError } = await import('./emit-finding-cmd-6MVFN4BO.js');
|
|
4468
4473
|
try {
|
|
4469
4474
|
refuseRemovedFindingFlags(opts);
|
|
4470
4475
|
const result = await runEmitFinding({
|
|
@@ -4531,7 +4536,7 @@ the whole batch. "untimed": true records one with no time on purpose.
|
|
|
4531
4536
|
that session was launched for is used automatically.
|
|
4532
4537
|
`
|
|
4533
4538
|
).action(async (file, opts) => {
|
|
4534
|
-
const { runEmitFindings, EmitFindingError } = await import('./emit-finding-cmd-
|
|
4539
|
+
const { runEmitFindings, EmitFindingError } = await import('./emit-finding-cmd-6MVFN4BO.js');
|
|
4535
4540
|
try {
|
|
4536
4541
|
const result = await runEmitFindings({
|
|
4537
4542
|
file,
|
|
@@ -4566,7 +4571,7 @@ command, the command exits 0, and \`sync\` sends it later. If the gateway refuse
|
|
|
4566
4571
|
the step, the command prints why and exits 1.
|
|
4567
4572
|
`
|
|
4568
4573
|
).action(async (name, opts) => {
|
|
4569
|
-
const { runEmitStep, EmitStepError } = await import('./emit-step-cmd-
|
|
4574
|
+
const { runEmitStep, EmitStepError } = await import('./emit-step-cmd-DM4CRYYI.js');
|
|
4570
4575
|
try {
|
|
4571
4576
|
await runEmitStep({
|
|
4572
4577
|
name,
|
|
@@ -4609,7 +4614,7 @@ of the item, and a (proof: <kind>) annotation names its proof.
|
|
|
4609
4614
|
${cliInvocation()} emit criteria acceptance/412-login.md --item 412
|
|
4610
4615
|
`
|
|
4611
4616
|
).action(async (file, opts) => {
|
|
4612
|
-
const { runEmitCriteria, EmitCriteriaError } = await import('./emit-criteria-cmd-
|
|
4617
|
+
const { runEmitCriteria, EmitCriteriaError } = await import('./emit-criteria-cmd-HRCWXD3W.js');
|
|
4613
4618
|
try {
|
|
4614
4619
|
const result = await runEmitCriteria({
|
|
4615
4620
|
file,
|
|
@@ -4633,9 +4638,9 @@ function registerSpecCommands(program2) {
|
|
|
4633
4638
|
const specCmd = program2.command("spec").description("Find, file and edit the issue a spec lives in, in your factory's tracker");
|
|
4634
4639
|
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
4640
|
const run = async (action) => {
|
|
4636
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4641
|
+
const { WorkCommandError } = await import('./work-cmd-VR7PPSP6.js');
|
|
4637
4642
|
try {
|
|
4638
|
-
await action(await import('./spec-cmd-
|
|
4643
|
+
await action(await import('./spec-cmd-MX5QFW32.js'));
|
|
4639
4644
|
} catch (err) {
|
|
4640
4645
|
if (err instanceof WorkCommandError) {
|
|
4641
4646
|
fail(err.message);
|
|
@@ -4670,7 +4675,7 @@ Prints each problem the item covers with its id, its reports and its result.
|
|
|
4670
4675
|
session was launched for is used.
|
|
4671
4676
|
`
|
|
4672
4677
|
).action(async (opts) => {
|
|
4673
|
-
const { runFindingsShow, FindingsCommandError } = await import('./findings-cmd-
|
|
4678
|
+
const { runFindingsShow, FindingsCommandError } = await import('./findings-cmd-K2OYBTUH.js');
|
|
4674
4679
|
try {
|
|
4675
4680
|
const result = await runFindingsShow({
|
|
4676
4681
|
item: opts.item,
|
|
@@ -4698,7 +4703,7 @@ Give exactly one of --fixed and --not-fixed, and a --note. Run it again for the
|
|
|
4698
4703
|
problem to replace the earlier result. A problem the item does not cover is refused.
|
|
4699
4704
|
`
|
|
4700
4705
|
).action(async (problem, opts) => {
|
|
4701
|
-
const { runFindingsResult, FindingsCommandError } = await import('./findings-cmd-
|
|
4706
|
+
const { runFindingsResult, FindingsCommandError } = await import('./findings-cmd-K2OYBTUH.js');
|
|
4702
4707
|
try {
|
|
4703
4708
|
const result = await runFindingsResult({
|
|
4704
4709
|
problem,
|
|
@@ -4740,7 +4745,7 @@ takes it, and prints the line that starts your session on it. That
|
|
|
4740
4745
|
session links itself and holds the item's lease while it works.
|
|
4741
4746
|
`
|
|
4742
4747
|
).action(async (opts) => {
|
|
4743
|
-
const { runWorkBuild, WorkCommandError } = await import('./work-cmd-
|
|
4748
|
+
const { runWorkBuild, WorkCommandError } = await import('./work-cmd-VR7PPSP6.js');
|
|
4744
4749
|
try {
|
|
4745
4750
|
await runWorkBuild(opts);
|
|
4746
4751
|
} catch (err) {
|
|
@@ -4763,7 +4768,7 @@ renews that session's own 20-minute lease, unless --no-lease or
|
|
|
4763
4768
|
--ended is given, or another worker already holds a live one.
|
|
4764
4769
|
`
|
|
4765
4770
|
).action(async (number, opts) => {
|
|
4766
|
-
const { runWorkLinkSession, WorkCommandError } = await import('./work-cmd-
|
|
4771
|
+
const { runWorkLinkSession, WorkCommandError } = await import('./work-cmd-VR7PPSP6.js');
|
|
4767
4772
|
try {
|
|
4768
4773
|
await runWorkLinkSession({ ...opts, number, noLease: opts.lease === false, logFailures: opts.logFailures === true });
|
|
4769
4774
|
} catch (err) {
|
|
@@ -4787,8 +4792,8 @@ criterion's new proof; --ready hands the thread back to a person. At
|
|
|
4787
4792
|
most one action flag may be given.
|
|
4788
4793
|
`
|
|
4789
4794
|
).action(async (opts) => {
|
|
4790
|
-
const { runWorkComment, WorkCommentCommandError } = await import('./work-comment-cmd-
|
|
4791
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4795
|
+
const { runWorkComment, WorkCommentCommandError } = await import('./work-comment-cmd-HVZF72B4.js');
|
|
4796
|
+
const { WorkCommandError } = await import('./work-cmd-VR7PPSP6.js');
|
|
4792
4797
|
try {
|
|
4793
4798
|
await runWorkComment(opts);
|
|
4794
4799
|
} catch (err) {
|
|
@@ -4809,8 +4814,8 @@ criterion that carries proof or a comment, each with who is waiting
|
|
|
4809
4814
|
on whom next.
|
|
4810
4815
|
`
|
|
4811
4816
|
).action(async (opts) => {
|
|
4812
|
-
const { runWorkThreads, WorkCommentCommandError } = await import('./work-comment-cmd-
|
|
4813
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4817
|
+
const { runWorkThreads, WorkCommentCommandError } = await import('./work-comment-cmd-HVZF72B4.js');
|
|
4818
|
+
const { WorkCommandError } = await import('./work-cmd-VR7PPSP6.js');
|
|
4814
4819
|
try {
|
|
4815
4820
|
await runWorkThreads(opts);
|
|
4816
4821
|
} catch (err) {
|
|
@@ -4834,8 +4839,8 @@ still running, or that an older runner released, has no log and the
|
|
|
4834
4839
|
command exits 1.
|
|
4835
4840
|
`
|
|
4836
4841
|
).action(async (opts) => {
|
|
4837
|
-
const { runWorkLogs, WorkLogsCommandError } = await import('./work-logs-cmd-
|
|
4838
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4842
|
+
const { runWorkLogs, WorkLogsCommandError } = await import('./work-logs-cmd-ZZVAHX36.js');
|
|
4843
|
+
const { WorkCommandError } = await import('./work-cmd-VR7PPSP6.js');
|
|
4839
4844
|
try {
|
|
4840
4845
|
await runWorkLogs(opts);
|
|
4841
4846
|
} catch (err) {
|
|
@@ -4858,8 +4863,8 @@ item is not built again until a new build request. Exits 1 when no host
|
|
|
4858
4863
|
build is running for the item.
|
|
4859
4864
|
`
|
|
4860
4865
|
).action(async (opts) => {
|
|
4861
|
-
const { runWorkStop, WorkStopCommandError } = await import('./work-stop-cmd-
|
|
4862
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4866
|
+
const { runWorkStop, WorkStopCommandError } = await import('./work-stop-cmd-SAT4XVM2.js');
|
|
4867
|
+
const { WorkCommandError } = await import('./work-cmd-VR7PPSP6.js');
|
|
4863
4868
|
try {
|
|
4864
4869
|
await runWorkStop(opts);
|
|
4865
4870
|
} catch (err) {
|
|
@@ -4880,8 +4885,8 @@ Prints the item's newest live demo record: its artifact id, the commit it was re
|
|
|
4880
4885
|
test file that recorded it. With --json, prints { "demo": null } for an item with no demo.
|
|
4881
4886
|
`
|
|
4882
4887
|
).action(async (opts) => {
|
|
4883
|
-
const { runWorkDemo, WorkDemoCommandError } = await import('./work-demo-cmd-
|
|
4884
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4888
|
+
const { runWorkDemo, WorkDemoCommandError } = await import('./work-demo-cmd-EDGNM5VJ.js');
|
|
4889
|
+
const { WorkCommandError } = await import('./work-cmd-VR7PPSP6.js');
|
|
4885
4890
|
try {
|
|
4886
4891
|
await runWorkDemo(opts);
|
|
4887
4892
|
} catch (err) {
|
|
@@ -4902,7 +4907,7 @@ deletes anything \u2014 the item is removed from Work only once no
|
|
|
4902
4907
|
live addition remains on it.
|
|
4903
4908
|
`
|
|
4904
4909
|
).action(async (opts) => {
|
|
4905
|
-
const { runWorkRemove, WorkCommandError } = await import('./work-cmd-
|
|
4910
|
+
const { runWorkRemove, WorkCommandError } = await import('./work-cmd-VR7PPSP6.js');
|
|
4906
4911
|
try {
|
|
4907
4912
|
await runWorkRemove(opts);
|
|
4908
4913
|
} catch (err) {
|
|
@@ -4914,7 +4919,7 @@ live addition remains on it.
|
|
|
4914
4919
|
}
|
|
4915
4920
|
});
|
|
4916
4921
|
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) => {
|
|
4917
|
-
const { runWorkStatus, WorkCommandError } = await import('./work-cmd-
|
|
4922
|
+
const { runWorkStatus, WorkCommandError } = await import('./work-cmd-VR7PPSP6.js');
|
|
4918
4923
|
try {
|
|
4919
4924
|
await runWorkStatus(opts);
|
|
4920
4925
|
} catch (err) {
|
|
@@ -4959,11 +4964,11 @@ differs from HEAD.
|
|
|
4959
4964
|
fail(trackerNumberError("--pr", opts.pr));
|
|
4960
4965
|
return;
|
|
4961
4966
|
}
|
|
4962
|
-
const { runWorkProofsCommand } = await import('./work-proofs-cmd-
|
|
4967
|
+
const { runWorkProofsCommand } = await import('./work-proofs-cmd-LIXV252G.js');
|
|
4963
4968
|
await runWorkProofsCommand({ ...opts, ...pr === void 0 ? {} : { pr } });
|
|
4964
4969
|
});
|
|
4965
4970
|
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) => {
|
|
4966
|
-
const { runWorkList, WorkCommandError } = await import('./work-cmd-
|
|
4971
|
+
const { runWorkList, WorkCommandError } = await import('./work-cmd-VR7PPSP6.js');
|
|
4967
4972
|
try {
|
|
4968
4973
|
await runWorkList(opts);
|
|
4969
4974
|
} catch (err) {
|
|
@@ -4984,7 +4989,7 @@ by a different key is refused; claiming again with the same key extends
|
|
|
4984
4989
|
it. --host is a label only.
|
|
4985
4990
|
`
|
|
4986
4991
|
).action(async (opts) => {
|
|
4987
|
-
const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-
|
|
4992
|
+
const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-O54L5DSL.js');
|
|
4988
4993
|
try {
|
|
4989
4994
|
await runWorkClaim(opts);
|
|
4990
4995
|
} catch (err) {
|
|
@@ -5004,7 +5009,7 @@ Extends the live lease this API key holds. Refused with a 410 if the
|
|
|
5004
5009
|
lease has expired, or a 403 if a different key holds it.
|
|
5005
5010
|
`
|
|
5006
5011
|
).action(async (opts) => {
|
|
5007
|
-
const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-
|
|
5012
|
+
const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-O54L5DSL.js');
|
|
5008
5013
|
try {
|
|
5009
5014
|
await runWorkRenew(opts);
|
|
5010
5015
|
} catch (err) {
|
|
@@ -5036,7 +5041,7 @@ applies to a host's lease only. A later tool call in the session
|
|
|
5036
5041
|
takes the lease again.
|
|
5037
5042
|
`
|
|
5038
5043
|
).action(async (opts) => {
|
|
5039
|
-
const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-
|
|
5044
|
+
const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-O54L5DSL.js');
|
|
5040
5045
|
try {
|
|
5041
5046
|
await runWorkRelease(opts);
|
|
5042
5047
|
} catch (err) {
|
|
@@ -5063,7 +5068,7 @@ Idempotent: declaring the same pull request twice is a no-op.
|
|
|
5063
5068
|
needs your own login; an agent session or a factory key is refused.
|
|
5064
5069
|
`
|
|
5065
5070
|
).action(async (number, opts) => {
|
|
5066
|
-
const { runWorkPr, WorkPrCommandError } = await import('./work-pr-cmd-
|
|
5071
|
+
const { runWorkPr, WorkPrCommandError } = await import('./work-pr-cmd-UJ7VWCJN.js');
|
|
5067
5072
|
try {
|
|
5068
5073
|
await runWorkPr({ ...opts, number });
|
|
5069
5074
|
} catch (err) {
|
|
@@ -5088,8 +5093,8 @@ login, then declares the pull request on the item, as \`work pr\` does.
|
|
|
5088
5093
|
Run it again after a change to the title or description.
|
|
5089
5094
|
`
|
|
5090
5095
|
).action(async (opts) => {
|
|
5091
|
-
const { runWorkOpenPr, WorkOpenPrCommandError } = await import('./work-open-pr-cmd-
|
|
5092
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
5096
|
+
const { runWorkOpenPr, WorkOpenPrCommandError } = await import('./work-open-pr-cmd-AQWZRJHZ.js');
|
|
5097
|
+
const { WorkCommandError } = await import('./work-cmd-VR7PPSP6.js');
|
|
5093
5098
|
try {
|
|
5094
5099
|
await runWorkOpenPr(opts);
|
|
5095
5100
|
} catch (err) {
|
|
@@ -5105,8 +5110,8 @@ function registerRunnerCommands(program2) {
|
|
|
5105
5110
|
const runnerCmd = program2.command("runner").description("Take work from the implement and amend queues on this machine");
|
|
5106
5111
|
const configOption = "the cloud config file to run against (default: ~/.outerlayer/config.json)";
|
|
5107
5112
|
runnerCmd.command("start").description("Run the loop: claim work, run it, report, clean up, repeat").option("--config <path>", configOption).action(async (opts) => {
|
|
5108
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5109
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
5113
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-EBT5VYPX.js');
|
|
5114
|
+
const { start, RunnerStartError } = await import('./loop-UVONXWXB.js');
|
|
5110
5115
|
const { RunnerAlreadyRunningError } = await import('./pidfile-PCG2H5T4.js');
|
|
5111
5116
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5112
5117
|
try {
|
|
@@ -5124,9 +5129,9 @@ function registerRunnerCommands(program2) {
|
|
|
5124
5129
|
"after",
|
|
5125
5130
|
"\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"
|
|
5126
5131
|
).action(async () => {
|
|
5127
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5128
|
-
const { containerStart } = await import('./container-start-
|
|
5129
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
5132
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-EBT5VYPX.js');
|
|
5133
|
+
const { containerStart } = await import('./container-start-RLX2PL3C.js');
|
|
5134
|
+
const { start, RunnerStartError } = await import('./loop-UVONXWXB.js');
|
|
5130
5135
|
const { RunnerAlreadyRunningError } = await import('./pidfile-PCG2H5T4.js');
|
|
5131
5136
|
try {
|
|
5132
5137
|
const result = await containerStart({
|
|
@@ -5148,16 +5153,16 @@ function registerRunnerCommands(program2) {
|
|
|
5148
5153
|
"after",
|
|
5149
5154
|
"\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"
|
|
5150
5155
|
).action(async (opts) => {
|
|
5151
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5156
|
+
const { defaultRunnerConfigPath } = await import('./config-EBT5VYPX.js');
|
|
5152
5157
|
const { runnerDir } = await import('./paths-AQ47ZRHK.js');
|
|
5153
|
-
const { runUpdateSteps } = await import('./update-steps-
|
|
5158
|
+
const { runUpdateSteps } = await import('./update-steps-MC3IUHW7.js');
|
|
5154
5159
|
const text = await runUpdateSteps({ runnerDirPath: runnerDir(opts.config ?? defaultRunnerConfigPath()) });
|
|
5155
5160
|
process.stdout.write(`${text}
|
|
5156
5161
|
`);
|
|
5157
5162
|
});
|
|
5158
5163
|
runnerCmd.command("check").description("Validate the config, the hooks and the key, and print the effective settings").option("--config <path>", configOption).action(async (opts) => {
|
|
5159
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5160
|
-
const { runRunnerCheck } = await import('./check-
|
|
5164
|
+
const { defaultRunnerConfigPath } = await import('./config-EBT5VYPX.js');
|
|
5165
|
+
const { runRunnerCheck } = await import('./check-FOWN6M3C.js');
|
|
5161
5166
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5162
5167
|
const result = await runRunnerCheck(configPath);
|
|
5163
5168
|
if (!result.ok) {
|
|
@@ -5178,7 +5183,7 @@ function registerRunnerCommands(program2) {
|
|
|
5178
5183
|
`);
|
|
5179
5184
|
});
|
|
5180
5185
|
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) => {
|
|
5181
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5186
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-EBT5VYPX.js');
|
|
5182
5187
|
const { runRunnerInstall, RunnerInstallError, launcherSummary, restartNote } = await import('./install-cmd-RGO7NWKP.js');
|
|
5183
5188
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5184
5189
|
if (opts.service !== true) {
|
|
@@ -5191,13 +5196,13 @@ function registerRunnerCommands(program2) {
|
|
|
5191
5196
|
}
|
|
5192
5197
|
}
|
|
5193
5198
|
const buildCpusMax = opts.buildCpusMax === void 0 ? void 0 : Number(opts.buildCpusMax);
|
|
5194
|
-
if (buildCpusMax !== void 0 && !(await import('./command-
|
|
5199
|
+
if (buildCpusMax !== void 0 && !(await import('./command-C5YKBTK4.js')).cpusAreValid(buildCpusMax)) {
|
|
5195
5200
|
fail(`--build-cpus-max ${opts.buildCpusMax} is not a number of CPUs from 0.01 to 1024.`);
|
|
5196
5201
|
return;
|
|
5197
5202
|
}
|
|
5198
5203
|
try {
|
|
5199
5204
|
if (opts.service === true) {
|
|
5200
|
-
const { installServiceCommand } = await import('./command-
|
|
5205
|
+
const { installServiceCommand } = await import('./command-C5YKBTK4.js');
|
|
5201
5206
|
const result2 = await installServiceCommand({
|
|
5202
5207
|
configPath,
|
|
5203
5208
|
print: opts.print,
|
|
@@ -5254,8 +5259,8 @@ To keep it running, run ${C.yellow}${cliInvocation()} runner install --service${
|
|
|
5254
5259
|
fail(`pass --service: \`${cliInvocation()} runner uninstall --service\` removes the runner's service.`);
|
|
5255
5260
|
return;
|
|
5256
5261
|
}
|
|
5257
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5258
|
-
const { uninstallServiceCommand } = await import('./command-
|
|
5262
|
+
const { defaultRunnerConfigPath } = await import('./config-EBT5VYPX.js');
|
|
5263
|
+
const { uninstallServiceCommand } = await import('./command-C5YKBTK4.js');
|
|
5259
5264
|
const result = await uninstallServiceCommand({ configPath: opts.config ?? defaultRunnerConfigPath(), unitName: opts.unitName, home: homeFromEnv() });
|
|
5260
5265
|
if (result.ok) for (const line of result.lines) process.stdout.write(`${C.green}\u2713${C.reset} ${line}
|
|
5261
5266
|
`);
|
|
@@ -5282,12 +5287,12 @@ already in claude.env is used.
|
|
|
5282
5287
|
printf '%s' "$CLAUDE_CODE_OAUTH_TOKEN" | ${cliInvocation()} runner init --agent claude --factory <org>/<factory>
|
|
5283
5288
|
`
|
|
5284
5289
|
).action(async (opts) => {
|
|
5285
|
-
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-
|
|
5286
|
-
const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-
|
|
5287
|
-
const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-
|
|
5288
|
-
const { detectMachine } = await import('./machine-
|
|
5289
|
-
const { chooseVm, runVmInit, VmInitError } = await import('./init-
|
|
5290
|
-
const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-
|
|
5290
|
+
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-EBT5VYPX.js');
|
|
5291
|
+
const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-KO3FT2XP.js');
|
|
5292
|
+
const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-JKXJWGGY.js');
|
|
5293
|
+
const { detectMachine } = await import('./machine-2BI76JZO.js');
|
|
5294
|
+
const { chooseVm, runVmInit, VmInitError } = await import('./init-YYZ7B4ZD.js');
|
|
5295
|
+
const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-QN4BLTVZ.js');
|
|
5291
5296
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5292
5297
|
if (opts.agent !== void 0 && !isAgentName(opts.agent)) {
|
|
5293
5298
|
fail(`--agent ${opts.agent}: runner init writes commands for ${Object.keys(AGENT_COMMANDS).join(", ")}. For another agent, leave --agent out and edit runner.commands.`);
|
|
@@ -5301,7 +5306,7 @@ already in claude.env is used.
|
|
|
5301
5306
|
try {
|
|
5302
5307
|
let credential;
|
|
5303
5308
|
if (agent !== void 0) {
|
|
5304
|
-
const { readPipedKey } = await import('./login-browser-
|
|
5309
|
+
const { readPipedKey } = await import('./login-browser-BAFZYJBR.js');
|
|
5305
5310
|
credential = credentialFromStdin(
|
|
5306
5311
|
await readPipedKey(process.stdin, {
|
|
5307
5312
|
onWaiting: () => process.stderr.write(`runner init is waiting for Claude's credential on stdin; close stdin to use the one already in claude.env
|
|
@@ -5437,7 +5442,7 @@ ${C.yellow}The runner will not update itself: ${installErr.message}${C.reset}
|
|
|
5437
5442
|
let serviceUp = false;
|
|
5438
5443
|
let restart;
|
|
5439
5444
|
if (installedLayout) {
|
|
5440
|
-
const { installServiceCommand } = await import('./command-
|
|
5445
|
+
const { installServiceCommand } = await import('./command-C5YKBTK4.js');
|
|
5441
5446
|
const service = await installServiceCommand({
|
|
5442
5447
|
configPath,
|
|
5443
5448
|
entryPath: process.argv[1] ?? "",
|
|
@@ -5481,12 +5486,12 @@ Next:
|
|
|
5481
5486
|
"after",
|
|
5482
5487
|
"\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"
|
|
5483
5488
|
).action(async (opts) => {
|
|
5484
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5485
|
-
const { buildRepositoryImage, RecipeError } = await import('./build-
|
|
5489
|
+
const { defaultRunnerConfigPath } = await import('./config-EBT5VYPX.js');
|
|
5490
|
+
const { buildRepositoryImage, RecipeError } = await import('./build-BBWAD5LR.js');
|
|
5486
5491
|
const { currentCliBuild } = await import('./cli-build-K56DK4DS.js');
|
|
5487
|
-
const { createDockerHost } = await import('./docker-
|
|
5488
|
-
const { builderSpec } = await import('./builder-
|
|
5489
|
-
const { loadRunnerConfig } = await import('./config-
|
|
5492
|
+
const { createDockerHost } = await import('./docker-CP656XNO.js');
|
|
5493
|
+
const { builderSpec } = await import('./builder-FD53GTWL.js');
|
|
5494
|
+
const { loadRunnerConfig } = await import('./config-EBT5VYPX.js');
|
|
5490
5495
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5491
5496
|
const loaded = (() => {
|
|
5492
5497
|
try {
|
|
@@ -5497,11 +5502,11 @@ Next:
|
|
|
5497
5502
|
})();
|
|
5498
5503
|
const memory = loaded?.build?.memory ?? "8g";
|
|
5499
5504
|
try {
|
|
5500
|
-
const { ensureRunnerIdentity } = await import('./runner-identity-
|
|
5505
|
+
const { ensureRunnerIdentity } = await import('./runner-identity-53I4UTVY.js');
|
|
5501
5506
|
await ensureRunnerIdentity(configPath, { log: (line) => console.error(line) }).catch((err) => {
|
|
5502
5507
|
console.error(`the runner's Docker identity could not be stored: ${err instanceof Error ? err.message : String(err)}`);
|
|
5503
5508
|
});
|
|
5504
|
-
const { imageTargetFor } = await import('./governing-source-
|
|
5509
|
+
const { imageTargetFor } = await import('./governing-source-MQA2SDJT.js');
|
|
5505
5510
|
const target = await imageTargetFor({ config: loaded, repository: opts.repository, fetchImpl: fetch });
|
|
5506
5511
|
if (!target.ok) {
|
|
5507
5512
|
if (opts.json) {
|
|
@@ -5564,17 +5569,17 @@ Next:
|
|
|
5564
5569
|
}
|
|
5565
5570
|
});
|
|
5566
5571
|
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) => {
|
|
5567
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5568
|
-
const { requestStop } = await import('./loop-
|
|
5572
|
+
const { defaultRunnerConfigPath } = await import('./config-EBT5VYPX.js');
|
|
5573
|
+
const { requestStop } = await import('./loop-UVONXWXB.js');
|
|
5569
5574
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5570
5575
|
const { runnerImageVersion } = await import('./image-tag-BTXKIH73.js');
|
|
5571
5576
|
await requestStop(configPath, Boolean(opts.now), void 0, { image: runnerImageVersion() !== void 0 });
|
|
5572
5577
|
});
|
|
5573
5578
|
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) => {
|
|
5574
|
-
const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-
|
|
5579
|
+
const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-EBT5VYPX.js');
|
|
5575
5580
|
const { jobsDir, runnerDir } = await import('./paths-AQ47ZRHK.js');
|
|
5576
|
-
const { listJobFiles, runnerProcessState } = await import('./loop-
|
|
5577
|
-
const { renderStatus } = await import('./status-
|
|
5581
|
+
const { listJobFiles, runnerProcessState } = await import('./loop-UVONXWXB.js');
|
|
5582
|
+
const { renderStatus } = await import('./status-YCQHAY45.js');
|
|
5578
5583
|
const { readHousekeepingRecord } = await import('./record-SVCNFCGQ.js');
|
|
5579
5584
|
const path2 = await import('path');
|
|
5580
5585
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
@@ -5595,7 +5600,7 @@ Next:
|
|
|
5595
5600
|
const processState = runnerProcessState(configPath);
|
|
5596
5601
|
const service = await (async () => {
|
|
5597
5602
|
if (process.platform !== "linux" || !existsSync("/run/systemd/system")) return void 0;
|
|
5598
|
-
const { inspectRunnerService } = await import('./find-unit-
|
|
5603
|
+
const { inspectRunnerService } = await import('./find-unit-O6WL6UIW.js');
|
|
5599
5604
|
const facts = inspectRunnerService(configPath);
|
|
5600
5605
|
return facts === void 0 ? void 0 : { unit: facts.unit, running: facts.mainPid !== void 0, delegated: facts.delegate };
|
|
5601
5606
|
})();
|
|
@@ -5632,8 +5637,8 @@ Next:
|
|
|
5632
5637
|
);
|
|
5633
5638
|
});
|
|
5634
5639
|
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) => {
|
|
5635
|
-
const { defaultRunnerConfigPath } = await import('./config-
|
|
5636
|
-
const { listJobFiles } = await import('./loop-
|
|
5640
|
+
const { defaultRunnerConfigPath } = await import('./config-EBT5VYPX.js');
|
|
5641
|
+
const { listJobFiles } = await import('./loop-UVONXWXB.js');
|
|
5637
5642
|
const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-LEVH6VAI.js');
|
|
5638
5643
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5639
5644
|
const item = parseTrackerNumber(itemArg);
|
|
@@ -5886,7 +5891,7 @@ would get, the instruction files and the names of the skills. It warns when the
|
|
|
5886
5891
|
no \`build\`. It needs the context-read permission: a login or a factory key with it is enough.
|
|
5887
5892
|
`
|
|
5888
5893
|
).action(async (opts) => {
|
|
5889
|
-
const { runContextShow, ContextShowError } = await import('./context-show-cmd-
|
|
5894
|
+
const { runContextShow, ContextShowError } = await import('./context-show-cmd-S5SEBOI2.js');
|
|
5890
5895
|
try {
|
|
5891
5896
|
const result = await runContextShow({ repo: opts.repo, json: opts.json, url: opts.url, apiKey: opts.apiKey, appId: opts.appId });
|
|
5892
5897
|
process.stdout.write(result.output);
|