codeam-cli 2.39.28 → 2.39.29
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 +40 -5
- 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.28] — 2026-06-18
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **cli,vsc-plugin,jetbrains-plugin:** Add show_install_command relay handler (#355)
|
|
12
|
+
|
|
7
13
|
## [2.39.27] — 2026-06-17
|
|
8
14
|
|
|
9
15
|
### Added
|
package/dist/index.js
CHANGED
|
@@ -498,7 +498,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
|
|
|
498
498
|
// package.json
|
|
499
499
|
var package_default = {
|
|
500
500
|
name: "codeam-cli",
|
|
501
|
-
version: "2.39.
|
|
501
|
+
version: "2.39.29",
|
|
502
502
|
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.",
|
|
503
503
|
type: "commonjs",
|
|
504
504
|
main: "dist/index.js",
|
|
@@ -5908,7 +5908,7 @@ function readAnonId() {
|
|
|
5908
5908
|
}
|
|
5909
5909
|
function superProperties() {
|
|
5910
5910
|
return {
|
|
5911
|
-
cliVersion: true ? "2.39.
|
|
5911
|
+
cliVersion: true ? "2.39.29" : "0.0.0-dev",
|
|
5912
5912
|
nodeVersion: process.version,
|
|
5913
5913
|
platform: process.platform,
|
|
5914
5914
|
arch: process.arch,
|
|
@@ -26302,6 +26302,25 @@ async function unsealAgentAuth(identity, sealedAgentAuth) {
|
|
|
26302
26302
|
}
|
|
26303
26303
|
return data;
|
|
26304
26304
|
}
|
|
26305
|
+
var PROGRESS_TIMEOUT_MS = 3e3;
|
|
26306
|
+
async function reportProgress(auth, step, message) {
|
|
26307
|
+
try {
|
|
26308
|
+
const controller = new AbortController();
|
|
26309
|
+
const timer = setTimeout(() => controller.abort(), PROGRESS_TIMEOUT_MS);
|
|
26310
|
+
timer.unref?.();
|
|
26311
|
+
try {
|
|
26312
|
+
await fetch(`${apiBase()}/api/self-hosted/enroll-progress`, {
|
|
26313
|
+
method: "POST",
|
|
26314
|
+
headers: { "Content-Type": "application/json", ...vercelBypassHeader() },
|
|
26315
|
+
body: JSON.stringify({ ...auth, step, message }),
|
|
26316
|
+
signal: controller.signal
|
|
26317
|
+
});
|
|
26318
|
+
} finally {
|
|
26319
|
+
clearTimeout(timer);
|
|
26320
|
+
}
|
|
26321
|
+
} catch {
|
|
26322
|
+
}
|
|
26323
|
+
}
|
|
26305
26324
|
|
|
26306
26325
|
// src/commands/host.ts
|
|
26307
26326
|
function readTokenFlag(args2) {
|
|
@@ -26504,6 +26523,8 @@ var HostAgentSupervisor = class {
|
|
|
26504
26523
|
resolveAgentAuth;
|
|
26505
26524
|
relay = null;
|
|
26506
26525
|
heartbeatTimer = null;
|
|
26526
|
+
/** Guards the one-shot 'connected' telemetry on the first heartbeat. */
|
|
26527
|
+
reportedConnected = false;
|
|
26507
26528
|
/** Open the control channel (reusing the relay) + start heartbeats. */
|
|
26508
26529
|
start() {
|
|
26509
26530
|
const make = this.deps.makeRelay ?? ((pluginId, onCommand, meta) => new CommandRelayService(pluginId, onCommand, meta));
|
|
@@ -26536,6 +26557,14 @@ var HostAgentSupervisor = class {
|
|
|
26536
26557
|
async beat() {
|
|
26537
26558
|
try {
|
|
26538
26559
|
await sendHostHeartbeat(this.identity);
|
|
26560
|
+
if (!this.reportedConnected) {
|
|
26561
|
+
this.reportedConnected = true;
|
|
26562
|
+
void reportProgress(
|
|
26563
|
+
{ hostId: this.identity.hostId, hostToken: this.identity.hostToken },
|
|
26564
|
+
"connected",
|
|
26565
|
+
"host-agent connected"
|
|
26566
|
+
);
|
|
26567
|
+
}
|
|
26539
26568
|
} catch (err) {
|
|
26540
26569
|
log.trace("host-agent", "heartbeat failed", err);
|
|
26541
26570
|
}
|
|
@@ -26642,8 +26671,14 @@ async function resolveHostIdentity(enrollToken) {
|
|
|
26642
26671
|
const existing = loadHostIdentity();
|
|
26643
26672
|
if (existing) return existing;
|
|
26644
26673
|
if (!enrollToken) return null;
|
|
26674
|
+
await reportProgress({ enrollToken }, "redeeming", "redeeming enrollment token\u2026");
|
|
26645
26675
|
const identity = await redeemEnrollToken(enrollToken);
|
|
26646
26676
|
saveHostIdentity(identity);
|
|
26677
|
+
await reportProgress(
|
|
26678
|
+
{ hostId: identity.hostId, hostToken: identity.hostToken },
|
|
26679
|
+
"enrolled",
|
|
26680
|
+
"host enrolled"
|
|
26681
|
+
);
|
|
26647
26682
|
return identity;
|
|
26648
26683
|
}
|
|
26649
26684
|
async function hostAgent(args2 = []) {
|
|
@@ -26840,7 +26875,7 @@ function checkChokidar() {
|
|
|
26840
26875
|
}
|
|
26841
26876
|
async function doctor(args2 = []) {
|
|
26842
26877
|
const json = args2.includes("--json");
|
|
26843
|
-
const cliVersion = true ? "2.39.
|
|
26878
|
+
const cliVersion = true ? "2.39.29" : "0.0.0-dev";
|
|
26844
26879
|
const apiBase2 = resolveApiBaseUrl();
|
|
26845
26880
|
const diagnosticId = (0, import_node_crypto8.randomUUID)();
|
|
26846
26881
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -27039,7 +27074,7 @@ async function completion(args2) {
|
|
|
27039
27074
|
// src/commands/version.ts
|
|
27040
27075
|
var import_picocolors13 = __toESM(require("picocolors"));
|
|
27041
27076
|
function version2() {
|
|
27042
|
-
const v = true ? "2.39.
|
|
27077
|
+
const v = true ? "2.39.29" : "unknown";
|
|
27043
27078
|
console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
|
|
27044
27079
|
}
|
|
27045
27080
|
|
|
@@ -27325,7 +27360,7 @@ function checkForUpdates() {
|
|
|
27325
27360
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
27326
27361
|
if (process.env.CI) return;
|
|
27327
27362
|
if (!process.stdout.isTTY) return;
|
|
27328
|
-
const current = true ? "2.39.
|
|
27363
|
+
const current = true ? "2.39.29" : null;
|
|
27329
27364
|
if (!current) return;
|
|
27330
27365
|
const cache = readCache();
|
|
27331
27366
|
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.29",
|
|
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",
|