@outerlayer/cli 0.34.0-next.20261028105453 → 0.34.0-next.20261028122415
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/build-info.json +1 -1
- package/dist/{check-LMUTXMTY.js → check-FWRVWOVY.js} +5 -5
- package/dist/{work-proofs-record-BCY52YK3.js → chunk-BEGMZKMG.js} +176 -497
- package/dist/{chunk-6WU2D2CY.js → chunk-SX3LYSWR.js} +1 -1
- package/dist/{chunk-JNFLO6DA.js → chunk-U3O7MULV.js} +4 -4
- package/dist/{chunk-6UHU7DHT.js → chunk-UDMFRKFJ.js} +1 -1
- package/dist/{chunk-6YIWAOHM.js → chunk-UKEIJKCH.js} +22 -9
- package/dist/{chunk-ITS67SH7.js → chunk-YGU43DH4.js} +13 -4
- package/dist/{cli-6YAN2USY.js → cli-K7AWWU6C.js} +10 -10
- package/dist/{container-start-RWW7L5LC.js → container-start-XGKAKLUD.js} +4 -4
- package/dist/{host-checks-77FAAR2A.js → host-checks-L4GX6F3H.js} +2 -2
- package/dist/index.js +1 -1
- package/dist/{loop-QZV7AR3F.js → loop-GQLSSBQB.js} +5 -5
- package/dist/{status-QPV75ZNS.js → status-EP6QSFRY.js} +2 -2
- package/dist/{update-steps-YY3DZ5NW.js → update-steps-BJB7NL6L.js} +3 -3
- package/dist/{work-proofs-cmd-R53HHZJB.js → work-proofs-cmd-RYQ7Y6KO.js} +2 -2
- package/dist/work-proofs-record-IC3RWDDQ.js +509 -0
- package/package.json +1 -1
- package/skill-pack/maintained/outerlayer-build/scripts/criterion-citations.mjs +44 -4
- package/dist/chunk-6CK2OC4Q.js +0 -152
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { stripTerminalControls } from './chunk-
|
|
3
|
+
import { stripTerminalControls } from './chunk-YGU43DH4.js';
|
|
4
4
|
import { tagToPull, imageTag, pullInstruction, readUpdateStatus, runnerImageVersion } from './chunk-ORENXMHA.js';
|
|
5
5
|
import { readFileSync } from 'fs';
|
|
6
6
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { decideInstalledSwitch } from './chunk-3JVYMD4G.js';
|
|
4
|
-
import { reportFailedStart, fitImageBuildMemory } from './chunk-
|
|
4
|
+
import { reportFailedStart, fitImageBuildMemory } from './chunk-UDMFRKFJ.js';
|
|
5
5
|
import { fetchVersionMeta, npmVersion, npmSupportsProvenance, fetchTarballDigest, fetchProvenance, installVersion, auditSignatures } from './chunk-E7R2GIAW.js';
|
|
6
6
|
import { RUNNER_PROTOCOL } from './chunk-MH6QLXUO.js';
|
|
7
7
|
import { writePendingUpdate } from './chunk-TZXJSNN4.js';
|
|
8
|
-
import { renderUpdateSteps } from './chunk-
|
|
8
|
+
import { renderUpdateSteps } from './chunk-SX3LYSWR.js';
|
|
9
9
|
import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-JDQBJUXQ.js';
|
|
10
|
-
import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, readProvisionOut, workdirProblem, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, startSender, finishJob, sampleGuest, foldSample, isContainerTracked, isMicroVmTracked, probeMicroVmCommand, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isTracked, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, GUEST_USAGE_INTERVAL_MS, hookLimitsFor, AttemptLogBook, microVmOomKills, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, serveLease, vmAlive, writeGuestGhConfig, ALREADY_RELEASED, inTeardown } from './chunk-
|
|
10
|
+
import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, readProvisionOut, workdirProblem, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, startSender, finishJob, sampleGuest, foldSample, isContainerTracked, isMicroVmTracked, probeMicroVmCommand, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isTracked, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, GUEST_USAGE_INTERVAL_MS, hookLimitsFor, AttemptLogBook, microVmOomKills, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, serveLease, vmAlive, writeGuestGhConfig, ALREADY_RELEASED, inTeardown } from './chunk-YGU43DH4.js';
|
|
11
11
|
import { JOB_STATE_FORMAT, readsJobState, jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
12
12
|
import { realBlockedProbes, checkBlockedWithSlots, largeBuildMemoryBytes, LARGE_BUILD_DISK_BYTES, checkManagedRoom, sliceMemoryOf, createHousekeepingDocker, housekeepingDockerIfReachable, KIND_LABEL, RECIPE_KEY_LABEL } from './chunk-OFKM35MX.js';
|
|
13
13
|
import { writeMarker, readMarker, currentVersion, removeMarker, isInLayout, startedThroughCurrent, entryIn, versionDir, switchCurrent, cleanVersions, stagingDir } from './chunk-E3GX4WVJ.js';
|
|
@@ -3189,7 +3189,7 @@ async function startRunner(configPath, deps, startup) {
|
|
|
3189
3189
|
check: update.check ? () => update.check(configPath) : async () => {
|
|
3190
3190
|
const held = heldClaudeCredential();
|
|
3191
3191
|
const env = held === void 0 ? process.env : { ...process.env, [held.variable]: held.value };
|
|
3192
|
-
return (await import('./check-
|
|
3192
|
+
return (await import('./check-FWRVWOVY.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
|
|
3193
3193
|
},
|
|
3194
3194
|
now: () => (deps.now ?? (() => /* @__PURE__ */ new Date()))().getTime(),
|
|
3195
3195
|
log
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { scrubReason, stripTerminalControls } from './chunk-
|
|
3
|
+
import { scrubReason, stripTerminalControls } from './chunk-YGU43DH4.js';
|
|
4
4
|
import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-N4KQMGEZ.js';
|
|
5
5
|
import { RunnerAlreadyRunningError, readPidFile } from './chunk-64LLUVJR.js';
|
|
6
6
|
import { isSameProcess } from './chunk-JBJTC3UU.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { criteriaOf, loadCitationFinder, hostItemsOf,
|
|
3
|
+
import { criteriaOf, loadCitationFinder, hostItemsOf, testFileMatcher, criterionInputs, NO_CITING_TEST_REASON, NO_VERDICT_REASON, planCriteria, NO_TEST_FILES_REASON, MAX_TEST_FILE_BYTES, MAX_TEST_FILES } from './chunk-BEGMZKMG.js';
|
|
4
4
|
import { WorkCommandError, resolveCredentials, getJson } from './chunk-72N7GOLM.js';
|
|
5
5
|
import { C } from './chunk-ANPNT6PM.js';
|
|
6
6
|
import { sanitizeTerminal } from './chunk-IXPH4EXK.js';
|
|
@@ -87,13 +87,13 @@ function unprovenCriteria(input) {
|
|
|
87
87
|
commits.set(item.id, commit);
|
|
88
88
|
previous.set(item.id, { ...item, inputs: criterionInputs({ brief: NO_BRIEF, criterion, citations: judgedCitations, testFiles: judged }) });
|
|
89
89
|
}
|
|
90
|
-
const plan = planCriteria({ criteria, citations, inputs, previous: [...previous.values()] });
|
|
90
|
+
const plan = planCriteria({ criteria, citations, inputs, previous: [...previous.values()], noTestFiles: input.headFiles.length === 0 });
|
|
91
91
|
const settled = new Map(plan.settled.map((item) => [item.id, item]));
|
|
92
92
|
const entries = [];
|
|
93
93
|
for (const criterion of criteria) {
|
|
94
94
|
const item = settled.get(criterion.id);
|
|
95
95
|
if (item === void 0 || item.result !== "fail") continue;
|
|
96
|
-
if (item.refs === void 0) entries.push({ id: criterion.id, proof: null, state: "uncited" });
|
|
96
|
+
if (item.refs === void 0) entries.push({ id: criterion.id, proof: null, state: "uncited", ...item.reason === NO_TEST_FILES_REASON ? { noTestFiles: true } : {} });
|
|
97
97
|
else entries.push({ id: criterion.id, proof: null, state: "failed", commit: commits.get(criterion.id) ?? "", reason: item.reason ?? "no reason recorded" });
|
|
98
98
|
}
|
|
99
99
|
return { entries, notes };
|
|
@@ -129,7 +129,7 @@ function testFilesAt(cwd, head, isTest) {
|
|
|
129
129
|
const picked = /* @__PURE__ */ new Map();
|
|
130
130
|
for (const entry of listing.toString("utf8").split("\0")) {
|
|
131
131
|
const match = /^(\d+) blob ([0-9a-f]+)\s+(\d+)\t(.*)$/s.exec(entry);
|
|
132
|
-
if (match === null || !match[1].startsWith("100") || Number(match[3]) > MAX_TEST_FILE_BYTES || !isTest
|
|
132
|
+
if (match === null || !match[1].startsWith("100") || Number(match[3]) > MAX_TEST_FILE_BYTES || !isTest(match[4])) continue;
|
|
133
133
|
if (picked.size >= MAX_TEST_FILES) break;
|
|
134
134
|
picked.set(match[4], match[2]);
|
|
135
135
|
}
|
|
@@ -140,6 +140,16 @@ function testFilesAt(cwd, head, isTest) {
|
|
|
140
140
|
return void 0;
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
|
+
function proofsFileAt(cwd, commit) {
|
|
144
|
+
try {
|
|
145
|
+
return git(cwd, ["show", `${commit}:.outerlayer-proofs.yaml`]).toString("utf8");
|
|
146
|
+
} catch {
|
|
147
|
+
return void 0;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
function testFilesOf(cwd, commit, finder) {
|
|
151
|
+
return testFilesAt(cwd, commit, testFileMatcher(finder, proofsFileAt(cwd, commit)));
|
|
152
|
+
}
|
|
143
153
|
function checkoutPlaces(cwd) {
|
|
144
154
|
for (let dir = resolve(cwd); ; dir = dirname(dir)) {
|
|
145
155
|
const dotGit = resolve(dir, ".git");
|
|
@@ -167,14 +177,14 @@ function governingDir(cwd) {
|
|
|
167
177
|
async function testProofMode(cwd) {
|
|
168
178
|
const dir = governingDir(cwd);
|
|
169
179
|
if (dir === void 0) return "any";
|
|
170
|
-
const { testProofIn } = await import('./host-checks-
|
|
180
|
+
const { testProofIn } = await import('./host-checks-L4GX6F3H.js');
|
|
171
181
|
return testProofIn(dir);
|
|
172
182
|
}
|
|
173
183
|
async function judgeCheckName(cwd) {
|
|
174
184
|
const dir = governingDir(cwd);
|
|
175
185
|
if (dir === void 0) return {};
|
|
176
186
|
if (!existsSync(dir)) return { note: `the governed context at ${dir} is not readable` };
|
|
177
|
-
const { checksIn, isJudgeCheck } = await import('./host-checks-
|
|
187
|
+
const { checksIn, isJudgeCheck } = await import('./host-checks-L4GX6F3H.js');
|
|
178
188
|
const quiet = { line: () => void 0, error: () => void 0 };
|
|
179
189
|
const check = checksIn(dir, quiet, "").checks.find((c) => isJudgeCheck(c) && c.judge.subjects === "criteria");
|
|
180
190
|
return check === void 0 ? {} : { name: check.name };
|
|
@@ -186,7 +196,7 @@ async function findUnproven(input) {
|
|
|
186
196
|
const criteria = criteriaOf(input.item);
|
|
187
197
|
if (criteria === void 0) return { entries: [], notes: [] };
|
|
188
198
|
const finder = await loadCitationFinder();
|
|
189
|
-
const headFiles =
|
|
199
|
+
const headFiles = testFilesOf(input.cwd, input.head, finder);
|
|
190
200
|
if (headFiles === void 0) return { entries: [], notes: [`the test files at ${input.head.slice(0, 7)} cannot be read`] };
|
|
191
201
|
const items = hostItemsOf(input.item, found.name);
|
|
192
202
|
const result = unprovenCriteria({
|
|
@@ -194,7 +204,7 @@ async function findUnproven(input) {
|
|
|
194
204
|
finder,
|
|
195
205
|
headFiles,
|
|
196
206
|
items,
|
|
197
|
-
testFilesAt: (commit) =>
|
|
207
|
+
testFilesAt: (commit) => testFilesOf(input.cwd, commit, finder)
|
|
198
208
|
});
|
|
199
209
|
const check = Object(input.item).checks?.find((c) => Object(c).name === found.name);
|
|
200
210
|
if (check?.source === "host" && check.result === "fail" && items.length === 0) result.notes.unshift("the gateway returned no check items for the judge's result");
|
|
@@ -248,6 +258,9 @@ var STATE_LABEL = { current: "current", "out-of-date": "out of date", missing: "
|
|
|
248
258
|
function renderEntry(e) {
|
|
249
259
|
const id = sanitizeTerminal(e.id);
|
|
250
260
|
if (e.state === "uncited") {
|
|
261
|
+
if (e.noTestFiles === true) {
|
|
262
|
+
return `${id} none uncited No file at this commit is recognized as a test. Name the repository's test files with a runner glob in \`.outerlayer-proofs.yaml\`.`;
|
|
263
|
+
}
|
|
251
264
|
return `${id} none uncited No test at HEAD cites it. Put ${id} in a test's title or in a comment above the test, as in // proves ${id}`;
|
|
252
265
|
}
|
|
253
266
|
if (e.state === "failed") {
|
|
@@ -314,7 +327,7 @@ async function runWorkProofs(opts) {
|
|
|
314
327
|
async function runWorkProofsCommand(opts) {
|
|
315
328
|
try {
|
|
316
329
|
if (opts.record) {
|
|
317
|
-
const { runWorkProofsRecord } = await import('./work-proofs-record-
|
|
330
|
+
const { runWorkProofsRecord } = await import('./work-proofs-record-IC3RWDDQ.js');
|
|
318
331
|
const result2 = await runWorkProofsRecord(opts);
|
|
319
332
|
process.exitCode = result2.exitCode;
|
|
320
333
|
return;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { itemsSentence, criteriaOf, hostItemsOf, loadCitationFinder, MAX_TEST_FILE_BYTES, MAX_TEST_FILES, criterionInputs, planCriteria, parseJudgeAnswer, inCriteriaOrder, oneLineReason, judgedItems } from './chunk-
|
|
3
|
+
import { itemsSentence, criteriaOf, hostItemsOf, loadCitationFinder, MAX_TEST_FILE_BYTES, MAX_TEST_FILES, testFileMatcher, criterionInputs, planCriteria, parseJudgeAnswer, inCriteriaOrder, oneLineReason, judgedItems } from './chunk-BEGMZKMG.js';
|
|
4
4
|
import { readsJobState, READ_JOB_STATE_FORMATS, jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
5
5
|
import { HELPER_PATH, DOCKERD_LOG, HELPER_RECORD } from './chunk-XDCD4GD5.js';
|
|
6
6
|
import { zodProblem } from './chunk-I3LTIAOR.js';
|
|
@@ -1782,12 +1782,21 @@ function testFilesIn(root, isTest, limits = { files: MAX_TEST_FILES, bytes: MAX_
|
|
|
1782
1782
|
const rel = prefix === "" ? name : `${prefix}/${name}`;
|
|
1783
1783
|
const stat = lstatSync(path);
|
|
1784
1784
|
if (stat.isDirectory()) walk(path, rel);
|
|
1785
|
-
else if (stat.isFile() && isTest
|
|
1785
|
+
else if (stat.isFile() && isTest(rel) && stat.size <= limits.bytes) files.push({ path: rel, contents: readFileSync(path, "utf8") });
|
|
1786
1786
|
}
|
|
1787
1787
|
};
|
|
1788
1788
|
walk(root, "");
|
|
1789
1789
|
return files;
|
|
1790
1790
|
}
|
|
1791
|
+
function proofsFileIn(root) {
|
|
1792
|
+
const path = join(root, ".outerlayer-proofs.yaml");
|
|
1793
|
+
try {
|
|
1794
|
+
const stat = lstatSync(path);
|
|
1795
|
+
return stat.isFile() && stat.size <= MAX_TEST_FILE_BYTES ? readFileSync(path, "utf8") : void 0;
|
|
1796
|
+
} catch {
|
|
1797
|
+
return void 0;
|
|
1798
|
+
}
|
|
1799
|
+
}
|
|
1791
1800
|
async function hostPassedNames(config, item, fetchImpl) {
|
|
1792
1801
|
const workItemId = Object(await readWorkItem(config, item, fetchImpl)).workItemId;
|
|
1793
1802
|
if (typeof workItemId !== "string") throw new WorkCommandError("the work item read named no id");
|
|
@@ -1922,11 +1931,11 @@ async function runJudge(input) {
|
|
|
1922
1931
|
if (!fetched.ok) return await fail(check, `the build's tests could not be fetched: ${fetched.reason}`);
|
|
1923
1932
|
const finder = await loadCitationFinder();
|
|
1924
1933
|
const list = criteria ?? [];
|
|
1925
|
-
const testFiles = testFilesIn(branchDir, finder
|
|
1934
|
+
const testFiles = testFilesIn(branchDir, testFileMatcher(finder, proofsFileIn(branchDir)));
|
|
1926
1935
|
const citations = finder.buildCitations({ ids: list.map((criterion) => criterion.id), files: testFiles, repository: repo, sha: head });
|
|
1927
1936
|
const testFileText = new Map(testFiles.map((file) => [file.path, file.contents]));
|
|
1928
1937
|
const inputs = new Map(list.map((criterion) => [criterion.id, criterionInputs({ brief, criterion, citations, testFiles: testFileText })]));
|
|
1929
|
-
const plan = planCriteria({ criteria: list, citations, inputs, previous });
|
|
1938
|
+
const plan = planCriteria({ criteria: list, citations, inputs, previous, noTestFiles: testFiles.length === 0 });
|
|
1930
1939
|
if (plan.toJudge.length < list.length) {
|
|
1931
1940
|
log.line(`${tag} judge: ${plan.toJudge.length} of ${list.length} criteria to judge, ${list.length - plan.toJudge.length} settled without the judge`);
|
|
1932
1941
|
}
|
|
@@ -4999,7 +4999,7 @@ differs from HEAD.
|
|
|
4999
4999
|
fail(trackerNumberError("--pr", opts.pr));
|
|
5000
5000
|
return;
|
|
5001
5001
|
}
|
|
5002
|
-
const { runWorkProofsCommand } = await import('./work-proofs-cmd-
|
|
5002
|
+
const { runWorkProofsCommand } = await import('./work-proofs-cmd-RYQ7Y6KO.js');
|
|
5003
5003
|
await runWorkProofsCommand({ ...opts, ...pr === void 0 ? {} : { pr } });
|
|
5004
5004
|
});
|
|
5005
5005
|
workCmd.command("list").description("List live work items for this factory").option("--stage <spec|build|review>", "filter by stage").option("--section <attention|waiting|flowing>", "filter by Queue section").option("--repo <owner/name>", "repository (default: the current checkout's remote)").option("--unclaimed", "only items with no live lease").option("--claimed", "only items with a live lease, held by a host or a local session").option("--startable", "only items a host can start: a build request, no open PR, no live lease").option("--needs <amend>", "only items with a thread waiting on an agent").option("--json", "machine-readable JSON output").option("--url <url>", "cloud base URL (or OUTERLAYER_URL / config)").addOption(apiKeyOption()).option("--app-id <id>", "factory id the key is bound to (or OUTERLAYER_APP_ID / config)").action(async (opts) => {
|
|
@@ -5146,7 +5146,7 @@ function registerRunnerCommands(program2) {
|
|
|
5146
5146
|
const configOption = "the cloud config file to run against (default: ~/.outerlayer/config.json)";
|
|
5147
5147
|
runnerCmd.command("start").description("Run the loop: claim work, run it, report, clean up, repeat").option("--config <path>", configOption).action(async (opts) => {
|
|
5148
5148
|
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-AB5Y73BU.js');
|
|
5149
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
5149
|
+
const { start, RunnerStartError } = await import('./loop-GQLSSBQB.js');
|
|
5150
5150
|
const { RunnerAlreadyRunningError } = await import('./pidfile-AVJFRZZT.js');
|
|
5151
5151
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5152
5152
|
try {
|
|
@@ -5165,8 +5165,8 @@ function registerRunnerCommands(program2) {
|
|
|
5165
5165
|
"\nReads OUTERLAYER_URL, OUTERLAYER_APP_ID, OUTERLAYER_API_KEY, OUTERLAYER_RUNNER_NAME and one Claude credential\n(CLAUDE_CODE_OAUTH_TOKEN or ANTHROPIC_API_KEY) from the environment. OUTERLAYER_AGENT\nis optional and defaults to claude. On a later start it refuses variables that disagree with the config in the volume.\nThe image sets OUTERLAYER_RUNNER_IMAGE; outside the image, use `runner start`.\n"
|
|
5166
5166
|
).action(async () => {
|
|
5167
5167
|
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-AB5Y73BU.js');
|
|
5168
|
-
const { containerStart } = await import('./container-start-
|
|
5169
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
5168
|
+
const { containerStart } = await import('./container-start-XGKAKLUD.js');
|
|
5169
|
+
const { start, RunnerStartError } = await import('./loop-GQLSSBQB.js');
|
|
5170
5170
|
const { RunnerAlreadyRunningError } = await import('./pidfile-AVJFRZZT.js');
|
|
5171
5171
|
try {
|
|
5172
5172
|
const result = await containerStart({
|
|
@@ -5190,14 +5190,14 @@ function registerRunnerCommands(program2) {
|
|
|
5190
5190
|
).action(async (opts) => {
|
|
5191
5191
|
const { defaultRunnerConfigPath } = await import('./config-AB5Y73BU.js');
|
|
5192
5192
|
const { runnerDir } = await import('./paths-VQ3ALYZ3.js');
|
|
5193
|
-
const { runUpdateSteps } = await import('./update-steps-
|
|
5193
|
+
const { runUpdateSteps } = await import('./update-steps-BJB7NL6L.js');
|
|
5194
5194
|
const text = await runUpdateSteps({ runnerDirPath: runnerDir(opts.config ?? defaultRunnerConfigPath()) });
|
|
5195
5195
|
process.stdout.write(`${text}
|
|
5196
5196
|
`);
|
|
5197
5197
|
});
|
|
5198
5198
|
runnerCmd.command("check").description("Validate the config, the hooks and the key, and print the effective settings").option("--config <path>", configOption).action(async (opts) => {
|
|
5199
5199
|
const { defaultRunnerConfigPath } = await import('./config-AB5Y73BU.js');
|
|
5200
|
-
const { runRunnerCheck } = await import('./check-
|
|
5200
|
+
const { runRunnerCheck } = await import('./check-FWRVWOVY.js');
|
|
5201
5201
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5202
5202
|
const result = await runRunnerCheck(configPath);
|
|
5203
5203
|
if (!result.ok) {
|
|
@@ -5606,7 +5606,7 @@ Next:
|
|
|
5606
5606
|
});
|
|
5607
5607
|
runnerCmd.command("stop").description("Take no more work; finish running jobs, then exit").option("--config <path>", "the cloud config file naming the runner to stop").option("--now", "end running jobs immediately, with outcome stopped").action(async (opts) => {
|
|
5608
5608
|
const { defaultRunnerConfigPath } = await import('./config-AB5Y73BU.js');
|
|
5609
|
-
const { requestStop } = await import('./loop-
|
|
5609
|
+
const { requestStop } = await import('./loop-GQLSSBQB.js');
|
|
5610
5610
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5611
5611
|
const { runnerImageVersion } = await import('./image-tag-3KPTSRB4.js');
|
|
5612
5612
|
await requestStop(configPath, Boolean(opts.now), void 0, { image: runnerImageVersion() !== void 0 });
|
|
@@ -5614,8 +5614,8 @@ Next:
|
|
|
5614
5614
|
runnerCmd.command("status").description("List running jobs; with --recent, finished ones too").option("--config <path>", "the cloud config file naming the runner to inspect").option("--recent", "also list finished jobs, newest first, capped at 20").option("--json", "machine-readable JSON output").action(async (opts) => {
|
|
5615
5615
|
const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-AB5Y73BU.js');
|
|
5616
5616
|
const { jobsDir, runnerDir } = await import('./paths-VQ3ALYZ3.js');
|
|
5617
|
-
const { listJobFiles, runnerProcessState } = await import('./loop-
|
|
5618
|
-
const { renderStatus } = await import('./status-
|
|
5617
|
+
const { listJobFiles, runnerProcessState } = await import('./loop-GQLSSBQB.js');
|
|
5618
|
+
const { renderStatus } = await import('./status-EP6QSFRY.js');
|
|
5619
5619
|
const { readHousekeepingRecord } = await import('./record-XE7Z3QGF.js');
|
|
5620
5620
|
const path2 = await import('path');
|
|
5621
5621
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
@@ -5674,7 +5674,7 @@ Next:
|
|
|
5674
5674
|
});
|
|
5675
5675
|
runnerCmd.command("logs").argument("<item>", "the work item's number in the factory").description("Print the newest attempt's log for one item").option("--config <path>", "the cloud config file naming the runner to inspect").option("-f, --follow", "keep printing as the log grows").action(async (itemArg, opts) => {
|
|
5676
5676
|
const { defaultRunnerConfigPath } = await import('./config-AB5Y73BU.js');
|
|
5677
|
-
const { listJobFiles } = await import('./loop-
|
|
5677
|
+
const { listJobFiles } = await import('./loop-GQLSSBQB.js');
|
|
5678
5678
|
const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-E2O53NUI.js');
|
|
5679
5679
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5680
5680
|
const item = parseTrackerNumber(itemArg);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { reportFailedStart, BUILD_MEMORY_VARIABLE } from './chunk-
|
|
4
|
-
import { readOwnContainer } from './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
3
|
+
import { reportFailedStart, BUILD_MEMORY_VARIABLE } from './chunk-UDMFRKFJ.js';
|
|
4
|
+
import { readOwnContainer } from './chunk-SX3LYSWR.js';
|
|
5
|
+
import './chunk-YGU43DH4.js';
|
|
6
|
+
import './chunk-BEGMZKMG.js';
|
|
7
7
|
import './chunk-ZVB57WI6.js';
|
|
8
8
|
import './chunk-XDCD4GD5.js';
|
|
9
9
|
import './chunk-I3LTIAOR.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { MAX_CHECK_ITEMS_BYTES, checksIn, commandItems, isJudgeCheck, makeRecorder, readDefinitions, runHostChecks, testProofIn, timeoutAfter } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { MAX_CHECK_ITEMS_BYTES, checksIn, commandItems, isJudgeCheck, makeRecorder, readDefinitions, runHostChecks, testProofIn, timeoutAfter } from './chunk-YGU43DH4.js';
|
|
4
|
+
import './chunk-BEGMZKMG.js';
|
|
5
5
|
import './chunk-ZVB57WI6.js';
|
|
6
6
|
import './chunk-XDCD4GD5.js';
|
|
7
7
|
import './chunk-I3LTIAOR.js';
|
package/dist/index.js
CHANGED
|
@@ -26,5 +26,5 @@ if (argv[0] === "claude") {
|
|
|
26
26
|
process.exit(await runClaudeLauncher(argv.slice(1)));
|
|
27
27
|
}
|
|
28
28
|
(await import('./hook-fast-5C4MQ5ZS.js')).recordLinkExitFailure(argv);
|
|
29
|
-
var { runCli } = await import('./cli-
|
|
29
|
+
var { runCli } = await import('./cli-K7AWWU6C.js');
|
|
30
30
|
await runCli(process.argv);
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { RunnerStartError, leaseTimeLeftFor, listJobFiles, logUnusableHelper, probeBuild, probeCredentials, requestStop, runnerProcessState, runtimeOf, sampleUsage, start, tick, watchTick } from './chunk-
|
|
3
|
+
export { RunnerStartError, leaseTimeLeftFor, listJobFiles, logUnusableHelper, probeBuild, probeCredentials, requestStop, runnerProcessState, runtimeOf, sampleUsage, start, tick, watchTick } from './chunk-U3O7MULV.js';
|
|
4
4
|
import './chunk-3JVYMD4G.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-UDMFRKFJ.js';
|
|
6
6
|
import './chunk-E7R2GIAW.js';
|
|
7
7
|
import './chunk-MH6QLXUO.js';
|
|
8
8
|
import './chunk-TZXJSNN4.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-SX3LYSWR.js';
|
|
10
10
|
import './chunk-JDQBJUXQ.js';
|
|
11
|
-
import './chunk-
|
|
12
|
-
import './chunk-
|
|
11
|
+
import './chunk-YGU43DH4.js';
|
|
12
|
+
import './chunk-BEGMZKMG.js';
|
|
13
13
|
import './chunk-ZVB57WI6.js';
|
|
14
14
|
import './chunk-XDCD4GD5.js';
|
|
15
15
|
import './chunk-I3LTIAOR.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { isReadable, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
import { isReadable, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-YGU43DH4.js';
|
|
4
|
+
import './chunk-BEGMZKMG.js';
|
|
5
5
|
import { jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
6
6
|
import './chunk-XDCD4GD5.js';
|
|
7
7
|
import './chunk-I3LTIAOR.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { readOwnContainer, renderUpdateSteps, runUpdateSteps } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
3
|
+
export { readOwnContainer, renderUpdateSteps, runUpdateSteps } from './chunk-SX3LYSWR.js';
|
|
4
|
+
import './chunk-YGU43DH4.js';
|
|
5
|
+
import './chunk-BEGMZKMG.js';
|
|
6
6
|
import './chunk-ZVB57WI6.js';
|
|
7
7
|
import './chunk-XDCD4GD5.js';
|
|
8
8
|
import './chunk-I3LTIAOR.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { classifyProofs, classifyProofsAt, otherPullRequestHeads, resolveProofsItem, runWorkProofs, runWorkProofsCommand } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { classifyProofs, classifyProofsAt, otherPullRequestHeads, resolveProofsItem, runWorkProofs, runWorkProofsCommand } from './chunk-UKEIJKCH.js';
|
|
4
|
+
import './chunk-BEGMZKMG.js';
|
|
5
5
|
import './chunk-72N7GOLM.js';
|
|
6
6
|
import './chunk-IP7BIBXJ.js';
|
|
7
7
|
import './chunk-GJHOU5V3.js';
|