@tangle-network/agent-integrations 0.53.47 → 0.53.49

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.
Files changed (54) hide show
  1. package/dist/catalog.d.ts +2 -2
  2. package/dist/catalog.js +9 -9
  3. package/dist/{chunk-DHF5EXLO.js → chunk-5UCHLQ3D.js} +9 -3
  4. package/dist/{chunk-DHF5EXLO.js.map → chunk-5UCHLQ3D.js.map} +1 -1
  5. package/dist/{chunk-C7SE5X44.js → chunk-GUZA3U6T.js} +383 -68
  6. package/dist/chunk-GUZA3U6T.js.map +1 -0
  7. package/dist/{chunk-AGXTCR34.js → chunk-H5UCSRF4.js} +2682 -259
  8. package/dist/{chunk-AGXTCR34.js.map → chunk-H5UCSRF4.js.map} +1 -1
  9. package/dist/{chunk-TP4MD4PD.js → chunk-KBYYTHXQ.js} +2 -2
  10. package/dist/{chunk-AG4ORH2A.js → chunk-TKEVCGAI.js} +6 -6
  11. package/dist/chunk-TKEVCGAI.js.map +1 -0
  12. package/dist/{chunk-JR2RWYQO.js → chunk-UI3U62H6.js} +2 -2
  13. package/dist/{chunk-WE7SQ7PB.js → chunk-W72KPXXX.js} +23 -3
  14. package/dist/chunk-W72KPXXX.js.map +1 -0
  15. package/dist/{chunk-U36WHHML.js → chunk-ZSXRS7D7.js} +251 -10
  16. package/dist/chunk-ZSXRS7D7.js.map +1 -0
  17. package/dist/{chunk-EKSAOR2I.js → chunk-ZZA4HOBE.js} +2 -2
  18. package/dist/connect/index.d.ts +2 -2
  19. package/dist/connect/index.js +2 -2
  20. package/dist/connectors/adapters/index.d.ts +58 -19
  21. package/dist/connectors/adapters/index.js +18 -2
  22. package/dist/connectors/index.d.ts +45 -12
  23. package/dist/connectors/index.js +21 -3
  24. package/dist/{consumer-UnsjK9iM.d.ts → consumer-DrLnbqYt.d.ts} +1 -1
  25. package/dist/consumer.d.ts +3 -3
  26. package/dist/consumer.js +2 -2
  27. package/dist/{core-types-Cx53j2Xp.d.ts → core-types-D26cY5tD.d.ts} +7 -1
  28. package/dist/coverage-catalog.d.ts +2 -2
  29. package/dist/coverage-catalog.js +1 -1
  30. package/dist/{importers-YLXwPCz_.d.ts → importers-CQKts3pm.d.ts} +1 -1
  31. package/dist/index.d.ts +13 -12
  32. package/dist/index.js +27 -9
  33. package/dist/mcp.d.ts +3 -3
  34. package/dist/mcp.js +9 -9
  35. package/dist/middleware/index.d.ts +2 -2
  36. package/dist/middleware/index.js +2 -2
  37. package/dist/registry.d.ts +2 -2
  38. package/dist/registry.js +9 -9
  39. package/dist/runtime.d.ts +2 -2
  40. package/dist/runtime.js +9 -9
  41. package/dist/specs.d.ts +11 -3
  42. package/dist/specs.js +5 -5
  43. package/dist/{tangle-id--7mgjNkq.d.ts → tangle-id-BCOVbWrP.d.ts} +1 -1
  44. package/dist/{types-qFsboS2G.d.ts → types-DpKn0frG.d.ts} +29 -10
  45. package/docs/integration-execution-audit.md +17 -11
  46. package/docs/integration-execution-matrix.json +837 -304
  47. package/package.json +1 -1
  48. package/dist/chunk-AG4ORH2A.js.map +0 -1
  49. package/dist/chunk-C7SE5X44.js.map +0 -1
  50. package/dist/chunk-U36WHHML.js.map +0 -1
  51. package/dist/chunk-WE7SQ7PB.js.map +0 -1
  52. /package/dist/{chunk-TP4MD4PD.js.map → chunk-KBYYTHXQ.js.map} +0 -0
  53. /package/dist/{chunk-JR2RWYQO.js.map → chunk-UI3U62H6.js.map} +0 -0
  54. /package/dist/{chunk-EKSAOR2I.js.map → chunk-ZZA4HOBE.js.map} +0 -0
package/dist/index.js CHANGED
@@ -119,19 +119,19 @@ import {
119
119
  validateIntegrationManifest,
120
120
  validateProviderPassthroughRequest,
121
121
  verifyCapabilityToken
122
- } from "./chunk-C7SE5X44.js";
122
+ } from "./chunk-GUZA3U6T.js";
123
123
  import {
124
124
  InMemoryConnectStateStore,
125
125
  finishConnectFlow,
126
126
  revokeConnectFlow,
127
127
  startConnectFlow
128
- } from "./chunk-JR2RWYQO.js";
128
+ } from "./chunk-UI3U62H6.js";
129
129
  import {
130
130
  expressTangleAuthMiddleware,
131
131
  extractToken,
132
132
  honoTangleAuthMiddleware,
133
133
  requireTangleAuth
134
- } from "./chunk-EKSAOR2I.js";
134
+ } from "./chunk-ZZA4HOBE.js";
135
135
  import {
136
136
  IntegrationRuntimeError,
137
137
  normalizeIntegrationError,
@@ -141,7 +141,7 @@ import {
141
141
  IntegrationHubClient,
142
142
  IntegrationHubRequestError,
143
143
  createIntegrationHubClient
144
- } from "./chunk-TP4MD4PD.js";
144
+ } from "./chunk-KBYYTHXQ.js";
145
145
  import {
146
146
  INTEGRATION_FAMILIES,
147
147
  INTEGRATION_KIND_ALIASES,
@@ -162,12 +162,12 @@ import {
162
162
  validateCredentialFormat,
163
163
  validateCredentialSet,
164
164
  validateIntegrationSpec
165
- } from "./chunk-U36WHHML.js";
165
+ } from "./chunk-ZSXRS7D7.js";
166
166
  import {
167
167
  buildIntegrationCoverageConnectors,
168
168
  integrationCoverageChecklistMarkdown,
169
169
  listIntegrationCoverageSpecs
170
- } from "./chunk-AG4ORH2A.js";
170
+ } from "./chunk-TKEVCGAI.js";
171
171
  import "./chunk-P4FFI752.js";
172
172
  import {
173
173
  bundledApiKeyHint,
@@ -178,7 +178,7 @@ import {
178
178
  listBundledAdapterKinds,
179
179
  listBundledAdapterManifests,
180
180
  listBundledConnectorAdapters
181
- } from "./chunk-DHF5EXLO.js";
181
+ } from "./chunk-5UCHLQ3D.js";
182
182
  import {
183
183
  CONNECTOR_ADAPTER_FACTORIES,
184
184
  InMemoryOAuthFlowStore,
@@ -206,7 +206,9 @@ import {
206
206
  altTextAiConnector,
207
207
  alttextifyConnector,
208
208
  amazonBedrockConnector,
209
+ amazonCloudWatchConnector,
209
210
  amazonEventBridgeConnector,
211
+ amazonLambdaConnector,
210
212
  amazonS3Connector,
211
213
  amazonSecretsManagerConnector,
212
214
  amazonSesConnector,
@@ -216,6 +218,7 @@ import {
216
218
  aminosConnector,
217
219
  ampecoConnector,
218
220
  amplemarketConnector,
221
+ amplitudeConnector,
219
222
  anthropicConnector,
220
223
  anyhookWebsocketConnector,
221
224
  apifyConnector,
@@ -274,6 +277,7 @@ import {
274
277
  browseAiConnector,
275
278
  builtwithConnector,
276
279
  buttondownConnector,
280
+ calCom,
277
281
  calComConnector,
278
282
  calendlyConnector,
279
283
  cambAiConnector,
@@ -317,6 +321,7 @@ import {
317
321
  clockodoConnector,
318
322
  closeConnector,
319
323
  cloudconvertConnector,
324
+ cloudflareConnector,
320
325
  cloudinaryConnector,
321
326
  cloutlyConnector,
322
327
  codaConnector,
@@ -342,6 +347,7 @@ import {
342
347
  createLinkedinConnector,
343
348
  createMongoDbConnector,
344
349
  createMySqlConnector,
350
+ createOAuthTokenRequestHeaders,
345
351
  createPostgresConnector,
346
352
  createRabbitMqConnector,
347
353
  createRedisConnector,
@@ -682,6 +688,7 @@ import {
682
688
  reachinboxConnector,
683
689
  recallAiConnector,
684
690
  recurlyConnector,
691
+ reddit,
685
692
  redditConnector,
686
693
  redisConnector,
687
694
  redshiftConnector,
@@ -762,6 +769,8 @@ import {
762
769
  textcortexAiConnector,
763
770
  theirstackConnector,
764
771
  ticktickConnector,
772
+ tiktok,
773
+ tiktokConnector,
765
774
  timeOpsConnector,
766
775
  timelinesAiConnector,
767
776
  tlDvConnector,
@@ -832,7 +841,7 @@ import {
832
841
  zoomConnector,
833
842
  zoominfoConnector,
834
843
  zuoraConnector
835
- } from "./chunk-AGXTCR34.js";
844
+ } from "./chunk-H5UCSRF4.js";
836
845
  import {
837
846
  DEFAULT_SIGNATURE_TOLERANCE_SECONDS,
838
847
  firstHeader,
@@ -856,7 +865,7 @@ import {
856
865
  createTangleIdentityClient,
857
866
  tangleIdentity,
858
867
  validateConnectorManifest
859
- } from "./chunk-WE7SQ7PB.js";
868
+ } from "./chunk-W72KPXXX.js";
860
869
  import "./chunk-PZ5AY32C.js";
861
870
  export {
862
871
  ACTIVEPIECES_OVERRIDES,
@@ -928,7 +937,9 @@ export {
928
937
  altTextAiConnector,
929
938
  alttextifyConnector,
930
939
  amazonBedrockConnector,
940
+ amazonCloudWatchConnector,
931
941
  amazonEventBridgeConnector,
942
+ amazonLambdaConnector,
932
943
  amazonS3Connector,
933
944
  amazonSecretsManagerConnector,
934
945
  amazonSesConnector,
@@ -938,6 +949,7 @@ export {
938
949
  aminosConnector,
939
950
  ampecoConnector,
940
951
  amplemarketConnector,
952
+ amplitudeConnector,
941
953
  anthropicConnector,
942
954
  anyhookWebsocketConnector,
943
955
  apifyConnector,
@@ -1017,6 +1029,7 @@ export {
1017
1029
  bundledAuthMode,
1018
1030
  bundledOAuth2Auth,
1019
1031
  buttondownConnector,
1032
+ calCom,
1020
1033
  calComConnector,
1021
1034
  calendarExercisePlannerManifest,
1022
1035
  calendlyConnector,
@@ -1065,6 +1078,7 @@ export {
1065
1078
  clockodoConnector,
1066
1079
  closeConnector,
1067
1080
  cloudconvertConnector,
1081
+ cloudflareConnector,
1068
1082
  cloudinaryConnector,
1069
1083
  cloutlyConnector,
1070
1084
  codaConnector,
@@ -1109,6 +1123,7 @@ export {
1109
1123
  createMockIntegrationProvider,
1110
1124
  createMongoDbConnector,
1111
1125
  createMySqlConnector,
1126
+ createOAuthTokenRequestHeaders,
1112
1127
  createPlatformIntegrationPolicyPreset,
1113
1128
  createPostgresConnector,
1114
1129
  createRabbitMqConnector,
@@ -1507,6 +1522,7 @@ export {
1507
1522
  redactCapability,
1508
1523
  redactIntegrationBridgePayload,
1509
1524
  redactInvocationEnvelope,
1525
+ reddit,
1510
1526
  redditConnector,
1511
1527
  redisConnector,
1512
1528
  redshiftConnector,
@@ -1611,6 +1627,8 @@ export {
1611
1627
  textcortexAiConnector,
1612
1628
  theirstackConnector,
1613
1629
  ticktickConnector,
1630
+ tiktok,
1631
+ tiktokConnector,
1614
1632
  timeOpsConnector,
1615
1633
  timelinesAiConnector,
1616
1634
  tlDvConnector,
package/dist/mcp.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { d as IntegrationConnectorCategory, g as IntegrationDataClass, f as IntegrationActionRisk, j as IntegrationProvider, b as IntegrationConnector } from './core-types-Cx53j2Xp.js';
2
- import { M as McpCatalogTool } from './importers-YLXwPCz_.js';
3
- import './types-qFsboS2G.js';
1
+ import { d as IntegrationConnectorCategory, g as IntegrationDataClass, f as IntegrationActionRisk, j as IntegrationProvider, b as IntegrationConnector } from './core-types-D26cY5tD.js';
2
+ import { M as McpCatalogTool } from './importers-CQKts3pm.js';
3
+ import './types-DpKn0frG.js';
4
4
 
5
5
  /**
6
6
  * Live MCP connector — attach a remote MCP (Model Context Protocol) server
package/dist/mcp.js CHANGED
@@ -2,18 +2,18 @@ import {
2
2
  IntegrationError,
3
3
  createCatalogExecutorProvider,
4
4
  importMcpConnector
5
- } from "./chunk-C7SE5X44.js";
6
- import "./chunk-JR2RWYQO.js";
7
- import "./chunk-EKSAOR2I.js";
5
+ } from "./chunk-GUZA3U6T.js";
6
+ import "./chunk-UI3U62H6.js";
7
+ import "./chunk-ZZA4HOBE.js";
8
8
  import "./chunk-H4XYLS7T.js";
9
- import "./chunk-TP4MD4PD.js";
10
- import "./chunk-U36WHHML.js";
11
- import "./chunk-AG4ORH2A.js";
9
+ import "./chunk-KBYYTHXQ.js";
10
+ import "./chunk-ZSXRS7D7.js";
11
+ import "./chunk-TKEVCGAI.js";
12
12
  import "./chunk-P4FFI752.js";
13
- import "./chunk-DHF5EXLO.js";
14
- import "./chunk-AGXTCR34.js";
13
+ import "./chunk-5UCHLQ3D.js";
14
+ import "./chunk-H5UCSRF4.js";
15
15
  import "./chunk-XC54EOUQ.js";
16
- import "./chunk-WE7SQ7PB.js";
16
+ import "./chunk-W72KPXXX.js";
17
17
  import "./chunk-PZ5AY32C.js";
18
18
 
19
19
  // src/mcp.ts
@@ -1,5 +1,5 @@
1
- import { T as TangleIdentityOptions, b as TangleIdentityClient, c as TangleTokenVerifyFailure } from '../tangle-id--7mgjNkq.js';
2
- import '../types-qFsboS2G.js';
1
+ import { T as TangleIdentityOptions, b as TangleIdentityClient, c as TangleTokenVerifyFailure } from '../tangle-id-BCOVbWrP.js';
2
+ import '../types-DpKn0frG.js';
3
3
 
4
4
  /**
5
5
  * @stable Drop-in request middleware that verifies id.tangle.tools
@@ -3,8 +3,8 @@ import {
3
3
  extractToken,
4
4
  honoTangleAuthMiddleware,
5
5
  requireTangleAuth
6
- } from "../chunk-EKSAOR2I.js";
7
- import "../chunk-WE7SQ7PB.js";
6
+ } from "../chunk-ZZA4HOBE.js";
7
+ import "../chunk-W72KPXXX.js";
8
8
  import "../chunk-PZ5AY32C.js";
9
9
  export {
10
10
  expressTangleAuthMiddleware,
@@ -1,5 +1,5 @@
1
- import { b as IntegrationConnector, h as IntegrationCatalogSource } from './core-types-Cx53j2Xp.js';
2
- import './types-qFsboS2G.js';
1
+ import { b as IntegrationConnector, h as IntegrationCatalogSource } from './core-types-D26cY5tD.js';
2
+ import './types-DpKn0frG.js';
3
3
 
4
4
  type IntegrationSupportTier = 'catalogOnly' | 'setupReady' | 'gatewayExecutable' | 'firstPartyExecutable' | 'sandboxExecutable';
5
5
  interface IntegrationRegistrySourceRef {
package/dist/registry.js CHANGED
@@ -5,18 +5,18 @@ import {
5
5
  composeIntegrationRegistry,
6
6
  inferIntegrationSupportTier,
7
7
  summarizeIntegrationRegistry
8
- } from "./chunk-C7SE5X44.js";
9
- import "./chunk-JR2RWYQO.js";
10
- import "./chunk-EKSAOR2I.js";
8
+ } from "./chunk-GUZA3U6T.js";
9
+ import "./chunk-UI3U62H6.js";
10
+ import "./chunk-ZZA4HOBE.js";
11
11
  import "./chunk-H4XYLS7T.js";
12
- import "./chunk-TP4MD4PD.js";
13
- import "./chunk-U36WHHML.js";
14
- import "./chunk-AG4ORH2A.js";
12
+ import "./chunk-KBYYTHXQ.js";
13
+ import "./chunk-ZSXRS7D7.js";
14
+ import "./chunk-TKEVCGAI.js";
15
15
  import "./chunk-P4FFI752.js";
16
- import "./chunk-DHF5EXLO.js";
17
- import "./chunk-AGXTCR34.js";
16
+ import "./chunk-5UCHLQ3D.js";
17
+ import "./chunk-H5UCSRF4.js";
18
18
  import "./chunk-XC54EOUQ.js";
19
- import "./chunk-WE7SQ7PB.js";
19
+ import "./chunk-W72KPXXX.js";
20
20
  import "./chunk-PZ5AY32C.js";
21
21
  export {
22
22
  buildDefaultIntegrationRegistry,
package/dist/runtime.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { IntegrationToolDefinition } from './catalog.js';
2
2
  import { IntegrationRegistryEntry, IntegrationRegistry } from './registry.js';
3
- import { I as IntegrationActor, a as IssuedIntegrationCapability, b as IntegrationConnector, c as IntegrationConnection } from './core-types-Cx53j2Xp.js';
4
- import './types-qFsboS2G.js';
3
+ import { I as IntegrationActor, a as IssuedIntegrationCapability, b as IntegrationConnector, c as IntegrationConnection } from './core-types-D26cY5tD.js';
4
+ import './types-DpKn0frG.js';
5
5
 
6
6
  type IntegrationRequirementMode = 'read' | 'write' | 'trigger';
7
7
  type IntegrationRequirementStatus = 'ready' | 'missing_connection' | 'not_executable' | 'unknown_connector';
package/dist/runtime.js CHANGED
@@ -2,18 +2,18 @@ import {
2
2
  InMemoryIntegrationGrantStore,
3
3
  IntegrationRuntime,
4
4
  createIntegrationRuntime
5
- } from "./chunk-C7SE5X44.js";
6
- import "./chunk-JR2RWYQO.js";
7
- import "./chunk-EKSAOR2I.js";
5
+ } from "./chunk-GUZA3U6T.js";
6
+ import "./chunk-UI3U62H6.js";
7
+ import "./chunk-ZZA4HOBE.js";
8
8
  import "./chunk-H4XYLS7T.js";
9
- import "./chunk-TP4MD4PD.js";
10
- import "./chunk-U36WHHML.js";
11
- import "./chunk-AG4ORH2A.js";
9
+ import "./chunk-KBYYTHXQ.js";
10
+ import "./chunk-ZSXRS7D7.js";
11
+ import "./chunk-TKEVCGAI.js";
12
12
  import "./chunk-P4FFI752.js";
13
- import "./chunk-DHF5EXLO.js";
14
- import "./chunk-AGXTCR34.js";
13
+ import "./chunk-5UCHLQ3D.js";
14
+ import "./chunk-H5UCSRF4.js";
15
15
  import "./chunk-XC54EOUQ.js";
16
- import "./chunk-WE7SQ7PB.js";
16
+ import "./chunk-W72KPXXX.js";
17
17
  import "./chunk-PZ5AY32C.js";
18
18
  export {
19
19
  InMemoryIntegrationGrantStore,
package/dist/specs.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { f as IntegrationActionRisk, g as IntegrationDataClass, d as IntegrationConnectorCategory, e as IntegrationConnectorAction, G as IntegrationConnectorTrigger, b as IntegrationConnector } from './core-types-Cx53j2Xp.js';
2
- import { O as OAuth2TokenClientAuthMethod } from './types-qFsboS2G.js';
1
+ import { f as IntegrationActionRisk, g as IntegrationDataClass, d as IntegrationConnectorCategory, e as IntegrationConnectorAction, G as IntegrationConnectorTrigger, b as IntegrationConnector } from './core-types-D26cY5tD.js';
2
+ import { O as OAuth2TokenClientAuthMethod } from './types-DpKn0frG.js';
3
3
 
4
4
  type IntegrationAuthMode = 'oauth2' | 'api_key' | 'hmac' | 'none' | 'custom';
5
5
  type IntegrationSpecStatus = 'catalog' | 'executable' | 'deprecated';
@@ -38,6 +38,10 @@ interface OAuth2AuthSpec {
38
38
  tokenUrl?: string;
39
39
  clientIdEnv?: string;
40
40
  clientSecretEnv?: string;
41
+ scopeSeparator?: ' ' | ',';
42
+ authorizationClientIdParam?: string;
43
+ tokenClientIdParam?: string;
44
+ tokenClientSecretParam?: string;
41
45
  /** OAuth client authentication at the token endpoint. Defaults to
42
46
  * `client_secret_post` when omitted. */
43
47
  tokenClientAuthMethod?: OAuth2TokenClientAuthMethod;
@@ -202,7 +206,11 @@ interface ConnectorAuthSpec {
202
206
  redirectUriTemplate?: string;
203
207
  clientIdEnv?: string;
204
208
  clientSecretEnv?: string;
205
- tokenClientAuthMethod?: 'client_secret_post' | 'client_secret_basic';
209
+ scopeSeparator?: ' ' | ',';
210
+ authorizationClientIdParam?: string;
211
+ tokenClientIdParam?: string;
212
+ tokenClientSecretParam?: string;
213
+ tokenClientAuthMethod?: OAuth2TokenClientAuthMethod;
206
214
  extraAuthParams?: Record<string, string>;
207
215
  }
208
216
  declare function resolveConnectorAuthSpec(kind: string): ConnectorAuthSpec | undefined;
package/dist/specs.js CHANGED
@@ -16,12 +16,12 @@ import {
16
16
  validateCredentialFormat,
17
17
  validateCredentialSet,
18
18
  validateIntegrationSpec
19
- } from "./chunk-U36WHHML.js";
20
- import "./chunk-AG4ORH2A.js";
21
- import "./chunk-DHF5EXLO.js";
22
- import "./chunk-AGXTCR34.js";
19
+ } from "./chunk-ZSXRS7D7.js";
20
+ import "./chunk-TKEVCGAI.js";
21
+ import "./chunk-5UCHLQ3D.js";
22
+ import "./chunk-H5UCSRF4.js";
23
23
  import "./chunk-XC54EOUQ.js";
24
- import "./chunk-WE7SQ7PB.js";
24
+ import "./chunk-W72KPXXX.js";
25
25
  import "./chunk-PZ5AY32C.js";
26
26
  export {
27
27
  INTEGRATION_FAMILIES,
@@ -1,4 +1,4 @@
1
- import { C as ConnectorAdapter } from './types-qFsboS2G.js';
1
+ import { C as ConnectorAdapter } from './types-DpKn0frG.js';
2
2
 
3
3
  /**
4
4
  * @stable Tangle Identity — `id.tangle.tools` connector + verifier.
@@ -198,7 +198,7 @@ interface ConnectorInvocation {
198
198
  * reconnect. Adapters MUST invoke this with the FULL rotated envelope,
199
199
  * not a partial — the previous refresh token is preserved by the caller's
200
200
  * refresh logic, not inferred here. */
201
- onCredentialsRotated?: (credentials: ConnectorCredentials) => void;
201
+ onCredentialsRotated?: (credentials: ConnectorCredentials) => Promise<void> | void;
202
202
  }
203
203
  /** A single inbound event extracted from a push payload. The webhook
204
204
  * receiver persists one `InboundEvent` row per entry the connector returns. */
@@ -275,7 +275,8 @@ interface ConnectorAdapter {
275
275
  exchangeOAuth?(input: {
276
276
  code: string;
277
277
  state: string;
278
- codeVerifier: string;
278
+ /** Required unless this connector declares PKCE as unsupported. */
279
+ codeVerifier?: string;
279
280
  redirectUri: string;
280
281
  }): Promise<{
281
282
  credentials: ConnectorCredentials;
@@ -289,7 +290,9 @@ interface ConnectorAdapter {
289
290
  * UI. Should perform the cheapest possible read that proves the grant
290
291
  * is still valid. Returns `{ok: false, reason}` rather than throwing
291
292
  * for the common case (token expired, scope missing). */
292
- test(source: ResolvedDataSource): Promise<{
293
+ test(source: ResolvedDataSource,
294
+ /** Optional persistence sink for credentials rotated by the health check. */
295
+ onCredentialsRotated?: (credentials: ConnectorCredentials) => Promise<void> | void): Promise<{
293
296
  ok: true;
294
297
  } | {
295
298
  ok: false;
@@ -345,12 +348,12 @@ type TokenMetadataSource = string | {
345
348
  field: string;
346
349
  required?: boolean;
347
350
  };
348
- /** How an OAuth token endpoint receives this application's client credentials.
351
+ /** How an OAuth token endpoint authenticates this client.
349
352
  *
350
- * OAuth providers default to `client_secret_post`, which sends both values in
351
- * the form body. `client_secret_basic` instead sends an HTTP Basic header and
352
- * deliberately omits the credentials from that body. */
353
- type OAuth2TokenClientAuthMethod = 'client_secret_post' | 'client_secret_basic';
353
+ * Public clients use `none` and send only the client id. OAuth providers
354
+ * otherwise default to `client_secret_post`, which sends both values in the
355
+ * form body. `client_secret_basic` sends an HTTP Basic header instead. */
356
+ type OAuth2TokenClientAuthMethod = 'none' | 'client_secret_post' | 'client_secret_basic';
354
357
  type OAuth2AuthSpec = {
355
358
  kind: 'oauth2';
356
359
  /** OAuth2 grant type. Defaults to `'authorization_code'` (the interactive
@@ -370,13 +373,25 @@ type OAuth2AuthSpec = {
370
373
  /** Separator used when serializing multiple scopes into the authorization
371
374
  * URL. OAuth defaults to spaces; Zoho requires comma-delimited scopes. */
372
375
  scopeSeparator?: ' ' | ',';
376
+ /** Provider PKCE posture. Defaults to the host flow policy when omitted. */
377
+ pkce?: 'required' | 'supported' | 'unsupported';
378
+ /** Query parameter that receives the OAuth client id on the authorization
379
+ * URL. Defaults to `client_id`; TikTok calls this value `client_key`. */
380
+ authorizationClientIdParam?: string;
373
381
  /** Whether the connector supports incremental authorization (Google
374
382
  * does; many don't). */
375
383
  incremental?: boolean;
376
384
  /** Env-var name holding the OAuth client_id. */
377
385
  clientIdEnv: string;
378
- /** Env-var name holding the OAuth client_secret. */
379
- clientSecretEnv: string;
386
+ /** Env-var name holding the OAuth client_secret. Omit only for public
387
+ * clients whose tokenClientAuthMethod is `none`. */
388
+ clientSecretEnv?: string;
389
+ /** Form parameter that receives the client id during token exchange.
390
+ * Defaults to `client_id`; TikTok calls this value `client_key`. */
391
+ tokenClientIdParam?: string;
392
+ /** Form parameter that receives the client secret during token exchange.
393
+ * Defaults to `client_secret`. */
394
+ tokenClientSecretParam?: string;
380
395
  /** OAuth client authentication for the authorization-code token exchange.
381
396
  * Defaults to `client_secret_post` for backward compatibility. */
382
397
  tokenClientAuthMethod?: OAuth2TokenClientAuthMethod;
@@ -384,6 +399,10 @@ type OAuth2AuthSpec = {
384
399
  * Google's `access_type=offline&prompt=consent` to obtain refresh
385
400
  * tokens). */
386
401
  extraAuthParams?: Record<string, string>;
402
+ /** Non-secret headers sent to the token endpoint. Use this for provider
403
+ * identification headers such as Reddit's required User-Agent. The runtime
404
+ * always owns Authorization and Content-Type. */
405
+ tokenRequestHeaders?: Record<string, string>;
387
406
  /** Whether to send the `scope` query param on the authorization URL.
388
407
  * Defaults to true. Set false for providers that reject a per-request
389
408
  * scope and pin scopes app-side (e.g. HelloSign/Dropbox Sign). */
@@ -23,15 +23,15 @@ 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 | 246 |
26
- | Executable setup specs | 228 |
27
- | Catalog/setup-only specs | 18 |
26
+ | Executable setup specs | 234 |
27
+ | Catalog/setup-only specs | 12 |
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
33
  | Native adapter backends | 516 |
34
- | Native adapter surfaces shipped | 622 |
34
+ | Native adapter surfaces shipped | 627 |
35
35
  | Package-runtime backends | 153 |
36
36
  | Runtime manifest dependencies for catalog-only connectors | 162 |
37
37
  | Catalog-only connectors exposable behind runtime | 153 |
@@ -100,6 +100,7 @@ The full set is in the machine-readable matrix; representative native adapters:
100
100
  - `aminos`
101
101
  - `ampeco`
102
102
  - `amplemarket`
103
+ - `amplitude`
103
104
  - `anthropic`
104
105
  - `anyhook-websocket`
105
106
  - `apify`
@@ -119,6 +120,8 @@ The full set is in the machine-readable matrix; representative native adapters:
119
120
  - `avalara`
120
121
  - `avian`
121
122
  - `avoma`
123
+ - `aws-cloudwatch`
124
+ - `aws-lambda`
122
125
  - `azure-ad`
123
126
  - `azure-blob-storage`
124
127
  - `azure-communication-services`
@@ -145,11 +148,8 @@ The full set is in the machine-readable matrix; representative native adapters:
145
148
  - `billplz`
146
149
  - `bitly`
147
150
  - `bland-ai`
148
- - `bluesky`
149
- - `bolna`
150
- - `bonjoro`
151
151
 
152
- ...and 542 more native adapter surfaces.
152
+ ...and 547 more native adapter surfaces.
153
153
 
154
154
  Executable setup specs:
155
155
 
@@ -165,6 +165,7 @@ Executable setup specs:
165
165
  - `amazon-s3`
166
166
  - `amazon-sns`
167
167
  - `amazon-sqs`
168
+ - `amplitude`
168
169
  - `anthropic`
169
170
  - `anyhook-websocket`
170
171
  - `apify`
@@ -173,6 +174,8 @@ Executable setup specs:
173
174
  - `attio`
174
175
  - `auth0`
175
176
  - `avalara`
177
+ - `aws-cloudwatch`
178
+ - `aws-lambda`
176
179
  - `azure-blob-storage`
177
180
  - `azure-event-grid`
178
181
  - `azure-service-bus`
@@ -207,6 +210,7 @@ Executable setup specs:
207
210
  - `clickup`
208
211
  - `clio`
209
212
  - `close`
213
+ - `cloudflare`
210
214
  - `coda`
211
215
  - `cody`
212
216
  - `confluence`
@@ -358,8 +362,10 @@ Executable setup specs:
358
362
  - `supabase`
359
363
  - `taxjar`
360
364
  - `telegram`
365
+ - `tiktok`
361
366
  - `trello`
362
367
  - `twilio-sms`
368
+ - `twitter`
363
369
  - `typeform`
364
370
  - `vercel`
365
371
  - `weaviate`
@@ -388,8 +394,8 @@ Executable setup specs:
388
394
  | --- | --- | --- |
389
395
  | Tangle first-class contracts | Done | 669 connectors have Tangle-owned action/trigger/auth/runtime contracts. |
390
396
  | Connector discovery/catalog search | Done | 669 catalog connectors, 3790 actions, 998 triggers normalized into Tangle catalog shapes. |
391
- | Native adapter execution | Done for listed native backends | 622 reviewed native adapter surfaces ship from this package; 516 overlap the 669 catalog contracts. |
392
- | OAuth/API-key setup metadata | Partial | 246 setup specs exist; 228 are executable setup specs and 18 are catalog/setup-only. |
397
+ | Native adapter execution | Done for listed native backends | 627 reviewed native adapter surfaces ship from this package; 516 overlap the 669 catalog contracts. |
398
+ | OAuth/API-key setup metadata | Partial | 246 setup specs exist; 234 are executable setup specs and 12 are catalog/setup-only. |
393
399
  | Direct adapter backlog | Tracked | 153 contracts still need native/direct adapters before they should be product-executable. |
394
400
  | Legacy runtime dependency manifest | Deprecated | `buildTangleCatalogRuntimePackageManifest()` is retained only as an audit/provenance helper; products should not deploy a package runner for normal execution. |
395
401
  | 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. |
@@ -403,7 +409,7 @@ Executable setup specs:
403
409
  | Bucket | Count | What it means |
404
410
  | --- | ---: | --- |
405
411
  | Contracts needing native/direct adapters | 153 | Connector has a Tangle contract but no reviewed direct adapter yet. |
406
- | Commercial/setup-only provider contracts | 18 | Provider is discoverable with honest setup metadata but cannot execute until a supported API backend and customer credentials exist. |
412
+ | Commercial/setup-only provider contracts | 12 | Provider is discoverable with honest setup metadata but cannot execute until a supported API backend and customer credentials exist. |
407
413
  | Catalog connectors with zero upstream action names | 0 | These entries need catalog action-name mapping before exact package-runtime invocation can work. |
408
414
  | Custom-auth catalog connectors needing manual credential-field mapping | 0 | These are still custom auth and no field names were extracted from source. |
409
415
  | Catalog connectors with triggers needing runtime-service hosting | 288 | Trigger metadata and provider hooks exist; runtime services still need package-specific webhook/polling hosting. |
@@ -468,7 +474,7 @@ Manual custom auth mapping gap: none.
468
474
  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.
469
475
 
470
476
  5. **Native adapter coverage is intentionally smaller than contract breadth.**
471
- This repo ships 622 native adapter surfaces. 516 overlap the 669 catalog contracts; the remaining catalog contracts are not product-executable until ported.
477
+ This repo ships 627 native adapter surfaces. 516 overlap the 669 catalog contracts; the remaining catalog contracts are not product-executable until ported.
472
478
 
473
479
  ## Concrete Launch Interpretation
474
480