codeam-cli 2.12.4 → 2.12.5

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,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.12.4] — 2026-05-14
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Report the real agent id/name/icon to /api/plugin/agents
12
+
7
13
  ## [2.12.3] — 2026-05-14
8
14
 
9
15
  ### Fixed
package/dist/index.js CHANGED
@@ -1682,7 +1682,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
1682
1682
  // package.json
1683
1683
  var package_default = {
1684
1684
  name: "codeam-cli",
1685
- version: "2.12.4",
1685
+ version: "2.12.5",
1686
1686
  description: "Remote control Claude Code (and other AI coding agents) from your mobile phone. Pair your device, send prompts, stream responses in real-time, and approve commands \u2014 from anywhere.",
1687
1687
  type: "commonjs",
1688
1688
  main: "dist/index.js",
@@ -5801,40 +5801,48 @@ function getCurrentUsage2(historyDir) {
5801
5801
 
5802
5802
  // src/agents/codex/parsing.ts
5803
5803
  var BOX_DRAW_RE = /^[╭─╮│╰╯]/u;
5804
+ var BULLET_CHARS = "\u2022\xB7\u2027\u2219\u22C5";
5805
+ var CODEX_AGENT_REPLY_RE = new RegExp(`^[${BULLET_CHARS}]\\s`, "u");
5806
+ var STRIP_BULLET_RE = new RegExp(`^(\\s*)[${BULLET_CHARS}]\\s`, "u");
5804
5807
  var CODEX_USER_ECHO_RE = /^[›>]\s+\S/u;
5805
- var CODEX_AGENT_REPLY_RE = /^[•·]\s/u;
5806
5808
  var TIP_RE = /^\s*Tip:\s/i;
5807
5809
  var LEARN_MORE_RE = /^\s*Learn more:\s/i;
5808
5810
  var CODEX_STATUS_FOOTER_RE = /\bdefault\s+[·•]\s+\S+/i;
5811
+ var CODEAM_BANNER_RES = [
5812
+ // Bullet-prefixed banner entries (any role / launch label).
5813
+ new RegExp(`^[${BULLET_CHARS}]\\s+(Launching|Edgar|PRO|FREE|ENTERPRISE)\\b`, "i"),
5814
+ /^Paired\b/,
5815
+ /^codeam\b\s+v\d/,
5816
+ /^✓\s+Paired/,
5817
+ /^◇\s+Paired/
5818
+ ];
5809
5819
  function filterCodexChrome(lines) {
5810
5820
  const out = [];
5811
- let skipEchoContinuation = false;
5812
5821
  for (const line of lines) {
5813
5822
  const t2 = line.trimEnd();
5814
5823
  const trimmed = t2.trimStart();
5815
- if (!trimmed) {
5816
- skipEchoContinuation = false;
5817
- continue;
5818
- }
5824
+ if (!trimmed) continue;
5819
5825
  if (BOX_DRAW_RE.test(trimmed)) continue;
5820
5826
  if (/^OpenAI Codex\b/i.test(trimmed) || /^>_\s+OpenAI Codex\b/i.test(trimmed) || /^model:\s/i.test(trimmed) || /^directory:\s/i.test(trimmed)) continue;
5821
5827
  if (TIP_RE.test(t2) || LEARN_MORE_RE.test(t2)) continue;
5822
- if (CODEX_STATUS_FOOTER_RE.test(trimmed)) {
5823
- skipEchoContinuation = false;
5824
- continue;
5825
- }
5828
+ if (CODEX_STATUS_FOOTER_RE.test(trimmed)) continue;
5829
+ if (CODEAM_BANNER_RES.some((re2) => re2.test(trimmed))) continue;
5830
+ if (CODEX_USER_ECHO_RE.test(trimmed)) continue;
5826
5831
  if (CODEX_AGENT_REPLY_RE.test(trimmed)) {
5827
- skipEchoContinuation = false;
5828
- out.push(t2.replace(/^(\s*)[•·]\s/, "$1"));
5832
+ out.push(t2.replace(STRIP_BULLET_RE, "$1"));
5829
5833
  continue;
5830
5834
  }
5831
- if (CODEX_USER_ECHO_RE.test(trimmed)) {
5832
- skipEchoContinuation = true;
5833
- continue;
5834
- }
5835
- if (skipEchoContinuation) continue;
5836
5835
  out.push(t2);
5837
5836
  }
5837
+ log.trace("codex-parse", `filterCodexChrome in=${lines.length} out=${out.length}`);
5838
+ if (process.env.CODEAM_DEBUG === "1") {
5839
+ const sampleIn = lines.slice(-40).map((l, i) => ` in[${i}] ${JSON.stringify(l)}`).join("\n");
5840
+ const sampleOut = out.map((l, i) => ` out[${i}] ${JSON.stringify(l)}`).join("\n");
5841
+ log.debug("codex-parse", `
5842
+ ${sampleIn}
5843
+ ---
5844
+ ${sampleOut}`);
5845
+ }
5838
5846
  return out;
5839
5847
  }
5840
5848
  function parseCodexChrome(_line) {
@@ -10127,7 +10135,7 @@ async function stopWorkspaceFromLocal(target) {
10127
10135
  // src/commands/version.ts
10128
10136
  var import_picocolors11 = __toESM(require("picocolors"));
10129
10137
  function version() {
10130
- const v = true ? "2.12.4" : "unknown";
10138
+ const v = true ? "2.12.5" : "unknown";
10131
10139
  console.log(`${import_picocolors11.default.bold("codeam-cli")} ${import_picocolors11.default.cyan(v)}`);
10132
10140
  }
10133
10141
 
@@ -10262,7 +10270,7 @@ function checkForUpdates() {
10262
10270
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
10263
10271
  if (process.env.CI) return;
10264
10272
  if (!process.stdout.isTTY) return;
10265
- const current = true ? "2.12.4" : null;
10273
+ const current = true ? "2.12.5" : null;
10266
10274
  if (!current) return;
10267
10275
  const cache = readCache();
10268
10276
  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.12.4",
3
+ "version": "2.12.5",
4
4
  "description": "Remote control Claude Code (and other AI coding agents) from your mobile phone. Pair your device, send prompts, stream responses in real-time, and approve commands — from anywhere.",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",