codeam-cli 2.46.0 → 2.46.2

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.46.1] — 2026-06-26
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Write cursor OAuth credential to login state, not CURSOR_API_KEY
12
+
13
+ ## [2.46.0] — 2026-06-26
14
+
15
+ ### Fixed
16
+
17
+ - **cli:** Route cursor over native ACP (cursor-agent acp) so CURSOR_API_KEY reaches it
18
+
7
19
  ## [2.45.1] — 2026-06-25
8
20
 
9
21
  ### Fixed
package/dist/index.js CHANGED
@@ -5397,7 +5397,7 @@ function readAnonId() {
5397
5397
  }
5398
5398
  function superProperties() {
5399
5399
  return {
5400
- cliVersion: true ? "2.46.0" : "0.0.0-dev",
5400
+ cliVersion: true ? "2.46.2" : "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.46.0",
5581
+ version: "2.46.2",
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",
@@ -12936,6 +12936,24 @@ var CursorRuntimeStrategy = class {
12936
12936
  async listModels() {
12937
12937
  return CURSOR_MODELS;
12938
12938
  }
12939
+ /**
12940
+ * One-shot headless generation — powers preview detection + AI summaries.
12941
+ * `--print` = non-interactive; `--trust` bypasses the workspace-trust gate
12942
+ * (no human at the box to approve, only works with --print); `--force`
12943
+ * auto-allows tool calls. Auth comes from the login state the provisioner
12944
+ * writes (~/.config/cursor/auth.json), NOT CURSOR_API_KEY. Returns null on
12945
+ * spawn failure / timeout / empty output so callers silently skip — same
12946
+ * semantics as Claude / Codex / Gemini.
12947
+ */
12948
+ async generateOneShot(prompt, opts) {
12949
+ const binary = this.os.findInPath("cursor-agent");
12950
+ if (!binary) return null;
12951
+ const launch = this.os.buildLaunch(binary, ["--print", "--force", "--trust", prompt]);
12952
+ return spawnAndCapture(launch.cmd, launch.args, {
12953
+ cwd: opts?.cwd,
12954
+ timeoutMs: opts?.timeoutMs
12955
+ });
12956
+ }
12939
12957
  changeModelInstruction(modelId) {
12940
12958
  return { type: "pty", ptyInput: `/model ${modelId}\r` };
12941
12959
  }
@@ -17478,8 +17496,10 @@ var geminiProvisioner = {
17478
17496
  }
17479
17497
  };
17480
17498
  var cursorProvisioner = {
17481
- write(auth, _home) {
17499
+ write(auth, home) {
17500
+ const authJson = path43.join(home, ".config", "cursor", "auth.json");
17482
17501
  if (auth.kind === "api_key") {
17502
+ rmIfExists(authJson);
17483
17503
  return { CURSOR_API_KEY: auth.value };
17484
17504
  }
17485
17505
  const value = auth.value.trim();
@@ -17493,10 +17513,11 @@ var cursorProvisioner = {
17493
17513
  if (typeof parsed !== "object" || parsed === null || typeof parsed["accessToken"] !== "string" || !parsed["accessToken"]) {
17494
17514
  throw new Error("cursor oauth_token: credential blob is missing a non-empty accessToken");
17495
17515
  }
17496
- const accessToken = parsed["accessToken"];
17497
- return { CURSOR_API_KEY: accessToken };
17516
+ writeFile0600(authJson, value);
17517
+ return {};
17498
17518
  }
17499
- return { CURSOR_API_KEY: value };
17519
+ writeFile0600(authJson, JSON.stringify({ accessToken: value }));
17520
+ return {};
17500
17521
  }
17501
17522
  };
17502
17523
  var PROVISIONERS = {
@@ -17922,7 +17943,7 @@ async function autoUpgradeBeforeCriticalCommand() {
17922
17943
  if (process.env.NODE_ENV === "test") return;
17923
17944
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
17924
17945
  if (process.env.CI) return;
17925
- const current = true ? "2.46.0" : null;
17946
+ const current = true ? "2.46.2" : null;
17926
17947
  if (!current) return;
17927
17948
  const cache = readCache();
17928
17949
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -17939,7 +17960,7 @@ function checkForUpdates() {
17939
17960
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
17940
17961
  if (process.env.CI) return;
17941
17962
  if (!process.stdout.isTTY) return;
17942
- const current = true ? "2.46.0" : null;
17963
+ const current = true ? "2.46.2" : null;
17943
17964
  if (!current) return;
17944
17965
  const cache = readCache();
17945
17966
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -18381,7 +18402,7 @@ var defaultSpawner = (env, cwd, args2 = []) => (0, import_node_child_process14.s
18381
18402
  detached: false
18382
18403
  });
18383
18404
  function currentCliVersion() {
18384
- return true ? "2.46.0" : null;
18405
+ return true ? "2.46.2" : null;
18385
18406
  }
18386
18407
  function runCmd(cmd, args2, timeoutMs) {
18387
18408
  return new Promise((resolve7) => {
@@ -29706,7 +29727,7 @@ function checkChokidar() {
29706
29727
  }
29707
29728
  async function doctor(args2 = []) {
29708
29729
  const json = args2.includes("--json");
29709
- const cliVersion = true ? "2.46.0" : "0.0.0-dev";
29730
+ const cliVersion = true ? "2.46.2" : "0.0.0-dev";
29710
29731
  const apiBase2 = resolveApiBaseUrl();
29711
29732
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
29712
29733
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -29905,7 +29926,7 @@ async function completion(args2) {
29905
29926
  // src/commands/version.ts
29906
29927
  var import_picocolors15 = __toESM(require("picocolors"));
29907
29928
  function version2() {
29908
- const v = true ? "2.46.0" : "unknown";
29929
+ const v = true ? "2.46.2" : "unknown";
29909
29930
  console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
29910
29931
  }
29911
29932
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.46.0",
3
+ "version": "2.46.2",
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",