@linzumi/cli 1.0.227 → 1.0.229
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 +1 -1
- package/dist/impl-res/index.js +244 -242
- package/dist/impl-ts/index.js +469 -460
- package/dist/impl-ts/tcp-tunnel-cli.mjs +93 -0
- package/dist/index.js +1 -1
- package/dist/tcp-tunnel-cli.mjs +93 -0
- package/package.json +1 -1
- package/scripts/build-core-supervisor-parity-oracle.mjs +4 -0
- package/scripts/build-protocol-parity-oracle.mjs +3 -0
- package/scripts/build.mjs +34 -1
- package/scripts/bump-cli-version.mjs +1 -1
package/package.json
CHANGED
|
@@ -254,6 +254,10 @@ async function runSupervisionCaseInner(caseInput) {
|
|
|
254
254
|
log: (event, payload = {}) => trace.push({ t: 'log', event, payload }),
|
|
255
255
|
scheduler: timers.scheduler,
|
|
256
256
|
now: () => clock.nowMs,
|
|
257
|
+
// Spec: plans/2026-08-16-pr-5159-terminal-supervisor-liveness.md.
|
|
258
|
+
// The scripted oracle acknowledges manager-visible terminal handoff just
|
|
259
|
+
// like the ReScript parity driver; notifier failure is tested separately.
|
|
260
|
+
notifyTerminalFailure: () => undefined,
|
|
257
261
|
timing: caseInput.timing ?? undefined,
|
|
258
262
|
...(caseInput.overlap === undefined
|
|
259
263
|
? {}
|
|
@@ -31,6 +31,7 @@ import {
|
|
|
31
31
|
requireString,
|
|
32
32
|
requirePositiveInteger,
|
|
33
33
|
extractCodexIds,
|
|
34
|
+
terminalStartupFailureHeartbeatPayload,
|
|
34
35
|
} from './src/protocol';
|
|
35
36
|
import {
|
|
36
37
|
objectValue,
|
|
@@ -161,6 +162,8 @@ function handle(testCase) {
|
|
|
161
162
|
}
|
|
162
163
|
return outcome(() => fn(...testCase.args));
|
|
163
164
|
}
|
|
165
|
+
case 'terminalStartupFailureHeartbeatPayload':
|
|
166
|
+
return outcome(() => terminalStartupFailureHeartbeatPayload(testCase.controlSeqs));
|
|
164
167
|
case 'constants':
|
|
165
168
|
return {
|
|
166
169
|
compactingConversationHistoryReason,
|
package/scripts/build.mjs
CHANGED
|
@@ -1,13 +1,28 @@
|
|
|
1
1
|
// Spec: plans/2026-05-17-linzumi-cli-node-toolchain-note.md and
|
|
2
2
|
// plans/2026-08-06-hosted-runner-proper-lockfile-boot-incident.md
|
|
3
3
|
// Relationship: Builds the published CLI package with Node-hosted tooling.
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
access,
|
|
6
|
+
copyFile,
|
|
7
|
+
mkdir,
|
|
8
|
+
readFile,
|
|
9
|
+
rm,
|
|
10
|
+
writeFile,
|
|
11
|
+
} from 'node:fs/promises';
|
|
5
12
|
import { dirname, join } from 'node:path';
|
|
6
13
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
7
14
|
import { build } from 'esbuild';
|
|
8
15
|
|
|
9
16
|
const packageRoot = dirname(dirname(fileURLToPath(import.meta.url)));
|
|
10
17
|
|
|
18
|
+
// Spec: plans/2026-08-17-tcp-tunnel-cli.spec.md. The zero-TS tunnel command
|
|
19
|
+
// is a mandatory ReScript build input, not a fail-soft optional rung.
|
|
20
|
+
const tcpTunnelCliEntry = join(
|
|
21
|
+
packageRoot,
|
|
22
|
+
'../linzumi-cli-rescript/src/forwarding/CommanderTcpTunnelCli.res.mjs'
|
|
23
|
+
);
|
|
24
|
+
await access(tcpTunnelCliEntry);
|
|
25
|
+
|
|
11
26
|
// M3 cluster 15: the ReScript package ships no version literal (repo rule);
|
|
12
27
|
// the CLI version is esbuild-`define`d into the impl-res bundle as
|
|
13
28
|
// process.env.LINZUMI_CLI_VERSION (read via CommanderEntryVersion.res), the
|
|
@@ -77,6 +92,20 @@ await build({
|
|
|
77
92
|
banner,
|
|
78
93
|
});
|
|
79
94
|
|
|
95
|
+
await build({
|
|
96
|
+
entryPoints: [tcpTunnelCliEntry],
|
|
97
|
+
bundle: true,
|
|
98
|
+
platform: 'node',
|
|
99
|
+
target: 'node20',
|
|
100
|
+
format: 'esm',
|
|
101
|
+
outfile: join(packageRoot, 'dist/tcp-tunnel-cli.mjs'),
|
|
102
|
+
minify: true,
|
|
103
|
+
sourcemap: false,
|
|
104
|
+
legalComments: 'none',
|
|
105
|
+
external: ['ws'],
|
|
106
|
+
banner,
|
|
107
|
+
});
|
|
108
|
+
|
|
80
109
|
// The in-guest Linzumi MCP bridge: a self-contained MCP server bundle that the
|
|
81
110
|
// VM Codex supervisor injects into a coding job's microVM and runs with a plain
|
|
82
111
|
// `node`. Unlike dist/index.js it bundles EVERYTHING (no `external`), so the
|
|
@@ -111,6 +140,10 @@ await build({
|
|
|
111
140
|
// head; the flat dist/mcp-server.mjs above stays as the rollback backstop
|
|
112
141
|
// and the guest path contract). Same bytes, copied - never a second build.
|
|
113
142
|
await mkdir(join(packageRoot, 'dist/impl-ts'), { recursive: true });
|
|
143
|
+
await copyFile(
|
|
144
|
+
join(packageRoot, 'dist/tcp-tunnel-cli.mjs'),
|
|
145
|
+
join(packageRoot, 'dist/impl-ts/tcp-tunnel-cli.mjs')
|
|
146
|
+
);
|
|
114
147
|
await copyFile(
|
|
115
148
|
join(packageRoot, 'dist/mcp-server.mjs'),
|
|
116
149
|
join(packageRoot, 'dist/impl-ts/mcp-server.mjs')
|
|
@@ -163,7 +163,7 @@ const knownSites = [
|
|
|
163
163
|
// Spec: plans/2026-08-15-runner-join-refusal-observability.spec.md.
|
|
164
164
|
// Recovery fixtures pin real CLI versions and must move with a release.
|
|
165
165
|
file: 'test/updateNudge.test.ts',
|
|
166
|
-
description: '
|
|
166
|
+
description: 'managed join-refusal update version pins',
|
|
167
167
|
pattern: oldVersion,
|
|
168
168
|
replacement: newVersion,
|
|
169
169
|
},
|