@linzumi/cli 1.0.6 → 1.0.8

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.6",
3
+ "version": "1.0.8",
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": {
@@ -48,6 +48,7 @@
48
48
  "@types/blessed": "^0.1.27",
49
49
  "@types/node": "^22.18.6",
50
50
  "esbuild": "^0.27.2",
51
+ "fast-check": "^3.23.2",
51
52
  "tsx": "^4.21.0",
52
53
  "vitest": "^1.6.1"
53
54
  }
package/scripts/build.mjs CHANGED
@@ -9,6 +9,10 @@ const packageRoot = dirname(dirname(fileURLToPath(import.meta.url)));
9
9
 
10
10
  await rm(join(packageRoot, 'dist'), { recursive: true, force: true });
11
11
 
12
+ const banner = {
13
+ js: "import { createRequire } from 'node:module';\nconst require = createRequire(import.meta.url);",
14
+ };
15
+
12
16
  await build({
13
17
  entryPoints: [join(packageRoot, 'src/index.ts')],
14
18
  bundle: true,
@@ -25,9 +29,36 @@ await build({
25
29
  sourcemap: false,
26
30
  legalComments: 'none',
27
31
  external: ['ws', 'undici', 'blessed', '@anthropic-ai/claude-agent-sdk'],
28
- banner: {
29
- js: "import { createRequire } from 'node:module';\nconst require = createRequire(import.meta.url);",
30
- },
32
+ banner,
33
+ });
34
+
35
+ // The in-guest Linzumi MCP bridge: a self-contained MCP server bundle that the
36
+ // VM Codex supervisor injects into a coding job's microVM and runs with a plain
37
+ // `node`. Unlike dist/index.js it bundles EVERYTHING (no `external`), so the
38
+ // guest needs no extra npm packages - only Node, which provisioning already
39
+ // installs. The MCP server path uses only the bundled @modelcontextprotocol/sdk
40
+ // and global fetch; it never touches ws/undici/blessed/claude-agent-sdk, so
41
+ // bundling with no externals stays lean (Spec:
42
+ // plans/2026-06-12-local-vm-codex-execution-phase1.md in-guest MCP bridge).
43
+ // Output extension is .mjs (not .js): the bundle is ESM (banner createRequire +
44
+ // a node:url built-in import are top-level `import` statements). In the guest it
45
+ // lives at /opt/linzumi/ next to the CJS relay.js with no package.json in scope,
46
+ // so a `.js` would be treated as CommonJS on Node versions without ESM-syntax
47
+ // detection and throw "Cannot use import statement outside a module". A
48
+ // `package.json {"type":"module"}` marker would fix mcp-server but BREAK the CJS
49
+ // relay.js at the same path, so the unambiguous `.mjs` extension is the correct
50
+ // fix.
51
+ await build({
52
+ entryPoints: [join(packageRoot, 'src/mcpServerEntry.ts')],
53
+ bundle: true,
54
+ platform: 'node',
55
+ target: 'node20',
56
+ format: 'esm',
57
+ outfile: join(packageRoot, 'dist/mcp-server.mjs'),
58
+ minify: true,
59
+ sourcemap: false,
60
+ legalComments: 'none',
61
+ banner,
31
62
  });
32
63
 
33
64
  await mkdir(join(packageRoot, 'dist/assets'), { recursive: true });