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 +6 -0
- package/dist/index.js +28 -20
- 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.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.
|
|
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
|
-
|
|
5824
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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",
|