codeam-cli 2.61.93 → 2.61.94
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 +31 -18
- 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.61.93] — 2026-08-08
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **cli:** Post pack events to /api/agent-packs/events (#602)
|
|
12
|
+
|
|
7
13
|
## [2.61.92] — 2026-08-08
|
|
8
14
|
|
|
9
15
|
### Added
|
package/dist/index.js
CHANGED
|
@@ -8017,7 +8017,7 @@ function readAnonId() {
|
|
|
8017
8017
|
}
|
|
8018
8018
|
function superProperties() {
|
|
8019
8019
|
return {
|
|
8020
|
-
cliVersion: true ? "2.61.
|
|
8020
|
+
cliVersion: true ? "2.61.94" : "0.0.0-dev",
|
|
8021
8021
|
nodeVersion: process.version,
|
|
8022
8022
|
platform: process.platform,
|
|
8023
8023
|
arch: process.arch,
|
|
@@ -8198,7 +8198,7 @@ var os4 = __toESM(require("os"));
|
|
|
8198
8198
|
// package.json
|
|
8199
8199
|
var package_default = {
|
|
8200
8200
|
name: "codeam-cli",
|
|
8201
|
-
version: "2.61.
|
|
8201
|
+
version: "2.61.94",
|
|
8202
8202
|
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.",
|
|
8203
8203
|
type: "commonjs",
|
|
8204
8204
|
main: "dist/index.js",
|
|
@@ -8909,9 +8909,18 @@ function isPidAlive(pid) {
|
|
|
8909
8909
|
return false;
|
|
8910
8910
|
}
|
|
8911
8911
|
}
|
|
8912
|
+
function pidLooksLikeProxy(pid) {
|
|
8913
|
+
try {
|
|
8914
|
+
const cmd = fs5.readFileSync(`/proc/${pid}/cmdline`, "utf8").replace(/\0/g, " ").toLowerCase();
|
|
8915
|
+
if (cmd.trim() === "") return false;
|
|
8916
|
+
return cmd.includes("headroom") && cmd.includes("proxy");
|
|
8917
|
+
} catch {
|
|
8918
|
+
return isPidAlive(pid);
|
|
8919
|
+
}
|
|
8920
|
+
}
|
|
8912
8921
|
function isHeadroomProxyProcessAlive() {
|
|
8913
8922
|
const pid = readHeadroomProxyPidfile();
|
|
8914
|
-
return pid !== null && isPidAlive(pid);
|
|
8923
|
+
return pid !== null && isPidAlive(pid) && pidLooksLikeProxy(pid);
|
|
8915
8924
|
}
|
|
8916
8925
|
function headroomProxyPidfileAgeMs(nowMs) {
|
|
8917
8926
|
try {
|
|
@@ -9033,7 +9042,7 @@ async function ensureHeadroomProxy(deps) {
|
|
|
9033
9042
|
const ageMs = deps.proxyStartupAgeMs();
|
|
9034
9043
|
if (ageMs !== null && ageMs < PROXY_STARTUP_GRACE_MS) return "starting";
|
|
9035
9044
|
log.warn("headroom-supervisor", "proxy :8787 is confirmed down \u2014 respawning");
|
|
9036
|
-
deps.spawnProxy();
|
|
9045
|
+
(deps.spawnProxyForce ?? deps.spawnProxy)();
|
|
9037
9046
|
return "respawned";
|
|
9038
9047
|
}
|
|
9039
9048
|
async function ensureHeadroomProxyReady(deps, opts = {}) {
|
|
@@ -9100,14 +9109,17 @@ function makeRealProxySupervisorDeps() {
|
|
|
9100
9109
|
proxyProcessAlive: () => isHeadroomProxyProcessAlive(),
|
|
9101
9110
|
proxyStartupAgeMs: () => headroomProxyPidfileAgeMs(Date.now()),
|
|
9102
9111
|
spawnProxy: spawnProxyReal,
|
|
9103
|
-
spawnProxyForce: () =>
|
|
9104
|
-
|
|
9105
|
-
|
|
9106
|
-
|
|
9107
|
-
|
|
9108
|
-
|
|
9109
|
-
|
|
9110
|
-
|
|
9112
|
+
spawnProxyForce: () => {
|
|
9113
|
+
killHeadroomProxy();
|
|
9114
|
+
spawnHeadroomProxy(
|
|
9115
|
+
{
|
|
9116
|
+
tag: "headroom-supervisor",
|
|
9117
|
+
spawnErrorMsg: (detail) => `force-respawn error (best-effort): ${detail}`,
|
|
9118
|
+
failureMsg: (detail) => `force-respawn failed (best-effort): ${detail}`
|
|
9119
|
+
},
|
|
9120
|
+
{ force: true }
|
|
9121
|
+
);
|
|
9122
|
+
}
|
|
9111
9123
|
};
|
|
9112
9124
|
}
|
|
9113
9125
|
|
|
@@ -9503,7 +9515,7 @@ var CommandRelayService = class _CommandRelayService {
|
|
|
9503
9515
|
// fresh + clear the "CLI update available" banner after a self-update
|
|
9504
9516
|
// (a codespace that reinstalls @latest reconnects via heartbeat, not
|
|
9505
9517
|
// pair/reconnect). Older backends ignore the extra field.
|
|
9506
|
-
..."2.61.
|
|
9518
|
+
..."2.61.94" ? { ideVersion: "2.61.94" } : {}
|
|
9507
9519
|
}).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
|
|
9508
9520
|
}
|
|
9509
9521
|
/**
|
|
@@ -20676,7 +20688,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
20676
20688
|
if (process.env.NODE_ENV === "test") return;
|
|
20677
20689
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
20678
20690
|
if (process.env.CI) return;
|
|
20679
|
-
const current2 = true ? "2.61.
|
|
20691
|
+
const current2 = true ? "2.61.94" : null;
|
|
20680
20692
|
if (!current2) return;
|
|
20681
20693
|
const cache = readCache();
|
|
20682
20694
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -20693,7 +20705,7 @@ function checkForUpdates() {
|
|
|
20693
20705
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
20694
20706
|
if (process.env.CI) return;
|
|
20695
20707
|
if (!process.stdout.isTTY) return;
|
|
20696
|
-
const current2 = true ? "2.61.
|
|
20708
|
+
const current2 = true ? "2.61.94" : null;
|
|
20697
20709
|
if (!current2) return;
|
|
20698
20710
|
const cache = readCache();
|
|
20699
20711
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -20713,7 +20725,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
|
|
|
20713
20725
|
var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
|
|
20714
20726
|
var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
|
|
20715
20727
|
function currentCliVersion() {
|
|
20716
|
-
return true ? "2.61.
|
|
20728
|
+
return true ? "2.61.94" : null;
|
|
20717
20729
|
}
|
|
20718
20730
|
function runCmd(cmd, args2, timeoutMs) {
|
|
20719
20731
|
return new Promise((resolve9) => {
|
|
@@ -21209,6 +21221,7 @@ var HostAgentSupervisor = class {
|
|
|
21209
21221
|
this.heartbeatTimer = setInterval(() => void this.beat(), HEARTBEAT_INTERVAL_MS);
|
|
21210
21222
|
this.heartbeatTimer.unref?.();
|
|
21211
21223
|
this.resumePersistedSession();
|
|
21224
|
+
void ensureHeadroomProxyReady(makeRealProxySupervisorDeps()).catch(() => void 0);
|
|
21212
21225
|
void reportSessionEvent(
|
|
21213
21226
|
{ hostId: this.identity.hostId, hostToken: this.identity.hostToken },
|
|
21214
21227
|
{ event: "reconcile", activeDeployIds: this.activeSessions().map((s) => s.id) }
|
|
@@ -42470,7 +42483,7 @@ function checkChokidar() {
|
|
|
42470
42483
|
}
|
|
42471
42484
|
async function doctor(args2 = []) {
|
|
42472
42485
|
const json = args2.includes("--json");
|
|
42473
|
-
const cliVersion = true ? "2.61.
|
|
42486
|
+
const cliVersion = true ? "2.61.94" : "0.0.0-dev";
|
|
42474
42487
|
const apiBase2 = resolveApiBaseUrl();
|
|
42475
42488
|
const diagnosticId = (0, import_node_crypto13.randomUUID)();
|
|
42476
42489
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -42861,7 +42874,7 @@ async function mcpRun(args2) {
|
|
|
42861
42874
|
// src/commands/version.ts
|
|
42862
42875
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
42863
42876
|
function version2() {
|
|
42864
|
-
const v = true ? "2.61.
|
|
42877
|
+
const v = true ? "2.61.94" : "unknown";
|
|
42865
42878
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
42866
42879
|
}
|
|
42867
42880
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.61.
|
|
3
|
+
"version": "2.61.94",
|
|
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",
|