codeam-cli 2.39.73 → 2.39.74

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/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to `codeam-cli` are documented here.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [2.39.73] — 2026-06-21
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Self-hosted Headroom Kompress on ONNX (no torch) + model pre-download
12
+
7
13
  ## [2.39.72] — 2026-06-21
8
14
 
9
15
  ### Fixed
package/dist/index.js CHANGED
@@ -356,7 +356,7 @@ Return ONLY a JSON object on stdout (no prose, no markdown fences):
356
356
  "port": <number>,
357
357
  "ready_pattern": "<regex matching the server-ready stdout line>",
358
358
  "env": { "HOST": "0.0.0.0" },
359
- "setup_commands": [],
359
+ "setup_commands": [{ "cmd": "<executable>", "args": ["..."] }],
360
360
  "notes": "<one-line caveat or null>"
361
361
  }
362
362
 
@@ -378,6 +378,8 @@ CRITICAL \u2014 setup_commands:
378
378
  - ONLY include setup_commands for genuinely non-install work the project needs
379
379
  before its dev server can boot: prisma generate, codegen, prebuild scripts,
380
380
  database migrations against a local SQLite, etc.
381
+ - Each setup_commands entry MUST be an object {"cmd": "...", "args": ["..."]} \u2014
382
+ e.g. {"cmd": "npx", "args": ["prisma", "generate"]}. NOT a bare string.
381
383
  - For most projects, setup_commands should be an empty array [].
382
384
 
383
385
  OUTPUT JSON ONLY. NO MARKDOWN. NO COMMENTARY.
@@ -5388,7 +5390,7 @@ function readAnonId() {
5388
5390
  }
5389
5391
  function superProperties() {
5390
5392
  return {
5391
- cliVersion: true ? "2.39.73" : "0.0.0-dev",
5393
+ cliVersion: true ? "2.39.74" : "0.0.0-dev",
5392
5394
  nodeVersion: process.version,
5393
5395
  platform: process.platform,
5394
5396
  arch: process.arch,
@@ -5547,7 +5549,7 @@ var os4 = __toESM(require("os"));
5547
5549
  // package.json
5548
5550
  var package_default = {
5549
5551
  name: "codeam-cli",
5550
- version: "2.39.73",
5552
+ version: "2.39.74",
5551
5553
  description: "Workflow-continuity bridge for AI coding agents. Wrap Claude Code or Codex in a PTY and supervise, approve, and redirect the session from any device \u2014 async. The terminal companion for CodeAgent Mobile.",
5552
5554
  type: "commonjs",
5553
5555
  main: "dist/index.js",
@@ -7739,10 +7741,21 @@ var startCommandSchema = import_zod.z.object({
7739
7741
  port: import_zod.z.number().int().min(1).max(65535),
7740
7742
  ready_pattern: import_zod.z.string().min(1).max(4096),
7741
7743
  env: import_zod.z.record(import_zod.z.string(), import_zod.z.string().max(8192)).optional(),
7744
+ // The agent emits entries as either {cmd,args} objects OR bare command
7745
+ // strings ("npx prisma generate"). Accept both and normalize strings to
7746
+ // {cmd,args} so a string entry doesn't reject the whole detection (which
7747
+ // would silently drop the preview) and downstream always gets objects.
7742
7748
  setup_commands: import_zod.z.array(
7743
- import_zod.z.object({
7744
- cmd: import_zod.z.string().min(1).max(256),
7745
- args: import_zod.z.array(import_zod.z.string().max(1024)).max(64)
7749
+ import_zod.z.union([
7750
+ import_zod.z.string().min(1).max(1024),
7751
+ import_zod.z.object({
7752
+ cmd: import_zod.z.string().min(1).max(256),
7753
+ args: import_zod.z.array(import_zod.z.string().max(1024)).max(64)
7754
+ })
7755
+ ]).transform((entry) => {
7756
+ if (typeof entry !== "string") return entry;
7757
+ const parts = entry.trim().split(/\s+/).filter(Boolean);
7758
+ return { cmd: parts[0] ?? "", args: parts.slice(1) };
7746
7759
  })
7747
7760
  ).max(32).optional(),
7748
7761
  notes: import_zod.z.string().max(4096).nullable().optional()
@@ -16173,9 +16186,18 @@ var previewStartH = (ctx, _cmd, parsed) => {
16173
16186
  }
16174
16187
  preflightRan = true;
16175
16188
  }
16176
- const agentSetupCommands = preflightRan ? (detection.setup_commands ?? []).filter(
16177
- (s) => !isJsInstallCommand(s.cmd, s.args)
16178
- ) : detection.setup_commands ?? [];
16189
+ const normalizedSetup = (detection.setup_commands ?? []).map((entry) => {
16190
+ if (typeof entry === "string") {
16191
+ const parts = entry.trim().split(/\s+/).filter(Boolean);
16192
+ return { cmd: parts[0] ?? "", args: parts.slice(1) };
16193
+ }
16194
+ const o = entry ?? {};
16195
+ return {
16196
+ cmd: typeof o.cmd === "string" ? o.cmd : "",
16197
+ args: Array.isArray(o.args) ? o.args.filter((a) => typeof a === "string") : []
16198
+ };
16199
+ }).filter((s) => s.cmd.length > 0);
16200
+ const agentSetupCommands = preflightRan ? normalizedSetup.filter((s) => !isJsInstallCommand(s.cmd, s.args)) : normalizedSetup;
16179
16201
  for (const setup of agentSetupCommands) {
16180
16202
  emitProgress("SETUP_RUN", `${setup.cmd} ${setup.args.join(" ")}`);
16181
16203
  const timeoutMs = isJsInstallCommand(setup.cmd, setup.args) ? INSTALL_TIMEOUT_MS : SETUP_TIMEOUT_MS;
@@ -16486,7 +16508,17 @@ var previewStartH = (ctx, _cmd, parsed) => {
16486
16508
  type: "preview_ready",
16487
16509
  payload: { url, framework: detection.framework, port: detection.port }
16488
16510
  });
16489
- })();
16511
+ })().catch((err) => {
16512
+ const message = err instanceof Error ? err.message : String(err);
16513
+ log.warn("preview", `start crashed before ready: ${message}`);
16514
+ void postPreviewEvent({
16515
+ sessionId: ctx.sessionId,
16516
+ pluginId: ctx.pluginId,
16517
+ pluginAuthToken,
16518
+ type: "preview_error",
16519
+ payload: { stage: "spawn", message: `Preview failed to start: ${message}` }
16520
+ });
16521
+ });
16490
16522
  };
16491
16523
  var previewStopH = (ctx) => {
16492
16524
  if (!ctx.pluginAuthToken) {
@@ -17406,7 +17438,7 @@ function checkForUpdates() {
17406
17438
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
17407
17439
  if (process.env.CI) return;
17408
17440
  if (!process.stdout.isTTY) return;
17409
- const current = true ? "2.39.73" : null;
17441
+ const current = true ? "2.39.74" : null;
17410
17442
  if (!current) return;
17411
17443
  const cache = readCache();
17412
17444
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -17805,7 +17837,7 @@ var defaultSpawner = (env, cwd, args2 = []) => (0, import_node_child_process13.s
17805
17837
  detached: false
17806
17838
  });
17807
17839
  function currentCliVersion() {
17808
- return true ? "2.39.73" : null;
17840
+ return true ? "2.39.74" : null;
17809
17841
  }
17810
17842
  function runCmd(cmd, args2, timeoutMs) {
17811
17843
  return new Promise((resolve7) => {
@@ -28459,7 +28491,7 @@ function checkChokidar() {
28459
28491
  }
28460
28492
  async function doctor(args2 = []) {
28461
28493
  const json = args2.includes("--json");
28462
- const cliVersion = true ? "2.39.73" : "0.0.0-dev";
28494
+ const cliVersion = true ? "2.39.74" : "0.0.0-dev";
28463
28495
  const apiBase2 = resolveApiBaseUrl();
28464
28496
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
28465
28497
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -28658,7 +28690,7 @@ async function completion(args2) {
28658
28690
  // src/commands/version.ts
28659
28691
  var import_picocolors14 = __toESM(require("picocolors"));
28660
28692
  function version2() {
28661
- const v = true ? "2.39.73" : "unknown";
28693
+ const v = true ? "2.39.74" : "unknown";
28662
28694
  console.log(`${import_picocolors14.default.bold("codeam-cli")} ${import_picocolors14.default.cyan(v)}`);
28663
28695
  }
28664
28696
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.39.73",
3
+ "version": "2.39.74",
4
4
  "description": "Workflow-continuity bridge for AI coding agents. Wrap Claude Code or Codex in a PTY and supervise, approve, and redirect the session from any device — async. The terminal companion for CodeAgent Mobile.",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",