codeam-cli 2.36.2 → 2.36.4

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.36.3] — 2026-06-11
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** AUTO mode in codespaces — auto-approve ACP permission requests
12
+
13
+ ## [2.36.2] — 2026-06-11
14
+
15
+ ### Fixed
16
+
17
+ - **cli:** Drop BEADS_DIR so shared-server resolves the workspace from cwd
18
+
7
19
  ## [2.36.1] — 2026-06-11
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.36.2",
501
+ version: "2.36.4",
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",
@@ -5900,7 +5900,7 @@ function readAnonId() {
5900
5900
  }
5901
5901
  function superProperties() {
5902
5902
  return {
5903
- cliVersion: true ? "2.36.2" : "0.0.0-dev",
5903
+ cliVersion: true ? "2.36.4" : "0.0.0-dev",
5904
5904
  nodeVersion: process.version,
5905
5905
  platform: process.platform,
5906
5906
  arch: process.arch,
@@ -17993,6 +17993,8 @@ var _provisionSeam = {
17993
17993
  installDolt,
17994
17994
  /** No-sudo fallback: extract the dolt tarball/zip into a user-writable dir. */
17995
17995
  installDoltToDir,
17996
+ /** Async sleep — behind the seam so the spawn-retry backoff is instant in tests. */
17997
+ sleep: (ms) => new Promise((r) => setTimeout(r, ms)),
17996
17998
  // Probe dolt on PATH AND auto-prepend a known install dir if found off-PATH
17997
17999
  // (codespace: official install.sh drops dolt in /usr/local/bin, which the
17998
18000
  // bundled-node CLI's PATH can omit — mirrors the bd-on-PATH symlink fix).
@@ -18192,7 +18194,15 @@ async function setupAgents(bd, agents) {
18192
18194
  continue;
18193
18195
  }
18194
18196
  log.info("beads", `wiring agent natively: bd setup ${recipe} --global`);
18195
- const setup = await bd.run(["setup", recipe, "--global"]);
18197
+ let setup = await bd.run(["setup", recipe, "--global"]);
18198
+ for (let attempt = 1; setup.code === -1 && attempt <= 2; attempt++) {
18199
+ log.info(
18200
+ "beads",
18201
+ `bd setup ${recipe} --global spawn failed (transient: ${setup.stderr.slice(0, 80)}) \u2014 retry ${attempt}/2`
18202
+ );
18203
+ await _provisionSeam.sleep(1500);
18204
+ setup = await bd.run(["setup", recipe, "--global"]);
18205
+ }
18196
18206
  if (setup.code === 0) {
18197
18207
  wired.push(recipe);
18198
18208
  } else {
@@ -21143,6 +21153,9 @@ var StreamingState = class {
21143
21153
  }
21144
21154
  };
21145
21155
  var PERMISSION_TIMEOUT_MS = 5 * 60 * 1e3;
21156
+ function pickAllowOption(options) {
21157
+ return options.find((o) => o.kind === "allow_always") ?? options.find((o) => o.kind === "allow_once") ?? null;
21158
+ }
21146
21159
  var AcpHistory = class {
21147
21160
  constructor(publisher, opts) {
21148
21161
  this.publisher = publisher;
@@ -21252,6 +21265,17 @@ async function runAcpSession(opts) {
21252
21265
  }
21253
21266
  },
21254
21267
  onRequestPermission: async (request) => {
21268
+ if (opts.autoApprovePermissions) {
21269
+ const allow = pickAllowOption(request.options);
21270
+ if (allow) {
21271
+ log.info(
21272
+ "acpRunner",
21273
+ `AUTO mode \u2014 auto-approving permission (${allow.kind}) optionId=${allow.optionId}`
21274
+ );
21275
+ return { outcome: { outcome: "selected", optionId: allow.optionId } };
21276
+ }
21277
+ log.warn("acpRunner", "AUTO mode \u2014 no allow option offered; falling back to interactive");
21278
+ }
21255
21279
  const { event, optionIdByLabel } = mapPermissionRequest(request);
21256
21280
  await publisher.publishAwaitingAnswer(event);
21257
21281
  return streaming.registerPermission({
@@ -23525,7 +23549,11 @@ async function start(requestedAgent) {
23525
23549
  pluginAuthToken: session.pluginAuthToken,
23526
23550
  adapter,
23527
23551
  cwd,
23528
- getBeads
23552
+ getBeads,
23553
+ // AUTO mode in a headless GitHub Codespace: no human at the phone to
23554
+ // answer permission prompts, so auto-approve them rather than stall the
23555
+ // turn (the agent-agnostic equivalent of --dangerously-skip-permissions).
23556
+ autoApprovePermissions: process.env.CODESPACES === "true"
23529
23557
  });
23530
23558
  return;
23531
23559
  }
@@ -26473,7 +26501,7 @@ function checkChokidar() {
26473
26501
  }
26474
26502
  async function doctor(args2 = []) {
26475
26503
  const json = args2.includes("--json");
26476
- const cliVersion = true ? "2.36.2" : "0.0.0-dev";
26504
+ const cliVersion = true ? "2.36.4" : "0.0.0-dev";
26477
26505
  const apiBase = resolveApiBaseUrl();
26478
26506
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
26479
26507
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -26672,7 +26700,7 @@ async function completion(args2) {
26672
26700
  // src/commands/version.ts
26673
26701
  var import_picocolors13 = __toESM(require("picocolors"));
26674
26702
  function version2() {
26675
- const v = true ? "2.36.2" : "unknown";
26703
+ const v = true ? "2.36.4" : "unknown";
26676
26704
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
26677
26705
  }
26678
26706
 
@@ -26958,7 +26986,7 @@ function checkForUpdates() {
26958
26986
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
26959
26987
  if (process.env.CI) return;
26960
26988
  if (!process.stdout.isTTY) return;
26961
- const current = true ? "2.36.2" : null;
26989
+ const current = true ? "2.36.4" : null;
26962
26990
  if (!current) return;
26963
26991
  const cache = readCache();
26964
26992
  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.36.2",
3
+ "version": "2.36.4",
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",