codeam-cli 2.61.63 → 2.61.65

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.64] — 2026-07-28
8
+
9
+ ### Added
10
+
11
+ - **shared:** Confluence catalog entry (docs) — alias of Atlassian/Jira
12
+
13
+ ## [2.61.63] — 2026-07-28
14
+
15
+ ### Added
16
+
17
+ - **shared:** Supabase integration (database, OAuth)
18
+
7
19
  ## [2.61.62] — 2026-07-28
8
20
 
9
21
  ### Added
package/dist/index.js CHANGED
@@ -851,13 +851,43 @@ var INTEGRATION_REGISTRY = {
851
851
  name: "Microsoft Teams",
852
852
  icon: "microsoft_teams",
853
853
  category: "comms",
854
- // COMING SOON placeholder catalog entry (no OAuth provider / MCP yet). The
855
- // agent will post review pings + read threads AS THE USER over Microsoft Graph
856
- // once the provider lands. `enabled:false` renders it as a dimmed "coming
857
- // soon" tile inside the (live) comms category.
858
- enabled: false,
859
- auth: { kind: "oauth_redirect" },
860
- delivery: {}
854
+ // LIVEMicrosoft identity platform v2.0 OAuth (multi-tenant, Confidential).
855
+ // The agent reads chats/channels + posts AS THE USER over Microsoft Graph.
856
+ // MS_TEAMS_OAUTH_CLIENT_ID/SECRET/REDIRECT_URI are in Secret Manager (prod+dev);
857
+ // the backend TeamsOAuthProvider is config-gated (503 if env unset).
858
+ // ⚠️ Chat.* + ChannelMessage.Read.All (`.All`) require TENANT-ADMIN consent
859
+ // (MC1163922, Oct-2025) the connecting user must be an org admin, or their
860
+ // IT admin approves the app for the tenant. Not a self-serve funnel like Slack.
861
+ enabled: true,
862
+ auth: {
863
+ kind: "oauth_redirect",
864
+ // Delegated Microsoft Graph scopes. `offline_access` → rotating refresh
865
+ // (Teams access tokens are ~1h). ⚠️ Changing these requires the user to
866
+ // RE-LINK — the token carries only the scopes granted at link time.
867
+ scopes: [
868
+ "User.Read",
869
+ "User.ReadBasic.All",
870
+ "Team.ReadBasic.All",
871
+ "Channel.ReadBasic.All",
872
+ "ChannelMessage.Read.All",
873
+ "ChannelMessage.Send",
874
+ "Chat.Read",
875
+ "Chat.ReadWrite",
876
+ "offline_access"
877
+ ]
878
+ },
879
+ delivery: {
880
+ mcp: {
881
+ // @floriscornel/teams-mcp (Node): BYO Graph access token via AUTH_TOKEN
882
+ // (env only, never argv). Headless. Version PINNED; bump only after
883
+ // re-verifying headless. Tools: get/send channel + chat messages, replies.
884
+ command: "npx",
885
+ args: ["-y", "@floriscornel/teams-mcp@0.9.0"],
886
+ envMapping: {
887
+ AUTH_TOKEN: "accessToken"
888
+ }
889
+ }
890
+ }
861
891
  },
862
892
  google_chat: {
863
893
  id: "google_chat",
@@ -1466,6 +1496,34 @@ var INTEGRATION_REGISTRY = {
1466
1496
  }
1467
1497
  }
1468
1498
  }
1499
+ },
1500
+ confluence: {
1501
+ id: "confluence",
1502
+ name: "Confluence",
1503
+ icon: "confluence",
1504
+ category: "docs",
1505
+ // Confluence is served by the SAME Atlassian OAuth + the SAME `mcp-atlassian`
1506
+ // server as Jira (the `jira` entry already requests Confluence scopes). This
1507
+ // entry is a DISPLAY ALIAS so Confluence is explicit in the Knowledge tab: it
1508
+ // BORROWS jira's vaulted credential (`aliasOf: 'jira'`) and has no link flow of
1509
+ // its own — connecting Atlassian (the Jira/Atlassian card) lights it up, and
1510
+ // the backend resolves its token by delegating to `jira`.
1511
+ enabled: true,
1512
+ auth: { kind: "derived", aliasOf: "jira" },
1513
+ delivery: {
1514
+ mcp: {
1515
+ // Same mcp-atlassian server + BYO-token env as Jira — it exposes the
1516
+ // Confluence tools when the deploy selects Confluence without Jira. If
1517
+ // BOTH are selected the deploy manifest dedupes identical MCP specs.
1518
+ command: "uvx",
1519
+ args: ["mcp-atlassian==0.22.1"],
1520
+ envMapping: {
1521
+ ATLASSIAN_OAUTH_ACCESS_TOKEN: "accessToken",
1522
+ ATLASSIAN_OAUTH_CLOUD_ID: "cloudId"
1523
+ },
1524
+ staticEnv: { ATLASSIAN_OAUTH_ENABLE: "true" }
1525
+ }
1526
+ }
1469
1527
  }
1470
1528
  };
1471
1529
  function getIntegration(id) {
@@ -6911,7 +6969,7 @@ function readAnonId() {
6911
6969
  }
6912
6970
  function superProperties() {
6913
6971
  return {
6914
- cliVersion: true ? "2.61.63" : "0.0.0-dev",
6972
+ cliVersion: true ? "2.61.65" : "0.0.0-dev",
6915
6973
  nodeVersion: process.version,
6916
6974
  platform: process.platform,
6917
6975
  arch: process.arch,
@@ -7092,7 +7150,7 @@ var os4 = __toESM(require("os"));
7092
7150
  // package.json
7093
7151
  var package_default = {
7094
7152
  name: "codeam-cli",
7095
- version: "2.61.63",
7153
+ version: "2.61.65",
7096
7154
  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.",
7097
7155
  type: "commonjs",
7098
7156
  main: "dist/index.js",
@@ -8264,7 +8322,7 @@ var CommandRelayService = class _CommandRelayService {
8264
8322
  // fresh + clear the "CLI update available" banner after a self-update
8265
8323
  // (a codespace that reinstalls @latest reconnects via heartbeat, not
8266
8324
  // pair/reconnect). Older backends ignore the extra field.
8267
- ..."2.61.63" ? { ideVersion: "2.61.63" } : {}
8325
+ ..."2.61.65" ? { ideVersion: "2.61.65" } : {}
8268
8326
  }).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
8269
8327
  }
8270
8328
  /**
@@ -19373,7 +19431,7 @@ async function autoUpgradeBeforeCriticalCommand() {
19373
19431
  if (process.env.NODE_ENV === "test") return;
19374
19432
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19375
19433
  if (process.env.CI) return;
19376
- const current = true ? "2.61.63" : null;
19434
+ const current = true ? "2.61.65" : null;
19377
19435
  if (!current) return;
19378
19436
  const cache = readCache();
19379
19437
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -19390,7 +19448,7 @@ function checkForUpdates() {
19390
19448
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19391
19449
  if (process.env.CI) return;
19392
19450
  if (!process.stdout.isTTY) return;
19393
- const current = true ? "2.61.63" : null;
19451
+ const current = true ? "2.61.65" : null;
19394
19452
  if (!current) return;
19395
19453
  const cache = readCache();
19396
19454
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -19410,7 +19468,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
19410
19468
  var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
19411
19469
  var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
19412
19470
  function currentCliVersion() {
19413
- return true ? "2.61.63" : null;
19471
+ return true ? "2.61.65" : null;
19414
19472
  }
19415
19473
  function runCmd(cmd, args2, timeoutMs) {
19416
19474
  return new Promise((resolve8) => {
@@ -39649,7 +39707,7 @@ function checkChokidar() {
39649
39707
  }
39650
39708
  async function doctor(args2 = []) {
39651
39709
  const json = args2.includes("--json");
39652
- const cliVersion = true ? "2.61.63" : "0.0.0-dev";
39710
+ const cliVersion = true ? "2.61.65" : "0.0.0-dev";
39653
39711
  const apiBase2 = resolveApiBaseUrl();
39654
39712
  const diagnosticId = (0, import_node_crypto13.randomUUID)();
39655
39713
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -40171,7 +40229,7 @@ async function mcpRun(args2) {
40171
40229
  // src/commands/version.ts
40172
40230
  var import_picocolors15 = __toESM(require("picocolors"));
40173
40231
  function version2() {
40174
- const v = true ? "2.61.63" : "unknown";
40232
+ const v = true ? "2.61.65" : "unknown";
40175
40233
  console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
40176
40234
  }
40177
40235
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.61.63",
3
+ "version": "2.61.65",
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",