@linzumi/cli 1.0.24 → 1.0.26

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.24",
3
+ "version": "1.0.26",
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": {
@@ -17,6 +17,7 @@
17
17
  "bump-version": "node scripts/bump-cli-version.mjs",
18
18
  "codex:history-table": "node scripts/codex_history_table.mjs",
19
19
  "test": "vitest run --config vitest.config.mjs",
20
+ "typecheck": "node scripts/typecheck.mjs",
20
21
  "prepack": "node scripts/build.mjs",
21
22
  "pack:dry-run": "npm pack --dry-run",
22
23
  "record:agent-fixtures": "tsx scripts/record-agent-replay-fixtures.ts",
@@ -39,14 +40,14 @@
39
40
  "access": "public"
40
41
  },
41
42
  "dependencies": {
42
- "@anthropic-ai/claude-agent-sdk": "0.3.170",
43
+ "@anthropic-ai/claude-agent-sdk": "0.3.199",
43
44
  "@inquirer/prompts": "^7.8.6",
44
- "@modelcontextprotocol/sdk": "^1.18.2",
45
+ "@modelcontextprotocol/sdk": "^1.29.0",
45
46
  "@openai/codex": "^0.131.0",
46
47
  "blessed": "^0.1.81",
47
48
  "undici": "^6.25.0",
48
49
  "ws": "^8.18.0",
49
- "zod": "^4.4.3"
50
+ "zod": "^3.25.76"
50
51
  },
51
52
  "engines": {
52
53
  "node": ">=20"
@@ -0,0 +1,42 @@
1
+ // Strict typecheck gate for @linzumi/cli: ZERO errors AND ZERO warnings.
2
+ //
3
+ // `tsc --noEmit` exits non-zero on errors, but some diagnostics (e.g.
4
+ // deprecated-option notices, future warning-class output, node runtime
5
+ // warnings from the toolchain) can reach stdout/stderr while tsc still exits
6
+ // 0. This wrapper treats ANY diagnostic output as a failure so the ratchet
7
+ // can never silently loosen: a green check means tsc printed NOTHING.
8
+ import { spawnSync } from 'node:child_process';
9
+ import { createRequire } from 'node:module';
10
+ import { dirname, join } from 'node:path';
11
+ import { fileURLToPath } from 'node:url';
12
+
13
+ const packageDir = dirname(dirname(fileURLToPath(import.meta.url)));
14
+ const require = createRequire(import.meta.url);
15
+ // Resolve the workspace's own TypeScript (no PATH/npx ambiguity).
16
+ const tscBin = join(dirname(require.resolve('typescript/package.json')), 'bin', 'tsc');
17
+
18
+ const result = spawnSync(
19
+ process.execPath,
20
+ [tscBin, '--noEmit', '--pretty', 'false'],
21
+ { cwd: packageDir, encoding: 'utf8' }
22
+ );
23
+
24
+ const output = `${result.stdout ?? ''}${result.stderr ?? ''}`.trim();
25
+
26
+ if (output !== '') {
27
+ console.error(output);
28
+ console.error(
29
+ '\n[typecheck] FAILED: tsc produced diagnostic output above ' +
30
+ '(zero errors AND zero warnings required).'
31
+ );
32
+ process.exit(1);
33
+ }
34
+
35
+ if (result.status !== 0) {
36
+ console.error(
37
+ `[typecheck] FAILED: tsc exited ${result.status} with no output.`
38
+ );
39
+ process.exit(result.status ?? 1);
40
+ }
41
+
42
+ console.log('[typecheck] OK: zero errors, zero warnings.');