@outerlayer/cli 0.33.0-next.20261022180022 → 0.33.0-next.20261022182214
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/README.md +4 -1
- package/dist/{build-2ONBPS3M.js → build-RBLDHQTY.js} +2 -2
- package/dist/{build-disk-PCDS676T.js → build-disk-4EEKP23Z.js} +3 -3
- package/dist/build-info.json +1 -1
- package/dist/{builder-AIKWGJHP.js → builder-V3KALVKL.js} +2 -2
- package/dist/{check-LGZOJYLS.js → check-LDDMISY6.js} +11 -11
- package/dist/{chunk-M7IA4JOX.js → chunk-33SMNWZX.js} +2 -2
- package/dist/{chunk-JFRBPBD5.js → chunk-3BGCXC3O.js} +1 -1
- package/dist/{chunk-GDI6QGRH.js → chunk-4AHKR3K5.js} +2 -2
- package/dist/{chunk-LG2IQRTO.js → chunk-5CZV4FZ5.js} +1 -1
- package/dist/{chunk-HAD7LYDL.js → chunk-COLOLDY3.js} +33 -6
- package/dist/{chunk-6KVKEZTH.js → chunk-F5HZT672.js} +2 -2
- package/dist/{chunk-VGIS2D3U.js → chunk-IQFX5GQH.js} +5 -5
- package/dist/{chunk-OKTLQTWH.js → chunk-JDKLORO3.js} +3 -3
- package/dist/{chunk-R6QCSHKC.js → chunk-KFA762LZ.js} +2 -2
- package/dist/{chunk-J5VNSW4W.js → chunk-MCIPCQP3.js} +5 -5
- package/dist/{chunk-7HMF7I3D.js → chunk-MWAA3A5T.js} +1 -1
- package/dist/{chunk-7SCEDWQP.js → chunk-PAFSFC6Q.js} +3 -3
- package/dist/{cli-2LCCZQA6.js → cli-QUV5HTDW.js} +24 -24
- package/dist/{command-2EJ76XJH.js → command-LEE7TFQE.js} +5 -5
- package/dist/{container-start-RWOEQUCC.js → container-start-SL63GFLG.js} +6 -6
- package/dist/{docker-NDEA46KV.js → docker-WVTQTRSC.js} +2 -2
- package/dist/{doctor-C3JKNKEJ.js → doctor-KT4HGALK.js} +8 -8
- package/dist/{emit-demo-cmd-AKRXCWLK.js → emit-demo-cmd-Q6W74DCY.js} +1 -1
- package/dist/{guest-init-KDK4DQFK.js → guest-init-TGECSRKO.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/{init-2LWFZK45.js → init-7P6JHB6Z.js} +6 -6
- package/dist/{init-ZCZVN3AI.js → init-BMTDKZU6.js} +6 -6
- package/dist/{init-cmd-3YBDLWPR.js → init-cmd-E7DMPT6E.js} +1 -1
- package/dist/{loop-3YF4S4CA.js → loop-7MFQISEV.js} +11 -11
- package/dist/{machine-X3EYEXEM.js → machine-4QGWUII5.js} +5 -5
- package/dist/{runner-identity-77KVP24W.js → runner-identity-X3UP5IQ4.js} +2 -2
- package/dist/{runner-key-CBL5552Z.js → runner-key-3STHCRT5.js} +6 -6
- package/dist/{status-TGQTGC7B.js → status-WS2REEFU.js} +6 -6
- package/package.json +1 -1
- package/skill-pack/maintained/outerlayer-build/references/agent-briefs.md +9 -3
- package/skill-pack/maintained/outerlayer-build/references/evidence.md +4 -3
- package/skill-pack/maintained/outerlayer-evidence/SKILL.md +8 -7
package/README.md
CHANGED
|
@@ -223,7 +223,10 @@ content:
|
|
|
223
223
|
build uses the host's network: the build's tunnel does not carry it, and
|
|
224
224
|
`runner.build.allowHosts` does not limit it.
|
|
225
225
|
- **`outerlayer runner start` with `builtin:vm` hooks** runs each build in its
|
|
226
|
-
own Firecracker microVM, which has no network
|
|
226
|
+
own Firecracker microVM, which has no network card. Every TCP connection
|
|
227
|
+
of every program in it goes through the runner's tunnel, whether or not the
|
|
228
|
+
program reads the proxy variables, and `runner.build.allowHosts` narrows what
|
|
229
|
+
it reaches. No DNS query or UDP packet leaves the microVM. The first microVM
|
|
227
230
|
build downloads a pinned Firecracker release from github.com. It also
|
|
228
231
|
downloads a guest kernel and a guest helper from the releases of the public
|
|
229
232
|
repository `outerlayerai/guest-assets` on github.com. The runner checks each
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { KEY_PREFIX, TAG_HOST, buildRepositoryImage, metadataFromLabels, prepareImageBuild, writeRecord } from './chunk-
|
|
3
|
+
export { KEY_PREFIX, TAG_HOST, buildRepositoryImage, metadataFromLabels, prepareImageBuild, writeRecord } from './chunk-MWAA3A5T.js';
|
|
4
4
|
import './chunk-ZFJAQS3A.js';
|
|
5
5
|
import './chunk-JBJTC3UU.js';
|
|
6
6
|
export { RecipeError } from './chunk-3Z3MPR55.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-KFA762LZ.js';
|
|
8
8
|
import './chunk-MBGS33SL.js';
|
|
9
9
|
import './chunk-D5ZGMXUL.js';
|
|
10
10
|
import './chunk-HACGUL52.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { DEFAULT_BUILD_DISK, DOCKER_CACHE_MS, checkDiskFit, realBuildDiskProbe, runDocker, volumeBytes } from './chunk-
|
|
3
|
+
export { DEFAULT_BUILD_DISK, DOCKER_CACHE_MS, checkDiskFit, realBuildDiskProbe, runDocker, volumeBytes } from './chunk-3BGCXC3O.js';
|
|
4
4
|
import './chunk-YYYRBYWG.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-5CZV4FZ5.js';
|
|
6
6
|
import './chunk-3Z3MPR55.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-KFA762LZ.js';
|
|
8
8
|
import './chunk-YJLHUKYS.js';
|
|
9
9
|
import './chunk-5DNCFOXA.js';
|
|
10
10
|
import './chunk-634F6J3Q.js';
|
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"2026-10-22T18:
|
|
1
|
+
{"id":"2026-10-22T18:25:50.694Z+4fc4b3d","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-5CZV4FZ5.js';
|
|
4
4
|
import './chunk-3Z3MPR55.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-KFA762LZ.js';
|
|
6
6
|
import './chunk-YJLHUKYS.js';
|
|
7
7
|
import './chunk-5DNCFOXA.js';
|
|
8
8
|
import './chunk-634F6J3Q.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { probeCredentials } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
import { probeCredentials } from './chunk-MCIPCQP3.js';
|
|
4
|
+
import './chunk-IQFX5GQH.js';
|
|
5
5
|
import './chunk-ZVB57WI6.js';
|
|
6
6
|
import './chunk-QPAPHQZ7.js';
|
|
7
7
|
import './chunk-3JVYMD4G.js';
|
|
@@ -9,22 +9,22 @@ import './chunk-E7R2GIAW.js';
|
|
|
9
9
|
import './chunk-W4UFGYKQ.js';
|
|
10
10
|
import './chunk-YKYCE4HY.js';
|
|
11
11
|
import './chunk-5KO3TN2F.js';
|
|
12
|
-
import './chunk-
|
|
12
|
+
import './chunk-COLOLDY3.js';
|
|
13
13
|
import './chunk-TTACRX4N.js';
|
|
14
14
|
import './chunk-I3LTIAOR.js';
|
|
15
15
|
import './chunk-JUVUVXQZ.js';
|
|
16
16
|
import './chunk-J6LFFZOY.js';
|
|
17
17
|
import './chunk-EBX2DU2M.js';
|
|
18
18
|
import './chunk-ESVW4MJY.js';
|
|
19
|
-
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, managedProblems, managedFactsOf, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-
|
|
19
|
+
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, managedProblems, managedFactsOf, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-PAFSFC6Q.js';
|
|
20
20
|
import './chunk-O7MSQBTH.js';
|
|
21
21
|
import './chunk-TBT347UY.js';
|
|
22
|
-
import './chunk-
|
|
22
|
+
import './chunk-33SMNWZX.js';
|
|
23
23
|
import './chunk-HDD3BKAE.js';
|
|
24
|
-
import './chunk-
|
|
25
|
-
import { probeHelper, HELPER_ENV, helperSocketPath } from './chunk-
|
|
24
|
+
import './chunk-F5HZT672.js';
|
|
25
|
+
import { probeHelper, HELPER_ENV, helperSocketPath } from './chunk-JDKLORO3.js';
|
|
26
26
|
import './chunk-2PGI6RDE.js';
|
|
27
|
-
import './chunk-
|
|
27
|
+
import './chunk-MWAA3A5T.js';
|
|
28
28
|
import './chunk-ZFJAQS3A.js';
|
|
29
29
|
import './chunk-JBJTC3UU.js';
|
|
30
30
|
import './chunk-OGFGZQA3.js';
|
|
@@ -34,11 +34,11 @@ import './chunk-JKPJQNJF.js';
|
|
|
34
34
|
import './chunk-PWB7EK4Z.js';
|
|
35
35
|
import './chunk-TQMI335S.js';
|
|
36
36
|
import { DEFAULT_UNIT_NAME } from './chunk-A6MLCH76.js';
|
|
37
|
-
import './chunk-
|
|
37
|
+
import './chunk-3BGCXC3O.js';
|
|
38
38
|
import './chunk-YYYRBYWG.js';
|
|
39
|
-
import './chunk-
|
|
39
|
+
import './chunk-5CZV4FZ5.js';
|
|
40
40
|
import './chunk-3Z3MPR55.js';
|
|
41
|
-
import './chunk-
|
|
41
|
+
import './chunk-KFA762LZ.js';
|
|
42
42
|
import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-ZQ7VRXYM.js';
|
|
43
43
|
import './chunk-UXYLWVTQ.js';
|
|
44
44
|
import './chunk-YJLHUKYS.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { hasStoredCredential, AGENT_COMMANDS, storeClaudeCredential, credentialFromStdin, isAgentName } from './chunk-HDD3BKAE.js';
|
|
4
|
-
import { detectMachine, supportsContainerBuilds, reachDockerStep, describeMachineDocker, supportsMicroVmBuilds } from './chunk-
|
|
5
|
-
import { MIN_ENGINE_MAJOR } from './chunk-
|
|
4
|
+
import { detectMachine, supportsContainerBuilds, reachDockerStep, describeMachineDocker, supportsMicroVmBuilds } from './chunk-F5HZT672.js';
|
|
5
|
+
import { MIN_ENGINE_MAJOR } from './chunk-JDKLORO3.js';
|
|
6
6
|
import { runnerCredentialProblem } from './chunk-ZQ7VRXYM.js';
|
|
7
7
|
import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-MBGS33SL.js';
|
|
8
8
|
import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { formatBytes, freeBytes } from './chunk-YYYRBYWG.js';
|
|
4
|
-
import { BUILD_LABEL, RUNNER_LABEL, runnerLabelValue } from './chunk-
|
|
4
|
+
import { BUILD_LABEL, RUNNER_LABEL, runnerLabelValue } from './chunk-5CZV4FZ5.js';
|
|
5
5
|
import { parseSize } from './chunk-YJLHUKYS.js';
|
|
6
6
|
import { buildsDir, rootfsDir, runnerDir } from './chunk-MBGS33SL.js';
|
|
7
7
|
import { spawnSync } from 'child_process';
|
|
@@ -1190,7 +1190,7 @@ function doctorExitCode(checks) {
|
|
|
1190
1190
|
|
|
1191
1191
|
// src/doctor-report.ts
|
|
1192
1192
|
async function gatherDoctorChecks() {
|
|
1193
|
-
const { DEFAULT_BUILD_DISK } = await import('./build-disk-
|
|
1193
|
+
const { DEFAULT_BUILD_DISK } = await import('./build-disk-4EEKP23Z.js');
|
|
1194
1194
|
const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-WAIYUZUG.js');
|
|
1195
1195
|
const configPath = defaultRunnerConfigPath();
|
|
1196
1196
|
const runnerHost = hasRunnerBlock(configPath);
|
|
@@ -1212,7 +1212,7 @@ async function gatherDoctorChecks() {
|
|
|
1212
1212
|
const { runnerVmCheck } = await import('./doctor-53F2PYY7.js');
|
|
1213
1213
|
checks.push(runnerVmCheck(configPath, { lima: realLima(), home: homeFromEnv(), instance: runnerVm.instance }));
|
|
1214
1214
|
} else if (hasRunnerBlock(configPath)) {
|
|
1215
|
-
const { runnerHostChecks } = await import('./doctor-
|
|
1215
|
+
const { runnerHostChecks } = await import('./doctor-KT4HGALK.js');
|
|
1216
1216
|
const gateway = (() => {
|
|
1217
1217
|
try {
|
|
1218
1218
|
const { url, apiKey, appId } = loadRunnerConfig(configPath);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { RecipeError } from './chunk-3Z3MPR55.js';
|
|
4
|
-
import { BUILDKIT_IMAGE } from './chunk-
|
|
4
|
+
import { BUILDKIT_IMAGE } from './chunk-KFA762LZ.js';
|
|
5
5
|
import { parseSize } from './chunk-YJLHUKYS.js';
|
|
6
6
|
import { compareVersions } from './chunk-5DNCFOXA.js';
|
|
7
7
|
import { ensureHostKey } from './chunk-634F6J3Q.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import {
|
|
3
|
+
import { TUNNEL_PORT, BRIDGE_ADDRESS, BRIDGE_CIDR } from './chunk-TTACRX4N.js';
|
|
4
4
|
import { startTimeOf } from './chunk-JBJTC3UU.js';
|
|
5
5
|
import { EXEC_PORT } from './chunk-O5F376JJ.js';
|
|
6
6
|
import { RELAY_PORT } from './chunk-D5ZGMXUL.js';
|
|
7
7
|
import { spawn, spawnSync } from 'child_process';
|
|
8
|
-
import { symlinkSync, lstatSync, writeFileSync, chmodSync, mkdirSync } from 'fs';
|
|
8
|
+
import { symlinkSync, lstatSync, writeFileSync, chmodSync, mkdirSync, existsSync } from 'fs';
|
|
9
9
|
|
|
10
10
|
createRequire(import.meta.url);
|
|
11
11
|
var HELPER_PATH = "/opt/outerlayer/bin/outerlayer-guest";
|
|
@@ -19,9 +19,17 @@ var DOCKER_DATA_ROOT = "/build/docker";
|
|
|
19
19
|
var BUILD_DISK = "/dev/vdb";
|
|
20
20
|
var HOSTNAME = "outerlayer-build";
|
|
21
21
|
var HOSTS = "127.0.0.1 localhost\n::1 localhost ip6-localhost ip6-loopback\n";
|
|
22
|
-
var
|
|
22
|
+
var NAME_SERVER = "127.0.0.53";
|
|
23
|
+
var RESOLV_CONF = `# The guest helper answers every lookup. The runner's tunnel resolves a name when a program connects to it.
|
|
24
|
+
nameserver ${NAME_SERVER}
|
|
25
|
+
`;
|
|
26
|
+
var NSSWITCH_CONF = "hosts: files dns\n";
|
|
27
|
+
var NSSWITCH_PATH = "/etc/nsswitch.conf";
|
|
28
|
+
var NET_READY = "/run/outerlayer-net.ready";
|
|
29
|
+
var TUN_DEVICE = "tun0";
|
|
23
30
|
var BUILD_DIRECTORIES = ["/build/tmp", "/build/home", "/build/work"];
|
|
24
31
|
var WORLD_WRITABLE = 1023;
|
|
32
|
+
var NET_READY_TIMEOUT_MS = 3e4;
|
|
25
33
|
function relayPortsFrom(cmdline) {
|
|
26
34
|
const value = new RegExp(`(?:^|\\s)${KERNEL_FLAG.replace(".", "\\.")}=(\\S*)`).exec(cmdline)?.[1];
|
|
27
35
|
if (value === void 0 || value === "") return [];
|
|
@@ -89,6 +97,7 @@ function runGuestInit(host, cmdline) {
|
|
|
89
97
|
`],
|
|
90
98
|
["resolv.conf", RESOLV_CONF]
|
|
91
99
|
];
|
|
100
|
+
if (!host.exists(NSSWITCH_PATH)) files.push(["nsswitch.conf", NSSWITCH_CONF]);
|
|
92
101
|
for (const [name, text] of files) {
|
|
93
102
|
host.writeFile(`/run/${name}`, text);
|
|
94
103
|
host.mount({ source: `/run/${name}`, target: `/etc/${name}`, bind: true });
|
|
@@ -96,15 +105,32 @@ function runGuestInit(host, cmdline) {
|
|
|
96
105
|
host.writeFile("/proc/sys/kernel/hostname", HOSTNAME);
|
|
97
106
|
host.mount({ source: "tmpfs", target: "/outerlayer/job", type: "tmpfs", options: "mode=0755" });
|
|
98
107
|
const relay = host.spawnDetached([HELPER_PATH, "relay", ...ports.flatMap((port) => ["--forward", String(port)])]);
|
|
108
|
+
const net = host.spawnDetached([HELPER_PATH, "net", "--tun", TUN_DEVICE, "--dns", `${NAME_SERVER}:53`, "--tunnel-port", String(TUNNEL_PORT)]);
|
|
109
|
+
host.waitForFile(NET_READY);
|
|
99
110
|
if (dockerRequestedBy(cmdline)) {
|
|
100
111
|
startBridgeForwarder(host);
|
|
101
112
|
startDocker(host);
|
|
102
113
|
}
|
|
103
114
|
const agent = host.spawnDetached([HELPER_PATH, "exec-agent", "--port", String(EXEC_PORT)]);
|
|
104
|
-
host.writeFile(HELPER_RECORD, [relay, agent].map((started) => `${started.pid} ${started.start}
|
|
115
|
+
host.writeFile(HELPER_RECORD, [relay, net, agent].map((started) => `${started.pid} ${started.start}
|
|
105
116
|
`).join(""));
|
|
106
117
|
}
|
|
107
|
-
|
|
118
|
+
var PAUSE_MS = 20;
|
|
119
|
+
function realProbe() {
|
|
120
|
+
return {
|
|
121
|
+
now: () => Date.now(),
|
|
122
|
+
exists: (path) => existsSync(path),
|
|
123
|
+
sleep: (ms) => void Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms)
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
function waitForPath(path, timeoutMs, probe = realProbe()) {
|
|
127
|
+
const deadline = probe.now() + timeoutMs;
|
|
128
|
+
while (!probe.exists(path)) {
|
|
129
|
+
if (probe.now() > deadline) throw new Error(`${path} did not appear within ${timeoutMs / 1e3} seconds; the guest helper's network stack did not start`);
|
|
130
|
+
probe.sleep(PAUSE_MS);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function realGuestHost(netReadyTimeoutMs = NET_READY_TIMEOUT_MS) {
|
|
108
134
|
return {
|
|
109
135
|
mount(args) {
|
|
110
136
|
const argv = ["mount", "--target", args.target];
|
|
@@ -127,6 +153,7 @@ function realGuestHost() {
|
|
|
127
153
|
}
|
|
128
154
|
},
|
|
129
155
|
symlink: (target, path) => symlinkSync(target, path),
|
|
156
|
+
waitForFile: (path) => waitForPath(path, netReadyTimeoutMs),
|
|
130
157
|
warn: (text) => void process.stderr.write(`${text}
|
|
131
158
|
`),
|
|
132
159
|
spawnDetached(argv) {
|
|
@@ -141,4 +168,4 @@ function realGuestHost() {
|
|
|
141
168
|
};
|
|
142
169
|
}
|
|
143
170
|
|
|
144
|
-
export { DOCKERD_LOG, HELPER_PATH, HELPER_RECORD, realGuestHost, relayPortsFrom, runGuestInit };
|
|
171
|
+
export { DOCKERD_LOG, HELPER_PATH, HELPER_RECORD, realGuestHost, relayPortsFrom, runGuestInit, waitForPath };
|
|
@@ -1,8 +1,8 @@
|
|
|
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-JDKLORO3.js';
|
|
4
4
|
import { runnerImageVersion } from './chunk-PWB7EK4Z.js';
|
|
5
|
-
import { firecrackerArch, MICROVM_ARCHES, guestAssetsPinned } from './chunk-
|
|
5
|
+
import { firecrackerArch, MICROVM_ARCHES, guestAssetsPinned } from './chunk-KFA762LZ.js';
|
|
6
6
|
import { spawnSync } from 'child_process';
|
|
7
7
|
import { existsSync, accessSync, constants, statSync, readFileSync } from 'fs';
|
|
8
8
|
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { readsJobState, READ_JOB_STATE_FORMATS, jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
4
|
-
import { DOCKERD_LOG, HELPER_PATH, HELPER_RECORD } from './chunk-
|
|
4
|
+
import { DOCKERD_LOG, HELPER_PATH, HELPER_RECORD } from './chunk-COLOLDY3.js';
|
|
5
5
|
import { writeDockerClientConfig } from './chunk-TTACRX4N.js';
|
|
6
6
|
import { zodProblem } from './chunk-I3LTIAOR.js';
|
|
7
7
|
import { senderPidfile } from './chunk-JUVUVXQZ.js';
|
|
8
8
|
import { installScrubContext } from './chunk-J6LFFZOY.js';
|
|
9
|
-
import { ADDED_USER, shellQuote, GH_CONFIG_YML, ghHostsYml, AssetError, obtainImage, ensureRootfs, makeBuildsDirPrivate, gitRemoteFor, startServicesFor, createLeaseChannel, createBuildDisk, machineConfig, startJailedInto, resolveAgentUser, AgentUserError, runBuildSteps, LEASE_SECONDS, createContainerRuntime, stopContainer, cleanupContainer, outOfMemoryReason, containerSenderCommand, signalInContainer, syncInContainer, copyTranscriptsFromContainer, MANAGED_UNJAILED_REASON, senderAliveScript, helperFirecrackerNote, isLiteralAddress, stopJailed, deleteBuildDisk, startCheckContainer, lifecycleSteps, lifecycleFailureReason, writeEvalInput, DeliveryFailure, EVAL_INPUT_NAME, copyTranscripts, senderSignalScript, containerJudgeEnvironment, ROOT_DISK_ID_PREFIX, copyJudgeTree } from './chunk-
|
|
10
|
-
import { readBranchHead, fetchCommit, diffBetween } from './chunk-
|
|
9
|
+
import { ADDED_USER, shellQuote, GH_CONFIG_YML, ghHostsYml, AssetError, obtainImage, ensureRootfs, makeBuildsDirPrivate, gitRemoteFor, startServicesFor, createLeaseChannel, createBuildDisk, machineConfig, startJailedInto, resolveAgentUser, AgentUserError, runBuildSteps, LEASE_SECONDS, createContainerRuntime, stopContainer, cleanupContainer, outOfMemoryReason, containerSenderCommand, signalInContainer, syncInContainer, copyTranscriptsFromContainer, MANAGED_UNJAILED_REASON, senderAliveScript, helperFirecrackerNote, isLiteralAddress, stopJailed, deleteBuildDisk, startCheckContainer, lifecycleSteps, lifecycleFailureReason, writeEvalInput, DeliveryFailure, EVAL_INPUT_NAME, copyTranscripts, senderSignalScript, containerJudgeEnvironment, ROOT_DISK_ID_PREFIX, copyJudgeTree } from './chunk-JDKLORO3.js';
|
|
10
|
+
import { readBranchHead, fetchCommit, diffBetween } from './chunk-MWAA3A5T.js';
|
|
11
11
|
import { isSameProcess, startTimeOf } from './chunk-JBJTC3UU.js';
|
|
12
12
|
import { waitForAgent, vmExecArgs } from './chunk-XXVYHC6D.js';
|
|
13
13
|
import { socketPathProblem, vsockLinks, LEASE_LINK, linkVsockSockets } from './chunk-O5F376JJ.js';
|
|
14
14
|
import { describeCallFailure, resolveGoverningSource, refusalCode, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, logStamp, createRunnerLog, removeKeptContext, formatDuration, retrySend, formatClock, WORKFLOW_PERMISSION_REASON, keptContextTree } from './chunk-JKPJQNJF.js';
|
|
15
|
-
import { HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, writeJobFile, readJobFile, childEnvironment, withAnswerProtocol, judgeCommand, MAX_REPORT_BYTES, JUDGE_MAX_TURNS, JUDGE_DIR, COMMAND_DIR, MAX_ITEMS_BYTES } from './chunk-
|
|
16
|
-
import { CLAUDE_CODE_VERSION, FIRECRACKER_VERSION } from './chunk-
|
|
15
|
+
import { HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, writeJobFile, readJobFile, childEnvironment, withAnswerProtocol, judgeCommand, MAX_REPORT_BYTES, JUDGE_MAX_TURNS, JUDGE_DIR, COMMAND_DIR, MAX_ITEMS_BYTES } from './chunk-5CZV4FZ5.js';
|
|
16
|
+
import { CLAUDE_CODE_VERSION, FIRECRACKER_VERSION } from './chunk-KFA762LZ.js';
|
|
17
17
|
import { imageBuildOf, isBuiltinContainer, isBuiltinProcess, isBuiltinVm, DEFAULT_CHECK_TIME_LIMIT_MINUTES } from './chunk-ZQ7VRXYM.js';
|
|
18
18
|
import { parseSize } from './chunk-YJLHUKYS.js';
|
|
19
19
|
import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-KQFWTTG7.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { sha256OfFile, downloadPinned, VoiceDownloadError } from './chunk-2PGI6RDE.js';
|
|
4
|
-
import { readDefaultBranchHead, cloneRepository, buildRepositoryImage, prepareImageBuild, KEY_PREFIX, FETCHED_DIR, toolsDockerfile, TAG_HOST, metadataFromLabels, writeRecord, FETCHED_FFMPEG, FETCHED_GH, FETCHED_TINI, FETCHED_VOICE_DIR } from './chunk-
|
|
4
|
+
import { readDefaultBranchHead, cloneRepository, buildRepositoryImage, prepareImageBuild, KEY_PREFIX, FETCHED_DIR, toolsDockerfile, TAG_HOST, metadataFromLabels, writeRecord, FETCHED_FFMPEG, FETCHED_GH, FETCHED_TINI, FETCHED_VOICE_DIR } from './chunk-MWAA3A5T.js';
|
|
5
5
|
import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
|
|
6
6
|
import { currentCliBuild } from './chunk-OGFGZQA3.js';
|
|
7
7
|
import { runExec, execCapture, waitForAgent } from './chunk-XXVYHC6D.js';
|
|
@@ -9,9 +9,9 @@ import { GUEST_CID, linkVsockSockets } from './chunk-O5F376JJ.js';
|
|
|
9
9
|
import { describeCallFailure, keepStagedContext, controlPlaneTokenFailure, refusalCode, resolveGoverningSource, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, shimScript, WORKFLOW_PERMISSION_REASON } from './chunk-JKPJQNJF.js';
|
|
10
10
|
import { runnerImageVersion } from './chunk-PWB7EK4Z.js';
|
|
11
11
|
import { formatBytes } from './chunk-YYYRBYWG.js';
|
|
12
|
-
import { createDockerHost, builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, containerRunArgs, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, containerExecArgs, childEnvironment, JUDGE_DIR, MAX_ITEMS_BYTES, JUDGE_ITEMS, MAX_REPORT_BYTES, JUDGE_REPORT, spawnRun } from './chunk-
|
|
12
|
+
import { createDockerHost, builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, containerRunArgs, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, containerExecArgs, childEnvironment, JUDGE_DIR, MAX_ITEMS_BYTES, JUDGE_ITEMS, MAX_REPORT_BYTES, JUDGE_REPORT, spawnRun } from './chunk-5CZV4FZ5.js';
|
|
13
13
|
import { RecipeError, DOCKER_FEATURE, writeSanitizedRecipe, classifyProperties } from './chunk-3Z3MPR55.js';
|
|
14
|
-
import { FIRECRACKER_VERSION, hostHelperPinned, firecrackerArch, MICROVM_ARCHES, CLAUDE_CODE_VERSION, GUEST_HELPER_SHA256, GUEST_ASSETS_BASE_URL, GUEST_KERNEL_SHA256, JAILER_BINARY_SHA256, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256, GUEST_ASSETS_VERSION, BUILDER_DISK_VERSION, builderDiskPinned, FFMPEG_STATIC, FFMPEG_BUILD_TAG, GH_SHA256, GH_VERSION, TINI_SHA256, TINI_VERSION, VOICE_PACK_FILES, BUILDER_DISK_SHA256, BUILDER_DISK_BASE_URL, DEFAULT_BASE_IMAGE } from './chunk-
|
|
14
|
+
import { FIRECRACKER_VERSION, hostHelperPinned, firecrackerArch, MICROVM_ARCHES, CLAUDE_CODE_VERSION, GUEST_HELPER_SHA256, GUEST_ASSETS_BASE_URL, GUEST_KERNEL_SHA256, JAILER_BINARY_SHA256, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256, GUEST_ASSETS_VERSION, BUILDER_DISK_VERSION, builderDiskPinned, FFMPEG_STATIC, FFMPEG_BUILD_TAG, GH_SHA256, GH_VERSION, TINI_SHA256, TINI_VERSION, VOICE_PACK_FILES, BUILDER_DISK_SHA256, BUILDER_DISK_BASE_URL, DEFAULT_BASE_IMAGE } from './chunk-KFA762LZ.js';
|
|
15
15
|
import { hostAllowed } from './chunk-UXYLWVTQ.js';
|
|
16
16
|
import { readDu } from './chunk-YJLHUKYS.js';
|
|
17
17
|
import { WorkCommandError } from './chunk-KQFWTTG7.js';
|
|
@@ -29,13 +29,13 @@ var FIRECRACKER_SHA256 = {
|
|
|
29
29
|
var FIRECRACKER_BINARY_SHA256 = {
|
|
30
30
|
x86_64: "99ad0f5cd0514a88aad0e9ae8cfdb3cc3b4ab9d190e1194602406c786b5de7a5"
|
|
31
31
|
};
|
|
32
|
-
var GUEST_ASSETS_VERSION = "
|
|
32
|
+
var GUEST_ASSETS_VERSION = "11";
|
|
33
33
|
var GUEST_ASSETS_BASE_URL = `https://github.com/outerlayerai/guest-assets/releases/download/guest-${GUEST_ASSETS_VERSION}`;
|
|
34
34
|
var GUEST_KERNEL_SHA256 = {
|
|
35
35
|
x86_64: "8552fad4bdea1d49f3e7d2aa500ce3f8918fcd2fc66779fd83235949688a39bb"
|
|
36
36
|
};
|
|
37
37
|
var GUEST_HELPER_SHA256 = {
|
|
38
|
-
x86_64: "
|
|
38
|
+
x86_64: "e373f0fdb192e9930d19dd39cf75ff1c6cf08fdf5a0f041f12c1f999919fc05a"
|
|
39
39
|
};
|
|
40
40
|
function guestAssetsPinned(arch) {
|
|
41
41
|
const zero = "0".repeat(64);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, provisionEnvironment, readProvisionOut, resolveHostBuild, workdirProblem, listenOnBroker, hostEnvironment, hostCommandEnvironment, execArgv, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, execCommandLine, startSender, startHostServices, 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-
|
|
3
|
+
import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, provisionEnvironment, readProvisionOut, resolveHostBuild, workdirProblem, listenOnBroker, hostEnvironment, hostCommandEnvironment, execArgv, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, execCommandLine, startSender, startHostServices, 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-IQFX5GQH.js';
|
|
4
4
|
import { JOB_STATE_FORMAT, readsJobState, jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
5
5
|
import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-QPAPHQZ7.js';
|
|
6
6
|
import { decideInstalledSwitch } from './chunk-3JVYMD4G.js';
|
|
@@ -8,17 +8,17 @@ import { fetchVersionMeta, npmVersion, npmSupportsProvenance, fetchTarballDigest
|
|
|
8
8
|
import { fitImageBuildMemory } from './chunk-W4UFGYKQ.js';
|
|
9
9
|
import { RUNNER_PROTOCOL } from './chunk-YKYCE4HY.js';
|
|
10
10
|
import { writePendingUpdate } from './chunk-5KO3TN2F.js';
|
|
11
|
-
import { currentSkillCommand, formerSkillProblem, realBlockedProbes, checkBlocked } from './chunk-
|
|
11
|
+
import { currentSkillCommand, formerSkillProblem, realBlockedProbes, checkBlocked } from './chunk-PAFSFC6Q.js';
|
|
12
12
|
import { writeMarker, readMarker, currentVersion, removeMarker, entryIn, versionDir, startedThroughCurrent, switchCurrent, isInLayout, cleanVersions, stagingDir } from './chunk-O7MSQBTH.js';
|
|
13
13
|
import { RepoFilter } from './chunk-TBT347UY.js';
|
|
14
|
-
import { leaseTimeLeftMs, createContainerRuntime, withTunnelLog, LEASE_SECONDS, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, lifecycleSteps, lifecycleFailureReason, prepareBranch, containerCommandExec, setUpRunnerCgroup, sweepImageBuilders, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, gitRemoteFor, startServicesFor, createLeaseChannel } from './chunk-
|
|
14
|
+
import { leaseTimeLeftMs, createContainerRuntime, withTunnelLog, LEASE_SECONDS, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, lifecycleSteps, lifecycleFailureReason, prepareBranch, containerCommandExec, setUpRunnerCgroup, sweepImageBuilders, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, gitRemoteFor, startServicesFor, createLeaseChannel } from './chunk-JDKLORO3.js';
|
|
15
15
|
import { claimPidFile, writePidFile, readPidFile, releasePidFile } from './chunk-ZFJAQS3A.js';
|
|
16
16
|
import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
|
|
17
17
|
import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-JKPJQNJF.js';
|
|
18
18
|
import { tagToPull, pullInstruction, imageTag, writeUpdateStatus } from './chunk-PWB7EK4Z.js';
|
|
19
19
|
import { isVersion, compareVersions, satisfiesRange } from './chunk-TQMI335S.js';
|
|
20
20
|
import { freeBytes, formatBytes } from './chunk-YYYRBYWG.js';
|
|
21
|
-
import { writeJobFile, ensureRunnerIdentity, readJobFile, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, BUILD_LABEL, RUNNER_LABEL, readJobFileChecked } from './chunk-
|
|
21
|
+
import { writeJobFile, ensureRunnerIdentity, readJobFile, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, BUILD_LABEL, RUNNER_LABEL, readJobFileChecked } from './chunk-5CZV4FZ5.js';
|
|
22
22
|
import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind, DEFAULT_UPDATE_MAX_WAIT_HOURS } from './chunk-ZQ7VRXYM.js';
|
|
23
23
|
import { exceedsDisk } from './chunk-YJLHUKYS.js';
|
|
24
24
|
import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-KQFWTTG7.js';
|
|
@@ -3033,7 +3033,7 @@ async function start(configPath, deps = { fetchImpl: fetch }) {
|
|
|
3033
3033
|
check: update.check ? () => update.check(configPath) : async () => {
|
|
3034
3034
|
const held = heldClaudeCredential();
|
|
3035
3035
|
const env = held === void 0 ? process.env : { ...process.env, [held.variable]: held.value };
|
|
3036
|
-
return (await import('./check-
|
|
3036
|
+
return (await import('./check-LDDMISY6.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
|
|
3037
3037
|
},
|
|
3038
3038
|
now: () => (deps.now ?? (() => /* @__PURE__ */ new Date()))().getTime(),
|
|
3039
3039
|
log
|
|
@@ -3,7 +3,7 @@ import { createRequire } from 'node:module';
|
|
|
3
3
|
import { claimPidFile, RunnerAlreadyRunningError, releasePidFile } from './chunk-ZFJAQS3A.js';
|
|
4
4
|
import { startTimeOf } from './chunk-JBJTC3UU.js';
|
|
5
5
|
import { RecipeError, locateRecipe, readRecipe, assertBuildable, writeSanitizedRecipe, classifyProperties, SANITIZED_NAME } from './chunk-3Z3MPR55.js';
|
|
6
|
-
import { GH_VERSION, VOICE_PACK_FILES, VOICE_PACK_VERSION, FFMPEG_STATIC, FFMPEG_BUILD_TAG, GH_SHA256, TINI_SHA256, TINI_VERSION, CLAUDE_CODE_VERSION, NODE_IMAGE, DEFAULT_BASE_IMAGE, MEDIA_PINS, PLAYWRIGHT_VERSION } from './chunk-
|
|
6
|
+
import { GH_VERSION, VOICE_PACK_FILES, VOICE_PACK_VERSION, FFMPEG_STATIC, FFMPEG_BUILD_TAG, GH_SHA256, TINI_SHA256, TINI_VERSION, CLAUDE_CODE_VERSION, NODE_IMAGE, DEFAULT_BASE_IMAGE, MEDIA_PINS, PLAYWRIGHT_VERSION } from './chunk-KFA762LZ.js';
|
|
7
7
|
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE, repoCacheDir, imagesDir, imageBuildLogsDir, attemptStamp, runnerDir, rootfsPathFor } from './chunk-MBGS33SL.js';
|
|
8
8
|
import { PROXY_WARNING_FLAG, withGitConfig, tokenHeader } from './chunk-D5ZGMXUL.js';
|
|
9
9
|
import { RELAY_ID, RELAY_USER } from './chunk-MESOOLF4.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { isPlaceholderCommand } from './chunk-
|
|
3
|
+
import { isPlaceholderCommand } from './chunk-33SMNWZX.js';
|
|
4
4
|
import { describeCallFailure } from './chunk-JKPJQNJF.js';
|
|
5
5
|
import { checkFit } from './chunk-A6MLCH76.js';
|
|
6
|
-
import { realBuildDiskProbe, checkDiskFit, DEFAULT_BUILD_DISK } from './chunk-
|
|
7
|
-
import { builderDiskPinned } from './chunk-
|
|
6
|
+
import { realBuildDiskProbe, checkDiskFit, DEFAULT_BUILD_DISK } from './chunk-3BGCXC3O.js';
|
|
7
|
+
import { builderDiskPinned } from './chunk-KFA762LZ.js';
|
|
8
8
|
import { builtinKind, imageBuildOf } from './chunk-ZQ7VRXYM.js';
|
|
9
9
|
import { WorkCommandError, getJson } from './chunk-KQFWTTG7.js';
|
|
10
10
|
import { sanitizeTerminal } from './chunk-EWVYQLD3.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
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-4AHKR3K5.js';
|
|
4
4
|
import './chunk-BJQ25STI.js';
|
|
5
5
|
import './chunk-LOYLFW4I.js';
|
|
6
6
|
import './chunk-KT4CN6OU.js';
|
|
@@ -3926,13 +3926,13 @@ what CLIs older than ${FIRST_VERSION_READING_AGENTS_SKILLS} do. \`` + cliInvocat
|
|
|
3926
3926
|
if (changed.length > 0 && !opts.json) process.stdout.write(`Removed the claude function from ${changed.join(", ")}.
|
|
3927
3927
|
`);
|
|
3928
3928
|
}
|
|
3929
|
-
const shell = !opts.remove && opts.shellFunction !== void 0 ? (await import('./init-cmd-
|
|
3929
|
+
const shell = !opts.remove && opts.shellFunction !== void 0 ? (await import('./init-cmd-E7DMPT6E.js')).applyShellFunctionFlag(opts.shellFunction, { home: homeFromEnv(), shellPath: process.env.SHELL }) : void 0;
|
|
3930
3930
|
if (opts.json) writeJson(shell === void 0 ? outcome.result : { ...outcome.result, shellFunction: { outcome: shell.outcome, reason: shell.reason } });
|
|
3931
3931
|
else process.stdout.write(outcome.text + skillsLine + (shell?.text ?? ""));
|
|
3932
3932
|
return;
|
|
3933
3933
|
}
|
|
3934
3934
|
await installMachineSkillsForSetup();
|
|
3935
|
-
const { runInitCommand } = await import('./init-cmd-
|
|
3935
|
+
const { runInitCommand } = await import('./init-cmd-E7DMPT6E.js');
|
|
3936
3936
|
const code = await runInitCommand(
|
|
3937
3937
|
{ json: opts.json, factory: opts.factory, shellFunction: opts.shellFunction },
|
|
3938
3938
|
{
|
|
@@ -4199,7 +4199,7 @@ code is 1: revoke the token on /profile/security.
|
|
|
4199
4199
|
}
|
|
4200
4200
|
});
|
|
4201
4201
|
program2.command("vm-init", { hidden: true }).description("lay out a microVM build's guest; the guest helper runs it").action(async () => {
|
|
4202
|
-
const { realGuestHost, runGuestInit } = await import('./guest-init-
|
|
4202
|
+
const { realGuestHost, runGuestInit } = await import('./guest-init-TGECSRKO.js');
|
|
4203
4203
|
const { readFileSync: readFileSync3 } = await import('fs');
|
|
4204
4204
|
try {
|
|
4205
4205
|
runGuestInit(realGuestHost(), readFileSync3("/proc/cmdline", "utf8"));
|
|
@@ -4387,7 +4387,7 @@ check. A chapter reads yes when every still matches and no when one differs; the
|
|
|
4387
4387
|
the region. One run, or a chapter with no stills, reads not checked. Comparing never changes which clips bind.
|
|
4388
4388
|
`
|
|
4389
4389
|
).action(async (manifest, opts) => {
|
|
4390
|
-
const { runEmitDemo, EmitDemoError } = await import('./emit-demo-cmd-
|
|
4390
|
+
const { runEmitDemo, EmitDemoError } = await import('./emit-demo-cmd-Q6W74DCY.js');
|
|
4391
4391
|
let item;
|
|
4392
4392
|
if (opts.item !== void 0) {
|
|
4393
4393
|
item = parseTrackerNumber(opts.item);
|
|
@@ -5038,7 +5038,7 @@ function registerRunnerCommands(program2) {
|
|
|
5038
5038
|
const configOption = "the cloud config file to run against (default: ~/.outerlayer/config.json)";
|
|
5039
5039
|
runnerCmd.command("start").description("Run the loop: claim work, run it, report, clean up, repeat").option("--config <path>", configOption).action(async (opts) => {
|
|
5040
5040
|
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-WAIYUZUG.js');
|
|
5041
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
5041
|
+
const { start, RunnerStartError } = await import('./loop-7MFQISEV.js');
|
|
5042
5042
|
const { RunnerAlreadyRunningError } = await import('./pidfile-ZWJLQIJV.js');
|
|
5043
5043
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5044
5044
|
try {
|
|
@@ -5057,8 +5057,8 @@ function registerRunnerCommands(program2) {
|
|
|
5057
5057
|
"\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"
|
|
5058
5058
|
).action(async () => {
|
|
5059
5059
|
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-WAIYUZUG.js');
|
|
5060
|
-
const { containerStart } = await import('./container-start-
|
|
5061
|
-
const { start, RunnerStartError } = await import('./loop-
|
|
5060
|
+
const { containerStart } = await import('./container-start-SL63GFLG.js');
|
|
5061
|
+
const { start, RunnerStartError } = await import('./loop-7MFQISEV.js');
|
|
5062
5062
|
const { RunnerAlreadyRunningError } = await import('./pidfile-ZWJLQIJV.js');
|
|
5063
5063
|
try {
|
|
5064
5064
|
const result = await containerStart({
|
|
@@ -5078,7 +5078,7 @@ function registerRunnerCommands(program2) {
|
|
|
5078
5078
|
});
|
|
5079
5079
|
runnerCmd.command("check").description("Validate the config, the hooks and the key, and print the effective settings").option("--config <path>", configOption).action(async (opts) => {
|
|
5080
5080
|
const { defaultRunnerConfigPath } = await import('./config-WAIYUZUG.js');
|
|
5081
|
-
const { runRunnerCheck } = await import('./check-
|
|
5081
|
+
const { runRunnerCheck } = await import('./check-LDDMISY6.js');
|
|
5082
5082
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5083
5083
|
const result = await runRunnerCheck(configPath);
|
|
5084
5084
|
if (!result.ok) {
|
|
@@ -5112,7 +5112,7 @@ function registerRunnerCommands(program2) {
|
|
|
5112
5112
|
}
|
|
5113
5113
|
try {
|
|
5114
5114
|
if (opts.service === true) {
|
|
5115
|
-
const { installServiceCommand } = await import('./command-
|
|
5115
|
+
const { installServiceCommand } = await import('./command-LEE7TFQE.js');
|
|
5116
5116
|
const result2 = await installServiceCommand({
|
|
5117
5117
|
configPath,
|
|
5118
5118
|
print: opts.print,
|
|
@@ -5168,7 +5168,7 @@ To keep it running, run ${C.yellow}${cliInvocation()} runner install --service${
|
|
|
5168
5168
|
return;
|
|
5169
5169
|
}
|
|
5170
5170
|
const { defaultRunnerConfigPath } = await import('./config-WAIYUZUG.js');
|
|
5171
|
-
const { uninstallServiceCommand } = await import('./command-
|
|
5171
|
+
const { uninstallServiceCommand } = await import('./command-LEE7TFQE.js');
|
|
5172
5172
|
const result = await uninstallServiceCommand({ configPath: opts.config ?? defaultRunnerConfigPath(), unitName: opts.unitName, home: homeFromEnv() });
|
|
5173
5173
|
if (result.ok) for (const line of result.lines) process.stdout.write(`${C.green}\u2713${C.reset} ${line}
|
|
5174
5174
|
`);
|
|
@@ -5196,10 +5196,10 @@ already in claude.env is used.
|
|
|
5196
5196
|
`
|
|
5197
5197
|
).action(async (opts) => {
|
|
5198
5198
|
const { defaultRunnerConfigPath, RunnerConfigError } = await import('./config-WAIYUZUG.js');
|
|
5199
|
-
const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-
|
|
5200
|
-
const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-
|
|
5201
|
-
const { detectMachine } = await import('./machine-
|
|
5202
|
-
const { chooseVm, runVmInit, VmInitError } = await import('./init-
|
|
5199
|
+
const { prepareRunnerInit, runRunnerInit, RunnerInitError, writeRunnerInit } = await import('./init-BMTDKZU6.js');
|
|
5200
|
+
const { obtainRunnerKey, runnerKeyLogin } = await import('./runner-key-3STHCRT5.js');
|
|
5201
|
+
const { detectMachine } = await import('./machine-4QGWUII5.js');
|
|
5202
|
+
const { chooseVm, runVmInit, VmInitError } = await import('./init-7P6JHB6Z.js');
|
|
5203
5203
|
const { AGENT_COMMANDS, credentialFromStdin, isAgentName, restartForCredential, RunnerEnvError } = await import('./runner-env-V37JMYNW.js');
|
|
5204
5204
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5205
5205
|
if (opts.agent !== void 0 && !isAgentName(opts.agent)) {
|
|
@@ -5350,7 +5350,7 @@ ${C.yellow}The runner will not update itself: ${installErr.message}${C.reset}
|
|
|
5350
5350
|
let serviceUp = false;
|
|
5351
5351
|
let restart;
|
|
5352
5352
|
if (installedLayout) {
|
|
5353
|
-
const { installServiceCommand } = await import('./command-
|
|
5353
|
+
const { installServiceCommand } = await import('./command-LEE7TFQE.js');
|
|
5354
5354
|
const service = await installServiceCommand({
|
|
5355
5355
|
configPath,
|
|
5356
5356
|
entryPath: process.argv[1] ?? "",
|
|
@@ -5395,10 +5395,10 @@ Next:
|
|
|
5395
5395
|
"\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"
|
|
5396
5396
|
).action(async (opts) => {
|
|
5397
5397
|
const { defaultRunnerConfigPath } = await import('./config-WAIYUZUG.js');
|
|
5398
|
-
const { buildRepositoryImage, RecipeError } = await import('./build-
|
|
5398
|
+
const { buildRepositoryImage, RecipeError } = await import('./build-RBLDHQTY.js');
|
|
5399
5399
|
const { currentCliBuild } = await import('./cli-build-K56DK4DS.js');
|
|
5400
|
-
const { createDockerHost } = await import('./docker-
|
|
5401
|
-
const { builderSpec } = await import('./builder-
|
|
5400
|
+
const { createDockerHost } = await import('./docker-WVTQTRSC.js');
|
|
5401
|
+
const { builderSpec } = await import('./builder-V3KALVKL.js');
|
|
5402
5402
|
const { loadRunnerConfig } = await import('./config-WAIYUZUG.js');
|
|
5403
5403
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5404
5404
|
const loaded = (() => {
|
|
@@ -5410,7 +5410,7 @@ Next:
|
|
|
5410
5410
|
})();
|
|
5411
5411
|
const memory = loaded?.build?.memory ?? "8g";
|
|
5412
5412
|
try {
|
|
5413
|
-
const { ensureRunnerIdentity } = await import('./runner-identity-
|
|
5413
|
+
const { ensureRunnerIdentity } = await import('./runner-identity-X3UP5IQ4.js');
|
|
5414
5414
|
await ensureRunnerIdentity(configPath, { log: (line) => console.error(line) }).catch((err) => {
|
|
5415
5415
|
console.error(`the runner's Docker identity could not be stored: ${err instanceof Error ? err.message : String(err)}`);
|
|
5416
5416
|
});
|
|
@@ -5478,7 +5478,7 @@ Next:
|
|
|
5478
5478
|
});
|
|
5479
5479
|
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) => {
|
|
5480
5480
|
const { defaultRunnerConfigPath } = await import('./config-WAIYUZUG.js');
|
|
5481
|
-
const { requestStop } = await import('./loop-
|
|
5481
|
+
const { requestStop } = await import('./loop-7MFQISEV.js');
|
|
5482
5482
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5483
5483
|
const { runnerImageVersion } = await import('./image-tag-6U7UYPIT.js');
|
|
5484
5484
|
await requestStop(configPath, Boolean(opts.now), void 0, { image: runnerImageVersion() !== void 0 });
|
|
@@ -5486,8 +5486,8 @@ Next:
|
|
|
5486
5486
|
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) => {
|
|
5487
5487
|
const { defaultRunnerConfigPath, loadRunnerConfig } = await import('./config-WAIYUZUG.js');
|
|
5488
5488
|
const { jobsDir, runnerDir } = await import('./paths-FE7TXSTA.js');
|
|
5489
|
-
const { listJobFiles, runnerProcessState } = await import('./loop-
|
|
5490
|
-
const { renderStatus } = await import('./status-
|
|
5489
|
+
const { listJobFiles, runnerProcessState } = await import('./loop-7MFQISEV.js');
|
|
5490
|
+
const { renderStatus } = await import('./status-WS2REEFU.js');
|
|
5491
5491
|
const { readHousekeepingRecord } = await import('./record-JGQ3CCKH.js');
|
|
5492
5492
|
const path2 = await import('path');
|
|
5493
5493
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
@@ -5547,7 +5547,7 @@ Next:
|
|
|
5547
5547
|
});
|
|
5548
5548
|
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) => {
|
|
5549
5549
|
const { defaultRunnerConfigPath } = await import('./config-WAIYUZUG.js');
|
|
5550
|
-
const { listJobFiles } = await import('./loop-
|
|
5550
|
+
const { listJobFiles } = await import('./loop-7MFQISEV.js');
|
|
5551
5551
|
const { newestAttempt, logPathFor, tail, RunnerLogsError } = await import('./logs-2XVSZODP.js');
|
|
5552
5552
|
const configPath = opts.config ?? defaultRunnerConfigPath();
|
|
5553
5553
|
const item = parseTrackerNumber(itemArg);
|
|
@@ -3,10 +3,10 @@ import { createRequire } from 'node:module';
|
|
|
3
3
|
import { runRunnerInstall, launcherSummary, restartNote } from './chunk-DZGLRVS3.js';
|
|
4
4
|
import './chunk-Y53T3QZM.js';
|
|
5
5
|
import { currentLink, execStartCommand } from './chunk-O7MSQBTH.js';
|
|
6
|
-
import { detectMachine } from './chunk-
|
|
7
|
-
import { helperSocketPath, ensureFirecrackerAndJailer } from './chunk-
|
|
6
|
+
import { detectMachine } from './chunk-F5HZT672.js';
|
|
7
|
+
import { helperSocketPath, ensureFirecrackerAndJailer } from './chunk-JDKLORO3.js';
|
|
8
8
|
import './chunk-2PGI6RDE.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-MWAA3A5T.js';
|
|
10
10
|
import './chunk-ZFJAQS3A.js';
|
|
11
11
|
import './chunk-JBJTC3UU.js';
|
|
12
12
|
import './chunk-OGFGZQA3.js';
|
|
@@ -17,9 +17,9 @@ import './chunk-PWB7EK4Z.js';
|
|
|
17
17
|
import './chunk-TQMI335S.js';
|
|
18
18
|
import { DEFAULT_UNIT_NAME, installService, uninstallService, realTaskScheduler, UNIT_MARKER } from './chunk-A6MLCH76.js';
|
|
19
19
|
import './chunk-YYYRBYWG.js';
|
|
20
|
-
import { readJobFile } from './chunk-
|
|
20
|
+
import { readJobFile } from './chunk-5CZV4FZ5.js';
|
|
21
21
|
import './chunk-3Z3MPR55.js';
|
|
22
|
-
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-
|
|
22
|
+
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-KFA762LZ.js';
|
|
23
23
|
import { runnerVmOf, loadRunnerConfig, builtinKind } from './chunk-ZQ7VRXYM.js';
|
|
24
24
|
import './chunk-UXYLWVTQ.js';
|
|
25
25
|
import './chunk-YJLHUKYS.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { BUILD_MEMORY_VARIABLE } from './chunk-W4UFGYKQ.js';
|
|
4
|
-
import { RunnerInitError, prepareRunnerInit, writeRunnerInit } from './chunk-
|
|
4
|
+
import { RunnerInitError, prepareRunnerInit, writeRunnerInit } from './chunk-33SMNWZX.js';
|
|
5
5
|
import { isAgentName, AGENT_COMMANDS } from './chunk-HDD3BKAE.js';
|
|
6
|
-
import { detectMachine, supportsContainerBuilds, describeMachineDocker } from './chunk-
|
|
7
|
-
import { MIN_ENGINE_MAJOR } from './chunk-
|
|
6
|
+
import { detectMachine, supportsContainerBuilds, describeMachineDocker } from './chunk-F5HZT672.js';
|
|
7
|
+
import { MIN_ENGINE_MAJOR } from './chunk-JDKLORO3.js';
|
|
8
8
|
import './chunk-2PGI6RDE.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-MWAA3A5T.js';
|
|
10
10
|
import './chunk-ZFJAQS3A.js';
|
|
11
11
|
import './chunk-JBJTC3UU.js';
|
|
12
12
|
import './chunk-OGFGZQA3.js';
|
|
@@ -17,9 +17,9 @@ import { runnerImageVersion, IMAGE_VERSION_VARIABLE } from './chunk-PWB7EK4Z.js'
|
|
|
17
17
|
import './chunk-TQMI335S.js';
|
|
18
18
|
import './chunk-A6MLCH76.js';
|
|
19
19
|
import './chunk-YYYRBYWG.js';
|
|
20
|
-
import './chunk-
|
|
20
|
+
import './chunk-5CZV4FZ5.js';
|
|
21
21
|
import './chunk-3Z3MPR55.js';
|
|
22
|
-
import './chunk-
|
|
22
|
+
import './chunk-KFA762LZ.js';
|
|
23
23
|
import './chunk-ZQ7VRXYM.js';
|
|
24
24
|
import './chunk-UXYLWVTQ.js';
|
|
25
25
|
import { parseSize } from './chunk-YJLHUKYS.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { childEnvironment, createDockerHost, spawnRun } from './chunk-
|
|
3
|
+
export { childEnvironment, createDockerHost, spawnRun } from './chunk-5CZV4FZ5.js';
|
|
4
4
|
import './chunk-3Z3MPR55.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-KFA762LZ.js';
|
|
6
6
|
import './chunk-YJLHUKYS.js';
|
|
7
7
|
import './chunk-5DNCFOXA.js';
|
|
8
8
|
import './chunk-634F6J3Q.js';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { needsClaudeCredential, claudeCredentialCheck, managedProblems, missingPermissionOf, missingPermissionFix } from './chunk-
|
|
3
|
+
import { needsClaudeCredential, claudeCredentialCheck, managedProblems, missingPermissionOf, missingPermissionFix } from './chunk-PAFSFC6Q.js';
|
|
4
4
|
import { launcherCheck } from './chunk-Y53T3QZM.js';
|
|
5
5
|
import './chunk-O7MSQBTH.js';
|
|
6
6
|
import { RepoFilter } from './chunk-TBT347UY.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-33SMNWZX.js';
|
|
8
8
|
import './chunk-HDD3BKAE.js';
|
|
9
|
-
import { detectMachine, supportsContainerBuilds, describeMachineDocker, reachDockerStep, supportsMicroVmBuilds, microVmArchSupported, microVmAssetsPinned } from './chunk-
|
|
10
|
-
import { MIN_ENGINE_MAJOR, helperFirecrackerNote, probeHelper, helperSocketPath } from './chunk-
|
|
9
|
+
import { detectMachine, supportsContainerBuilds, describeMachineDocker, reachDockerStep, supportsMicroVmBuilds, microVmArchSupported, microVmAssetsPinned } from './chunk-F5HZT672.js';
|
|
10
|
+
import { MIN_ENGINE_MAJOR, helperFirecrackerNote, probeHelper, helperSocketPath } from './chunk-JDKLORO3.js';
|
|
11
11
|
import './chunk-2PGI6RDE.js';
|
|
12
|
-
import './chunk-
|
|
12
|
+
import './chunk-MWAA3A5T.js';
|
|
13
13
|
import './chunk-ZFJAQS3A.js';
|
|
14
14
|
import './chunk-JBJTC3UU.js';
|
|
15
15
|
import './chunk-OGFGZQA3.js';
|
|
@@ -19,11 +19,11 @@ import './chunk-JKPJQNJF.js';
|
|
|
19
19
|
import { runnerImageVersion, imageAdvice, readUpdateStatus, imageTag, pullInstruction } from './chunk-PWB7EK4Z.js';
|
|
20
20
|
import './chunk-TQMI335S.js';
|
|
21
21
|
import './chunk-A6MLCH76.js';
|
|
22
|
-
import { realBuildDiskProbe, DEFAULT_BUILD_DISK, checkDiskFit } from './chunk-
|
|
22
|
+
import { realBuildDiskProbe, DEFAULT_BUILD_DISK, checkDiskFit } from './chunk-3BGCXC3O.js';
|
|
23
23
|
import { freeBytes, formatBytes } from './chunk-YYYRBYWG.js';
|
|
24
|
-
import { resolveDevcontainerCli, buildxState, spawnRun } from './chunk-
|
|
24
|
+
import { resolveDevcontainerCli, buildxState, spawnRun } from './chunk-5CZV4FZ5.js';
|
|
25
25
|
import { locateRecipe, assertBuildable, readRecipe, RecipeError } from './chunk-3Z3MPR55.js';
|
|
26
|
-
import { FIRECRACKER_VERSION, builderDiskPinned, CLAUDE_CODE_VERSION } from './chunk-
|
|
26
|
+
import { FIRECRACKER_VERSION, builderDiskPinned, CLAUDE_CODE_VERSION } from './chunk-KFA762LZ.js';
|
|
27
27
|
import { builtinKind } from './chunk-ZQ7VRXYM.js';
|
|
28
28
|
import { allowHostProblem, MAX_ALLOW_HOSTS } from './chunk-UXYLWVTQ.js';
|
|
29
29
|
import { parseSize } from './chunk-YJLHUKYS.js';
|
|
@@ -6,7 +6,7 @@ import './chunk-EBX2DU2M.js';
|
|
|
6
6
|
import './chunk-ESVW4MJY.js';
|
|
7
7
|
import './chunk-TBT347UY.js';
|
|
8
8
|
import { VoiceDownloadError, downloadPinned, sha256OfFile } from './chunk-2PGI6RDE.js';
|
|
9
|
-
import { VOICE_PACK_FILES, VOICE_PACK_VERSION } from './chunk-
|
|
9
|
+
import { VOICE_PACK_FILES, VOICE_PACK_VERSION } from './chunk-KFA762LZ.js';
|
|
10
10
|
import { detectActiveSession, autoConnect } from './chunk-RLGSBR56.js';
|
|
11
11
|
import './chunk-CMNAAKFD.js';
|
|
12
12
|
import './chunk-EWVYQLD3.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { DOCKERD_LOG, HELPER_PATH, HELPER_RECORD, realGuestHost, relayPortsFrom, runGuestInit } from './chunk-
|
|
3
|
+
export { DOCKERD_LOG, HELPER_PATH, HELPER_RECORD, realGuestHost, relayPortsFrom, runGuestInit, waitForPath } from './chunk-COLOLDY3.js';
|
|
4
4
|
import './chunk-TTACRX4N.js';
|
|
5
5
|
import './chunk-JBJTC3UU.js';
|
|
6
6
|
import './chunk-O5F376JJ.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-PXSDGAUP.js')).recordLinkExitFailure(argv);
|
|
29
|
-
var { runCli } = await import('./cli-
|
|
29
|
+
var { runCli } = await import('./cli-QUV5HTDW.js');
|
|
30
30
|
await runCli(process.argv);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { npmSupportsProvenance } from './chunk-E7R2GIAW.js';
|
|
4
|
-
import { RunnerInitError, readConfigObject } from './chunk-
|
|
4
|
+
import { RunnerInitError, readConfigObject } from './chunk-33SMNWZX.js';
|
|
5
5
|
import './chunk-HDD3BKAE.js';
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
6
|
+
import './chunk-F5HZT672.js';
|
|
7
|
+
import './chunk-JDKLORO3.js';
|
|
8
8
|
import './chunk-2PGI6RDE.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-MWAA3A5T.js';
|
|
10
10
|
import './chunk-ZFJAQS3A.js';
|
|
11
11
|
import './chunk-JBJTC3UU.js';
|
|
12
12
|
import './chunk-OGFGZQA3.js';
|
|
@@ -17,9 +17,9 @@ import './chunk-PWB7EK4Z.js';
|
|
|
17
17
|
import './chunk-TQMI335S.js';
|
|
18
18
|
import { checkFit, VM_SERVICE_NAME, RUNNER_RESERVE_BYTES } from './chunk-A6MLCH76.js';
|
|
19
19
|
import './chunk-YYYRBYWG.js';
|
|
20
|
-
import './chunk-
|
|
20
|
+
import './chunk-5CZV4FZ5.js';
|
|
21
21
|
import './chunk-3Z3MPR55.js';
|
|
22
|
-
import './chunk-
|
|
22
|
+
import './chunk-KFA762LZ.js';
|
|
23
23
|
import { runnerCredentialProblem, resolveBuild, resolveHousekeeping } from './chunk-ZQ7VRXYM.js';
|
|
24
24
|
import './chunk-UXYLWVTQ.js';
|
|
25
25
|
import { parseSize } from './chunk-YJLHUKYS.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { PLACEHOLDER_MARKER, RunnerInitError, isPlaceholderCommand, prepareRunnerInit, readConfigObject, runRunnerInit, writeRunnerInit } from './chunk-
|
|
3
|
+
export { PLACEHOLDER_MARKER, RunnerInitError, isPlaceholderCommand, prepareRunnerInit, readConfigObject, runRunnerInit, writeRunnerInit } from './chunk-33SMNWZX.js';
|
|
4
4
|
import './chunk-HDD3BKAE.js';
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
5
|
+
import './chunk-F5HZT672.js';
|
|
6
|
+
import './chunk-JDKLORO3.js';
|
|
7
7
|
import './chunk-2PGI6RDE.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-MWAA3A5T.js';
|
|
9
9
|
import './chunk-ZFJAQS3A.js';
|
|
10
10
|
import './chunk-JBJTC3UU.js';
|
|
11
11
|
import './chunk-OGFGZQA3.js';
|
|
@@ -16,9 +16,9 @@ import './chunk-PWB7EK4Z.js';
|
|
|
16
16
|
import './chunk-TQMI335S.js';
|
|
17
17
|
import './chunk-A6MLCH76.js';
|
|
18
18
|
import './chunk-YYYRBYWG.js';
|
|
19
|
-
import './chunk-
|
|
19
|
+
import './chunk-5CZV4FZ5.js';
|
|
20
20
|
import './chunk-3Z3MPR55.js';
|
|
21
|
-
import './chunk-
|
|
21
|
+
import './chunk-KFA762LZ.js';
|
|
22
22
|
import './chunk-ZQ7VRXYM.js';
|
|
23
23
|
import './chunk-UXYLWVTQ.js';
|
|
24
24
|
import './chunk-YJLHUKYS.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { summarizeChecks, summaryText, renderDoctorText } from './chunk-
|
|
3
|
+
import { summarizeChecks, summaryText, renderDoctorText } from './chunk-4AHKR3K5.js';
|
|
4
4
|
import './chunk-BJQ25STI.js';
|
|
5
5
|
import { shellFunctionInstalled, removeShellFunction, installShellFunction, SHELL_FUNCTION_LINE } from './chunk-CJJDJ7AT.js';
|
|
6
6
|
import './chunk-LOYLFW4I.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
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-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { RunnerStartError, leaseTimeLeftFor, listJobFiles, logUnusableHelper, probeBuild, probeCredentials, requestStop, runnerProcessState, runtimeOf, sampleUsage, start, tick, watchTick } from './chunk-MCIPCQP3.js';
|
|
4
|
+
import './chunk-IQFX5GQH.js';
|
|
5
5
|
import './chunk-ZVB57WI6.js';
|
|
6
6
|
import './chunk-QPAPHQZ7.js';
|
|
7
7
|
import './chunk-3JVYMD4G.js';
|
|
@@ -9,22 +9,22 @@ import './chunk-E7R2GIAW.js';
|
|
|
9
9
|
import './chunk-W4UFGYKQ.js';
|
|
10
10
|
import './chunk-YKYCE4HY.js';
|
|
11
11
|
import './chunk-5KO3TN2F.js';
|
|
12
|
-
import './chunk-
|
|
12
|
+
import './chunk-COLOLDY3.js';
|
|
13
13
|
import './chunk-TTACRX4N.js';
|
|
14
14
|
import './chunk-I3LTIAOR.js';
|
|
15
15
|
import './chunk-JUVUVXQZ.js';
|
|
16
16
|
import './chunk-J6LFFZOY.js';
|
|
17
17
|
import './chunk-EBX2DU2M.js';
|
|
18
18
|
import './chunk-ESVW4MJY.js';
|
|
19
|
-
import './chunk-
|
|
19
|
+
import './chunk-PAFSFC6Q.js';
|
|
20
20
|
import './chunk-O7MSQBTH.js';
|
|
21
21
|
import './chunk-TBT347UY.js';
|
|
22
|
-
import './chunk-
|
|
22
|
+
import './chunk-33SMNWZX.js';
|
|
23
23
|
import './chunk-HDD3BKAE.js';
|
|
24
|
-
import './chunk-
|
|
25
|
-
import './chunk-
|
|
24
|
+
import './chunk-F5HZT672.js';
|
|
25
|
+
import './chunk-JDKLORO3.js';
|
|
26
26
|
import './chunk-2PGI6RDE.js';
|
|
27
|
-
import './chunk-
|
|
27
|
+
import './chunk-MWAA3A5T.js';
|
|
28
28
|
import './chunk-ZFJAQS3A.js';
|
|
29
29
|
import './chunk-JBJTC3UU.js';
|
|
30
30
|
import './chunk-OGFGZQA3.js';
|
|
@@ -34,11 +34,11 @@ import './chunk-JKPJQNJF.js';
|
|
|
34
34
|
import './chunk-PWB7EK4Z.js';
|
|
35
35
|
import './chunk-TQMI335S.js';
|
|
36
36
|
import './chunk-A6MLCH76.js';
|
|
37
|
-
import './chunk-
|
|
37
|
+
import './chunk-3BGCXC3O.js';
|
|
38
38
|
import './chunk-YYYRBYWG.js';
|
|
39
|
-
import './chunk-
|
|
39
|
+
import './chunk-5CZV4FZ5.js';
|
|
40
40
|
import './chunk-3Z3MPR55.js';
|
|
41
|
-
import './chunk-
|
|
41
|
+
import './chunk-KFA762LZ.js';
|
|
42
42
|
import './chunk-ZQ7VRXYM.js';
|
|
43
43
|
import './chunk-UXYLWVTQ.js';
|
|
44
44
|
import './chunk-YJLHUKYS.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { describeMachineDocker, detectMachine, microVmArchSupported, microVmAssetsPinned, reachDockerStep, supportsContainerBuilds, supportsMicroVmBuilds } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { describeMachineDocker, detectMachine, microVmArchSupported, microVmAssetsPinned, reachDockerStep, supportsContainerBuilds, supportsMicroVmBuilds } from './chunk-F5HZT672.js';
|
|
4
|
+
import './chunk-JDKLORO3.js';
|
|
5
5
|
import './chunk-2PGI6RDE.js';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-MWAA3A5T.js';
|
|
7
7
|
import './chunk-ZFJAQS3A.js';
|
|
8
8
|
import './chunk-JBJTC3UU.js';
|
|
9
9
|
import './chunk-OGFGZQA3.js';
|
|
@@ -13,9 +13,9 @@ import './chunk-JKPJQNJF.js';
|
|
|
13
13
|
import './chunk-PWB7EK4Z.js';
|
|
14
14
|
import './chunk-TQMI335S.js';
|
|
15
15
|
import './chunk-YYYRBYWG.js';
|
|
16
|
-
import './chunk-
|
|
16
|
+
import './chunk-5CZV4FZ5.js';
|
|
17
17
|
import './chunk-3Z3MPR55.js';
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-KFA762LZ.js';
|
|
19
19
|
import './chunk-UXYLWVTQ.js';
|
|
20
20
|
import './chunk-YJLHUKYS.js';
|
|
21
21
|
import './chunk-KQFWTTG7.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { RUNNER_LABEL, builderNameFor, dockerIdentity, ensureRunnerIdentity, pathLabelValue, readRunnerIdentity } from './chunk-
|
|
3
|
+
export { RUNNER_LABEL, builderNameFor, dockerIdentity, ensureRunnerIdentity, pathLabelValue, readRunnerIdentity } from './chunk-5CZV4FZ5.js';
|
|
4
4
|
import './chunk-3Z3MPR55.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-KFA762LZ.js';
|
|
6
6
|
import './chunk-YJLHUKYS.js';
|
|
7
7
|
import './chunk-5DNCFOXA.js';
|
|
8
8
|
import './chunk-634F6J3Q.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { readConfigObject, RunnerInitError } from './chunk-
|
|
3
|
+
import { readConfigObject, RunnerInitError } from './chunk-33SMNWZX.js';
|
|
4
4
|
import './chunk-HDD3BKAE.js';
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
5
|
+
import './chunk-F5HZT672.js';
|
|
6
|
+
import './chunk-JDKLORO3.js';
|
|
7
7
|
import './chunk-2PGI6RDE.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-MWAA3A5T.js';
|
|
9
9
|
import './chunk-ZFJAQS3A.js';
|
|
10
10
|
import './chunk-JBJTC3UU.js';
|
|
11
11
|
import './chunk-OGFGZQA3.js';
|
|
@@ -16,9 +16,9 @@ import './chunk-PWB7EK4Z.js';
|
|
|
16
16
|
import './chunk-TQMI335S.js';
|
|
17
17
|
import './chunk-A6MLCH76.js';
|
|
18
18
|
import './chunk-YYYRBYWG.js';
|
|
19
|
-
import './chunk-
|
|
19
|
+
import './chunk-5CZV4FZ5.js';
|
|
20
20
|
import './chunk-3Z3MPR55.js';
|
|
21
|
-
import './chunk-
|
|
21
|
+
import './chunk-KFA762LZ.js';
|
|
22
22
|
import { runnerCredentialProblem } from './chunk-ZQ7VRXYM.js';
|
|
23
23
|
import './chunk-UXYLWVTQ.js';
|
|
24
24
|
import './chunk-YJLHUKYS.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { isReadable, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-
|
|
3
|
+
import { isReadable, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-IQFX5GQH.js';
|
|
4
4
|
import { jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-COLOLDY3.js';
|
|
6
6
|
import './chunk-TTACRX4N.js';
|
|
7
7
|
import './chunk-I3LTIAOR.js';
|
|
8
8
|
import './chunk-JUVUVXQZ.js';
|
|
@@ -10,9 +10,9 @@ import './chunk-J6LFFZOY.js';
|
|
|
10
10
|
import './chunk-EBX2DU2M.js';
|
|
11
11
|
import './chunk-ESVW4MJY.js';
|
|
12
12
|
import './chunk-TBT347UY.js';
|
|
13
|
-
import { LEASE_SECONDS } from './chunk-
|
|
13
|
+
import { LEASE_SECONDS } from './chunk-JDKLORO3.js';
|
|
14
14
|
import './chunk-2PGI6RDE.js';
|
|
15
|
-
import './chunk-
|
|
15
|
+
import './chunk-MWAA3A5T.js';
|
|
16
16
|
import './chunk-ZFJAQS3A.js';
|
|
17
17
|
import './chunk-JBJTC3UU.js';
|
|
18
18
|
import './chunk-OGFGZQA3.js';
|
|
@@ -22,9 +22,9 @@ import { formatDuration, formatClock, relativeToRunner } from './chunk-JKPJQNJF.
|
|
|
22
22
|
import { pullInstruction } from './chunk-PWB7EK4Z.js';
|
|
23
23
|
import './chunk-TQMI335S.js';
|
|
24
24
|
import { formatBytes } from './chunk-YYYRBYWG.js';
|
|
25
|
-
import './chunk-
|
|
25
|
+
import './chunk-5CZV4FZ5.js';
|
|
26
26
|
import './chunk-3Z3MPR55.js';
|
|
27
|
-
import './chunk-
|
|
27
|
+
import './chunk-KFA762LZ.js';
|
|
28
28
|
import './chunk-ZQ7VRXYM.js';
|
|
29
29
|
import './chunk-UXYLWVTQ.js';
|
|
30
30
|
import './chunk-YJLHUKYS.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@outerlayer/cli",
|
|
3
|
-
"version": "0.33.0-next.
|
|
3
|
+
"version": "0.33.0-next.20261022182214",
|
|
4
4
|
"description": "OuterLayer CLI — commands: init, claude, connect, doctor, login, logout, sync, daemon (alias: watch), emit, findings, work, spec, runner, hooks, mcp, context. Capture and sync coding-agent sessions, and record proof of factory work.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Magu Studios, Inc.",
|
|
@@ -258,9 +258,15 @@ For each criterion, put the capture in a script under
|
|
|
258
258
|
you captured, and regenerating it must be one command. The scripts go when the
|
|
259
259
|
run's report directory goes. The emitted artifacts outlive the run.
|
|
260
260
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
261
|
+
Record the criteria that declare `proof: video` as one demo, as the
|
|
262
|
+
outerlayer-evidence skill's "Record a demo" says. Write one Playwright test with
|
|
263
|
+
`@outerlayer/playwright` and one chapter for each of those criteria, in the
|
|
264
|
+
criteria's order. Run it, then run `outerlayer emit demo <manifest> --item
|
|
265
|
+
"$OUTERLAYER_WORK" --pr <number>`. Emit each other artifact with `outerlayer
|
|
266
|
+
emit artifact ... --for <criterion id> --pr <number>`. Always pass `--pr`.
|
|
267
|
+
When the tree invalidates a video, record and emit the whole demo again: the
|
|
268
|
+
newer demo replaces the older one. Regenerate any other invalidated evidence
|
|
269
|
+
with `--replaces`. Then run `outerlayer sync`.
|
|
264
270
|
|
|
265
271
|
Write `build-reports/evidence.md` naming every criterion with its artifact, or
|
|
266
272
|
with the reason none could be produced. A criterion you could not evidence is
|
|
@@ -15,8 +15,8 @@ the issue, the pull request number, the criteria that declare a proof form, the
|
|
|
15
15
|
instructions-file pointer and the outerlayer-evidence skill.
|
|
16
16
|
|
|
17
17
|
A criterion that declares `proof: screenshot` needs a screenshot bound to its
|
|
18
|
-
id. One that declares `proof: video` needs a video
|
|
19
|
-
satisfies `proof: video`. A criterion with no proof form is proven by its
|
|
18
|
+
id. One that declares `proof: video` needs a video: its chapter of the
|
|
19
|
+
item's one demo. A screenshot never satisfies `proof: video`. A criterion with no proof form is proven by its
|
|
20
20
|
test, and needs no artifact.
|
|
21
21
|
|
|
22
22
|
When a commit lands on the branch after the evidence agent captured, decide for
|
|
@@ -25,7 +25,8 @@ a file the capture's subject runs through: the feature's own files, the shared
|
|
|
25
25
|
code they import, a migration or schema behind them, or a test the capture is a
|
|
26
26
|
log of. A sync that brings in only files the feature never reaches leaves the
|
|
27
27
|
capture valid. Spawn the evidence agent again with the stale list. It reruns
|
|
28
|
-
their scripts and emits each with `--replaces`.
|
|
28
|
+
their scripts and emits each with `--replaces`. A stale video means the whole
|
|
29
|
+
demo is recorded and emitted again. The final report names the
|
|
29
30
|
commit and every capture with its call, kept or regenerated. A commit that
|
|
30
31
|
lands after this call reopens it. Never drive the browser yourself.
|
|
31
32
|
|
|
@@ -29,9 +29,9 @@ artifact shares one upload cap of 8 MiB, whatever its kind:
|
|
|
29
29
|
- **screenshot** (`.png`, `.jpg`) — one focused window or region showing the
|
|
30
30
|
proven state. Crop noise; keep enough chrome (URL bar, test summary line)
|
|
31
31
|
to show it is real.
|
|
32
|
-
- **video** (`.webm`, `.mp4`) — a
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
- **video** (`.webm`, `.mp4`) — a recording of the flow, start to outcome.
|
|
33
|
+
Record it as a demo chapter (see "Record a demo"). Video is the kind most
|
|
34
|
+
likely to hit the 8 MiB cap: trim dead time.
|
|
35
35
|
- **report** (`.html`, `.pdf`) — generated reports: coverage, benchmark,
|
|
36
36
|
audit output. Emit the file the tool produced, unedited.
|
|
37
37
|
- **log** (`.txt`, `.log`) — command output proving a run happened: test
|
|
@@ -80,10 +80,11 @@ the recorded list does not hold gets no row.
|
|
|
80
80
|
|
|
81
81
|
## Record a demo
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
that criterion's video proof, with a spoken line that
|
|
86
|
-
a list of the checks that ran.
|
|
83
|
+
Record every video proof as a chapter of the item's one demo. A demo has
|
|
84
|
+
one chapter for each criterion that declares a video, in the criteria's
|
|
85
|
+
order. Each chapter is that criterion's video proof, with a spoken line that
|
|
86
|
+
says what happens and a list of the checks that ran. Emit a video with
|
|
87
|
+
`emit artifact` only when Playwright cannot drive the flow.
|
|
87
88
|
|
|
88
89
|
Write a Playwright test with `@outerlayer/playwright`, one `demo.chapter`
|
|
89
90
|
for each criterion:
|