codeam-cli 2.61.94 → 2.61.95
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 +33 -14
- 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.94] — 2026-08-08
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **cli:** Harden Headroom proxy against resume death — accurate liveness + proactive boot relaunch (#604)
|
|
12
|
+
|
|
7
13
|
## [2.61.93] — 2026-08-08
|
|
8
14
|
|
|
9
15
|
### Fixed
|
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.95" : "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.95",
|
|
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",
|
|
@@ -9515,7 +9515,7 @@ var CommandRelayService = class _CommandRelayService {
|
|
|
9515
9515
|
// fresh + clear the "CLI update available" banner after a self-update
|
|
9516
9516
|
// (a codespace that reinstalls @latest reconnects via heartbeat, not
|
|
9517
9517
|
// pair/reconnect). Older backends ignore the extra field.
|
|
9518
|
-
..."2.61.
|
|
9518
|
+
..."2.61.95" ? { ideVersion: "2.61.95" } : {}
|
|
9519
9519
|
}).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
|
|
9520
9520
|
}
|
|
9521
9521
|
/**
|
|
@@ -20688,7 +20688,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
20688
20688
|
if (process.env.NODE_ENV === "test") return;
|
|
20689
20689
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
20690
20690
|
if (process.env.CI) return;
|
|
20691
|
-
const current2 = true ? "2.61.
|
|
20691
|
+
const current2 = true ? "2.61.95" : null;
|
|
20692
20692
|
if (!current2) return;
|
|
20693
20693
|
const cache = readCache();
|
|
20694
20694
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -20705,7 +20705,7 @@ function checkForUpdates() {
|
|
|
20705
20705
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
20706
20706
|
if (process.env.CI) return;
|
|
20707
20707
|
if (!process.stdout.isTTY) return;
|
|
20708
|
-
const current2 = true ? "2.61.
|
|
20708
|
+
const current2 = true ? "2.61.95" : null;
|
|
20709
20709
|
if (!current2) return;
|
|
20710
20710
|
const cache = readCache();
|
|
20711
20711
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -20725,7 +20725,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
|
|
|
20725
20725
|
var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
|
|
20726
20726
|
var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
|
|
20727
20727
|
function currentCliVersion() {
|
|
20728
|
-
return true ? "2.61.
|
|
20728
|
+
return true ? "2.61.95" : null;
|
|
20729
20729
|
}
|
|
20730
20730
|
function runCmd(cmd, args2, timeoutMs) {
|
|
20731
20731
|
return new Promise((resolve9) => {
|
|
@@ -32778,6 +32778,12 @@ function guardrailDecision(request, policy) {
|
|
|
32778
32778
|
return null;
|
|
32779
32779
|
}
|
|
32780
32780
|
|
|
32781
|
+
// src/agents/acp/modes.ts
|
|
32782
|
+
var FULL_AUTO_MODE_RE = /bypass|yolo|danger|full.?access|skip.?perm|auto.?approve/i;
|
|
32783
|
+
function modeIsFullAutoApprove(modeId) {
|
|
32784
|
+
return FULL_AUTO_MODE_RE.test(modeId);
|
|
32785
|
+
}
|
|
32786
|
+
|
|
32781
32787
|
// src/agents/acp/client.ts
|
|
32782
32788
|
var TRANSIENT_ADAPTER_SPAWN_RE = /ETXTBSY|ENOENT/;
|
|
32783
32789
|
var MAX_START_ATTEMPTS = 5;
|
|
@@ -33244,7 +33250,7 @@ var AcpClient = class {
|
|
|
33244
33250
|
* (`AcpHistory.switchActiveSession` + `onActiveSessionChanged`), exactly like
|
|
33245
33251
|
* the `resume_session` rail.
|
|
33246
33252
|
*/
|
|
33247
|
-
async newConversation() {
|
|
33253
|
+
async newConversation(opts) {
|
|
33248
33254
|
if (!this.connection) {
|
|
33249
33255
|
throw new Error("AcpClient.newConversation called before start()");
|
|
33250
33256
|
}
|
|
@@ -33253,6 +33259,21 @@ var AcpClient = class {
|
|
|
33253
33259
|
mcpServers: this.opts.mcpServers ?? []
|
|
33254
33260
|
});
|
|
33255
33261
|
this.sessionId = ns.sessionId;
|
|
33262
|
+
this.captureModelConfig(ns.configOptions ?? []);
|
|
33263
|
+
this.captureModes(ns.modes ?? null);
|
|
33264
|
+
if (opts?.ensureFullAutoMode && this.availableModes.length > 0) {
|
|
33265
|
+
const full = this.availableModes.find((m) => modeIsFullAutoApprove(m.id));
|
|
33266
|
+
if (full && this.currentModeId !== full.id) {
|
|
33267
|
+
try {
|
|
33268
|
+
await this.connection.setSessionMode({ sessionId: ns.sessionId, modeId: full.id });
|
|
33269
|
+
this.currentModeId = full.id;
|
|
33270
|
+
log.info("acpClient", `newConversation \u2192 re-asserted full-auto mode ${full.id}`);
|
|
33271
|
+
} catch (err) {
|
|
33272
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
33273
|
+
log.warn("acpClient", `newConversation \u2014 could not re-assert full-auto mode: ${msg}`);
|
|
33274
|
+
}
|
|
33275
|
+
}
|
|
33276
|
+
}
|
|
33256
33277
|
log.info("acpClient", `newConversation \u2190 ok sid=${ns.sessionId.slice(0, 8)}`);
|
|
33257
33278
|
return ns.sessionId;
|
|
33258
33279
|
}
|
|
@@ -35791,7 +35812,9 @@ function buildPackRunnerDeps(ctx) {
|
|
|
35791
35812
|
return {
|
|
35792
35813
|
driver: {
|
|
35793
35814
|
newConversation: async () => {
|
|
35794
|
-
const id = await ctx.client.newConversation(
|
|
35815
|
+
const id = await ctx.client.newConversation({
|
|
35816
|
+
ensureFullAutoMode: ctx.opts.autoApprovePermissions === true
|
|
35817
|
+
});
|
|
35795
35818
|
ctx.history.switchActiveSession(id);
|
|
35796
35819
|
ctx.onActiveSessionChanged?.(id);
|
|
35797
35820
|
return id;
|
|
@@ -36439,10 +36462,6 @@ async function listModesH(ctx) {
|
|
|
36439
36462
|
});
|
|
36440
36463
|
return;
|
|
36441
36464
|
}
|
|
36442
|
-
var FULL_AUTO_MODE_RE = /bypass|yolo|danger|full.?access|skip.?perm|auto.?approve/i;
|
|
36443
|
-
function modeIsFullAutoApprove(modeId) {
|
|
36444
|
-
return FULL_AUTO_MODE_RE.test(modeId);
|
|
36445
|
-
}
|
|
36446
36465
|
async function setModeH(ctx) {
|
|
36447
36466
|
const { cmd, client: client3, relay, opts } = ctx;
|
|
36448
36467
|
const payload = cmd.payload;
|
|
@@ -42483,7 +42502,7 @@ function checkChokidar() {
|
|
|
42483
42502
|
}
|
|
42484
42503
|
async function doctor(args2 = []) {
|
|
42485
42504
|
const json = args2.includes("--json");
|
|
42486
|
-
const cliVersion = true ? "2.61.
|
|
42505
|
+
const cliVersion = true ? "2.61.95" : "0.0.0-dev";
|
|
42487
42506
|
const apiBase2 = resolveApiBaseUrl();
|
|
42488
42507
|
const diagnosticId = (0, import_node_crypto13.randomUUID)();
|
|
42489
42508
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -42874,7 +42893,7 @@ async function mcpRun(args2) {
|
|
|
42874
42893
|
// src/commands/version.ts
|
|
42875
42894
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
42876
42895
|
function version2() {
|
|
42877
|
-
const v = true ? "2.61.
|
|
42896
|
+
const v = true ? "2.61.95" : "unknown";
|
|
42878
42897
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
42879
42898
|
}
|
|
42880
42899
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.61.
|
|
3
|
+
"version": "2.61.95",
|
|
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",
|