codeam-cli 2.39.58 → 2.39.59

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,16 @@ 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.58] — 2026-06-20
8
+
9
+ ### Added
10
+
11
+ - **host-agent:** Event-driven session lifecycle (off the heartbeat)
12
+
13
+ ### Fixed
14
+
15
+ - **host-agent:** Put SDK-bundled claude on PATH for `headroom init`
16
+
7
17
  ## [2.39.57] — 2026-06-20
8
18
 
9
19
  ### 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.58" : "0.0.0-dev",
5391
+ cliVersion: true ? "2.39.59" : "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.58",
5550
+ version: "2.39.59",
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",
@@ -11065,12 +11065,12 @@ function isAvailable() {
11065
11065
  }
11066
11066
  function augmentPath() {
11067
11067
  const dirs = probeInstallDirs();
11068
- const sep4 = path14.delimiter;
11068
+ const sep5 = path14.delimiter;
11069
11069
  const current = process.env.PATH ?? "";
11070
- const existing = new Set(current.split(sep4).filter(Boolean));
11070
+ const existing = new Set(current.split(sep5).filter(Boolean));
11071
11071
  const additions = dirs.filter((d3) => !existing.has(d3));
11072
11072
  if (additions.length === 0) return;
11073
- process.env.PATH = additions.join(sep4) + sep4 + current;
11073
+ process.env.PATH = additions.join(sep5) + sep5 + current;
11074
11074
  }
11075
11075
  function runInstaller() {
11076
11076
  const isWindows = process.platform === "win32";
@@ -17367,7 +17367,7 @@ function checkForUpdates() {
17367
17367
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
17368
17368
  if (process.env.CI) return;
17369
17369
  if (!process.stdout.isTTY) return;
17370
- const current = true ? "2.39.58" : null;
17370
+ const current = true ? "2.39.59" : null;
17371
17371
  if (!current) return;
17372
17372
  const cache = readCache();
17373
17373
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -17638,16 +17638,34 @@ function readHeadroomChildEnv() {
17638
17638
  }
17639
17639
  }
17640
17640
  function bundledClaudeBinDir() {
17641
- const require_2 = require;
17641
+ const roots = /* @__PURE__ */ new Set();
17642
+ let dir = __dirname;
17643
+ for (let i = 0; i < 6; i++) {
17644
+ roots.add(path45.join(dir, "node_modules"));
17645
+ const parent = path45.dirname(dir);
17646
+ if (parent === dir) break;
17647
+ dir = parent;
17648
+ }
17642
17649
  try {
17643
- const sdkManifest = require_2.resolve("@anthropic-ai/claude-agent-sdk/package.json");
17644
- const atAnthropic = path45.dirname(path45.dirname(sdkManifest));
17645
- for (const entry of fs39.readdirSync(atAnthropic)) {
17650
+ const main2 = require.resolve("@anthropic-ai/claude-agent-sdk");
17651
+ const marker = `${path45.sep}@anthropic-ai${path45.sep}`;
17652
+ const idx = main2.lastIndexOf(marker);
17653
+ if (idx !== -1) roots.add(main2.slice(0, idx));
17654
+ } catch {
17655
+ }
17656
+ for (const nm of roots) {
17657
+ const atAnthropic = path45.join(nm, "@anthropic-ai");
17658
+ let entries;
17659
+ try {
17660
+ entries = fs39.readdirSync(atAnthropic);
17661
+ } catch {
17662
+ continue;
17663
+ }
17664
+ for (const entry of entries) {
17646
17665
  if (!entry.startsWith("claude-agent-sdk-")) continue;
17647
17666
  const bin = path45.join(atAnthropic, entry, "claude");
17648
17667
  if (fs39.existsSync(bin)) return path45.dirname(bin);
17649
17668
  }
17650
- } catch {
17651
17669
  }
17652
17670
  return null;
17653
17671
  }
@@ -17751,7 +17769,7 @@ var defaultSpawner = (env, cwd, args2 = []) => (0, import_node_child_process13.s
17751
17769
  detached: false
17752
17770
  });
17753
17771
  function currentCliVersion() {
17754
- return true ? "2.39.58" : null;
17772
+ return true ? "2.39.59" : null;
17755
17773
  }
17756
17774
  function runCmd(cmd, args2, timeoutMs) {
17757
17775
  return new Promise((resolve7) => {
@@ -28303,7 +28321,7 @@ function checkChokidar() {
28303
28321
  }
28304
28322
  async function doctor(args2 = []) {
28305
28323
  const json = args2.includes("--json");
28306
- const cliVersion = true ? "2.39.58" : "0.0.0-dev";
28324
+ const cliVersion = true ? "2.39.59" : "0.0.0-dev";
28307
28325
  const apiBase2 = resolveApiBaseUrl();
28308
28326
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
28309
28327
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -28502,7 +28520,7 @@ async function completion(args2) {
28502
28520
  // src/commands/version.ts
28503
28521
  var import_picocolors14 = __toESM(require("picocolors"));
28504
28522
  function version2() {
28505
- const v = true ? "2.39.58" : "unknown";
28523
+ const v = true ? "2.39.59" : "unknown";
28506
28524
  console.log(`${import_picocolors14.default.bold("codeam-cli")} ${import_picocolors14.default.cyan(v)}`);
28507
28525
  }
28508
28526
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.39.58",
3
+ "version": "2.39.59",
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",