@tangle-network/agent-integrations 0.20.0 → 0.22.0
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/README.md +2 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +195 -0
- package/dist/index.js.map +1 -1
- package/dist/specs.d.ts +51 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -111,6 +111,8 @@ pnpm add @tangle-network/agent-integrations
|
|
|
111
111
|
| `buildTangleIntegrationCatalogConnectors` | Broad normalized Tangle Integrations Catalog inventory for long-tail connection discovery. |
|
|
112
112
|
| `createTangleCatalogExecutorProvider` | Promotes catalog entries to gateway-executable only when a runtime executor is explicitly supplied. |
|
|
113
113
|
| `createTangleCatalogHttpExecutor` | Signed HTTP executor client for Tangle-hosted catalog runtimes. |
|
|
114
|
+
| `createTangleCatalogRuntimeHandler` | Server-side `/v1/integration-catalog/actions/invoke` handler with signature, connector, and action validation. |
|
|
115
|
+
| `createTangleCatalogInstalledPackageExecutor` | Runtime-side dispatcher for installed long-tail connector packages with explicit action aliasing and credential resolution hooks. |
|
|
114
116
|
| `auditTangleIntegrationCatalogFreshness` | Release gate for catalog breadth, executable promotion, registry conflicts, and stale external ingestion. |
|
|
115
117
|
| `createGatewayCatalogProvider` | Normalizes 500+ gateway-backed connectors into the same provider contract. |
|
|
116
118
|
| `buildIntegrationInvocationEnvelope` | Sandbox-safe action envelope. |
|
package/dist/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as ACTIVEPIECES_OVERRIDES, a as ACTIVEPIECES_PUBLIC_CATALOG_URL, b as ACTIVEPIECES_RUNTIME_SIGNATURE_HEADER, c as ActivepiecesCatalogEntry, d as ActivepiecesExecutorInvocation, e as ActivepiecesExecutorProviderOptions, f as ActivepiecesHttpExecutorOptions, g as ActivepiecesPieceOverride, h as ActivepiecesRuntimeRequest, ApiKeyAuthSpec, i as ApprovalBackedPolicyEngine, j as ApprovalBackedPolicyOptions, k as AuthSpec, C as CANONICAL_INTEGRATION_ACTIONS, l as CASStrategy, m as CanonicalIntegrationActionId, n as CanonicalLaunchConnectorOptions, o as Capability, p as CapabilityClass, q as CapabilityMutation, r as CapabilityMutationResult, s as CapabilityParameterSchema, t as CapabilityRead, u as CapabilityReadResult, v as CatalogExecutorInvocation, w as CatalogExecutorProviderOptions, x as CompleteAuthRequest, y as ComposeIntegrationRegistryOptions, z as ConnectionCredentialResolverOptions, B as ConnectorAdapter, D as ConnectorAdapterProviderOptions, E as ConnectorCredentials, F as ConnectorInvocation, G as ConnectorManifest, H as ConnectorManifestValidationIssue, I as ConnectorManifestValidationResult, J as ConsentSummary, K as ConsistencyModel, ConsoleStep, CredentialFieldSpec, CredentialValidationInput, CredentialValidationResult, L as CredentialsExpired, CustomAuthSpec, M as DEFAULT_INTEGRATION_BRIDGE_ENV, N as DEFAULT_SIGNATURE_TOLERANCE_SECONDS, O as DataSourceMetadata, P as DefaultIntegrationActionGuard, Q as EventHandlerResult, R as ExchangeCodeInput, S as GatewayCatalogAction, T as GatewayCatalogEntry, U as GatewayCatalogProviderOptions, V as GatewayCatalogTrigger, W as GenericHmacVerifyOptions, X as GoogleCalendarOptions, Y as GoogleSheetsOptions, Z as GraphqlOperationSpec, HealthcheckPlan, HealthcheckSpec, HmacAuthSpec, _ as HttpIntegrationProviderOptions, $ as HubSpotOptions, INTEGRATION_FAMILIES, a0 as ImportCatalogOptions, a1 as InMemoryConnectionStore, a2 as InMemoryIntegrationApprovalStore, a3 as InMemoryIntegrationAuditStore, a4 as InMemoryIntegrationEventStore, a5 as InMemoryIntegrationGrantStore, a6 as InMemoryIntegrationHealthcheckStore, a7 as InMemoryIntegrationIdempotencyStore, a8 as InMemoryIntegrationSecretStore, a9 as InMemoryIntegrationWorkflowStore, aa as InMemoryOAuthFlowStore, ab as InboundEvent, ac as InferIntegrationRequirementsOptions, ad as InstalledIntegrationWorkflow, ae as IntegrationActionGuard, af as IntegrationActionPack, ag as IntegrationActionRequest, ah as IntegrationActionResult, ai as IntegrationActionRisk, aj as IntegrationActor, ak as IntegrationApprovalFilter, al as IntegrationApprovalRecord, am as IntegrationApprovalRequest, an as IntegrationApprovalResolution, ao as IntegrationApprovalStatus, ap as IntegrationApprovalStore, aq as IntegrationAuditEvent, ar as IntegrationAuditEventType, as as IntegrationAuditFilter, at as IntegrationAuditSink, au as IntegrationAuditStore, IntegrationAuthMode, IntegrationAuthSpec, av as IntegrationBridgePayload, aw as IntegrationBridgeToolBinding, ax as IntegrationCapability, ay as IntegrationCapabilityBinding, az as IntegrationCatalogFreshnessOptions, aA as IntegrationCatalogFreshnessResult, aB as IntegrationCatalogSource, aC as IntegrationConnection, aD as IntegrationConnectionStore, aE as IntegrationConnector, aF as IntegrationConnectorAction, aG as IntegrationConnectorCategory, aH as IntegrationConnectorTrigger, aI as IntegrationCoveragePriority, aJ as IntegrationCoverageSpec, aK as IntegrationDataClass, aL as IntegrationError, aM as IntegrationErrorCode, aN as IntegrationEventStore, IntegrationFamilyId, IntegrationFamilySpec, aO as IntegrationGrant, aP as IntegrationGrantStore, aQ as IntegrationGuardContext, aR as IntegrationHealthcheckCheck, aS as IntegrationHealthcheckResult, aT as IntegrationHealthcheckStatus, aU as IntegrationHealthcheckStore, aV as IntegrationHub, aW as IntegrationHubOptions, aX as IntegrationIdempotencyRecord, aY as IntegrationIdempotencyStore, aZ as IntegrationInvocationEnvelope, a_ as IntegrationInvocationEnvelopeValidationOptions, IntegrationLifecycleSpec, a$ as IntegrationManifest, b0 as IntegrationManifestResolution, IntegrationPlannerHints, b1 as IntegrationPolicyDecision, b2 as IntegrationPolicyEffect, b3 as IntegrationPolicyEngine, b4 as IntegrationPolicyRule, b5 as IntegrationProvider, b6 as IntegrationProviderKind, b7 as IntegrationRateLimitDecision, b8 as IntegrationRateLimiter, b9 as IntegrationRegistry, ba as IntegrationRegistryConflict, bb as IntegrationRegistryEntry, bc as IntegrationRegistrySourceRef, bd as IntegrationRegistrySummary, be as IntegrationRequirement, bf as IntegrationRequirementMode, bg as IntegrationRequirementResolution, bh as IntegrationRequirementStatus, bi as IntegrationRuntime, bj as IntegrationRuntimeError, bk as IntegrationRuntimeHub, bl as IntegrationRuntimeOptions, bm as IntegrationSandboxBundle, bn as IntegrationSandboxHost, bo as IntegrationSandboxHostHub, bp as IntegrationSandboxHostOptions, bq as IntegrationSecretStore, IntegrationSetupSpec, IntegrationSpec, IntegrationSpecStatus, IntegrationSpecValidationIssue, IntegrationSpecValidationResult, br as IntegrationSupportTier, bs as IntegrationToolDefinition, bt as IntegrationToolSearchFilters, bu as IntegrationToolSearchResult, bv as IntegrationTriggerEvent, bw as IntegrationTriggerSubscription, bx as IntegrationUserAction, by as IntegrationWebhookReceiverResult, bz as IntegrationWorkflowDefinition, bA as IntegrationWorkflowRuntime, bB as IntegrationWorkflowRuntimeHub, bC as IntegrationWorkflowRuntimeOptions, bD as IntegrationWorkflowStore, bE as InvokeWithCapabilityRequest, bF as IssueCapabilityRequest, bG as IssuedIntegrationCapability, bH as ManifestValidationIssue, bI as ManifestValidationResult, bJ as McpCatalog, bK as McpCatalogTool, bL as McpToolDefinition, bM as MicrosoftCalendarOptions, bN as MissingRequirementExplanation, NoneAuthSpec, bO as NormalizedIntegrationError, bP as NormalizedIntegrationResult, NormalizedPermission, bQ as NotionDatabaseOptions, OAuth2AuthSpec, bR as OAuthFlowStore, bS as OAuthTokens, bT as OpenApiDocument, bU as OpenApiOperation, bV as PROVIDER_PASSTHROUGH_ACTION, bW as ParsedStripeSignatureHeader, bX as PendingOAuthFlow, PermissionDescriptor, bY as PlatformIntegrationPolicyPresetOptions, PostSetupCheck, bZ as ProviderHttpRequestInput, b_ as ProviderPassthroughPolicy, Quirk, b$ as RateLimitSpec, c0 as RefreshInput, c1 as RenderConsentOptions, RenderSpecOptions, RenderedConsoleStep, c2 as ResolvedDataSource, c3 as ResourceContention, c4 as RestConnectorSpec, c5 as RestCredentialPlacement, c6 as RestOperationSpec, c7 as RestRequestSpec, ScopeDescriptor, c8 as SecretRef, c9 as SlackOptions, ca as SlackVerifyOptions, cb as StartAuthRequest, cc as StartAuthResult, cd as StartOAuthInput, ce as StartOAuthOutput, cf as StaticIntegrationPolicyEngine, cg as StaticIntegrationPolicyOptions, ch as StoredIntegrationEvent, ci as StripeVerifyOptions, cj as TANGLE_CATALOG_RUNTIME_SIGNATURE_HEADER, ck as TANGLE_INTEGRATIONS_CATALOG_PROVIDER_ID, cl as TANGLE_INTEGRATIONS_CATALOG_SOURCE, cm as TangleCatalogExecutorInvocation, cn as TangleCatalogExecutorProviderOptions, co as TangleCatalogHttpExecutorInvocation, cp as TangleCatalogHttpExecutorOptions, cq as TangleCatalogRuntimeRequest, cr as TangleIntegrationCatalogEntry, cs as TangleIntegrationCatalogFreshnessOptions, ct as TangleIntegrationCatalogFreshnessResult, cu as TangleIntegrationInvokeInput, cv as TangleIntegrationInvokeResult, cw as TangleIntegrationsClient, cx as TangleIntegrationsClientOptions, cy as TwilioVerifyOptions, cz as _resetPendingFlowsForTests, cA as adapterManifestsToConnectors, cB as airtableConnector, cC as asanaConnector, cD as assertValidConnectorManifest, cE as assertValidIntegrationManifest, assertValidIntegrationSpec, cF as auditIntegrationCatalogFreshness, cG as auditTangleIntegrationCatalogFreshness, cH as buildActivepiecesConnectors, cI as buildActivepiecesRuntimeRequest, cJ as buildApprovalRequest, cK as buildCanonicalLaunchConnectors, cL as buildDefaultIntegrationRegistry, buildHealthcheckPlan, cM as buildIntegrationBridgeEnvironment, cN as buildIntegrationBridgePayload, cO as buildIntegrationCoverageConnectors, cP as buildIntegrationInvocationEnvelope, cQ as buildIntegrationToolCatalog, cR as buildTangleCatalogRuntimeRequest, cS as buildTangleIntegrationCatalogConnectors, cT as calendarExercisePlannerManifest, cU as canonicalActionConnectorId, cV as canonicalConnectorId, cW as composeIntegrationRegistry, consoleStepsToText, cX as consumePendingFlow, cY as createActivepiecesExecutorProvider, cZ as createActivepiecesHttpExecutor, c_ as createApprovalBackedPolicyEngine, c$ as createAuditingActionGuard, d0 as createCatalogExecutorProvider, d1 as createConnectionCredentialResolver, d2 as createConnectorAdapterCatalogSource, d3 as createConnectorAdapterProvider, d4 as createCredentialBackedAdapterProvider, d5 as createDefaultIntegrationActionGuard, d6 as createDefaultIntegrationPolicyEngine, d7 as createGatewayCatalogProvider, d8 as createHttpIntegrationProvider, d9 as createIntegrationAuditEvent, da as createIntegrationRuntime, db as createIntegrationWorkflowRuntime, dc as createMockIntegrationProvider, dd as createPlatformIntegrationPolicyPreset, de as createTangleCatalogExecutorProvider, df as createTangleCatalogHttpExecutor, dg as createTangleIntegrationsClient, dh as declarativeRestConnector, di as decodeIntegrationBridgePayload, dj as dispatchIntegrationInvocation, dk as encodeIntegrationBridgePayload, dl as exchangeAuthorizationCode, dm as explainMissingRequirements, dn as extractActivepiecesPublicPieceCount, dp as extractExternalCatalogPublicCount, dq as firstHeader, dr as getActivepiecesOverride, getIntegrationFamily, getIntegrationSpec, ds as githubConnector, dt as gitlabConnector, du as googleCalendar, dv as googleSheets, dw as healthcheckRequest, dx as hubspot, dy as importGraphqlConnector, dz as importMcpConnector, dA as importOpenApiConnector, dB as inferIntegrationManifestFromTools, dC as inferIntegrationSupportTier, dD as integrationCoverageChecklistMarkdown, integrationSpecToConnector, dE as integrationToolName, dF as invocationRequestFromEnvelope, dG as listActivepiecesCatalogEntries, listExecutableIntegrationSpecs, dH as listIntegrationCoverageSpecs, listIntegrationSpecs, dI as listTangleIntegrationCatalogEntries, dJ as manifestToConnector, dK as microsoftCalendar, dL as normalizeGatewayCatalog, dM as normalizeIntegrationError, dN as normalizeIntegrationResult, dO as notionDatabase, dP as parseIntegrationBridgeEnvironment, dQ as parseIntegrationToolName, dR as parseStripeSignatureHeader, dS as receiveIntegrationWebhook, dT as redactApprovalRequest, dU as redactCapability, dV as redactIntegrationBridgePayload, dW as redactInvocationEnvelope, dX as refreshAccessToken, renderAgentToolDescription, dY as renderApprovalCopy, dZ as renderConsentSummary, renderConsoleSteps, renderRunbookMarkdown, d_ as resolveConnectionCredentials, d$ as resolveIntegrationApproval, e0 as revokeConnection, e1 as runIntegrationHealthcheck, e2 as runIntegrationHealthchecks, e3 as salesforceConnector, e4 as sanitizeAuditConnection, e5 as sanitizeConnection, e6 as searchIntegrationTools, e7 as signActivepiecesRuntimeRequest, e8 as signCapability, e9 as signTangleCatalogRuntimeRequest, ea as slack, eb as slackEventsConnector, specAuthToConnectorAuth, ec as startOAuthFlow, ed as statusForCode, ee as storedEventToTriggerEvent, ef as stripePackConnector, eg as stripeWebhookReceiverConnector, eh as summarizeIntegrationRegistry, ei as toMcpTools, ej as twilioSmsConnector, ek as validateConnectorManifest, validateCredentialFormat, validateCredentialSet, el as validateIntegrationInvocationEnvelope, em as validateIntegrationManifest, validateIntegrationSpec, en as validateProviderPassthroughRequest, eo as verifyActivepiecesRuntimeSignature, ep as verifyCapabilityToken, eq as verifyHmacSignature, er as verifySlackSignature, es as verifyStripeSignature, et as verifyTangleCatalogRuntimeSignature, eu as verifyTwilioSignature, ev as webhookConnector } from './specs.js';
|
|
1
|
+
export { A as ACTIVEPIECES_OVERRIDES, a as ACTIVEPIECES_PUBLIC_CATALOG_URL, b as ACTIVEPIECES_RUNTIME_SIGNATURE_HEADER, c as ActivepiecesCatalogEntry, d as ActivepiecesExecutorInvocation, e as ActivepiecesExecutorProviderOptions, f as ActivepiecesHttpExecutorOptions, g as ActivepiecesPieceOverride, h as ActivepiecesRuntimeRequest, ApiKeyAuthSpec, i as ApprovalBackedPolicyEngine, j as ApprovalBackedPolicyOptions, k as AuthSpec, C as CANONICAL_INTEGRATION_ACTIONS, l as CASStrategy, m as CanonicalIntegrationActionId, n as CanonicalLaunchConnectorOptions, o as Capability, p as CapabilityClass, q as CapabilityMutation, r as CapabilityMutationResult, s as CapabilityParameterSchema, t as CapabilityRead, u as CapabilityReadResult, v as CatalogExecutorInvocation, w as CatalogExecutorProviderOptions, x as CompleteAuthRequest, y as ComposeIntegrationRegistryOptions, z as ConnectionCredentialResolverOptions, B as ConnectorAdapter, D as ConnectorAdapterProviderOptions, E as ConnectorCredentials, F as ConnectorInvocation, G as ConnectorManifest, H as ConnectorManifestValidationIssue, I as ConnectorManifestValidationResult, J as ConsentSummary, K as ConsistencyModel, ConsoleStep, CredentialFieldSpec, CredentialValidationInput, CredentialValidationResult, L as CredentialsExpired, CustomAuthSpec, M as DEFAULT_INTEGRATION_BRIDGE_ENV, N as DEFAULT_SIGNATURE_TOLERANCE_SECONDS, O as DataSourceMetadata, P as DefaultIntegrationActionGuard, Q as EventHandlerResult, R as ExchangeCodeInput, S as GatewayCatalogAction, T as GatewayCatalogEntry, U as GatewayCatalogProviderOptions, V as GatewayCatalogTrigger, W as GenericHmacVerifyOptions, X as GoogleCalendarOptions, Y as GoogleSheetsOptions, Z as GraphqlOperationSpec, HealthcheckPlan, HealthcheckSpec, HmacAuthSpec, _ as HttpIntegrationProviderOptions, $ as HubSpotOptions, INTEGRATION_FAMILIES, a0 as ImportCatalogOptions, a1 as InMemoryConnectionStore, a2 as InMemoryIntegrationApprovalStore, a3 as InMemoryIntegrationAuditStore, a4 as InMemoryIntegrationEventStore, a5 as InMemoryIntegrationGrantStore, a6 as InMemoryIntegrationHealthcheckStore, a7 as InMemoryIntegrationIdempotencyStore, a8 as InMemoryIntegrationSecretStore, a9 as InMemoryIntegrationWorkflowStore, aa as InMemoryOAuthFlowStore, ab as InboundEvent, ac as InferIntegrationRequirementsOptions, ad as InstalledIntegrationWorkflow, ae as IntegrationActionGuard, af as IntegrationActionPack, ag as IntegrationActionRequest, ah as IntegrationActionResult, ai as IntegrationActionRisk, aj as IntegrationActor, ak as IntegrationApprovalFilter, al as IntegrationApprovalRecord, am as IntegrationApprovalRequest, an as IntegrationApprovalResolution, ao as IntegrationApprovalStatus, ap as IntegrationApprovalStore, aq as IntegrationAuditEvent, ar as IntegrationAuditEventType, as as IntegrationAuditFilter, at as IntegrationAuditSink, au as IntegrationAuditStore, IntegrationAuthMode, IntegrationAuthSpec, av as IntegrationBridgePayload, aw as IntegrationBridgeToolBinding, ax as IntegrationCapability, ay as IntegrationCapabilityBinding, az as IntegrationCatalogFreshnessOptions, aA as IntegrationCatalogFreshnessResult, aB as IntegrationCatalogSource, aC as IntegrationConnection, aD as IntegrationConnectionStore, aE as IntegrationConnector, aF as IntegrationConnectorAction, aG as IntegrationConnectorCategory, aH as IntegrationConnectorTrigger, aI as IntegrationCoveragePriority, aJ as IntegrationCoverageSpec, aK as IntegrationDataClass, aL as IntegrationError, aM as IntegrationErrorCode, aN as IntegrationEventStore, IntegrationFamilyId, IntegrationFamilySpec, aO as IntegrationGrant, aP as IntegrationGrantStore, aQ as IntegrationGuardContext, aR as IntegrationHealthcheckCheck, aS as IntegrationHealthcheckResult, aT as IntegrationHealthcheckStatus, aU as IntegrationHealthcheckStore, aV as IntegrationHub, aW as IntegrationHubOptions, aX as IntegrationIdempotencyRecord, aY as IntegrationIdempotencyStore, aZ as IntegrationInvocationEnvelope, a_ as IntegrationInvocationEnvelopeValidationOptions, IntegrationLifecycleSpec, a$ as IntegrationManifest, b0 as IntegrationManifestResolution, IntegrationPlannerHints, b1 as IntegrationPolicyDecision, b2 as IntegrationPolicyEffect, b3 as IntegrationPolicyEngine, b4 as IntegrationPolicyRule, b5 as IntegrationProvider, b6 as IntegrationProviderKind, b7 as IntegrationRateLimitDecision, b8 as IntegrationRateLimiter, b9 as IntegrationRegistry, ba as IntegrationRegistryConflict, bb as IntegrationRegistryEntry, bc as IntegrationRegistrySourceRef, bd as IntegrationRegistrySummary, be as IntegrationRequirement, bf as IntegrationRequirementMode, bg as IntegrationRequirementResolution, bh as IntegrationRequirementStatus, bi as IntegrationRuntime, bj as IntegrationRuntimeError, bk as IntegrationRuntimeHub, bl as IntegrationRuntimeOptions, bm as IntegrationSandboxBundle, bn as IntegrationSandboxHost, bo as IntegrationSandboxHostHub, bp as IntegrationSandboxHostOptions, bq as IntegrationSecretStore, IntegrationSetupSpec, IntegrationSpec, IntegrationSpecStatus, IntegrationSpecValidationIssue, IntegrationSpecValidationResult, br as IntegrationSupportTier, bs as IntegrationToolDefinition, bt as IntegrationToolSearchFilters, bu as IntegrationToolSearchResult, bv as IntegrationTriggerEvent, bw as IntegrationTriggerSubscription, bx as IntegrationUserAction, by as IntegrationWebhookReceiverResult, bz as IntegrationWorkflowDefinition, bA as IntegrationWorkflowRuntime, bB as IntegrationWorkflowRuntimeHub, bC as IntegrationWorkflowRuntimeOptions, bD as IntegrationWorkflowStore, bE as InvokeWithCapabilityRequest, bF as IssueCapabilityRequest, bG as IssuedIntegrationCapability, bH as ManifestValidationIssue, bI as ManifestValidationResult, bJ as McpCatalog, bK as McpCatalogTool, bL as McpToolDefinition, bM as MicrosoftCalendarOptions, bN as MissingRequirementExplanation, NoneAuthSpec, bO as NormalizedIntegrationError, bP as NormalizedIntegrationResult, NormalizedPermission, bQ as NotionDatabaseOptions, OAuth2AuthSpec, bR as OAuthFlowStore, bS as OAuthTokens, bT as OpenApiDocument, bU as OpenApiOperation, bV as PROVIDER_PASSTHROUGH_ACTION, bW as ParsedStripeSignatureHeader, bX as PendingOAuthFlow, PermissionDescriptor, bY as PlatformIntegrationPolicyPresetOptions, PostSetupCheck, bZ as ProviderHttpRequestInput, b_ as ProviderPassthroughPolicy, Quirk, b$ as RateLimitSpec, c0 as RefreshInput, c1 as RenderConsentOptions, RenderSpecOptions, RenderedConsoleStep, c2 as ResolvedDataSource, c3 as ResourceContention, c4 as RestConnectorSpec, c5 as RestCredentialPlacement, c6 as RestOperationSpec, c7 as RestRequestSpec, ScopeDescriptor, c8 as SecretRef, c9 as SlackOptions, ca as SlackVerifyOptions, cb as StartAuthRequest, cc as StartAuthResult, cd as StartOAuthInput, ce as StartOAuthOutput, cf as StaticIntegrationPolicyEngine, cg as StaticIntegrationPolicyOptions, ch as StoredIntegrationEvent, ci as StripeVerifyOptions, cj as TANGLE_CATALOG_RUNTIME_SIGNATURE_HEADER, ck as TANGLE_INTEGRATIONS_CATALOG_PROVIDER_ID, cl as TANGLE_INTEGRATIONS_CATALOG_SOURCE, cm as TangleCatalogExecutorInvocation, cn as TangleCatalogExecutorProviderOptions, co as TangleCatalogHttpExecutorInvocation, cp as TangleCatalogHttpExecutorOptions, cq as TangleCatalogInstalledPackageExecutorOptions, cr as TangleCatalogRuntimeHandlerOptions, cs as TangleCatalogRuntimeHttpRequest, ct as TangleCatalogRuntimeHttpResponse, cu as TangleCatalogRuntimeInvocation, cv as TangleCatalogRuntimeModuleAction, cw as TangleCatalogRuntimeRequest, cx as TangleIntegrationCatalogEntry, cy as TangleIntegrationCatalogFreshnessOptions, cz as TangleIntegrationCatalogFreshnessResult, cA as TangleIntegrationInvokeInput, cB as TangleIntegrationInvokeResult, cC as TangleIntegrationsClient, cD as TangleIntegrationsClientOptions, cE as TwilioVerifyOptions, cF as _resetPendingFlowsForTests, cG as adapterManifestsToConnectors, cH as airtableConnector, cI as asanaConnector, cJ as assertValidConnectorManifest, cK as assertValidIntegrationManifest, assertValidIntegrationSpec, cL as auditIntegrationCatalogFreshness, cM as auditTangleIntegrationCatalogFreshness, cN as buildActivepiecesConnectors, cO as buildActivepiecesRuntimeRequest, cP as buildApprovalRequest, cQ as buildCanonicalLaunchConnectors, cR as buildDefaultIntegrationRegistry, buildHealthcheckPlan, cS as buildIntegrationBridgeEnvironment, cT as buildIntegrationBridgePayload, cU as buildIntegrationCoverageConnectors, cV as buildIntegrationInvocationEnvelope, cW as buildIntegrationToolCatalog, cX as buildTangleCatalogRuntimeRequest, cY as buildTangleIntegrationCatalogConnectors, cZ as calendarExercisePlannerManifest, c_ as canonicalActionConnectorId, c$ as canonicalConnectorId, d0 as composeIntegrationRegistry, consoleStepsToText, d1 as consumePendingFlow, d2 as createActivepiecesExecutorProvider, d3 as createActivepiecesHttpExecutor, d4 as createApprovalBackedPolicyEngine, d5 as createAuditingActionGuard, d6 as createCatalogExecutorProvider, d7 as createConnectionCredentialResolver, d8 as createConnectorAdapterCatalogSource, d9 as createConnectorAdapterProvider, da as createCredentialBackedAdapterProvider, db as createDefaultIntegrationActionGuard, dc as createDefaultIntegrationPolicyEngine, dd as createGatewayCatalogProvider, de as createHttpIntegrationProvider, df as createIntegrationAuditEvent, dg as createIntegrationRuntime, dh as createIntegrationWorkflowRuntime, di as createMockIntegrationProvider, dj as createPlatformIntegrationPolicyPreset, dk as createTangleCatalogExecutorProvider, dl as createTangleCatalogHttpExecutor, dm as createTangleCatalogInstalledPackageExecutor, dn as createTangleCatalogRuntimeHandler, dp as createTangleIntegrationsClient, dq as declarativeRestConnector, dr as decodeIntegrationBridgePayload, ds as dispatchIntegrationInvocation, dt as encodeIntegrationBridgePayload, du as exchangeAuthorizationCode, dv as explainMissingRequirements, dw as extractActivepiecesPublicPieceCount, dx as extractExternalCatalogPublicCount, dy as firstHeader, dz as getActivepiecesOverride, getIntegrationFamily, getIntegrationSpec, dA as githubConnector, dB as gitlabConnector, dC as googleCalendar, dD as googleSheets, dE as healthcheckRequest, dF as hubspot, dG as importGraphqlConnector, dH as importMcpConnector, dI as importOpenApiConnector, dJ as inferIntegrationManifestFromTools, dK as inferIntegrationSupportTier, dL as integrationCoverageChecklistMarkdown, integrationSpecToConnector, dM as integrationToolName, dN as invocationRequestFromEnvelope, dO as listActivepiecesCatalogEntries, listExecutableIntegrationSpecs, dP as listIntegrationCoverageSpecs, listIntegrationSpecs, dQ as listTangleIntegrationCatalogEntries, dR as manifestToConnector, dS as microsoftCalendar, dT as normalizeGatewayCatalog, dU as normalizeIntegrationError, dV as normalizeIntegrationResult, dW as notionDatabase, dX as parseIntegrationBridgeEnvironment, dY as parseIntegrationToolName, dZ as parseStripeSignatureHeader, d_ as receiveIntegrationWebhook, d$ as redactApprovalRequest, e0 as redactCapability, e1 as redactIntegrationBridgePayload, e2 as redactInvocationEnvelope, e3 as refreshAccessToken, renderAgentToolDescription, e4 as renderApprovalCopy, e5 as renderConsentSummary, renderConsoleSteps, renderRunbookMarkdown, e6 as resolveConnectionCredentials, e7 as resolveIntegrationApproval, e8 as revokeConnection, e9 as runIntegrationHealthcheck, ea as runIntegrationHealthchecks, eb as salesforceConnector, ec as sanitizeAuditConnection, ed as sanitizeConnection, ee as searchIntegrationTools, ef as signActivepiecesRuntimeRequest, eg as signCapability, eh as signTangleCatalogRuntimeRequest, ei as slack, ej as slackEventsConnector, specAuthToConnectorAuth, ek as startOAuthFlow, el as statusForCode, em as storedEventToTriggerEvent, en as stripePackConnector, eo as stripeWebhookReceiverConnector, ep as summarizeIntegrationRegistry, eq as toMcpTools, er as twilioSmsConnector, es as validateConnectorManifest, validateCredentialFormat, validateCredentialSet, et as validateIntegrationInvocationEnvelope, eu as validateIntegrationManifest, validateIntegrationSpec, ev as validateProviderPassthroughRequest, ew as verifyActivepiecesRuntimeSignature, ex as verifyCapabilityToken, ey as verifyHmacSignature, ez as verifySlackSignature, eA as verifyStripeSignature, eB as verifyTangleCatalogRuntimeSignature, eC as verifyTwilioSignature, eD as webhookConnector } from './specs.js';
|
package/dist/index.js
CHANGED
|
@@ -6218,6 +6218,199 @@ function sanitizeConnector(connector, providerId) {
|
|
|
6218
6218
|
};
|
|
6219
6219
|
}
|
|
6220
6220
|
|
|
6221
|
+
// src/tangle-catalog-runtime.ts
|
|
6222
|
+
function createTangleCatalogRuntimeHandler(options) {
|
|
6223
|
+
const connectors = options.connectors ?? buildTangleIntegrationCatalogConnectors({
|
|
6224
|
+
includeCatalogActions: true,
|
|
6225
|
+
executable: true
|
|
6226
|
+
});
|
|
6227
|
+
const byConnector = new Map(connectors.map((connector) => [connector.id, connector]));
|
|
6228
|
+
const requireSignature = options.requireSignature ?? Boolean(options.secret);
|
|
6229
|
+
const signatureHeader = options.signatureHeader ?? TANGLE_CATALOG_RUNTIME_SIGNATURE_HEADER;
|
|
6230
|
+
const maxBodyBytes = options.maxBodyBytes ?? 1e6;
|
|
6231
|
+
return async function handleTangleCatalogRuntimeRequest(input) {
|
|
6232
|
+
const serialized = serializeBody(input.body);
|
|
6233
|
+
if (Buffer.byteLength(serialized, "utf8") > maxBodyBytes) {
|
|
6234
|
+
return errorResponse(413, "unknown", "payload_too_large", "Tangle catalog runtime request is too large.");
|
|
6235
|
+
}
|
|
6236
|
+
if (requireSignature) {
|
|
6237
|
+
if (!options.secret) {
|
|
6238
|
+
return errorResponse(500, "unknown", "runtime_misconfigured", "Tangle catalog runtime secret is not configured.");
|
|
6239
|
+
}
|
|
6240
|
+
const signature = readHeader(input.headers, signatureHeader);
|
|
6241
|
+
if (!verifyTangleCatalogRuntimeSignature(serialized, signature, options.secret)) {
|
|
6242
|
+
return errorResponse(401, "unknown", "signature_invalid", "Tangle catalog runtime signature is invalid.");
|
|
6243
|
+
}
|
|
6244
|
+
}
|
|
6245
|
+
const parsed = parseRuntimeRequest(serialized);
|
|
6246
|
+
if (!parsed.ok) return parsed.response;
|
|
6247
|
+
const request = parsed.request;
|
|
6248
|
+
const connector = byConnector.get(request.connector.id);
|
|
6249
|
+
if (!connector) {
|
|
6250
|
+
return errorResponse(404, request.action.id, "connector_not_found", `Connector ${request.connector.id} is not in the Tangle catalog runtime.`);
|
|
6251
|
+
}
|
|
6252
|
+
if (request.connection.connectorId !== connector.id) {
|
|
6253
|
+
return errorResponse(400, request.action.id, "connector_mismatch", "Connection connectorId does not match runtime connector.");
|
|
6254
|
+
}
|
|
6255
|
+
if (request.connection.providerId !== connector.providerId) {
|
|
6256
|
+
return errorResponse(400, request.action.id, "provider_mismatch", "Connection providerId does not match runtime connector.");
|
|
6257
|
+
}
|
|
6258
|
+
const action = connector.actions.find((candidate) => candidate.id === request.action.id);
|
|
6259
|
+
if (!action) {
|
|
6260
|
+
return errorResponse(404, request.action.id, "action_not_found", `Action ${request.action.id} is not defined by connector ${connector.id}.`);
|
|
6261
|
+
}
|
|
6262
|
+
const result = await options.executeAction({
|
|
6263
|
+
request,
|
|
6264
|
+
connection: request.connection,
|
|
6265
|
+
connector,
|
|
6266
|
+
action
|
|
6267
|
+
});
|
|
6268
|
+
return {
|
|
6269
|
+
status: result.ok ? 200 : 502,
|
|
6270
|
+
headers: { "content-type": "application/json" },
|
|
6271
|
+
body: result
|
|
6272
|
+
};
|
|
6273
|
+
};
|
|
6274
|
+
}
|
|
6275
|
+
function createTangleCatalogInstalledPackageExecutor(options = {}) {
|
|
6276
|
+
const packageByConnector = new Map(
|
|
6277
|
+
listActivepiecesCatalogEntries().filter((entry) => entry.npmPackage).map((entry) => [entry.id, entry.npmPackage])
|
|
6278
|
+
);
|
|
6279
|
+
const moduleCache = /* @__PURE__ */ new Map();
|
|
6280
|
+
return async (invocation) => {
|
|
6281
|
+
await options.beforeRun?.(invocation);
|
|
6282
|
+
const packageName = packageByConnector.get(invocation.connector.id);
|
|
6283
|
+
if (!packageName) {
|
|
6284
|
+
return runtimeFailure(invocation.action.id, "runtime_not_available", `No installed runtime package is known for connector ${invocation.connector.id}.`);
|
|
6285
|
+
}
|
|
6286
|
+
const loaded = await loadRuntimeModule(packageName, options.moduleLoader, moduleCache);
|
|
6287
|
+
if (!loaded.ok) {
|
|
6288
|
+
return runtimeFailure(invocation.action.id, "runtime_not_installed", loaded.message);
|
|
6289
|
+
}
|
|
6290
|
+
const piece = findPieceExport(loaded.module, invocation.connector.id);
|
|
6291
|
+
if (!piece) {
|
|
6292
|
+
return runtimeFailure(invocation.action.id, "runtime_invalid", `Runtime package ${packageName} does not export a recognizable piece for ${invocation.connector.id}.`);
|
|
6293
|
+
}
|
|
6294
|
+
const action = findRuntimeAction(piece, invocation, options.actionAliases);
|
|
6295
|
+
if (!action?.run) {
|
|
6296
|
+
return runtimeFailure(invocation.action.id, "action_not_implemented", `Runtime package ${packageName} does not expose executable action ${invocation.action.id}.`);
|
|
6297
|
+
}
|
|
6298
|
+
try {
|
|
6299
|
+
const output = await action.run({
|
|
6300
|
+
auth: await options.resolveAuth?.(invocation.connection),
|
|
6301
|
+
propsValue: invocation.request.action.input,
|
|
6302
|
+
input: invocation.request.action.input,
|
|
6303
|
+
connection: invocation.connection,
|
|
6304
|
+
request: invocation.request
|
|
6305
|
+
});
|
|
6306
|
+
return {
|
|
6307
|
+
ok: true,
|
|
6308
|
+
action: invocation.action.id,
|
|
6309
|
+
output
|
|
6310
|
+
};
|
|
6311
|
+
} catch (error) {
|
|
6312
|
+
return runtimeFailure(
|
|
6313
|
+
invocation.action.id,
|
|
6314
|
+
"runtime_action_failed",
|
|
6315
|
+
error instanceof Error ? error.message : "Runtime action failed."
|
|
6316
|
+
);
|
|
6317
|
+
}
|
|
6318
|
+
};
|
|
6319
|
+
}
|
|
6320
|
+
function serializeBody(body) {
|
|
6321
|
+
if (typeof body === "string") return body;
|
|
6322
|
+
if (body instanceof Uint8Array) return new TextDecoder().decode(body);
|
|
6323
|
+
return JSON.stringify(body);
|
|
6324
|
+
}
|
|
6325
|
+
async function loadRuntimeModule(packageName, moduleLoader, moduleCache) {
|
|
6326
|
+
try {
|
|
6327
|
+
const load = moduleLoader ?? ((name) => import(name));
|
|
6328
|
+
const promise = moduleCache.get(packageName) ?? Promise.resolve(load(packageName));
|
|
6329
|
+
moduleCache.set(packageName, promise);
|
|
6330
|
+
return { ok: true, module: await promise };
|
|
6331
|
+
} catch (error) {
|
|
6332
|
+
return {
|
|
6333
|
+
ok: false,
|
|
6334
|
+
message: error instanceof Error ? `Runtime package ${packageName} could not be loaded: ${error.message}` : `Runtime package ${packageName} could not be loaded.`
|
|
6335
|
+
};
|
|
6336
|
+
}
|
|
6337
|
+
}
|
|
6338
|
+
function findPieceExport(moduleValue, connectorId) {
|
|
6339
|
+
const mod = moduleValue && typeof moduleValue === "object" ? moduleValue : {};
|
|
6340
|
+
const values = [
|
|
6341
|
+
mod.default,
|
|
6342
|
+
mod[camel(connectorId)],
|
|
6343
|
+
mod[connectorId],
|
|
6344
|
+
...Object.values(mod)
|
|
6345
|
+
];
|
|
6346
|
+
return values.find((value) => Boolean(value) && typeof value === "object" && Array.isArray(value.actions));
|
|
6347
|
+
}
|
|
6348
|
+
function findRuntimeAction(piece, invocation, aliases = {}) {
|
|
6349
|
+
const actions = (piece.actions ?? []).filter((action) => Boolean(action) && typeof action === "object");
|
|
6350
|
+
const explicit = aliases[invocation.connector.id]?.[invocation.action.id];
|
|
6351
|
+
const candidates = new Set([
|
|
6352
|
+
invocation.action.id,
|
|
6353
|
+
invocation.action.title,
|
|
6354
|
+
invocation.request.piece.upstreamActionName,
|
|
6355
|
+
explicit
|
|
6356
|
+
].filter((value) => Boolean(value)));
|
|
6357
|
+
for (const action of actions) {
|
|
6358
|
+
const names = [action.name, action.displayName].filter((value) => Boolean(value));
|
|
6359
|
+
if (names.some((name) => candidates.has(name))) return action;
|
|
6360
|
+
if (names.some((name) => [...candidates].some((candidate) => comparable(name) === comparable(candidate)))) return action;
|
|
6361
|
+
}
|
|
6362
|
+
return void 0;
|
|
6363
|
+
}
|
|
6364
|
+
function runtimeFailure(action, code, message) {
|
|
6365
|
+
return {
|
|
6366
|
+
ok: false,
|
|
6367
|
+
action,
|
|
6368
|
+
output: { code, message }
|
|
6369
|
+
};
|
|
6370
|
+
}
|
|
6371
|
+
function comparable(value) {
|
|
6372
|
+
return value.toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
6373
|
+
}
|
|
6374
|
+
function camel(value) {
|
|
6375
|
+
return value.replace(/[-_.]+([a-z0-9])/g, (_, char) => char.toUpperCase());
|
|
6376
|
+
}
|
|
6377
|
+
function parseRuntimeRequest(serialized) {
|
|
6378
|
+
try {
|
|
6379
|
+
const request = JSON.parse(serialized);
|
|
6380
|
+
if (request.version !== 1) {
|
|
6381
|
+
return { ok: false, response: errorResponse(400, request.action?.id ?? "unknown", "version_invalid", "Unsupported Tangle catalog runtime request version.") };
|
|
6382
|
+
}
|
|
6383
|
+
if (!request.connection || !request.connector || !request.action?.id) {
|
|
6384
|
+
return { ok: false, response: errorResponse(400, request.action?.id ?? "unknown", "request_invalid", "Tangle catalog runtime request is missing required fields.") };
|
|
6385
|
+
}
|
|
6386
|
+
return { ok: true, request };
|
|
6387
|
+
} catch {
|
|
6388
|
+
return { ok: false, response: errorResponse(400, "unknown", "json_invalid", "Tangle catalog runtime request body is not valid JSON.") };
|
|
6389
|
+
}
|
|
6390
|
+
}
|
|
6391
|
+
function readHeader(headers, name) {
|
|
6392
|
+
if (!headers) return void 0;
|
|
6393
|
+
if (headers instanceof Headers) return headers.get(name) ?? void 0;
|
|
6394
|
+
const wanted = name.toLowerCase();
|
|
6395
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
6396
|
+
if (key.toLowerCase() !== wanted) continue;
|
|
6397
|
+
if (Array.isArray(value)) return value[0];
|
|
6398
|
+
return value;
|
|
6399
|
+
}
|
|
6400
|
+
return void 0;
|
|
6401
|
+
}
|
|
6402
|
+
function errorResponse(status, action, code, message) {
|
|
6403
|
+
return {
|
|
6404
|
+
status,
|
|
6405
|
+
headers: { "content-type": "application/json" },
|
|
6406
|
+
body: {
|
|
6407
|
+
ok: false,
|
|
6408
|
+
action,
|
|
6409
|
+
output: { code, message }
|
|
6410
|
+
}
|
|
6411
|
+
};
|
|
6412
|
+
}
|
|
6413
|
+
|
|
6221
6414
|
// src/runtime.ts
|
|
6222
6415
|
var InMemoryIntegrationGrantStore = class {
|
|
6223
6416
|
grants = /* @__PURE__ */ new Map();
|
|
@@ -6923,6 +7116,8 @@ export {
|
|
|
6923
7116
|
createPlatformIntegrationPolicyPreset,
|
|
6924
7117
|
createTangleCatalogExecutorProvider,
|
|
6925
7118
|
createTangleCatalogHttpExecutor,
|
|
7119
|
+
createTangleCatalogInstalledPackageExecutor,
|
|
7120
|
+
createTangleCatalogRuntimeHandler,
|
|
6926
7121
|
createTangleIntegrationsClient,
|
|
6927
7122
|
declarativeRestConnector,
|
|
6928
7123
|
decodeIntegrationBridgePayload,
|