codeam-cli 2.12.2 → 2.12.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 +13 -0
- package/dist/index.js +17 -8
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,19 @@ 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.3] — 2026-05-14
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **cli:** Drop the Codex bottom status footer + accept · as agent-reply prefix
|
|
12
|
+
|
|
13
|
+
## [2.12.2] — 2026-05-14
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- **cli:** Per-agent TUI parsers — Codex uses • for replies (same glyph as Claude tool calls)
|
|
18
|
+
- **cli,shared,vsc-plugin:** Move Claude TUI parsers out of shared into the Claude strategy
|
|
19
|
+
|
|
7
20
|
## [2.12.1] — 2026-05-14
|
|
8
21
|
|
|
9
22
|
### 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.4",
|
|
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",
|
|
@@ -2037,12 +2037,14 @@ var log = {
|
|
|
2037
2037
|
// src/services/command-relay.service.ts
|
|
2038
2038
|
var API_BASE2 = process.env.CODEAM_API_URL ?? "https://codeagent-mobile-api.vercel.app";
|
|
2039
2039
|
var CommandRelayService = class {
|
|
2040
|
-
constructor(pluginId, onCommand) {
|
|
2040
|
+
constructor(pluginId, onCommand, agentMeta) {
|
|
2041
2041
|
this.pluginId = pluginId;
|
|
2042
2042
|
this.onCommand = onCommand;
|
|
2043
|
+
this.agentMeta = agentMeta;
|
|
2043
2044
|
}
|
|
2044
2045
|
pluginId;
|
|
2045
2046
|
onCommand;
|
|
2047
|
+
agentMeta;
|
|
2046
2048
|
_running = false;
|
|
2047
2049
|
heartbeatTimer = null;
|
|
2048
2050
|
agentsTimer = null;
|
|
@@ -2229,9 +2231,11 @@ var CommandRelayService = class {
|
|
|
2229
2231
|
}).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
|
|
2230
2232
|
}
|
|
2231
2233
|
reportAgents() {
|
|
2234
|
+
const id = this.agentMeta?.id ?? "claude";
|
|
2235
|
+
const name = this.agentMeta?.displayName ?? "Claude Code";
|
|
2232
2236
|
_postJson(`${API_BASE2}/api/plugin/agents`, {
|
|
2233
2237
|
pluginId: this.pluginId,
|
|
2234
|
-
agents: [{ id
|
|
2238
|
+
agents: [{ id, name, icon: id, installed: true }]
|
|
2235
2239
|
}).then(() => {
|
|
2236
2240
|
this.agentsRegistered = true;
|
|
2237
2241
|
}).catch(() => {
|
|
@@ -5798,9 +5802,10 @@ function getCurrentUsage2(historyDir) {
|
|
|
5798
5802
|
// src/agents/codex/parsing.ts
|
|
5799
5803
|
var BOX_DRAW_RE = /^[╭─╮│╰╯]/u;
|
|
5800
5804
|
var CODEX_USER_ECHO_RE = /^[›>]\s+\S/u;
|
|
5801
|
-
var CODEX_AGENT_REPLY_RE =
|
|
5805
|
+
var CODEX_AGENT_REPLY_RE = /^[•·]\s/u;
|
|
5802
5806
|
var TIP_RE = /^\s*Tip:\s/i;
|
|
5803
5807
|
var LEARN_MORE_RE = /^\s*Learn more:\s/i;
|
|
5808
|
+
var CODEX_STATUS_FOOTER_RE = /\bdefault\s+[·•]\s+\S+/i;
|
|
5804
5809
|
function filterCodexChrome(lines) {
|
|
5805
5810
|
const out = [];
|
|
5806
5811
|
let skipEchoContinuation = false;
|
|
@@ -5814,9 +5819,13 @@ function filterCodexChrome(lines) {
|
|
|
5814
5819
|
if (BOX_DRAW_RE.test(trimmed)) continue;
|
|
5815
5820
|
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;
|
|
5816
5821
|
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
|
+
}
|
|
5817
5826
|
if (CODEX_AGENT_REPLY_RE.test(trimmed)) {
|
|
5818
5827
|
skipEchoContinuation = false;
|
|
5819
|
-
out.push(t2.replace(/^(\s*)
|
|
5828
|
+
out.push(t2.replace(/^(\s*)[•·]\s/, "$1"));
|
|
5820
5829
|
continue;
|
|
5821
5830
|
}
|
|
5822
5831
|
if (CODEX_USER_ECHO_RE.test(trimmed)) {
|
|
@@ -7847,7 +7856,7 @@ async function start() {
|
|
|
7847
7856
|
};
|
|
7848
7857
|
const relay = new CommandRelayService(pluginId, async (cmd) => {
|
|
7849
7858
|
await dispatchCommand(ctx, cmd);
|
|
7850
|
-
});
|
|
7859
|
+
}, runtime.meta);
|
|
7851
7860
|
ctx.relay = relay;
|
|
7852
7861
|
function sigintHandler() {
|
|
7853
7862
|
claude.kill();
|
|
@@ -10118,7 +10127,7 @@ async function stopWorkspaceFromLocal(target) {
|
|
|
10118
10127
|
// src/commands/version.ts
|
|
10119
10128
|
var import_picocolors11 = __toESM(require("picocolors"));
|
|
10120
10129
|
function version() {
|
|
10121
|
-
const v = true ? "2.12.
|
|
10130
|
+
const v = true ? "2.12.4" : "unknown";
|
|
10122
10131
|
console.log(`${import_picocolors11.default.bold("codeam-cli")} ${import_picocolors11.default.cyan(v)}`);
|
|
10123
10132
|
}
|
|
10124
10133
|
|
|
@@ -10253,7 +10262,7 @@ function checkForUpdates() {
|
|
|
10253
10262
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
10254
10263
|
if (process.env.CI) return;
|
|
10255
10264
|
if (!process.stdout.isTTY) return;
|
|
10256
|
-
const current = true ? "2.12.
|
|
10265
|
+
const current = true ? "2.12.4" : null;
|
|
10257
10266
|
if (!current) return;
|
|
10258
10267
|
const cache = readCache();
|
|
10259
10268
|
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.4",
|
|
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",
|