codeam-cli 2.61.66 → 2.61.68

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.67] — 2026-07-28
8
+
9
+ ### Added
10
+
11
+ - **shared:** Cloudflare integration (deployment, OAuth + Cloudflare MCP)
12
+
13
+ ## [2.61.66] — 2026-07-28
14
+
15
+ ### Added
16
+
17
+ - **shared:** Figma dual-auth (OAuth primary + PAT fallback) — enable design
18
+
7
19
  ## [2.61.65] — 2026-07-28
8
20
 
9
21
  ### Added
package/dist/index.js CHANGED
@@ -1255,7 +1255,7 @@ var INTEGRATION_REGISTRY = {
1255
1255
  id: "vercel",
1256
1256
  name: "Vercel",
1257
1257
  icon: "vercel",
1258
- category: "deployment",
1258
+ category: "infrastructure",
1259
1259
  // DARK — OAuth (PKCE public client). The user authorizes our registered
1260
1260
  // Vercel OAuth app; the access token calls Vercel's OFFICIAL hosted remote
1261
1261
  // MCP (mcp.vercel.com, Streamable HTTP) as a Bearer header — the SAME shim
@@ -1543,6 +1543,92 @@ var INTEGRATION_REGISTRY = {
1543
1543
  staticEnv: { ATLASSIAN_OAUTH_ENABLE: "true" }
1544
1544
  }
1545
1545
  }
1546
+ },
1547
+ cloudflare: {
1548
+ id: "cloudflare",
1549
+ name: "Cloudflare",
1550
+ icon: "cloudflare",
1551
+ category: "infrastructure",
1552
+ // LIVE — Cloudflare self-managed OAuth (dash.cloudflare.com OAuth server,
1553
+ // the same one Wrangler uses). Confidential (Client Secret POST). The agent
1554
+ // inspects/deploys Workers, Pages, DNS, KV, R2 + reads analytics/logs on the
1555
+ // user's account. CLOUDFLARE_OAUTH_CLIENT_ID/SECRET/REDIRECT_URI in Secret
1556
+ // Manager (prod+dev); the backend CloudflareOAuthProvider is config-gated (503).
1557
+ enabled: true,
1558
+ auth: {
1559
+ kind: "oauth_redirect",
1560
+ // Cloudflare OAuth scope IDs == API-token permission-group names (dot
1561
+ // form, e.g. `workers-scripts.write`). ⚠️ MUST exactly match the scopes
1562
+ // configured on the OAuth client (b2b4b87e…). `offline_access` → refresh.
1563
+ scopes: [
1564
+ // Developer Platform (Workers / Pages / KV / R2 / D1 / observability)
1565
+ "d1.read",
1566
+ "page.read",
1567
+ "page.write",
1568
+ "workers-ci.read",
1569
+ "workers-ci.write",
1570
+ "containers.read",
1571
+ "containers.write",
1572
+ "workers-kv-storage.read",
1573
+ "workers-kv-storage.write",
1574
+ "workers-observability.read",
1575
+ "workers-observability-telemetry.write",
1576
+ "workers-observability.write",
1577
+ "r2-catalog.read",
1578
+ "r2-catalog.write",
1579
+ "r2-catalog-sql.read",
1580
+ "workers-r2-bucket-item.read",
1581
+ "workers-r2-bucket-item.write",
1582
+ "workers-r2.read",
1583
+ "workers-r2.write",
1584
+ "workers-routes.read",
1585
+ "workers-routes.write",
1586
+ "workers-scripts.read",
1587
+ "workers-scripts.write",
1588
+ "workers-tail.read",
1589
+ // DNS & Zones
1590
+ "account-dns-settings.read",
1591
+ "account-dns-settings.write",
1592
+ "dns-firewall.read",
1593
+ "dns-firewall.write",
1594
+ "dns.read",
1595
+ "dns-view.read",
1596
+ "dns.write",
1597
+ "registrar-domains.admin",
1598
+ "registrar-sandbox-domains.admin",
1599
+ "zone-dns-settings.read",
1600
+ "zone-dns-settings.write",
1601
+ "zone.read",
1602
+ "zone-settings.read",
1603
+ "zone-settings.write",
1604
+ // Analytics & Logs
1605
+ "account-analytics.read",
1606
+ "analytics.read",
1607
+ "account-logs.read",
1608
+ "logs.read",
1609
+ "radar.read",
1610
+ // Account & Billing
1611
+ "account-api-gateway.read",
1612
+ "account-settings.read",
1613
+ "memberships.read",
1614
+ "notifications.read",
1615
+ "user-details.read",
1616
+ "offline_access"
1617
+ ]
1618
+ },
1619
+ delivery: {
1620
+ mcp: {
1621
+ // Headless stdio Cloudflare MCP (Cloudflare API v4) — BYO token via env,
1622
+ // the OAuth access token works as a Bearer against api.cloudflare.com.
1623
+ // The account id is the discriminator for account-level ops. PINNED.
1624
+ command: "npx",
1625
+ args: ["-y", "@itunified.io/mcp-cloudflare@2026.4.10-1"],
1626
+ envMapping: {
1627
+ CLOUDFLARE_API_TOKEN: "accessToken",
1628
+ CLOUDFLARE_ACCOUNT_ID: "accountId"
1629
+ }
1630
+ }
1631
+ }
1546
1632
  }
1547
1633
  };
1548
1634
  function getIntegration(id) {
@@ -6988,7 +7074,7 @@ function readAnonId() {
6988
7074
  }
6989
7075
  function superProperties() {
6990
7076
  return {
6991
- cliVersion: true ? "2.61.66" : "0.0.0-dev",
7077
+ cliVersion: true ? "2.61.68" : "0.0.0-dev",
6992
7078
  nodeVersion: process.version,
6993
7079
  platform: process.platform,
6994
7080
  arch: process.arch,
@@ -7169,7 +7255,7 @@ var os4 = __toESM(require("os"));
7169
7255
  // package.json
7170
7256
  var package_default = {
7171
7257
  name: "codeam-cli",
7172
- version: "2.61.66",
7258
+ version: "2.61.68",
7173
7259
  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.",
7174
7260
  type: "commonjs",
7175
7261
  main: "dist/index.js",
@@ -8341,7 +8427,7 @@ var CommandRelayService = class _CommandRelayService {
8341
8427
  // fresh + clear the "CLI update available" banner after a self-update
8342
8428
  // (a codespace that reinstalls @latest reconnects via heartbeat, not
8343
8429
  // pair/reconnect). Older backends ignore the extra field.
8344
- ..."2.61.66" ? { ideVersion: "2.61.66" } : {}
8430
+ ..."2.61.68" ? { ideVersion: "2.61.68" } : {}
8345
8431
  }).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
8346
8432
  }
8347
8433
  /**
@@ -19450,7 +19536,7 @@ async function autoUpgradeBeforeCriticalCommand() {
19450
19536
  if (process.env.NODE_ENV === "test") return;
19451
19537
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19452
19538
  if (process.env.CI) return;
19453
- const current = true ? "2.61.66" : null;
19539
+ const current = true ? "2.61.68" : null;
19454
19540
  if (!current) return;
19455
19541
  const cache = readCache();
19456
19542
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -19467,7 +19553,7 @@ function checkForUpdates() {
19467
19553
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19468
19554
  if (process.env.CI) return;
19469
19555
  if (!process.stdout.isTTY) return;
19470
- const current = true ? "2.61.66" : null;
19556
+ const current = true ? "2.61.68" : null;
19471
19557
  if (!current) return;
19472
19558
  const cache = readCache();
19473
19559
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -19487,7 +19573,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
19487
19573
  var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
19488
19574
  var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
19489
19575
  function currentCliVersion() {
19490
- return true ? "2.61.66" : null;
19576
+ return true ? "2.61.68" : null;
19491
19577
  }
19492
19578
  function runCmd(cmd, args2, timeoutMs) {
19493
19579
  return new Promise((resolve8) => {
@@ -39726,7 +39812,7 @@ function checkChokidar() {
39726
39812
  }
39727
39813
  async function doctor(args2 = []) {
39728
39814
  const json = args2.includes("--json");
39729
- const cliVersion = true ? "2.61.66" : "0.0.0-dev";
39815
+ const cliVersion = true ? "2.61.68" : "0.0.0-dev";
39730
39816
  const apiBase2 = resolveApiBaseUrl();
39731
39817
  const diagnosticId = (0, import_node_crypto13.randomUUID)();
39732
39818
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -40248,7 +40334,7 @@ async function mcpRun(args2) {
40248
40334
  // src/commands/version.ts
40249
40335
  var import_picocolors15 = __toESM(require("picocolors"));
40250
40336
  function version2() {
40251
- const v = true ? "2.61.66" : "unknown";
40337
+ const v = true ? "2.61.68" : "unknown";
40252
40338
  console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
40253
40339
  }
40254
40340
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.61.66",
3
+ "version": "2.61.68",
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",