codeam-cli 2.61.60 → 2.61.62
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 +138 -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.61] — 2026-07-27
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **shared:** N8n integration (automation, api_key + n8n MCP)
|
|
12
|
+
|
|
7
13
|
## [2.61.59] — 2026-07-27
|
|
8
14
|
|
|
9
15
|
### Added
|
package/dist/index.js
CHANGED
|
@@ -1305,6 +1305,136 @@ var INTEGRATION_REGISTRY = {
|
|
|
1305
1305
|
}
|
|
1306
1306
|
}
|
|
1307
1307
|
}
|
|
1308
|
+
},
|
|
1309
|
+
n8n: {
|
|
1310
|
+
id: "n8n",
|
|
1311
|
+
name: "n8n",
|
|
1312
|
+
icon: "n8n",
|
|
1313
|
+
category: "automation",
|
|
1314
|
+
// LIVE — api_key rail (like Trello / Azure DevOps). n8n auth is an API key
|
|
1315
|
+
// (Settings → n8n API) + the instance URL (n8n.cloud or self-hosted). The
|
|
1316
|
+
// user pastes both; the backend validates against the n8n REST API + vaults
|
|
1317
|
+
// them. No OAuth app, no GSM secrets, no config-gated 503.
|
|
1318
|
+
// ⚠️ The instance MUST be PUBLICLY reachable (n8n.cloud or a public self-host)
|
|
1319
|
+
// — a localhost/private n8n can't be reached from the deploy box.
|
|
1320
|
+
enabled: true,
|
|
1321
|
+
auth: {
|
|
1322
|
+
kind: "api_key",
|
|
1323
|
+
fields: [
|
|
1324
|
+
{
|
|
1325
|
+
key: "instanceUrl",
|
|
1326
|
+
label: "Instance URL",
|
|
1327
|
+
placeholder: "https://your-workspace.app.n8n.cloud",
|
|
1328
|
+
secret: false,
|
|
1329
|
+
help: "Your n8n base URL \u2014 n8n.cloud or your public self-hosted instance."
|
|
1330
|
+
},
|
|
1331
|
+
{
|
|
1332
|
+
key: "accessToken",
|
|
1333
|
+
label: "API Key",
|
|
1334
|
+
placeholder: "n8n_api_\u2026",
|
|
1335
|
+
secret: true,
|
|
1336
|
+
help: "Create in n8n \u2192 Settings \u2192 n8n API \u2192 Create an API key."
|
|
1337
|
+
}
|
|
1338
|
+
]
|
|
1339
|
+
},
|
|
1340
|
+
delivery: {
|
|
1341
|
+
mcp: {
|
|
1342
|
+
// n8n-mcp (Node): N8N_API_URL + N8N_API_KEY via env only, never argv.
|
|
1343
|
+
// Version PINNED; bump only after re-verifying headless.
|
|
1344
|
+
command: "npx",
|
|
1345
|
+
args: ["-y", "n8n-mcp@2.66.2"],
|
|
1346
|
+
envMapping: {
|
|
1347
|
+
N8N_API_URL: "instanceUrl",
|
|
1348
|
+
N8N_API_KEY: "accessToken"
|
|
1349
|
+
},
|
|
1350
|
+
// stdio transport (the CLI mcp-shim spawns it over stdio, not HTTP).
|
|
1351
|
+
staticEnv: { MCP_MODE: "stdio" }
|
|
1352
|
+
}
|
|
1353
|
+
}
|
|
1354
|
+
},
|
|
1355
|
+
postman: {
|
|
1356
|
+
id: "postman",
|
|
1357
|
+
name: "Postman",
|
|
1358
|
+
icon: "postman",
|
|
1359
|
+
category: "api_tools",
|
|
1360
|
+
// LIVE — api_key rail. Postman auth is a personal API key (Settings → API
|
|
1361
|
+
// keys). The user pastes it; the backend validates via GET /me + vaults it.
|
|
1362
|
+
// No OAuth (Postman's API has no user OAuth), no secrets, no config-503.
|
|
1363
|
+
enabled: true,
|
|
1364
|
+
auth: {
|
|
1365
|
+
kind: "api_key",
|
|
1366
|
+
fields: [
|
|
1367
|
+
{
|
|
1368
|
+
key: "accessToken",
|
|
1369
|
+
label: "API Key",
|
|
1370
|
+
placeholder: "PMAK-\u2026",
|
|
1371
|
+
secret: true,
|
|
1372
|
+
help: "Postman \u2192 Settings \u2192 API keys \u2192 Generate API Key."
|
|
1373
|
+
}
|
|
1374
|
+
]
|
|
1375
|
+
},
|
|
1376
|
+
delivery: {
|
|
1377
|
+
mcp: {
|
|
1378
|
+
// Postman's OFFICIAL stdio MCP server (Node). BYO key via POSTMAN_API_KEY
|
|
1379
|
+
// (env only). Version PINNED; bump only after re-verifying headless.
|
|
1380
|
+
command: "npx",
|
|
1381
|
+
args: ["-y", "@postman/postman-mcp-server@2.11.2"],
|
|
1382
|
+
envMapping: {
|
|
1383
|
+
POSTMAN_API_KEY: "accessToken"
|
|
1384
|
+
}
|
|
1385
|
+
}
|
|
1386
|
+
}
|
|
1387
|
+
},
|
|
1388
|
+
mixpanel: {
|
|
1389
|
+
id: "mixpanel",
|
|
1390
|
+
name: "Mixpanel",
|
|
1391
|
+
icon: "mixpanel",
|
|
1392
|
+
category: "analytics",
|
|
1393
|
+
// LIVE — api_key rail. Mixpanel query/export auth is a SERVICE ACCOUNT
|
|
1394
|
+
// (username + password, Basic auth) scoped to a project (project id). The
|
|
1395
|
+
// user pastes all three; the backend validates + vaults them. No OAuth
|
|
1396
|
+
// redirect (service accounts are machine-to-machine), no GSM secrets.
|
|
1397
|
+
enabled: true,
|
|
1398
|
+
auth: {
|
|
1399
|
+
kind: "api_key",
|
|
1400
|
+
fields: [
|
|
1401
|
+
{
|
|
1402
|
+
key: "accessToken",
|
|
1403
|
+
label: "Service Account Username",
|
|
1404
|
+
placeholder: "your-sa.mp-service-account",
|
|
1405
|
+
secret: false,
|
|
1406
|
+
help: "Mixpanel \u2192 Organization Settings \u2192 Service Accounts \u2192 create one with project access."
|
|
1407
|
+
},
|
|
1408
|
+
{
|
|
1409
|
+
key: "secretKey",
|
|
1410
|
+
label: "Service Account Secret",
|
|
1411
|
+
placeholder: "the service account secret",
|
|
1412
|
+
secret: true,
|
|
1413
|
+
help: "Shown once when you create the service account \u2014 copy it then."
|
|
1414
|
+
},
|
|
1415
|
+
{
|
|
1416
|
+
key: "projectId",
|
|
1417
|
+
label: "Project ID",
|
|
1418
|
+
placeholder: "1234567",
|
|
1419
|
+
secret: false,
|
|
1420
|
+
help: "Mixpanel \u2192 Project Settings \u2192 Project ID."
|
|
1421
|
+
}
|
|
1422
|
+
]
|
|
1423
|
+
},
|
|
1424
|
+
delivery: {
|
|
1425
|
+
mcp: {
|
|
1426
|
+
// @mendeel/mcp-mixpanel (Node): the service account + project id via env
|
|
1427
|
+
// only (MIXPANEL_SERVICE_ACCOUNT_USERNAME/PASSWORD + MIXPANEL_PROJECT_ID).
|
|
1428
|
+
// Version PINNED; bump only after re-verifying headless. Default region US.
|
|
1429
|
+
command: "npx",
|
|
1430
|
+
args: ["-y", "@mendeel/mcp-mixpanel@1.0.4"],
|
|
1431
|
+
envMapping: {
|
|
1432
|
+
MIXPANEL_SERVICE_ACCOUNT_USERNAME: "accessToken",
|
|
1433
|
+
MIXPANEL_SERVICE_ACCOUNT_PASSWORD: "secretKey",
|
|
1434
|
+
MIXPANEL_PROJECT_ID: "projectId"
|
|
1435
|
+
}
|
|
1436
|
+
}
|
|
1437
|
+
}
|
|
1308
1438
|
}
|
|
1309
1439
|
};
|
|
1310
1440
|
function getIntegration(id) {
|
|
@@ -6750,7 +6880,7 @@ function readAnonId() {
|
|
|
6750
6880
|
}
|
|
6751
6881
|
function superProperties() {
|
|
6752
6882
|
return {
|
|
6753
|
-
cliVersion: true ? "2.61.
|
|
6883
|
+
cliVersion: true ? "2.61.62" : "0.0.0-dev",
|
|
6754
6884
|
nodeVersion: process.version,
|
|
6755
6885
|
platform: process.platform,
|
|
6756
6886
|
arch: process.arch,
|
|
@@ -6931,7 +7061,7 @@ var os4 = __toESM(require("os"));
|
|
|
6931
7061
|
// package.json
|
|
6932
7062
|
var package_default = {
|
|
6933
7063
|
name: "codeam-cli",
|
|
6934
|
-
version: "2.61.
|
|
7064
|
+
version: "2.61.62",
|
|
6935
7065
|
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
7066
|
type: "commonjs",
|
|
6937
7067
|
main: "dist/index.js",
|
|
@@ -8103,7 +8233,7 @@ var CommandRelayService = class _CommandRelayService {
|
|
|
8103
8233
|
// fresh + clear the "CLI update available" banner after a self-update
|
|
8104
8234
|
// (a codespace that reinstalls @latest reconnects via heartbeat, not
|
|
8105
8235
|
// pair/reconnect). Older backends ignore the extra field.
|
|
8106
|
-
..."2.61.
|
|
8236
|
+
..."2.61.62" ? { ideVersion: "2.61.62" } : {}
|
|
8107
8237
|
}).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
|
|
8108
8238
|
}
|
|
8109
8239
|
/**
|
|
@@ -19212,7 +19342,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
19212
19342
|
if (process.env.NODE_ENV === "test") return;
|
|
19213
19343
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
19214
19344
|
if (process.env.CI) return;
|
|
19215
|
-
const current = true ? "2.61.
|
|
19345
|
+
const current = true ? "2.61.62" : null;
|
|
19216
19346
|
if (!current) return;
|
|
19217
19347
|
const cache = readCache();
|
|
19218
19348
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -19229,7 +19359,7 @@ function checkForUpdates() {
|
|
|
19229
19359
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
19230
19360
|
if (process.env.CI) return;
|
|
19231
19361
|
if (!process.stdout.isTTY) return;
|
|
19232
|
-
const current = true ? "2.61.
|
|
19362
|
+
const current = true ? "2.61.62" : null;
|
|
19233
19363
|
if (!current) return;
|
|
19234
19364
|
const cache = readCache();
|
|
19235
19365
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -19249,7 +19379,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
|
|
|
19249
19379
|
var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
|
|
19250
19380
|
var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
|
|
19251
19381
|
function currentCliVersion() {
|
|
19252
|
-
return true ? "2.61.
|
|
19382
|
+
return true ? "2.61.62" : null;
|
|
19253
19383
|
}
|
|
19254
19384
|
function runCmd(cmd, args2, timeoutMs) {
|
|
19255
19385
|
return new Promise((resolve8) => {
|
|
@@ -39488,7 +39618,7 @@ function checkChokidar() {
|
|
|
39488
39618
|
}
|
|
39489
39619
|
async function doctor(args2 = []) {
|
|
39490
39620
|
const json = args2.includes("--json");
|
|
39491
|
-
const cliVersion = true ? "2.61.
|
|
39621
|
+
const cliVersion = true ? "2.61.62" : "0.0.0-dev";
|
|
39492
39622
|
const apiBase2 = resolveApiBaseUrl();
|
|
39493
39623
|
const diagnosticId = (0, import_node_crypto13.randomUUID)();
|
|
39494
39624
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -40010,7 +40140,7 @@ async function mcpRun(args2) {
|
|
|
40010
40140
|
// src/commands/version.ts
|
|
40011
40141
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
40012
40142
|
function version2() {
|
|
40013
|
-
const v = true ? "2.61.
|
|
40143
|
+
const v = true ? "2.61.62" : "unknown";
|
|
40014
40144
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
40015
40145
|
}
|
|
40016
40146
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.61.
|
|
3
|
+
"version": "2.61.62",
|
|
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",
|