codeam-cli 2.23.21 → 2.23.23

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.23.22] — 2026-05-30
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Anchor detectInputSuggestion on `? for shortcuts`
12
+
13
+ ## [2.23.21] — 2026-05-30
14
+
15
+ ### Added
16
+
17
+ - **cli:** Emit `input_suggestion` chunk for Claude ghost-text completions
18
+
7
19
  ## [2.23.20] — 2026-05-30
8
20
 
9
21
  ### Fixed
package/dist/index.js CHANGED
@@ -441,7 +441,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
441
441
  // package.json
442
442
  var package_default = {
443
443
  name: "codeam-cli",
444
- version: "2.23.21",
444
+ version: "2.23.23",
445
445
  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.",
446
446
  type: "commonjs",
447
447
  main: "dist/index.js",
@@ -5774,7 +5774,7 @@ function readAnonId() {
5774
5774
  }
5775
5775
  function superProperties() {
5776
5776
  return {
5777
- cliVersion: true ? "2.23.21" : "0.0.0-dev",
5777
+ cliVersion: true ? "2.23.23" : "0.0.0-dev",
5778
5778
  nodeVersion: process.version,
5779
5779
  platform: process.platform,
5780
5780
  arch: process.arch,
@@ -9675,15 +9675,23 @@ function detectSelector(lines) {
9675
9675
  };
9676
9676
  }
9677
9677
  function detectInputSuggestion(lines) {
9678
- const hasIdleHint = lines.some((l) => /\?\s+for\s+shortcuts/i.test(l.trim()));
9679
- if (!hasIdleHint) return null;
9678
+ let hintIdx = -1;
9679
+ for (let i = lines.length - 1; i >= 0; i--) {
9680
+ if (/\?\s+for\s+shortcuts/i.test(lines[i].trim())) {
9681
+ hintIdx = i;
9682
+ break;
9683
+ }
9684
+ }
9685
+ if (hintIdx === -1) return null;
9680
9686
  if (lines.some((l) => /^[❯>]\s*\d+\./.test(l.trim()))) return null;
9681
- for (const line of lines) {
9682
- const t2 = line.trim();
9687
+ const windowStart = Math.max(0, hintIdx - 3);
9688
+ for (let i = hintIdx - 1; i >= windowStart; i--) {
9689
+ const t2 = lines[i].trim();
9690
+ if (!t2) continue;
9683
9691
  const m = t2.match(/^[❯>]\s+(\S.*)$/);
9684
- if (!m) continue;
9685
- if (/^\d+\.\s/.test(m[1])) continue;
9686
- if (/^for\s/i.test(m[1])) continue;
9692
+ if (!m) return null;
9693
+ if (/^\d+\.\s/.test(m[1])) return null;
9694
+ if (/^for\s/i.test(m[1])) return null;
9687
9695
  const text = m[1].trim();
9688
9696
  if (text.length === 0) return null;
9689
9697
  return text;
@@ -15542,7 +15550,11 @@ var getContext = async (ctx, cmd) => {
15542
15550
  await ctx.relay.sendResult(cmd.id, "completed", result);
15543
15551
  };
15544
15552
  var getConversation = async (ctx, cmd) => {
15545
- const currentId = ctx.historySvc.getCurrentConversationId();
15553
+ let currentId = ctx.historySvc.getCurrentConversationId();
15554
+ if (!currentId) {
15555
+ ctx.historySvc.detectCurrentConversation();
15556
+ currentId = ctx.historySvc.getCurrentConversationId();
15557
+ }
15546
15558
  if (!currentId) {
15547
15559
  await ctx.relay.sendResult(cmd.id, "completed", { conversationId: null });
15548
15560
  return;
@@ -18845,7 +18857,7 @@ function checkChokidar() {
18845
18857
  }
18846
18858
  async function doctor(args2 = []) {
18847
18859
  const json = args2.includes("--json");
18848
- const cliVersion = true ? "2.23.21" : "0.0.0-dev";
18860
+ const cliVersion = true ? "2.23.23" : "0.0.0-dev";
18849
18861
  const apiBase = resolveApiBaseUrl();
18850
18862
  const diagnosticId = (0, import_node_crypto5.randomUUID)();
18851
18863
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -19044,7 +19056,7 @@ async function completion(args2) {
19044
19056
  // src/commands/version.ts
19045
19057
  var import_picocolors13 = __toESM(require("picocolors"));
19046
19058
  function version2() {
19047
- const v = true ? "2.23.21" : "unknown";
19059
+ const v = true ? "2.23.23" : "unknown";
19048
19060
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
19049
19061
  }
19050
19062
 
@@ -19272,7 +19284,7 @@ function checkForUpdates() {
19272
19284
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19273
19285
  if (process.env.CI) return;
19274
19286
  if (!process.stdout.isTTY) return;
19275
- const current = true ? "2.23.21" : null;
19287
+ const current = true ? "2.23.23" : null;
19276
19288
  if (!current) return;
19277
19289
  const cache = readCache();
19278
19290
  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.23.21",
3
+ "version": "2.23.23",
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",