@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.
Files changed (53) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/{agent-setup-ODTDC3US.js → agent-setup-YEFN74Y4.js} +6 -3
  3. package/dist/build-info.json +1 -1
  4. package/dist/{builder-5DKTBWT3.js → builder-EVO6F2NO.js} +2 -2
  5. package/dist/{check-VJRJ2KQ4.js → check-NQYQHITZ.js} +16 -16
  6. package/dist/{chunk-QPPPUKQJ.js → chunk-472KC6JV.js} +1 -1
  7. package/dist/{chunk-47RS42OZ.js → chunk-A56PYPDF.js} +11 -4
  8. package/dist/{chunk-LBU4CLK5.js → chunk-BREEX2Z7.js} +4 -4
  9. package/dist/{chunk-KWCJLAHQ.js → chunk-DTDZXDQ3.js} +3 -3
  10. package/dist/{chunk-YCPV7FN6.js → chunk-ERHJETKP.js} +20 -18
  11. package/dist/{chunk-XGCJNSI7.js → chunk-ESZJ5QIC.js} +4 -4
  12. package/dist/{chunk-VMK7I3TB.js → chunk-HKUH5AR2.js} +2 -2
  13. package/dist/{chunk-5K3IUOPJ.js → chunk-I263FZ3A.js} +2 -2
  14. package/dist/{chunk-LTJPX7TX.js → chunk-IU4NZROR.js} +249 -18
  15. package/dist/{chunk-TV36SKEN.js → chunk-JSUUXA5W.js} +1 -1
  16. package/dist/{chunk-OSKO3PAL.js → chunk-KZ5M4QOB.js} +7 -7
  17. package/dist/{chunk-WJBJY5DQ.js → chunk-MC6J453K.js} +2 -2
  18. package/dist/{chunk-XZNO4QED.js → chunk-R2UYH4QV.js} +5 -5
  19. package/dist/{chunk-LYESSQUA.js → chunk-UES67HLJ.js} +2 -2
  20. package/dist/{chunk-ZEQMTBRD.js → chunk-VDI5POCC.js} +80 -2
  21. package/dist/{chunk-FKFGQJNN.js → chunk-VVIRHTH4.js} +1 -1
  22. package/dist/{chunk-543OT6V5.js → chunk-Y6P5XX2B.js} +25 -7
  23. package/dist/{chunk-ABIWDUMS.js → chunk-YETTWTAY.js} +4 -4
  24. package/dist/{chunk-KPUJGBA4.js → chunk-ZQ5JGHUO.js} +2 -2
  25. package/dist/{cli-77URFYI7.js → cli-ZCWMJCEK.js} +52 -52
  26. package/dist/{command-2LYWVGIK.js → command-LNEFKIVC.js} +9 -9
  27. package/dist/{connect-cmd-MPZWSEKY.js → connect-cmd-5MIUNYAY.js} +3 -3
  28. package/dist/{dist-QY5CL5LB.js → dist-3M3ZMEZF.js} +1 -1
  29. package/dist/{docker-V7B6UKPF.js → docker-GM526LGX.js} +3 -3
  30. package/dist/{doctor-PUAL5LTL.js → doctor-QSV4DYT2.js} +11 -11
  31. package/dist/{emit-artifact-cmd-P3IWNSQY.js → emit-artifact-cmd-VKPW577P.js} +5 -5
  32. package/dist/{emit-criteria-cmd-GOSP6X74.js → emit-criteria-cmd-U2TL6FYY.js} +4 -4
  33. package/dist/{emit-finding-cmd-D554IQKU.js → emit-finding-cmd-TMOOKHPD.js} +4 -4
  34. package/dist/{emit-result-cmd-QACXTIBV.js → emit-result-cmd-GKBVPMU4.js} +5 -5
  35. package/dist/index.js +1 -1
  36. package/dist/{init-WX5XE6L3.js → init-MJ2PO2VQ.js} +11 -11
  37. package/dist/{init-TMBE3BRN.js → init-OKCDXEOG.js} +10 -10
  38. package/dist/{init-cmd-4FQKQLJ5.js → init-cmd-5TEM2QNH.js} +6 -6
  39. package/dist/{loop-QLL4DKRF.js → loop-DBF3UJAD.js} +16 -16
  40. package/dist/{machine-7T7FBSUL.js → machine-TBJKZ6TN.js} +9 -9
  41. package/dist/mcp-install-cmd-XZARXNYT.js +9 -0
  42. package/dist/{real-deps-LS64D3M6.js → real-deps-KNNBQC75.js} +1 -1
  43. package/dist/{session-sender-HVWTYG35.js → session-sender-E3UHGSNV.js} +4 -4
  44. package/dist/{status-SMF5JG2K.js → status-KPDVZMJ6.js} +11 -11
  45. package/dist/{sync-cmd-SLMPCUXO.js → sync-cmd-ULKXCHO2.js} +3 -3
  46. package/dist/{watch-TLM5QN5X.js → watch-IU6NHB4K.js} +3 -3
  47. package/dist/{work-claim-cmd-VSSZDFY5.js → work-claim-cmd-DYD6II56.js} +6 -6
  48. package/dist/{work-cmd-TK4VOOHL.js → work-cmd-ZJY3NA2G.js} +5 -5
  49. package/dist/{work-comment-cmd-VQCG72ZQ.js → work-comment-cmd-34FTLPUO.js} +5 -5
  50. package/dist/{work-open-pr-cmd-YESMWATB.js → work-open-pr-cmd-N2RBDKZ4.js} +6 -6
  51. package/dist/{work-pr-cmd-6TMSCO3Q.js → work-pr-cmd-EXTOGBJC.js} +5 -5
  52. package/package.json +1 -1
  53. 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-47RS42OZ.js';
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 entry was not added to .mcp.json, so its MCP server is not set up. Add it to .mcp.json by hand, or move the servers you wrote into .outerlayer/mcp.json and run \`outerlayer context emit\`.
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 server";
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}`;
@@ -1 +1 @@
1
- {"id":"2026-10-07T12:35:00.915Z+be9473d","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
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-TV36SKEN.js';
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-LTJPX7TX.js';
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-YCPV7FN6.js';
3
+ import { probeCredentials } from './chunk-ERHJETKP.js';
4
4
  import './chunk-3JVYMD4G.js';
5
5
  import './chunk-I2UOAV7X.js';
6
- import './chunk-ABIWDUMS.js';
7
- import './chunk-OSKO3PAL.js';
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-VMK7I3TB.js';
11
+ import './chunk-HKUH5AR2.js';
12
12
  import './chunk-V42JY4F6.js';
13
- import './chunk-543OT6V5.js';
13
+ import './chunk-Y6P5XX2B.js';
14
14
  import './chunk-HHJDN6AU.js';
15
- import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem } from './chunk-XGCJNSI7.js';
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-WJBJY5DQ.js';
20
- import './chunk-QPPPUKQJ.js';
21
- import './chunk-LBU4CLK5.js';
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-FKFGQJNN.js';
27
+ import './chunk-VVIRHTH4.js';
28
28
  import './chunk-QOZKPLVJ.js';
29
- import './chunk-TV36SKEN.js';
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-KWCJLAHQ.js';
36
- import './chunk-KPUJGBA4.js';
35
+ import './chunk-DTDZXDQ3.js';
36
+ import './chunk-ZQ5JGHUO.js';
37
37
  import './chunk-BFESLKPP.js';
38
- import './chunk-LYESSQUA.js';
39
- import './chunk-ZEQMTBRD.js';
40
- import './chunk-LTJPX7TX.js';
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-LBU4CLK5.js';
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 { mkdirSync, writeFileSync, existsSync, readFileSync } from 'fs';
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 addStdioMcpEntryIfAbsent(repoRoot, name = "outerlayer") {
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-FKFGQJNN.js';
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-TV36SKEN.js';
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-KWCJLAHQ.js';
13
- import { setCustomScrubbers, setLocalIdentity, setRepoRoot, parseTranscript, scrubDeep, scrubText } from './chunk-LTJPX7TX.js';
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-KPUJGBA4.js';
3
+ import { autoConnect } from './chunk-ZQ5JGHUO.js';
4
4
  import { detectActiveSession } from './chunk-BFESLKPP.js';
5
- import { sanitizeTerminal } from './chunk-ZEQMTBRD.js';
6
- import { resolveRepoIdentity } from './chunk-LTJPX7TX.js';
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-ABIWDUMS.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-OSKO3PAL.js';
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-XGCJNSI7.js';
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-LBU4CLK5.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-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-FKFGQJNN.js';
18
- import { builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, BUILD_LABEL, RUNNER_LABEL } from './chunk-TV36SKEN.js';
19
- import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-KWCJLAHQ.js';
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 === void 0) return failed(`${version} has no provenance attestation`);
229
- if (provenance.repository !== RELEASE_REPOSITORY) {
230
- return failed(`the provenance of ${version} names the repository ${provenance.repository}, not ${RELEASE_REPOSITORY}`);
231
- }
232
- if (provenance.workflowPath !== RELEASE_WORKFLOW_PATH) {
233
- return failed(`the provenance of ${version} names the workflow ${provenance.workflowPath}, not ${RELEASE_WORKFLOW_PATH}`);
234
- }
235
- if (Buffer.from(provenance.subjectSha512, "hex").toString("base64") !== digest) {
236
- return failed(`the provenance of ${version} covers a different package than the tarball`);
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-TK4VOOHL.js');
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-VJRJ2KQ4.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl }),
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-WJBJY5DQ.js';
4
- import { describeCallFailure } from './chunk-LBU4CLK5.js';
5
- import { WorkCommandError, getJson } from './chunk-KWCJLAHQ.js';
6
- import { sanitizeTerminal } from './chunk-ZEQMTBRD.js';
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-543OT6V5.js';
4
- import { CaptureDaemon } from './chunk-LTJPX7TX.js';
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-KPUJGBA4.js';
3
+ import { autoConnect } from './chunk-ZQ5JGHUO.js';
4
4
  import { detectActiveSession } from './chunk-BFESLKPP.js';
5
- import { resolveRepoIdentity } from './chunk-LTJPX7TX.js';
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';