@tangle-network/agent-integrations 0.53.20 → 0.53.22
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/catalog.js +5 -5
- package/dist/{chunk-GV7JLJIL.js → chunk-5WDBKER3.js} +3 -3
- package/dist/{chunk-YUCCRJEP.js → chunk-BDFPQX7U.js} +2 -2
- package/dist/{chunk-62BKPLE7.js → chunk-FKBVBEKX.js} +2 -2
- package/dist/chunk-FKBVBEKX.js.map +1 -0
- package/dist/{chunk-PGJ7LAF3.js → chunk-GODEAAAZ.js} +379 -51
- package/dist/{chunk-PGJ7LAF3.js.map → chunk-GODEAAAZ.js.map} +1 -1
- package/dist/{chunk-B2NPH7UN.js → chunk-Z3HCDXRN.js} +4 -3
- package/dist/chunk-Z3HCDXRN.js.map +1 -0
- package/dist/connectors/adapters/index.d.ts +3 -1
- package/dist/connectors/adapters/index.js +3 -1
- package/dist/connectors/index.d.ts +1 -1
- package/dist/connectors/index.js +4 -2
- package/dist/coverage-catalog.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +7 -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 +19 -17
- package/docs/integration-execution-matrix.json +62 -70
- package/package.json +1 -1
- package/dist/chunk-62BKPLE7.js.map +0 -1
- package/dist/chunk-B2NPH7UN.js.map +0 -1
- /package/dist/{chunk-GV7JLJIL.js.map → chunk-5WDBKER3.js.map} +0 -0
- /package/dist/{chunk-YUCCRJEP.js.map → chunk-BDFPQX7U.js.map} +0 -0
package/dist/registry.js
CHANGED
|
@@ -5,16 +5,16 @@ import {
|
|
|
5
5
|
composeIntegrationRegistry,
|
|
6
6
|
inferIntegrationSupportTier,
|
|
7
7
|
summarizeIntegrationRegistry
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-5WDBKER3.js";
|
|
9
9
|
import "./chunk-XGL345YX.js";
|
|
10
10
|
import "./chunk-ANWNXGVV.js";
|
|
11
11
|
import "./chunk-H4XYLS7T.js";
|
|
12
12
|
import "./chunk-FK4ENHCP.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-Z3HCDXRN.js";
|
|
14
|
+
import "./chunk-FKBVBEKX.js";
|
|
15
15
|
import "./chunk-P4FFI752.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-BDFPQX7U.js";
|
|
17
|
+
import "./chunk-GODEAAAZ.js";
|
|
18
18
|
import "./chunk-XC54EOUQ.js";
|
|
19
19
|
import "./chunk-JXFPIZ3O.js";
|
|
20
20
|
import "./chunk-PZ5AY32C.js";
|
package/dist/runtime.js
CHANGED
|
@@ -2,16 +2,16 @@ import {
|
|
|
2
2
|
InMemoryIntegrationGrantStore,
|
|
3
3
|
IntegrationRuntime,
|
|
4
4
|
createIntegrationRuntime
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-5WDBKER3.js";
|
|
6
6
|
import "./chunk-XGL345YX.js";
|
|
7
7
|
import "./chunk-ANWNXGVV.js";
|
|
8
8
|
import "./chunk-H4XYLS7T.js";
|
|
9
9
|
import "./chunk-FK4ENHCP.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-Z3HCDXRN.js";
|
|
11
|
+
import "./chunk-FKBVBEKX.js";
|
|
12
12
|
import "./chunk-P4FFI752.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-BDFPQX7U.js";
|
|
14
|
+
import "./chunk-GODEAAAZ.js";
|
|
15
15
|
import "./chunk-XC54EOUQ.js";
|
|
16
16
|
import "./chunk-JXFPIZ3O.js";
|
|
17
17
|
import "./chunk-PZ5AY32C.js";
|
package/dist/specs.js
CHANGED
|
@@ -16,10 +16,10 @@ import {
|
|
|
16
16
|
validateCredentialFormat,
|
|
17
17
|
validateCredentialSet,
|
|
18
18
|
validateIntegrationSpec
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
19
|
+
} from "./chunk-Z3HCDXRN.js";
|
|
20
|
+
import "./chunk-FKBVBEKX.js";
|
|
21
|
+
import "./chunk-BDFPQX7U.js";
|
|
22
|
+
import "./chunk-GODEAAAZ.js";
|
|
23
23
|
import "./chunk-XC54EOUQ.js";
|
|
24
24
|
import "./chunk-JXFPIZ3O.js";
|
|
25
25
|
import "./chunk-PZ5AY32C.js";
|
|
@@ -23,19 +23,19 @@ This audit separates product contracts from implementation backends:
|
|
|
23
23
|
| Custom-auth connectors with auth field metadata | 11 |
|
|
24
24
|
| Runtime package dependencies declared by this package | 0 |
|
|
25
25
|
| Setup specs | 231 |
|
|
26
|
-
| Executable setup specs |
|
|
27
|
-
| Catalog/setup-only specs |
|
|
26
|
+
| Executable setup specs | 199 |
|
|
27
|
+
| Catalog/setup-only specs | 32 |
|
|
28
28
|
| Tangle first-class contracts | 669 |
|
|
29
29
|
| Contracts with runtime packages | 669 |
|
|
30
30
|
| Contracts with mapped actions | 669 |
|
|
31
31
|
| Contracts with mapped triggers | 669 |
|
|
32
32
|
| Contracts with mapped auth | 669 |
|
|
33
|
-
| Native adapter backends |
|
|
34
|
-
| Native adapter surfaces shipped |
|
|
35
|
-
| Package-runtime backends |
|
|
36
|
-
| Runtime manifest dependencies for catalog-only connectors |
|
|
37
|
-
| Catalog-only connectors exposable behind runtime |
|
|
38
|
-
| Catalog-only actions exposable behind runtime |
|
|
33
|
+
| Native adapter backends | 495 |
|
|
34
|
+
| Native adapter surfaces shipped | 594 |
|
|
35
|
+
| Package-runtime backends | 174 |
|
|
36
|
+
| Runtime manifest dependencies for catalog-only connectors | 175 |
|
|
37
|
+
| Catalog-only connectors exposable behind runtime | 174 |
|
|
38
|
+
| Catalog-only actions exposable behind runtime | 797 |
|
|
39
39
|
|
|
40
40
|
Full machine-readable matrix: [integration-execution-matrix.json](./integration-execution-matrix.json).
|
|
41
41
|
|
|
@@ -149,7 +149,7 @@ The full set is in the machine-readable matrix; representative native adapters:
|
|
|
149
149
|
- `brightdata`
|
|
150
150
|
- `brilliant-directories`
|
|
151
151
|
|
|
152
|
-
...and
|
|
152
|
+
...and 514 more native adapter surfaces.
|
|
153
153
|
|
|
154
154
|
Executable setup specs:
|
|
155
155
|
|
|
@@ -266,6 +266,7 @@ Executable setup specs:
|
|
|
266
266
|
- `instagram-business`
|
|
267
267
|
- `intercom`
|
|
268
268
|
- `ironclad`
|
|
269
|
+
- `jira-cloud`
|
|
269
270
|
- `jotform`
|
|
270
271
|
- `klaviyo`
|
|
271
272
|
- `lever`
|
|
@@ -293,6 +294,7 @@ Executable setup specs:
|
|
|
293
294
|
- `netlify`
|
|
294
295
|
- `netsuite`
|
|
295
296
|
- `notion`
|
|
297
|
+
- `okta`
|
|
296
298
|
- `onedrive`
|
|
297
299
|
- `open-phone`
|
|
298
300
|
- `openai`
|
|
@@ -357,9 +359,9 @@ Executable setup specs:
|
|
|
357
359
|
| --- | --- | --- |
|
|
358
360
|
| Tangle first-class contracts | Done | 669 connectors have Tangle-owned action/trigger/auth/runtime contracts. |
|
|
359
361
|
| Connector discovery/catalog search | Done | 669 catalog connectors, 3790 actions, 998 triggers normalized into Tangle catalog shapes. |
|
|
360
|
-
| Native adapter execution | Done for listed native backends |
|
|
361
|
-
| OAuth/API-key setup metadata | Partial | 231 setup specs exist;
|
|
362
|
-
| Direct adapter backlog | Tracked |
|
|
362
|
+
| Native adapter execution | Done for listed native backends | 594 reviewed native adapter surfaces ship from this package; 495 overlap the 669 catalog contracts. |
|
|
363
|
+
| OAuth/API-key setup metadata | Partial | 231 setup specs exist; 199 are executable setup specs and 32 are catalog/setup-only. |
|
|
364
|
+
| Direct adapter backlog | Tracked | 174 contracts still need native/direct adapters before they should be product-executable. |
|
|
363
365
|
| Legacy runtime dependency manifest | Deprecated | `buildTangleCatalogRuntimePackageManifest()` is retained only as an audit/provenance helper; products should not deploy a package runner for normal execution. |
|
|
364
366
|
| Runtime package coverage audit | Removed from launch path | Package-runner smoke is no longer a product launch gate; port demanded integrations to direct adapters instead. |
|
|
365
367
|
| Long-tail credential mapping | Mostly mapped | 648 connectors have auth field metadata. 0 custom-auth connectors still need exact manual auth fields. |
|
|
@@ -371,8 +373,8 @@ Executable setup specs:
|
|
|
371
373
|
|
|
372
374
|
| Bucket | Count | What it means |
|
|
373
375
|
| --- | ---: | --- |
|
|
374
|
-
| Contracts needing native/direct adapters |
|
|
375
|
-
| Commercial/setup-only provider contracts |
|
|
376
|
+
| Contracts needing native/direct adapters | 174 | Connector has a Tangle contract but no reviewed direct adapter yet. |
|
|
377
|
+
| Commercial/setup-only provider contracts | 30 | Provider is discoverable with honest setup metadata but cannot execute until a supported API backend and customer credentials exist. |
|
|
376
378
|
| Catalog connectors with zero upstream action names | 0 | These entries need catalog action-name mapping before exact package-runtime invocation can work. |
|
|
377
379
|
| Custom-auth catalog connectors needing manual credential-field mapping | 0 | These are still custom auth and no field names were extracted from source. |
|
|
378
380
|
| Catalog connectors with triggers needing runtime-service hosting | 288 | Trigger metadata and provider hooks exist; runtime services still need package-specific webhook/polling hosting. |
|
|
@@ -425,7 +427,7 @@ Manual custom auth mapping gap: none.
|
|
|
425
427
|
## Completion Claims And Remaining Proof Gates
|
|
426
428
|
|
|
427
429
|
1. **Tangle first-class connector contracts are complete.**
|
|
428
|
-
All 669 catalog entries have Tangle-owned contracts.
|
|
430
|
+
All 669 catalog entries have Tangle-owned contracts. 495 use native adapter backends; 174 are backlog for native ports.
|
|
429
431
|
|
|
430
432
|
2. **Action-name mapping exists for cataloged actions.**
|
|
431
433
|
Done for cataloged actions: the catalog currently has 3790 actions and 3790 upstream action-name mappings in the checked-in catalog. Direct adapters should preserve stable Tangle action ids when porting demanded backlog connectors.
|
|
@@ -437,13 +439,13 @@ Manual custom auth mapping gap: none.
|
|
|
437
439
|
There are 998 catalog triggers and 998 upstream trigger names. The provider flow supports trigger subscribe/unsubscribe/normalize hooks. Runtime services still need live webhook/polling smoke verification.
|
|
438
440
|
|
|
439
441
|
5. **Native adapter coverage is intentionally smaller than contract breadth.**
|
|
440
|
-
This repo ships
|
|
442
|
+
This repo ships 594 native adapter surfaces. 495 overlap the 669 catalog contracts; the remaining catalog contracts are not product-executable until ported.
|
|
441
443
|
|
|
442
444
|
## Concrete Launch Interpretation
|
|
443
445
|
|
|
444
446
|
- It is accurate to say: **we have 669 first-class Tangle integration contracts.**
|
|
445
447
|
- It is accurate to say: **product execution should use direct/native adapters.**
|
|
446
|
-
- It is accurate to say: **the remaining
|
|
448
|
+
- It is accurate to say: **the remaining 174 catalog-only contracts are backlog, not runtime-ready product surface.**
|
|
447
449
|
|
|
448
450
|
## Native Port Gate
|
|
449
451
|
|
|
@@ -50374,50 +50374,58 @@
|
|
|
50374
50374
|
"executable_setup_spec"
|
|
50375
50375
|
]
|
|
50376
50376
|
},
|
|
50377
|
-
{
|
|
50378
|
-
"id": "jira",
|
|
50379
|
-
"title": "Jira",
|
|
50380
|
-
"category": "workflow",
|
|
50381
|
-
"catalogAuth": null,
|
|
50382
|
-
"setupAuth": "oauth2",
|
|
50383
|
-
"authFields": [
|
|
50384
|
-
{
|
|
50385
|
-
"label": "Client ID",
|
|
50386
|
-
"description": "OAuth client ID.",
|
|
50387
|
-
"secret": false
|
|
50388
|
-
},
|
|
50389
|
-
{
|
|
50390
|
-
"label": "Client Secret",
|
|
50391
|
-
"description": "OAuth client secret.",
|
|
50392
|
-
"secret": true
|
|
50393
|
-
}
|
|
50394
|
-
],
|
|
50395
|
-
"runtimePackage": null,
|
|
50396
|
-
"actionCount": 0,
|
|
50397
|
-
"triggerCount": 2,
|
|
50398
|
-
"setupStatus": "catalog",
|
|
50399
|
-
"tangleContractStatus": "contract_ready",
|
|
50400
|
-
"implementationKind": "contract_only",
|
|
50401
|
-
"nativeAdapter": false,
|
|
50402
|
-
"catalogActionMappings": null,
|
|
50403
|
-
"quality": {
|
|
50404
|
-
"tangleContract": true,
|
|
50405
|
-
"authFieldsMapped": true,
|
|
50406
|
-
"actionNamesMapped": true,
|
|
50407
|
-
"triggerNamesMapped": true,
|
|
50408
|
-
"runtimePackageMapped": false,
|
|
50409
|
-
"nativeAdapter": false
|
|
50410
|
-
},
|
|
50411
|
-
"missing": [
|
|
50412
|
-
"native_adapter"
|
|
50413
|
-
]
|
|
50414
|
-
},
|
|
50415
50377
|
{
|
|
50416
50378
|
"id": "jira-cloud",
|
|
50417
50379
|
"title": "Jira Cloud",
|
|
50418
50380
|
"category": "docs",
|
|
50419
50381
|
"catalogAuth": "api_key",
|
|
50420
|
-
"setupAuth":
|
|
50382
|
+
"setupAuth": {
|
|
50383
|
+
"mode": "oauth2",
|
|
50384
|
+
"authorizationUrl": "https://auth.atlassian.com/authorize",
|
|
50385
|
+
"tokenUrl": "https://auth.atlassian.com/oauth/token",
|
|
50386
|
+
"clientIdEnv": "ATLASSIAN_OAUTH_CLIENT_ID",
|
|
50387
|
+
"clientSecretEnv": "ATLASSIAN_OAUTH_CLIENT_SECRET",
|
|
50388
|
+
"scopes": [
|
|
50389
|
+
{
|
|
50390
|
+
"normalized": "project.read",
|
|
50391
|
+
"providerScope": "offline_access",
|
|
50392
|
+
"title": "Jira read",
|
|
50393
|
+
"reason": "Read Jira data for user-authorized agent workflows.",
|
|
50394
|
+
"risk": "read",
|
|
50395
|
+
"dataClass": "private"
|
|
50396
|
+
},
|
|
50397
|
+
{
|
|
50398
|
+
"normalized": "project.read",
|
|
50399
|
+
"providerScope": "read:jira-work",
|
|
50400
|
+
"title": "Jira read",
|
|
50401
|
+
"reason": "Read Jira data for user-authorized agent workflows.",
|
|
50402
|
+
"risk": "read",
|
|
50403
|
+
"dataClass": "private"
|
|
50404
|
+
},
|
|
50405
|
+
{
|
|
50406
|
+
"normalized": "project.write",
|
|
50407
|
+
"providerScope": "write:jira-work",
|
|
50408
|
+
"title": "Jira write",
|
|
50409
|
+
"reason": "Create or update Jira resources after policy approval.",
|
|
50410
|
+
"risk": "write",
|
|
50411
|
+
"dataClass": "private"
|
|
50412
|
+
},
|
|
50413
|
+
{
|
|
50414
|
+
"normalized": "project.read",
|
|
50415
|
+
"providerScope": "read:jira-user",
|
|
50416
|
+
"title": "Jira read",
|
|
50417
|
+
"reason": "Read Jira data for user-authorized agent workflows.",
|
|
50418
|
+
"risk": "read",
|
|
50419
|
+
"dataClass": "private"
|
|
50420
|
+
}
|
|
50421
|
+
],
|
|
50422
|
+
"extraAuthParams": {
|
|
50423
|
+
"audience": "api.atlassian.com",
|
|
50424
|
+
"prompt": "consent"
|
|
50425
|
+
},
|
|
50426
|
+
"redirectUriTemplate": "https://{host}/api/integrations/oauth/atlassian/callback",
|
|
50427
|
+
"pkce": "unsupported"
|
|
50428
|
+
},
|
|
50421
50429
|
"authFields": [
|
|
50422
50430
|
{
|
|
50423
50431
|
"key": "instanceUrl",
|
|
@@ -50596,7 +50604,7 @@
|
|
|
50596
50604
|
"runtimePackage": "@activepieces/piece-jira-cloud",
|
|
50597
50605
|
"actionCount": 16,
|
|
50598
50606
|
"triggerCount": 6,
|
|
50599
|
-
"setupStatus": "
|
|
50607
|
+
"setupStatus": "executable",
|
|
50600
50608
|
"tangleContractStatus": "native_backed",
|
|
50601
50609
|
"implementationKind": "native_adapter",
|
|
50602
50610
|
"nativeAdapter": true,
|
|
@@ -50610,8 +50618,7 @@
|
|
|
50610
50618
|
"nativeAdapter": true
|
|
50611
50619
|
},
|
|
50612
50620
|
"missing": [
|
|
50613
|
-
"hosted_trigger_runtime"
|
|
50614
|
-
"executable_setup_spec"
|
|
50621
|
+
"hosted_trigger_runtime"
|
|
50615
50622
|
]
|
|
50616
50623
|
},
|
|
50617
50624
|
{
|
|
@@ -67971,27 +67978,13 @@
|
|
|
67971
67978
|
"category": "docs",
|
|
67972
67979
|
"catalogAuth": "api_key",
|
|
67973
67980
|
"setupAuth": {
|
|
67974
|
-
"mode": "
|
|
67975
|
-
"
|
|
67976
|
-
|
|
67977
|
-
|
|
67978
|
-
|
|
67979
|
-
|
|
67980
|
-
|
|
67981
|
-
"risk": "read",
|
|
67982
|
-
"dataClass": "internal"
|
|
67983
|
-
},
|
|
67984
|
-
{
|
|
67985
|
-
"normalized": "workflow.write",
|
|
67986
|
-
"providerScope": "okta.write",
|
|
67987
|
-
"title": "Okta write",
|
|
67988
|
-
"reason": "Create or update Okta resources after policy approval.",
|
|
67989
|
-
"risk": "write",
|
|
67990
|
-
"dataClass": "internal"
|
|
67991
|
-
}
|
|
67992
|
-
],
|
|
67993
|
-
"redirectUriTemplate": "https://{host}/api/integrations/oauth/okta/callback",
|
|
67994
|
-
"pkce": "unsupported"
|
|
67981
|
+
"mode": "api_key",
|
|
67982
|
+
"credential": {
|
|
67983
|
+
"label": "okta API key",
|
|
67984
|
+
"description": "Okta API token. Set domain to the full HTTPS URL of the Okta organization.",
|
|
67985
|
+
"secret": true
|
|
67986
|
+
},
|
|
67987
|
+
"placement": "bearer"
|
|
67995
67988
|
},
|
|
67996
67989
|
"authFields": [
|
|
67997
67990
|
{
|
|
@@ -68094,10 +68087,10 @@
|
|
|
68094
68087
|
"runtimePackage": "@activepieces/piece-okta",
|
|
68095
68088
|
"actionCount": 9,
|
|
68096
68089
|
"triggerCount": 1,
|
|
68097
|
-
"setupStatus": "
|
|
68098
|
-
"tangleContractStatus": "
|
|
68099
|
-
"implementationKind": "
|
|
68100
|
-
"nativeAdapter":
|
|
68090
|
+
"setupStatus": "executable",
|
|
68091
|
+
"tangleContractStatus": "native_backed",
|
|
68092
|
+
"implementationKind": "native_adapter",
|
|
68093
|
+
"nativeAdapter": true,
|
|
68101
68094
|
"catalogActionMappings": 9,
|
|
68102
68095
|
"quality": {
|
|
68103
68096
|
"tangleContract": true,
|
|
@@ -68105,11 +68098,10 @@
|
|
|
68105
68098
|
"actionNamesMapped": true,
|
|
68106
68099
|
"triggerNamesMapped": true,
|
|
68107
68100
|
"runtimePackageMapped": true,
|
|
68108
|
-
"nativeAdapter":
|
|
68101
|
+
"nativeAdapter": true
|
|
68109
68102
|
},
|
|
68110
68103
|
"missing": [
|
|
68111
|
-
"hosted_trigger_runtime"
|
|
68112
|
-
"executable_setup_spec"
|
|
68104
|
+
"hosted_trigger_runtime"
|
|
68113
68105
|
]
|
|
68114
68106
|
},
|
|
68115
68107
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/agent-integrations",
|
|
3
|
-
"version": "0.53.
|
|
3
|
+
"version": "0.53.22",
|
|
4
4
|
"description": "Vendor-neutral integration contracts and runtime helpers for sandbox and agent apps.",
|
|
5
5
|
"homepage": "https://github.com/tangle-network/agent-integrations#readme",
|
|
6
6
|
"repository": {
|
|
@@ -1 +0,0 @@
|
|
|
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 ['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 ['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 ['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 ['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'],\n ['postgres', 'Postgres', 'database', 'database', 'tier_0', 'database,sql'],\n ['mysql', 'MySQL', 'database', 'database', 'tier_1', 'database,sql'],\n ['mongodb', 'MongoDB', 'database', 'database', 'tier_1', 'database,nosql'],\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'],\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 ['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'],\n ['auth0', 'Auth0', 'internal', 'workflow', 'tier_1', 'identity,security'],\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 ['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 ['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 ['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 ['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 ['kafka', 'Apache Kafka', 'webhook', 'webhook', 'tier_1', 'events,streams,kafka', '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"]}
|