codeam-cli 2.61.59 → 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 +6 -0
- package/dist/index.js +51 -8
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@ 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
|
+
|
|
7
13
|
## [2.61.58] — 2026-07-27
|
|
8
14
|
|
|
9
15
|
### Added
|
package/dist/index.js
CHANGED
|
@@ -6750,7 +6750,7 @@ function readAnonId() {
|
|
|
6750
6750
|
}
|
|
6751
6751
|
function superProperties() {
|
|
6752
6752
|
return {
|
|
6753
|
-
cliVersion: true ? "2.61.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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",
|