@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linzumi/cli",
3
- "version": "1.0.227",
3
+ "version": "1.0.229",
4
4
  "description": "Linzumi CLI \u2014 point a Codex agent at the real code on your laptop, with your team watching and steering from shared threads.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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 { copyFile, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
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: 'commander join-refusal recovery target version pins',
166
+ description: 'managed join-refusal update version pins',
167
167
  pattern: oldVersion,
168
168
  replacement: newVersion,
169
169
  },