@outerlayer/cli 0.10.0 → 0.10.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 +14 -0
- package/dist/{agent-setup-ODTDC3US.js → agent-setup-YEFN74Y4.js} +6 -3
- package/dist/build-info.json +1 -1
- package/dist/{builder-5DKTBWT3.js → builder-EVO6F2NO.js} +2 -2
- package/dist/{check-VJRJ2KQ4.js → check-NQYQHITZ.js} +16 -16
- package/dist/{chunk-QPPPUKQJ.js → chunk-472KC6JV.js} +1 -1
- package/dist/{chunk-47RS42OZ.js → chunk-A56PYPDF.js} +11 -4
- package/dist/{chunk-LBU4CLK5.js → chunk-BREEX2Z7.js} +4 -4
- package/dist/{chunk-KWCJLAHQ.js → chunk-DTDZXDQ3.js} +3 -3
- package/dist/{chunk-YCPV7FN6.js → chunk-ERHJETKP.js} +20 -18
- package/dist/{chunk-XGCJNSI7.js → chunk-ESZJ5QIC.js} +4 -4
- package/dist/{chunk-VMK7I3TB.js → chunk-HKUH5AR2.js} +2 -2
- package/dist/{chunk-5K3IUOPJ.js → chunk-I263FZ3A.js} +2 -2
- package/dist/{chunk-LTJPX7TX.js → chunk-IU4NZROR.js} +249 -18
- package/dist/{chunk-TV36SKEN.js → chunk-JSUUXA5W.js} +1 -1
- package/dist/{chunk-OSKO3PAL.js → chunk-KZ5M4QOB.js} +7 -7
- package/dist/{chunk-WJBJY5DQ.js → chunk-MC6J453K.js} +2 -2
- package/dist/{chunk-XZNO4QED.js → chunk-R2UYH4QV.js} +5 -5
- package/dist/{chunk-LYESSQUA.js → chunk-UES67HLJ.js} +2 -2
- package/dist/{chunk-ZEQMTBRD.js → chunk-VDI5POCC.js} +80 -2
- package/dist/{chunk-FKFGQJNN.js → chunk-VVIRHTH4.js} +1 -1
- package/dist/{chunk-543OT6V5.js → chunk-Y6P5XX2B.js} +25 -7
- package/dist/{chunk-ABIWDUMS.js → chunk-YETTWTAY.js} +4 -4
- package/dist/{chunk-KPUJGBA4.js → chunk-ZQ5JGHUO.js} +2 -2
- package/dist/{cli-77URFYI7.js → cli-ZCWMJCEK.js} +52 -52
- package/dist/{command-2LYWVGIK.js → command-LNEFKIVC.js} +9 -9
- package/dist/{connect-cmd-MPZWSEKY.js → connect-cmd-5MIUNYAY.js} +3 -3
- package/dist/{dist-QY5CL5LB.js → dist-3M3ZMEZF.js} +1 -1
- package/dist/{docker-V7B6UKPF.js → docker-GM526LGX.js} +3 -3
- package/dist/{doctor-PUAL5LTL.js → doctor-QSV4DYT2.js} +11 -11
- package/dist/{emit-artifact-cmd-P3IWNSQY.js → emit-artifact-cmd-VKPW577P.js} +5 -5
- package/dist/{emit-criteria-cmd-GOSP6X74.js → emit-criteria-cmd-U2TL6FYY.js} +4 -4
- package/dist/{emit-finding-cmd-D554IQKU.js → emit-finding-cmd-TMOOKHPD.js} +4 -4
- package/dist/{emit-result-cmd-QACXTIBV.js → emit-result-cmd-GKBVPMU4.js} +5 -5
- package/dist/index.js +1 -1
- package/dist/{init-WX5XE6L3.js → init-MJ2PO2VQ.js} +11 -11
- package/dist/{init-TMBE3BRN.js → init-OKCDXEOG.js} +10 -10
- package/dist/{init-cmd-4FQKQLJ5.js → init-cmd-5TEM2QNH.js} +6 -6
- package/dist/{loop-QLL4DKRF.js → loop-DBF3UJAD.js} +16 -16
- package/dist/{machine-7T7FBSUL.js → machine-TBJKZ6TN.js} +9 -9
- package/dist/mcp-install-cmd-XZARXNYT.js +9 -0
- package/dist/{real-deps-LS64D3M6.js → real-deps-KNNBQC75.js} +1 -1
- package/dist/{session-sender-HVWTYG35.js → session-sender-E3UHGSNV.js} +4 -4
- package/dist/{status-SMF5JG2K.js → status-KPDVZMJ6.js} +11 -11
- package/dist/{sync-cmd-SLMPCUXO.js → sync-cmd-ULKXCHO2.js} +3 -3
- package/dist/{watch-TLM5QN5X.js → watch-IU6NHB4K.js} +3 -3
- package/dist/{work-claim-cmd-VSSZDFY5.js → work-claim-cmd-DYD6II56.js} +6 -6
- package/dist/{work-cmd-TK4VOOHL.js → work-cmd-ZJY3NA2G.js} +5 -5
- package/dist/{work-comment-cmd-VQCG72ZQ.js → work-comment-cmd-34FTLPUO.js} +5 -5
- package/dist/{work-open-pr-cmd-YESMWATB.js → work-open-pr-cmd-N2RBDKZ4.js} +6 -6
- package/dist/{work-pr-cmd-6TMSCO3Q.js → work-pr-cmd-EXTOGBJC.js} +5 -5
- package/package.json +1 -1
- package/dist/mcp-install-cmd-4AQMSIGY.js +0 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @outerlayer/cli
|
|
2
2
|
|
|
3
|
+
## 0.10.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 4e309ad: `outerlayer init` now also adds the OuterLayer docs MCP server, `outerlayer-docs` at `https://docs.outerlayer.ai/mcp`, beside the `outerlayer` one, so your coding agent can look up how OuterLayer works. It goes into the same file, `.mcp.json` or `.outerlayer/mcp.json`, and an entry of that name already there is left as it is. `outerlayer mcp install` is unchanged.
|
|
8
|
+
- a1b7ec0: `outerlayer work list --startable` help now says what makes an item startable: a build request, no open pull request, and no live lease. An item with an open pull request is no longer offered to the implement queue. `outerlayer work build --item <n>` on such an item reruns the amend when a review waits on an agent, and is otherwise refused with `nothing_to_rerun`.
|
|
9
|
+
- 854a747: A runner now updates itself to a release that has no npm provenance attestation. The tarball must still match the registry's digest and pass `npm audit signatures`. An attestation that is present must still name this repository's release workflow and cover the same tarball, and one that cannot be read refuses the release.
|
|
10
|
+
|
|
11
|
+
## 0.10.1
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 92fa05e: `outerlayer sync` no longer drops freshly emitted artifacts as "blob missing from the spool" when another sync runs at the same time. Syncs now take turns on the artifact spool and re-read it before uploading, so a record another sync already handled is left alone. When a blob really is missing, the warning names the artifact id and the file it looked for.
|
|
16
|
+
|
|
3
17
|
## 0.10.0
|
|
4
18
|
|
|
5
19
|
### Minor Changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { addStdioMcpEntryIfAbsent } from './chunk-
|
|
3
|
+
import { addStdioMcpEntryIfAbsent, addDocsMcpEntryIfAbsent, DOCS_MCP_SERVER_NAME } from './chunk-A56PYPDF.js';
|
|
4
4
|
import { installStarterPack } from './chunk-SUMWRA7K.js';
|
|
5
5
|
import { runEmit } from './chunk-YU5GL7QS.js';
|
|
6
6
|
import { C } from './chunk-YRYMNBGQ.js';
|
|
@@ -119,6 +119,9 @@ function runAgentSetup(opts) {
|
|
|
119
119
|
const mcp = addStdioMcpEntryIfAbsent(repoRoot);
|
|
120
120
|
if (mcp.added) written.add(mcp.path);
|
|
121
121
|
else kept.push(`${mcp.path} (already has an outerlayer server)`);
|
|
122
|
+
const docs = addDocsMcpEntryIfAbsent(repoRoot);
|
|
123
|
+
if (docs.added) written.add(docs.path);
|
|
124
|
+
else kept.push(`${docs.path} (already has an ${DOCS_MCP_SERVER_NAME} server)`);
|
|
122
125
|
} catch (err) {
|
|
123
126
|
problems.push(errorMessage(err));
|
|
124
127
|
}
|
|
@@ -186,9 +189,9 @@ function renderPaths(paths, kept) {
|
|
|
186
189
|
`;
|
|
187
190
|
}
|
|
188
191
|
function renderDone(paths, kept, mcpKept) {
|
|
189
|
-
const mcpNote = mcpKept ? ` ${C.yellow}!${C.reset} The outerlayer
|
|
192
|
+
const mcpNote = mcpKept ? ` ${C.yellow}!${C.reset} The outerlayer and ${DOCS_MCP_SERVER_NAME} entries were not added to .mcp.json, so their MCP servers are not set up. Add them to .mcp.json by hand, or move the servers you wrote into .outerlayer/mcp.json and run \`outerlayer context emit\`.
|
|
190
193
|
` : "";
|
|
191
|
-
const what = mcpKept ? "the OuterLayer skills" : "the OuterLayer skills and MCP
|
|
194
|
+
const what = mcpKept ? "the OuterLayer skills" : "the OuterLayer skills and MCP servers";
|
|
192
195
|
if (paths.length === 0) {
|
|
193
196
|
return `${C.green}\u2713${C.reset} Agent setup: already in place, nothing changed
|
|
194
197
|
${renderPaths(paths, kept)}${mcpNote}`;
|
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"2026-10-
|
|
1
|
+
{"id":"2026-10-07T19:14:32.738Z+adc613b","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-
|
|
3
|
+
export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-JSUUXA5W.js';
|
|
4
4
|
import './chunk-CX22S5BA.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-IU4NZROR.js';
|
|
6
6
|
import './chunk-7RQ73DLO.js';
|
|
7
7
|
import './chunk-M6G7TJVF.js';
|
|
8
8
|
import './chunk-YT35WGIP.js';
|
|
@@ -1,43 +1,43 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { probeCredentials } from './chunk-
|
|
3
|
+
import { probeCredentials } from './chunk-ERHJETKP.js';
|
|
4
4
|
import './chunk-3JVYMD4G.js';
|
|
5
5
|
import './chunk-I2UOAV7X.js';
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
6
|
+
import './chunk-YETTWTAY.js';
|
|
7
|
+
import './chunk-KZ5M4QOB.js';
|
|
8
8
|
import './chunk-T6OIJQRT.js';
|
|
9
9
|
import './chunk-PDTSUOVT.js';
|
|
10
10
|
import './chunk-UGP76IZ5.js';
|
|
11
|
-
import './chunk-
|
|
11
|
+
import './chunk-HKUH5AR2.js';
|
|
12
12
|
import './chunk-V42JY4F6.js';
|
|
13
|
-
import './chunk-
|
|
13
|
+
import './chunk-Y6P5XX2B.js';
|
|
14
14
|
import './chunk-HHJDN6AU.js';
|
|
15
|
-
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem } from './chunk-
|
|
15
|
+
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem } from './chunk-ESZJ5QIC.js';
|
|
16
16
|
import './chunk-TI7B7UEO.js';
|
|
17
17
|
import './chunk-YYYRBYWG.js';
|
|
18
18
|
import './chunk-TBT347UY.js';
|
|
19
|
-
import './chunk-
|
|
20
|
-
import './chunk-
|
|
21
|
-
import './chunk-
|
|
19
|
+
import './chunk-MC6J453K.js';
|
|
20
|
+
import './chunk-472KC6JV.js';
|
|
21
|
+
import './chunk-BREEX2Z7.js';
|
|
22
22
|
import { parseRunnerEnv } from './chunk-6MZSX4M7.js';
|
|
23
23
|
import './chunk-JKIWMRFH.js';
|
|
24
24
|
import './chunk-3FMPZPJQ.js';
|
|
25
25
|
import './chunk-N5FOE5PS.js';
|
|
26
26
|
import './chunk-OGFGZQA3.js';
|
|
27
|
-
import './chunk-
|
|
27
|
+
import './chunk-VVIRHTH4.js';
|
|
28
28
|
import './chunk-QOZKPLVJ.js';
|
|
29
|
-
import './chunk-
|
|
29
|
+
import './chunk-JSUUXA5W.js';
|
|
30
30
|
import './chunk-CX22S5BA.js';
|
|
31
31
|
import './chunk-6CXYORUS.js';
|
|
32
32
|
import './chunk-S6IUUNCD.js';
|
|
33
33
|
import './chunk-F7CU5ABH.js';
|
|
34
34
|
import './chunk-BKO6JEZI.js';
|
|
35
|
-
import './chunk-
|
|
36
|
-
import './chunk-
|
|
35
|
+
import './chunk-DTDZXDQ3.js';
|
|
36
|
+
import './chunk-ZQ5JGHUO.js';
|
|
37
37
|
import './chunk-BFESLKPP.js';
|
|
38
|
-
import './chunk-
|
|
39
|
-
import './chunk-
|
|
40
|
-
import './chunk-
|
|
38
|
+
import './chunk-UES67HLJ.js';
|
|
39
|
+
import './chunk-VDI5POCC.js';
|
|
40
|
+
import './chunk-IU4NZROR.js';
|
|
41
41
|
import './chunk-USO2DKBD.js';
|
|
42
42
|
import './chunk-N6LURUEF.js';
|
|
43
43
|
import './chunk-YRYMNBGQ.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { MIN_ENGINE_MAJOR } from './chunk-
|
|
3
|
+
import { MIN_ENGINE_MAJOR } from './chunk-BREEX2Z7.js';
|
|
4
4
|
import { firecrackerArch, MICROVM_ARCHES, guestAssetsPinned } from './chunk-CX22S5BA.js';
|
|
5
5
|
import { spawnSync } from 'child_process';
|
|
6
6
|
import { existsSync, accessSync, constants, statSync, readFileSync } from 'fs';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { C } from './chunk-YRYMNBGQ.js';
|
|
4
4
|
import { readCloudConfig } from './chunk-EABW6AJQ.js';
|
|
5
|
-
import {
|
|
5
|
+
import { existsSync, writeFileSync, mkdirSync, readFileSync } from 'fs';
|
|
6
6
|
import { join, dirname } from 'path';
|
|
7
7
|
|
|
8
8
|
createRequire(import.meta.url);
|
|
@@ -47,7 +47,7 @@ function readMcpDoc(absPath, relPath) {
|
|
|
47
47
|
function mcpTargetPath(repoRoot) {
|
|
48
48
|
return existsSync(join(repoRoot, ".outerlayer", "mcp.json")) ? ".outerlayer/mcp.json" : ".mcp.json";
|
|
49
49
|
}
|
|
50
|
-
function
|
|
50
|
+
function addMcpEntryIfAbsent(repoRoot, name, entry) {
|
|
51
51
|
const relPath = mcpTargetPath(repoRoot);
|
|
52
52
|
const absPath = join(repoRoot, relPath);
|
|
53
53
|
const doc = readMcpDoc(absPath, relPath);
|
|
@@ -57,12 +57,19 @@ function addStdioMcpEntryIfAbsent(repoRoot, name = "outerlayer") {
|
|
|
57
57
|
}
|
|
58
58
|
const existing = servers ?? {};
|
|
59
59
|
if (name in existing) return { path: relPath, added: false };
|
|
60
|
-
const entry = buildStdioServerEntry(DEFAULT_MCP_COMMAND, void 0, void 0);
|
|
61
60
|
mkdirSync(dirname(absPath), { recursive: true });
|
|
62
61
|
writeFileSync(absPath, `${JSON.stringify({ ...doc, mcpServers: { ...existing, [name]: entry } }, null, 2)}
|
|
63
62
|
`);
|
|
64
63
|
return { path: relPath, added: true };
|
|
65
64
|
}
|
|
65
|
+
function addStdioMcpEntryIfAbsent(repoRoot, name = "outerlayer") {
|
|
66
|
+
return addMcpEntryIfAbsent(repoRoot, name, buildStdioServerEntry(DEFAULT_MCP_COMMAND, void 0, void 0));
|
|
67
|
+
}
|
|
68
|
+
var DOCS_MCP_SERVER_NAME = "outerlayer-docs";
|
|
69
|
+
var DOCS_MCP_URL = "https://docs.outerlayer.ai/mcp";
|
|
70
|
+
function addDocsMcpEntryIfAbsent(repoRoot) {
|
|
71
|
+
return addMcpEntryIfAbsent(repoRoot, DOCS_MCP_SERVER_NAME, { type: "http", url: DOCS_MCP_URL });
|
|
72
|
+
}
|
|
66
73
|
function runMcpInstall(opts = {}) {
|
|
67
74
|
const cwd = opts.cwd ?? process.cwd();
|
|
68
75
|
if (!existsSync(cwd)) throw new McpInstallError(`no such directory: ${cwd}`);
|
|
@@ -92,4 +99,4 @@ function handleMcpInstallError(err) {
|
|
|
92
99
|
process.exitCode = 1;
|
|
93
100
|
}
|
|
94
101
|
|
|
95
|
-
export { DEFAULT_MCP_COMMAND, McpInstallError, addStdioMcpEntryIfAbsent, buildServerEntry, buildStdioServerEntry, defaultMcpUrl, handleMcpInstallError, runMcpInstall };
|
|
102
|
+
export { DEFAULT_MCP_COMMAND, DOCS_MCP_SERVER_NAME, McpInstallError, addDocsMcpEntryIfAbsent, addStdioMcpEntryIfAbsent, buildServerEntry, buildStdioServerEntry, defaultMcpUrl, handleMcpInstallError, runMcpInstall };
|
|
@@ -3,14 +3,14 @@ import { createRequire } from 'node:module';
|
|
|
3
3
|
import { readDefaultBranchHead, cloneRepository, buildRepositoryImage } from './chunk-3FMPZPJQ.js';
|
|
4
4
|
import { startTimeOf, isSameProcess } from './chunk-N5FOE5PS.js';
|
|
5
5
|
import { currentCliBuild } from './chunk-OGFGZQA3.js';
|
|
6
|
-
import { createDockerHost, childEnvironment, spawnRun } from './chunk-
|
|
6
|
+
import { createDockerHost, childEnvironment, spawnRun } from './chunk-VVIRHTH4.js';
|
|
7
7
|
import { RecipeError } from './chunk-QOZKPLVJ.js';
|
|
8
|
-
import { builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, containerRunArgs, containerExecArgs } from './chunk-
|
|
8
|
+
import { builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, containerRunArgs, containerExecArgs } from './chunk-JSUUXA5W.js';
|
|
9
9
|
import { CLAUDE_CODE_VERSION, firecrackerArch, MICROVM_ARCHES, DEFAULT_BASE_IMAGE, GUEST_HELPER_SHA256, GUEST_ASSETS_BASE_URL, GUEST_KERNEL_SHA256, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256, FIRECRACKER_VERSION, GUEST_ASSETS_VERSION } from './chunk-CX22S5BA.js';
|
|
10
10
|
import { execCapture } from './chunk-6CXYORUS.js';
|
|
11
11
|
import { GUEST_CID } from './chunk-S6IUUNCD.js';
|
|
12
|
-
import { WorkCommandError, postJson } from './chunk-
|
|
13
|
-
import { setCustomScrubbers, setLocalIdentity, setRepoRoot, parseTranscript, scrubDeep, scrubText } from './chunk-
|
|
12
|
+
import { WorkCommandError, postJson } from './chunk-DTDZXDQ3.js';
|
|
13
|
+
import { setCustomScrubbers, setLocalIdentity, setRepoRoot, parseTranscript, scrubDeep, scrubText } from './chunk-IU4NZROR.js';
|
|
14
14
|
import { hostAllowed } from './chunk-UXYLWVTQ.js';
|
|
15
15
|
import { parseDuKilobytes } from './chunk-7RQ73DLO.js';
|
|
16
16
|
import { RELAY_PORT, CHECKOUT_DIR, JOB_MOUNT, claudeCredential, buildEnvironment, startBuildServices, checkEnvironment, AGENT_CREDENTIAL_MISSING } from './chunk-M6G7TJVF.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { autoConnect } from './chunk-
|
|
3
|
+
import { autoConnect } from './chunk-ZQ5JGHUO.js';
|
|
4
4
|
import { detectActiveSession } from './chunk-BFESLKPP.js';
|
|
5
|
-
import { sanitizeTerminal } from './chunk-
|
|
6
|
-
import { resolveRepoIdentity } from './chunk-
|
|
5
|
+
import { sanitizeTerminal } from './chunk-VDI5POCC.js';
|
|
6
|
+
import { resolveRepoIdentity } from './chunk-IU4NZROR.js';
|
|
7
7
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
8
8
|
import { defaultFetch } from './chunk-YO4PSLVB.js';
|
|
9
9
|
import { resolveGatewayCredentials, unauthorizedMessage } from './chunk-PLMTLGYH.js';
|
|
@@ -2,21 +2,21 @@
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { decideInstalledSwitch } from './chunk-3JVYMD4G.js';
|
|
4
4
|
import { compareVersions, satisfiesRange } from './chunk-I2UOAV7X.js';
|
|
5
|
-
import { fetchVersionMeta, npmVersion, npmSupportsProvenance, fetchTarballDigest, fetchProvenance, installVersion, auditSignatures } from './chunk-
|
|
6
|
-
import { LEASE_SECONDS, releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, provisionEnvironment, readProvisionOut, resolveHostBuild, workdirProblem, listenOnBroker, hostEnvironment, hostCommandEnvironment, execArgv, microVmCommandLine, runCommand, execCommandLine, startSender, startHostServices, finishJob, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, hookLimitsFor, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, ALREADY_RELEASED } from './chunk-
|
|
5
|
+
import { fetchVersionMeta, npmVersion, npmSupportsProvenance, fetchTarballDigest, fetchProvenance, installVersion, auditSignatures } from './chunk-YETTWTAY.js';
|
|
6
|
+
import { LEASE_SECONDS, releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, provisionEnvironment, readProvisionOut, resolveHostBuild, workdirProblem, listenOnBroker, hostEnvironment, hostCommandEnvironment, execArgv, microVmCommandLine, runCommand, execCommandLine, startSender, startHostServices, finishJob, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, hookLimitsFor, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, ALREADY_RELEASED } from './chunk-KZ5M4QOB.js';
|
|
7
7
|
import { writeJobFile, readJobFile, readJobFileChecked } from './chunk-T6OIJQRT.js';
|
|
8
8
|
import { RUNNER_PROTOCOL } from './chunk-PDTSUOVT.js';
|
|
9
9
|
import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-UGP76IZ5.js';
|
|
10
|
-
import { placeholderQueues, placeholderProblem } from './chunk-
|
|
10
|
+
import { placeholderQueues, placeholderProblem } from './chunk-ESZJ5QIC.js';
|
|
11
11
|
import { writeMarker, readMarker, currentVersion, removeMarker, entryIn, versionDir, startedThroughCurrent, switchCurrent, cleanVersions, isInLayout, stagingDir } from './chunk-TI7B7UEO.js';
|
|
12
12
|
import { freeBytes, formatBytes } from './chunk-YYYRBYWG.js';
|
|
13
13
|
import { RepoFilter } from './chunk-TBT347UY.js';
|
|
14
|
-
import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, provisionContainer, lifecycleSteps, lifecycleFailureReason, prepareBranch, containerCommandLine, BuildTokens, classifyRefusal, refusalCode, measureDisk, createRunnerLog, setUpRunnerCgroup, parseCpuList, ensureTunnel, keepGhConfigCurrent, createContainerRuntime, formatClock } from './chunk-
|
|
14
|
+
import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, provisionContainer, lifecycleSteps, lifecycleFailureReason, prepareBranch, containerCommandLine, BuildTokens, classifyRefusal, refusalCode, measureDisk, createRunnerLog, setUpRunnerCgroup, parseCpuList, ensureTunnel, keepGhConfigCurrent, createContainerRuntime, formatClock } from './chunk-BREEX2Z7.js';
|
|
15
15
|
import { checkFit } from './chunk-JKIWMRFH.js';
|
|
16
16
|
import { startTimeOf, claimPidFile, readPidFile, isSameProcess, releasePidFile } from './chunk-N5FOE5PS.js';
|
|
17
|
-
import { spawnRun } from './chunk-
|
|
18
|
-
import { builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, BUILD_LABEL, RUNNER_LABEL } from './chunk-
|
|
19
|
-
import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-
|
|
17
|
+
import { spawnRun } from './chunk-VVIRHTH4.js';
|
|
18
|
+
import { builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, BUILD_LABEL, RUNNER_LABEL } from './chunk-JSUUXA5W.js';
|
|
19
|
+
import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-DTDZXDQ3.js';
|
|
20
20
|
import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind } from './chunk-M2PBLRB7.js';
|
|
21
21
|
import { exceedsDisk } from './chunk-7RQ73DLO.js';
|
|
22
22
|
import { sharedUserEnvironment, JOB_MOUNT, claudeCredential } from './chunk-M6G7TJVF.js';
|
|
@@ -225,15 +225,17 @@ async function verifyInto(staging, version, deps) {
|
|
|
225
225
|
const digest = await fetchTarballDigest(meta.tarball, deps.fetchImpl);
|
|
226
226
|
if (digest !== expected) return failed(`the tarball for ${version} does not match the registry's integrity digest`);
|
|
227
227
|
const provenance = await fetchProvenance(version, deps.fetchImpl);
|
|
228
|
-
if (provenance ===
|
|
229
|
-
if (provenance.
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
228
|
+
if (provenance.kind === "unreadable") return failed(`the provenance of ${version} could not be read`);
|
|
229
|
+
if (provenance.kind === "found") {
|
|
230
|
+
if (provenance.repository !== RELEASE_REPOSITORY) {
|
|
231
|
+
return failed(`the provenance of ${version} names the repository ${provenance.repository}, not ${RELEASE_REPOSITORY}`);
|
|
232
|
+
}
|
|
233
|
+
if (provenance.workflowPath !== RELEASE_WORKFLOW_PATH) {
|
|
234
|
+
return failed(`the provenance of ${version} names the workflow ${provenance.workflowPath}, not ${RELEASE_WORKFLOW_PATH}`);
|
|
235
|
+
}
|
|
236
|
+
if (Buffer.from(provenance.subjectSha512, "hex").toString("base64") !== digest) {
|
|
237
|
+
return failed(`the provenance of ${version} covers a different package than the tarball`);
|
|
238
|
+
}
|
|
237
239
|
}
|
|
238
240
|
mkdirSync(staging, { recursive: true, mode: RUNNER_DIR_MODE });
|
|
239
241
|
const npm = await npmVersion(deps.runNpm, staging);
|
|
@@ -1236,7 +1238,7 @@ var CLAIM_REFUSAL_CODES = new Set(
|
|
|
1236
1238
|
"pull_request_from_fork pull_request_on_default_branch pull_request_ambiguous branch_claimed_elsewhere".split(" ")
|
|
1237
1239
|
);
|
|
1238
1240
|
async function tryClaimAndStart(state, item, queue) {
|
|
1239
|
-
const { postJson: postJson2 } = await import('./work-cmd-
|
|
1241
|
+
const { postJson: postJson2 } = await import('./work-cmd-ZJY3NA2G.js');
|
|
1240
1242
|
const log = logOf(state);
|
|
1241
1243
|
const hostKey = await loadHostKey(state.config.configPath);
|
|
1242
1244
|
const claim = await retrySend(
|
|
@@ -1972,7 +1974,7 @@ async function start(configPath, deps = { fetchImpl: fetch }) {
|
|
|
1972
1974
|
const outcome = await onStartUnderMarker({
|
|
1973
1975
|
configPath,
|
|
1974
1976
|
own: ownVersionOf(deps),
|
|
1975
|
-
check: update.check ? () => update.check(configPath) : async () => (await import('./check-
|
|
1977
|
+
check: update.check ? () => update.check(configPath) : async () => (await import('./check-NQYQHITZ.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl }),
|
|
1976
1978
|
now: () => (deps.now ?? (() => /* @__PURE__ */ new Date()))().getTime(),
|
|
1977
1979
|
log
|
|
1978
1980
|
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { isPlaceholderCommand } from './chunk-
|
|
4
|
-
import { describeCallFailure } from './chunk-
|
|
5
|
-
import { WorkCommandError, getJson } from './chunk-
|
|
6
|
-
import { sanitizeTerminal } from './chunk-
|
|
3
|
+
import { isPlaceholderCommand } from './chunk-MC6J453K.js';
|
|
4
|
+
import { describeCallFailure } from './chunk-BREEX2Z7.js';
|
|
5
|
+
import { WorkCommandError, getJson } from './chunk-DTDZXDQ3.js';
|
|
6
|
+
import { sanitizeTerminal } from './chunk-VDI5POCC.js';
|
|
7
7
|
import { builtinKind } from './chunk-M2PBLRB7.js';
|
|
8
8
|
import { CLAUDE_CREDENTIAL_VARIABLES, claudeCredential } from './chunk-M6G7TJVF.js';
|
|
9
9
|
import { signerFor } from './chunk-V7NIVOFD.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { LiveUploader } from './chunk-
|
|
4
|
-
import { CaptureDaemon } from './chunk-
|
|
3
|
+
import { LiveUploader } from './chunk-Y6P5XX2B.js';
|
|
4
|
+
import { CaptureDaemon } from './chunk-IU4NZROR.js';
|
|
5
5
|
import { parseWorkItemEnv } from './chunk-GQD22KKN.js';
|
|
6
6
|
import { spoolDir } from './chunk-4HMXH2OA.js';
|
|
7
7
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { autoConnect } from './chunk-
|
|
3
|
+
import { autoConnect } from './chunk-ZQ5JGHUO.js';
|
|
4
4
|
import { detectActiveSession } from './chunk-BFESLKPP.js';
|
|
5
|
-
import { resolveRepoIdentity } from './chunk-
|
|
5
|
+
import { resolveRepoIdentity } from './chunk-IU4NZROR.js';
|
|
6
6
|
import { parseWorkItemEnv } from './chunk-GQD22KKN.js';
|
|
7
7
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
8
8
|
import { defaultFetch } from './chunk-YO4PSLVB.js';
|