@tangle-network/agent-integrations 0.53.32 → 0.53.34
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/data/activepieces-catalog.json +5 -5
- package/dist/catalog.js +5 -5
- package/dist/{chunk-M3CRVHGW.js → chunk-AG4ORH2A.js} +5 -4
- package/dist/chunk-AG4ORH2A.js.map +1 -0
- package/dist/{chunk-5MHN5LWD.js → chunk-RXA66D2V.js} +2 -2
- package/dist/{chunk-UUXEF2QZ.js → chunk-T4BEUTGT.js} +111 -3
- package/dist/chunk-T4BEUTGT.js.map +1 -0
- package/dist/{chunk-FOIC32DF.js → chunk-XGKE6JW4.js} +1674 -1168
- package/dist/{chunk-FOIC32DF.js.map → chunk-XGKE6JW4.js.map} +1 -1
- package/dist/{chunk-7GS2RYBA.js → chunk-XTHA6SFW.js} +4 -3
- package/dist/chunk-XTHA6SFW.js.map +1 -0
- package/dist/connectors/adapters/index.d.ts +78 -23
- package/dist/connectors/adapters/index.js +11 -1
- package/dist/connectors/index.d.ts +3 -1
- package/dist/connectors/index.js +12 -2
- package/dist/coverage-catalog.js +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +15 -5
- package/dist/mcp.js +5 -5
- package/dist/registry.js +5 -5
- package/dist/runtime.js +5 -5
- package/dist/specs.js +4 -4
- package/docs/integration-execution-audit.md +22 -20
- package/docs/integration-execution-matrix.json +46 -120
- package/package.json +13 -12
- package/dist/chunk-7GS2RYBA.js.map +0 -1
- package/dist/chunk-M3CRVHGW.js.map +0 -1
- package/dist/chunk-UUXEF2QZ.js.map +0 -1
- /package/dist/{chunk-5MHN5LWD.js.map → chunk-RXA66D2V.js.map} +0 -0
|
@@ -78240,16 +78240,16 @@
|
|
|
78240
78240
|
"description": "NeverBounce is an email verification service that improves deliverability and helps businesses adhere to strict deliverability guidelines.",
|
|
78241
78241
|
"npmPackage": "@activepieces/piece-neverbounce",
|
|
78242
78242
|
"version": "0.1.4",
|
|
78243
|
-
"category": "
|
|
78243
|
+
"category": "crm",
|
|
78244
78244
|
"auth": "api_key",
|
|
78245
78245
|
"authFields": [
|
|
78246
78246
|
{
|
|
78247
|
-
"key": "
|
|
78248
|
-
"label": "
|
|
78247
|
+
"key": "apiKey",
|
|
78248
|
+
"label": "API key",
|
|
78249
78249
|
"required": true,
|
|
78250
|
-
"secret":
|
|
78250
|
+
"secret": true,
|
|
78251
78251
|
"kind": "text",
|
|
78252
|
-
"description": "
|
|
78252
|
+
"description": "NeverBounce API key from Apps > API"
|
|
78253
78253
|
}
|
|
78254
78254
|
],
|
|
78255
78255
|
"domains": [
|
package/dist/catalog.js
CHANGED
|
@@ -7,16 +7,16 @@ import {
|
|
|
7
7
|
parseIntegrationToolName,
|
|
8
8
|
searchIntegrationTools,
|
|
9
9
|
toMcpTools
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-XTHA6SFW.js";
|
|
11
11
|
import "./chunk-XGL345YX.js";
|
|
12
12
|
import "./chunk-ANWNXGVV.js";
|
|
13
13
|
import "./chunk-H4XYLS7T.js";
|
|
14
14
|
import "./chunk-FK4ENHCP.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-T4BEUTGT.js";
|
|
16
|
+
import "./chunk-AG4ORH2A.js";
|
|
17
17
|
import "./chunk-P4FFI752.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-RXA66D2V.js";
|
|
19
|
+
import "./chunk-XGKE6JW4.js";
|
|
20
20
|
import "./chunk-XC54EOUQ.js";
|
|
21
21
|
import "./chunk-JXFPIZ3O.js";
|
|
22
22
|
import "./chunk-PZ5AY32C.js";
|
|
@@ -113,10 +113,10 @@ var COVERAGE_SPECS = [
|
|
|
113
113
|
["segment", "Segment", "database", "analytics", "tier_1", "analytics,cdp"],
|
|
114
114
|
["snowflake", "Snowflake", "database", "database", "tier_0", "warehouse,data"],
|
|
115
115
|
["bigquery", "BigQuery", "database", "database", "tier_0", "warehouse,google,data"],
|
|
116
|
-
["redshift", "Redshift", "database", "database", "tier_1", "warehouse,aws,data"],
|
|
117
|
-
["postgres", "Postgres", "database", "database", "tier_0", "database,sql"],
|
|
116
|
+
["redshift", "Redshift", "database", "database", "tier_1", "warehouse,aws,data", "custom"],
|
|
117
|
+
["postgres", "Postgres", "database", "database", "tier_0", "database,sql", "custom"],
|
|
118
118
|
["mysql", "MySQL", "database", "database", "tier_1", "database,sql"],
|
|
119
|
-
["mongodb", "MongoDB", "database", "database", "tier_1", "database,nosql"],
|
|
119
|
+
["mongodb", "MongoDB", "database", "database", "tier_1", "database,nosql", "custom"],
|
|
120
120
|
["supabase", "Supabase", "database", "database", "tier_1", "database,postgres"],
|
|
121
121
|
["firebase", "Firebase", "database", "database", "tier_1", "database,google,app"],
|
|
122
122
|
["redis", "Redis", "database", "database", "tier_2", "database,cache", "custom"],
|
|
@@ -215,6 +215,7 @@ var COVERAGE_SPECS = [
|
|
|
215
215
|
["flow-parser", "FlowParser", "workflow", "workflow", "long_tail", "parsing,automation,workflow", "api_key"],
|
|
216
216
|
["gamma", "Gamma", "docs", "docs", "tier_2", "presentations,docs,ai", "api_key"],
|
|
217
217
|
["gender-api", "Gender API", "database", "analytics", "long_tail", "enrichment,identity,analytics", "api_key"],
|
|
218
|
+
["neverbounce", "NeverBounce", "crm", "sales", "tier_1", "email,verification,deliverability,enrichment", "api_key"],
|
|
218
219
|
["generatebanners", "GenerateBanners", "docs", "marketing", "long_tail", "images,banners,marketing", "api_key"],
|
|
219
220
|
["giftbit", "Giftbit", "workflow", "commerce", "long_tail", "rewards,gift-cards,commerce", "api_key"],
|
|
220
221
|
["modelslab", "ModelsLab", "workflow", "ai", "long_tail", "images,media,ai", "api_key"],
|
|
@@ -449,4 +450,4 @@ export {
|
|
|
449
450
|
buildIntegrationCoverageConnectors,
|
|
450
451
|
integrationCoverageChecklistMarkdown
|
|
451
452
|
};
|
|
452
|
-
//# sourceMappingURL=chunk-
|
|
453
|
+
//# sourceMappingURL=chunk-AG4ORH2A.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/coverage-catalog.ts"],"sourcesContent":["import type {\n IntegrationConnector,\n IntegrationConnectorAction,\n IntegrationConnectorCategory,\n IntegrationConnectorTrigger,\n IntegrationProviderKind,\n} from './index.js'\n\nexport type IntegrationCoveragePriority = 'tier_0' | 'tier_1' | 'tier_2' | 'long_tail'\n\nexport interface IntegrationCoverageSpec {\n id: string\n title: string\n category: IntegrationConnectorCategory\n auth: IntegrationConnector['auth']\n priority: IntegrationCoveragePriority\n providerKinds: IntegrationProviderKind[]\n domains: string[]\n actionPack: IntegrationActionPack\n scopes?: string[]\n}\n\nexport type IntegrationActionPack =\n | 'email'\n | 'calendar'\n | 'chat'\n | 'crm'\n | 'storage'\n | 'docs'\n | 'database'\n | 'project'\n | 'support'\n | 'marketing'\n | 'sales'\n | 'commerce'\n | 'finance'\n | 'hr'\n | 'dev'\n | 'ai'\n | 'analytics'\n | 'workflow'\n | 'webhook'\n | 'meeting'\n | 'telephony'\n\ntype SpecTuple = [\n id: string,\n title: string,\n category: IntegrationConnectorCategory,\n actionPack: IntegrationActionPack,\n priority: IntegrationCoveragePriority,\n domains: string,\n auth?: IntegrationConnector['auth'],\n]\n\nconst DEFAULT_PROVIDER_KINDS: IntegrationProviderKind[] = ['first_party', 'nango', 'pipedream', 'tangle_catalog', 'custom']\n\nconst COVERAGE_SPECS: SpecTuple[] = [\n ['gmail', 'Gmail', 'email', 'email', 'tier_0', 'email,google,workspace,inbox'],\n ['outlook-mail', 'Outlook Mail', 'email', 'email', 'tier_0', 'email,microsoft,office,inbox'],\n ['google-calendar', 'Google Calendar', 'calendar', 'calendar', 'tier_0', 'calendar,google,workspace,scheduling'],\n ['outlook-calendar', 'Outlook Calendar', 'calendar', 'calendar', 'tier_0', 'calendar,microsoft,office,scheduling'],\n ['slack', 'Slack', 'chat', 'chat', 'tier_0', 'chat,collaboration,internal-comms'],\n ['microsoft-teams', 'Microsoft Teams', 'chat', 'chat', 'tier_0', 'chat,microsoft,collaboration'],\n ['google-drive', 'Google Drive', 'storage', 'storage', 'tier_0', 'files,google,workspace,storage'],\n ['onedrive', 'OneDrive', 'storage', 'storage', 'tier_0', 'files,microsoft,office,storage'],\n ['dropbox', 'Dropbox', 'storage', 'storage', 'tier_1', 'files,storage'],\n ['box', 'Box', 'storage', 'storage', 'tier_1', 'files,enterprise,storage'],\n ['google-docs', 'Google Docs', 'docs', 'docs', 'tier_0', 'docs,google,workspace'],\n ['google-sheets', 'Google Sheets', 'database', 'database', 'tier_0', 'sheets,spreadsheet,google,database'],\n ['google-contacts', 'Google Contacts and Directory', 'crm', 'crm', 'tier_0', 'contacts,people,directory,google,workspace'],\n ['google-slides', 'Google Slides', 'docs', 'docs', 'tier_1', 'slides,presentations,google,workspace'],\n ['googlechat', 'Google Chat', 'chat', 'chat', 'tier_1', 'chat,collaboration,google,workspace'],\n ['google-tasks', 'Google Tasks', 'workflow', 'project', 'tier_1', 'tasks,google,workspace'],\n ['microsoft-excel-365', 'Microsoft Excel 365', 'database', 'database', 'tier_0', 'sheets,spreadsheet,microsoft,office,database'],\n ['notion', 'Notion', 'docs', 'docs', 'tier_0', 'docs,wiki,knowledge'],\n ['airtable', 'Airtable', 'database', 'database', 'tier_0', 'database,spreadsheet,ops'],\n ['baserow', 'Baserow', 'database', 'database', 'tier_1', 'database,spreadsheet,ops,open-source', 'api_key'],\n ['coda', 'Coda', 'docs', 'docs', 'tier_1', 'docs,wiki,ops'],\n ['confluence', 'Confluence', 'docs', 'docs', 'tier_1', 'docs,wiki,atlassian'],\n ['sharepoint', 'SharePoint', 'storage', 'storage', 'tier_1', 'files,microsoft,enterprise'],\n ['microsoft-365-people', 'Microsoft 365 People', 'crm', 'crm', 'tier_0', 'contacts,people,microsoft,office'],\n ['microsoft-365-planner', 'Microsoft Planner', 'workflow', 'project', 'tier_1', 'tasks,planning,microsoft,office'],\n ['microsoft-todo', 'Microsoft To Do', 'workflow', 'project', 'tier_1', 'tasks,microsoft,office'],\n ['microsoft-onenote', 'Microsoft OneNote', 'docs', 'docs', 'tier_1', 'notes,docs,microsoft,office'],\n ['microsoft-dynamics-crm', 'Microsoft Dynamics 365 CRM', 'crm', 'crm', 'tier_0', 'crm,sales,microsoft,dynamics'],\n ['microsoft-dynamics-365-business-central', 'Microsoft Dynamics 365 Business Central', 'workflow', 'finance', 'tier_1', 'erp,finance,microsoft,dynamics'],\n ['microsoft-power-bi', 'Microsoft Power BI', 'database', 'analytics', 'tier_1', 'analytics,reporting,microsoft,office'],\n ['microsoft-forms', 'Microsoft Forms', 'workflow', 'marketing', 'tier_1', 'forms,microsoft,office,commercial-api', 'custom'],\n ['microsoft-word', 'Microsoft Word', 'docs', 'docs', 'tier_1', 'docs,microsoft,office,commercial-api', 'custom'],\n ['hubspot', 'HubSpot', 'crm', 'crm', 'tier_0', 'crm,sales,marketing'],\n ['salesforce', 'Salesforce', 'crm', 'crm', 'tier_0', 'crm,sales,enterprise'],\n ['pipedrive', 'Pipedrive', 'crm', 'crm', 'tier_1', 'crm,sales'],\n ['zoho-crm', 'Zoho CRM', 'crm', 'crm', 'tier_1', 'crm,sales'],\n ['zoho-desk', 'Zoho Desk', 'crm', 'support', 'tier_1', 'support,tickets,crm,zoho'],\n ['zoho-bookings', 'Zoho Bookings', 'calendar', 'calendar', 'tier_1', 'appointments,scheduling,calendar,zoho'],\n ['zoho-books', 'Zoho Books', 'workflow', 'finance', 'tier_1', 'accounting,invoices,finance,zoho'],\n ['zoho-invoice', 'Zoho Invoice', 'workflow', 'finance', 'tier_1', 'invoices,billing,finance,zoho'],\n ['zoho-mail', 'Zoho Mail', 'email', 'email', 'tier_1', 'email,inbox,zoho'],\n ['zoho-campaigns', 'Zoho Campaigns', 'workflow', 'marketing', 'tier_1', 'email-marketing,campaigns,zoho'],\n ['close', 'Close', 'crm', 'crm', 'tier_1', 'crm,sales'],\n ['attio', 'Attio', 'crm', 'crm', 'tier_1', 'crm,sales,startups'],\n ['affinity', 'Affinity', 'crm', 'crm', 'tier_0', 'crm,relationships,private-markets', 'api_key'],\n ['dealcloud', 'DealCloud', 'crm', 'crm', 'tier_0', 'crm,relationships,private-markets,commercial-api', 'custom'],\n ['linear', 'Linear', 'workflow', 'project', 'tier_0', 'project,engineering,tickets'],\n ['jira', 'Jira', 'workflow', 'project', 'tier_0', 'project,engineering,tickets,atlassian'],\n ['github', 'GitHub', 'workflow', 'dev', 'tier_0', 'code,dev,issues,git'],\n ['gitlab', 'GitLab', 'workflow', 'dev', 'tier_1', 'code,dev,issues,git'],\n ['bitbucket', 'Bitbucket', 'workflow', 'dev', 'tier_2', 'code,dev,git,atlassian'],\n ['asana', 'Asana', 'workflow', 'project', 'tier_1', 'project,tasks'],\n ['trello', 'Trello', 'workflow', 'project', 'tier_1', 'project,tasks,atlassian'],\n ['monday', 'monday.com', 'workflow', 'project', 'tier_1', 'project,tasks,ops'],\n ['clickup', 'ClickUp', 'workflow', 'project', 'tier_1', 'project,tasks,ops'],\n ['basecamp', 'Basecamp', 'workflow', 'project', 'tier_2', 'project,tasks'],\n ['zendesk', 'Zendesk', 'crm', 'support', 'tier_0', 'support,tickets,customer-success'],\n ['intercom', 'Intercom', 'crm', 'support', 'tier_0', 'support,chat,customer-success'],\n ['freshdesk', 'Freshdesk', 'crm', 'support', 'tier_1', 'support,tickets'],\n ['helpscout', 'Help Scout', 'crm', 'support', 'tier_1', 'support,tickets'],\n ['front', 'Front', 'email', 'support', 'tier_1', 'support,email,shared-inbox'],\n ['gorgias', 'Gorgias', 'crm', 'support', 'tier_1', 'support,ecommerce'],\n ['stripe', 'Stripe', 'workflow', 'finance', 'tier_0', 'payments,billing,finance'],\n ['chargebee', 'Chargebee', 'workflow', 'finance', 'tier_1', 'subscriptions,billing,revenue', 'api_key'],\n ['paddle', 'Paddle', 'workflow', 'finance', 'tier_1', 'payments,billing,merchant-of-record', 'api_key'],\n ['quickbooks', 'QuickBooks', 'workflow', 'finance', 'tier_0', 'accounting,finance'],\n ['xero', 'Xero', 'workflow', 'finance', 'tier_1', 'accounting,finance'],\n ['netsuite', 'NetSuite', 'workflow', 'finance', 'tier_1', 'erp,finance,enterprise', 'api_key'],\n ['sage', 'Sage', 'workflow', 'finance', 'tier_2', 'accounting,finance'],\n ['sage-intacct', 'Sage Intacct', 'workflow', 'finance', 'tier_1', 'accounting,erp,finance', 'api_key'],\n ['plaid', 'Plaid', 'workflow', 'finance', 'tier_1', 'banking,finance', 'api_key'],\n ['ramp', 'Ramp', 'workflow', 'finance', 'tier_1', 'cards,expenses,finance', 'api_key'],\n ['brex', 'Brex', 'workflow', 'finance', 'tier_1', 'cards,expenses,finance', 'api_key'],\n ['bill-com', 'BILL', 'workflow', 'finance', 'tier_1', 'accounts-payable,bills,payments', 'api_key'],\n ['avalara', 'Avalara AvaTax', 'workflow', 'finance', 'tier_1', 'tax,sales-tax,compliance,finance', 'api_key'],\n ['taxjar', 'TaxJar', 'workflow', 'finance', 'tier_1', 'tax,sales-tax,compliance,finance', 'api_key'],\n ['shopify', 'Shopify', 'workflow', 'commerce', 'tier_0', 'ecommerce,orders,commerce'],\n ['woocommerce', 'WooCommerce', 'workflow', 'commerce', 'tier_1', 'ecommerce,orders,wordpress'],\n ['bigcommerce', 'BigCommerce', 'workflow', 'commerce', 'tier_1', 'ecommerce,orders'],\n ['amazon-seller-central', 'Amazon Seller Central', 'workflow', 'commerce', 'tier_1', 'marketplace,ecommerce'],\n ['ebay', 'eBay', 'workflow', 'commerce', 'tier_2', 'marketplace,ecommerce'],\n ['etsy', 'Etsy', 'workflow', 'commerce', 'tier_2', 'marketplace,ecommerce'],\n ['mailchimp', 'Mailchimp', 'workflow', 'marketing', 'tier_0', 'email-marketing,marketing'],\n ['klaviyo', 'Klaviyo', 'workflow', 'marketing', 'tier_0', 'email-marketing,ecommerce,marketing'],\n ['marketo', 'Marketo', 'workflow', 'marketing', 'tier_1', 'marketing,enterprise'],\n ['braze', 'Braze', 'workflow', 'marketing', 'tier_1', 'marketing,lifecycle'],\n ['customer-io', 'Customer.io', 'workflow', 'marketing', 'tier_1', 'marketing,lifecycle'],\n ['sendgrid', 'SendGrid', 'email', 'email', 'tier_1', 'email,transactional'],\n ['postmark', 'Postmark', 'email', 'email', 'tier_1', 'email,transactional'],\n ['twilio', 'Twilio', 'chat', 'chat', 'tier_0', 'sms,voice,communications'],\n ['clicksend', 'ClickSend', 'chat', 'telephony', 'tier_1', 'sms,voice,communications,contact-lists', 'api_key'],\n ['open-phone', 'OpenPhone', 'chat', 'telephony', 'tier_0', 'sms,voice,telephony,communications', 'api_key'],\n ['ringcentral', 'RingCentral', 'chat', 'telephony', 'tier_0', 'voice,sms,telephony,communications'],\n ['dialpad', 'Dialpad', 'chat', 'telephony', 'tier_0', 'voice,sms,telephony,communications'],\n ['aircall', 'Aircall', 'chat', 'telephony', 'tier_1', 'voice,telephony,communications', 'api_key'],\n ['phony', 'ph0ny', 'chat', 'chat', 'tier_1', 'voice,telephony,communications', 'api_key'],\n ['discord', 'Discord', 'chat', 'chat', 'tier_1', 'chat,community'],\n ['discourse', 'Discourse', 'chat', 'chat', 'tier_1', 'community,forum,support,knowledge', 'api_key'],\n ['telegram', 'Telegram', 'chat', 'chat', 'tier_1', 'chat,community'],\n ['whatsapp-business', 'WhatsApp Business', 'chat', 'chat', 'tier_1', 'chat,meta,customer-comms'],\n ['facebook-pages', 'Facebook Pages', 'workflow', 'marketing', 'tier_1', 'social,meta,marketing'],\n ['instagram-business', 'Instagram Business', 'workflow', 'marketing', 'tier_1', 'social,meta,marketing'],\n ['linkedin', 'LinkedIn', 'workflow', 'sales', 'tier_1', 'social,sales,gtm'],\n ['x-twitter', 'X / Twitter', 'workflow', 'marketing', 'tier_1', 'social,marketing'],\n ['youtube', 'YouTube', 'storage', 'storage', 'tier_1', 'video,content'],\n ['tiktok', 'TikTok', 'workflow', 'marketing', 'tier_2', 'social,video,marketing'],\n ['google-analytics', 'Google Analytics', 'database', 'analytics', 'tier_0', 'analytics,web,marketing'],\n ['mixpanel', 'Mixpanel', 'database', 'analytics', 'tier_1', 'analytics,product'],\n ['amplitude', 'Amplitude', 'database', 'analytics', 'tier_1', 'analytics,product'],\n ['segment', 'Segment', 'database', 'analytics', 'tier_1', 'analytics,cdp'],\n ['snowflake', 'Snowflake', 'database', 'database', 'tier_0', 'warehouse,data'],\n ['bigquery', 'BigQuery', 'database', 'database', 'tier_0', 'warehouse,google,data'],\n ['redshift', 'Redshift', 'database', 'database', 'tier_1', 'warehouse,aws,data', 'custom'],\n ['postgres', 'Postgres', 'database', 'database', 'tier_0', 'database,sql', 'custom'],\n ['mysql', 'MySQL', 'database', 'database', 'tier_1', 'database,sql'],\n ['mongodb', 'MongoDB', 'database', 'database', 'tier_1', 'database,nosql', 'custom'],\n ['supabase', 'Supabase', 'database', 'database', 'tier_1', 'database,postgres'],\n ['firebase', 'Firebase', 'database', 'database', 'tier_1', 'database,google,app'],\n ['redis', 'Redis', 'database', 'database', 'tier_2', 'database,cache', 'custom'],\n ['aws-s3', 'Amazon S3', 'storage', 'storage', 'tier_0', 'files,aws,storage'],\n ['amazon-sns', 'Amazon SNS', 'webhook', 'webhook', 'tier_1', 'events,notifications,aws', 'api_key'],\n ['amazon-sqs', 'Amazon SQS', 'webhook', 'webhook', 'tier_1', 'events,queues,aws', 'api_key'],\n ['aws-lambda', 'AWS Lambda', 'workflow', 'dev', 'tier_1', 'aws,serverless,dev'],\n ['aws-cloudwatch', 'AWS CloudWatch', 'database', 'analytics', 'tier_1', 'aws,logs,observability'],\n ['google-cloud-storage', 'Google Cloud Storage', 'storage', 'storage', 'tier_1', 'files,gcp,storage'],\n ['azure-blob-storage', 'Azure Blob Storage', 'storage', 'storage', 'tier_1', 'files,azure,storage'],\n ['vercel', 'Vercel', 'workflow', 'dev', 'tier_1', 'deployments,dev'],\n ['digital-ocean', 'DigitalOcean', 'workflow', 'dev', 'tier_1', 'cloud,infrastructure,compute,database,storage', 'api_key'],\n ['netlify', 'Netlify', 'workflow', 'dev', 'tier_2', 'deployments,dev'],\n ['cloudflare', 'Cloudflare', 'workflow', 'dev', 'tier_1', 'edge,dev,dns'],\n ['sentry', 'Sentry', 'workflow', 'dev', 'tier_1', 'errors,observability,dev'],\n ['datadog', 'Datadog', 'database', 'analytics', 'tier_1', 'observability,logs,metrics'],\n ['new-relic', 'New Relic', 'database', 'analytics', 'tier_2', 'observability,logs,metrics'],\n ['pagerduty', 'PagerDuty', 'workflow', 'project', 'tier_1', 'incident,on-call'],\n ['opsgenie', 'Opsgenie', 'workflow', 'project', 'tier_2', 'incident,on-call,atlassian'],\n ['okta', 'Okta', 'internal', 'workflow', 'tier_1', 'identity,security', 'api_key'],\n ['auth0', 'Auth0', 'internal', 'workflow', 'tier_1', 'identity,security'],\n ['ping-identity', 'Ping Identity', 'internal', 'workflow', 'tier_1', 'identity,security,provisioning', 'api_key'],\n ['onelogin', 'OneLogin', 'internal', 'workflow', 'tier_1', 'identity,security,provisioning', 'api_key'],\n ['scim', 'SCIM', 'internal', 'workflow', 'tier_1', 'identity,security,provisioning', 'api_key'],\n ['workday', 'Workday', 'workflow', 'hr', 'tier_1', 'hr,finance,enterprise'],\n ['bamboohr', 'BambooHR', 'workflow', 'hr', 'tier_1', 'hr,people'],\n ['greenhouse', 'Greenhouse', 'workflow', 'hr', 'tier_1', 'recruiting,hr'],\n ['lever', 'Lever', 'workflow', 'hr', 'tier_1', 'recruiting,hr'],\n ['gusto', 'Gusto', 'workflow', 'hr', 'tier_1', 'payroll,hr'],\n ['rippling', 'Rippling', 'workflow', 'hr', 'tier_1', 'hr,it,identity'],\n ['docusign', 'DocuSign', 'docs', 'docs', 'tier_1', 'contracts,signature,legal'],\n ['pandadoc', 'PandaDoc', 'docs', 'docs', 'tier_1', 'contracts,signature,sales'],\n ['hellosign', 'Dropbox Sign', 'docs', 'docs', 'tier_2', 'contracts,signature'],\n ['clio', 'Clio', 'workflow', 'project', 'tier_1', 'legal,practice-management'],\n ['mycase', 'MyCase', 'crm', 'project', 'tier_1', 'legal,practice-management,cases'],\n ['ironclad', 'Ironclad', 'docs', 'docs', 'tier_1', 'legal,contracts'],\n ['lexisnexis', 'LexisNexis', 'docs', 'docs', 'tier_2', 'legal,research'],\n ['calendly', 'Calendly', 'calendar', 'calendar', 'tier_0', 'scheduling,calendar'],\n ['acuity-scheduling', 'Acuity Scheduling', 'calendar', 'calendar', 'tier_1', 'appointments,scheduling,calendar'],\n ['cal-com', 'Cal.com', 'calendar', 'calendar', 'tier_1', 'scheduling,calendar'],\n ['zoom', 'Zoom', 'calendar', 'calendar', 'tier_0', 'meetings,video,calendar'],\n ['granola', 'Granola', 'docs', 'meeting', 'tier_0', 'meetings,notes,transcripts', 'api_key'],\n ['gong', 'Gong', 'docs', 'meeting', 'tier_0', 'meetings,calls,transcripts,sales'],\n ['fathom', 'Fathom', 'docs', 'meeting', 'tier_0', 'meetings,notes,transcripts'],\n ['fireflies-ai', 'Fireflies.ai', 'docs', 'meeting', 'tier_0', 'meetings,notes,transcripts', 'api_key'],\n ['otter', 'Otter.ai', 'docs', 'meeting', 'tier_0', 'meetings,notes,transcripts,commercial-api', 'custom'],\n ['google-meet', 'Google Meet', 'calendar', 'calendar', 'tier_1', 'meetings,google,video'],\n ['microsoft-graph', 'Microsoft Graph', 'internal', 'workflow', 'tier_0', 'microsoft,enterprise,identity'],\n ['openai', 'OpenAI', 'workflow', 'ai', 'tier_0', 'ai,llm'],\n ['anthropic', 'Anthropic', 'workflow', 'ai', 'tier_1', 'ai,llm'],\n ['gemini', 'Google Gemini', 'workflow', 'ai', 'tier_1', 'ai,llm,google'],\n ['huggingface', 'Hugging Face', 'workflow', 'ai', 'tier_1', 'ai,models'],\n ['pinecone', 'Pinecone', 'database', 'database', 'tier_1', 'vector,database,ai'],\n ['weaviate', 'Weaviate', 'database', 'database', 'tier_1', 'vector,database,ai'],\n ['qdrant', 'Qdrant', 'database', 'database', 'tier_1', 'vector,database,ai'],\n ['zapier', 'Zapier', 'workflow', 'workflow', 'tier_1', 'automation,workflow'],\n ['make', 'Make', 'workflow', 'workflow', 'tier_1', 'automation,workflow'],\n ['nango', 'Nango', 'workflow', 'workflow', 'tier_1', 'integration-platform,oauth'],\n ['pipedream', 'Pipedream', 'workflow', 'workflow', 'tier_1', 'integration-platform,workflow'],\n ['open-automation-catalog', 'Open Automation Catalog', 'workflow', 'workflow', 'tier_1', 'automation,workflow,open-source'],\n ['actualbudget', 'Actual Budget', 'workflow', 'finance', 'tier_2', 'finance,budgeting,accounting', 'api_key'],\n ['aianswer', 'AI Answer', 'chat', 'ai', 'long_tail', 'ai,answers,chat', 'api_key'],\n ['airparser', 'Airparser', 'docs', 'docs', 'tier_2', 'documents,parsing,extraction', 'api_key'],\n ['anyhook-websocket', 'AnyHook WebSocket', 'webhook', 'webhook', 'long_tail', 'websocket,events,automation', 'api_key'],\n ['apify', 'Apify', 'database', 'workflow', 'tier_2', 'scraping,automation,data', 'api_key'],\n ['ask-handle', 'AskHandle', 'workflow', 'ai', 'long_tail', 'ai,forms,automation', 'api_key'],\n ['bannerbear', 'Bannerbear', 'docs', 'marketing', 'tier_2', 'images,creative,marketing', 'api_key'],\n ['base44', 'Base44', 'workflow', 'dev', 'long_tail', 'apps,automation,dev', 'api_key'],\n ['beehiiv', 'Beehiiv', 'email', 'marketing', 'tier_2', 'newsletter,email,marketing', 'api_key'],\n ['bika', 'Bika.ai', 'docs', 'database', 'long_tail', 'database,workspace,automation', 'api_key'],\n ['buttondown', 'Buttondown', 'email', 'marketing', 'tier_2', 'newsletter,email,marketing', 'api_key'],\n ['camb-ai', 'Camb.AI', 'workflow', 'ai', 'long_tail', 'ai,audio,translation', 'api_key'],\n ['cartloom', 'Cartloom', 'workflow', 'commerce', 'long_tail', 'commerce,checkout,orders', 'api_key'],\n ['chain-aware', 'ChainAware.AI', 'database', 'analytics', 'long_tail', 'blockchain,risk,analytics', 'api_key'],\n ['chaindesk', 'Chaindesk', 'workflow', 'ai', 'long_tail', 'ai,knowledge,chatbot', 'api_key'],\n ['chat-aid', 'Chat Aid', 'workflow', 'ai', 'long_tail', 'ai,chat,knowledge', 'api_key'],\n ['chatsistant', 'Chatsistant', 'chat', 'chat', 'long_tail', 'chat,ai,support', 'api_key'],\n ['claude', 'Anthropic Claude', 'workflow', 'ai', 'tier_1', 'ai,llm,anthropic', 'api_key'],\n ['clearoutphone', 'ClearoutPhone', 'workflow', 'telephony', 'long_tail', 'phone,validation,enrichment', 'api_key'],\n ['clickfunnels', 'ClickFunnels', 'workflow', 'marketing', 'tier_2', 'marketing,funnels,crm', 'api_key'],\n ['cody', 'Cody', 'workflow', 'ai', 'long_tail', 'ai,knowledge,assistant', 'api_key'],\n ['contextual-ai', 'Contextual AI', 'workflow', 'ai', 'tier_2', 'ai,rag,knowledge', 'api_key'],\n ['contiguity', 'Contiguity', 'chat', 'telephony', 'long_tail', 'sms,messaging,communications', 'api_key'],\n ['couchbase', 'Couchbase', 'database', 'database', 'tier_2', 'database,nosql,data', 'api_key'],\n ['dappier', 'Dappier', 'workflow', 'ai', 'long_tail', 'ai,data,search', 'api_key'],\n ['deepgram', 'Deepgram', 'workflow', 'ai', 'tier_2', 'audio,transcription,ai', 'api_key'],\n ['detecting-ai', 'Detecting AI', 'workflow', 'ai', 'long_tail', 'ai,detection,content', 'api_key'],\n ['digital-pilot', 'DigitalPilot', 'database', 'analytics', 'long_tail', 'analytics,marketing,data', 'api_key'],\n ['docsbot', 'DocsBot', 'docs', 'ai', 'long_tail', 'ai,docs,knowledge', 'api_key'],\n ['drip', 'Drip', 'crm', 'marketing', 'tier_2', 'crm,email,marketing', 'api_key'],\n ['echowin', 'Echowin', 'workflow', 'telephony', 'long_tail', 'voice,phone,ai', 'api_key'],\n ['elevenlabs', 'ElevenLabs', 'workflow', 'ai', 'tier_2', 'audio,voice,ai', 'api_key'],\n ['everhour', 'Everhour', 'workflow', 'project', 'tier_2', 'time-tracking,project,work', 'api_key'],\n ['feathery', 'Feathery', 'workflow', 'marketing', 'tier_2', 'forms,marketing,workflow', 'api_key'],\n ['fellow', 'Fellow.ai', 'docs', 'meeting', 'tier_2', 'meetings,notes,collaboration', 'api_key'],\n ['flow-parser', 'FlowParser', 'workflow', 'workflow', 'long_tail', 'parsing,automation,workflow', 'api_key'],\n ['gamma', 'Gamma', 'docs', 'docs', 'tier_2', 'presentations,docs,ai', 'api_key'],\n ['gender-api', 'Gender API', 'database', 'analytics', 'long_tail', 'enrichment,identity,analytics', 'api_key'],\n ['neverbounce', 'NeverBounce', 'crm', 'sales', 'tier_1', 'email,verification,deliverability,enrichment', 'api_key'],\n ['generatebanners', 'GenerateBanners', 'docs', 'marketing', 'long_tail', 'images,banners,marketing', 'api_key'],\n ['giftbit', 'Giftbit', 'workflow', 'commerce', 'long_tail', 'rewards,gift-cards,commerce', 'api_key'],\n ['modelslab', 'ModelsLab', 'workflow', 'ai', 'long_tail', 'images,media,ai', 'api_key'],\n ['webhook', 'Generic Webhook', 'webhook', 'webhook', 'tier_0', 'webhook,http,events', 'none'],\n ['http', 'HTTP / REST / OpenAPI Request', 'workflow', 'webhook', 'tier_0', 'http,api,rest,openapi,webhook', 'none'],\n ['rss', 'RSS', 'webhook', 'webhook', 'tier_1', 'feeds,content', 'none'],\n ['chess-com', 'Chess.com', 'workflow', 'workflow', 'long_tail', 'chess,games,public-data', 'none'],\n ['sftp', 'SFTP', 'storage', 'storage', 'tier_0', 'files,sftp,imports,commercial-api', 'custom'],\n ['csv-files', 'CSV Files', 'database', 'database', 'tier_0', 'files,csv,imports', 'none'],\n ['excel-files', 'Excel Files', 'database', 'database', 'tier_0', 'files,excel,imports', 'none'],\n ['parquet-files', 'Parquet Files', 'database', 'database', 'tier_1', 'files,parquet,imports', 'none'],\n ['duckdb', 'DuckDB', 'database', 'database', 'tier_1', 'database,sql,json,analytics', 'none'],\n ['kafka', 'Apache Kafka', 'webhook', 'webhook', 'tier_1', 'events,streams,kafka', 'custom'],\n ['rabbitmq', 'RabbitMQ', 'webhook', 'webhook', 'tier_1', 'events,queues,rabbitmq', 'custom'],\n ['amazon-eventbridge', 'Amazon EventBridge', 'webhook', 'webhook', 'tier_1', 'events,aws,eventbridge', 'custom'],\n ['google-pubsub', 'Google Pub/Sub', 'webhook', 'webhook', 'tier_1', 'events,google,pubsub', 'custom'],\n ['azure-event-grid', 'Azure Event Grid', 'webhook', 'webhook', 'tier_1', 'events,azure,event-grid', 'custom'],\n ['azure-service-bus', 'Azure Service Bus', 'webhook', 'webhook', 'tier_1', 'events,queues,azure,service-bus', 'custom'],\n ['zapier-transfer', 'Zapier Transfer', 'workflow', 'workflow', 'long_tail', 'automation,migration'],\n ['typeform', 'Typeform', 'workflow', 'marketing', 'tier_1', 'forms,marketing'],\n ['google-forms', 'Google Forms', 'workflow', 'marketing', 'tier_1', 'forms,google'],\n ['jotform', 'Jotform', 'workflow', 'marketing', 'tier_2', 'forms'],\n ['webflow', 'Webflow', 'workflow', 'marketing', 'tier_1', 'cms,website'],\n ['wordpress', 'WordPress', 'workflow', 'marketing', 'tier_1', 'cms,website'],\n ['contentful', 'Contentful', 'docs', 'docs', 'tier_1', 'cms,content'],\n ['sanity', 'Sanity', 'docs', 'docs', 'tier_1', 'cms,content'],\n ['figma', 'Figma', 'docs', 'docs', 'tier_0', 'design,creative'],\n ['canva', 'Canva', 'docs', 'docs', 'tier_1', 'design,creative'],\n ['adobe-creative-cloud', 'Adobe Creative Cloud', 'storage', 'storage', 'tier_1', 'design,creative,files'],\n ['miro', 'Miro', 'docs', 'docs', 'tier_1', 'whiteboard,collaboration'],\n ['figjam', 'FigJam', 'docs', 'docs', 'tier_2', 'whiteboard,design'],\n]\n\nexport function listIntegrationCoverageSpecs(): IntegrationCoverageSpec[] {\n return COVERAGE_SPECS.map(([id, title, category, actionPack, priority, domains, auth = 'oauth2']) => ({\n id,\n title,\n category,\n actionPack,\n priority,\n auth,\n providerKinds: providerKindsFor(auth),\n domains: domains.split(',').map((domain) => domain.trim()).filter(Boolean),\n scopes: scopesFor(id, actionPack),\n }))\n}\n\nexport function buildIntegrationCoverageConnectors(options: {\n providerId?: string\n priorities?: IntegrationCoveragePriority[]\n categories?: IntegrationConnectorCategory[]\n actionPacks?: IntegrationActionPack[]\n} = {}): IntegrationConnector[] {\n const providerId = options.providerId ?? 'coverage'\n return listIntegrationCoverageSpecs()\n .filter((spec) => !options.priorities || options.priorities.includes(spec.priority))\n .filter((spec) => !options.categories || options.categories.includes(spec.category))\n .filter((spec) => !options.actionPacks || options.actionPacks.includes(spec.actionPack))\n .map((spec) => specToConnector(spec, providerId))\n}\n\nexport function integrationCoverageChecklistMarkdown(): string {\n const specs = listIntegrationCoverageSpecs()\n const lines = [\n '# Agent Integrations Coverage Checklist',\n '',\n 'Generated from `listIntegrationCoverageSpecs()`. Catalog presence means the product can plan/request/connect the integration; native adapters and runtime backends execute behind the same provider contract.',\n '',\n '## Summary',\n '',\n `- Total cataloged integrations: ${specs.length}`,\n `- Tier 0: ${specs.filter((spec) => spec.priority === 'tier_0').length}`,\n `- Tier 1: ${specs.filter((spec) => spec.priority === 'tier_1').length}`,\n `- Tier 2: ${specs.filter((spec) => spec.priority === 'tier_2').length}`,\n `- Long tail: ${specs.filter((spec) => spec.priority === 'long_tail').length}`,\n '',\n '## Checklist',\n '',\n ]\n for (const spec of specs) {\n lines.push(`- [ ] ${spec.priority} / ${spec.category} / ${spec.title} (${spec.id}) - ${spec.domains.join(', ')}`)\n }\n return `${lines.join('\\n')}\\n`\n}\n\nfunction specToConnector(spec: IntegrationCoverageSpec, providerId: string): IntegrationConnector {\n const actions = actionPack(spec.actionPack, spec.scopes ?? [])\n return {\n id: spec.id,\n providerId,\n title: spec.title,\n category: spec.category,\n auth: spec.auth,\n scopes: spec.scopes ?? [],\n actions,\n triggers: triggersFor(spec.actionPack, spec.scopes ?? []),\n metadata: {\n source: 'coverage-catalog',\n priority: spec.priority,\n domains: spec.domains,\n providerKinds: spec.providerKinds,\n executable: false,\n },\n }\n}\n\nfunction actionPack(pack: IntegrationActionPack, scopes: string[]): IntegrationConnectorAction[] {\n const readScope = scopes.find((scope) => scope.endsWith('.read')) ?? scopes[0]\n const writeScope = scopes.find((scope) => scope.endsWith('.write')) ?? scopes[1] ?? readScope\n const scope = (value?: string) => value ? [value] : []\n const read = (id: string, title: string, description: string): IntegrationConnectorAction => ({\n id,\n title,\n description,\n risk: 'read',\n requiredScopes: scope(readScope),\n dataClass: dataClassFor(pack),\n inputSchema: objectSchema(),\n })\n const write = (id: string, title: string, description: string): IntegrationConnectorAction => ({\n id,\n title,\n description,\n risk: 'write',\n requiredScopes: scope(writeScope),\n dataClass: dataClassFor(pack),\n approvalRequired: true,\n inputSchema: objectSchema(),\n })\n const destructive = (id: string, title: string, description: string): IntegrationConnectorAction => ({\n id,\n title,\n description,\n risk: 'destructive',\n requiredScopes: scope(writeScope),\n dataClass: dataClassFor(pack),\n approvalRequired: true,\n inputSchema: objectSchema(),\n })\n switch (pack) {\n case 'email': return [read('messages.search', 'Search messages', 'Search messages and threads.'), read('messages.read', 'Read message', 'Read a message by id.'), write('drafts.create', 'Create draft', 'Create an email draft.'), write('messages.send', 'Send message', 'Send or reply to an email message.')]\n case 'calendar': return [read('events.search', 'Search events', 'Search calendar events.'), read('availability.read', 'Read availability', 'Read availability windows.'), write('events.create', 'Create event', 'Create a calendar event.'), write('events.update', 'Update event', 'Update a calendar event.'), destructive('events.cancel', 'Cancel event', 'Cancel a calendar event.')]\n case 'chat': return [read('messages.search', 'Search messages', 'Search channel or direct messages.'), read('channels.list', 'List channels', 'List channels or rooms.'), write('messages.post', 'Send message', 'Send a message to a channel or direct message.'), write('threads.reply', 'Reply in thread', 'Reply to a thread or conversation.')]\n case 'crm': return [read('records.search', 'Search records', 'Search contacts, companies, and deals.'), read('records.read', 'Read record', 'Read a CRM record.'), write('records.upsert', 'Upsert record', 'Create or update a CRM record.'), write('notes.create', 'Create note', 'Add a note or activity.')]\n case 'storage': return [read('files.search', 'Search files', 'Search files and folders.'), read('files.read', 'Read file', 'Read file metadata or content.'), write('files.upload', 'Upload file', 'Upload a file.'), write('files.update', 'Update file', 'Update file metadata or content.')]\n case 'docs': return [read('documents.search', 'Search documents', 'Search documents or pages.'), read('documents.read', 'Read document', 'Read a document.'), write('documents.create', 'Create document', 'Create a document or page.'), write('documents.update', 'Update document', 'Update a document or page.')]\n case 'database': return [read('records.query', 'Query records', 'Query rows, records, or objects.'), read('records.read', 'Read record', 'Read one row, record, or object.'), write('records.upsert', 'Upsert record', 'Create or update a row, record, or object.'), destructive('records.delete', 'Delete record', 'Delete a row, record, or object.')]\n case 'project': return [read('tasks.search', 'Search tasks', 'Search tasks, tickets, or issues.'), read('tasks.read', 'Read task', 'Read a task, ticket, or issue.'), write('tasks.create', 'Create task', 'Create a task, ticket, or issue.'), write('tasks.update', 'Update task', 'Update a task, ticket, or issue.')]\n case 'support': return [read('tickets.search', 'Search tickets', 'Search support tickets or conversations.'), read('customers.read', 'Read customer', 'Read a customer profile.'), write('tickets.reply', 'Reply to ticket', 'Reply to a support ticket.'), write('tickets.update', 'Update ticket', 'Update ticket status, tags, or assignee.')]\n case 'marketing': return [read('contacts.search', 'Search contacts', 'Search marketing contacts or audiences.'), read('campaigns.read', 'Read campaign', 'Read campaign metadata and performance.'), write('contacts.upsert', 'Upsert contact', 'Create or update a contact.'), write('campaigns.create', 'Create campaign', 'Create a campaign draft.')]\n case 'sales': return [read('prospects.search', 'Search prospects', 'Search prospects, leads, or accounts.'), read('activities.read', 'Read activities', 'Read sales activity history.'), write('prospects.upsert', 'Upsert prospect', 'Create or update a prospect.'), write('sequence.enqueue', 'Enroll in sequence', 'Enroll a prospect in a sales sequence.')]\n case 'commerce': return [read('orders.search', 'Search orders', 'Search orders.'), read('customers.read', 'Read customer', 'Read customer and purchase history.'), write('orders.update', 'Update order', 'Update order metadata or fulfillment state.'), write('products.update', 'Update product', 'Update product metadata.')]\n case 'finance': return [read('transactions.search', 'Search transactions', 'Search transactions, invoices, or payments.'), read('accounts.read', 'Read account', 'Read account or customer financial record.'), write('invoices.create', 'Create invoice', 'Create an invoice or payment object.'), write('records.sync', 'Sync record', 'Sync a finance or accounting record.')]\n case 'hr': return [read('people.search', 'Search people', 'Search employees, candidates, or contractors.'), read('people.read', 'Read person', 'Read a person profile.'), write('people.update', 'Update person', 'Update a person profile.'), write('events.create', 'Create HR event', 'Create a recruiting or HR event.')]\n case 'dev': return [read('resources.search', 'Search resources', 'Search issues, repos, deployments, logs, or incidents.'), read('resources.read', 'Read resource', 'Read a developer resource.'), write('resources.create', 'Create resource', 'Create an issue, deployment, incident, or config.'), write('resources.update', 'Update resource', 'Update a developer resource.')]\n case 'ai': return [read('models.list', 'List models', 'List available models or endpoints.'), write('responses.create', 'Create response', 'Create an AI response or job.'), write('embeddings.create', 'Create embeddings', 'Create embeddings or vector jobs.'), read('usage.read', 'Read usage', 'Read usage metadata.')]\n case 'analytics': return [read('reports.query', 'Query reports', 'Query analytics reports.'), read('events.search', 'Search events', 'Search analytics events.'), write('events.track', 'Track event', 'Track an analytics event.'), write('audiences.sync', 'Sync audience', 'Sync an audience or cohort.')]\n case 'workflow': return [read('runs.search', 'Search runs', 'Search workflow runs or jobs.'), read('templates.list', 'List templates', 'List workflow templates.'), write('runs.start', 'Start run', 'Start a workflow run.'), write('webhooks.dispatch', 'Dispatch webhook', 'Dispatch a workflow webhook.')]\n case 'webhook': return [write('requests.send', 'Send request', 'Send an HTTP request or webhook event.'), read('events.search', 'Search events', 'Search received webhook events.'), write('subscriptions.create', 'Create subscription', 'Create a webhook subscription.'), destructive('subscriptions.delete', 'Delete subscription', 'Delete a webhook subscription.')]\n case 'meeting': return [read('meetings.search', 'Search meetings', 'Search meetings and recorded calls.'), read('transcripts.read', 'Read transcript', 'Read a meeting transcript.'), read('summaries.read', 'Read summary', 'Read meeting notes, summaries, and action items.'), write('notes.create', 'Create note', 'Create or attach an approved note to a meeting.')]\n case 'telephony': return [read('calls.search', 'Search calls', 'Search inbound and outbound calls.'), read('recordings.read', 'Read recording', 'Read call recording metadata and transcripts.'), read('messages.search', 'Search messages', 'Search SMS and MMS conversations.'), write('messages.send', 'Send message', 'Send an approved SMS or MMS message.')]\n }\n}\n\nfunction triggersFor(pack: IntegrationActionPack, scopes: string[]): IntegrationConnectorTrigger[] | undefined {\n const readScope = scopes.find((scope) => scope.endsWith('.read')) ?? scopes[0]\n const requiredScopes = readScope ? [readScope] : []\n if (pack === 'email') return [{ id: 'message.received', title: 'Message received', requiredScopes, dataClass: 'private' }]\n if (pack === 'calendar') return [{ id: 'event.changed', title: 'Event changed', requiredScopes, dataClass: 'private' }]\n if (pack === 'chat') return [{ id: 'message.posted', title: 'Message posted', requiredScopes, dataClass: 'private' }]\n if (pack === 'crm') return [\n { id: 'person.changed', title: 'Person changed', requiredScopes, dataClass: 'private' },\n { id: 'company.changed', title: 'Company changed', requiredScopes, dataClass: 'private' },\n { id: 'opportunity.changed', title: 'Opportunity changed', requiredScopes, dataClass: 'private' },\n { id: 'stage.changed', title: 'Stage changed', requiredScopes, dataClass: 'private' },\n { id: 'owner.changed', title: 'Owner changed', requiredScopes, dataClass: 'private' },\n { id: 'record.deleted', title: 'Record deleted', requiredScopes, dataClass: 'private' },\n ]\n if (pack === 'docs') return [\n { id: 'document.changed', title: 'Document changed', requiredScopes, dataClass: 'private' },\n { id: 'document.shared', title: 'Document shared', requiredScopes, dataClass: 'private' },\n ]\n if (pack === 'database') return [{ id: 'record.changed', title: 'Record changed', requiredScopes, dataClass: 'private' }]\n if (pack === 'project') return [\n { id: 'task.changed', title: 'Task changed', requiredScopes, dataClass: 'private' },\n { id: 'task.overdue', title: 'Task overdue', requiredScopes, dataClass: 'private' },\n ]\n if (pack === 'support') return [{ id: 'ticket.changed', title: 'Ticket changed', requiredScopes, dataClass: 'private' }]\n if (pack === 'commerce') return [{ id: 'order.changed', title: 'Order changed', requiredScopes, dataClass: 'sensitive' }]\n if (pack === 'finance') return [{ id: 'transaction.changed', title: 'Transaction changed', requiredScopes, dataClass: 'sensitive' }]\n if (pack === 'workflow' || pack === 'webhook') return [{ id: 'event.received', title: 'Event received', requiredScopes, dataClass: 'internal' }]\n if (pack === 'meeting') return [\n { id: 'meeting.ended', title: 'Meeting ended', requiredScopes, dataClass: 'private' },\n { id: 'transcript.ready', title: 'Transcript ready', requiredScopes, dataClass: 'private' },\n { id: 'summary.ready', title: 'Summary ready', requiredScopes, dataClass: 'private' },\n ]\n if (pack === 'telephony') return [\n { id: 'call.completed', title: 'Call completed', requiredScopes, dataClass: 'private' },\n { id: 'call.missed', title: 'Call missed', requiredScopes, dataClass: 'private' },\n { id: 'recording.ready', title: 'Recording ready', requiredScopes, dataClass: 'private' },\n { id: 'transcript.ready', title: 'Transcript ready', requiredScopes, dataClass: 'private' },\n { id: 'message.received', title: 'Message received', requiredScopes, dataClass: 'private' },\n ]\n return undefined\n}\n\nfunction scopesFor(id: string, pack: IntegrationActionPack): string[] {\n if (pack === 'webhook') return []\n return [`${id}.read`, `${id}.write`]\n}\n\nfunction providerKindsFor(auth: IntegrationConnector['auth']): IntegrationProviderKind[] {\n if (auth === 'none') return ['first_party', 'pipedream', 'tangle_catalog', 'custom']\n return DEFAULT_PROVIDER_KINDS\n}\n\nfunction dataClassFor(pack: IntegrationActionPack): 'public' | 'internal' | 'private' | 'sensitive' {\n if (pack === 'finance' || pack === 'commerce' || pack === 'hr') return 'sensitive'\n if (pack === 'workflow' || pack === 'webhook' || pack === 'dev' || pack === 'analytics') return 'internal'\n return 'private'\n}\n\nfunction objectSchema(): unknown {\n return { type: 'object', additionalProperties: true, properties: {} }\n}\n"],"mappings":"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","names":["actionPack","scope"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CONNECTOR_ADAPTER_FACTORIES,
|
|
3
3
|
adapters_exports
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-XGKE6JW4.js";
|
|
5
5
|
|
|
6
6
|
// src/connectors/bundled-manifests.ts
|
|
7
7
|
var MANIFEST_PROBE_PREFIX = "tangle-adapter-metadata-";
|
|
@@ -106,4 +106,4 @@ export {
|
|
|
106
106
|
bundledApiKeyHint,
|
|
107
107
|
bundledOAuth2Auth
|
|
108
108
|
};
|
|
109
|
-
//# sourceMappingURL=chunk-
|
|
109
|
+
//# sourceMappingURL=chunk-RXA66D2V.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildIntegrationCoverageConnectors,
|
|
3
3
|
listIntegrationCoverageSpecs
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-AG4ORH2A.js";
|
|
5
5
|
import {
|
|
6
6
|
bundledApiKeyHint,
|
|
7
7
|
bundledAuthMode,
|
|
8
8
|
bundledOAuth2Auth,
|
|
9
9
|
getBundledAdapterManifest
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-RXA66D2V.js";
|
|
11
11
|
|
|
12
12
|
// src/specs/types.ts
|
|
13
13
|
function specAuthToConnectorAuth(auth) {
|
|
@@ -253,6 +253,114 @@ function canonicalIntegrationKind(kind) {
|
|
|
253
253
|
|
|
254
254
|
// src/specs/overrides.ts
|
|
255
255
|
var INTEGRATION_OVERRIDES = {
|
|
256
|
+
mongodb: {
|
|
257
|
+
credentialFields: [
|
|
258
|
+
{
|
|
259
|
+
label: "MongoDB connection JSON",
|
|
260
|
+
description: "JSON containing a public MongoDB host, database, user, password, optional port/auth source, and optional CA certificate. Verified TLS is mandatory.",
|
|
261
|
+
example: '{"host":"cluster.example.mongodb.net","port":27017,"database":"app","user":"tangle_reader","password":"...","authSource":"admin"}',
|
|
262
|
+
secret: true
|
|
263
|
+
}
|
|
264
|
+
],
|
|
265
|
+
consoleSteps: [
|
|
266
|
+
{ id: "user", title: "Create a read-only MongoDB user", detail: "Grant read on the intended database only. Do not grant write, cluster administration, JavaScript execution, or cross-database roles." },
|
|
267
|
+
{ id: "network", title: "Allow the Hub connection", detail: "Expose one MongoDB node through a public TLS endpoint and restrict its firewall to Hub egress addresses when available." },
|
|
268
|
+
{ id: "credential", title: "Store the connection JSON", detail: "Save the endpoint, database, read-only user, password, auth source, and optional CA certificate in the encrypted credential field." },
|
|
269
|
+
{ id: "test", title: "Test the connection", detail: "The check pins a public address, verifies the TLS hostname and certificate, authenticates, and runs a fixed ping command." }
|
|
270
|
+
],
|
|
271
|
+
knownQuirks: [
|
|
272
|
+
{ id: "read-only", severity: "info", message: "The pack exposes collection/index metadata, structured scalar document reads, and counts only. Raw queries, JavaScript, aggregation, writes, and administrative commands are unavailable." },
|
|
273
|
+
{ id: "direct-node", severity: "warning", message: "The hosted adapter pins one public seed and disables topology discovery so a server cannot redirect Hub to unvalidated private nodes." },
|
|
274
|
+
{ id: "tls-only", severity: "critical", message: "Plain MongoDB connections are rejected. TLS 1.2 or newer and valid server certificates are mandatory." },
|
|
275
|
+
{ id: "bounded-results", severity: "info", message: "Document reads return at most 1,000 documents and 10 MiB and accept fixed scalar predicates instead of raw MongoDB query objects." },
|
|
276
|
+
{ id: "trigger-runtime", severity: "warning", message: "Change-stream triggers remain unavailable until a durable worker persists resume tokens and deliveries." }
|
|
277
|
+
],
|
|
278
|
+
healthcheck: {
|
|
279
|
+
id: "mongodb.connection",
|
|
280
|
+
level: "connection",
|
|
281
|
+
description: "Resolve and pin a public address, negotiate verified TLS, authenticate, and run a fixed ping command."
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
postgres: {
|
|
285
|
+
credentialFields: [
|
|
286
|
+
{
|
|
287
|
+
label: "PostgreSQL connection JSON",
|
|
288
|
+
description: "JSON containing a public PostgreSQL host, database, user, password, optional port, and optional CA certificate. Verified TLS is mandatory.",
|
|
289
|
+
example: '{"host":"postgres.example.com","port":5432,"database":"app","user":"tangle_reader","password":"..."}',
|
|
290
|
+
secret: true
|
|
291
|
+
}
|
|
292
|
+
],
|
|
293
|
+
consoleSteps: [
|
|
294
|
+
{ id: "user", title: "Create a read-only PostgreSQL role", detail: "Grant CONNECT on the database, USAGE on intended schemas, and SELECT on intended tables or views. Do not grant write, DDL, function execution, or replication privileges." },
|
|
295
|
+
{ id: "network", title: "Allow the Hub connection", detail: "Expose PostgreSQL through a public TLS endpoint and restrict its firewall to the Hub egress addresses when available." },
|
|
296
|
+
{ id: "credential", title: "Store the connection JSON", detail: "Save the endpoint, database, read-only role, password, and optional CA certificate in the encrypted credential field." },
|
|
297
|
+
{ id: "test", title: "Test the connection", detail: "The check pins a public address, verifies the TLS hostname and certificate, authenticates, and runs a fixed current-database query." }
|
|
298
|
+
],
|
|
299
|
+
knownQuirks: [
|
|
300
|
+
{ id: "read-only", severity: "info", message: "The pack exposes metadata and structured SELECT reads only. Arbitrary SQL, functions, writes, DDL, COPY, and replication are not available." },
|
|
301
|
+
{ id: "tls-only", severity: "critical", message: "Plain PostgreSQL connections are rejected. TLS 1.2 or newer and valid server certificates are mandatory." },
|
|
302
|
+
{ id: "public-host", severity: "warning", message: "Hosted Hub rejects private, loopback, link-local, and mixed public/private DNS targets." },
|
|
303
|
+
{ id: "bounded-results", severity: "info", message: "Reads return at most 10,000 rows and 10 MiB and use bounded scalar predicates instead of raw SQL." },
|
|
304
|
+
{ id: "trigger-runtime", severity: "warning", message: "Database-change triggers remain unavailable until a durable logical-decoding or polling worker persists cursors and deliveries." }
|
|
305
|
+
],
|
|
306
|
+
healthcheck: {
|
|
307
|
+
id: "postgres.connection",
|
|
308
|
+
level: "connection",
|
|
309
|
+
description: "Resolve and pin a public address, negotiate verified TLS, authenticate, and run a fixed current-database query."
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
neverbounce: {
|
|
313
|
+
consoleUrl: "https://app.neverbounce.com/",
|
|
314
|
+
credentialFields: [
|
|
315
|
+
{
|
|
316
|
+
label: "NeverBounce API key",
|
|
317
|
+
description: "Create a dedicated API key in Apps > API. Verification calls consume account credits.",
|
|
318
|
+
secret: true
|
|
319
|
+
}
|
|
320
|
+
],
|
|
321
|
+
consoleSteps: [
|
|
322
|
+
{ id: "key", title: "Create a dedicated API key", detail: "Open Apps > API in NeverBounce and create a key for Tangle Integration Hub." },
|
|
323
|
+
{ id: "store", title: "Store the API key", detail: "Paste the key once. Tangle Hub seals it before persistence." },
|
|
324
|
+
{ id: "test", title: "Test account access", detail: "The connection check reads account information without verifying an address or spending a verification credit." }
|
|
325
|
+
],
|
|
326
|
+
knownQuirks: [
|
|
327
|
+
{ id: "metered-verification", severity: "warning", message: "Every address verification can consume NeverBounce credits and remains approval-gated by default." },
|
|
328
|
+
{ id: "query-auth", severity: "warning", message: "NeverBounce requires the API key in the request query string. Tangle redacts it from errors and logs." }
|
|
329
|
+
],
|
|
330
|
+
healthcheck: {
|
|
331
|
+
id: "neverbounce.connection",
|
|
332
|
+
level: "connection",
|
|
333
|
+
description: "Read NeverBounce account information without consuming a verification credit."
|
|
334
|
+
}
|
|
335
|
+
},
|
|
336
|
+
redshift: {
|
|
337
|
+
credentialFields: [
|
|
338
|
+
{
|
|
339
|
+
label: "Redshift connection JSON",
|
|
340
|
+
description: "JSON containing a public Redshift host, database, user, password, optional port, and optional CA certificate. Verified TLS is mandatory.",
|
|
341
|
+
example: '{"host":"cluster.region.redshift.amazonaws.com","port":5439,"database":"analytics","user":"tangle_reader","password":"..."}',
|
|
342
|
+
secret: true
|
|
343
|
+
}
|
|
344
|
+
],
|
|
345
|
+
consoleSteps: [
|
|
346
|
+
{ id: "user", title: "Create a read-only Redshift user", detail: "Grant USAGE on intended schemas and SELECT on intended tables or views. Do not grant write, DDL, COPY, UNLOAD, or external-function privileges." },
|
|
347
|
+
{ id: "network", title: "Allow the Hub connection", detail: "Expose the cluster through a public TLS endpoint and restrict its security group or firewall to the Hub egress addresses when available." },
|
|
348
|
+
{ id: "credential", title: "Store the connection JSON", detail: "Save the endpoint, database, read-only user, password, and optional CA certificate in the encrypted credential field." },
|
|
349
|
+
{ id: "test", title: "Test the connection", detail: "The check pins a public address, verifies the TLS hostname and certificate, authenticates, and runs a fixed current-database query." }
|
|
350
|
+
],
|
|
351
|
+
knownQuirks: [
|
|
352
|
+
{ id: "read-only", severity: "info", message: "The pack exposes metadata and structured SELECT reads only. Arbitrary SQL, writes, DDL, COPY, UNLOAD, and external functions are not available." },
|
|
353
|
+
{ id: "tls-only", severity: "critical", message: "Plain PostgreSQL connections are rejected. TLS 1.2 or newer and valid server certificates are mandatory." },
|
|
354
|
+
{ id: "public-host", severity: "warning", message: "Hosted Hub rejects private, loopback, link-local, and mixed public/private DNS targets." },
|
|
355
|
+
{ id: "bounded-results", severity: "info", message: "Reads return at most 10,000 rows and 10 MiB and use bounded scalar predicates instead of raw SQL." },
|
|
356
|
+
{ id: "trigger-runtime", severity: "warning", message: "The cataloged record-change trigger remains unavailable until an incremental polling worker persists its cursor and deliveries durably." }
|
|
357
|
+
],
|
|
358
|
+
healthcheck: {
|
|
359
|
+
id: "redshift.connection",
|
|
360
|
+
level: "connection",
|
|
361
|
+
description: "Resolve and pin a public address, negotiate verified TLS, authenticate, and run a fixed current-database query."
|
|
362
|
+
}
|
|
363
|
+
},
|
|
256
364
|
redis: {
|
|
257
365
|
credentialFields: [
|
|
258
366
|
{
|
|
@@ -1233,4 +1341,4 @@ export {
|
|
|
1233
1341
|
validateCredentialFormat,
|
|
1234
1342
|
validateCredentialSet
|
|
1235
1343
|
};
|
|
1236
|
-
//# sourceMappingURL=chunk-
|
|
1344
|
+
//# sourceMappingURL=chunk-T4BEUTGT.js.map
|