codeam-cli 2.35.4 → 2.35.6

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,18 @@ 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.35.5] — 2026-06-10
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Make @beads/bd an optional dependency (#311)
12
+
13
+ ## [2.35.4] — 2026-06-10
14
+
15
+ ### Fixed
16
+
17
+ - **cli:** Make ACP prompt timeout idle-based, not total-elapsed (#310)
18
+
7
19
  ## [2.35.3] — 2026-06-10
8
20
 
9
21
  ### Fixed
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.35.4",
501
+ version: "2.35.6",
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",
@@ -569,7 +569,6 @@ var package_default = {
569
569
  },
570
570
  dependencies: {
571
571
  "@agentclientprotocol/claude-agent-acp": "^0.42.0",
572
- "@beads/bd": "1.0.5",
573
572
  "@agentclientprotocol/codex-acp": "^0.0.45",
574
573
  "@agentclientprotocol/sdk": "^0.25.0",
575
574
  "@clack/prompts": "^1.2.0",
@@ -581,6 +580,9 @@ var package_default = {
581
580
  ws: "^8.18.0",
582
581
  zod: "^4.3.6"
583
582
  },
583
+ optionalDependencies: {
584
+ "@beads/bd": "1.0.5"
585
+ },
584
586
  devDependencies: {
585
587
  "@codeagent/shared": "*",
586
588
  "@types/node": "^22.0.0",
@@ -5898,7 +5900,7 @@ function readAnonId() {
5898
5900
  }
5899
5901
  function superProperties() {
5900
5902
  return {
5901
- cliVersion: true ? "2.35.4" : "0.0.0-dev",
5903
+ cliVersion: true ? "2.35.6" : "0.0.0-dev",
5902
5904
  nodeVersion: process.version,
5903
5905
  platform: process.platform,
5904
5906
  arch: process.arch,
@@ -21102,7 +21104,7 @@ async function handleCommand(cmd, client2, relay, acpSessionId, models, streamin
21102
21104
  log.info("acpRunner", `start_task \u2190 done stopReason=${reply.stopReason ?? "?"} id=${cmd.id.slice(0, 8)}`);
21103
21105
  await relay.sendResult(cmd.id, "completed", { stopReason: reply.stopReason });
21104
21106
  } catch (err) {
21105
- await streaming.closeAll();
21107
+ await recoverFromFailedTurn(client2, streaming);
21106
21108
  log.warn("acpRunner", `prompt failed: ${describeError(err)}`);
21107
21109
  await relay.sendResult(cmd.id, "failed", { error: describeError(err) });
21108
21110
  }
@@ -21159,7 +21161,7 @@ async function handleCommand(cmd, client2, relay, acpSessionId, models, streamin
21159
21161
  void history.flush();
21160
21162
  await relay.sendResult(cmd.id, "completed", { stopReason: reply.stopReason });
21161
21163
  } catch (err) {
21162
- await streaming.closeAll();
21164
+ await recoverFromFailedTurn(client2, streaming);
21163
21165
  log.warn("acpRunner", `reprompt failed: ${describeError(err)}`);
21164
21166
  await relay.sendResult(cmd.id, "failed", { error: describeError(err) });
21165
21167
  }
@@ -21197,7 +21199,7 @@ async function handleCommand(cmd, client2, relay, acpSessionId, models, streamin
21197
21199
  });
21198
21200
  await relay.sendResult(cmd.id, "completed", { stopReason: reply.stopReason });
21199
21201
  } catch (err) {
21200
- await streaming.closeAll();
21202
+ await recoverFromFailedTurn(client2, streaming);
21201
21203
  log.warn("acpRunner", `provide_input failed: ${describeError(err)}`);
21202
21204
  await relay.sendResult(cmd.id, "failed", { error: describeError(err) });
21203
21205
  }
@@ -21260,7 +21262,7 @@ async function handleCommand(cmd, client2, relay, acpSessionId, models, streamin
21260
21262
  });
21261
21263
  await relay.sendResult(cmd.id, "completed", { stopReason: reply.stopReason });
21262
21264
  } catch (err) {
21263
- await streaming.closeAll();
21265
+ await recoverFromFailedTurn(client2, streaming);
21264
21266
  log.warn("acpRunner", `summarize failed: ${describeError(err)}`);
21265
21267
  await relay.sendResult(cmd.id, "failed", { error: describeError(err) });
21266
21268
  }
@@ -21358,6 +21360,14 @@ function describeError(err) {
21358
21360
  if (err instanceof Error) return err.message;
21359
21361
  return String(err);
21360
21362
  }
21363
+ async function recoverFromFailedTurn(client2, streaming) {
21364
+ try {
21365
+ await client2.cancel();
21366
+ } catch (err) {
21367
+ log.warn("acpRunner", `post-failure cancel failed: ${describeError(err)}`);
21368
+ }
21369
+ await streaming.closeAll();
21370
+ }
21361
21371
  function buildBannerSubtitle(agentId, acpSessionId, model, tier) {
21362
21372
  const meta = AGENT_REGISTRY[agentId];
21363
21373
  const displayName = meta?.displayName ?? agentId;
@@ -26096,7 +26106,7 @@ function checkChokidar() {
26096
26106
  }
26097
26107
  async function doctor(args2 = []) {
26098
26108
  const json = args2.includes("--json");
26099
- const cliVersion = true ? "2.35.4" : "0.0.0-dev";
26109
+ const cliVersion = true ? "2.35.6" : "0.0.0-dev";
26100
26110
  const apiBase = resolveApiBaseUrl();
26101
26111
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
26102
26112
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -26295,7 +26305,7 @@ async function completion(args2) {
26295
26305
  // src/commands/version.ts
26296
26306
  var import_picocolors13 = __toESM(require("picocolors"));
26297
26307
  function version2() {
26298
- const v = true ? "2.35.4" : "unknown";
26308
+ const v = true ? "2.35.6" : "unknown";
26299
26309
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
26300
26310
  }
26301
26311
 
@@ -26581,7 +26591,7 @@ function checkForUpdates() {
26581
26591
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
26582
26592
  if (process.env.CI) return;
26583
26593
  if (!process.stdout.isTTY) return;
26584
- const current = true ? "2.35.4" : null;
26594
+ const current = true ? "2.35.6" : null;
26585
26595
  if (!current) return;
26586
26596
  const cache = readCache();
26587
26597
  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.35.4",
3
+ "version": "2.35.6",
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",
@@ -71,7 +71,6 @@
71
71
  },
72
72
  "dependencies": {
73
73
  "@agentclientprotocol/claude-agent-acp": "^0.42.0",
74
- "@beads/bd": "1.0.5",
75
74
  "@agentclientprotocol/codex-acp": "^0.0.45",
76
75
  "@agentclientprotocol/sdk": "^0.25.0",
77
76
  "@clack/prompts": "^1.2.0",
@@ -83,6 +82,9 @@
83
82
  "ws": "^8.18.0",
84
83
  "zod": "^4.3.6"
85
84
  },
85
+ "optionalDependencies": {
86
+ "@beads/bd": "1.0.5"
87
+ },
86
88
  "devDependencies": {
87
89
  "@codeagent/shared": "*",
88
90
  "@types/node": "^22.0.0",