codeam-cli 2.27.12 → 2.27.14

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,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.27.13] — 2026-06-06
8
+
9
+ ### Added
10
+
11
+ - **cli:** Flip ACP default ON for agents with adapter
12
+
13
+ ## [2.27.12] — 2026-06-06
14
+
15
+ ### Added
16
+
17
+ - **cli:** ACP runner full command coverage + history + rich-bubble feed
18
+
7
19
  ## [2.27.11] — 2026-06-06
8
20
 
9
21
  ### Fixed
package/dist/index.js CHANGED
@@ -498,7 +498,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
498
498
  // package.json
499
499
  var package_default = {
500
500
  name: "codeam-cli",
501
- version: "2.27.12",
501
+ version: "2.27.14",
502
502
  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.",
503
503
  type: "commonjs",
504
504
  main: "dist/index.js",
@@ -5873,7 +5873,7 @@ function readAnonId() {
5873
5873
  }
5874
5874
  function superProperties() {
5875
5875
  return {
5876
- cliVersion: true ? "2.27.12" : "0.0.0-dev",
5876
+ cliVersion: true ? "2.27.14" : "0.0.0-dev",
5877
5877
  nodeVersion: process.version,
5878
5878
  platform: process.platform,
5879
5879
  arch: process.arch,
@@ -18224,6 +18224,23 @@ async function runAcpSession(opts) {
18224
18224
  `adapter handshake ok protocolVersion=${initialize.protocolVersion} sessionId=${acpSessionId.slice(0, 8)}`
18225
18225
  );
18226
18226
  showSuccess(`${opts.agent} online (ACP) \u2014 awaiting prompts from mobile.`);
18227
+ void publisher.publishOutput({
18228
+ type: "agent_banner",
18229
+ agentId: opts.agent,
18230
+ // Match the legacy "Welcome back!" copy the Claude PTY banner
18231
+ // detector used as title fallback — keeps the chat surface
18232
+ // visually identical to the PTY path on first connect.
18233
+ title: "Welcome back!",
18234
+ // Subtitle = "<display name> · <model>" when we know the model
18235
+ // (codex-acp returns `currentModelId` on newSession; claude /
18236
+ // gemini adapters omit it). Falls back to `<display name>`
18237
+ // alone so the card never renders with a dangling separator.
18238
+ subtitle: buildBannerSubtitle(opts.agent, acpSessionId, initialize),
18239
+ // The cwd — same field the legacy banner pulled from Claude's
18240
+ // footer line under the ASCII art.
18241
+ path: opts.cwd,
18242
+ done: true
18243
+ });
18227
18244
  const runtime = createInteractiveAgentStrategy(opts.agent, createOsStrategy());
18228
18245
  const models = await runtime.listModels();
18229
18246
  const history = new AcpHistory(publisher, { agent: opts.agent, acpSessionId });
@@ -18496,6 +18513,12 @@ function describeError(err) {
18496
18513
  if (err instanceof Error) return err.message;
18497
18514
  return String(err);
18498
18515
  }
18516
+ function buildBannerSubtitle(agentId, acpSessionId, _initialize) {
18517
+ const meta = AGENT_REGISTRY[agentId];
18518
+ const displayName = meta?.displayName ?? agentId;
18519
+ const shortId = acpSessionId.slice(0, 8);
18520
+ return `${displayName} \xB7 ACP \xB7 ${shortId}`;
18521
+ }
18499
18522
  function buildLegacyContextForACP(opts, relay, runtime) {
18500
18523
  return {
18501
18524
  outputSvc: null,
@@ -21486,7 +21509,8 @@ async function start(requestedAgent) {
21486
21509
  requestedAgent: requestedAgent ?? null
21487
21510
  });
21488
21511
  const cwd = process.cwd();
21489
- if (process.env.CODEAM_ACP_ENABLED === "1" && session.pluginAuthToken) {
21512
+ const acpDisabled = process.env.CODEAM_ACP_DISABLED === "1";
21513
+ if (!acpDisabled && session.pluginAuthToken) {
21490
21514
  const adapter = getAcpAdapter(session.agent);
21491
21515
  if (adapter) {
21492
21516
  await runAcpSession({
@@ -21499,9 +21523,9 @@ async function start(requestedAgent) {
21499
21523
  });
21500
21524
  return;
21501
21525
  }
21502
- showInfo(
21503
- `CODEAM_ACP_ENABLED is set but no ACP adapter is registered for "${session.agent}" \u2014 falling back to PTY runtime.`
21504
- );
21526
+ }
21527
+ if (acpDisabled) {
21528
+ showInfo("CODEAM_ACP_DISABLED is set \u2014 running the legacy PTY pipeline.");
21505
21529
  }
21506
21530
  const runtime = createRuntimeStrategy(session.agent);
21507
21531
  const historySvc = new HistoryService(runtime, pluginId, cwd);
@@ -24401,7 +24425,7 @@ function checkChokidar() {
24401
24425
  }
24402
24426
  async function doctor(args2 = []) {
24403
24427
  const json = args2.includes("--json");
24404
- const cliVersion = true ? "2.27.12" : "0.0.0-dev";
24428
+ const cliVersion = true ? "2.27.14" : "0.0.0-dev";
24405
24429
  const apiBase = resolveApiBaseUrl();
24406
24430
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
24407
24431
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -24600,7 +24624,7 @@ async function completion(args2) {
24600
24624
  // src/commands/version.ts
24601
24625
  var import_picocolors13 = __toESM(require("picocolors"));
24602
24626
  function version2() {
24603
- const v = true ? "2.27.12" : "unknown";
24627
+ const v = true ? "2.27.14" : "unknown";
24604
24628
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
24605
24629
  }
24606
24630
 
@@ -24828,7 +24852,7 @@ function checkForUpdates() {
24828
24852
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
24829
24853
  if (process.env.CI) return;
24830
24854
  if (!process.stdout.isTTY) return;
24831
- const current = true ? "2.27.12" : null;
24855
+ const current = true ? "2.27.14" : null;
24832
24856
  if (!current) return;
24833
24857
  const cache = readCache();
24834
24858
  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.27.12",
3
+ "version": "2.27.14",
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",