codeam-cli 2.23.33 → 2.23.34

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.
Files changed (2) hide show
  1. package/dist/index.js +33 -12
  2. package/package.json +1 -1
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.33",
444
+ version: "2.23.34",
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.33" : "0.0.0-dev",
5777
+ cliVersion: true ? "2.23.34" : "0.0.0-dev",
5778
5778
  nodeVersion: process.version,
5779
5779
  platform: process.platform,
5780
5780
  arch: process.arch,
@@ -6305,19 +6305,40 @@ var AgentService = class _AgentService {
6305
6305
  this.quietTimer = setTimeout(tick, _AgentService.QUIET_MS);
6306
6306
  }
6307
6307
  /**
6308
- * Write one prompt to the PTY using the existing pacing (text →
6309
- * 50–300 ms → `\r` submit). Marks the agent busy so subsequent
6310
- * `sendCommand` calls queue instead of stacking pastes.
6308
+ * Write one prompt to the PTY and submit it.
6309
+ *
6310
+ * For multi-line text (or any text > 1 line), Claude Code's TUI
6311
+ * triggers bracketed-paste mode and treats the write as a paste:
6312
+ * a `[Pasted text #N]` marker lands in the input field, and any
6313
+ * `\r` we send while the paste boundary is still open is swallowed
6314
+ * as part of the paste content — never reaching the submit
6315
+ * handler. The result is the prompt sitting in the input forever
6316
+ * (the user reported stacking `[Pasted text #N]` markers with no
6317
+ * agent reply).
6318
+ *
6319
+ * Fix: explicitly bracket the paste ourselves (`ESC[200~ <text>
6320
+ * ESC[201~`) so the end marker closes the paste deterministically.
6321
+ * A short delay later we send `\r` — now OUTSIDE the bracket — so
6322
+ * Claude's input handler treats it as Submit, not paste content.
6323
+ * Single-line text doesn't trigger paste mode, so we keep the
6324
+ * legacy `text + \r` path for that case (cheaper, no markers).
6325
+ *
6326
+ * Marks the agent busy so subsequent `sendCommand` calls queue
6327
+ * instead of stacking pastes.
6311
6328
  */
6312
6329
  submitToPty(text) {
6313
6330
  if (!this.strategy) return;
6314
6331
  const s = this.strategy;
6315
6332
  this.agentBusy = true;
6316
6333
  log.trace("agent", `submit text=${text.length}B (queued=${this.pendingInputs.length})`);
6317
- s.write(text);
6318
- const lineCount = text.split("\n").length;
6319
- const delay = Math.min(300, 50 + (lineCount - 1) * 40);
6320
- setTimeout(() => s.write("\r"), delay);
6334
+ const isMultiline = text.includes("\n");
6335
+ if (isMultiline) {
6336
+ s.write(`\x1B[200~${text}\x1B[201~`);
6337
+ setTimeout(() => s.write("\r"), 80);
6338
+ } else {
6339
+ s.write(text);
6340
+ setTimeout(() => s.write("\r"), 50);
6341
+ }
6321
6342
  }
6322
6343
  drainPending() {
6323
6344
  if (!this.strategy || this.pendingInputs.length === 0) return;
@@ -19171,7 +19192,7 @@ function checkChokidar() {
19171
19192
  }
19172
19193
  async function doctor(args2 = []) {
19173
19194
  const json = args2.includes("--json");
19174
- const cliVersion = true ? "2.23.33" : "0.0.0-dev";
19195
+ const cliVersion = true ? "2.23.34" : "0.0.0-dev";
19175
19196
  const apiBase = resolveApiBaseUrl();
19176
19197
  const diagnosticId = (0, import_node_crypto6.randomUUID)();
19177
19198
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -19370,7 +19391,7 @@ async function completion(args2) {
19370
19391
  // src/commands/version.ts
19371
19392
  var import_picocolors13 = __toESM(require("picocolors"));
19372
19393
  function version2() {
19373
- const v = true ? "2.23.33" : "unknown";
19394
+ const v = true ? "2.23.34" : "unknown";
19374
19395
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
19375
19396
  }
19376
19397
 
@@ -19598,7 +19619,7 @@ function checkForUpdates() {
19598
19619
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19599
19620
  if (process.env.CI) return;
19600
19621
  if (!process.stdout.isTTY) return;
19601
- const current = true ? "2.23.33" : null;
19622
+ const current = true ? "2.23.34" : null;
19602
19623
  if (!current) return;
19603
19624
  const cache = readCache();
19604
19625
  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.33",
3
+ "version": "2.23.34",
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",