codeam-cli 2.26.1 → 2.26.2

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,13 @@ 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.26.1] — 2026-06-03
8
+
9
+ ### Fixed
10
+
11
+ - **workflow:** Drop stray `if-no-files-found: error` line from api-v2 dispatch step (#233)
12
+ - **vsc-plugin:** Event-driven AgentOutputMonitor + auth guard on output push (#234)
13
+
7
14
  ## [2.26.0] — 2026-06-03
8
15
 
9
16
  ### Added
package/dist/index.js CHANGED
@@ -472,7 +472,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
472
472
  // package.json
473
473
  var package_default = {
474
474
  name: "codeam-cli",
475
- version: "2.26.1",
475
+ version: "2.26.2",
476
476
  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.",
477
477
  type: "commonjs",
478
478
  main: "dist/index.js",
@@ -5829,7 +5829,7 @@ function readAnonId() {
5829
5829
  }
5830
5830
  function superProperties() {
5831
5831
  return {
5832
- cliVersion: true ? "2.26.1" : "0.0.0-dev",
5832
+ cliVersion: true ? "2.26.2" : "0.0.0-dev",
5833
5833
  nodeVersion: process.version,
5834
5834
  platform: process.platform,
5835
5835
  arch: process.arch,
@@ -11649,6 +11649,37 @@ var ChromeStepTracker = class {
11649
11649
  var https3 = __toESM(require("https"));
11650
11650
  var http3 = __toESM(require("http"));
11651
11651
  var API_BASE3 = resolveApiBaseUrl();
11652
+ async function refreshAuthToken(sessionId, pluginId) {
11653
+ try {
11654
+ const { statusCode, body } = await _transport2.post(
11655
+ `${API_BASE3}/api/pairing/reconnect`,
11656
+ {
11657
+ "Content-Type": "application/json",
11658
+ "X-Codeam-Protocol-Version": PROTOCOL_VERSION,
11659
+ ...vercelBypassHeader()
11660
+ },
11661
+ JSON.stringify({ sessionId, pluginId })
11662
+ );
11663
+ if (statusCode === 404) {
11664
+ log.warn("chunkEmitter", "[auth] reconnect 404 \u2014 session gone server-side");
11665
+ return null;
11666
+ }
11667
+ if (statusCode >= 400) {
11668
+ log.warn("chunkEmitter", `[auth] reconnect failed status=${statusCode}`);
11669
+ return null;
11670
+ }
11671
+ const parsed = JSON.parse(body);
11672
+ const fresh = parsed.data?.pluginAuthToken;
11673
+ if (typeof fresh !== "string" || fresh.length === 0) {
11674
+ log.warn("chunkEmitter", "[auth] reconnect response missing pluginAuthToken");
11675
+ return null;
11676
+ }
11677
+ return fresh;
11678
+ } catch (err) {
11679
+ log.warn("chunkEmitter", `[auth] reconnect threw: ${String(err)}`);
11680
+ return null;
11681
+ }
11682
+ }
11652
11683
  var ChunkEmitter = class {
11653
11684
  constructor(opts) {
11654
11685
  this.opts = opts;
@@ -11693,6 +11724,23 @@ var ChunkEmitter = class {
11693
11724
  resolve5({ dead: true });
11694
11725
  return;
11695
11726
  }
11727
+ if (statusCode === 401) {
11728
+ log.warn("chunkEmitter", `auth 401 took=${tookMs}ms \u2014 attempting silent refresh`);
11729
+ void (async () => {
11730
+ const fresh = await refreshAuthToken(this.opts.sessionId, this.opts.pluginId);
11731
+ if (fresh) {
11732
+ this.headers["X-Plugin-Auth-Token"] = fresh;
11733
+ this.opts.pluginAuthToken = fresh;
11734
+ log.info("chunkEmitter", "auth refreshed silently");
11735
+ if (attemptsLeft > 0 || opts.critical) {
11736
+ attempt(Math.max(attemptsLeft, 1));
11737
+ return;
11738
+ }
11739
+ }
11740
+ resolve5({ dead: false });
11741
+ })();
11742
+ return;
11743
+ }
11696
11744
  if (statusCode >= 400) {
11697
11745
  log.warn("chunkEmitter", `api-error status=${statusCode} took=${tookMs}ms body=${resBody.slice(0, 200)}`);
11698
11746
  process.stderr.write(`[codeam] output API error ${statusCode}: ${resBody}
@@ -19876,7 +19924,7 @@ function checkChokidar() {
19876
19924
  }
19877
19925
  async function doctor(args2 = []) {
19878
19926
  const json = args2.includes("--json");
19879
- const cliVersion = true ? "2.26.1" : "0.0.0-dev";
19927
+ const cliVersion = true ? "2.26.2" : "0.0.0-dev";
19880
19928
  const apiBase = resolveApiBaseUrl();
19881
19929
  const diagnosticId = (0, import_node_crypto6.randomUUID)();
19882
19930
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -20075,7 +20123,7 @@ async function completion(args2) {
20075
20123
  // src/commands/version.ts
20076
20124
  var import_picocolors13 = __toESM(require("picocolors"));
20077
20125
  function version2() {
20078
- const v = true ? "2.26.1" : "unknown";
20126
+ const v = true ? "2.26.2" : "unknown";
20079
20127
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
20080
20128
  }
20081
20129
 
@@ -20303,7 +20351,7 @@ function checkForUpdates() {
20303
20351
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
20304
20352
  if (process.env.CI) return;
20305
20353
  if (!process.stdout.isTTY) return;
20306
- const current = true ? "2.26.1" : null;
20354
+ const current = true ? "2.26.2" : null;
20307
20355
  if (!current) return;
20308
20356
  const cache = readCache();
20309
20357
  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.26.1",
3
+ "version": "2.26.2",
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",