codeam-cli 2.61.61 → 2.61.63

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.62] — 2026-07-28
8
+
9
+ ### Added
10
+
11
+ - **shared:** Postman + Mixpanel integrations (api_key)
12
+
13
+ ## [2.61.61] — 2026-07-27
14
+
15
+ ### Added
16
+
17
+ - **shared:** N8n integration (automation, api_key + n8n MCP)
18
+
7
19
  ## [2.61.59] — 2026-07-27
8
20
 
9
21
  ### Added
package/dist/index.js CHANGED
@@ -1351,6 +1351,121 @@ var INTEGRATION_REGISTRY = {
1351
1351
  staticEnv: { MCP_MODE: "stdio" }
1352
1352
  }
1353
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
+ }
1438
+ },
1439
+ supabase: {
1440
+ id: "supabase",
1441
+ name: "Supabase",
1442
+ icon: "supabase",
1443
+ category: "database",
1444
+ // LIVE — OAuth 2.0 (authorization code, Confidential). authorize
1445
+ // api.supabase.com/v1/oauth/authorize; token /v1/oauth/token
1446
+ // (form-urlencoded, client creds via HTTP Basic); rotating refresh tokens.
1447
+ // The OAuth app (Organization → OAuth Apps) is registered and
1448
+ // SUPABASE_OAUTH_CLIENT_ID/SECRET/REDIRECT_URI are in Secret Manager
1449
+ // (prod+dev); the config-gated 503 keeps this safe mid-rollout.
1450
+ enabled: true,
1451
+ auth: {
1452
+ kind: "oauth_redirect",
1453
+ // ⚠️ Supabase scopes are configured ON THE OAUTH APP, NOT sent in the
1454
+ // authorize URL — this list is informational (what the app was granted).
1455
+ scopes: ["all"]
1456
+ },
1457
+ delivery: {
1458
+ mcp: {
1459
+ // Supabase's OFFICIAL MCP server (Node). The OAuth access token IS a
1460
+ // Management API token → fed via SUPABASE_ACCESS_TOKEN (env only, never
1461
+ // argv). Version PINNED; bump only after re-verifying headless.
1462
+ command: "npx",
1463
+ args: ["-y", "@supabase/mcp-server-supabase@0.9.0"],
1464
+ envMapping: {
1465
+ SUPABASE_ACCESS_TOKEN: "accessToken"
1466
+ }
1467
+ }
1468
+ }
1354
1469
  }
1355
1470
  };
1356
1471
  function getIntegration(id) {
@@ -6796,7 +6911,7 @@ function readAnonId() {
6796
6911
  }
6797
6912
  function superProperties() {
6798
6913
  return {
6799
- cliVersion: true ? "2.61.61" : "0.0.0-dev",
6914
+ cliVersion: true ? "2.61.63" : "0.0.0-dev",
6800
6915
  nodeVersion: process.version,
6801
6916
  platform: process.platform,
6802
6917
  arch: process.arch,
@@ -6977,7 +7092,7 @@ var os4 = __toESM(require("os"));
6977
7092
  // package.json
6978
7093
  var package_default = {
6979
7094
  name: "codeam-cli",
6980
- version: "2.61.61",
7095
+ version: "2.61.63",
6981
7096
  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.",
6982
7097
  type: "commonjs",
6983
7098
  main: "dist/index.js",
@@ -8149,7 +8264,7 @@ var CommandRelayService = class _CommandRelayService {
8149
8264
  // fresh + clear the "CLI update available" banner after a self-update
8150
8265
  // (a codespace that reinstalls @latest reconnects via heartbeat, not
8151
8266
  // pair/reconnect). Older backends ignore the extra field.
8152
- ..."2.61.61" ? { ideVersion: "2.61.61" } : {}
8267
+ ..."2.61.63" ? { ideVersion: "2.61.63" } : {}
8153
8268
  }).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
8154
8269
  }
8155
8270
  /**
@@ -19258,7 +19373,7 @@ async function autoUpgradeBeforeCriticalCommand() {
19258
19373
  if (process.env.NODE_ENV === "test") return;
19259
19374
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19260
19375
  if (process.env.CI) return;
19261
- const current = true ? "2.61.61" : null;
19376
+ const current = true ? "2.61.63" : null;
19262
19377
  if (!current) return;
19263
19378
  const cache = readCache();
19264
19379
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -19275,7 +19390,7 @@ function checkForUpdates() {
19275
19390
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19276
19391
  if (process.env.CI) return;
19277
19392
  if (!process.stdout.isTTY) return;
19278
- const current = true ? "2.61.61" : null;
19393
+ const current = true ? "2.61.63" : null;
19279
19394
  if (!current) return;
19280
19395
  const cache = readCache();
19281
19396
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -19295,7 +19410,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
19295
19410
  var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
19296
19411
  var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
19297
19412
  function currentCliVersion() {
19298
- return true ? "2.61.61" : null;
19413
+ return true ? "2.61.63" : null;
19299
19414
  }
19300
19415
  function runCmd(cmd, args2, timeoutMs) {
19301
19416
  return new Promise((resolve8) => {
@@ -39534,7 +39649,7 @@ function checkChokidar() {
39534
39649
  }
39535
39650
  async function doctor(args2 = []) {
39536
39651
  const json = args2.includes("--json");
39537
- const cliVersion = true ? "2.61.61" : "0.0.0-dev";
39652
+ const cliVersion = true ? "2.61.63" : "0.0.0-dev";
39538
39653
  const apiBase2 = resolveApiBaseUrl();
39539
39654
  const diagnosticId = (0, import_node_crypto13.randomUUID)();
39540
39655
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -40056,7 +40171,7 @@ async function mcpRun(args2) {
40056
40171
  // src/commands/version.ts
40057
40172
  var import_picocolors15 = __toESM(require("picocolors"));
40058
40173
  function version2() {
40059
- const v = true ? "2.61.61" : "unknown";
40174
+ const v = true ? "2.61.63" : "unknown";
40060
40175
  console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
40061
40176
  }
40062
40177
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.61.61",
3
+ "version": "2.61.63",
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",