@codeam/shared 2.61.61 → 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 +9 -4
- package/dist/index.d.ts +9 -4
- package/dist/index.js +115 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +115 -3
- 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';
|
|
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';
|
|
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
|
|
@@ -390,7 +390,7 @@ type IntegrationCategory = 'version_control' | 'tracker' | 'design' | 'comms' |
|
|
|
390
390
|
interface IntegrationApiKeyField {
|
|
391
391
|
/** Maps to a BrokeredIntegrationToken field (`accessToken`, `orgUrl`,
|
|
392
392
|
* `appKey`, `host`, …). */
|
|
393
|
-
key: 'accessToken' | 'orgUrl' | 'appKey' | 'host' | 'apiKey' | 'instanceUrl';
|
|
393
|
+
key: 'accessToken' | 'orgUrl' | 'appKey' | 'host' | 'apiKey' | 'instanceUrl' | 'secretKey' | 'projectId';
|
|
394
394
|
/** Form label. */
|
|
395
395
|
label: string;
|
|
396
396
|
/** Example / placeholder. */
|
|
@@ -516,6 +516,11 @@ interface BrokeredIntegrationToken {
|
|
|
516
516
|
/** n8n instance base URL (self-hosted or n8n.cloud) — the MCP server needs it
|
|
517
517
|
* alongside the API key (N8N_API_URL + N8N_API_KEY). Absent for non-n8n. */
|
|
518
518
|
instanceUrl?: string;
|
|
519
|
+
/** Secret half of a 2-part api_key credential (Amplitude secret, Mixpanel
|
|
520
|
+
* service-account password, etc.). Absent for single-key integrations. */
|
|
521
|
+
secretKey?: string;
|
|
522
|
+
/** Project/workspace id some analytics APIs require (Mixpanel project id). */
|
|
523
|
+
projectId?: string;
|
|
519
524
|
}
|
|
520
525
|
|
|
521
526
|
/**
|
|
@@ -563,7 +568,7 @@ interface IntegrationBranding {
|
|
|
563
568
|
logoSvg: string;
|
|
564
569
|
}
|
|
565
570
|
declare const INTEGRATION_BRANDING: Record<string, IntegrationBranding>;
|
|
566
|
-
declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "figma", "
|
|
571
|
+
declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "figma", "asana", "stripe", "pendo", "pagerduty", "amplitude"];
|
|
567
572
|
declare function getIntegrationBranding(id: string): IntegrationBranding | null;
|
|
568
573
|
|
|
569
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';
|
|
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';
|
|
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
|
|
@@ -390,7 +390,7 @@ type IntegrationCategory = 'version_control' | 'tracker' | 'design' | 'comms' |
|
|
|
390
390
|
interface IntegrationApiKeyField {
|
|
391
391
|
/** Maps to a BrokeredIntegrationToken field (`accessToken`, `orgUrl`,
|
|
392
392
|
* `appKey`, `host`, …). */
|
|
393
|
-
key: 'accessToken' | 'orgUrl' | 'appKey' | 'host' | 'apiKey' | 'instanceUrl';
|
|
393
|
+
key: 'accessToken' | 'orgUrl' | 'appKey' | 'host' | 'apiKey' | 'instanceUrl' | 'secretKey' | 'projectId';
|
|
394
394
|
/** Form label. */
|
|
395
395
|
label: string;
|
|
396
396
|
/** Example / placeholder. */
|
|
@@ -516,6 +516,11 @@ interface BrokeredIntegrationToken {
|
|
|
516
516
|
/** n8n instance base URL (self-hosted or n8n.cloud) — the MCP server needs it
|
|
517
517
|
* alongside the API key (N8N_API_URL + N8N_API_KEY). Absent for non-n8n. */
|
|
518
518
|
instanceUrl?: string;
|
|
519
|
+
/** Secret half of a 2-part api_key credential (Amplitude secret, Mixpanel
|
|
520
|
+
* service-account password, etc.). Absent for single-key integrations. */
|
|
521
|
+
secretKey?: string;
|
|
522
|
+
/** Project/workspace id some analytics APIs require (Mixpanel project id). */
|
|
523
|
+
projectId?: string;
|
|
519
524
|
}
|
|
520
525
|
|
|
521
526
|
/**
|
|
@@ -563,7 +568,7 @@ interface IntegrationBranding {
|
|
|
563
568
|
logoSvg: string;
|
|
564
569
|
}
|
|
565
570
|
declare const INTEGRATION_BRANDING: Record<string, IntegrationBranding>;
|
|
566
|
-
declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "figma", "
|
|
571
|
+
declare const UPCOMING_INTEGRATION_IDS: readonly ["gmail", "figma", "asana", "stripe", "pendo", "pagerduty", "amplitude"];
|
|
567
572
|
declare function getIntegrationBranding(id: string): IntegrationBranding | null;
|
|
568
573
|
|
|
569
574
|
/**
|
package/dist/index.js
CHANGED
|
@@ -1340,6 +1340,121 @@ var INTEGRATION_REGISTRY = {
|
|
|
1340
1340
|
staticEnv: { MCP_MODE: "stdio" }
|
|
1341
1341
|
}
|
|
1342
1342
|
}
|
|
1343
|
+
},
|
|
1344
|
+
postman: {
|
|
1345
|
+
id: "postman",
|
|
1346
|
+
name: "Postman",
|
|
1347
|
+
icon: "postman",
|
|
1348
|
+
category: "api_tools",
|
|
1349
|
+
// LIVE — api_key rail. Postman auth is a personal API key (Settings → API
|
|
1350
|
+
// keys). The user pastes it; the backend validates via GET /me + vaults it.
|
|
1351
|
+
// No OAuth (Postman's API has no user OAuth), no secrets, no config-503.
|
|
1352
|
+
enabled: true,
|
|
1353
|
+
auth: {
|
|
1354
|
+
kind: "api_key",
|
|
1355
|
+
fields: [
|
|
1356
|
+
{
|
|
1357
|
+
key: "accessToken",
|
|
1358
|
+
label: "API Key",
|
|
1359
|
+
placeholder: "PMAK-\u2026",
|
|
1360
|
+
secret: true,
|
|
1361
|
+
help: "Postman \u2192 Settings \u2192 API keys \u2192 Generate API Key."
|
|
1362
|
+
}
|
|
1363
|
+
]
|
|
1364
|
+
},
|
|
1365
|
+
delivery: {
|
|
1366
|
+
mcp: {
|
|
1367
|
+
// Postman's OFFICIAL stdio MCP server (Node). BYO key via POSTMAN_API_KEY
|
|
1368
|
+
// (env only). Version PINNED; bump only after re-verifying headless.
|
|
1369
|
+
command: "npx",
|
|
1370
|
+
args: ["-y", "@postman/postman-mcp-server@2.11.2"],
|
|
1371
|
+
envMapping: {
|
|
1372
|
+
POSTMAN_API_KEY: "accessToken"
|
|
1373
|
+
}
|
|
1374
|
+
}
|
|
1375
|
+
}
|
|
1376
|
+
},
|
|
1377
|
+
mixpanel: {
|
|
1378
|
+
id: "mixpanel",
|
|
1379
|
+
name: "Mixpanel",
|
|
1380
|
+
icon: "mixpanel",
|
|
1381
|
+
category: "analytics",
|
|
1382
|
+
// LIVE — api_key rail. Mixpanel query/export auth is a SERVICE ACCOUNT
|
|
1383
|
+
// (username + password, Basic auth) scoped to a project (project id). The
|
|
1384
|
+
// user pastes all three; the backend validates + vaults them. No OAuth
|
|
1385
|
+
// redirect (service accounts are machine-to-machine), no GSM secrets.
|
|
1386
|
+
enabled: true,
|
|
1387
|
+
auth: {
|
|
1388
|
+
kind: "api_key",
|
|
1389
|
+
fields: [
|
|
1390
|
+
{
|
|
1391
|
+
key: "accessToken",
|
|
1392
|
+
label: "Service Account Username",
|
|
1393
|
+
placeholder: "your-sa.mp-service-account",
|
|
1394
|
+
secret: false,
|
|
1395
|
+
help: "Mixpanel \u2192 Organization Settings \u2192 Service Accounts \u2192 create one with project access."
|
|
1396
|
+
},
|
|
1397
|
+
{
|
|
1398
|
+
key: "secretKey",
|
|
1399
|
+
label: "Service Account Secret",
|
|
1400
|
+
placeholder: "the service account secret",
|
|
1401
|
+
secret: true,
|
|
1402
|
+
help: "Shown once when you create the service account \u2014 copy it then."
|
|
1403
|
+
},
|
|
1404
|
+
{
|
|
1405
|
+
key: "projectId",
|
|
1406
|
+
label: "Project ID",
|
|
1407
|
+
placeholder: "1234567",
|
|
1408
|
+
secret: false,
|
|
1409
|
+
help: "Mixpanel \u2192 Project Settings \u2192 Project ID."
|
|
1410
|
+
}
|
|
1411
|
+
]
|
|
1412
|
+
},
|
|
1413
|
+
delivery: {
|
|
1414
|
+
mcp: {
|
|
1415
|
+
// @mendeel/mcp-mixpanel (Node): the service account + project id via env
|
|
1416
|
+
// only (MIXPANEL_SERVICE_ACCOUNT_USERNAME/PASSWORD + MIXPANEL_PROJECT_ID).
|
|
1417
|
+
// Version PINNED; bump only after re-verifying headless. Default region US.
|
|
1418
|
+
command: "npx",
|
|
1419
|
+
args: ["-y", "@mendeel/mcp-mixpanel@1.0.4"],
|
|
1420
|
+
envMapping: {
|
|
1421
|
+
MIXPANEL_SERVICE_ACCOUNT_USERNAME: "accessToken",
|
|
1422
|
+
MIXPANEL_SERVICE_ACCOUNT_PASSWORD: "secretKey",
|
|
1423
|
+
MIXPANEL_PROJECT_ID: "projectId"
|
|
1424
|
+
}
|
|
1425
|
+
}
|
|
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
|
+
}
|
|
1343
1458
|
}
|
|
1344
1459
|
};
|
|
1345
1460
|
function getEnabledIntegrations() {
|
|
@@ -1632,11 +1747,8 @@ var INTEGRATION_BRANDING = {
|
|
|
1632
1747
|
var UPCOMING_INTEGRATION_IDS = [
|
|
1633
1748
|
"gmail",
|
|
1634
1749
|
"figma",
|
|
1635
|
-
"supabase",
|
|
1636
1750
|
"asana",
|
|
1637
|
-
"postman",
|
|
1638
1751
|
"stripe",
|
|
1639
|
-
"mixpanel",
|
|
1640
1752
|
"pendo",
|
|
1641
1753
|
"pagerduty",
|
|
1642
1754
|
"amplitude"
|