@outerlayer/cli 0.26.0 → 0.26.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +3 -1
- package/dist/{agent-setup-YHFZB2BC.js → agent-setup-PZYQWN4H.js} +3 -3
- package/dist/{build-JK2DLT6X.js → build-AW4A2QPK.js} +2 -2
- package/dist/build-info.json +1 -1
- package/dist/{builder-TMA25KRR.js → builder-TDCBQ2RD.js} +2 -2
- package/dist/{check-FAGTKWHT.js → check-KL3LDAI3.js} +24 -24
- package/dist/{chunk-C3AMVSMS.js → chunk-2EAVBJMO.js} +2 -2
- package/dist/{chunk-DYEFPYME.js → chunk-2O5KA67H.js} +1 -1
- package/dist/{chunk-H3AEZIYB.js → chunk-6M4LNO22.js} +1 -1
- package/dist/{chunk-DVAAATJP.js → chunk-6OYAW5SF.js} +15 -10
- package/dist/{chunk-AINUN2TT.js → chunk-DJILFADE.js} +1 -1
- package/dist/{chunk-WVM6PM2N.js → chunk-DXHISLCI.js} +3 -3
- package/dist/{chunk-P7UQZFNY.js → chunk-EORWWFPA.js} +2 -2
- package/dist/{chunk-4R24DSL2.js → chunk-FI66JNLT.js} +4 -4
- package/dist/{chunk-DZUANBKP.js → chunk-GMPXOQTH.js} +4 -4
- package/dist/{chunk-6WZKI6LQ.js → chunk-GUT4IU7K.js} +16 -12
- package/dist/{chunk-FQCLEH34.js → chunk-HXFRJKMU.js} +2 -2
- package/dist/{chunk-DXDF43YG.js → chunk-I7RZHMXW.js} +1 -1
- package/dist/{chunk-7I6GZSN3.js → chunk-KZLLLARE.js} +1 -1
- package/dist/{chunk-2N72GPS2.js → chunk-MWPBF2XG.js} +1 -1
- package/dist/{chunk-HPOEVC2V.js → chunk-MXTN35XN.js} +3 -3
- package/dist/{chunk-4QKHBDEN.js → chunk-OL2O5PEI.js} +61 -16
- package/dist/{chunk-ARMZI56S.js → chunk-PCY7IGSL.js} +2 -2
- package/dist/{chunk-GJZEUQ6D.js → chunk-QRZLUUNN.js} +13 -0
- package/dist/{chunk-6S3UEBLB.js → chunk-RO3BRAO6.js} +2 -2
- package/dist/{chunk-G2T4HCGT.js → chunk-TEVO3RUV.js} +1 -1
- package/dist/{chunk-TI33WRBT.js → chunk-TODY3MTS.js} +3 -3
- package/dist/{chunk-CLUUAX6O.js → chunk-TPAF24PK.js} +2 -2
- package/dist/{chunk-ITP76BST.js → chunk-U2FSJBNI.js} +4 -4
- package/dist/{chunk-GNPTU4BM.js → chunk-URIZRCRY.js} +2 -1
- package/dist/{chunk-XBCJI6SV.js → chunk-V5LUWRCV.js} +2 -2
- package/dist/{chunk-D4UDE2AP.js → chunk-W3NVHOCS.js} +1 -1
- package/dist/{chunk-XK7FRM5J.js → chunk-WA7R6U2F.js} +7 -7
- package/dist/{chunk-XGJUNNXL.js → chunk-XLC7KEUV.js} +3 -1
- package/dist/{claude-launcher-FXFXYW2E.js → claude-launcher-O2U6P6ZD.js} +1 -1
- package/dist/{cli-CD4UNXBY.js → cli-UH2YQA5M.js} +77 -75
- package/dist/{command-A54TSZWD.js → command-ZECJJNLY.js} +13 -13
- package/dist/{connect-cmd-HAFFAVEO.js → connect-cmd-2JHSLBXK.js} +2 -2
- package/dist/{container-start-NRPEMKKE.js → container-start-GFH5LLSG.js} +14 -14
- package/dist/{control-plane-launch-FRK5IZXC.js → control-plane-launch-654RV5PO.js} +2 -2
- package/dist/{docker-4X2A5HDY.js → docker-Q7QJMX7I.js} +2 -2
- package/dist/{doctor-AXJQQBKY.js → doctor-3LCCPBX6.js} +15 -15
- package/dist/{emit-artifact-cmd-Y2GMWCSD.js → emit-artifact-cmd-AIBDDJGW.js} +8 -8
- package/dist/{emit-criteria-cmd-LI7OLHEC.js → emit-criteria-cmd-VMZIRJCQ.js} +3 -3
- package/dist/{emit-finding-cmd-3LU7C356.js → emit-finding-cmd-KMJNYQI7.js} +3 -3
- package/dist/{emit-result-cmd-NKAKRBW2.js → emit-result-cmd-LQN6AGGP.js} +8 -8
- package/dist/{emit-step-cmd-JQ23TRF5.js → emit-step-cmd-AUHA3EXY.js} +4 -4
- package/dist/{exec-client-KH33DICR.js → exec-client-J6L5FDRR.js} +2 -2
- package/dist/{governing-source-73APROH6.js → governing-source-5OU235UP.js} +6 -6
- package/dist/{guest-init-TOSKPGPF.js → guest-init-CXIHA5VI.js} +2 -2
- package/dist/{hook-fast-GD7F2EBL.js → hook-fast-LZSHEKUA.js} +1 -1
- package/dist/{hook-wrap-fast-NOOGDNSW.js → hook-wrap-fast-7VYYAAH4.js} +2 -2
- package/dist/index.js +6 -6
- package/dist/{init-IFQCZKY6.js → init-ARB2JUPA.js} +14 -14
- package/dist/{init-5WVPLO3G.js → init-C2RROWQU.js} +14 -14
- package/dist/{init-cmd-KNYXSA6O.js → init-cmd-SLXPX44L.js} +8 -8
- package/dist/{init-update-HTHYQOHU.js → init-update-FJDKY4SJ.js} +4 -4
- package/dist/{loop-HTWKPG3J.js → loop-QQV4PYNX.js} +24 -24
- package/dist/{machine-AYYL2WXW.js → machine-OVXDPPFK.js} +13 -13
- package/dist/{mcp-serve-cmd-QBFQN553.js → mcp-serve-cmd-U5N5DK3H.js} +1 -1
- package/dist/{runner-identity-NH6RLVMI.js → runner-identity-QQU6BUUO.js} +2 -2
- package/dist/{runner-key-3HAVHQZI.js → runner-key-WIEESRA5.js} +14 -14
- package/dist/{session-sender-535VA2CA.js → session-sender-DFB2N3DO.js} +9 -9
- package/dist/settings-3DBYKYQD.js +7 -0
- package/dist/{spec-cmd-KERLZ6GJ.js → spec-cmd-FBA4BJPZ.js} +4 -4
- package/dist/{status-IAXWRX7B.js → status-V2DWSLL3.js} +20 -20
- package/dist/{statusline-fast-GVRSBHAF.js → statusline-fast-YVHG6ZLX.js} +2 -2
- package/dist/{sync-cmd-EIRKU5FA.js → sync-cmd-KU567KX6.js} +8 -8
- package/dist/{watch-SMF5CW5T.js → watch-LBPCO6GR.js} +8 -8
- package/dist/{work-claim-cmd-JCUBRZKN.js → work-claim-cmd-IT7R7G3E.js} +6 -6
- package/dist/{work-cmd-C3CFJZYD.js → work-cmd-SJB6N6FZ.js} +4 -4
- package/dist/{work-comment-cmd-NDE3O7PN.js → work-comment-cmd-FGUQM2F3.js} +4 -4
- package/dist/{work-logs-cmd-KUGBBJAO.js → work-logs-cmd-74GRYFTW.js} +4 -4
- package/dist/{work-open-pr-cmd-TFIGKPRL.js → work-open-pr-cmd-CX7A2BE5.js} +5 -5
- package/dist/{work-pr-cmd-KKCLXRJL.js → work-pr-cmd-DKTBEFHO.js} +4 -4
- package/dist/{work-stop-cmd-QUEDBM4Q.js → work-stop-cmd-W6EKY5Y3.js} +4 -4
- package/package.json +1 -1
- package/dist/settings-AKYEOCC2.js +0 -7
|
@@ -1,19 +1,19 @@
|
|
|
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-WA7R6U2F.js';
|
|
4
4
|
import './chunk-XFGL53GU.js';
|
|
5
5
|
import './chunk-VJBFQP3H.js';
|
|
6
|
-
import { verifiedTrackerNames, TRACKERS } from './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
6
|
+
import { verifiedTrackerNames, TRACKERS } from './chunk-GMPXOQTH.js';
|
|
7
|
+
import './chunk-HXFRJKMU.js';
|
|
8
|
+
import './chunk-TEVO3RUV.js';
|
|
9
9
|
import './chunk-BUP5N3X6.js';
|
|
10
10
|
import './chunk-XSPA5ODY.js';
|
|
11
11
|
import './chunk-GOSFARMS.js';
|
|
12
12
|
import './chunk-MQ743JX3.js';
|
|
13
|
-
import './chunk-
|
|
14
|
-
import { hookFiredMarkerPath, installedCliDistDir } from './chunk-
|
|
13
|
+
import './chunk-QRZLUUNN.js';
|
|
14
|
+
import { hookFiredMarkerPath, installedCliDistDir } from './chunk-2EAVBJMO.js';
|
|
15
15
|
import './chunk-ZJSNLVCE.js';
|
|
16
|
-
import './chunk-
|
|
16
|
+
import './chunk-I7RZHMXW.js';
|
|
17
17
|
import './chunk-BKO6JEZI.js';
|
|
18
18
|
import './chunk-HCVLP7XA.js';
|
|
19
19
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
@@ -25,7 +25,7 @@ import { FIRST_VERSION_READING_AGENTS_SKILLS } from './chunk-JKNYTNYD.js';
|
|
|
25
25
|
import './chunk-HBISTTG3.js';
|
|
26
26
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
27
27
|
import { cliInvocation, packageRunnerOf } from './chunk-CRB3POP4.js';
|
|
28
|
-
import { settingsPath, readSettings, SettingsParseError, listHookCandidates, wrapHooks, writeSettings, unwrapHooks, REGISTERED_EVENTS,
|
|
28
|
+
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';
|
|
29
29
|
import './chunk-VWFOKRYS.js';
|
|
30
30
|
import { cloneIsGoverned } from './chunk-YQR6E6OV.js';
|
|
31
31
|
import { removeJournalHooks, removePreCommitGuardHook } from './chunk-TUSYOL2O.js';
|
|
@@ -3597,10 +3597,10 @@ function ensureGitignore(cwd) {
|
|
|
3597
3597
|
`);
|
|
3598
3598
|
return true;
|
|
3599
3599
|
}
|
|
3600
|
-
function orgRolloutSnippet(
|
|
3600
|
+
function orgRolloutSnippet() {
|
|
3601
3601
|
const hooks = {};
|
|
3602
3602
|
for (const event of REGISTERED_EVENTS) {
|
|
3603
|
-
hooks[event] = [{ hooks: [{ type: "command", command: `${
|
|
3603
|
+
hooks[event] = [{ hooks: [{ type: "command", command: `${PORTABLE_BIN} hook ${event}` }] }];
|
|
3604
3604
|
}
|
|
3605
3605
|
const managed = JSON.stringify({ hooks }, null, 2);
|
|
3606
3606
|
return [
|
|
@@ -3612,11 +3612,13 @@ function orgRolloutSnippet(cliBin) {
|
|
|
3612
3612
|
" macOS (MDM): /Library/Application Support/ClaudeCode/managed-settings.json",
|
|
3613
3613
|
" (domain com.anthropic.claudecode)",
|
|
3614
3614
|
" Linux: /etc/claude-code/managed-settings.json",
|
|
3615
|
-
" Windows (GPO): HKLM\\SOFTWARE\\Policies\\ClaudeCode",
|
|
3615
|
+
" Windows (GPO): HKLM\\SOFTWARE\\Policies\\ClaudeCode, as a REG_SZ value named Settings",
|
|
3616
3616
|
"",
|
|
3617
3617
|
"managed-settings.json:",
|
|
3618
3618
|
managed,
|
|
3619
3619
|
"",
|
|
3620
|
+
"The hooks run `outerlayer` from the PATH, so install the CLI on every machine first:",
|
|
3621
|
+
" npm install -g @outerlayer/cli",
|
|
3620
3622
|
`Each developer still runs \`${cliInvocation()} login\` once to attribute sessions.`
|
|
3621
3623
|
].join("\n");
|
|
3622
3624
|
}
|
|
@@ -3750,7 +3752,7 @@ async function installHooks(opts, resolvedBin, connected, starterTemplate, withN
|
|
|
3750
3752
|
const scope = opts.project ? "project" : "user";
|
|
3751
3753
|
let cliBin;
|
|
3752
3754
|
try {
|
|
3753
|
-
cliBin = initHookBin({ home: homeFromEnv(), runningBin: resolvedBin, remove: opts.remove === true });
|
|
3755
|
+
cliBin = scope === "project" ? PORTABLE_BIN : initHookBin({ home: homeFromEnv(), runningBin: resolvedBin, remove: opts.remove === true });
|
|
3754
3756
|
} catch (err) {
|
|
3755
3757
|
const text = `could not copy the CLI to ~/.outerlayer/cli: ${err instanceof Error ? err.message : String(err)}
|
|
3756
3758
|
Hooks were not changed. Fix the permissions on ~/.outerlayer, then re-run ${C.yellow}${cliInvocation()} init${C.reset}.`;
|
|
@@ -3784,7 +3786,7 @@ ${starter.output}`),
|
|
|
3784
3786
|
}
|
|
3785
3787
|
}
|
|
3786
3788
|
async function realConnectDepsForCwd() {
|
|
3787
|
-
const { realConnectDeps } = await import('./connect-cmd-
|
|
3789
|
+
const { realConnectDeps } = await import('./connect-cmd-2JHSLBXK.js');
|
|
3788
3790
|
const { resolveRepoIdentity } = await import('./dist-QPHZE47F.js');
|
|
3789
3791
|
return {
|
|
3790
3792
|
...realConnectDeps(),
|
|
@@ -3851,7 +3853,7 @@ edited file, and writes nothing. --control-plane makes no link and says
|
|
|
3851
3853
|
what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocation() + " doctor` reports the same\nstates under Starter files.\n"
|
|
3852
3854
|
).action(async (opts) => {
|
|
3853
3855
|
if (opts.update || opts.dryRun) {
|
|
3854
|
-
const { runInitUpdate, formatInitUpdate, updateFlagProblem } = await import('./init-update-
|
|
3856
|
+
const { runInitUpdate, formatInitUpdate, updateFlagProblem } = await import('./init-update-FJDKY4SJ.js');
|
|
3855
3857
|
const problem = updateFlagProblem(opts);
|
|
3856
3858
|
if (problem !== void 0) {
|
|
3857
3859
|
fail(problem);
|
|
@@ -3883,7 +3885,7 @@ what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocat
|
|
|
3883
3885
|
}
|
|
3884
3886
|
const cliBin = resolveCliBin();
|
|
3885
3887
|
if (opts.org) {
|
|
3886
|
-
process.stdout.write(orgRolloutSnippet(
|
|
3888
|
+
process.stdout.write(orgRolloutSnippet() + "\n");
|
|
3887
3889
|
return;
|
|
3888
3890
|
}
|
|
3889
3891
|
if (opts.remove || opts.local) {
|
|
@@ -3898,12 +3900,12 @@ what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocat
|
|
|
3898
3900
|
if (changed.length > 0 && !opts.json) process.stdout.write(`Removed the claude function from ${changed.join(", ")}.
|
|
3899
3901
|
`);
|
|
3900
3902
|
}
|
|
3901
|
-
const shell = !opts.remove && opts.shellFunction !== void 0 ? (await import('./init-cmd-
|
|
3903
|
+
const shell = !opts.remove && opts.shellFunction !== void 0 ? (await import('./init-cmd-SLXPX44L.js')).applyShellFunctionFlag(opts.shellFunction, { home: homeFromEnv(), shellPath: process.env.SHELL }) : void 0;
|
|
3902
3904
|
if (opts.json) writeJson(shell === void 0 ? outcome.result : { ...outcome.result, shellFunction: { outcome: shell.outcome, reason: shell.reason } });
|
|
3903
3905
|
else process.stdout.write(outcome.text + (shell?.text ?? ""));
|
|
3904
3906
|
return;
|
|
3905
3907
|
}
|
|
3906
|
-
const { runInitCommand } = await import('./init-cmd-
|
|
3908
|
+
const { runInitCommand } = await import('./init-cmd-SLXPX44L.js');
|
|
3907
3909
|
const code = await runInitCommand(
|
|
3908
3910
|
{ json: opts.json, factory: opts.factory, shellFunction: opts.shellFunction },
|
|
3909
3911
|
{
|
|
@@ -3915,7 +3917,7 @@ what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocat
|
|
|
3915
3917
|
return { ok, text, detail };
|
|
3916
3918
|
},
|
|
3917
3919
|
runAgentSetup: async () => {
|
|
3918
|
-
const { runAgentSetup } = await import('./agent-setup-
|
|
3920
|
+
const { runAgentSetup } = await import('./agent-setup-PZYQWN4H.js');
|
|
3919
3921
|
return runAgentSetup({ cwd: process.cwd(), skillsLink: opts.skillsLink !== false });
|
|
3920
3922
|
},
|
|
3921
3923
|
runDoctorChecks: gatherDoctorChecks,
|
|
@@ -3924,7 +3926,7 @@ what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocat
|
|
|
3924
3926
|
shellPath: process.env.SHELL,
|
|
3925
3927
|
interactive: Boolean(process.stdin.isTTY && process.stderr.isTTY) && opts.json !== true,
|
|
3926
3928
|
ask: async () => {
|
|
3927
|
-
const { promptOnTerminal } = await import('./connect-cmd-
|
|
3929
|
+
const { promptOnTerminal } = await import('./connect-cmd-2JHSLBXK.js');
|
|
3928
3930
|
const answer = await promptOnTerminal({
|
|
3929
3931
|
message: `Should plain claude start Claude Code through ${cliInvocation()} claude? That is how a session in a governed repository gets its control plane. It adds one block to your zsh or bash startup file.`,
|
|
3930
3932
|
options: [
|
|
@@ -3963,7 +3965,7 @@ linked (true, false, or null when it could not be checked) and, when false,
|
|
|
3963
3965
|
linkUrl.
|
|
3964
3966
|
`
|
|
3965
3967
|
).action(async (opts) => {
|
|
3966
|
-
const { runConnectCommand } = await import('./connect-cmd-
|
|
3968
|
+
const { runConnectCommand } = await import('./connect-cmd-2JHSLBXK.js');
|
|
3967
3969
|
const code = await runConnectCommand({ factory: opts.factory, json: opts.json }, await realConnectDepsForCwd(), {
|
|
3968
3970
|
stdout: process.stdout,
|
|
3969
3971
|
stderr: process.stderr
|
|
@@ -4041,7 +4043,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4041
4043
|
else fail(found.reason);
|
|
4042
4044
|
return;
|
|
4043
4045
|
}
|
|
4044
|
-
const { runSync, SyncConfigError, SyncTransportError } = await import('./sync-cmd-
|
|
4046
|
+
const { runSync, SyncConfigError, SyncTransportError } = await import('./sync-cmd-KU567KX6.js');
|
|
4045
4047
|
try {
|
|
4046
4048
|
const result = await runSync({
|
|
4047
4049
|
url: opts.url,
|
|
@@ -4072,7 +4074,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4072
4074
|
if (invokedCommandToken(argv) === "watch") {
|
|
4073
4075
|
warnDeprecated(`\`${cliInvocation()} watch\` is now \`${cliInvocation()} daemon\`; the old name will be removed in a future release.`);
|
|
4074
4076
|
}
|
|
4075
|
-
const { runWatch } = await import('./watch-
|
|
4077
|
+
const { runWatch } = await import('./watch-LBPCO6GR.js');
|
|
4076
4078
|
await runWatch({ once: opts.once });
|
|
4077
4079
|
});
|
|
4078
4080
|
program2.command("hook <event>", { hidden: true }).description("capture-hook fast path, installed by `init`").action(() => {
|
|
@@ -4133,7 +4135,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4133
4135
|
}
|
|
4134
4136
|
});
|
|
4135
4137
|
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) => {
|
|
4136
|
-
const { runVmExec } = await import('./exec-client-
|
|
4138
|
+
const { runVmExec } = await import('./exec-client-J6L5FDRR.js');
|
|
4137
4139
|
const env = {};
|
|
4138
4140
|
for (const entry of opts.env) {
|
|
4139
4141
|
const eq = entry.indexOf("=");
|
|
@@ -4162,7 +4164,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4162
4164
|
process.exitCode = await runBuildCommand({ dir: opts.dir, argv: command });
|
|
4163
4165
|
});
|
|
4164
4166
|
program2.command("session-sender", { hidden: true }).description("stream a runner build's sessions to its work item while the build runs").action(async () => {
|
|
4165
|
-
const { runSessionSender } = await import('./session-sender-
|
|
4167
|
+
const { runSessionSender } = await import('./session-sender-DFB2N3DO.js');
|
|
4166
4168
|
try {
|
|
4167
4169
|
await runSessionSender();
|
|
4168
4170
|
} catch (err) {
|
|
@@ -4170,7 +4172,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4170
4172
|
}
|
|
4171
4173
|
});
|
|
4172
4174
|
program2.command("vm-init", { hidden: true }).description("lay out a microVM build's guest; the guest helper runs it").action(async () => {
|
|
4173
|
-
const { realGuestHost, runGuestInit } = await import('./guest-init-
|
|
4175
|
+
const { realGuestHost, runGuestInit } = await import('./guest-init-CXIHA5VI.js');
|
|
4174
4176
|
const { readFileSync: readFileSync3 } = await import('fs');
|
|
4175
4177
|
try {
|
|
4176
4178
|
runGuestInit(realGuestHost(), readFileSync3("/proc/cmdline", "utf8"));
|
|
@@ -4252,7 +4254,7 @@ Compiling .outerlayer/ moved to \`${cliInvocation()} context emit\`.
|
|
|
4252
4254
|
await compileContext({ dir: opts.dir, check: opts.check, json: opts.json });
|
|
4253
4255
|
return;
|
|
4254
4256
|
}
|
|
4255
|
-
const { runEmitResult, EmitResultError } = await import('./emit-result-cmd-
|
|
4257
|
+
const { runEmitResult, EmitResultError } = await import('./emit-result-cmd-LQN6AGGP.js');
|
|
4256
4258
|
try {
|
|
4257
4259
|
const result = await runEmitResult({
|
|
4258
4260
|
name,
|
|
@@ -4302,7 +4304,7 @@ everywhere, bytes and deep link untouched; a still-queued one is cancelled
|
|
|
4302
4304
|
locally so it never uploads. One correction can retire several duplicates.
|
|
4303
4305
|
`
|
|
4304
4306
|
).action(async (file, opts) => {
|
|
4305
|
-
const { runEmitArtifact, EmitArtifactError } = await import('./emit-artifact-cmd-
|
|
4307
|
+
const { runEmitArtifact, EmitArtifactError } = await import('./emit-artifact-cmd-AIBDDJGW.js');
|
|
4306
4308
|
let pr;
|
|
4307
4309
|
if (opts.pr !== void 0) {
|
|
4308
4310
|
pr = parseTrackerNumber(opts.pr);
|
|
@@ -4361,7 +4363,7 @@ recent events with their ids. --find <text> searches all of them.
|
|
|
4361
4363
|
item that session was launched for is used automatically.
|
|
4362
4364
|
`
|
|
4363
4365
|
).action(async (opts) => {
|
|
4364
|
-
const { runEmitFinding, refuseRemovedFindingFlags, EmitFindingError } = await import('./emit-finding-cmd-
|
|
4366
|
+
const { runEmitFinding, refuseRemovedFindingFlags, EmitFindingError } = await import('./emit-finding-cmd-KMJNYQI7.js');
|
|
4365
4367
|
try {
|
|
4366
4368
|
refuseRemovedFindingFlags(opts);
|
|
4367
4369
|
const result = await runEmitFinding({
|
|
@@ -4428,7 +4430,7 @@ the whole batch. "untimed": true records one with no time on purpose.
|
|
|
4428
4430
|
that session was launched for is used automatically.
|
|
4429
4431
|
`
|
|
4430
4432
|
).action(async (file, opts) => {
|
|
4431
|
-
const { runEmitFindings, EmitFindingError } = await import('./emit-finding-cmd-
|
|
4433
|
+
const { runEmitFindings, EmitFindingError } = await import('./emit-finding-cmd-KMJNYQI7.js');
|
|
4432
4434
|
try {
|
|
4433
4435
|
const result = await runEmitFindings({
|
|
4434
4436
|
file,
|
|
@@ -4463,7 +4465,7 @@ command, the command exits 0, and \`sync\` sends it later. If the gateway refuse
|
|
|
4463
4465
|
the step, the command prints why and exits 1.
|
|
4464
4466
|
`
|
|
4465
4467
|
).action(async (name, opts) => {
|
|
4466
|
-
const { runEmitStep, EmitStepError } = await import('./emit-step-cmd-
|
|
4468
|
+
const { runEmitStep, EmitStepError } = await import('./emit-step-cmd-AUHA3EXY.js');
|
|
4467
4469
|
try {
|
|
4468
4470
|
await runEmitStep({
|
|
4469
4471
|
name,
|
|
@@ -4506,7 +4508,7 @@ of the item, and a (proof: <kind>) annotation names its proof.
|
|
|
4506
4508
|
${cliInvocation()} emit criteria acceptance/412-login.md --item 412
|
|
4507
4509
|
`
|
|
4508
4510
|
).action(async (file, opts) => {
|
|
4509
|
-
const { runEmitCriteria, EmitCriteriaError } = await import('./emit-criteria-cmd-
|
|
4511
|
+
const { runEmitCriteria, EmitCriteriaError } = await import('./emit-criteria-cmd-VMZIRJCQ.js');
|
|
4510
4512
|
try {
|
|
4511
4513
|
const result = await runEmitCriteria({
|
|
4512
4514
|
file,
|
|
@@ -4530,9 +4532,9 @@ function registerSpecCommands(program2) {
|
|
|
4530
4532
|
const specCmd = program2.command("spec").description("Find, file and edit the issue a spec lives in, in your factory's tracker");
|
|
4531
4533
|
const credentialOptions = (command) => command.option("--json", "machine-readable JSON output").option("--url <url>", "cloud base URL (or OUTERLAYER_URL / config)").addOption(apiKeyOption()).option("--app-id <id>", "factory id the key is bound to (or OUTERLAYER_APP_ID / config)");
|
|
4532
4534
|
const run = async (action) => {
|
|
4533
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4535
|
+
const { WorkCommandError } = await import('./work-cmd-SJB6N6FZ.js');
|
|
4534
4536
|
try {
|
|
4535
|
-
await action(await import('./spec-cmd-
|
|
4537
|
+
await action(await import('./spec-cmd-FBA4BJPZ.js'));
|
|
4536
4538
|
} catch (err) {
|
|
4537
4539
|
if (err instanceof WorkCommandError) {
|
|
4538
4540
|
fail(err.message);
|
|
@@ -4574,7 +4576,7 @@ takes it, and prints the line that starts your session on it. That
|
|
|
4574
4576
|
session links itself and holds the item's lease while it works.
|
|
4575
4577
|
`
|
|
4576
4578
|
).action(async (opts) => {
|
|
4577
|
-
const { runWorkBuild, WorkCommandError } = await import('./work-cmd-
|
|
4579
|
+
const { runWorkBuild, WorkCommandError } = await import('./work-cmd-SJB6N6FZ.js');
|
|
4578
4580
|
try {
|
|
4579
4581
|
await runWorkBuild(opts);
|
|
4580
4582
|
} catch (err) {
|
|
@@ -4597,7 +4599,7 @@ renews that session's own 20-minute lease, unless --no-lease or
|
|
|
4597
4599
|
--ended is given, or another worker already holds a live one.
|
|
4598
4600
|
`
|
|
4599
4601
|
).action(async (number, opts) => {
|
|
4600
|
-
const { runWorkLinkSession, WorkCommandError } = await import('./work-cmd-
|
|
4602
|
+
const { runWorkLinkSession, WorkCommandError } = await import('./work-cmd-SJB6N6FZ.js');
|
|
4601
4603
|
try {
|
|
4602
4604
|
await runWorkLinkSession({ ...opts, number, noLease: opts.lease === false, logFailures: opts.logFailures === true });
|
|
4603
4605
|
} catch (err) {
|
|
@@ -4621,8 +4623,8 @@ criterion's new proof; --ready hands the thread back to a person. At
|
|
|
4621
4623
|
most one action flag may be given.
|
|
4622
4624
|
`
|
|
4623
4625
|
).action(async (opts) => {
|
|
4624
|
-
const { runWorkComment, WorkCommentCommandError } = await import('./work-comment-cmd-
|
|
4625
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4626
|
+
const { runWorkComment, WorkCommentCommandError } = await import('./work-comment-cmd-FGUQM2F3.js');
|
|
4627
|
+
const { WorkCommandError } = await import('./work-cmd-SJB6N6FZ.js');
|
|
4626
4628
|
try {
|
|
4627
4629
|
await runWorkComment(opts);
|
|
4628
4630
|
} catch (err) {
|
|
@@ -4643,8 +4645,8 @@ criterion that carries proof or a comment, each with who is waiting
|
|
|
4643
4645
|
on whom next.
|
|
4644
4646
|
`
|
|
4645
4647
|
).action(async (opts) => {
|
|
4646
|
-
const { runWorkThreads, WorkCommentCommandError } = await import('./work-comment-cmd-
|
|
4647
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4648
|
+
const { runWorkThreads, WorkCommentCommandError } = await import('./work-comment-cmd-FGUQM2F3.js');
|
|
4649
|
+
const { WorkCommandError } = await import('./work-cmd-SJB6N6FZ.js');
|
|
4648
4650
|
try {
|
|
4649
4651
|
await runWorkThreads(opts);
|
|
4650
4652
|
} catch (err) {
|
|
@@ -4668,8 +4670,8 @@ still running, or that an older runner released, has no log and the
|
|
|
4668
4670
|
command exits 1.
|
|
4669
4671
|
`
|
|
4670
4672
|
).action(async (opts) => {
|
|
4671
|
-
const { runWorkLogs, WorkLogsCommandError } = await import('./work-logs-cmd-
|
|
4672
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4673
|
+
const { runWorkLogs, WorkLogsCommandError } = await import('./work-logs-cmd-74GRYFTW.js');
|
|
4674
|
+
const { WorkCommandError } = await import('./work-cmd-SJB6N6FZ.js');
|
|
4673
4675
|
try {
|
|
4674
4676
|
await runWorkLogs(opts);
|
|
4675
4677
|
} catch (err) {
|
|
@@ -4692,8 +4694,8 @@ item is not built again until a new build request. Exits 1 when no host
|
|
|
4692
4694
|
build is running for the item.
|
|
4693
4695
|
`
|
|
4694
4696
|
).action(async (opts) => {
|
|
4695
|
-
const { runWorkStop, WorkStopCommandError } = await import('./work-stop-cmd-
|
|
4696
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4697
|
+
const { runWorkStop, WorkStopCommandError } = await import('./work-stop-cmd-W6EKY5Y3.js');
|
|
4698
|
+
const { WorkCommandError } = await import('./work-cmd-SJB6N6FZ.js');
|
|
4697
4699
|
try {
|
|
4698
4700
|
await runWorkStop(opts);
|
|
4699
4701
|
} catch (err) {
|
|
@@ -4714,7 +4716,7 @@ deletes anything \u2014 the item is removed from Work only once no
|
|
|
4714
4716
|
live addition remains on it.
|
|
4715
4717
|
`
|
|
4716
4718
|
).action(async (opts) => {
|
|
4717
|
-
const { runWorkRemove, WorkCommandError } = await import('./work-cmd-
|
|
4719
|
+
const { runWorkRemove, WorkCommandError } = await import('./work-cmd-SJB6N6FZ.js');
|
|
4718
4720
|
try {
|
|
4719
4721
|
await runWorkRemove(opts);
|
|
4720
4722
|
} catch (err) {
|
|
@@ -4726,7 +4728,7 @@ live addition remains on it.
|
|
|
4726
4728
|
}
|
|
4727
4729
|
});
|
|
4728
4730
|
workCmd.command("status").description("Show one item's stage, gate ledger, and additions").option("--item <number>", "the item's number inside this factory").option("--issue <number>", "issue number, or a Linear/Jira key like ENG-123").option(TRACKER_OPTION_FLAG, "tracker for a keyed --issue, when both hold the key").option("--repo <owner/name>", "repository for an issue number (default: the checkout's remote)").option("--json", "machine-readable JSON output").option("--url <url>", "cloud base URL (or OUTERLAYER_URL / config)").addOption(apiKeyOption()).option("--app-id <id>", "factory id the key is bound to (or OUTERLAYER_APP_ID / config)").action(async (opts) => {
|
|
4729
|
-
const { runWorkStatus, WorkCommandError } = await import('./work-cmd-
|
|
4731
|
+
const { runWorkStatus, WorkCommandError } = await import('./work-cmd-SJB6N6FZ.js');
|
|
4730
4732
|
try {
|
|
4731
4733
|
await runWorkStatus(opts);
|
|
4732
4734
|
} catch (err) {
|
|
@@ -4738,7 +4740,7 @@ live addition remains on it.
|
|
|
4738
4740
|
}
|
|
4739
4741
|
});
|
|
4740
4742
|
workCmd.command("list").description("List live work items for this factory").option("--stage <spec|build|review>", "filter by stage").option("--section <attention|waiting|flowing>", "filter by Queue section").option("--repo <owner/name>", "repository (default: the current checkout's remote)").option("--unclaimed", "only items with no live lease").option("--claimed", "only items with a live lease, held by a host or a local session").option("--startable", "only items a host can start: a build request, no open PR, no live lease").option("--needs <amend>", "only items with a thread waiting on an agent").option("--json", "machine-readable JSON output").option("--url <url>", "cloud base URL (or OUTERLAYER_URL / config)").addOption(apiKeyOption()).option("--app-id <id>", "factory id the key is bound to (or OUTERLAYER_APP_ID / config)").action(async (opts) => {
|
|
4741
|
-
const { runWorkList, WorkCommandError } = await import('./work-cmd-
|
|
4743
|
+
const { runWorkList, WorkCommandError } = await import('./work-cmd-SJB6N6FZ.js');
|
|
4742
4744
|
try {
|
|
4743
4745
|
await runWorkList(opts);
|
|
4744
4746
|
} catch (err) {
|
|
@@ -4759,7 +4761,7 @@ by a different key is refused; claiming again with the same key extends
|
|
|
4759
4761
|
it. --host is a label only.
|
|
4760
4762
|
`
|
|
4761
4763
|
).action(async (opts) => {
|
|
4762
|
-
const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-
|
|
4764
|
+
const { runWorkClaim, WorkCommandError } = await import('./work-claim-cmd-IT7R7G3E.js');
|
|
4763
4765
|
try {
|
|
4764
4766
|
await runWorkClaim(opts);
|
|
4765
4767
|
} catch (err) {
|
|
@@ -4779,7 +4781,7 @@ Extends the live lease this API key holds. Refused with a 410 if the
|
|
|
4779
4781
|
lease has expired, or a 403 if a different key holds it.
|
|
4780
4782
|
`
|
|
4781
4783
|
).action(async (opts) => {
|
|
4782
|
-
const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-
|
|
4784
|
+
const { runWorkRenew, WorkCommandError } = await import('./work-claim-cmd-IT7R7G3E.js');
|
|
4783
4785
|
try {
|
|
4784
4786
|
await runWorkRenew(opts);
|
|
4785
4787
|
} catch (err) {
|
|
@@ -4811,7 +4813,7 @@ applies to a host's lease only. A later tool call in the session
|
|
|
4811
4813
|
takes the lease again.
|
|
4812
4814
|
`
|
|
4813
4815
|
).action(async (opts) => {
|
|
4814
|
-
const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-
|
|
4816
|
+
const { runWorkRelease, WorkCommandError } = await import('./work-claim-cmd-IT7R7G3E.js');
|
|
4815
4817
|
try {
|
|
4816
4818
|
await runWorkRelease(opts);
|
|
4817
4819
|
} catch (err) {
|
|
@@ -4838,7 +4840,7 @@ Idempotent: declaring the same pull request twice is a no-op.
|
|
|
4838
4840
|
needs your own login; an agent session or a factory key is refused.
|
|
4839
4841
|
`
|
|
4840
4842
|
).action(async (number, opts) => {
|
|
4841
|
-
const { runWorkPr, WorkPrCommandError } = await import('./work-pr-cmd-
|
|
4843
|
+
const { runWorkPr, WorkPrCommandError } = await import('./work-pr-cmd-DKTBEFHO.js');
|
|
4842
4844
|
try {
|
|
4843
4845
|
await runWorkPr({ ...opts, number });
|
|
4844
4846
|
} catch (err) {
|
|
@@ -4863,8 +4865,8 @@ login, then declares the pull request on the item, as \`work pr\` does.
|
|
|
4863
4865
|
Run it again after a change to the title or description.
|
|
4864
4866
|
`
|
|
4865
4867
|
).action(async (opts) => {
|
|
4866
|
-
const { runWorkOpenPr, WorkOpenPrCommandError } = await import('./work-open-pr-cmd-
|
|
4867
|
-
const { WorkCommandError } = await import('./work-cmd-
|
|
4868
|
+
const { runWorkOpenPr, WorkOpenPrCommandError } = await import('./work-open-pr-cmd-CX7A2BE5.js');
|
|
4869
|
+
const { WorkCommandError } = await import('./work-cmd-SJB6N6FZ.js');
|
|
4868
4870
|
try {
|
|
4869
4871
|
await runWorkOpenPr(opts);
|
|
4870
4872
|
} catch (err) {
|
|
@@ -4881,7 +4883,7 @@ function registerRunnerCommands(program2) {
|
|
|
4881
4883
|
const configOption = "the cloud config file to run against (default: ~/.outerlayer/config.json)";
|
|
4882
4884
|
runnerCmd.command("start").description("Run the loop: claim work, run it, report, clean up, repeat").option("--config <path>", configOption).action(async (opts) => {
|
|
4883
4885
|
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-JJ3EO7SB.js');
|
|
4884
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
4886
|
+
const { start, RunnerStartError } = await import('./loop-QQV4PYNX.js');
|
|
4885
4887
|
const { RunnerAlreadyRunningError } = await import('./pidfile-BY5Z6YH7.js');
|
|
4886
4888
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
4887
4889
|
try {
|
|
@@ -4900,8 +4902,8 @@ function registerRunnerCommands(program2) {
|
|
|
4900
4902
|
"\nReads OUTERLAYER_URL, OUTERLAYER_APP_ID, OUTERLAYER_API_KEY, OUTERLAYER_RUNNER_NAME and one Claude credential\n(CLAUDE_CODE_OAUTH_TOKEN, ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN) from the environment. OUTERLAYER_AGENT\nis optional and defaults to claude. On a later start it refuses variables that disagree with the config in the volume.\nThe image sets OUTERLAYER_RUNNER_IMAGE; outside the image, use `runner start`.\n"
|
|
4901
4903
|
).action(async () => {
|
|
4902
4904
|
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-JJ3EO7SB.js');
|
|
4903
|
-
const { containerStart } = await import('./container-start-
|
|
4904
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
4905
|
+
const { containerStart } = await import('./container-start-GFH5LLSG.js');
|
|
4906
|
+
const { start, RunnerStartError } = await import('./loop-QQV4PYNX.js');
|
|
4905
4907
|
const { RunnerAlreadyRunningError } = await import('./pidfile-BY5Z6YH7.js');
|
|
4906
4908
|
try {
|
|
4907
4909
|
const result = await containerStart({
|
|
@@ -4921,7 +4923,7 @@ function registerRunnerCommands(program2) {
|
|
|
4921
4923
|
});
|
|
4922
4924
|
runnerCmd.command("check").description("Validate the config, the hooks and the key, and print the effective settings").option("--config <path>", configOption).action(async (opts) => {
|
|
4923
4925
|
const { defaultRunnerConfigPath } = await import('./config-JJ3EO7SB.js');
|
|
4924
|
-
const { runRunnerCheck } = await import('./check-
|
|
4926
|
+
const { runRunnerCheck } = await import('./check-KL3LDAI3.js');
|
|
4925
4927
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
4926
4928
|
const result = await runRunnerCheck(configPath);
|
|
4927
4929
|
if (!result.ok) {
|
|
@@ -4955,7 +4957,7 @@ function registerRunnerCommands(program2) {
|
|
|
4955
4957
|
}
|
|
4956
4958
|
try {
|
|
4957
4959
|
if (opts.service === true) {
|
|
4958
|
-
const { installServiceCommand } = await import('./command-
|
|
4960
|
+
const { installServiceCommand } = await import('./command-ZECJJNLY.js');
|
|
4959
4961
|
const result2 = await installServiceCommand({
|
|
4960
4962
|
configPath,
|
|
4961
4963
|
print: opts.print,
|
|
@@ -5011,7 +5013,7 @@ To keep it running, run ${C.yellow}${cliInvocation()} runner install --service${
|
|
|
5011
5013
|
return;
|
|
5012
5014
|
}
|
|
5013
5015
|
const { defaultRunnerConfigPath } = await import('./config-JJ3EO7SB.js');
|
|
5014
|
-
const { uninstallServiceCommand } = await import('./command-
|
|
5016
|
+
const { uninstallServiceCommand } = await import('./command-ZECJJNLY.js');
|
|
5015
5017
|
const result = await uninstallServiceCommand({ configPath: opts.config ?? defaultRunnerConfigPath(), unitName: opts.unitName, home: homeFromEnv() });
|
|
5016
5018
|
if (result.ok) for (const line of result.lines) process.stdout.write(`${C.green}\u2713${C.reset} ${line}
|
|
5017
5019
|
`);
|
|
@@ -5039,10 +5041,10 @@ already in runner.env is used.
|
|
|
5039
5041
|
`
|
|
5040
5042
|
).action(async (opts) => {
|
|
5041
5043
|
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-JJ3EO7SB.js');
|
|
5042
|
-
const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-
|
|
5043
|
-
const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-
|
|
5044
|
-
const { detectMachine } = await import('./machine-
|
|
5045
|
-
const { chooseVm, runVmInit, VmInitError } = await import('./init-
|
|
5044
|
+
const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-ARB2JUPA.js');
|
|
5045
|
+
const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-WIEESRA5.js');
|
|
5046
|
+
const { detectMachine } = await import('./machine-OVXDPPFK.js');
|
|
5047
|
+
const { chooseVm, runVmInit, VmInitError } = await import('./init-C2RROWQU.js');
|
|
5046
5048
|
const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-2D7MPOIJ.js');
|
|
5047
5049
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5048
5050
|
if (opts.agent !== void 0 && !isAgentName(opts.agent)) {
|
|
@@ -5193,7 +5195,7 @@ ${C.yellow}The runner will not update itself: ${installErr.message}${C.reset}
|
|
|
5193
5195
|
let serviceUp = false;
|
|
5194
5196
|
let restart;
|
|
5195
5197
|
if (installedLayout) {
|
|
5196
|
-
const { installServiceCommand } = await import('./command-
|
|
5198
|
+
const { installServiceCommand } = await import('./command-ZECJJNLY.js');
|
|
5197
5199
|
const service = await installServiceCommand({
|
|
5198
5200
|
configPath,
|
|
5199
5201
|
entryPath: process.argv[1] ?? "",
|
|
@@ -5238,10 +5240,10 @@ Next:
|
|
|
5238
5240
|
"\nA repository governed by a control plane builds the control plane's image, at the commit\nthe gateway has stored for it. A repository that governs itself fetches the head of its\ndefault branch into the runner's cache. Either way it reads .devcontainer/devcontainer.json\nand builds the image with the devcontainer CLI. Settings\nthat reach the host or widen the container's privileges are ignored and listed. The\nimage holds this CLI and a pinned Claude Code. Nothing runs inside the image.\n"
|
|
5239
5241
|
).action(async (opts) => {
|
|
5240
5242
|
const { defaultRunnerConfigPath } = await import('./config-JJ3EO7SB.js');
|
|
5241
|
-
const { buildRepositoryImage, RecipeError } = await import('./build-
|
|
5243
|
+
const { buildRepositoryImage, RecipeError } = await import('./build-AW4A2QPK.js');
|
|
5242
5244
|
const { currentCliBuild } = await import('./cli-build-K56DK4DS.js');
|
|
5243
|
-
const { createDockerHost } = await import('./docker-
|
|
5244
|
-
const { builderSpec } = await import('./builder-
|
|
5245
|
+
const { createDockerHost } = await import('./docker-Q7QJMX7I.js');
|
|
5246
|
+
const { builderSpec } = await import('./builder-TDCBQ2RD.js');
|
|
5245
5247
|
const { loadRunnerConfig } = await import('./config-JJ3EO7SB.js');
|
|
5246
5248
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5247
5249
|
const loaded = (() => {
|
|
@@ -5253,11 +5255,11 @@ Next:
|
|
|
5253
5255
|
})();
|
|
5254
5256
|
const memory = loaded?.build?.memory ?? "8g";
|
|
5255
5257
|
try {
|
|
5256
|
-
const { ensureRunnerIdentity } = await import('./runner-identity-
|
|
5258
|
+
const { ensureRunnerIdentity } = await import('./runner-identity-QQU6BUUO.js');
|
|
5257
5259
|
await ensureRunnerIdentity(configPath, { log: (line) => console.error(line) }).catch((err) => {
|
|
5258
5260
|
console.error(`the runner's Docker identity could not be stored: ${err instanceof Error ? err.message : String(err)}`);
|
|
5259
5261
|
});
|
|
5260
|
-
const { imageTargetFor } = await import('./governing-source-
|
|
5262
|
+
const { imageTargetFor } = await import('./governing-source-5OU235UP.js');
|
|
5261
5263
|
const target = await imageTargetFor({ config: loaded, repository: opts.repository, fetchImpl: fetch });
|
|
5262
5264
|
if (!target.ok) {
|
|
5263
5265
|
if (opts.json) {
|
|
@@ -5321,7 +5323,7 @@ Next:
|
|
|
5321
5323
|
});
|
|
5322
5324
|
runnerCmd.command("stop").description("Take no more work; finish running jobs, then exit").option("--config <path>", "the cloud config file naming the runner to stop").option("--now", "end running jobs immediately, with outcome stopped").action(async (opts) => {
|
|
5323
5325
|
const { defaultRunnerConfigPath } = await import('./config-JJ3EO7SB.js');
|
|
5324
|
-
const { requestStop } = await import('./loop-
|
|
5326
|
+
const { requestStop } = await import('./loop-QQV4PYNX.js');
|
|
5325
5327
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5326
5328
|
const { runnerImageVersion } = await import('./image-tag-5SJ6ZKT7.js');
|
|
5327
5329
|
await requestStop(configPath, Boolean(opts.now), void 0, { image: runnerImageVersion() !== void 0 });
|
|
@@ -5329,8 +5331,8 @@ Next:
|
|
|
5329
5331
|
runnerCmd.command("status").description("List running jobs; with --recent, finished ones too").option("--config <path>", "the cloud config file naming the runner to inspect").option("--recent", "also list finished jobs, newest first, capped at 20").option("--json", "machine-readable JSON output").action(async (opts) => {
|
|
5330
5332
|
const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-JJ3EO7SB.js');
|
|
5331
5333
|
const { jobsDir, runnerDir } = await import('./paths-ZC6BMWMT.js');
|
|
5332
|
-
const { listJobFiles, runnerProcessState } = await import('./loop-
|
|
5333
|
-
const { renderStatus } = await import('./status-
|
|
5334
|
+
const { listJobFiles, runnerProcessState } = await import('./loop-QQV4PYNX.js');
|
|
5335
|
+
const { renderStatus } = await import('./status-V2DWSLL3.js');
|
|
5334
5336
|
const { readHousekeepingRecord } = await import('./record-K23IN6QN.js');
|
|
5335
5337
|
const path2 = await import('path');
|
|
5336
5338
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
@@ -5390,7 +5392,7 @@ Next:
|
|
|
5390
5392
|
});
|
|
5391
5393
|
runnerCmd.command("logs").argument("<item>", "the work item's number in the factory").description("Print the newest attempt's log for one item").option("--config <path>", "the cloud config file naming the runner to inspect").option("-f, --follow", "keep printing as the log grows").action(async (itemArg, opts) => {
|
|
5392
5394
|
const { defaultRunnerConfigPath } = await import('./config-JJ3EO7SB.js');
|
|
5393
|
-
const { listJobFiles } = await import('./loop-
|
|
5395
|
+
const { listJobFiles } = await import('./loop-QQV4PYNX.js');
|
|
5394
5396
|
const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-VN2HKDSH.js');
|
|
5395
5397
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5396
5398
|
const item = parseTrackerNumber(itemArg);
|
|
@@ -5483,14 +5485,14 @@ ${C.dim}${file.path}${C.reset}
|
|
|
5483
5485
|
fail("--no-input forbids prompting; pass --all to wrap every candidate without being asked.");
|
|
5484
5486
|
return;
|
|
5485
5487
|
}
|
|
5488
|
+
const scope = opts.project ? "project" : "user";
|
|
5486
5489
|
let cliBin;
|
|
5487
5490
|
try {
|
|
5488
|
-
cliBin = initHookBin({ home: homeFromEnv(), runningBin: resolveCliBin(), remove: false });
|
|
5491
|
+
cliBin = scope === "project" ? PORTABLE_BIN : initHookBin({ home: homeFromEnv(), runningBin: resolveCliBin(), remove: false });
|
|
5489
5492
|
} catch (err) {
|
|
5490
5493
|
fail(`could not copy the CLI to ~/.outerlayer/cli: ${err instanceof Error ? err.message : String(err)}`);
|
|
5491
5494
|
return;
|
|
5492
5495
|
}
|
|
5493
|
-
const scope = opts.project ? "project" : "user";
|
|
5494
5496
|
const path2 = settingsPath(scope);
|
|
5495
5497
|
let settings;
|
|
5496
5498
|
try {
|
|
@@ -5622,7 +5624,7 @@ caller from the bearer token, the gateway answers 401 without that header.
|
|
|
5622
5624
|
"after",
|
|
5623
5625
|
"\nWhat the stdio .mcp.json entry spawns. Reads newline-delimited JSON-RPC 2.0 on\nstdin and writes responses on stdout. The API key comes from OUTERLAYER_API_KEY\nor ~/.outerlayer/config.json at start-up; with neither the command exits 1 and\nprints why, which the MCP client shows as the connect error.\n"
|
|
5624
5626
|
).action(async (opts) => {
|
|
5625
|
-
const { runMcpServe, handleMcpServeError } = await import('./mcp-serve-cmd-
|
|
5627
|
+
const { runMcpServe, handleMcpServeError } = await import('./mcp-serve-cmd-U5N5DK3H.js');
|
|
5626
5628
|
try {
|
|
5627
5629
|
await runMcpServe({ url: opts.url, appId: opts.appId });
|
|
5628
5630
|
} catch (err) {
|
|
@@ -3,23 +3,23 @@ import { createRequire } from 'node:module';
|
|
|
3
3
|
import { runRunnerInstall, launcherSummary, restartNote } from './chunk-JF572PM5.js';
|
|
4
4
|
import './chunk-KDDFI5MR.js';
|
|
5
5
|
import { currentLink, execStartCommand } from './chunk-4IFKLYMM.js';
|
|
6
|
-
import { detectMachine } from './chunk-
|
|
7
|
-
import { helperSocketPath, ensureFirecrackerAndJailer } from './chunk-
|
|
6
|
+
import { detectMachine } from './chunk-RO3BRAO6.js';
|
|
7
|
+
import { helperSocketPath, ensureFirecrackerAndJailer } from './chunk-GUT4IU7K.js';
|
|
8
8
|
import './chunk-665QWBNW.js';
|
|
9
9
|
import './chunk-TQMI335S.js';
|
|
10
10
|
import { DEFAULT_UNIT_NAME, installService, uninstallService, realTaskScheduler, UNIT_MARKER } from './chunk-MLD2NA7N.js';
|
|
11
|
-
import './chunk-
|
|
11
|
+
import './chunk-DJILFADE.js';
|
|
12
12
|
import './chunk-PYSKSROG.js';
|
|
13
13
|
import './chunk-JBJTC3UU.js';
|
|
14
14
|
import './chunk-OGFGZQA3.js';
|
|
15
|
-
import { readJobFile } from './chunk-
|
|
16
|
-
import { firecrackerArch, MICROVM_ARCHES, FIRECRACKER_VERSION, FIRECRACKER_BINARY_SHA256, JAILER_BINARY_SHA256, HOST_HELPER_SHA256, HOST_HELPER_BASE_URL, HOST_HELPER_ASSETS_VERSION, hostHelperPinned } from './chunk-
|
|
17
|
-
import './chunk-
|
|
18
|
-
import './chunk-
|
|
19
|
-
import './chunk-
|
|
20
|
-
import './chunk-
|
|
21
|
-
import './chunk-
|
|
22
|
-
import './chunk-
|
|
15
|
+
import { readJobFile } from './chunk-KZLLLARE.js';
|
|
16
|
+
import { firecrackerArch, MICROVM_ARCHES, FIRECRACKER_VERSION, FIRECRACKER_BINARY_SHA256, JAILER_BINARY_SHA256, HOST_HELPER_SHA256, HOST_HELPER_BASE_URL, HOST_HELPER_ASSETS_VERSION, hostHelperPinned } from './chunk-FI66JNLT.js';
|
|
17
|
+
import './chunk-MXTN35XN.js';
|
|
18
|
+
import './chunk-XLC7KEUV.js';
|
|
19
|
+
import './chunk-DXHISLCI.js';
|
|
20
|
+
import './chunk-GMPXOQTH.js';
|
|
21
|
+
import './chunk-HXFRJKMU.js';
|
|
22
|
+
import './chunk-TEVO3RUV.js';
|
|
23
23
|
import './chunk-BUP5N3X6.js';
|
|
24
24
|
import './chunk-XSPA5ODY.js';
|
|
25
25
|
import './chunk-GOSFARMS.js';
|
|
@@ -28,9 +28,9 @@ import './chunk-UXYLWVTQ.js';
|
|
|
28
28
|
import './chunk-7RQ73DLO.js';
|
|
29
29
|
import { realLima } from './chunk-77MM5RYD.js';
|
|
30
30
|
import { writeLaunchAgent, launchAgentPath } from './chunk-LF6MLJCY.js';
|
|
31
|
-
import './chunk-
|
|
31
|
+
import './chunk-W3NVHOCS.js';
|
|
32
32
|
import './chunk-MQ743JX3.js';
|
|
33
|
-
import './chunk-
|
|
33
|
+
import './chunk-QRZLUUNN.js';
|
|
34
34
|
import './chunk-ZJSNLVCE.js';
|
|
35
35
|
import './chunk-VPEGE3QZ.js';
|
|
36
36
|
import './chunk-HCVLP7XA.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { AGENTS_LAYOUT_COMMIT_LINE, COMMIT_LINE, autoConnectedLine, commitLineFor, listText as factoryListText, slug as factorySlug, fetchFactories, hasUncommittedPolicy, promptOnTerminal, realConnectDeps, runConnect, runConnectCommand, saveFactoryConnection, selectFactory } from './chunk-
|
|
3
|
+
export { AGENTS_LAYOUT_COMMIT_LINE, COMMIT_LINE, autoConnectedLine, commitLineFor, listText as factoryListText, slug as factorySlug, fetchFactories, hasUncommittedPolicy, promptOnTerminal, realConnectDeps, runConnect, runConnectCommand, saveFactoryConnection, selectFactory } from './chunk-TEVO3RUV.js';
|
|
4
4
|
import './chunk-BUP5N3X6.js';
|
|
5
5
|
import './chunk-XSPA5ODY.js';
|
|
6
6
|
import './chunk-GOSFARMS.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-QRZLUUNN.js';
|
|
8
8
|
import './chunk-BJ3KTMDH.js';
|
|
9
9
|
import './chunk-QE3UQAHK.js';
|
|
10
10
|
import './chunk-ANPNT6PM.js';
|