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 +6 -0
- package/dist/index.js +15 -7
- package/package.json +1 -1
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.
|
|
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.
|
|
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",
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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",
|