@codeam/shared 2.61.62 → 2.61.64
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 +10 -3
- package/dist/index.d.ts +10 -3
- package/dist/index.js +67 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +67 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
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' | 'confluence';
|
|
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
|
|
@@ -462,6 +462,13 @@ interface IntegrationDefinition {
|
|
|
462
462
|
* (performed by the module that owns the connection, not by the generic
|
|
463
463
|
* integrations OAuth path). */
|
|
464
464
|
connection?: DerivedCredentialSource;
|
|
465
|
+
/** For `kind: 'derived'` — the OTHER integration whose vaulted credential
|
|
466
|
+
* this one reuses (Confluence → `jira`, since one Atlassian OAuth + the one
|
|
467
|
+
* `mcp-atlassian` server serves both). Like `derivedFrom` but the source is
|
|
468
|
+
* a vault-backed integration, not a `ProviderToken` connection: the backend
|
|
469
|
+
* resolves the credential by delegating to the source integration, and the
|
|
470
|
+
* client renders it as "part of <source>" with no Connect action of its own. */
|
|
471
|
+
aliasOf?: IntegrationId;
|
|
465
472
|
};
|
|
466
473
|
delivery: IntegrationDelivery;
|
|
467
474
|
}
|
|
@@ -568,7 +575,7 @@ interface IntegrationBranding {
|
|
|
568
575
|
logoSvg: string;
|
|
569
576
|
}
|
|
570
577
|
declare const INTEGRATION_BRANDING: Record<string, IntegrationBranding>;
|
|
571
|
-
declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "figma", "
|
|
578
|
+
declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "figma", "asana", "stripe", "pendo", "pagerduty", "amplitude"];
|
|
572
579
|
declare function getIntegrationBranding(id: string): IntegrationBranding | null;
|
|
573
580
|
|
|
574
581
|
/**
|
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' | 'confluence';
|
|
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
|
|
@@ -462,6 +462,13 @@ interface IntegrationDefinition {
|
|
|
462
462
|
* (performed by the module that owns the connection, not by the generic
|
|
463
463
|
* integrations OAuth path). */
|
|
464
464
|
connection?: DerivedCredentialSource;
|
|
465
|
+
/** For `kind: 'derived'` — the OTHER integration whose vaulted credential
|
|
466
|
+
* this one reuses (Confluence → `jira`, since one Atlassian OAuth + the one
|
|
467
|
+
* `mcp-atlassian` server serves both). Like `derivedFrom` but the source is
|
|
468
|
+
* a vault-backed integration, not a `ProviderToken` connection: the backend
|
|
469
|
+
* resolves the credential by delegating to the source integration, and the
|
|
470
|
+
* client renders it as "part of <source>" with no Connect action of its own. */
|
|
471
|
+
aliasOf?: IntegrationId;
|
|
465
472
|
};
|
|
466
473
|
delivery: IntegrationDelivery;
|
|
467
474
|
}
|
|
@@ -568,7 +575,7 @@ interface IntegrationBranding {
|
|
|
568
575
|
logoSvg: string;
|
|
569
576
|
}
|
|
570
577
|
declare const INTEGRATION_BRANDING: Record<string, IntegrationBranding>;
|
|
571
|
-
declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "figma", "
|
|
578
|
+
declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "figma", "asana", "stripe", "pendo", "pagerduty", "amplitude"];
|
|
572
579
|
declare function getIntegrationBranding(id: string): IntegrationBranding | null;
|
|
573
580
|
|
|
574
581
|
/**
|
package/dist/index.js
CHANGED
|
@@ -1424,6 +1424,65 @@ 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
|
+
}
|
|
1458
|
+
},
|
|
1459
|
+
confluence: {
|
|
1460
|
+
id: "confluence",
|
|
1461
|
+
name: "Confluence",
|
|
1462
|
+
icon: "confluence",
|
|
1463
|
+
category: "docs",
|
|
1464
|
+
// Confluence is served by the SAME Atlassian OAuth + the SAME `mcp-atlassian`
|
|
1465
|
+
// server as Jira (the `jira` entry already requests Confluence scopes). This
|
|
1466
|
+
// entry is a DISPLAY ALIAS so Confluence is explicit in the Knowledge tab: it
|
|
1467
|
+
// BORROWS jira's vaulted credential (`aliasOf: 'jira'`) and has no link flow of
|
|
1468
|
+
// its own — connecting Atlassian (the Jira/Atlassian card) lights it up, and
|
|
1469
|
+
// the backend resolves its token by delegating to `jira`.
|
|
1470
|
+
enabled: true,
|
|
1471
|
+
auth: { kind: "derived", aliasOf: "jira" },
|
|
1472
|
+
delivery: {
|
|
1473
|
+
mcp: {
|
|
1474
|
+
// Same mcp-atlassian server + BYO-token env as Jira — it exposes the
|
|
1475
|
+
// Confluence tools when the deploy selects Confluence without Jira. If
|
|
1476
|
+
// BOTH are selected the deploy manifest dedupes identical MCP specs.
|
|
1477
|
+
command: "uvx",
|
|
1478
|
+
args: ["mcp-atlassian==0.22.1"],
|
|
1479
|
+
envMapping: {
|
|
1480
|
+
ATLASSIAN_OAUTH_ACCESS_TOKEN: "accessToken",
|
|
1481
|
+
ATLASSIAN_OAUTH_CLOUD_ID: "cloudId"
|
|
1482
|
+
},
|
|
1483
|
+
staticEnv: { ATLASSIAN_OAUTH_ENABLE: "true" }
|
|
1484
|
+
}
|
|
1485
|
+
}
|
|
1427
1486
|
}
|
|
1428
1487
|
};
|
|
1429
1488
|
function getEnabledIntegrations() {
|
|
@@ -1502,6 +1561,14 @@ var INTEGRATION_BRANDING = {
|
|
|
1502
1561
|
brandColor: "#357DE8",
|
|
1503
1562
|
logoSvg: '<svg viewBox="0 0 32 32" height="32" xmlns="http://www.w3.org/2000/svg" focusable="false" aria-hidden="true"><defs><linearGradient id="uid18" x1="14.8402" y1="15.8324" x2="8.6599" y2="26.5369" gradientUnits="userSpaceOnUse"><stop stop-color="#2684FF" stop-opacity="0.4" offset="0%"></stop><stop stop-color="#2684FF" offset="0.9228"></stop></linearGradient></defs><path fill="url(#uid18)" d="M11.6397 14.0398C11.2789 13.643 10.7378 13.679 10.4852 14.148L4.64091 25.8728C4.42446 26.3418 4.74912 26.8829 5.25419 26.8829H13.4074C13.6599 26.8829 13.9125 26.7386 14.0207 26.4861C15.7885 22.8424 14.7061 17.3227 11.6397 14.0398Z"></path><path fill="#357DE8" d="M15.9343 3.36124C12.6513 8.55622 12.8678 14.2923 15.0324 18.6215C17.1969 22.9506 18.8565 26.2336 18.9647 26.4861C19.0729 26.7386 19.3254 26.8829 19.578 26.8829H27.7312C28.2363 26.8829 28.597 26.3418 28.3445 25.8728C28.3445 25.8728 17.3774 3.93846 17.0887 3.39732C16.8723 2.89225 16.259 2.85618 15.9343 3.36124Z"></path></svg>'
|
|
1504
1563
|
},
|
|
1564
|
+
confluence: {
|
|
1565
|
+
id: "confluence",
|
|
1566
|
+
name: "Confluence",
|
|
1567
|
+
vendor: "Atlassian",
|
|
1568
|
+
tagline: "Part of Atlassian \xB7 docs & wiki",
|
|
1569
|
+
brandColor: "#1868DB",
|
|
1570
|
+
logoSvg: '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Confluence</title><path fill="#FFFFFF" d="M.87 18.257c-.248.382-.53.875-.763 1.245a.764.764 0 0 0 .255 1.04l4.965 3.054a.764.764 0 0 0 1.058-.26c.199-.332.454-.763.733-1.221 1.967-3.247 3.945-2.853 7.508-1.146l4.957 2.337a.764.764 0 0 0 1.028-.382l2.364-5.346a.764.764 0 0 0-.382-1c-1.048-.494-3.124-1.478-4.965-2.361C10.911 10.97 5.224 11.185.87 18.257zM23.131 5.743c.249-.405.531-.875.764-1.25a.764.764 0 0 0-.256-1.034L18.675.404a.764.764 0 0 0-1.058.26c-.195.335-.451.763-.734 1.225-1.966 3.246-3.945 2.85-7.508 1.146L4.437.694a.764.764 0 0 0-1.027.382L1.046 6.422a.764.764 0 0 0 .382 1c1.039.49 3.105 1.467 4.965 2.361 6.698 3.246 12.392 3.029 16.738-4.04z"/></svg>'
|
|
1571
|
+
},
|
|
1505
1572
|
slack: {
|
|
1506
1573
|
id: "slack",
|
|
1507
1574
|
name: "Slack",
|
|
@@ -1716,7 +1783,6 @@ var INTEGRATION_BRANDING = {
|
|
|
1716
1783
|
var UPCOMING_INTEGRATION_IDS = [
|
|
1717
1784
|
"gmail",
|
|
1718
1785
|
"figma",
|
|
1719
|
-
"supabase",
|
|
1720
1786
|
"asana",
|
|
1721
1787
|
"stripe",
|
|
1722
1788
|
"pendo",
|