@codeam/shared 2.61.12 → 2.61.13

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.d.mts CHANGED
@@ -327,7 +327,7 @@ declare function isHeadroomWrappable(agentId: string): boolean;
327
327
  * ubiquitous CLI for the tool → `cliEnv`; otherwise → `mcp`. A tool may
328
328
  * declare both.
329
329
  */
330
- type IntegrationId = 'jira' | 'sentry' | 'linear' | 'slack' | 'notion' | 'azure_devops';
330
+ type IntegrationId = 'jira' | 'sentry' | 'linear' | 'slack' | 'notion' | 'azure_devops' | 'figma';
331
331
  type IntegrationAuthKind = 'oauth_redirect' | 'oauth_device' | 'api_key';
332
332
  /**
333
333
  * One user-entered field for an `api_key` integration (no browser OAuth — the
@@ -456,7 +456,7 @@ interface IntegrationBranding {
456
456
  logoSvg: string;
457
457
  }
458
458
  declare const INTEGRATION_BRANDING: Record<string, IntegrationBranding>;
459
- declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "posthog", "clickup", "figma", "trello", "resend", "vercel", "supabase", "asana", "postman", "n8n", "stripe", "mixpanel", "pendo", "pagerduty", "amplitude", "datadog"];
459
+ declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "posthog", "clickup", "trello", "resend", "vercel", "supabase", "asana", "postman", "n8n", "stripe", "mixpanel", "pendo", "pagerduty", "amplitude", "datadog"];
460
460
  declare function getIntegrationBranding(id: string): IntegrationBranding | null;
461
461
 
462
462
  /**
package/dist/index.d.ts CHANGED
@@ -327,7 +327,7 @@ declare function isHeadroomWrappable(agentId: string): boolean;
327
327
  * ubiquitous CLI for the tool → `cliEnv`; otherwise → `mcp`. A tool may
328
328
  * declare both.
329
329
  */
330
- type IntegrationId = 'jira' | 'sentry' | 'linear' | 'slack' | 'notion' | 'azure_devops';
330
+ type IntegrationId = 'jira' | 'sentry' | 'linear' | 'slack' | 'notion' | 'azure_devops' | 'figma';
331
331
  type IntegrationAuthKind = 'oauth_redirect' | 'oauth_device' | 'api_key';
332
332
  /**
333
333
  * One user-entered field for an `api_key` integration (no browser OAuth — the
@@ -456,7 +456,7 @@ interface IntegrationBranding {
456
456
  logoSvg: string;
457
457
  }
458
458
  declare const INTEGRATION_BRANDING: Record<string, IntegrationBranding>;
459
- declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "posthog", "clickup", "figma", "trello", "resend", "vercel", "supabase", "asana", "postman", "n8n", "stripe", "mixpanel", "pendo", "pagerduty", "amplitude", "datadog"];
459
+ declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "posthog", "clickup", "trello", "resend", "vercel", "supabase", "asana", "postman", "n8n", "stripe", "mixpanel", "pendo", "pagerduty", "amplitude", "datadog"];
460
460
  declare function getIntegrationBranding(id: string): IntegrationBranding | null;
461
461
 
462
462
  /**
package/dist/index.js CHANGED
@@ -791,6 +791,49 @@ var INTEGRATION_REGISTRY = {
791
791
  staticEnv: { AZURE_DEVOPS_AUTH_METHOD: "pat" }
792
792
  }
793
793
  }
794
+ },
795
+ figma: {
796
+ id: "figma",
797
+ name: "Figma",
798
+ icon: "figma",
799
+ // LIVE — the Figma OAuth app (Confidential, both prod+dev redirect URIs)
800
+ // is registered and FIGMA_OAUTH_CLIENT_ID/SECRET/REDIRECT_URI are in
801
+ // Secret Manager (prod+dev, created 2026-07-16). The backend
802
+ // FigmaOAuthProvider is config-gated (503 if env unset) so this is safe
803
+ // even mid-rollout before the secrets mount.
804
+ enabled: true,
805
+ auth: {
806
+ kind: "oauth_redirect",
807
+ // Granular READ-ONLY scopes (legacy `files:read` is deprecated for
808
+ // OAuth). Asset export (GET /v1/images) rides file_content:read.
809
+ // file_variables:read is Enterprise-only and would break linking for
810
+ // normal accounts — deliberately excluded. ⚠️ Changing these requires
811
+ // the user to RE-LINK Figma.
812
+ scopes: [
813
+ "current_user:read",
814
+ "file_content:read",
815
+ "file_metadata:read",
816
+ "file_dev_resources:read",
817
+ "library_content:read"
818
+ ]
819
+ },
820
+ delivery: {
821
+ mcp: {
822
+ // Framelink figma-developer-mcp (Node, stdio) in BYO-token headless
823
+ // mode — the ONLY known Figma MCP server that accepts an OAuth
824
+ // Bearer token: FIGMA_OAUTH_TOKEN → `Authorization: Bearer` (env
825
+ // only, never argv). Figma's official servers can't be used here
826
+ // (remote = interactive OAuth + client allowlist; Dev Mode =
827
+ // desktop app). Version PINNED; bump only after re-verifying
828
+ // headless. Tools: get_figma_data (condensed layout extraction) +
829
+ // download_figma_images (asset export).
830
+ command: "npx",
831
+ args: ["-y", "figma-developer-mcp@0.13.2", "--stdio", "--no-telemetry"],
832
+ envMapping: {
833
+ FIGMA_OAUTH_TOKEN: "accessToken"
834
+ }
835
+ }
836
+ }
794
837
  }
795
838
  };
796
839
  function getEnabledIntegrations() {
@@ -998,7 +1041,6 @@ var UPCOMING_INTEGRATION_IDS = [
998
1041
  "gmail",
999
1042
  "posthog",
1000
1043
  "clickup",
1001
- "figma",
1002
1044
  "trello",
1003
1045
  "resend",
1004
1046
  "vercel",