codeam-cli 2.39.71 → 2.39.73

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,18 @@ 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.72] — 2026-06-21
8
+
9
+ ### Fixed
10
+
11
+ - **host-agent:** Validate torch before enabling Kompress (never hang the proxy)
12
+
13
+ ## [2.39.71] — 2026-06-21
14
+
15
+ ### Tests
16
+
17
+ - **host-agent:** Drop the real-subprocess Headroom test (downloaded PyTorch in CI)
18
+
7
19
  ## [2.39.69] — 2026-06-21
8
20
 
9
21
  ### Added
package/dist/index.js CHANGED
@@ -5388,7 +5388,7 @@ function readAnonId() {
5388
5388
  }
5389
5389
  function superProperties() {
5390
5390
  return {
5391
- cliVersion: true ? "2.39.71" : "0.0.0-dev",
5391
+ cliVersion: true ? "2.39.73" : "0.0.0-dev",
5392
5392
  nodeVersion: process.version,
5393
5393
  platform: process.platform,
5394
5394
  arch: process.arch,
@@ -5547,7 +5547,7 @@ var os4 = __toESM(require("os"));
5547
5547
  // package.json
5548
5548
  var package_default = {
5549
5549
  name: "codeam-cli",
5550
- version: "2.39.71",
5550
+ version: "2.39.73",
5551
5551
  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
5552
  type: "commonjs",
5553
5553
  main: "dist/index.js",
@@ -17406,7 +17406,7 @@ function checkForUpdates() {
17406
17406
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
17407
17407
  if (process.env.CI) return;
17408
17408
  if (!process.stdout.isTTY) return;
17409
- const current = true ? "2.39.71" : null;
17409
+ const current = true ? "2.39.73" : null;
17410
17410
  if (!current) return;
17411
17411
  const cache = readCache();
17412
17412
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -17500,7 +17500,7 @@ var CONTROL_AGENT_META = {
17500
17500
  var PEP668_MARKER = "externally-managed-environment";
17501
17501
  var PM_INSTALL_TIMEOUT_MS = 18e4;
17502
17502
  var ENGINE_INSTALL_TIMEOUT_MS = 36e4;
17503
- var HEADROOM_MIN_FREE_DISK_BYTES = 3 * 1024 * 1024 * 1024;
17503
+ var HEADROOM_MIN_FREE_DISK_BYTES = 2 * 1024 * 1024 * 1024;
17504
17504
  var defaultHeadroomRunner = {
17505
17505
  which(cmd) {
17506
17506
  try {
@@ -17736,26 +17736,25 @@ async function setupHeadroomForSelfHosted(agent, runner = defaultHeadroomRunner)
17736
17736
  }
17737
17737
  return false;
17738
17738
  };
17739
- const torchOk = await pipInstall(
17740
- ["torch"],
17741
- ["--index-url", "https://download.pytorch.org/whl/cpu"],
17742
- ENGINE_INSTALL_TIMEOUT_MS
17743
- );
17744
- log.info(
17745
- "host-agent",
17746
- torchOk ? "CPU-only PyTorch installed \u2014 Kompress (ML) compressor available" : "CPU torch install failed \u2014 installing code-aware engine only (Kompress unavailable)"
17747
- );
17748
- const headroomPkg = torchOk ? "headroom-ai[code,ml]" : "headroom-ai[code]";
17749
- const installOk = await pipInstall(
17750
- [headroomPkg, ...SERVER_DEPS],
17751
- [],
17752
- ENGINE_INSTALL_TIMEOUT_MS
17753
- );
17739
+ const headroomPkg = "headroom-ai[proxy,code]";
17740
+ const installOk = await pipInstall([headroomPkg, ...SERVER_DEPS], [], ENGINE_INSTALL_TIMEOUT_MS);
17754
17741
  if (!installOk) {
17755
17742
  log.warn("host-agent", `headroom engine install failed (${headroomPkg}) \u2014 skipping Headroom`);
17756
17743
  return false;
17757
17744
  }
17758
- log.info("host-agent", `headroom + engines installed (${headroomPkg})`);
17745
+ log.info("host-agent", `headroom + ONNX engines installed (${headroomPkg})`);
17746
+ const predownloadPy = [
17747
+ "from huggingface_hub import snapshot_download",
17748
+ 'snapshot_download("chopratejas/kompress-v2-base", allow_patterns=["*.json","onnx/*.onnx","kompress-int8-wo.onnx"])',
17749
+ 'snapshot_download("answerdotai/ModernBERT-base", allow_patterns=["*.json","tokenizer*","*.txt","vocab*","merges*"])'
17750
+ ].join("\n");
17751
+ const dl = await runner.run("python3", ["-c", predownloadPy], {
17752
+ timeoutMs: ENGINE_INSTALL_TIMEOUT_MS
17753
+ });
17754
+ log.info(
17755
+ "host-agent",
17756
+ dl.code === 0 ? "Kompress model pre-downloaded \u2014 first prompt will be fast" : "Kompress model pre-download failed (best-effort) \u2014 first prompt may be slow"
17757
+ );
17759
17758
  if (!runner.which("headroom")) {
17760
17759
  log.warn("host-agent", "headroom not found on PATH after install \u2014 skipping init");
17761
17760
  return false;
@@ -17790,7 +17789,8 @@ async function setupHeadroomForSelfHosted(agent, runner = defaultHeadroomRunner)
17790
17789
  try {
17791
17790
  const proxy = (0, import_node_child_process13.spawn)("headroom", ["proxy", "--port", "8787"], {
17792
17791
  stdio: "ignore",
17793
- detached: true
17792
+ detached: true,
17793
+ env: { ...process.env, HEADROOM_KOMPRESS_BACKEND: "onnx_cpu" }
17794
17794
  });
17795
17795
  proxy.unref();
17796
17796
  } catch (e) {
@@ -17805,7 +17805,7 @@ var defaultSpawner = (env, cwd, args2 = []) => (0, import_node_child_process13.s
17805
17805
  detached: false
17806
17806
  });
17807
17807
  function currentCliVersion() {
17808
- return true ? "2.39.71" : null;
17808
+ return true ? "2.39.73" : null;
17809
17809
  }
17810
17810
  function runCmd(cmd, args2, timeoutMs) {
17811
17811
  return new Promise((resolve7) => {
@@ -28459,7 +28459,7 @@ function checkChokidar() {
28459
28459
  }
28460
28460
  async function doctor(args2 = []) {
28461
28461
  const json = args2.includes("--json");
28462
- const cliVersion = true ? "2.39.71" : "0.0.0-dev";
28462
+ const cliVersion = true ? "2.39.73" : "0.0.0-dev";
28463
28463
  const apiBase2 = resolveApiBaseUrl();
28464
28464
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
28465
28465
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -28658,7 +28658,7 @@ async function completion(args2) {
28658
28658
  // src/commands/version.ts
28659
28659
  var import_picocolors14 = __toESM(require("picocolors"));
28660
28660
  function version2() {
28661
- const v = true ? "2.39.71" : "unknown";
28661
+ const v = true ? "2.39.73" : "unknown";
28662
28662
  console.log(`${import_picocolors14.default.bold("codeam-cli")} ${import_picocolors14.default.cyan(v)}`);
28663
28663
  }
28664
28664
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.39.71",
3
+ "version": "2.39.73",
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",