codeam-cli 2.61.58 → 2.61.60

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.61.59] — 2026-07-27
8
+
9
+ ### Added
10
+
11
+ - **shared:** Enable ClickUp integration (OAuth app registered)
12
+
13
+ ## [2.61.58] — 2026-07-27
14
+
15
+ ### Added
16
+
17
+ - **shared:** ClickUp integration (tracker, OAuth) — DARK
18
+
7
19
  ## [2.61.57] — 2026-07-27
8
20
 
9
21
  ### Added
package/dist/index.js CHANGED
@@ -1286,7 +1286,7 @@ var INTEGRATION_REGISTRY = {
1286
1286
  // has NO refresh token, and its OAuth has NO granular scopes (the app gets
1287
1287
  // the workspaces the user authorizes). enabled:false until the OAuth app is
1288
1288
  // registered (client_id/secret) + secrets land + Step-8 live-verify.
1289
- enabled: false,
1289
+ enabled: true,
1290
1290
  auth: {
1291
1291
  kind: "oauth_redirect",
1292
1292
  scopes: []
@@ -6750,7 +6750,7 @@ function readAnonId() {
6750
6750
  }
6751
6751
  function superProperties() {
6752
6752
  return {
6753
- cliVersion: true ? "2.61.58" : "0.0.0-dev",
6753
+ cliVersion: true ? "2.61.60" : "0.0.0-dev",
6754
6754
  nodeVersion: process.version,
6755
6755
  platform: process.platform,
6756
6756
  arch: process.arch,
@@ -6931,7 +6931,7 @@ var os4 = __toESM(require("os"));
6931
6931
  // package.json
6932
6932
  var package_default = {
6933
6933
  name: "codeam-cli",
6934
- version: "2.61.58",
6934
+ version: "2.61.60",
6935
6935
  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.",
6936
6936
  type: "commonjs",
6937
6937
  main: "dist/index.js",
@@ -8103,7 +8103,7 @@ var CommandRelayService = class _CommandRelayService {
8103
8103
  // fresh + clear the "CLI update available" banner after a self-update
8104
8104
  // (a codespace that reinstalls @latest reconnects via heartbeat, not
8105
8105
  // pair/reconnect). Older backends ignore the extra field.
8106
- ..."2.61.58" ? { ideVersion: "2.61.58" } : {}
8106
+ ..."2.61.60" ? { ideVersion: "2.61.60" } : {}
8107
8107
  }).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
8108
8108
  }
8109
8109
  /**
@@ -19212,7 +19212,7 @@ async function autoUpgradeBeforeCriticalCommand() {
19212
19212
  if (process.env.NODE_ENV === "test") return;
19213
19213
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19214
19214
  if (process.env.CI) return;
19215
- const current = true ? "2.61.58" : null;
19215
+ const current = true ? "2.61.60" : null;
19216
19216
  if (!current) return;
19217
19217
  const cache = readCache();
19218
19218
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -19229,7 +19229,7 @@ function checkForUpdates() {
19229
19229
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19230
19230
  if (process.env.CI) return;
19231
19231
  if (!process.stdout.isTTY) return;
19232
- const current = true ? "2.61.58" : null;
19232
+ const current = true ? "2.61.60" : null;
19233
19233
  if (!current) return;
19234
19234
  const cache = readCache();
19235
19235
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -19249,7 +19249,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
19249
19249
  var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
19250
19250
  var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
19251
19251
  function currentCliVersion() {
19252
- return true ? "2.61.58" : null;
19252
+ return true ? "2.61.60" : null;
19253
19253
  }
19254
19254
  function runCmd(cmd, args2, timeoutMs) {
19255
19255
  return new Promise((resolve8) => {
@@ -24196,7 +24196,50 @@ function buildNpmInstallInvocation(opts) {
24196
24196
  function isPermissionError(stderr) {
24197
24197
  return /EACCES|permission denied|errno[\s"']*-13|operation not permitted/i.test(stderr);
24198
24198
  }
24199
+ function resolveGlobalNodeModulesDir(opts) {
24200
+ const entryScript = opts?.entryScript ?? process.argv[1] ?? "";
24201
+ const platform3 = opts?.platform ?? process.platform;
24202
+ const p2 = platform3 === "win32" ? path61.win32 : path61.posix;
24203
+ const marker = "/lib/node_modules/codeam-cli/";
24204
+ const markerIdx = entryScript.split(/[\\/]/).join("/").indexOf(marker);
24205
+ if (markerIdx <= 0) return null;
24206
+ const prefix = entryScript.slice(0, markerIdx);
24207
+ return p2.join(prefix, "lib", "node_modules");
24208
+ }
24209
+ var STALE_STAGING_AGE_MS = CLI_UPDATE_INSTALL_TIMEOUT_MS;
24210
+ function sweepStaleCliStagingDirs(nodeModulesDir, now = Date.now(), deps) {
24211
+ if (!nodeModulesDir) return 0;
24212
+ const readdirSync12 = deps?.readdirSync ?? fs57.readdirSync;
24213
+ const statSync15 = deps?.statSync ?? fs57.statSync;
24214
+ const rmSync7 = deps?.rmSync ?? fs57.rmSync;
24215
+ let removed = 0;
24216
+ let entries;
24217
+ try {
24218
+ entries = readdirSync12(nodeModulesDir);
24219
+ } catch {
24220
+ return 0;
24221
+ }
24222
+ for (const name of entries) {
24223
+ if (!/^\.codeam-cli-/.test(name)) continue;
24224
+ const full = path61.join(nodeModulesDir, name);
24225
+ try {
24226
+ const st3 = statSync15(full);
24227
+ if (now - st3.mtimeMs < STALE_STAGING_AGE_MS) continue;
24228
+ rmSync7(full, { recursive: true, force: true });
24229
+ removed++;
24230
+ } catch {
24231
+ }
24232
+ }
24233
+ return removed;
24234
+ }
24199
24235
  async function runNpmInstallLatest() {
24236
+ try {
24237
+ const swept = sweepStaleCliStagingDirs(resolveGlobalNodeModulesDir());
24238
+ if (swept > 0) {
24239
+ log.info("cli-update", `cleared ${swept} stale npm staging dir(s) before install`);
24240
+ }
24241
+ } catch {
24242
+ }
24200
24243
  let lastError = "";
24201
24244
  let useSudo = false;
24202
24245
  for (let attempt = 1; attempt <= CLI_UPDATE_MAX_ATTEMPTS; attempt++) {
@@ -39445,7 +39488,7 @@ function checkChokidar() {
39445
39488
  }
39446
39489
  async function doctor(args2 = []) {
39447
39490
  const json = args2.includes("--json");
39448
- const cliVersion = true ? "2.61.58" : "0.0.0-dev";
39491
+ const cliVersion = true ? "2.61.60" : "0.0.0-dev";
39449
39492
  const apiBase2 = resolveApiBaseUrl();
39450
39493
  const diagnosticId = (0, import_node_crypto13.randomUUID)();
39451
39494
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -39967,7 +40010,7 @@ async function mcpRun(args2) {
39967
40010
  // src/commands/version.ts
39968
40011
  var import_picocolors15 = __toESM(require("picocolors"));
39969
40012
  function version2() {
39970
- const v = true ? "2.61.58" : "unknown";
40013
+ const v = true ? "2.61.60" : "unknown";
39971
40014
  console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
39972
40015
  }
39973
40016
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.61.58",
3
+ "version": "2.61.60",
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",