codeam-cli 2.61.64 → 2.61.66

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.65] — 2026-07-28
8
+
9
+ ### Added
10
+
11
+ - **shared:** Enable Microsoft Teams (comms, OAuth Graph + teams MCP)
12
+
13
+ ## [2.61.64] — 2026-07-28
14
+
15
+ ### Added
16
+
17
+ - **shared:** Confluence catalog entry (docs) — alias of Atlassian/Jira
18
+
7
19
  ## [2.61.63] — 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",
@@ -1128,11 +1158,12 @@ var INTEGRATION_REGISTRY = {
1128
1158
  name: "Figma",
1129
1159
  icon: "figma",
1130
1160
  category: "design",
1131
- // DARK pending Figma's OAuth-app review approval (submitted 2026-07-16).
1132
- // Figma OAuth apps do NOT exist publicly until review passes (authorize URL
1133
- // errors "OAuth app ... doesn't exist"). Backend provider + secrets are
1134
- // already deployed; flip to true once approved (bead codeagent-m4ix).
1135
- enabled: false,
1161
+ // LIVE. OAuth is the PRIMARY flow (app pending Figma's review until it
1162
+ // passes the authorize URL errors "OAuth app doesn't exist"), so a PAT
1163
+ // fallback (`apiKeyFallback`) ships alongside it and works TODAY: the user
1164
+ // pastes a Figma personal access token. Same OAuth-primary + PAT-secondary
1165
+ // shape as GitHub. Flip of the OAuth review is transparent (bead codeagent-m4ix).
1166
+ enabled: true,
1136
1167
  auth: {
1137
1168
  kind: "oauth_redirect",
1138
1169
  // Granular READ-ONLY scopes (legacy `files:read` is deprecated for
@@ -1146,7 +1177,25 @@ var INTEGRATION_REGISTRY = {
1146
1177
  "file_metadata:read",
1147
1178
  "file_dev_resources:read",
1148
1179
  "library_content:read"
1149
- ]
1180
+ ],
1181
+ // SECONDARY: paste a Figma personal access token instead of OAuth. The
1182
+ // PAT uses the `X-Figma-Token` header, so the delivery env var differs
1183
+ // from OAuth (`FIGMA_API_KEY` vs `FIGMA_OAUTH_TOKEN`) — hence its own
1184
+ // envMapping, used when the credential was linked via PAT.
1185
+ apiKeyFallback: {
1186
+ fields: [
1187
+ {
1188
+ key: "accessToken",
1189
+ label: "Figma personal access token",
1190
+ placeholder: "figd_\u2026",
1191
+ secret: true,
1192
+ help: "Figma \u2192 Settings \u2192 Security \u2192 Personal access tokens (read-only scopes)."
1193
+ }
1194
+ ],
1195
+ envMapping: {
1196
+ FIGMA_API_KEY: "accessToken"
1197
+ }
1198
+ }
1150
1199
  },
1151
1200
  delivery: {
1152
1201
  mcp: {
@@ -6939,7 +6988,7 @@ function readAnonId() {
6939
6988
  }
6940
6989
  function superProperties() {
6941
6990
  return {
6942
- cliVersion: true ? "2.61.64" : "0.0.0-dev",
6991
+ cliVersion: true ? "2.61.66" : "0.0.0-dev",
6943
6992
  nodeVersion: process.version,
6944
6993
  platform: process.platform,
6945
6994
  arch: process.arch,
@@ -7120,7 +7169,7 @@ var os4 = __toESM(require("os"));
7120
7169
  // package.json
7121
7170
  var package_default = {
7122
7171
  name: "codeam-cli",
7123
- version: "2.61.64",
7172
+ version: "2.61.66",
7124
7173
  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.",
7125
7174
  type: "commonjs",
7126
7175
  main: "dist/index.js",
@@ -8292,7 +8341,7 @@ var CommandRelayService = class _CommandRelayService {
8292
8341
  // fresh + clear the "CLI update available" banner after a self-update
8293
8342
  // (a codespace that reinstalls @latest reconnects via heartbeat, not
8294
8343
  // pair/reconnect). Older backends ignore the extra field.
8295
- ..."2.61.64" ? { ideVersion: "2.61.64" } : {}
8344
+ ..."2.61.66" ? { ideVersion: "2.61.66" } : {}
8296
8345
  }).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
8297
8346
  }
8298
8347
  /**
@@ -19401,7 +19450,7 @@ async function autoUpgradeBeforeCriticalCommand() {
19401
19450
  if (process.env.NODE_ENV === "test") return;
19402
19451
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19403
19452
  if (process.env.CI) return;
19404
- const current = true ? "2.61.64" : null;
19453
+ const current = true ? "2.61.66" : null;
19405
19454
  if (!current) return;
19406
19455
  const cache = readCache();
19407
19456
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -19418,7 +19467,7 @@ function checkForUpdates() {
19418
19467
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19419
19468
  if (process.env.CI) return;
19420
19469
  if (!process.stdout.isTTY) return;
19421
- const current = true ? "2.61.64" : null;
19470
+ const current = true ? "2.61.66" : null;
19422
19471
  if (!current) return;
19423
19472
  const cache = readCache();
19424
19473
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -19438,7 +19487,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
19438
19487
  var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
19439
19488
  var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
19440
19489
  function currentCliVersion() {
19441
- return true ? "2.61.64" : null;
19490
+ return true ? "2.61.66" : null;
19442
19491
  }
19443
19492
  function runCmd(cmd, args2, timeoutMs) {
19444
19493
  return new Promise((resolve8) => {
@@ -39677,7 +39726,7 @@ function checkChokidar() {
39677
39726
  }
39678
39727
  async function doctor(args2 = []) {
39679
39728
  const json = args2.includes("--json");
39680
- const cliVersion = true ? "2.61.64" : "0.0.0-dev";
39729
+ const cliVersion = true ? "2.61.66" : "0.0.0-dev";
39681
39730
  const apiBase2 = resolveApiBaseUrl();
39682
39731
  const diagnosticId = (0, import_node_crypto13.randomUUID)();
39683
39732
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -40199,7 +40248,7 @@ async function mcpRun(args2) {
40199
40248
  // src/commands/version.ts
40200
40249
  var import_picocolors15 = __toESM(require("picocolors"));
40201
40250
  function version2() {
40202
- const v = true ? "2.61.64" : "unknown";
40251
+ const v = true ? "2.61.66" : "unknown";
40203
40252
  console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
40204
40253
  }
40205
40254
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.61.64",
3
+ "version": "2.61.66",
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",