codeam-cli 2.39.53 → 2.39.54

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.53] — 2026-06-20
8
+
9
+ ### Added
10
+
11
+ - **cli:** Self-hosted headroom auto-provisions a bare environment
12
+
7
13
  ## [2.39.52] — 2026-06-20
8
14
 
9
15
  ### 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.53" : "0.0.0-dev",
5391
+ cliVersion: true ? "2.39.54" : "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.53",
5550
+ version: "2.39.54",
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",
@@ -17409,6 +17409,13 @@ async function ensurePip(runner) {
17409
17409
  log.info("host-agent", `bare box provisioned via ${pm} (python3+pip+ca-certificates+curl)`);
17410
17410
  return true;
17411
17411
  }
17412
+ function agentIdToHeadroomKind(agentId) {
17413
+ const normalized = (agentId ?? "").toLowerCase().replace(/[_-]/g, "");
17414
+ if (normalized.startsWith("claude")) return "claude";
17415
+ if (normalized.startsWith("codex")) return "codex";
17416
+ if (normalized.startsWith("copilot")) return "copilot";
17417
+ return "claude";
17418
+ }
17412
17419
  async function setupHeadroomForSelfHosted(agent, runner = defaultHeadroomRunner) {
17413
17420
  const PIP_PACKAGES = [
17414
17421
  "headroom-ai",
@@ -17464,8 +17471,9 @@ async function setupHeadroomForSelfHosted(agent, runner = defaultHeadroomRunner)
17464
17471
  log.warn("host-agent", "headroom not found on PATH after install \u2014 skipping init");
17465
17472
  return false;
17466
17473
  }
17474
+ const initKind = agentIdToHeadroomKind(agent);
17467
17475
  const initOk = await new Promise((resolve7) => {
17468
- (0, import_node_child_process12.execFile)("headroom", ["init", "--global", agent], (initErr, stdout, stderr) => {
17476
+ (0, import_node_child_process12.execFile)("headroom", ["init", "--global", initKind], (initErr, stdout, stderr) => {
17469
17477
  if (initErr) {
17470
17478
  const detail = (stderr || initErr.message).replace(/\n+$/g, "");
17471
17479
  log.warn("host-agent", `headroom init failed (best-effort): ${detail}`);
@@ -17702,7 +17710,7 @@ var HostAgentSupervisor = class {
17702
17710
  const headroomOk = await this.setupHeadroom(payload.headroomAgent);
17703
17711
  if (headroomOk) {
17704
17712
  childEnv.HEADROOM_ENABLED = "1";
17705
- childEnv.HEADROOM_AGENT = payload.headroomAgent;
17713
+ childEnv.HEADROOM_AGENT = agentIdToHeadroomKind(payload.headroomAgent);
17706
17714
  childEnv.HEADROOM_SAVINGS_INGEST_URL = payload.headroomSavingsIngestUrl;
17707
17715
  log.info("host-agent", "Headroom proxy ready; HEADROOM_* env injected into child");
17708
17716
  } else {
@@ -27844,7 +27852,7 @@ function checkChokidar() {
27844
27852
  }
27845
27853
  async function doctor(args2 = []) {
27846
27854
  const json = args2.includes("--json");
27847
- const cliVersion = true ? "2.39.53" : "0.0.0-dev";
27855
+ const cliVersion = true ? "2.39.54" : "0.0.0-dev";
27848
27856
  const apiBase2 = resolveApiBaseUrl();
27849
27857
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
27850
27858
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -28043,7 +28051,7 @@ async function completion(args2) {
28043
28051
  // src/commands/version.ts
28044
28052
  var import_picocolors13 = __toESM(require("picocolors"));
28045
28053
  function version2() {
28046
- const v = true ? "2.39.53" : "unknown";
28054
+ const v = true ? "2.39.54" : "unknown";
28047
28055
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
28048
28056
  }
28049
28057
 
@@ -28329,7 +28337,7 @@ function checkForUpdates() {
28329
28337
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
28330
28338
  if (process.env.CI) return;
28331
28339
  if (!process.stdout.isTTY) return;
28332
- const current = true ? "2.39.53" : null;
28340
+ const current = true ? "2.39.54" : null;
28333
28341
  if (!current) return;
28334
28342
  const cache = readCache();
28335
28343
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.39.53",
3
+ "version": "2.39.54",
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",