codeam-cli 2.39.57 → 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 +22 -0
- package/dist/index.js +52 -10
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,28 @@ 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
|
+
|
|
17
|
+
## [2.39.57] — 2026-06-20
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- **host-agent:** Event-driven session lifecycle (off the heartbeat)
|
|
22
|
+
|
|
23
|
+
## [2.39.56] — 2026-06-20
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- **cli:** Report supervised sessions in self-hosted heartbeat
|
|
28
|
+
|
|
7
29
|
## [2.39.55] — 2026-06-20
|
|
8
30
|
|
|
9
31
|
### 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.
|
|
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.
|
|
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
|
|
11068
|
+
const sep5 = path14.delimiter;
|
|
11069
11069
|
const current = process.env.PATH ?? "";
|
|
11070
|
-
const existing = new Set(current.split(
|
|
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(
|
|
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.
|
|
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;
|
|
@@ -17637,6 +17637,38 @@ function readHeadroomChildEnv() {
|
|
|
17637
17637
|
return {};
|
|
17638
17638
|
}
|
|
17639
17639
|
}
|
|
17640
|
+
function bundledClaudeBinDir() {
|
|
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
|
+
}
|
|
17649
|
+
try {
|
|
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) {
|
|
17665
|
+
if (!entry.startsWith("claude-agent-sdk-")) continue;
|
|
17666
|
+
const bin = path45.join(atAnthropic, entry, "claude");
|
|
17667
|
+
if (fs39.existsSync(bin)) return path45.dirname(bin);
|
|
17668
|
+
}
|
|
17669
|
+
}
|
|
17670
|
+
return null;
|
|
17671
|
+
}
|
|
17640
17672
|
async function setupHeadroomForSelfHosted(agent, runner = defaultHeadroomRunner) {
|
|
17641
17673
|
const PIP_PACKAGES = [
|
|
17642
17674
|
"headroom-ai",
|
|
@@ -17693,8 +17725,18 @@ async function setupHeadroomForSelfHosted(agent, runner = defaultHeadroomRunner)
|
|
|
17693
17725
|
return false;
|
|
17694
17726
|
}
|
|
17695
17727
|
const initKind = agentIdToHeadroomKind(agent);
|
|
17728
|
+
const initEnv = { ...process.env };
|
|
17729
|
+
if (initKind === "claude") {
|
|
17730
|
+
const claudeDir = bundledClaudeBinDir();
|
|
17731
|
+
if (claudeDir) {
|
|
17732
|
+
initEnv.PATH = `${claudeDir}${path45.delimiter}${process.env["PATH"] ?? ""}`;
|
|
17733
|
+
log.info("host-agent", `headroom init: bundled claude on PATH (${claudeDir})`);
|
|
17734
|
+
} else {
|
|
17735
|
+
log.warn("host-agent", "headroom init: bundled claude binary not found \u2014 init may fail");
|
|
17736
|
+
}
|
|
17737
|
+
}
|
|
17696
17738
|
const initOk = await new Promise((resolve7) => {
|
|
17697
|
-
(0, import_node_child_process13.execFile)("headroom", ["init", "--global", initKind], (initErr, stdout, stderr) => {
|
|
17739
|
+
(0, import_node_child_process13.execFile)("headroom", ["init", "--global", initKind], { env: initEnv }, (initErr, stdout, stderr) => {
|
|
17698
17740
|
if (initErr) {
|
|
17699
17741
|
const detail = (stderr || initErr.message).replace(/\n+$/g, "");
|
|
17700
17742
|
log.warn("host-agent", `headroom init failed (best-effort): ${detail}`);
|
|
@@ -17727,7 +17769,7 @@ var defaultSpawner = (env, cwd, args2 = []) => (0, import_node_child_process13.s
|
|
|
17727
17769
|
detached: false
|
|
17728
17770
|
});
|
|
17729
17771
|
function currentCliVersion() {
|
|
17730
|
-
return true ? "2.39.
|
|
17772
|
+
return true ? "2.39.59" : null;
|
|
17731
17773
|
}
|
|
17732
17774
|
function runCmd(cmd, args2, timeoutMs) {
|
|
17733
17775
|
return new Promise((resolve7) => {
|
|
@@ -28279,7 +28321,7 @@ function checkChokidar() {
|
|
|
28279
28321
|
}
|
|
28280
28322
|
async function doctor(args2 = []) {
|
|
28281
28323
|
const json = args2.includes("--json");
|
|
28282
|
-
const cliVersion = true ? "2.39.
|
|
28324
|
+
const cliVersion = true ? "2.39.59" : "0.0.0-dev";
|
|
28283
28325
|
const apiBase2 = resolveApiBaseUrl();
|
|
28284
28326
|
const diagnosticId = (0, import_node_crypto8.randomUUID)();
|
|
28285
28327
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -28478,7 +28520,7 @@ async function completion(args2) {
|
|
|
28478
28520
|
// src/commands/version.ts
|
|
28479
28521
|
var import_picocolors14 = __toESM(require("picocolors"));
|
|
28480
28522
|
function version2() {
|
|
28481
|
-
const v = true ? "2.39.
|
|
28523
|
+
const v = true ? "2.39.59" : "unknown";
|
|
28482
28524
|
console.log(`${import_picocolors14.default.bold("codeam-cli")} ${import_picocolors14.default.cyan(v)}`);
|
|
28483
28525
|
}
|
|
28484
28526
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.39.
|
|
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",
|