@codeam/shared 2.61.62 → 2.61.63

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
@@ -351,7 +351,7 @@ declare function isHeadroomWrappable(agentId: string): boolean;
351
351
  * ubiquitous CLI for the tool → `cliEnv`; otherwise → `mcp`. A tool may
352
352
  * declare both.
353
353
  */
354
- type IntegrationId = 'jira' | 'sentry' | 'linear' | 'slack' | 'notion' | 'azure_devops' | 'figma' | 'microsoft_teams' | 'google_chat' | 'discord' | 'resend' | 'posthog' | 'datadog' | 'stitch' | 'github_issues' | 'github' | 'gitlab' | 'vercel' | 'trello' | 'clickup' | 'n8n' | 'postman' | 'mixpanel';
354
+ type IntegrationId = 'jira' | 'sentry' | 'linear' | 'slack' | 'notion' | 'azure_devops' | 'figma' | 'microsoft_teams' | 'google_chat' | 'discord' | 'resend' | 'posthog' | 'datadog' | 'stitch' | 'github_issues' | 'github' | 'gitlab' | 'vercel' | 'trello' | 'clickup' | 'n8n' | 'postman' | 'mixpanel' | 'supabase';
355
355
  /**
356
356
  * `derived` = no link flow of its own: the credential is BORROWED live from a
357
357
  * connection the user already made elsewhere (see `derivedFrom`). The backend
@@ -380,7 +380,7 @@ type DerivedCredentialSource = 'github';
380
380
  /** Grouping used by category-driven surfaces (Start-from-Work-Item picker,
381
381
  * catalog sections). A future tracker integration joins those features with
382
382
  * ZERO feature code — they resolve sources from the registry by category. */
383
- type IntegrationCategory = 'version_control' | 'tracker' | 'design' | 'comms' | 'docs' | 'observability' | 'deployment' | 'automation' | 'analytics' | 'api_tools';
383
+ type IntegrationCategory = 'version_control' | 'tracker' | 'design' | 'comms' | 'docs' | 'observability' | 'deployment' | 'automation' | 'analytics' | 'api_tools' | 'database';
384
384
  /**
385
385
  * One user-entered field for an `api_key` integration (no browser OAuth — the
386
386
  * user pastes credentials directly, e.g. a PAT + an org URL). The mobile form
@@ -568,7 +568,7 @@ interface IntegrationBranding {
568
568
  logoSvg: string;
569
569
  }
570
570
  declare const INTEGRATION_BRANDING: Record<string, IntegrationBranding>;
571
- declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "figma", "supabase", "asana", "stripe", "pendo", "pagerduty", "amplitude"];
571
+ declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "figma", "asana", "stripe", "pendo", "pagerduty", "amplitude"];
572
572
  declare function getIntegrationBranding(id: string): IntegrationBranding | null;
573
573
 
574
574
  /**
package/dist/index.d.ts CHANGED
@@ -351,7 +351,7 @@ declare function isHeadroomWrappable(agentId: string): boolean;
351
351
  * ubiquitous CLI for the tool → `cliEnv`; otherwise → `mcp`. A tool may
352
352
  * declare both.
353
353
  */
354
- type IntegrationId = 'jira' | 'sentry' | 'linear' | 'slack' | 'notion' | 'azure_devops' | 'figma' | 'microsoft_teams' | 'google_chat' | 'discord' | 'resend' | 'posthog' | 'datadog' | 'stitch' | 'github_issues' | 'github' | 'gitlab' | 'vercel' | 'trello' | 'clickup' | 'n8n' | 'postman' | 'mixpanel';
354
+ type IntegrationId = 'jira' | 'sentry' | 'linear' | 'slack' | 'notion' | 'azure_devops' | 'figma' | 'microsoft_teams' | 'google_chat' | 'discord' | 'resend' | 'posthog' | 'datadog' | 'stitch' | 'github_issues' | 'github' | 'gitlab' | 'vercel' | 'trello' | 'clickup' | 'n8n' | 'postman' | 'mixpanel' | 'supabase';
355
355
  /**
356
356
  * `derived` = no link flow of its own: the credential is BORROWED live from a
357
357
  * connection the user already made elsewhere (see `derivedFrom`). The backend
@@ -380,7 +380,7 @@ type DerivedCredentialSource = 'github';
380
380
  /** Grouping used by category-driven surfaces (Start-from-Work-Item picker,
381
381
  * catalog sections). A future tracker integration joins those features with
382
382
  * ZERO feature code — they resolve sources from the registry by category. */
383
- type IntegrationCategory = 'version_control' | 'tracker' | 'design' | 'comms' | 'docs' | 'observability' | 'deployment' | 'automation' | 'analytics' | 'api_tools';
383
+ type IntegrationCategory = 'version_control' | 'tracker' | 'design' | 'comms' | 'docs' | 'observability' | 'deployment' | 'automation' | 'analytics' | 'api_tools' | 'database';
384
384
  /**
385
385
  * One user-entered field for an `api_key` integration (no browser OAuth — the
386
386
  * user pastes credentials directly, e.g. a PAT + an org URL). The mobile form
@@ -568,7 +568,7 @@ interface IntegrationBranding {
568
568
  logoSvg: string;
569
569
  }
570
570
  declare const INTEGRATION_BRANDING: Record<string, IntegrationBranding>;
571
- declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "figma", "supabase", "asana", "stripe", "pendo", "pagerduty", "amplitude"];
571
+ declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "figma", "asana", "stripe", "pendo", "pagerduty", "amplitude"];
572
572
  declare function getIntegrationBranding(id: string): IntegrationBranding | null;
573
573
 
574
574
  /**
package/dist/index.js CHANGED
@@ -1424,6 +1424,37 @@ var INTEGRATION_REGISTRY = {
1424
1424
  }
1425
1425
  }
1426
1426
  }
1427
+ },
1428
+ supabase: {
1429
+ id: "supabase",
1430
+ name: "Supabase",
1431
+ icon: "supabase",
1432
+ category: "database",
1433
+ // LIVE — OAuth 2.0 (authorization code, Confidential). authorize
1434
+ // api.supabase.com/v1/oauth/authorize; token /v1/oauth/token
1435
+ // (form-urlencoded, client creds via HTTP Basic); rotating refresh tokens.
1436
+ // The OAuth app (Organization → OAuth Apps) is registered and
1437
+ // SUPABASE_OAUTH_CLIENT_ID/SECRET/REDIRECT_URI are in Secret Manager
1438
+ // (prod+dev); the config-gated 503 keeps this safe mid-rollout.
1439
+ enabled: true,
1440
+ auth: {
1441
+ kind: "oauth_redirect",
1442
+ // ⚠️ Supabase scopes are configured ON THE OAUTH APP, NOT sent in the
1443
+ // authorize URL — this list is informational (what the app was granted).
1444
+ scopes: ["all"]
1445
+ },
1446
+ delivery: {
1447
+ mcp: {
1448
+ // Supabase's OFFICIAL MCP server (Node). The OAuth access token IS a
1449
+ // Management API token → fed via SUPABASE_ACCESS_TOKEN (env only, never
1450
+ // argv). Version PINNED; bump only after re-verifying headless.
1451
+ command: "npx",
1452
+ args: ["-y", "@supabase/mcp-server-supabase@0.9.0"],
1453
+ envMapping: {
1454
+ SUPABASE_ACCESS_TOKEN: "accessToken"
1455
+ }
1456
+ }
1457
+ }
1427
1458
  }
1428
1459
  };
1429
1460
  function getEnabledIntegrations() {
@@ -1716,7 +1747,6 @@ var INTEGRATION_BRANDING = {
1716
1747
  var UPCOMING_INTEGRATION_IDS = [
1717
1748
  "gmail",
1718
1749
  "figma",
1719
- "supabase",
1720
1750
  "asana",
1721
1751
  "stripe",
1722
1752
  "pendo",