codeam-cli 2.52.1 → 2.52.3
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 +12 -0
- package/dist/index.js +14 -29
- package/package.json +1 -1
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.52.2] — 2026-06-30
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **acp:** Stop synthesising input_suggestion from the reply (echoed agent msg)
|
|
12
|
+
|
|
13
|
+
## [2.52.1] — 2026-06-29
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- **cli:** Send ideVersion on reconnect to keep session version current
|
|
18
|
+
|
|
7
19
|
## [2.52.0] — 2026-06-29
|
|
8
20
|
|
|
9
21
|
### Added
|
package/dist/index.js
CHANGED
|
@@ -5397,7 +5397,7 @@ function readAnonId() {
|
|
|
5397
5397
|
}
|
|
5398
5398
|
function superProperties() {
|
|
5399
5399
|
return {
|
|
5400
|
-
cliVersion: true ? "2.52.
|
|
5400
|
+
cliVersion: true ? "2.52.3" : "0.0.0-dev",
|
|
5401
5401
|
nodeVersion: process.version,
|
|
5402
5402
|
platform: process.platform,
|
|
5403
5403
|
arch: process.arch,
|
|
@@ -5578,7 +5578,7 @@ var os4 = __toESM(require("os"));
|
|
|
5578
5578
|
// package.json
|
|
5579
5579
|
var package_default = {
|
|
5580
5580
|
name: "codeam-cli",
|
|
5581
|
-
version: "2.52.
|
|
5581
|
+
version: "2.52.3",
|
|
5582
5582
|
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.",
|
|
5583
5583
|
type: "commonjs",
|
|
5584
5584
|
main: "dist/index.js",
|
|
@@ -14863,7 +14863,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
14863
14863
|
if (process.env.NODE_ENV === "test") return;
|
|
14864
14864
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
14865
14865
|
if (process.env.CI) return;
|
|
14866
|
-
const current = true ? "2.52.
|
|
14866
|
+
const current = true ? "2.52.3" : null;
|
|
14867
14867
|
if (!current) return;
|
|
14868
14868
|
const cache = readCache();
|
|
14869
14869
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -14880,7 +14880,7 @@ function checkForUpdates() {
|
|
|
14880
14880
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
14881
14881
|
if (process.env.CI) return;
|
|
14882
14882
|
if (!process.stdout.isTTY) return;
|
|
14883
|
-
const current = true ? "2.52.
|
|
14883
|
+
const current = true ? "2.52.3" : null;
|
|
14884
14884
|
if (!current) return;
|
|
14885
14885
|
const cache = readCache();
|
|
14886
14886
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -15582,7 +15582,7 @@ var defaultSpawner = (env, cwd, args2 = []) => (0, import_node_child_process15.s
|
|
|
15582
15582
|
detached: false
|
|
15583
15583
|
});
|
|
15584
15584
|
function currentCliVersion() {
|
|
15585
|
-
return true ? "2.52.
|
|
15585
|
+
return true ? "2.52.3" : null;
|
|
15586
15586
|
}
|
|
15587
15587
|
function runCmd(cmd, args2, timeoutMs) {
|
|
15588
15588
|
return new Promise((resolve7) => {
|
|
@@ -25332,21 +25332,6 @@ function extractSelectPrompt(text) {
|
|
|
25332
25332
|
};
|
|
25333
25333
|
}
|
|
25334
25334
|
|
|
25335
|
-
// src/agents/acp/inputSuggestion.ts
|
|
25336
|
-
var MIN_LEN = 8;
|
|
25337
|
-
var MAX_LEN = 200;
|
|
25338
|
-
function deriveInputSuggestion(finalText) {
|
|
25339
|
-
if (finalText.length === 0) return null;
|
|
25340
|
-
const lines = finalText.split("\n");
|
|
25341
|
-
let i = lines.length - 1;
|
|
25342
|
-
while (i >= 0 && lines[i].trim() === "") i--;
|
|
25343
|
-
if (i < 0) return null;
|
|
25344
|
-
const lastLine = lines[i].trim();
|
|
25345
|
-
if (!lastLine.endsWith("?")) return null;
|
|
25346
|
-
if (lastLine.length < MIN_LEN || lastLine.length > MAX_LEN) return null;
|
|
25347
|
-
return lastLine;
|
|
25348
|
-
}
|
|
25349
|
-
|
|
25350
25335
|
// src/services/turn-files/turn-file-aggregator.ts
|
|
25351
25336
|
var import_crypto5 = require("crypto");
|
|
25352
25337
|
|
|
@@ -26346,6 +26331,7 @@ function replyIsCursorUpgradeRequired(finalText) {
|
|
|
26346
26331
|
}
|
|
26347
26332
|
var CURSOR_UPGRADE_MESSAGE = "\u26A1 **Cursor needs a paid plan to run the agent.**\n\nThe headless Cursor Agent requires Cursor **Pro** \u2014 your Free plan\u2019s included usage does NOT cover Agent runs, even with quota left. This is your Cursor account (not CodeAgent). Upgrade, then send your message again:\n\n[Upgrade to Cursor Pro \u2192](https://cursor.com/dashboard)";
|
|
26348
26333
|
var TURN_FAILURE_MESSAGE = "\u26A0\uFE0F **The agent hit an error and couldn\u2019t finish this turn.** Please send your message again.";
|
|
26334
|
+
var ACP_QUICK_REPLIES = ["Continue", "Yes, go ahead", "Explain"];
|
|
26349
26335
|
var PROVIDER_OUTAGE_RE = /overloaded_error|\boverloaded\b|service[ _]unavailable|temporarily[ _]unavailable|(?:api error|http|status)[:\s]+(?:529|503|502|504)\b|\b(?:529|503|502|504)\b[^\n]{0,40}(?:overload|unavailable|gateway|upstream|server error)|bad gateway|gateway time-?out|upstream (?:error|connect|timeout)/i;
|
|
26350
26336
|
function looksLikeProviderOutage(text) {
|
|
26351
26337
|
return PROVIDER_OUTAGE_RE.test(text);
|
|
@@ -26913,19 +26899,18 @@ async function handleCommand(cmd, client2, relay, acpSessionId, models, streamin
|
|
|
26913
26899
|
} else if (shouldOfferOneMRecovery({ detail: "", recentStderr: recentStderr.join("\n"), finalText })) {
|
|
26914
26900
|
await oneMRecovery.offer(cmd.id, blocks);
|
|
26915
26901
|
} else {
|
|
26916
|
-
|
|
26902
|
+
await streaming.closeTurnWithInteractiveDetection();
|
|
26917
26903
|
const replyLine = formatAgentReplyLine(finalText);
|
|
26918
26904
|
if (replyLine.length > 0) {
|
|
26919
26905
|
showInfo(replyLine);
|
|
26920
26906
|
}
|
|
26921
26907
|
history.appendAgentReply(finalText);
|
|
26922
26908
|
void history.flush();
|
|
26923
|
-
|
|
26924
|
-
|
|
26925
|
-
|
|
26926
|
-
|
|
26927
|
-
|
|
26928
|
-
}
|
|
26909
|
+
void publisher.publishOutput({
|
|
26910
|
+
type: "input_suggestion",
|
|
26911
|
+
content: ACP_QUICK_REPLIES,
|
|
26912
|
+
done: true
|
|
26913
|
+
});
|
|
26929
26914
|
turnFiles.flushTurn().catch((err) => {
|
|
26930
26915
|
log.warn("acpRunner", `turnFiles.flushTurn failed: ${describeError(err)}`);
|
|
26931
26916
|
});
|
|
@@ -31202,7 +31187,7 @@ function checkChokidar() {
|
|
|
31202
31187
|
}
|
|
31203
31188
|
async function doctor(args2 = []) {
|
|
31204
31189
|
const json = args2.includes("--json");
|
|
31205
|
-
const cliVersion = true ? "2.52.
|
|
31190
|
+
const cliVersion = true ? "2.52.3" : "0.0.0-dev";
|
|
31206
31191
|
const apiBase2 = resolveApiBaseUrl();
|
|
31207
31192
|
const diagnosticId = (0, import_node_crypto8.randomUUID)();
|
|
31208
31193
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -31401,7 +31386,7 @@ async function completion(args2) {
|
|
|
31401
31386
|
// src/commands/version.ts
|
|
31402
31387
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
31403
31388
|
function version2() {
|
|
31404
|
-
const v = true ? "2.52.
|
|
31389
|
+
const v = true ? "2.52.3" : "unknown";
|
|
31405
31390
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
31406
31391
|
}
|
|
31407
31392
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.52.
|
|
3
|
+
"version": "2.52.3",
|
|
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",
|