@codeam/shared 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/dist/index.mjs CHANGED
@@ -758,13 +758,43 @@ var INTEGRATION_REGISTRY = {
758
758
  name: "Microsoft Teams",
759
759
  icon: "microsoft_teams",
760
760
  category: "comms",
761
- // COMING SOON placeholder catalog entry (no OAuth provider / MCP yet). The
762
- // agent will post review pings + read threads AS THE USER over Microsoft Graph
763
- // once the provider lands. `enabled:false` renders it as a dimmed "coming
764
- // soon" tile inside the (live) comms category.
765
- enabled: false,
766
- auth: { kind: "oauth_redirect" },
767
- delivery: {}
761
+ // LIVEMicrosoft identity platform v2.0 OAuth (multi-tenant, Confidential).
762
+ // The agent reads chats/channels + posts AS THE USER over Microsoft Graph.
763
+ // MS_TEAMS_OAUTH_CLIENT_ID/SECRET/REDIRECT_URI are in Secret Manager (prod+dev);
764
+ // the backend TeamsOAuthProvider is config-gated (503 if env unset).
765
+ // ⚠️ Chat.* + ChannelMessage.Read.All (`.All`) require TENANT-ADMIN consent
766
+ // (MC1163922, Oct-2025) the connecting user must be an org admin, or their
767
+ // IT admin approves the app for the tenant. Not a self-serve funnel like Slack.
768
+ enabled: true,
769
+ auth: {
770
+ kind: "oauth_redirect",
771
+ // Delegated Microsoft Graph scopes. `offline_access` → rotating refresh
772
+ // (Teams access tokens are ~1h). ⚠️ Changing these requires the user to
773
+ // RE-LINK — the token carries only the scopes granted at link time.
774
+ scopes: [
775
+ "User.Read",
776
+ "User.ReadBasic.All",
777
+ "Team.ReadBasic.All",
778
+ "Channel.ReadBasic.All",
779
+ "ChannelMessage.Read.All",
780
+ "ChannelMessage.Send",
781
+ "Chat.Read",
782
+ "Chat.ReadWrite",
783
+ "offline_access"
784
+ ]
785
+ },
786
+ delivery: {
787
+ mcp: {
788
+ // @floriscornel/teams-mcp (Node): BYO Graph access token via AUTH_TOKEN
789
+ // (env only, never argv). Headless. Version PINNED; bump only after
790
+ // re-verifying headless. Tools: get/send channel + chat messages, replies.
791
+ command: "npx",
792
+ args: ["-y", "@floriscornel/teams-mcp@0.9.0"],
793
+ envMapping: {
794
+ AUTH_TOKEN: "accessToken"
795
+ }
796
+ }
797
+ }
768
798
  },
769
799
  google_chat: {
770
800
  id: "google_chat",
@@ -1035,11 +1065,12 @@ var INTEGRATION_REGISTRY = {
1035
1065
  name: "Figma",
1036
1066
  icon: "figma",
1037
1067
  category: "design",
1038
- // DARK pending Figma's OAuth-app review approval (submitted 2026-07-16).
1039
- // Figma OAuth apps do NOT exist publicly until review passes (authorize URL
1040
- // errors "OAuth app ... doesn't exist"). Backend provider + secrets are
1041
- // already deployed; flip to true once approved (bead codeagent-m4ix).
1042
- enabled: false,
1068
+ // LIVE. OAuth is the PRIMARY flow (app pending Figma's review until it
1069
+ // passes the authorize URL errors "OAuth app doesn't exist"), so a PAT
1070
+ // fallback (`apiKeyFallback`) ships alongside it and works TODAY: the user
1071
+ // pastes a Figma personal access token. Same OAuth-primary + PAT-secondary
1072
+ // shape as GitHub. Flip of the OAuth review is transparent (bead codeagent-m4ix).
1073
+ enabled: true,
1043
1074
  auth: {
1044
1075
  kind: "oauth_redirect",
1045
1076
  // Granular READ-ONLY scopes (legacy `files:read` is deprecated for
@@ -1053,7 +1084,25 @@ var INTEGRATION_REGISTRY = {
1053
1084
  "file_metadata:read",
1054
1085
  "file_dev_resources:read",
1055
1086
  "library_content:read"
1056
- ]
1087
+ ],
1088
+ // SECONDARY: paste a Figma personal access token instead of OAuth. The
1089
+ // PAT uses the `X-Figma-Token` header, so the delivery env var differs
1090
+ // from OAuth (`FIGMA_API_KEY` vs `FIGMA_OAUTH_TOKEN`) — hence its own
1091
+ // envMapping, used when the credential was linked via PAT.
1092
+ apiKeyFallback: {
1093
+ fields: [
1094
+ {
1095
+ key: "accessToken",
1096
+ label: "Figma personal access token",
1097
+ placeholder: "figd_\u2026",
1098
+ secret: true,
1099
+ help: "Figma \u2192 Settings \u2192 Security \u2192 Personal access tokens (read-only scopes)."
1100
+ }
1101
+ ],
1102
+ envMapping: {
1103
+ FIGMA_API_KEY: "accessToken"
1104
+ }
1105
+ }
1057
1106
  },
1058
1107
  delivery: {
1059
1108
  mcp: {
@@ -1700,7 +1749,6 @@ var INTEGRATION_BRANDING = {
1700
1749
  };
1701
1750
  var UPCOMING_INTEGRATION_IDS = [
1702
1751
  "gmail",
1703
- "figma",
1704
1752
  "asana",
1705
1753
  "stripe",
1706
1754
  "pendo",