@tangle-network/agent-integrations 0.29.0 → 0.31.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/dist/bin/tangle-catalog-runtime.js +7 -7
- package/dist/catalog.d.ts +2 -2
- package/dist/catalog.js +11 -7
- package/dist/{chunk-SVQ4PHDZ.js → chunk-CDY2ETYT.js} +2 -2
- package/dist/chunk-F4YILONK.js +96875 -0
- package/dist/chunk-F4YILONK.js.map +1 -0
- package/dist/{chunk-P24T3MLM.js → chunk-JCHD6L3B.js} +2 -2
- package/dist/{chunk-TUX6MJJ4.js → chunk-M2RFFAMB.js} +559 -411
- package/dist/chunk-M2RFFAMB.js.map +1 -0
- package/dist/{chunk-ATYHZXLL.js → chunk-Q5X3QNHR.js} +1 -1
- package/dist/chunk-Q5X3QNHR.js.map +1 -0
- package/dist/{chunk-YOKNZY2N.js → chunk-S2MVWQYL.js} +2 -2
- package/dist/{chunk-4JQ754PA.js → chunk-VVC7U7W7.js} +28 -1
- package/dist/{chunk-4JQ754PA.js.map → chunk-VVC7U7W7.js.map} +1 -1
- package/dist/connect/index.d.ts +1 -1
- package/dist/connect/index.js +2 -2
- package/dist/connectors/adapters/index.d.ts +3933 -3
- package/dist/connectors/adapters/index.js +940 -4
- package/dist/connectors/index.d.ts +2 -2
- package/dist/connectors/index.js +940 -4
- package/dist/consumer.d.ts +2 -2
- package/dist/consumer.js +2 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.js +955 -9
- package/dist/middleware/index.d.ts +1 -1
- package/dist/middleware/index.js +2 -2
- package/dist/registry.d.ts +200 -47
- package/dist/registry.js +9 -7
- package/dist/runtime.d.ts +2 -2
- package/dist/runtime.js +7 -7
- package/dist/specs.d.ts +2 -2
- package/dist/specs.js +3 -1
- package/dist/tangle-catalog-runtime.d.ts +2 -2
- package/dist/tangle-catalog-runtime.js +7 -7
- package/dist/{tangle-id-CTU4kGId.d.ts → tangle-id-Dj0ipP4E.d.ts} +8 -1
- package/docs/integration-execution-audit.md +1 -1
- package/package.json +16 -12
- package/dist/chunk-ATYHZXLL.js.map +0 -1
- package/dist/chunk-JU25UDN2.js +0 -4260
- package/dist/chunk-JU25UDN2.js.map +0 -1
- package/dist/chunk-TUX6MJJ4.js.map +0 -1
- /package/dist/{chunk-SVQ4PHDZ.js.map → chunk-CDY2ETYT.js.map} +0 -0
- /package/dist/{chunk-P24T3MLM.js.map → chunk-JCHD6L3B.js.map} +0 -0
- /package/dist/{chunk-YOKNZY2N.js.map → chunk-S2MVWQYL.js.map} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { C as ConnectorAdapter } from '../../tangle-id-
|
|
2
|
-
export { D as DEFAULT_TANGLE_PLATFORM_URL, v as TANGLE_API_KEY_PREFIX, w as TANGLE_SERVICE_TOKEN_PREFIX, b as TangleIdentityClient, T as TangleIdentityOptions, x as TangleIdentityUnreachableError, c as TangleTokenVerifyFailure, y as TangleTokenVerifyResult, a as TangleUserSummary, z as TangleWorkspaceSummary, F as createTangleIdentityClient, G as tangleIdentity } from '../../tangle-id-
|
|
1
|
+
import { C as ConnectorAdapter } from '../../tangle-id-Dj0ipP4E.js';
|
|
2
|
+
export { D as DEFAULT_TANGLE_PLATFORM_URL, v as TANGLE_API_KEY_PREFIX, w as TANGLE_SERVICE_TOKEN_PREFIX, b as TangleIdentityClient, T as TangleIdentityOptions, x as TangleIdentityUnreachableError, c as TangleTokenVerifyFailure, y as TangleTokenVerifyResult, a as TangleUserSummary, z as TangleWorkspaceSummary, F as createTangleIdentityClient, G as tangleIdentity } from '../../tangle-id-Dj0ipP4E.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Google Calendar connector — CAS reference implementation.
|
|
@@ -142,6 +142,8 @@ interface GoogleSheetsOptions {
|
|
|
142
142
|
}
|
|
143
143
|
declare function googleSheets(opts: GoogleSheetsOptions): ConnectorAdapter;
|
|
144
144
|
|
|
145
|
+
declare const googleSlidesConnector: ConnectorAdapter;
|
|
146
|
+
|
|
145
147
|
/**
|
|
146
148
|
* @stable Gmail connector — email-triggered agent workflows.
|
|
147
149
|
*
|
|
@@ -474,6 +476,43 @@ declare function declarativeRestConnector(spec: RestConnectorSpec): ConnectorAda
|
|
|
474
476
|
|
|
475
477
|
declare const twilioSmsConnector: ConnectorAdapter;
|
|
476
478
|
|
|
479
|
+
/**
|
|
480
|
+
* WhatsApp Business connector — Meta Graph API messaging surface.
|
|
481
|
+
*
|
|
482
|
+
* send_text_message(to, body, previewUrl?) → mutation; cas: 'none'
|
|
483
|
+
* send_template_message(to, template, language) → mutation; cas: 'none'
|
|
484
|
+
* list_message_templates(limit?, status?) → read
|
|
485
|
+
* get_business_phone_number() → read
|
|
486
|
+
*
|
|
487
|
+
* Why `cas: 'none'` on sends:
|
|
488
|
+
* WhatsApp Business outbound messages are append-only and Meta does not
|
|
489
|
+
* expose a server-side idempotency key on /messages. MutationGuard's
|
|
490
|
+
* idempotency-key short-circuit (one level above the connector) is the
|
|
491
|
+
* dedup. We pin `defaultConsistencyModel: 'advisory'` to keep the
|
|
492
|
+
* validator happy — chat outbound is informational, not transactional.
|
|
493
|
+
*
|
|
494
|
+
* Auth: Facebook Login for Business (OAuth2). The OAuth response returns
|
|
495
|
+
* a `User Access Token`; the app then exchanges it via /debug_token for
|
|
496
|
+
* a long-lived (~60d) Business Token. We store the long-lived token as
|
|
497
|
+
* `accessToken`; no refresh_token because Meta does not issue one for
|
|
498
|
+
* business tokens — re-authorization is the recovery path.
|
|
499
|
+
*
|
|
500
|
+
* DataSource metadata (NOT secret, set at connect-time):
|
|
501
|
+
* - phoneNumberId : the WABA-scoped Phone Number ID Meta assigned to
|
|
502
|
+
* this connection (required for /messages calls).
|
|
503
|
+
* - wabaId : the WhatsApp Business Account ID (required for
|
|
504
|
+
* /message_templates calls).
|
|
505
|
+
*
|
|
506
|
+
* Both come from the Embedded Signup callback; the operator wires them
|
|
507
|
+
* before invokeAction is ever called.
|
|
508
|
+
*/
|
|
509
|
+
|
|
510
|
+
interface WhatsappBusinessOptions {
|
|
511
|
+
clientId: string;
|
|
512
|
+
clientSecret: string;
|
|
513
|
+
}
|
|
514
|
+
declare function whatsappBusiness(opts: WhatsappBusinessOptions): ConnectorAdapter;
|
|
515
|
+
|
|
477
516
|
/**
|
|
478
517
|
* Stripe pack connector — single connector kind packing customer +
|
|
479
518
|
* invoice + checkout + subscription management capabilities, validating
|
|
@@ -582,6 +621,8 @@ declare const slackEventsConnector: ConnectorAdapter;
|
|
|
582
621
|
|
|
583
622
|
declare const githubConnector: ConnectorAdapter;
|
|
584
623
|
|
|
624
|
+
declare const giteaConnector: ConnectorAdapter;
|
|
625
|
+
|
|
585
626
|
declare const gitlabConnector: ConnectorAdapter;
|
|
586
627
|
|
|
587
628
|
declare const airtableConnector: ConnectorAdapter;
|
|
@@ -590,4 +631,3893 @@ declare const asanaConnector: ConnectorAdapter;
|
|
|
590
631
|
|
|
591
632
|
declare const salesforceConnector: ConnectorAdapter;
|
|
592
633
|
|
|
593
|
-
|
|
634
|
+
/**
|
|
635
|
+
* Firebase / Cloud Firestore adapter.
|
|
636
|
+
*
|
|
637
|
+
* Surfaces Firestore document CRUD via the public REST API
|
|
638
|
+
* (https://firestore.googleapis.com/v1) using Google OAuth2 with the
|
|
639
|
+
* `datastore` scope, which Google Identity grants for Firestore + Datastore.
|
|
640
|
+
*
|
|
641
|
+
* Path parameter `documentPath` is the trailing portion after
|
|
642
|
+
* `databases/(default)/documents/` (e.g. `users/abc` or `orders/123/items/9`)
|
|
643
|
+
* so callers stay aware of Firestore's collection/document alternation rule.
|
|
644
|
+
*
|
|
645
|
+
* `body` for create/patch is a raw Firestore `Document` object — the caller
|
|
646
|
+
* supplies `fields` already typed via Firestore Value union (stringValue,
|
|
647
|
+
* integerValue, etc.). This adapter intentionally does not auto-convert
|
|
648
|
+
* primitives; callers using this from agent workflows pass the typed JSON
|
|
649
|
+
* directly so we never silently re-encode user data.
|
|
650
|
+
*/
|
|
651
|
+
declare const firebaseConnector: ConnectorAdapter;
|
|
652
|
+
|
|
653
|
+
declare const twentyConnector: ConnectorAdapter;
|
|
654
|
+
|
|
655
|
+
declare const supabaseConnector: ConnectorAdapter;
|
|
656
|
+
|
|
657
|
+
declare const discordConnector: ConnectorAdapter;
|
|
658
|
+
|
|
659
|
+
declare const facebookPagesConnector: ConnectorAdapter;
|
|
660
|
+
|
|
661
|
+
/**
|
|
662
|
+
* Telegram Bot API connector — bot-token outbound messaging, inbound
|
|
663
|
+
* polling/webhook setup, and chat/member introspection.
|
|
664
|
+
*
|
|
665
|
+
* Auth shape
|
|
666
|
+
* ----------
|
|
667
|
+
* Telegram bots authenticate by embedding the bot token directly in the
|
|
668
|
+
* request URL path: `https://api.telegram.org/bot{TOKEN}/{method}`. There
|
|
669
|
+
* is no OAuth2 endpoint (the "Telegram Login Widget" is a separate
|
|
670
|
+
* HMAC-signed user-identity primitive, not an API access grant). Bots are
|
|
671
|
+
* issued out-of-band by BotFather; the token IS the credential. We model
|
|
672
|
+
* this as `api-key` with the raw bot token in `credentials.apiKey`. The
|
|
673
|
+
* declarative-REST helper can't express URL-path credential placement, so
|
|
674
|
+
* this adapter is hand-rolled, matching the twilio-sms pattern.
|
|
675
|
+
*
|
|
676
|
+
* Consistency model
|
|
677
|
+
* -----------------
|
|
678
|
+
* Telegram messages are append-only and advisory — no etag, no compare-
|
|
679
|
+
* and-swap on sendMessage. Edits and deletes use the (chat_id, message_id)
|
|
680
|
+
* pair as a natural idempotency anchor. We mark `advisory` so the planner
|
|
681
|
+
* does not promise transactional outcomes; sendMessage CAS is `none`,
|
|
682
|
+
* edits use `optimistic-read-verify`, and deletes / answerCallbackQuery /
|
|
683
|
+
* setWebhook use `native-idempotency` since replaying the same call is
|
|
684
|
+
* safe (same args ⇒ same end state).
|
|
685
|
+
*
|
|
686
|
+
* Capability surface (Bot API v7+)
|
|
687
|
+
* --------------------------------
|
|
688
|
+
* reads — getMe, getChat, getChatAdministrators, getChatMember,
|
|
689
|
+
* getChatMemberCount, getUpdates, getFile, getWebhookInfo
|
|
690
|
+
* mutations — sendMessage, sendPhoto, sendDocument, editMessageText,
|
|
691
|
+
* deleteMessage, forwardMessage, answerCallbackQuery,
|
|
692
|
+
* setWebhook, deleteWebhook
|
|
693
|
+
*
|
|
694
|
+
* Long-polling (`getUpdates`) and webhook receivers are both supported as
|
|
695
|
+
* read/mutation capabilities; full inbound `handleInboundEvent` wiring is
|
|
696
|
+
* left for the webhook layer to add once a `telegram-webhook-receiver`
|
|
697
|
+
* adapter lands (Telegram delivers updates as raw POST bodies with a
|
|
698
|
+
* `X-Telegram-Bot-Api-Secret-Token` header that the receiver verifies).
|
|
699
|
+
*/
|
|
700
|
+
|
|
701
|
+
declare const telegramConnector: ConnectorAdapter;
|
|
702
|
+
/** Public file-download root. Callers that resolve `getFile` results into
|
|
703
|
+
* download URLs build `${TELEGRAM_FILE_DOWNLOAD_ROOT}/bot<token>/<file_path>`;
|
|
704
|
+
* exposed here so consumers don't reinvent the constant. */
|
|
705
|
+
declare const TELEGRAM_FILE_DOWNLOAD_ROOT = "https://api.telegram.org/file";
|
|
706
|
+
|
|
707
|
+
declare const pipedriveConnector: ConnectorAdapter;
|
|
708
|
+
|
|
709
|
+
declare const closeConnector: ConnectorAdapter;
|
|
710
|
+
|
|
711
|
+
declare const zohoCrmConnector: ConnectorAdapter;
|
|
712
|
+
|
|
713
|
+
declare const zohoDeskConnector: ConnectorAdapter;
|
|
714
|
+
|
|
715
|
+
declare const attioConnector: ConnectorAdapter;
|
|
716
|
+
|
|
717
|
+
declare const quickbooksConnector: ConnectorAdapter;
|
|
718
|
+
|
|
719
|
+
/**
|
|
720
|
+
* Xero accounting connector.
|
|
721
|
+
*
|
|
722
|
+
* Auth: OAuth2 (Authorization Code + PKCE) via the Xero Identity service. After
|
|
723
|
+
* consent the customer authorizes one or more Xero organizations ("tenants");
|
|
724
|
+
* the chosen tenant id is passed on every API call via the `xero-tenant-id`
|
|
725
|
+
* header. Because a single connection can span multiple tenants, the adapter
|
|
726
|
+
* requires `tenantId` as an explicit argument on each capability rather than
|
|
727
|
+
* pulling it from connection metadata — this mirrors how Salesforce requires
|
|
728
|
+
* `objectName` per call.
|
|
729
|
+
*
|
|
730
|
+
* Capability surface = the finance/accounting action pack: read+create+update
|
|
731
|
+
* for contacts and invoices, plus an account read for chart-of-accounts lookups.
|
|
732
|
+
* All operations target the Xero Accounting REST API v2.0.
|
|
733
|
+
*/
|
|
734
|
+
declare const xeroConnector: ConnectorAdapter;
|
|
735
|
+
|
|
736
|
+
declare const gustoConnector: ConnectorAdapter;
|
|
737
|
+
|
|
738
|
+
declare const bigcommerceConnector: ConnectorAdapter;
|
|
739
|
+
|
|
740
|
+
declare const shopifyConnector: ConnectorAdapter;
|
|
741
|
+
|
|
742
|
+
declare const ebayConnector: ConnectorAdapter;
|
|
743
|
+
|
|
744
|
+
interface EtsyOptions {
|
|
745
|
+
/** OAuth2 client_id, also used as the `x-api-key` header on every request.
|
|
746
|
+
* Etsy calls this the app "keystring". */
|
|
747
|
+
keystring: string;
|
|
748
|
+
}
|
|
749
|
+
declare function etsyConnector(opts: EtsyOptions): ConnectorAdapter;
|
|
750
|
+
|
|
751
|
+
declare const quickzuConnector: ConnectorAdapter;
|
|
752
|
+
|
|
753
|
+
declare const zagomailConnector: ConnectorAdapter;
|
|
754
|
+
|
|
755
|
+
declare const zendeskConnector: ConnectorAdapter;
|
|
756
|
+
|
|
757
|
+
declare const zendeskSellConnector: ConnectorAdapter;
|
|
758
|
+
|
|
759
|
+
declare const intercomConnector: ConnectorAdapter;
|
|
760
|
+
|
|
761
|
+
declare const helpscoutConnector: ConnectorAdapter;
|
|
762
|
+
|
|
763
|
+
declare const frontConnector: ConnectorAdapter;
|
|
764
|
+
|
|
765
|
+
declare const gorgiasConnector: ConnectorAdapter;
|
|
766
|
+
|
|
767
|
+
/**
|
|
768
|
+
* Mailchimp Marketing API v3.0 — audience/list management, member upsert,
|
|
769
|
+
* campaign send. Auth is OAuth2 with a per-account datacenter prefix; after
|
|
770
|
+
* the token exchange callers MUST hit `https://login.mailchimp.com/oauth2/metadata`
|
|
771
|
+
* with the access token and persist `api_endpoint` (e.g. `https://us20.api.mailchimp.com`)
|
|
772
|
+
* into the data source `metadata.apiEndpoint` field. The declarative REST
|
|
773
|
+
* runtime then routes every request against that per-tenant base URL.
|
|
774
|
+
*
|
|
775
|
+
* Mailchimp OAuth2 does not use scopes — the grant is account-wide and the
|
|
776
|
+
* `scopes` array stays empty by design. We surface that explicitly in the
|
|
777
|
+
* manifest so the UI does not collect a value that the upstream will ignore.
|
|
778
|
+
*
|
|
779
|
+
* Member upserts use PUT against `/lists/{listId}/members/{subscriberHash}`
|
|
780
|
+
* where `subscriberHash` is the MD5 of the lowercase email — the caller is
|
|
781
|
+
* expected to pre-compute it and pass it in. That keeps this adapter pure
|
|
782
|
+
* declarative-REST and avoids smuggling crypto into the request layer.
|
|
783
|
+
*/
|
|
784
|
+
declare const mailchimpConnector: ConnectorAdapter;
|
|
785
|
+
|
|
786
|
+
declare const klaviyoConnector: ConnectorAdapter;
|
|
787
|
+
|
|
788
|
+
declare const sendgridConnector: ConnectorAdapter;
|
|
789
|
+
|
|
790
|
+
/**
|
|
791
|
+
* SendPulse adapter — REST API at https://api.sendpulse.com/
|
|
792
|
+
*
|
|
793
|
+
* Auth: OAuth2 client credentials (clientId + clientSecret) exchanged for
|
|
794
|
+
* an access token. The token is forwarded as a Bearer token in the
|
|
795
|
+
* Authorization header on every call.
|
|
796
|
+
*
|
|
797
|
+
* Capabilities mirror the activepieces catalog entry for `sendpulse`:
|
|
798
|
+
* subscriber lifecycle (add, update, delete, unsubscribe), and variable
|
|
799
|
+
* management per subscriber.
|
|
800
|
+
*/
|
|
801
|
+
declare const sendpulseConnector: ConnectorAdapter;
|
|
802
|
+
|
|
803
|
+
declare const postmarkConnector: ConnectorAdapter;
|
|
804
|
+
|
|
805
|
+
/**
|
|
806
|
+
* Marketo REST API — lead lifecycle (search, get, upsert), static list
|
|
807
|
+
* membership, and campaign trigger. Every Marketo subscription has its own
|
|
808
|
+
* Munchkin-scoped REST endpoint (`https://{munchkinId}.mktorest.com`), so the
|
|
809
|
+
* adapter resolves `baseUrl` from `metadata.restEndpoint` populated during
|
|
810
|
+
* connection setup.
|
|
811
|
+
*
|
|
812
|
+
* Marketo's primary machine-to-machine auth is client_credentials against
|
|
813
|
+
* `/identity/oauth/token`. For embedded LaunchPoint apps the same identity
|
|
814
|
+
* service exposes a 3-legged authorize endpoint at `/identity/oauth/authorize`
|
|
815
|
+
* which we surface here so the hub OAuth handler can negotiate a per-user
|
|
816
|
+
* token. Marketo does not honour granular OAuth scopes — capability is gated
|
|
817
|
+
* by the service user's API Role in the Marketo Admin UI — so we leave the
|
|
818
|
+
* scope set empty and document the requirement in the auth hint via the
|
|
819
|
+
* description on each capability.
|
|
820
|
+
*
|
|
821
|
+
* Lead upserts use POST /rest/v1/leads.json with an `action` of
|
|
822
|
+
* `createOrUpdate`; Marketo returns per-row status (`created`, `updated`,
|
|
823
|
+
* `skipped`) under `result[]` and the call is naturally idempotent when the
|
|
824
|
+
* caller supplies a `lookupField` (default `email`).
|
|
825
|
+
*/
|
|
826
|
+
declare const marketoConnector: ConnectorAdapter;
|
|
827
|
+
|
|
828
|
+
/**
|
|
829
|
+
* Braze REST API — customer lifecycle messaging (push / email / in-app / SMS).
|
|
830
|
+
*
|
|
831
|
+
* Auth: REST API key issued in the Braze dashboard (Settings → REST API Keys)
|
|
832
|
+
* with the per-endpoint permissions the agent will call. Braze accepts the key
|
|
833
|
+
* as a Bearer token, so the declarative REST runtime's default credential
|
|
834
|
+
* placement works as-is.
|
|
835
|
+
*
|
|
836
|
+
* Base URL is per-instance: every Braze workspace lives in one of the named
|
|
837
|
+
* REST endpoints (rest.iad-01.braze.com, rest.iad-02.braze.com,
|
|
838
|
+
* rest.eu-01.braze.com, etc.). The customer picks it once at connection time
|
|
839
|
+
* and we persist it on the data source `metadata.restEndpoint` field — the
|
|
840
|
+
* adapter routes every request against that per-tenant base URL. No
|
|
841
|
+
* fallback: a misconfigured connection fails loud at the first invocation
|
|
842
|
+
* rather than silently calling someone else's cluster.
|
|
843
|
+
*
|
|
844
|
+
* Capability surface covers the four flows agents actually need on Braze:
|
|
845
|
+
* - `users.track` — server-side event / attribute / purchase ingest
|
|
846
|
+
* - `users.identify` — alias→external_id reconciliation
|
|
847
|
+
* - `users.export` — read user profiles by external_id / braze_id / email
|
|
848
|
+
* - `subscription.status.set` — manage marketing/transactional opt-state
|
|
849
|
+
* - `campaigns.trigger.send` and `canvas.trigger.send` — API-triggered sends
|
|
850
|
+
* - `email.blacklist` — suppress an address from future sends
|
|
851
|
+
*
|
|
852
|
+
* Every mutation uses native idempotency where Braze supports it
|
|
853
|
+
* (`/users/track` is deterministic on `external_id`+`name`+`time`; campaign
|
|
854
|
+
* triggers accept a `dispatch_id` echo) and `external-effect: true` so the
|
|
855
|
+
* hub guard records the side effect even on replay.
|
|
856
|
+
*/
|
|
857
|
+
declare const brazeConnector: ConnectorAdapter;
|
|
858
|
+
|
|
859
|
+
declare const customerIoConnector: ConnectorAdapter;
|
|
860
|
+
|
|
861
|
+
declare const calComConnector: ConnectorAdapter;
|
|
862
|
+
|
|
863
|
+
declare const calendlyConnector: ConnectorAdapter;
|
|
864
|
+
|
|
865
|
+
declare const zohoBookingsConnector: ConnectorAdapter;
|
|
866
|
+
|
|
867
|
+
/**
|
|
868
|
+
* @stable Contentful CMS connector — read and write entries through the
|
|
869
|
+
* Content Management API (CMA).
|
|
870
|
+
*
|
|
871
|
+
* Five capabilities, all scoped to a single `spaceId` + `environmentId`
|
|
872
|
+
* (callers pin the environment per-action so the same connection can target
|
|
873
|
+
* `master`, `staging`, etc. without re-auth):
|
|
874
|
+
*
|
|
875
|
+
* entries.list(spaceId, environmentId, contentType?, query?, limit?, skip?)
|
|
876
|
+
* → CMA entry collection envelope
|
|
877
|
+
* Read. GET /spaces/{spaceId}/environments/{environmentId}/entries.
|
|
878
|
+
*
|
|
879
|
+
* entries.get(spaceId, environmentId, entryId)
|
|
880
|
+
* → CMA entry shape
|
|
881
|
+
* Read. GET /spaces/{spaceId}/environments/{environmentId}/entries/{entryId}.
|
|
882
|
+
*
|
|
883
|
+
* entries.create(spaceId, environmentId, contentType, fields)
|
|
884
|
+
* → created CMA entry
|
|
885
|
+
* Mutation. POST /spaces/{spaceId}/environments/{environmentId}/entries with
|
|
886
|
+
* the `X-Contentful-Content-Type` header.
|
|
887
|
+
*
|
|
888
|
+
* entries.update(spaceId, environmentId, entryId, version, fields)
|
|
889
|
+
* → updated CMA entry
|
|
890
|
+
* Mutation with CAS. PUT /spaces/{spaceId}/environments/{environmentId}/entries/{entryId}
|
|
891
|
+
* with `X-Contentful-Version` set from the caller-supplied `version` so
|
|
892
|
+
* concurrent edits surface as 409 conflict.
|
|
893
|
+
*
|
|
894
|
+
* entries.publish(spaceId, environmentId, entryId, version)
|
|
895
|
+
* → published entry
|
|
896
|
+
* Mutation with CAS. PUT /spaces/{spaceId}/environments/{environmentId}/entries/{entryId}/published.
|
|
897
|
+
*
|
|
898
|
+
* Auth: OAuth2 (Contentful OAuth app + Bearer token). Scopes:
|
|
899
|
+
* - `content_management_read` for read capabilities
|
|
900
|
+
* - `content_management_manage` for write capabilities
|
|
901
|
+
*
|
|
902
|
+
* Versioning: Contentful does not emit HTTP ETag headers. Every entry body
|
|
903
|
+
* carries `sys.version`; callers thread it back as the `version` argument on
|
|
904
|
+
* mutations. The 409 surfaces through the shared declarative-rest helper as
|
|
905
|
+
* a `{ status: 'conflict', ... }` result row.
|
|
906
|
+
*/
|
|
907
|
+
declare const contentfulConnector: ConnectorAdapter;
|
|
908
|
+
|
|
909
|
+
/**
|
|
910
|
+
* @stable Sanity Content Lake connector — query and mutate documents in a
|
|
911
|
+
* Sanity dataset through the public HTTP API.
|
|
912
|
+
*
|
|
913
|
+
* Five capabilities, scoped per-dataset (the connection holds the project
|
|
914
|
+
* host; the dataset is per-action so the same connection can target
|
|
915
|
+
* `production`, `staging`, etc.):
|
|
916
|
+
*
|
|
917
|
+
* documents.query(dataset, query, params?, apiVersion?)
|
|
918
|
+
* → { ms, query, result }
|
|
919
|
+
* Read. GET /v{apiVersion}/data/query/{dataset}?query={GROQ}&%24<param>=…
|
|
920
|
+
* The Sanity HTTP query API serializes GROQ params as `$<name>` query
|
|
921
|
+
* keys with JSON-encoded values.
|
|
922
|
+
*
|
|
923
|
+
* documents.get(dataset, documentId, apiVersion?)
|
|
924
|
+
* → { ms, documents: [doc] }
|
|
925
|
+
* Read. GET /v{apiVersion}/data/doc/{dataset}/{documentId}.
|
|
926
|
+
*
|
|
927
|
+
* documents.create(dataset, document, apiVersion?)
|
|
928
|
+
* → { transactionId, results: [...] }
|
|
929
|
+
* Mutation. POST /v{apiVersion}/data/mutate/{dataset} with a single
|
|
930
|
+
* `create` mutation. The caller passes the full document body including
|
|
931
|
+
* `_type` and optional `_id`. We thread `inv.idempotencyKey` as the
|
|
932
|
+
* `transactionId` query so retries collapse server-side.
|
|
933
|
+
*
|
|
934
|
+
* documents.patch(dataset, documentId, patch, apiVersion?, ifRevisionId?)
|
|
935
|
+
* → { transactionId, results: [...] }
|
|
936
|
+
* Mutation with CAS. POST /v{apiVersion}/data/mutate/{dataset} with a
|
|
937
|
+
* single `patch` mutation. The caller threads `_rev` back as
|
|
938
|
+
* `ifRevisionId` so concurrent edits surface as 409.
|
|
939
|
+
*
|
|
940
|
+
* documents.delete(dataset, documentId, apiVersion?)
|
|
941
|
+
* → { transactionId, results: [...] }
|
|
942
|
+
* Mutation. POST /v{apiVersion}/data/mutate/{dataset} with a single
|
|
943
|
+
* `delete` mutation.
|
|
944
|
+
*
|
|
945
|
+
* Auth: OAuth2 (Sanity Manage OAuth app + Bearer token). Scopes:
|
|
946
|
+
* - `read` for read capabilities
|
|
947
|
+
* - `write` for write capabilities
|
|
948
|
+
*
|
|
949
|
+
* Base URL: per-project hostname `https://<projectId>.api.sanity.io`,
|
|
950
|
+
* persisted on the connection as `metadata.apiHost`. We do NOT default to
|
|
951
|
+
* the org-wide `api.sanity.io` because that endpoint refuses data-API calls.
|
|
952
|
+
*
|
|
953
|
+
* Versioning: Sanity does not emit HTTP ETag headers on data routes. Every
|
|
954
|
+
* document carries `_rev`; callers thread it back as the `ifRevisionId`
|
|
955
|
+
* argument on `documents.patch` so the mutation rejects with a 409 when the
|
|
956
|
+
* document has been edited since the read. The 409 surfaces through the
|
|
957
|
+
* shared declarative-rest helper as a `{ status: 'conflict', ... }` data
|
|
958
|
+
* row.
|
|
959
|
+
*/
|
|
960
|
+
declare const sanityConnector: ConnectorAdapter;
|
|
961
|
+
|
|
962
|
+
declare const codaConnector: ConnectorAdapter;
|
|
963
|
+
|
|
964
|
+
/**
|
|
965
|
+
* @stable Webflow CMS connector — read sites/collections/items and create or
|
|
966
|
+
* update collection items through the Webflow Data API v2.
|
|
967
|
+
*
|
|
968
|
+
* Webflow's data model is three levels deep: sites → collections → items.
|
|
969
|
+
* A single OAuth connection grants access to all authorized sites under the
|
|
970
|
+
* connected workspace; capability calls take the relevant `siteId` or
|
|
971
|
+
* `collectionId` as an explicit argument so one connection can drive many
|
|
972
|
+
* sites without re-auth.
|
|
973
|
+
*
|
|
974
|
+
* Capabilities:
|
|
975
|
+
*
|
|
976
|
+
* sites.list()
|
|
977
|
+
* → { sites: [...] }
|
|
978
|
+
* Read. GET /v2/sites.
|
|
979
|
+
*
|
|
980
|
+
* sites.get(siteId)
|
|
981
|
+
* → site shape
|
|
982
|
+
* Read. GET /v2/sites/{siteId}.
|
|
983
|
+
*
|
|
984
|
+
* collections.list(siteId)
|
|
985
|
+
* → { collections: [...] }
|
|
986
|
+
* Read. GET /v2/sites/{siteId}/collections.
|
|
987
|
+
*
|
|
988
|
+
* collections.get(collectionId)
|
|
989
|
+
* → collection shape (includes field definitions)
|
|
990
|
+
* Read. GET /v2/collections/{collectionId}.
|
|
991
|
+
*
|
|
992
|
+
* items.list(collectionId, offset?, limit?, name?, slug?)
|
|
993
|
+
* → { items: [...], pagination }
|
|
994
|
+
* Read. GET /v2/collections/{collectionId}/items.
|
|
995
|
+
*
|
|
996
|
+
* items.get(collectionId, itemId)
|
|
997
|
+
* → CMS item shape
|
|
998
|
+
* Read. GET /v2/collections/{collectionId}/items/{itemId}.
|
|
999
|
+
*
|
|
1000
|
+
* items.create(collectionId, fieldData, isArchived?, isDraft?)
|
|
1001
|
+
* → created item
|
|
1002
|
+
* Mutation. POST /v2/collections/{collectionId}/items with the item
|
|
1003
|
+
* wrapped under the `items` envelope.
|
|
1004
|
+
*
|
|
1005
|
+
* items.update(collectionId, itemId, fieldData, isArchived?, isDraft?)
|
|
1006
|
+
* → updated item
|
|
1007
|
+
* Mutation. PATCH /v2/collections/{collectionId}/items/{itemId}.
|
|
1008
|
+
*
|
|
1009
|
+
* items.delete(collectionId, itemId)
|
|
1010
|
+
* → empty
|
|
1011
|
+
* Mutation. DELETE /v2/collections/{collectionId}/items/{itemId}.
|
|
1012
|
+
*
|
|
1013
|
+
* items.publish(collectionId, itemIds)
|
|
1014
|
+
* → { publishedItemIds, errors }
|
|
1015
|
+
* Mutation. POST /v2/collections/{collectionId}/items/publish to move
|
|
1016
|
+
* staged items live to the published site.
|
|
1017
|
+
*
|
|
1018
|
+
* pages.list(siteId)
|
|
1019
|
+
* → { pages: [...], pagination }
|
|
1020
|
+
* Read. GET /v2/sites/{siteId}/pages.
|
|
1021
|
+
*
|
|
1022
|
+
* forms.list(siteId)
|
|
1023
|
+
* → { forms: [...], pagination }
|
|
1024
|
+
* Read. GET /v2/sites/{siteId}/forms.
|
|
1025
|
+
*
|
|
1026
|
+
* forms.submissions(formId)
|
|
1027
|
+
* → { formSubmissions: [...], pagination }
|
|
1028
|
+
* Read. GET /v2/forms/{formId}/submissions.
|
|
1029
|
+
*
|
|
1030
|
+
* Auth: OAuth2 (Webflow OAuth app + Bearer token). Webflow scopes use the
|
|
1031
|
+
* `resource:action` shape (`sites:read`, `cms:write`, etc.); the connector
|
|
1032
|
+
* requests the union of read+write across the resources the capability set
|
|
1033
|
+
* touches.
|
|
1034
|
+
*
|
|
1035
|
+
* Versioning: Webflow does not emit HTTP ETag headers and does not implement
|
|
1036
|
+
* If-Match semantics on the v2 Data API. Mutations rely on the
|
|
1037
|
+
* `native-idempotency` model — the caller's idempotency key is forwarded by
|
|
1038
|
+
* the declarative-REST runtime so retries collapse server-side. Concurrent
|
|
1039
|
+
* field-data edits last-writer-wins; agents that need stronger ordering must
|
|
1040
|
+
* serialize at the application layer.
|
|
1041
|
+
*/
|
|
1042
|
+
declare const webflowConnector: ConnectorAdapter;
|
|
1043
|
+
|
|
1044
|
+
/**
|
|
1045
|
+
* @stable WordPress.com connector — read, create, update, and delete posts,
|
|
1046
|
+
* pages, media, and comments through the WordPress REST API as proxied by
|
|
1047
|
+
* WordPress.com's public OAuth-protected endpoint.
|
|
1048
|
+
*
|
|
1049
|
+
* All capabilities are scoped to a single `site` identifier (the connection
|
|
1050
|
+
* UI collects a WordPress.com domain like "example.wordpress.com" or a
|
|
1051
|
+
* numeric site ID; both forms are accepted by `/wp/v2/sites/{site}/...`).
|
|
1052
|
+
* The site identifier is passed per-action so a single OAuth connection can
|
|
1053
|
+
* address every site the granting user has access to.
|
|
1054
|
+
*
|
|
1055
|
+
* Auth: OAuth2 against `public-api.wordpress.com`. Bearer-token access. Scopes
|
|
1056
|
+
* requested:
|
|
1057
|
+
* - `posts` — read + write posts, pages
|
|
1058
|
+
* - `media` — upload + read media items
|
|
1059
|
+
* - `comments` — read + moderate comments
|
|
1060
|
+
*
|
|
1061
|
+
* Base URL: `https://public-api.wordpress.com`. The WordPress REST API lives
|
|
1062
|
+
* under `/wp/v2/sites/{site}/...` and accepts JSON bodies on create/update.
|
|
1063
|
+
*
|
|
1064
|
+
* Versioning: WordPress doesn't surface HTTP ETags on REST resources, but
|
|
1065
|
+
* every post/page response carries a `modified_gmt` timestamp. Mutations are
|
|
1066
|
+
* marked `native-idempotency` because the API rejects identical create
|
|
1067
|
+
* requests with the same `slug` and accepts repeated updates against a stable
|
|
1068
|
+
* resource ID.
|
|
1069
|
+
*/
|
|
1070
|
+
declare const wordpressConnector: ConnectorAdapter;
|
|
1071
|
+
|
|
1072
|
+
/**
|
|
1073
|
+
* Atlassian Confluence Cloud connector.
|
|
1074
|
+
*
|
|
1075
|
+
* Auth: OAuth 2.0 (3LO) via auth.atlassian.com. After consent, a single
|
|
1076
|
+
* connection may have access to multiple Atlassian sites; each is identified
|
|
1077
|
+
* by a `cloudId` discoverable through
|
|
1078
|
+
* `GET https://api.atlassian.com/oauth/token/accessible-resources`.
|
|
1079
|
+
* The cloudId is passed in on every capability as an explicit argument
|
|
1080
|
+
* (same pattern as Xero `tenantId` / Salesforce `objectName`) rather than
|
|
1081
|
+
* baked into connection metadata, so a single connection can target any
|
|
1082
|
+
* site the operator authorized.
|
|
1083
|
+
*
|
|
1084
|
+
* Base URL: `https://api.atlassian.com/ex/confluence/{cloudId}` — the gateway
|
|
1085
|
+
* proxies through to the customer's Confluence site.
|
|
1086
|
+
*
|
|
1087
|
+
* Capability surface covers the v2 REST API (the v1 `/wiki/rest/api/...`
|
|
1088
|
+
* surface is on Atlassian's deprecation track): pages list/get/create/update,
|
|
1089
|
+
* spaces list, and CQL search via the v1 `/wiki/rest/api/search` endpoint
|
|
1090
|
+
* which is still the only supported way to run CQL.
|
|
1091
|
+
*/
|
|
1092
|
+
declare const confluenceConnector: ConnectorAdapter;
|
|
1093
|
+
|
|
1094
|
+
declare const docusignConnector: ConnectorAdapter;
|
|
1095
|
+
|
|
1096
|
+
declare const figmaConnector: ConnectorAdapter;
|
|
1097
|
+
|
|
1098
|
+
declare const figjamConnector: ConnectorAdapter;
|
|
1099
|
+
|
|
1100
|
+
declare const miroConnector: ConnectorAdapter;
|
|
1101
|
+
|
|
1102
|
+
/**
|
|
1103
|
+
* @stable Canva Connect API connector — read designs/folders/brand-templates,
|
|
1104
|
+
* create designs, post comments, kick off exports + autofill jobs.
|
|
1105
|
+
*
|
|
1106
|
+
* Canva's Connect API is REST + Bearer OAuth2 (PKCE-only on the auth side;
|
|
1107
|
+
* confidential clients also send `client_secret` to the token endpoint). The
|
|
1108
|
+
* declarative-rest runtime only sees the Bearer access token at execute time,
|
|
1109
|
+
* so PKCE state is the host OAuth runtime's concern, not the adapter's.
|
|
1110
|
+
*
|
|
1111
|
+
* Endpoints (public docs — https://www.canva.dev/docs/connect/):
|
|
1112
|
+
* - Authorize: https://www.canva.com/api/oauth/authorize
|
|
1113
|
+
* - Token: https://api.canva.com/rest/oauth/token
|
|
1114
|
+
* - REST base: https://api.canva.com/rest
|
|
1115
|
+
*
|
|
1116
|
+
* Scope model: Canva uses fine-grained `<resource>:<aspect>:<read|write>`
|
|
1117
|
+
* scopes. We request the union covering the capability surface below:
|
|
1118
|
+
* - design.{content,meta,permission}.{read,write}
|
|
1119
|
+
* - asset.{read,write}
|
|
1120
|
+
* - brandtemplate.{content,meta}.read
|
|
1121
|
+
* - comment.{read,write}
|
|
1122
|
+
* - folder.{read,write}
|
|
1123
|
+
* - profile.read
|
|
1124
|
+
* `app:read`/`app:write` are intentionally excluded — they govern Canva-app
|
|
1125
|
+
* builder surfaces, not Connect data flows.
|
|
1126
|
+
*
|
|
1127
|
+
* Identifier nomenclature (from Canva's API reference):
|
|
1128
|
+
* - design_id : the public `DAFxxxx` design id
|
|
1129
|
+
* - folder_id : `FAFxxxx`; `root` is the user's top-level folder
|
|
1130
|
+
* - asset_id : `Mxxxx` returned by uploads
|
|
1131
|
+
* - brand_template_id: returned from /v1/brand-templates
|
|
1132
|
+
* - comment_id : returned from comment endpoints
|
|
1133
|
+
* - job_id : returned by long-running endpoints
|
|
1134
|
+
* (asset-uploads, exports, autofills, design-imports)
|
|
1135
|
+
*
|
|
1136
|
+
* Async jobs: every long-running endpoint returns `{ job: { id, status } }`
|
|
1137
|
+
* and is polled via its sibling GET /v1/<resource>/{jobId}. The polling GET
|
|
1138
|
+
* is exposed as a separate `read` capability so the agent can wait without
|
|
1139
|
+
* holding a mutation in-flight.
|
|
1140
|
+
*/
|
|
1141
|
+
declare const canvaConnector: ConnectorAdapter;
|
|
1142
|
+
|
|
1143
|
+
/**
|
|
1144
|
+
* Box Content Cloud connector — standard OAuth2 with refresh tokens.
|
|
1145
|
+
*
|
|
1146
|
+
* Box's OAuth2 flow is the textbook RFC 6749 authorization-code grant:
|
|
1147
|
+
* - authorize at https://account.box.com/api/oauth2/authorize
|
|
1148
|
+
* - exchange at https://api.box.com/oauth2/token
|
|
1149
|
+
* - refresh at the same /oauth2/token endpoint
|
|
1150
|
+
*
|
|
1151
|
+
* Access tokens live 60 minutes; refresh tokens live 60 days and rotate on
|
|
1152
|
+
* every refresh — callers must persist the new refresh_token on each
|
|
1153
|
+
* exchange (the declarative adapter handles refresh through the shared
|
|
1154
|
+
* oauth helpers, so the only contract here is the manifest URLs + scopes).
|
|
1155
|
+
*
|
|
1156
|
+
* Scope surface picked to cover the dominant "agent reads / files / folders
|
|
1157
|
+
* and uploads or moves an item" pattern without pulling in the admin
|
|
1158
|
+
* surfaces. `root_readwrite` is Box's coarse-grained app-folder scope; we
|
|
1159
|
+
* keep it off the default list — adapters that want write access must
|
|
1160
|
+
* request it explicitly via `requiredScopes` on the mutation capabilities.
|
|
1161
|
+
*
|
|
1162
|
+
* Action surface:
|
|
1163
|
+
* - folders.get Read folder metadata + first page of items.
|
|
1164
|
+
* - folders.items Paginated child enumeration with limit/offset.
|
|
1165
|
+
* - folders.create Create a folder under a parent.
|
|
1166
|
+
* - files.get Read file metadata (size, sha1, parent, version).
|
|
1167
|
+
* - files.update Rename / move / restore-from-trash a file.
|
|
1168
|
+
* - files.copy Server-side copy into a target folder.
|
|
1169
|
+
* - files.delete Send a file to trash.
|
|
1170
|
+
* - search Full-text + metadata search across the enterprise.
|
|
1171
|
+
* - users.me Self-test endpoint (also exposed as `test`).
|
|
1172
|
+
*
|
|
1173
|
+
* Box does not implement ETag-style preconditions on every endpoint, but
|
|
1174
|
+
* file/folder PUTs honor `If-Match` against the resource `etag` field;
|
|
1175
|
+
* mutations are flagged `optimistic-read-verify` so the action guard
|
|
1176
|
+
* round-trips the read before write. Creates use `native-idempotency`
|
|
1177
|
+
* since Box derives uniqueness from (parent_id, name) and 409s on
|
|
1178
|
+
* collisions, which the declarative layer surfaces as
|
|
1179
|
+
* `{ status: 'conflict' }`.
|
|
1180
|
+
*/
|
|
1181
|
+
declare const boxConnector: ConnectorAdapter;
|
|
1182
|
+
|
|
1183
|
+
/**
|
|
1184
|
+
* Dropbox connector — standard OAuth2 against the Dropbox v2 RPC API.
|
|
1185
|
+
*
|
|
1186
|
+
* OAuth2 endpoints:
|
|
1187
|
+
* - authorize at https://www.dropbox.com/oauth2/authorize
|
|
1188
|
+
* - exchange / refresh at https://api.dropboxapi.com/oauth2/token
|
|
1189
|
+
*
|
|
1190
|
+
* Dropbox issues short-lived access tokens (4h) and long-lived refresh
|
|
1191
|
+
* tokens when the authorization request is made with
|
|
1192
|
+
* `token_access_type=offline`. The refresh tokens do NOT rotate per use
|
|
1193
|
+
* (unlike Box), so the declarative adapter only needs to swap the access
|
|
1194
|
+
* token through the shared OAuth helpers when 401s land — the manifest
|
|
1195
|
+
* here just declares the contract.
|
|
1196
|
+
*
|
|
1197
|
+
* The Dropbox API is RPC-shaped (POST + JSON body) on api.dropboxapi.com
|
|
1198
|
+
* for metadata operations; content upload/download lives on
|
|
1199
|
+
* content.dropboxapi.com with the request payload tunneled through the
|
|
1200
|
+
* `Dropbox-API-Arg` HTTP header. Because the declarative-REST adapter
|
|
1201
|
+
* carries a single base URL and a JSON body, we keep this connector to
|
|
1202
|
+
* the metadata + sharing surface — file content upload/download belongs
|
|
1203
|
+
* in a content-stream-aware adapter, not here. That keeps every action
|
|
1204
|
+
* on this adapter pure JSON-RPC with predictable error handling.
|
|
1205
|
+
*
|
|
1206
|
+
* Scope surface picked to match a typical "agent enumerates / searches /
|
|
1207
|
+
* organizes / shares files" pattern. Read scopes are on the default
|
|
1208
|
+
* authorization list; write/share scopes are pulled in per-capability so
|
|
1209
|
+
* the action guard's least-privilege check stays meaningful.
|
|
1210
|
+
*
|
|
1211
|
+
* Action surface:
|
|
1212
|
+
* - users.get_current_account Self-test endpoint (also exposed as `test`).
|
|
1213
|
+
* - users.get_space_usage Account quota + used bytes.
|
|
1214
|
+
* - files.list_folder List the children of a folder path.
|
|
1215
|
+
* - files.list_folder_continue Cursor-based pagination of list_folder.
|
|
1216
|
+
* - files.get_metadata Read metadata for a single path.
|
|
1217
|
+
* - files.search Indexed full-text + filename search.
|
|
1218
|
+
* - files.create_folder_v2 Create a folder at a path.
|
|
1219
|
+
* - files.move_v2 Move / rename a file or folder.
|
|
1220
|
+
* - files.copy_v2 Server-side copy.
|
|
1221
|
+
* - files.delete_v2 Move to deleted/trash state.
|
|
1222
|
+
* - sharing.create_shared_link_with_settings
|
|
1223
|
+
* Mint a public shared link with options.
|
|
1224
|
+
* - sharing.list_shared_links List existing shared links for a path.
|
|
1225
|
+
*
|
|
1226
|
+
* Dropbox's RPC endpoints are not ETag-shaped — most mutations key off
|
|
1227
|
+
* the (parent, name) tuple or accept a `rev` for optimistic writes. The
|
|
1228
|
+
* adapter marks creates / copies as `native-idempotency` (Dropbox 409s
|
|
1229
|
+
* on duplicate paths with a structured `path/conflict/...` error) and
|
|
1230
|
+
* destructive moves/deletes as `optimistic-read-verify` so the action
|
|
1231
|
+
* guard round-trips a metadata read before issuing the mutation.
|
|
1232
|
+
*
|
|
1233
|
+
* Every Dropbox v2 endpoint is `POST`; "read" vs "mutation" here is
|
|
1234
|
+
* about side-effect intent, not HTTP verb. `files.list_folder`,
|
|
1235
|
+
* `files.search`, and `users.*` are stateless reads that just happen to
|
|
1236
|
+
* be POSTed with a JSON arg body, which is the canonical Dropbox shape.
|
|
1237
|
+
*/
|
|
1238
|
+
declare const dropboxConnector: ConnectorAdapter;
|
|
1239
|
+
|
|
1240
|
+
/**
|
|
1241
|
+
* Adobe Creative Cloud connector — Adobe IMS (Identity Management Service)
|
|
1242
|
+
* OAuth2 authorization-code flow against the publicly-documented Lightroom
|
|
1243
|
+
* Services API at https://lr.adobe.io, plus the IMS userinfo endpoint for
|
|
1244
|
+
* connection self-test.
|
|
1245
|
+
*
|
|
1246
|
+
* OAuth2 endpoints (Adobe IMS v2/v3):
|
|
1247
|
+
* - authorize at https://ims-na1.adobelogin.com/ims/authorize/v2
|
|
1248
|
+
* - exchange / refresh at https://ims-na1.adobelogin.com/ims/token/v3
|
|
1249
|
+
* - userinfo at https://ims-na1.adobelogin.com/ims/userinfo/v2
|
|
1250
|
+
*
|
|
1251
|
+
* Adobe IMS is a standard RFC 6749 authorization-code grant. Access tokens
|
|
1252
|
+
* live ~24h and refresh tokens ~14 days; the declarative adapter routes
|
|
1253
|
+
* refreshes through the shared OAuth helpers and only declares the
|
|
1254
|
+
* authorize / token URLs here.
|
|
1255
|
+
*
|
|
1256
|
+
* The Creative Cloud surface is split across several distinct OpenAPI
|
|
1257
|
+
* products; the Lightroom Services API is the canonical "creative asset"
|
|
1258
|
+
* surface available to standard end-user OAuth clients (the Creative SDK,
|
|
1259
|
+
* Photoshop scripting, and the Asset Browser APIs require additional
|
|
1260
|
+
* partner programs). We scope this adapter to the public Lightroom +
|
|
1261
|
+
* IMS userinfo surface so every action here is callable with a vanilla
|
|
1262
|
+
* end-user Adobe ID + a self-service Developer Console OAuth Web App.
|
|
1263
|
+
*
|
|
1264
|
+
* Lightroom paths (https://lr.adobe.io) are catalog-scoped:
|
|
1265
|
+
* /v2/account — account-level metadata
|
|
1266
|
+
* /v2/catalogs — list catalogs the user owns
|
|
1267
|
+
* /v2/catalogs/{catalog_id} — read one catalog
|
|
1268
|
+
* /v2/catalogs/{catalog_id}/albums — list / create / update albums
|
|
1269
|
+
* /v2/catalogs/{catalog_id}/assets — list / search assets
|
|
1270
|
+
* /v2/catalogs/{catalog_id}/assets/{asset_id}
|
|
1271
|
+
* /v2/catalogs/{catalog_id}/albums/{album_id}/assets
|
|
1272
|
+
*
|
|
1273
|
+
* Lightroom requires every request to carry both the bearer access token
|
|
1274
|
+
* AND an `X-API-Key` header set to the OAuth client_id. The declarative
|
|
1275
|
+
* adapter sends the bearer through the standard credential placement; the
|
|
1276
|
+
* `X-API-Key` is templated into `defaultHeaders` using
|
|
1277
|
+
* `{credentials.clientId}` which the runtime substitutes from the resolved
|
|
1278
|
+
* data source. (See `declarative-rest.ts` for header templating.)
|
|
1279
|
+
*
|
|
1280
|
+
* Scope surface picked for the typical "agent enumerates the user's
|
|
1281
|
+
* library, searches assets, and organizes them into albums" pattern:
|
|
1282
|
+
*
|
|
1283
|
+
* openid, profile, email — IMS userinfo self-test
|
|
1284
|
+
* offline_access — refresh token
|
|
1285
|
+
* lr_partner_apis — Lightroom catalog read / search
|
|
1286
|
+
* lr_partner_rendition_apis — Lightroom rendition (preview) reads
|
|
1287
|
+
*
|
|
1288
|
+
* Adobe IMS scopes are comma-delimited at the authorize endpoint; the
|
|
1289
|
+
* declarative oauth runtime handles the separator. Write scopes
|
|
1290
|
+
* (album mutations) reuse `lr_partner_apis` — Adobe does not split read
|
|
1291
|
+
* vs write at the scope layer for the Lightroom partner surface, so the
|
|
1292
|
+
* action guard's least-privilege check keys off `requiredScopes` only
|
|
1293
|
+
* for filtering by capability identity (read vs mutation class), not by
|
|
1294
|
+
* a separate write scope.
|
|
1295
|
+
*
|
|
1296
|
+
* Action surface:
|
|
1297
|
+
* - ims.userinfo Self-test; resolves the authenticated Adobe ID.
|
|
1298
|
+
* - account.get Lightroom account metadata.
|
|
1299
|
+
* - catalogs.list Enumerate the user's Lightroom catalogs.
|
|
1300
|
+
* - catalogs.get Read one catalog.
|
|
1301
|
+
* - albums.list List albums in a catalog.
|
|
1302
|
+
* - albums.get Read one album.
|
|
1303
|
+
* - albums.create Create an album under a catalog.
|
|
1304
|
+
* - albums.update Rename / move / reparent an album.
|
|
1305
|
+
* - albums.delete Delete an album (assets are not deleted).
|
|
1306
|
+
* - assets.list Paginated catalog asset enumeration.
|
|
1307
|
+
* - assets.get Read one asset's metadata + revision tree.
|
|
1308
|
+
* - assets.list_in_album Assets attached to a specific album.
|
|
1309
|
+
*
|
|
1310
|
+
* Adobe Lightroom mutations are PUT-shaped with client-supplied UUIDs as
|
|
1311
|
+
* the resource id, so creates are `native-idempotency` (re-issuing the
|
|
1312
|
+
* same PUT with the same UUID is a no-op replay). Album updates are
|
|
1313
|
+
* `etag-if-match` — Lightroom returns ETag headers and rejects PUTs that
|
|
1314
|
+
* lack a matching `If-Match`. Deletes are `optimistic-read-verify` so the
|
|
1315
|
+
* action guard round-trips a metadata read before the destructive call.
|
|
1316
|
+
*/
|
|
1317
|
+
declare const adobeCreativeCloudConnector: ConnectorAdapter;
|
|
1318
|
+
|
|
1319
|
+
declare const linearConnector: ConnectorAdapter;
|
|
1320
|
+
|
|
1321
|
+
/**
|
|
1322
|
+
* Trello connector.
|
|
1323
|
+
*
|
|
1324
|
+
* Auth model: Trello's first-party authorization flow issues a per-user token
|
|
1325
|
+
* bound to a developer API key. Calls to https://api.trello.com/1/* are
|
|
1326
|
+
* authenticated by sending the user token as the `token` query parameter and
|
|
1327
|
+
* the developer API key as the `key` query parameter. The framework places
|
|
1328
|
+
* the user token via `credentialPlacement: { kind: 'query', parameter: 'token' }`;
|
|
1329
|
+
* the developer API key travels on every invocation as the `key` argument
|
|
1330
|
+
* (resolve once from connection metadata at the caller and forward).
|
|
1331
|
+
*
|
|
1332
|
+
* Token minting page (developer): https://trello.com/app-key
|
|
1333
|
+
* Authorize a user token: https://trello.com/1/authorize
|
|
1334
|
+
*
|
|
1335
|
+
* Trello's authorize endpoint returns a token directly (token-grant style);
|
|
1336
|
+
* there is no separate `tokenUrl` to exchange a code at, so this adapter
|
|
1337
|
+
* surfaces as `api-key` rather than `oauth2` to avoid implying a refresh-token
|
|
1338
|
+
* lifecycle that Trello does not implement.
|
|
1339
|
+
*
|
|
1340
|
+
* REST reference: https://developer.atlassian.com/cloud/trello/rest/
|
|
1341
|
+
*/
|
|
1342
|
+
declare const trelloConnector: ConnectorAdapter;
|
|
1343
|
+
|
|
1344
|
+
declare const mondayConnector: ConnectorAdapter;
|
|
1345
|
+
|
|
1346
|
+
declare const clickupConnector: ConnectorAdapter;
|
|
1347
|
+
|
|
1348
|
+
declare const basecampConnector: ConnectorAdapter;
|
|
1349
|
+
|
|
1350
|
+
declare const clioConnector: ConnectorAdapter;
|
|
1351
|
+
|
|
1352
|
+
declare const sentryConnector: ConnectorAdapter;
|
|
1353
|
+
|
|
1354
|
+
/**
|
|
1355
|
+
* Datadog — observability ingest surface (logs, metrics, events, service
|
|
1356
|
+
* checks, validation).
|
|
1357
|
+
*
|
|
1358
|
+
* Auth model: Datadog uses two distinct credential headers — `DD-API-KEY`
|
|
1359
|
+
* (org-scoped, identifies which Datadog account to bill / route to) and
|
|
1360
|
+
* `DD-APPLICATION-KEY` (user-scoped, grants per-user RBAC across the
|
|
1361
|
+
* management surface: monitors, dashboards, queries, downtimes, etc.). The
|
|
1362
|
+
* declarative-rest runtime in this codebase carries exactly one credential
|
|
1363
|
+
* per connection; modelling Datadog's full dual-key management surface here
|
|
1364
|
+
* would require either packing both keys into one apiKey string (silently
|
|
1365
|
+
* coupled and easy to misconfigure) or extending the framework's credential
|
|
1366
|
+
* placement model. This adapter intentionally scopes itself to the
|
|
1367
|
+
* single-header surface that takes only DD-API-KEY:
|
|
1368
|
+
*
|
|
1369
|
+
* - POST /api/v2/logs — log ingest
|
|
1370
|
+
* - POST /api/v2/series — metric submission (v2)
|
|
1371
|
+
* - POST /api/v1/series — metric submission (v1)
|
|
1372
|
+
* - POST /api/v1/distribution_points
|
|
1373
|
+
* - POST /api/v1/events — post a custom event
|
|
1374
|
+
* - GET /api/v1/events — list events (DD-API-KEY only)
|
|
1375
|
+
* - POST /api/v1/check_run — service check status
|
|
1376
|
+
* - GET /api/v1/validate — auth probe
|
|
1377
|
+
*
|
|
1378
|
+
* That set covers the agent-relevant case "push observability data into
|
|
1379
|
+
* Datadog" cleanly and honestly. A separate `datadog-management` adapter is
|
|
1380
|
+
* the right home for the DD-APPLICATION-KEY surface (monitors, dashboards,
|
|
1381
|
+
* incidents, logs/metrics query). Do not silently extend this connector with
|
|
1382
|
+
* endpoints that require DD-APPLICATION-KEY — they will return 403 at
|
|
1383
|
+
* runtime and corrupt every signal downstream.
|
|
1384
|
+
*
|
|
1385
|
+
* Site routing: Datadog runs eight isolated regions (US1, US3, US5, EU,
|
|
1386
|
+
* AP1, US1-FED, and the legacy US-LEGACY datadoghq.com). Each has its own
|
|
1387
|
+
* intake hostname; the per-tenant intake URL lives on metadata.intakeUrl
|
|
1388
|
+
* (e.g. https://api.datadoghq.com, https://api.us3.datadoghq.com,
|
|
1389
|
+
* https://api.datadoghq.eu, https://api.ddog-gov.com, https://api.ap1.datadoghq.com).
|
|
1390
|
+
* No fallback — a misconfigured connection fails loud at first invocation
|
|
1391
|
+
* rather than silently shipping logs to the wrong region's compliance
|
|
1392
|
+
* boundary.
|
|
1393
|
+
*/
|
|
1394
|
+
declare const datadogConnector: ConnectorAdapter;
|
|
1395
|
+
|
|
1396
|
+
declare const pagerdutyConnector: ConnectorAdapter;
|
|
1397
|
+
|
|
1398
|
+
declare const opsgenieConnector: ConnectorAdapter;
|
|
1399
|
+
|
|
1400
|
+
/**
|
|
1401
|
+
* Auth0 Management API connector.
|
|
1402
|
+
*
|
|
1403
|
+
* Auth0 tenants are per-customer subdomains (e.g. https://acme.us.auth0.com).
|
|
1404
|
+
* The tenant base URL is supplied at connection time via metadata.tenantDomain
|
|
1405
|
+
* (full origin, no trailing slash) so the same adapter works for every tenant
|
|
1406
|
+
* without a per-tenant build.
|
|
1407
|
+
*
|
|
1408
|
+
* Authorization: OAuth2 with the Management API as the audience. The tenant
|
|
1409
|
+
* authorization/token URLs are tenant-scoped; the global EU/US/AU/JP regions
|
|
1410
|
+
* all share the same /authorize and /oauth/token path shape so we cannot bake
|
|
1411
|
+
* one regional host into the connector. We point at Auth0's documented global
|
|
1412
|
+
* "guardian" host — operators MUST override authorizationUrl/tokenUrl at
|
|
1413
|
+
* client-registration time with the tenant's own URLs (the platform stores
|
|
1414
|
+
* them as part of the OAuth client). The values below are the canonical
|
|
1415
|
+
* documented shapes Auth0 publishes for the M2M (machine-to-machine) and
|
|
1416
|
+
* authorization-code flows against the Management API.
|
|
1417
|
+
*
|
|
1418
|
+
* Docs:
|
|
1419
|
+
* - https://auth0.com/docs/api/management/v2
|
|
1420
|
+
* - https://auth0.com/docs/secure/tokens/access-tokens/management-api-access-tokens
|
|
1421
|
+
* - https://auth0.com/docs/api/authentication#client-credentials-flow
|
|
1422
|
+
*/
|
|
1423
|
+
declare const auth0Connector: ConnectorAdapter;
|
|
1424
|
+
|
|
1425
|
+
declare const openaiConnector: ConnectorAdapter;
|
|
1426
|
+
|
|
1427
|
+
declare const anthropicConnector: ConnectorAdapter;
|
|
1428
|
+
|
|
1429
|
+
declare const googleGeminiConnector: ConnectorAdapter;
|
|
1430
|
+
|
|
1431
|
+
/**
|
|
1432
|
+
* Google Gemini — Generative Language API (v1beta).
|
|
1433
|
+
*
|
|
1434
|
+
* The public API at `generativelanguage.googleapis.com` accepts a Google AI
|
|
1435
|
+
* Studio API key passed as the `?key=` query parameter. (Cloud-billed Vertex
|
|
1436
|
+
* AI traffic uses a different host + OAuth2; that flow belongs in a separate
|
|
1437
|
+
* connector because the request/response shapes diverge.)
|
|
1438
|
+
*
|
|
1439
|
+
* Endpoints follow Google's `:method` action-style URLs — e.g.
|
|
1440
|
+
* `/v1beta/models/{model}:generateContent`. We model the colon segment as a
|
|
1441
|
+
* literal in the path because `declarativeRestConnector` interpolates only
|
|
1442
|
+
* `{name}` template segments.
|
|
1443
|
+
*
|
|
1444
|
+
* Capability surface chosen for agent-driven use:
|
|
1445
|
+
* - models.list / models.get — discover what's available to the key.
|
|
1446
|
+
* - models.generateContent — single-turn or multi-turn generation.
|
|
1447
|
+
* - models.streamGenerateContent — long-form streaming (returns SSE; we
|
|
1448
|
+
* surface the raw JSON array Google emits).
|
|
1449
|
+
* - models.countTokens — pre-flight cost estimation.
|
|
1450
|
+
* - models.embedContent / batchEmbedContents — embeddings for retrieval.
|
|
1451
|
+
* - files.list / files.get / files.delete — File API (uploaded media that
|
|
1452
|
+
* `generateContent` can reference).
|
|
1453
|
+
* - cachedContents.{list,get,create,delete} — Context caching (cheaper
|
|
1454
|
+
* repeated-prefix inference).
|
|
1455
|
+
*
|
|
1456
|
+
* Generation is a read in the consistency sense — it has no upstream mutation
|
|
1457
|
+
* — but classifying it as `class: 'read'` would tell the agent runtime it
|
|
1458
|
+
* has no external effect, which is wrong (it bills the customer). We model
|
|
1459
|
+
* generation as a mutation with `cas: 'none'` + `externalEffect: true`. The
|
|
1460
|
+
* connector defaults to `cache` consistency: Gemini outputs are not a source
|
|
1461
|
+
* of truth, callers re-call to get fresh tokens.
|
|
1462
|
+
*
|
|
1463
|
+
* Credentials shape: the runtime supplies `{ kind: 'api-key', apiKey: string }`;
|
|
1464
|
+
* `credentialPlacement` below puts the `apiKey` into `?key=` on every request.
|
|
1465
|
+
*/
|
|
1466
|
+
declare const geminiConnector: ConnectorAdapter;
|
|
1467
|
+
|
|
1468
|
+
declare const huggingfaceConnector: ConnectorAdapter;
|
|
1469
|
+
|
|
1470
|
+
/**
|
|
1471
|
+
* Weaviate vector database connector.
|
|
1472
|
+
*
|
|
1473
|
+
* Authentication: API-key issued from a Weaviate Cloud cluster (or a
|
|
1474
|
+
* self-hosted cluster running the api-key auth module). The key travels in a
|
|
1475
|
+
* standard `Authorization: Bearer …` header, matching the declarative-rest
|
|
1476
|
+
* default placement.
|
|
1477
|
+
*
|
|
1478
|
+
* Base URL: the per-cluster REST endpoint
|
|
1479
|
+
* (e.g. https://<cluster>.weaviate.network). Stored on the DataSource as
|
|
1480
|
+
* `clusterUrl` metadata so a single connector kind can serve many tenants /
|
|
1481
|
+
* environments without re-issuing OAuth clients.
|
|
1482
|
+
*
|
|
1483
|
+
* Endpoint surface covered (v1 REST):
|
|
1484
|
+
* - Schema (classes / collections): list, get, create, delete.
|
|
1485
|
+
* - Objects: list, get-by-id, create, update (PATCH-merge), replace (PUT),
|
|
1486
|
+
* delete-by-id.
|
|
1487
|
+
* - Search: GraphQL `Get` body (vector / hybrid / bm25 are all expressed as
|
|
1488
|
+
* fields inside the same query), batch object insert.
|
|
1489
|
+
*
|
|
1490
|
+
* Capabilities that depend on multipart bodies, binary streams, or
|
|
1491
|
+
* gRPC-only paths (e.g. `/v1/backups` streaming, gRPC batch insert) are
|
|
1492
|
+
* intentionally omitted — they need a bespoke adapter, not declarative-rest.
|
|
1493
|
+
*/
|
|
1494
|
+
declare const weaviateConnector: ConnectorAdapter;
|
|
1495
|
+
|
|
1496
|
+
declare const pineconeConnector: ConnectorAdapter;
|
|
1497
|
+
|
|
1498
|
+
/**
|
|
1499
|
+
* Qdrant vector database connector.
|
|
1500
|
+
*
|
|
1501
|
+
* Authentication: API key delivered in the `api-key` header. Qdrant Cloud
|
|
1502
|
+
* issues per-cluster API keys (Console → Data Access Control → API Keys);
|
|
1503
|
+
* self-hosted clusters set the same header value via service config. There is
|
|
1504
|
+
* no OAuth surface — Qdrant Cloud's management plane uses keys end-to-end.
|
|
1505
|
+
*
|
|
1506
|
+
* Base URL is per-cluster (e.g. `https://xyz-uuid.us-east-1-0.aws.cloud.qdrant.io:6333`)
|
|
1507
|
+
* and therefore resolved from connection metadata.qdrantUrl at invocation
|
|
1508
|
+
* time, not baked into the adapter. The trailing `:6333` is part of the
|
|
1509
|
+
* Qdrant REST port — callers MUST store the full origin including port.
|
|
1510
|
+
*
|
|
1511
|
+
* Endpoint surface covered: collection lifecycle (create / get / list / delete
|
|
1512
|
+
* / update params), point lifecycle (upsert / get / delete / batch update),
|
|
1513
|
+
* search and query primitives (single, batch, recommend, scroll, count),
|
|
1514
|
+
* payload index management, and snapshot operations. Telemetry-only routes
|
|
1515
|
+
* (`/telemetry`, `/metrics`) are intentionally omitted — they leak cluster
|
|
1516
|
+
* internals and aren't useful to agent invocations.
|
|
1517
|
+
*/
|
|
1518
|
+
declare const qdrantConnector: ConnectorAdapter;
|
|
1519
|
+
|
|
1520
|
+
declare const bamboohrConnector: ConnectorAdapter;
|
|
1521
|
+
|
|
1522
|
+
/**
|
|
1523
|
+
* Rippling Platform API connector.
|
|
1524
|
+
*
|
|
1525
|
+
* Rippling exposes a single workforce platform API at api.rippling.com that
|
|
1526
|
+
* covers HRIS (employees, groups, departments, work locations), payroll
|
|
1527
|
+
* reads, time-and-attendance, and the company directory. Access is granted
|
|
1528
|
+
* by an admin installing a Rippling Marketplace app into their company; the
|
|
1529
|
+
* resulting OAuth flow yields a workspace-scoped bearer token.
|
|
1530
|
+
*
|
|
1531
|
+
* OAuth (authorization-code, install-app shape):
|
|
1532
|
+
* - Authorize: https://app.rippling.com/apps/{client_id}/install
|
|
1533
|
+
* (the standard authorize/redirect endpoint Rippling publishes
|
|
1534
|
+
* for marketplace apps; the client_id appears in the path
|
|
1535
|
+
* rather than the query string, which is consistent with
|
|
1536
|
+
* Rippling's documented install flow.)
|
|
1537
|
+
* - Token: https://app.rippling.com/api/o/token/
|
|
1538
|
+
* - Refresh: same token endpoint with grant_type=refresh_token
|
|
1539
|
+
*
|
|
1540
|
+
* Scopes:
|
|
1541
|
+
* Rippling uses the OAuth2 scope value `company:read` for the canonical
|
|
1542
|
+
* read surface and per-resource read/write scopes (employees:read, etc.)
|
|
1543
|
+
* for richer mutations. The default set below covers everything the
|
|
1544
|
+
* capabilities map exercises.
|
|
1545
|
+
*
|
|
1546
|
+
* Base URL: https://api.rippling.com (single global host; no tenant routing).
|
|
1547
|
+
*
|
|
1548
|
+
* Docs:
|
|
1549
|
+
* - https://developer.rippling.com/docs/rippling-api/getting-started
|
|
1550
|
+
* - https://developer.rippling.com/docs/rippling-api/authentication
|
|
1551
|
+
* - https://developer.rippling.com/docs/rippling-api/api-reference
|
|
1552
|
+
*/
|
|
1553
|
+
declare const ripplingConnector: ConnectorAdapter;
|
|
1554
|
+
|
|
1555
|
+
/**
|
|
1556
|
+
* Workday connector.
|
|
1557
|
+
*
|
|
1558
|
+
* Auth model: Workday exposes a public OAuth 2.0 authorization-code grant
|
|
1559
|
+
* surfaced as an "API Client for Integrations" registered by a Workday
|
|
1560
|
+
* tenant administrator. Three properties of that flow shape this adapter:
|
|
1561
|
+
*
|
|
1562
|
+
* 1. The authorize/token endpoints are tenant-scoped under the tenant's
|
|
1563
|
+
* Workday host:
|
|
1564
|
+
* - Authorize: https://{host}/ccx/oauth2/{tenant}/authorize
|
|
1565
|
+
* - Token: https://{host}/ccx/oauth2/{tenant}/token
|
|
1566
|
+
* `host` is the Workday data center the tenant lives in (e.g.
|
|
1567
|
+
* `wd5.workday.com`, `wd2-impl-services1.workday.com`); `tenant` is
|
|
1568
|
+
* the customer's tenant id. The operator persists the tenant-resolved
|
|
1569
|
+
* values on the OAuth client record when they register an integration
|
|
1570
|
+
* for that tenant — the manifest below carries the documented URL
|
|
1571
|
+
* shape so the registration UI can prefill it. This mirrors how
|
|
1572
|
+
* Auth0's tenant-scoped Management API authorize/token URLs are
|
|
1573
|
+
* surfaced (see auth0.ts).
|
|
1574
|
+
*
|
|
1575
|
+
* 2. The REST base URL is ALSO tenant-scoped:
|
|
1576
|
+
* https://{host}/ccx/api/v1/{tenant}
|
|
1577
|
+
* with secondary surfaces at `/ccx/api/staffing/v1/{tenant}`,
|
|
1578
|
+
* `/ccx/api/absenceManagement/v1/{tenant}`, etc. The connection stores
|
|
1579
|
+
* the resolved tenant-scoped origin on `metadata.apiBaseUrl` so a
|
|
1580
|
+
* single OAuth client can fan out per tenant without a per-tenant
|
|
1581
|
+
* build; capability paths stay relative below.
|
|
1582
|
+
*
|
|
1583
|
+
* 3. Workday's scope vocabulary is "Functional Area" + access level
|
|
1584
|
+
* (Get / Put). The set requested below covers the read + maintain
|
|
1585
|
+
* surface the action pack exercises (workers, organizations,
|
|
1586
|
+
* time-off). Tenant admins enable the matching functional areas on
|
|
1587
|
+
* the API Client; the OAuth `scope` parameter narrows further at
|
|
1588
|
+
* runtime.
|
|
1589
|
+
*
|
|
1590
|
+
* Capability surface: Workers (list/get), Worker employment details,
|
|
1591
|
+
* Organizations (list/get), Locations (list), Time Off (list types, list
|
|
1592
|
+
* requests, submit a request) — the HRIS jobs an agent typically wires
|
|
1593
|
+
* for onboarding lookups, headcount queries, and PTO workflows. Workday's
|
|
1594
|
+
* payroll, recruiting, and absence-balance surfaces are deliberately not
|
|
1595
|
+
* modeled here; they live on separate REST endpoints (Payroll, Recruiting,
|
|
1596
|
+
* Absence Management) that warrant their own adapters as the action pack
|
|
1597
|
+
* widens.
|
|
1598
|
+
*
|
|
1599
|
+
* Consistency model: `authoritative` — Workday is the system of record
|
|
1600
|
+
* for HR data; downstream caches MUST defer to it on conflict.
|
|
1601
|
+
*
|
|
1602
|
+
* Docs:
|
|
1603
|
+
* - https://community.workday.com/sites/default/files/file-hosting/restapi/index.html
|
|
1604
|
+
* - https://doc.workday.com/admin-guide/en-us/integrations/integration-design/oauth-and-rest-api/dan1370797667399.html
|
|
1605
|
+
* - https://community.workday.com/api-clients-for-integrations
|
|
1606
|
+
*/
|
|
1607
|
+
declare const workdayConnector: ConnectorAdapter;
|
|
1608
|
+
|
|
1609
|
+
/**
|
|
1610
|
+
* Lever ATS connector.
|
|
1611
|
+
*
|
|
1612
|
+
* - OAuth2 (authorization code) — production host `auth.lever.co`,
|
|
1613
|
+
* sandbox host `sandbox-lever.auth0.com`. We default to production; callers
|
|
1614
|
+
* that need sandbox set metadata.authHost / metadata.apiHost (the
|
|
1615
|
+
* declarative-rest adapter only routes one baseUrl — we expose the prod API
|
|
1616
|
+
* here and let callers override via {metadataKey: 'apiBase', fallback: ...}).
|
|
1617
|
+
* - REST API: https://api.lever.co/v1
|
|
1618
|
+
* - Scopes: each resource has read + write variants (e.g. `opportunities:read:admin`,
|
|
1619
|
+
* `postings:write:admin`); offline_access is required for refresh tokens.
|
|
1620
|
+
* See https://hire.lever.co/developer/oauth.
|
|
1621
|
+
*/
|
|
1622
|
+
declare const leverConnector: ConnectorAdapter;
|
|
1623
|
+
|
|
1624
|
+
declare const greenhouseConnector: ConnectorAdapter;
|
|
1625
|
+
|
|
1626
|
+
declare const vercelConnector: ConnectorAdapter;
|
|
1627
|
+
|
|
1628
|
+
/**
|
|
1629
|
+
* Netlify adapter for the public Netlify REST API (api.netlify.com/api/v1).
|
|
1630
|
+
*
|
|
1631
|
+
* OAuth2 authorization endpoints come straight from the Netlify OAuth docs:
|
|
1632
|
+
* https://docs.netlify.com/api/get-started/#authentication
|
|
1633
|
+
* https://www.netlify.com/blog/2016/10/10/integrating-with-netlify-oauth2/
|
|
1634
|
+
*
|
|
1635
|
+
* authorize: https://app.netlify.com/authorize
|
|
1636
|
+
* token: https://api.netlify.com/oauth/token
|
|
1637
|
+
*
|
|
1638
|
+
* Netlify OAuth does not expose granular scopes — the issued access token is
|
|
1639
|
+
* scoped to the authorizing user and inherits whatever the user can do on the
|
|
1640
|
+
* sites/teams they belong to. We pass an empty `scopes` array so the SDK does
|
|
1641
|
+
* not attempt to append `scope=...` query parameters that Netlify would
|
|
1642
|
+
* silently ignore (and that some OAuth client libs treat as a grant
|
|
1643
|
+
* mismatch).
|
|
1644
|
+
*
|
|
1645
|
+
* Access tokens are sent as `Authorization: Bearer <token>` against
|
|
1646
|
+
* https://api.netlify.com/api/v1, which is the default base URL we ship.
|
|
1647
|
+
* Operators running Netlify Enterprise can override `metadata.apiBaseUrl` on
|
|
1648
|
+
* a DataSource to point at a private API surface without forking this
|
|
1649
|
+
* adapter.
|
|
1650
|
+
*
|
|
1651
|
+
* Capability surface covers the deployment workflow that matters to an agent:
|
|
1652
|
+
* - inventory: list/get sites, list/get deploys, environment variables
|
|
1653
|
+
* - mutation: trigger build hooks, lock/unlock deploys, restore a deploy,
|
|
1654
|
+
* create/update/delete env vars, update site config, delete a site/deploy
|
|
1655
|
+
*
|
|
1656
|
+
* Every mutation declares `cas: 'native-idempotency'` (Netlify endpoints are
|
|
1657
|
+
* idempotent on retry by deploy/site id and accept repeated PATCHes) or
|
|
1658
|
+
* `'optimistic-read-verify'` for the update flows where Netlify will silently
|
|
1659
|
+
* merge a stale PATCH if we did not read-before-write.
|
|
1660
|
+
*/
|
|
1661
|
+
declare const netlifyConnector: ConnectorAdapter;
|
|
1662
|
+
|
|
1663
|
+
/**
|
|
1664
|
+
* Typeform Create API — read forms + responses, mutate forms, register webhooks
|
|
1665
|
+
* for response.received fan-out. OAuth2 against api.typeform.com; scopes are
|
|
1666
|
+
* resource:read|write tuples plus the `offline` scope which Typeform requires
|
|
1667
|
+
* to mint a refresh token (omit it and the integration becomes a 4-hour token).
|
|
1668
|
+
*
|
|
1669
|
+
* Base URL is a single global host (no per-tenant routing). Responses live on
|
|
1670
|
+
* `/forms/{form_id}/responses` and are immutable from the API side; webhooks
|
|
1671
|
+
* are how customers tail new submissions in near-real-time without polling.
|
|
1672
|
+
*/
|
|
1673
|
+
declare const typeformConnector: ConnectorAdapter;
|
|
1674
|
+
|
|
1675
|
+
declare const smooveConnector: ConnectorAdapter;
|
|
1676
|
+
|
|
1677
|
+
/**
|
|
1678
|
+
* @stable Dropbox Sign (formerly HelloSign) connector — e-signature flows
|
|
1679
|
+
* powered by reusable templates.
|
|
1680
|
+
*
|
|
1681
|
+
* Three capabilities + inbound webhook surface, modeled on Dropbox Sign's
|
|
1682
|
+
* /v3/signature_request endpoints:
|
|
1683
|
+
*
|
|
1684
|
+
* send_signature_request(templateIds, signers, subject?, message?, testMode?)
|
|
1685
|
+
* → {signatureRequestId, signatureUrlsBySigner?, isComplete:false, signers:[...]}
|
|
1686
|
+
* Mutation. POST /signature_request/send_with_template. The Dropbox Sign
|
|
1687
|
+
* API exposes neither an `idempotency_key` field nor an external_id on
|
|
1688
|
+
* this endpoint, so we encode a one-way fingerprint of the
|
|
1689
|
+
* idempotencyKey in the `metadata.tangle_idempotency_key` field and
|
|
1690
|
+
* refuse to retry until the SDK's MutationGuard has a record. CAS =
|
|
1691
|
+
* native-idempotency only because retry-on-network-error is gated by
|
|
1692
|
+
* MutationGuard's idempotency-key short-circuit; we do NOT trust
|
|
1693
|
+
* Dropbox Sign to dedupe.
|
|
1694
|
+
*
|
|
1695
|
+
* get_signature_request(signatureRequestId)
|
|
1696
|
+
* → {signatureRequestId, isComplete, isCanceled, signers:[{email, name, status, signedAt?, lastReminderedAt?}]}
|
|
1697
|
+
* Read. GET /signature_request/:id.
|
|
1698
|
+
*
|
|
1699
|
+
* cancel_signature_request(signatureRequestId)
|
|
1700
|
+
* → {signatureRequestId, status: 'canceled', canceledAt}
|
|
1701
|
+
* Mutation. POST /signature_request/cancel/:id. Idempotent by design —
|
|
1702
|
+
* Dropbox Sign returns 200 even if the request is already canceled, so
|
|
1703
|
+
* we surface `idempotentReplay: true` on the second call.
|
|
1704
|
+
*
|
|
1705
|
+
* handleInboundEvent (webhook surface)
|
|
1706
|
+
* Dropbox Sign POSTs JSON to a customer-configured URL with the body
|
|
1707
|
+
* under a `json` form-field (multipart/form-data) OR as a plain JSON
|
|
1708
|
+
* body for newer apps. The payload carries `event.event_hash` which is
|
|
1709
|
+
* `HMAC_SHA256(api_key, event_time + event_type)` (hex). We verify by
|
|
1710
|
+
* recomputing the hash and comparing in constant time. There is no
|
|
1711
|
+
* dedicated signature header; the signature lives inside the body.
|
|
1712
|
+
*
|
|
1713
|
+
* Auth: OAuth2 (Dropbox Sign authorizes per-account access tokens). Every
|
|
1714
|
+
* API endpoint accepts the access token via `Authorization: Bearer <token>`.
|
|
1715
|
+
* The same access token doubles as the HMAC key for webhook verification
|
|
1716
|
+
* because Dropbox Sign reuses the API credential — we lift it from the
|
|
1717
|
+
* resolved OAuth credentials envelope, never from env.
|
|
1718
|
+
*
|
|
1719
|
+
* Error taxonomy (mapped via integrations/errors.ts):
|
|
1720
|
+
* 401 → provider_auth_failed (CredentialsExpired) — refresh attempted once
|
|
1721
|
+
* 404 → action_not_found (Error) — signature_request_id is unknown
|
|
1722
|
+
* 409 → action_denied / ResourceContention when status guards (e.g.
|
|
1723
|
+
* cancel of a completed request)
|
|
1724
|
+
* 429 → provider_rate_limited (status: 'rate-limited' result)
|
|
1725
|
+
* 5xx → provider_unavailable
|
|
1726
|
+
*/
|
|
1727
|
+
|
|
1728
|
+
/** OAuth client config the factory closes over. Caller resolves these at
|
|
1729
|
+
* construction time (env, DB, secret manager — package doesn't care). */
|
|
1730
|
+
interface HelloSignOptions {
|
|
1731
|
+
clientId: string;
|
|
1732
|
+
clientSecret: string;
|
|
1733
|
+
/** Override the Dropbox Sign API base URL. Mainly for tests + EU residency. */
|
|
1734
|
+
baseUrl?: string;
|
|
1735
|
+
/** Default request timeout in ms. */
|
|
1736
|
+
timeoutMs?: number;
|
|
1737
|
+
}
|
|
1738
|
+
declare function hellosign(opts: HelloSignOptions): ConnectorAdapter;
|
|
1739
|
+
|
|
1740
|
+
/**
|
|
1741
|
+
* @stable PandaDoc connector — contract/proposal workflows for sales agents.
|
|
1742
|
+
*
|
|
1743
|
+
* Five capabilities cover the agent's PandaDoc hot path: discover an
|
|
1744
|
+
* existing document, read its current status, draft a new document from a
|
|
1745
|
+
* template, send it for signature, and cancel an in-flight document.
|
|
1746
|
+
*
|
|
1747
|
+
* search_documents(query?, status?, templateId?, limit?)
|
|
1748
|
+
* → {documents: [{id, name, status, dateCreated, dateModified, ...}], more}
|
|
1749
|
+
* Read. GET /public/v1/documents with `q`, `status`, `template_id`
|
|
1750
|
+
* query params. No CAS — list endpoints are not authoritative.
|
|
1751
|
+
*
|
|
1752
|
+
* get_document(documentId)
|
|
1753
|
+
* → {documentId, name, status, dateCreated, dateModified, recipients,
|
|
1754
|
+
* tokens, fields, pricing}
|
|
1755
|
+
* Read. GET /public/v1/documents/:id/details — the only endpoint that
|
|
1756
|
+
* returns recipients + field values + pricing in a single call.
|
|
1757
|
+
*
|
|
1758
|
+
* create_document(name, templateId, recipients, tokens?, fields?,
|
|
1759
|
+
* pricingTables?, metadata?, tags?)
|
|
1760
|
+
* → {documentId, name, status: 'document.uploaded' | 'document.draft', ...}
|
|
1761
|
+
* Mutation. POST /public/v1/documents. PandaDoc has no native
|
|
1762
|
+
* idempotency-key on this endpoint, so we shape the agent contract
|
|
1763
|
+
* around an idempotent metadata fingerprint: the idempotencyKey is
|
|
1764
|
+
* written to `metadata.tangleIdempotencyKey` and we list-search by
|
|
1765
|
+
* that fingerprint before issuing the POST. Race window is acceptable
|
|
1766
|
+
* because the upstream PandaDoc UI is the source of truth — a
|
|
1767
|
+
* duplicated draft surfaces immediately to the human.
|
|
1768
|
+
*
|
|
1769
|
+
* send_document(documentId, subject?, message?, sender?, silent?)
|
|
1770
|
+
* → {documentId, status: 'document.sent'}
|
|
1771
|
+
* Mutation. POST /public/v1/documents/:id/send. Append-only state
|
|
1772
|
+
* transition — re-sending an already-sent document returns 400 from
|
|
1773
|
+
* PandaDoc which we surface as a ResourceContention.
|
|
1774
|
+
*
|
|
1775
|
+
* cancel_document(documentId, reason?)
|
|
1776
|
+
* → {documentId, status: 'document.voided', voidedAt}
|
|
1777
|
+
* Mutation. POST /public/v1/documents/:id/cancel with `reason` in the
|
|
1778
|
+
* body. Idempotent at the upstream — cancelling an already-cancelled
|
|
1779
|
+
* document is a no-op (200 with the same status), which we surface as
|
|
1780
|
+
* idempotentReplay=true.
|
|
1781
|
+
*
|
|
1782
|
+
* Auth: OAuth2 (PandaDoc uses `read` / `read+write` scopes). API keys are
|
|
1783
|
+
* also supported by PandaDoc but our agent surface assumes the OAuth grant
|
|
1784
|
+
* because the customer connects through the hub's OAuth UI.
|
|
1785
|
+
*
|
|
1786
|
+
* Error taxonomy (mapped via integrations/errors.ts):
|
|
1787
|
+
* 401 → provider_auth_failed (CredentialsExpired)
|
|
1788
|
+
* 404 → action_not_found (Error) — document/template id unknown
|
|
1789
|
+
* 409 → action_denied / ResourceContention (already-sent, already-voided)
|
|
1790
|
+
* 429 → provider_rate_limited (status: 'rate-limited' result)
|
|
1791
|
+
* 5xx → provider_unavailable
|
|
1792
|
+
*/
|
|
1793
|
+
|
|
1794
|
+
/** OAuth client config the factory closes over. Caller resolves these
|
|
1795
|
+
* at construction time (env, DB, secret manager — package doesn't care). */
|
|
1796
|
+
interface PandaDocOptions {
|
|
1797
|
+
clientId: string;
|
|
1798
|
+
clientSecret: string;
|
|
1799
|
+
/** Override the API base URL (mocks, sandbox tenants). */
|
|
1800
|
+
baseUrl?: string;
|
|
1801
|
+
/** Default request timeout in ms. */
|
|
1802
|
+
timeoutMs?: number;
|
|
1803
|
+
}
|
|
1804
|
+
declare function pandadoc(opts: PandaDocOptions): ConnectorAdapter;
|
|
1805
|
+
|
|
1806
|
+
/**
|
|
1807
|
+
* @stable Google Docs connector — read + draft surface for doc-flow agents.
|
|
1808
|
+
*
|
|
1809
|
+
* Three capabilities, picked to cover the "agent reads a doc the user
|
|
1810
|
+
* pointed at, then composes a draft into a new doc" workflow without
|
|
1811
|
+
* trying to expose Docs' full editing grammar (suggestions, comments,
|
|
1812
|
+
* structured headings — all separate packs):
|
|
1813
|
+
*
|
|
1814
|
+
* get_document(documentId)
|
|
1815
|
+
* → {documentId, title, body: { content: string }, revisionId}
|
|
1816
|
+
* Read. GET /v1/documents/{documentId}. We collapse the structured
|
|
1817
|
+
* `body.content[]` block stream into a single plaintext string so
|
|
1818
|
+
* the agent layer doesn't have to walk Docs' nested paragraph /
|
|
1819
|
+
* textRun / sectionBreak tree. The full structure is preserved at
|
|
1820
|
+
* `body.structured` for callers that need it.
|
|
1821
|
+
*
|
|
1822
|
+
* create_document(title, body?)
|
|
1823
|
+
* → {documentId, title, revisionId}
|
|
1824
|
+
* Mutation. POST /v1/documents to create a fresh doc, then — if
|
|
1825
|
+
* `body` was supplied — POST /v1/documents/{id}:batchUpdate with a
|
|
1826
|
+
* single `insertText` request targeting index 1. Two-step because
|
|
1827
|
+
* documents.create only accepts `title`; everything else is a
|
|
1828
|
+
* batchUpdate. CAS: native-idempotency by way of MutationGuard's
|
|
1829
|
+
* idempotency-key short-circuit (Docs API has no requestId on
|
|
1830
|
+
* create, so retries above the connector are the prevention).
|
|
1831
|
+
*
|
|
1832
|
+
* append_text(documentId, text, requiredRevisionId?)
|
|
1833
|
+
* → {documentId, revisionId}
|
|
1834
|
+
* Mutation. POST /v1/documents/{id}:batchUpdate with one
|
|
1835
|
+
* `insertText` request at the doc's end. When `requiredRevisionId`
|
|
1836
|
+
* is supplied we attach it to the batchUpdate request — Docs
|
|
1837
|
+
* rejects with 400 + status code FAILED_PRECONDITION if another
|
|
1838
|
+
* writer beat us, which we surface as ResourceContention. This is
|
|
1839
|
+
* real CAS at the Docs API level (writeControl.requiredRevisionId).
|
|
1840
|
+
*
|
|
1841
|
+
* Auth: OAuth2 with `documents` (read+write). We also include
|
|
1842
|
+
* `drive.file` so create_document yields docs the connecting user can
|
|
1843
|
+
* subsequently see in Drive — without it, Docs created via the API
|
|
1844
|
+
* are owned by the user but invisible in their Drive UI (a Docs API
|
|
1845
|
+
* documented quirk).
|
|
1846
|
+
*
|
|
1847
|
+
* Why no "find by title" capability: Docs API has no search endpoint;
|
|
1848
|
+
* that surface belongs in the Google Drive connector
|
|
1849
|
+
* (files.list with mimeType='application/vnd.google-apps.document').
|
|
1850
|
+
* The two adapters compose at the agent layer.
|
|
1851
|
+
*/
|
|
1852
|
+
|
|
1853
|
+
/** OAuth client config the factory closes over. */
|
|
1854
|
+
interface GoogleDocsOptions {
|
|
1855
|
+
clientId: string;
|
|
1856
|
+
clientSecret: string;
|
|
1857
|
+
/** Default request timeout in ms. Applied per-fetch via AbortSignal. */
|
|
1858
|
+
timeoutMs?: number;
|
|
1859
|
+
}
|
|
1860
|
+
declare function googleDocs(opts: GoogleDocsOptions): ConnectorAdapter;
|
|
1861
|
+
|
|
1862
|
+
/**
|
|
1863
|
+
* Google Forms connector — read a form's schema + paginate its responses.
|
|
1864
|
+
*
|
|
1865
|
+
* Two-pane surface aimed at the dominant agent workflow ("ingest this
|
|
1866
|
+
* survey into the KB / route this lead based on the response that just
|
|
1867
|
+
* came in"):
|
|
1868
|
+
*
|
|
1869
|
+
* get_form(formId)
|
|
1870
|
+
* → {formId, info: {title, description, documentTitle}, items: [...],
|
|
1871
|
+
* revisionId, responderUri}
|
|
1872
|
+
* Read. GET /v1/forms/{formId}. The full Form resource, including the
|
|
1873
|
+
* item tree (questions, sections, page breaks). The agent layer uses
|
|
1874
|
+
* `items[]` to map raw response answers back to human-readable
|
|
1875
|
+
* questions; the alternative is hand-rolling the questionId→title
|
|
1876
|
+
* join every call. Includes `revisionId` so callers can detect a
|
|
1877
|
+
* schema change since the last ingest.
|
|
1878
|
+
*
|
|
1879
|
+
* list_responses(formId, pageSize?, pageToken?, filter?)
|
|
1880
|
+
* → {responses: [{responseId, createTime, lastSubmittedTime,
|
|
1881
|
+
* respondentEmail?, answers: {questionId: {value: string[]}}}],
|
|
1882
|
+
* nextPageToken?}
|
|
1883
|
+
* Read. GET /v1/forms/{formId}/responses. Forms paginates with
|
|
1884
|
+
* pageToken/pageSize (max 5000 per Forms API docs). The optional
|
|
1885
|
+
* `filter` accepts the Forms `timestamp` filter grammar
|
|
1886
|
+
* (e.g. `timestamp > "2026-01-01T00:00:00Z"`) so incremental ingest
|
|
1887
|
+
* just needs to track the last-seen submission time. We collapse
|
|
1888
|
+
* each answer's `textAnswers.answers[].value` array into a single
|
|
1889
|
+
* `value: string[]` field — Forms nests responses three levels deep
|
|
1890
|
+
* (answers → textAnswers → answers[] → value); the original tree is
|
|
1891
|
+
* preserved at `raw` for callers that need fileUploadAnswers,
|
|
1892
|
+
* grade, etc.
|
|
1893
|
+
*
|
|
1894
|
+
* get_response(formId, responseId)
|
|
1895
|
+
* → single-response variant of list_responses for webhook delivery
|
|
1896
|
+
* where the watch notification carries only the responseId.
|
|
1897
|
+
* Read. GET /v1/forms/{formId}/responses/{responseId}.
|
|
1898
|
+
*
|
|
1899
|
+
* Auth: OAuth2. We request `forms.body.readonly` for the schema and
|
|
1900
|
+
* `forms.responses.readonly` for the submissions — both are
|
|
1901
|
+
* non-sensitive read scopes that don't trigger Google's restricted-scope
|
|
1902
|
+
* verification flow. We deliberately do NOT request `forms.body` (write):
|
|
1903
|
+
* creating/mutating a form is a separate connector surface and would
|
|
1904
|
+
* upgrade this connector to a restricted scope, which forces the
|
|
1905
|
+
* customer's OAuth app through a security review.
|
|
1906
|
+
*
|
|
1907
|
+
* Why no `create_form` / `submit_response`:
|
|
1908
|
+
* - create_form requires the sensitive `forms.body` scope; out of
|
|
1909
|
+
* scope for an ingest connector.
|
|
1910
|
+
* - submit_response: the Forms API has no public endpoint for
|
|
1911
|
+
* programmatic submission; the only path is the public form URL
|
|
1912
|
+
* (formResponse), which the connector framework treats as a
|
|
1913
|
+
* generic webhook, not a Forms-API capability.
|
|
1914
|
+
*/
|
|
1915
|
+
|
|
1916
|
+
/** OAuth client config the factory closes over. */
|
|
1917
|
+
interface GoogleFormsOptions {
|
|
1918
|
+
clientId: string;
|
|
1919
|
+
clientSecret: string;
|
|
1920
|
+
/** Default request timeout in ms. Applied per-fetch via AbortSignal. */
|
|
1921
|
+
timeoutMs?: number;
|
|
1922
|
+
}
|
|
1923
|
+
declare function googleForms(opts: GoogleFormsOptions): ConnectorAdapter;
|
|
1924
|
+
|
|
1925
|
+
/**
|
|
1926
|
+
* Microsoft Graph (identity / directory) connector.
|
|
1927
|
+
*
|
|
1928
|
+
* The Graph surface this adapter exposes is the M365 identity-and-directory
|
|
1929
|
+
* subset — the "who works here, in what group, with what mailbox" queries
|
|
1930
|
+
* an agent needs to resolve human ↔ tenant identifiers when the same user
|
|
1931
|
+
* is referenced across Outlook, Teams, SharePoint, and OneDrive. The
|
|
1932
|
+
* resource-specific surfaces (mail, calendar, chat, files) live in their
|
|
1933
|
+
* own adapters; this one is the directory lookup substrate they all share.
|
|
1934
|
+
*
|
|
1935
|
+
* Why read-only:
|
|
1936
|
+
* Provisioning users / groups against Graph requires
|
|
1937
|
+
* `User.ReadWrite.All` or `Directory.ReadWrite.All`, which Microsoft only
|
|
1938
|
+
* issues under admin consent and rejects on delegated grants without an
|
|
1939
|
+
* Azure AD admin approval flow. Wiring that as an agent self-service
|
|
1940
|
+
* capability is a footgun, so this adapter declares no mutations. Tenants
|
|
1941
|
+
* that need provisioning compose Graph + a verified app registration with
|
|
1942
|
+
* their own admin consent — out of scope here.
|
|
1943
|
+
*
|
|
1944
|
+
* Auth quirks:
|
|
1945
|
+
* - Same login.microsoftonline.com v2.0 endpoints as the other M365
|
|
1946
|
+
* adapters (Calendar, Teams, Outlook). `offline_access` is mandatory on
|
|
1947
|
+
* v2.0 to receive a refresh_token; without it the connection silently
|
|
1948
|
+
* dies after the first hour.
|
|
1949
|
+
* - The directory scopes (`User.Read.All`, `Group.Read.All`,
|
|
1950
|
+
* `Organization.Read.All`) require tenant-admin consent. The connect
|
|
1951
|
+
* flow surfaces that to the operator; a delegated grant with only
|
|
1952
|
+
* `User.Read` works for the `get_me` capability but the rest 403.
|
|
1953
|
+
*
|
|
1954
|
+
* Conflict model: pure reads, no CAS. `defaultConsistencyModel:
|
|
1955
|
+
* 'authoritative'` because every read goes straight to the directory.
|
|
1956
|
+
*/
|
|
1957
|
+
|
|
1958
|
+
/** OAuth client config the factory closes over. Caller resolves these
|
|
1959
|
+
* at construction time (env, DB, secret manager — package doesn't care). */
|
|
1960
|
+
interface MicrosoftGraphOptions {
|
|
1961
|
+
clientId: string;
|
|
1962
|
+
clientSecret: string;
|
|
1963
|
+
}
|
|
1964
|
+
declare function microsoftGraph(opts: MicrosoftGraphOptions): ConnectorAdapter;
|
|
1965
|
+
|
|
1966
|
+
/**
|
|
1967
|
+
* Microsoft Graph Outlook Mail connector — the Microsoft 365 counterpart of
|
|
1968
|
+
* the Gmail adapter. Four capabilities mirror the Gmail surface so an agent
|
|
1969
|
+
* routes the same intent against either inbox:
|
|
1970
|
+
*
|
|
1971
|
+
* list_messages(folder?, query?, top?)
|
|
1972
|
+
* → {messages: [{id, conversationId, subject, from, toRecipients,
|
|
1973
|
+
* receivedDateTime, bodyPreview, isRead, hasAttachments}], nextLink?}
|
|
1974
|
+
* Read. `GET /me/mailFolders/{folder}/messages` with `$select` pinned
|
|
1975
|
+
* to the fields above. `$search`/`$filter` translates the operator's
|
|
1976
|
+
* query. Default folder is the well-known `inbox`.
|
|
1977
|
+
*
|
|
1978
|
+
* read_message(id)
|
|
1979
|
+
* → {id, conversationId, subject, from, toRecipients, ccRecipients,
|
|
1980
|
+
* receivedDateTime, body: {contentType, content}, attachments:
|
|
1981
|
+
* [{id, name, contentType, size}]}
|
|
1982
|
+
* Read. `GET /me/messages/{id}?$expand=attachments($select=id,name,...)`.
|
|
1983
|
+
* Attachment bytes are NOT inlined — caller follows up with
|
|
1984
|
+
* `/me/messages/{id}/attachments/{id}/$value` if needed.
|
|
1985
|
+
*
|
|
1986
|
+
* send_reply(messageId, body, replyAll?, comment?)
|
|
1987
|
+
* → {sent: true, messageId}
|
|
1988
|
+
* Mutation. `POST /me/messages/{id}/createReply` (or `createReplyAll`)
|
|
1989
|
+
* returns a draft; we patch the body and `POST .../send`. The reply
|
|
1990
|
+
* inherits the original `internetMessageHeaders` so threading sticks.
|
|
1991
|
+
* CAS: native-idempotency. Graph exposes no `Idempotency-Key` header
|
|
1992
|
+
* on `send`, so we tag the draft with an `internetMessageHeaders`
|
|
1993
|
+
* entry `X-Tangle-Idempotency-Key: <key>` AND rely on the
|
|
1994
|
+
* MutationGuard's key short-circuit above the connector to prevent
|
|
1995
|
+
* duplicate sends on retry.
|
|
1996
|
+
*
|
|
1997
|
+
* subscribe_folder(folder, notificationUrl, ttlMinutes?)
|
|
1998
|
+
* → {subscriptionId, expirationDateTime, clientState}
|
|
1999
|
+
* Mutation. `POST /subscriptions` registers a webhook for new mail in
|
|
2000
|
+
* a folder. Graph caps `expirationDateTime` at ~4230 minutes (~3
|
|
2001
|
+
* days) for mail; caller is responsible for re-issuing before then.
|
|
2002
|
+
*
|
|
2003
|
+
* Auth: OAuth2 with `Mail.Read` (list/read), `Mail.Send` (send),
|
|
2004
|
+
* `Mail.ReadWrite` (subscriptions), and `offline_access` (required to
|
|
2005
|
+
* get a refresh token from the v2.0 endpoint). Caller toggles which to
|
|
2006
|
+
* include via the `scopes` option.
|
|
2007
|
+
*/
|
|
2008
|
+
|
|
2009
|
+
interface OutlookMailOptions {
|
|
2010
|
+
clientId: string;
|
|
2011
|
+
clientSecret: string;
|
|
2012
|
+
/** Scopes requested at connect-time. Default: read + send + read-write + offline. */
|
|
2013
|
+
scopes?: string[];
|
|
2014
|
+
/** Default request timeout in ms. */
|
|
2015
|
+
timeoutMs?: number;
|
|
2016
|
+
}
|
|
2017
|
+
declare function outlookMail(opts: OutlookMailOptions): ConnectorAdapter;
|
|
2018
|
+
|
|
2019
|
+
/**
|
|
2020
|
+
* Microsoft Teams connector — Graph-backed messaging surface.
|
|
2021
|
+
*
|
|
2022
|
+
* post_channel_message(teamId, channelId, content[, contentType]) → mutation; cas: 'none'
|
|
2023
|
+
* post_chat_message(chatId, content[, contentType]) → mutation; cas: 'none'
|
|
2024
|
+
* list_channel_messages(teamId, channelId[, top]) → read
|
|
2025
|
+
* list_joined_teams() → read
|
|
2026
|
+
* list_team_channels(teamId) → read
|
|
2027
|
+
* lookup_user(email) → read
|
|
2028
|
+
*
|
|
2029
|
+
* Conflict model mirrors slack: Teams chat is append-only and advisory —
|
|
2030
|
+
* Graph does not expose ETag-CAS on `chatMessage` posts, and there is no
|
|
2031
|
+
* server-side dedup analogue to Slack `client_msg_id`. We set
|
|
2032
|
+
* `defaultConsistencyModel: 'advisory'` and use `cas: 'none'` on the
|
|
2033
|
+
* mutation paths; the upstream `MutationGuard` short-circuits idempotency
|
|
2034
|
+
* by key before the Graph call runs.
|
|
2035
|
+
*
|
|
2036
|
+
* Auth: standard OAuth2 against the v2.0 endpoint. `offline_access` is
|
|
2037
|
+
* required to receive a refresh_token; without it the connection silently
|
|
2038
|
+
* dies after the access token's first hour. Channel-message scopes
|
|
2039
|
+
* (`ChannelMessage.Send`) are delegated permissions — the bot posts as
|
|
2040
|
+
* the connected user, NOT as an application identity. Application
|
|
2041
|
+
* messages would require a different grant flow (resource-specific
|
|
2042
|
+
* consent + bot framework registration), out of scope for this adapter.
|
|
2043
|
+
*/
|
|
2044
|
+
|
|
2045
|
+
/** OAuth client config the factory closes over. Caller resolves these
|
|
2046
|
+
* at construction time (env, DB, secret manager — package doesn't care). */
|
|
2047
|
+
interface MicrosoftTeamsOptions {
|
|
2048
|
+
clientId: string;
|
|
2049
|
+
clientSecret: string;
|
|
2050
|
+
}
|
|
2051
|
+
declare function microsoftTeams(opts: MicrosoftTeamsOptions): ConnectorAdapter;
|
|
2052
|
+
|
|
2053
|
+
/**
|
|
2054
|
+
* Microsoft OneDrive connector — the Graph half of the doc-flow-in pattern
|
|
2055
|
+
* (mirror of `google-drive.ts`, swapping the upstream for `/me/drive/...`).
|
|
2056
|
+
*
|
|
2057
|
+
* Three capabilities, picked to cover "agent pulls a document the user
|
|
2058
|
+
* dropped in a folder" without trying to expose all of OneDrive's surface:
|
|
2059
|
+
*
|
|
2060
|
+
* list_files(folderId?, query?, top?, skipToken?)
|
|
2061
|
+
* → {files: [{id, name, eTag, lastModifiedDateTime, size, file?, folder?, parentReference}], nextLink?}
|
|
2062
|
+
* Read. `GET /me/drive/items/{folderId}/children` when folderId is
|
|
2063
|
+
* supplied, otherwise `GET /me/drive/root/children`. `query` is sent
|
|
2064
|
+
* through Graph `$search="…"` (KQL) with the required
|
|
2065
|
+
* `ConsistencyLevel: eventual` header — Graph 400s if you mix
|
|
2066
|
+
* `$search` with `$orderby`, so we suppress the order clause whenever
|
|
2067
|
+
* a search is active. Same shape Outlook Mail uses.
|
|
2068
|
+
*
|
|
2069
|
+
* read_file(fileId)
|
|
2070
|
+
* → {name, mimeType, content: string | base64, encoding: 'utf-8' | 'base64', eTag?, lastModifiedDateTime?}
|
|
2071
|
+
* Read. Graph's content endpoint is `GET /me/drive/items/{id}/content`
|
|
2072
|
+
* which 302-redirects to a short-lived pre-signed download URL. fetch
|
|
2073
|
+
* follows the redirect transparently. Text-like mime types are
|
|
2074
|
+
* returned utf-8; everything else is base64.
|
|
2075
|
+
*
|
|
2076
|
+
* watch_folder(folderId, notificationUrl, ttlMinutes?, clientState?)
|
|
2077
|
+
* → {subscriptionId, expirationDateTime, resource}
|
|
2078
|
+
* Mutation. `POST /subscriptions` with
|
|
2079
|
+
* `resource = "/me/drive/items/{folderId}"`. Graph caps OneDrive
|
|
2080
|
+
* subscription lifetime at ~30 days (we default to 4230 minutes ≈ 70
|
|
2081
|
+
* hours to match the Outlook Mail default, since callers usually
|
|
2082
|
+
* renew on the same cadence regardless of upstream). CAS:
|
|
2083
|
+
* `native-idempotency` via the SDK's idempotency-key short-circuit
|
|
2084
|
+
* above the connector — Graph does not have a request-id analogue on
|
|
2085
|
+
* `/subscriptions`, so re-issuing the call without dedup would
|
|
2086
|
+
* create a fresh subscription each time. We do not call `getSchedule`
|
|
2087
|
+
* here because subscriptions are not slot-allocated like calendar
|
|
2088
|
+
* events; there is no "two callers grabbed the same channel" race.
|
|
2089
|
+
*
|
|
2090
|
+
* Auth: OAuth2 v2.0 endpoint with `Files.Read` (list/read) and
|
|
2091
|
+
* `Files.ReadWrite` (watch). `offline_access` is required to receive a
|
|
2092
|
+
* refresh token; without it Graph hands back access tokens only and the
|
|
2093
|
+
* connection silently dies after ~1 hour. We scope to readonly by
|
|
2094
|
+
* default and require the operator to opt into the write scope only if
|
|
2095
|
+
* they intend to use `watch_folder` — gated via `requiredScopes` on the
|
|
2096
|
+
* capability so the agent's tool registry never surfaces it without the
|
|
2097
|
+
* grant.
|
|
2098
|
+
*
|
|
2099
|
+
* Why no upload capability in v1: same reasoning as google-drive —
|
|
2100
|
+
* resumable uploads are properly their own connector pack (write-doc
|
|
2101
|
+
* workflows need an authoritative consistency model, a separate review
|
|
2102
|
+
* path). Doc-flow-in is the load-bearing case.
|
|
2103
|
+
*/
|
|
2104
|
+
|
|
2105
|
+
/** OAuth client config the factory closes over. Caller resolves these
|
|
2106
|
+
* at construction time (env, DB, secret manager — package doesn't care). */
|
|
2107
|
+
interface OneDriveOptions {
|
|
2108
|
+
clientId: string;
|
|
2109
|
+
clientSecret: string;
|
|
2110
|
+
/** When true, request the broader `Files.ReadWrite` scope at
|
|
2111
|
+
* connect-time so the operator can use `watch_folder`. Default false —
|
|
2112
|
+
* request only `Files.Read` and gate `watch_folder` via
|
|
2113
|
+
* `requiredScopes`. */
|
|
2114
|
+
includeWriteScope?: boolean;
|
|
2115
|
+
/** Default request timeout in ms. Applied per-fetch via AbortSignal. */
|
|
2116
|
+
timeoutMs?: number;
|
|
2117
|
+
}
|
|
2118
|
+
declare function oneDrive(opts: OneDriveOptions): ConnectorAdapter;
|
|
2119
|
+
|
|
2120
|
+
/**
|
|
2121
|
+
* Microsoft Graph SharePoint connector — file/site surface for the agent.
|
|
2122
|
+
*
|
|
2123
|
+
* search_sites(query) → read
|
|
2124
|
+
* `GET /sites?search=<query>` — find SharePoint sites the connected
|
|
2125
|
+
* user can see. Returns the minimum fields the agent needs to chain a
|
|
2126
|
+
* drive/file call: id (composite "host,site-id,web-id"), name, webUrl.
|
|
2127
|
+
*
|
|
2128
|
+
* list_drive_items(siteId[, folderId]) → read
|
|
2129
|
+
* `GET /sites/{siteId}/drive/root/children` (or `/items/{folderId}/children`).
|
|
2130
|
+
* Returns the children of a site's default document library, or a
|
|
2131
|
+
* subfolder if `folderId` is supplied. The agent uses this to walk
|
|
2132
|
+
* the tree before downloading or uploading.
|
|
2133
|
+
*
|
|
2134
|
+
* search_drive(siteId, query) → read
|
|
2135
|
+
* `GET /sites/{siteId}/drive/root/search(q='<query>')` — server-side
|
|
2136
|
+
* content + filename search across a site's default drive.
|
|
2137
|
+
*
|
|
2138
|
+
* get_item_content(siteId, itemId) → read
|
|
2139
|
+
* `GET /sites/{siteId}/drive/items/{itemId}/content` — pull the bytes
|
|
2140
|
+
* of a small text/json/csv file. We cap at 4 MiB and return decoded
|
|
2141
|
+
* UTF-8; binary or oversize → `{ binary: true, downloadUrl }` so the
|
|
2142
|
+
* caller can stream out-of-band.
|
|
2143
|
+
*
|
|
2144
|
+
* upload_file(siteId, parentFolderId, filename, content[, contentType])
|
|
2145
|
+
* → mutation; cas: 'native-idempotency'
|
|
2146
|
+
* `PUT /sites/{siteId}/drive/items/{parentFolderId}:/{filename}:/content`
|
|
2147
|
+
* — small-file upload (<= 4 MiB). Graph exposes `@odata.etag` on the
|
|
2148
|
+
* returned `DriveItem`, so we emit `etagAfter` for downstream CAS. No
|
|
2149
|
+
* `Idempotency-Key` header at the Graph layer — `MutationGuard` above
|
|
2150
|
+
* the connector handles dedup-on-retry by key.
|
|
2151
|
+
*
|
|
2152
|
+
* create_folder(siteId, parentFolderId, name) → mutation; cas: 'native-idempotency'
|
|
2153
|
+
* `POST /sites/{siteId}/drive/items/{parentFolderId}/children` with a
|
|
2154
|
+
* `folder` facet and `@microsoft.graph.conflictBehavior: 'fail'`. Graph
|
|
2155
|
+
* enforces sibling-name uniqueness within a parent, so (parentFolderId,
|
|
2156
|
+
* name) is the natural idempotency tuple — `MutationGuard` short-circuits
|
|
2157
|
+
* duplicate posts by key, and a true cross-tenant conflict surfaces as
|
|
2158
|
+
* `ResourceContention`.
|
|
2159
|
+
*
|
|
2160
|
+
* Auth: standard OAuth2 against the v2.0 endpoint, same client/secret as
|
|
2161
|
+
* microsoft-calendar / microsoft-teams / outlook-mail (one M365 app). The
|
|
2162
|
+
* `Sites.Read.All` scope is required for the read surface; `Files.ReadWrite.All`
|
|
2163
|
+
* is required for upload + create-folder. `offline_access` is required to
|
|
2164
|
+
* receive a `refresh_token` from v2.0 — without it the connection silently
|
|
2165
|
+
* dies after the access token's first hour.
|
|
2166
|
+
*
|
|
2167
|
+
* Consistency model: 'authoritative'. SharePoint exposes etags on every
|
|
2168
|
+
* DriveItem, so callers can chain a list/get → mutation under real CAS for
|
|
2169
|
+
* follow-up patch/delete flows (those land in a follow-up — this adapter
|
|
2170
|
+
* stays scoped to the create/upload/discovery surface that satisfies the
|
|
2171
|
+
* Tier-1 storage pack on the catalog).
|
|
2172
|
+
*/
|
|
2173
|
+
|
|
2174
|
+
/** OAuth client config the factory closes over. Caller resolves these
|
|
2175
|
+
* at construction time (env, DB, secret manager — package doesn't care). */
|
|
2176
|
+
interface SharePointOptions {
|
|
2177
|
+
clientId: string;
|
|
2178
|
+
clientSecret: string;
|
|
2179
|
+
}
|
|
2180
|
+
declare function sharepoint(opts: SharePointOptions): ConnectorAdapter;
|
|
2181
|
+
|
|
2182
|
+
declare const activecampaignConnector: ConnectorAdapter;
|
|
2183
|
+
|
|
2184
|
+
declare const kustomerConnector: ConnectorAdapter;
|
|
2185
|
+
|
|
2186
|
+
declare const savvycalConnector: ConnectorAdapter;
|
|
2187
|
+
|
|
2188
|
+
/**
|
|
2189
|
+
* AirOps public API: workflows ("apps") are invoked sync or async by their
|
|
2190
|
+
* app UUID; async runs return an execution UUID that can be polled via the
|
|
2191
|
+
* executions endpoint. The API key is provisioned per workspace and presented
|
|
2192
|
+
* as a Bearer token.
|
|
2193
|
+
*
|
|
2194
|
+
* Reference: https://app.airops.com/public_api
|
|
2195
|
+
*/
|
|
2196
|
+
declare const airOpsConnector: ConnectorAdapter;
|
|
2197
|
+
|
|
2198
|
+
/**
|
|
2199
|
+
* AgentX (https://www.agentx.so) is a hosted multi-agent platform that
|
|
2200
|
+
* exposes conversation, message, and agent-search endpoints. The public REST
|
|
2201
|
+
* surface is rooted at `/api/v1` and authenticated with a personal API key
|
|
2202
|
+
* presented as `Authorization: Bearer <key>` (the same shape Activepieces
|
|
2203
|
+
* uses for its piece-agentx connector).
|
|
2204
|
+
*
|
|
2205
|
+
* Capabilities mirror the upstream actions array verbatim:
|
|
2206
|
+
* - createConversationWithSingleAgent → conversations.createWithSingleAgent
|
|
2207
|
+
* - sendMessageToExistingConversation → conversations.sendMessage
|
|
2208
|
+
* - findMessage → messages.find
|
|
2209
|
+
* - searchAgents → agents.search
|
|
2210
|
+
* - findConversation → conversations.find
|
|
2211
|
+
*
|
|
2212
|
+
* Triggers (newAgent, newConversation) are surfaced upstream as Activepieces
|
|
2213
|
+
* polling triggers; the declarative-REST connector models them as read
|
|
2214
|
+
* capabilities so the agent can poll on its own schedule.
|
|
2215
|
+
*/
|
|
2216
|
+
declare const agentxConnector: ConnectorAdapter;
|
|
2217
|
+
|
|
2218
|
+
/**
|
|
2219
|
+
* Afforai connector.
|
|
2220
|
+
*
|
|
2221
|
+
* Afforai is a research assistant that lets users build chatbots over a
|
|
2222
|
+
* private corpus of uploaded documents. The external integration surface
|
|
2223
|
+
* is intentionally narrow: a single ask-the-chatbot endpoint that accepts
|
|
2224
|
+
* a sessionID (the chatbot the user has provisioned in the Afforai UI),
|
|
2225
|
+
* a chat-history array, and the next user turn, and returns the
|
|
2226
|
+
* assistant response synthesized over the bot's document set.
|
|
2227
|
+
*
|
|
2228
|
+
* Auth is a tenant-issued API key delivered as a bearer token. There is
|
|
2229
|
+
* no OAuth surface — Afforai does not expose a 3-legged flow.
|
|
2230
|
+
*
|
|
2231
|
+
* Consistency: chatbot responses are non-deterministic (LLM-backed) and
|
|
2232
|
+
* carry external billing-class effects (each call is a metered query
|
|
2233
|
+
* against the tenant's plan). CAS posture is therefore `none` — the
|
|
2234
|
+
* caller owns dedupe — and `externalEffect: true` so the orchestrator's
|
|
2235
|
+
* dry-run policy treats this as a side-effecting call.
|
|
2236
|
+
*/
|
|
2237
|
+
declare const afforaiConnector: ConnectorAdapter;
|
|
2238
|
+
|
|
2239
|
+
/**
|
|
2240
|
+
* Aidbase connector.
|
|
2241
|
+
*
|
|
2242
|
+
* Aidbase is an AI-powered customer-support platform (chatbot, ticketing,
|
|
2243
|
+
* FAQ/knowledge-base). The public REST API is bearer-authenticated against
|
|
2244
|
+
* `https://api.aidbase.ai/v1` with a workspace API key minted from the
|
|
2245
|
+
* Aidbase dashboard.
|
|
2246
|
+
*
|
|
2247
|
+
* Surface covered: knowledge-source ingestion (add video / website / FAQ
|
|
2248
|
+
* item), FAQ container creation, chatbot reply generation, and training
|
|
2249
|
+
* job kickoff. All six declared capabilities map 1:1 to the activepieces
|
|
2250
|
+
* `actions` array for the `aidbase` piece.
|
|
2251
|
+
*
|
|
2252
|
+
* Webhook-shaped triggers (email.received, ticket.created, …) are not
|
|
2253
|
+
* modeled here because they are server-push, not client-pull — they belong
|
|
2254
|
+
* in a webhook-subscription adapter and would not be invokable through the
|
|
2255
|
+
* declarative-REST `executeRead` / `executeMutation` seam.
|
|
2256
|
+
*/
|
|
2257
|
+
declare const aidbaseConnector: ConnectorAdapter;
|
|
2258
|
+
|
|
2259
|
+
/**
|
|
2260
|
+
* Acumbamail adapter — REST/form API at https://acumbamail.com/api/1/.
|
|
2261
|
+
*
|
|
2262
|
+
* Auth: API key, forwarded as the `auth_token` query parameter on every
|
|
2263
|
+
* call (Acumbamail does not honor Authorization headers).
|
|
2264
|
+
*
|
|
2265
|
+
* Actions mirror the activepieces catalog entry for `acumbamail`: subscriber
|
|
2266
|
+
* lifecycle, list lifecycle, and template duplication. Response format is
|
|
2267
|
+
* forced to JSON via the `response_type=json` query knob included on every
|
|
2268
|
+
* request that supports it.
|
|
2269
|
+
*/
|
|
2270
|
+
declare const acumbamailConnector: ConnectorAdapter;
|
|
2271
|
+
|
|
2272
|
+
/**
|
|
2273
|
+
* AiPrise KYC / KYB / fraud-prevention connector.
|
|
2274
|
+
*
|
|
2275
|
+
* Authentication: workspace API key delivered in the `X-API-Key` header.
|
|
2276
|
+
* AiPrise also runs a two-environment split (sandbox + live) gated by a
|
|
2277
|
+
* separate key; environment selection is the caller's concern — the same
|
|
2278
|
+
* declarative manifest works against either host because the spec only fixes
|
|
2279
|
+
* the production hostname. Sandbox callers can override `baseUrl` at the
|
|
2280
|
+
* source-metadata level once that surface is wired through.
|
|
2281
|
+
*
|
|
2282
|
+
* Capability surface mirrors the activepieces actions list one-for-one so the
|
|
2283
|
+
* catalog → adapter mapping is verifiable:
|
|
2284
|
+
* - identity verifications (start, get URL, get result, get user input)
|
|
2285
|
+
* - business verifications (start, get result, get input)
|
|
2286
|
+
* - document checks
|
|
2287
|
+
* - profile CRUD (create / read business + user profiles, list business docs)
|
|
2288
|
+
* - decision override (update verification result)
|
|
2289
|
+
* - business directory search
|
|
2290
|
+
*/
|
|
2291
|
+
declare const aipriseConnector: ConnectorAdapter;
|
|
2292
|
+
|
|
2293
|
+
declare const aircallConnector: ConnectorAdapter;
|
|
2294
|
+
|
|
2295
|
+
declare const amazonBedrockConnector: ConnectorAdapter;
|
|
2296
|
+
|
|
2297
|
+
declare const amazonSecretsManagerConnector: ConnectorAdapter;
|
|
2298
|
+
|
|
2299
|
+
declare const airtopConnector: ConnectorAdapter;
|
|
2300
|
+
|
|
2301
|
+
/**
|
|
2302
|
+
* @stable Alai connector — AI-powered presentation generation.
|
|
2303
|
+
*
|
|
2304
|
+
* Alai is a REST + API-key product (header: `Authorization: Bearer <key>`).
|
|
2305
|
+
* Public API base: https://api.getalai.com
|
|
2306
|
+
*
|
|
2307
|
+
* The activepieces catalog exposes five actions on the Alai surface:
|
|
2308
|
+
* - generate.presentation (write) POST /presentations/generate
|
|
2309
|
+
* - get.generation (read) GET /generations/{generationId}
|
|
2310
|
+
* - export.presentation (write) POST /presentations/{presentationId}/export
|
|
2311
|
+
* - add.slide (write) POST /presentations/{presentationId}/slides
|
|
2312
|
+
* - delete.presentation (destructive) DELETE /presentations/{presentationId}
|
|
2313
|
+
*
|
|
2314
|
+
* Consistency model is `authoritative`: Alai is the system of record for the
|
|
2315
|
+
* presentations it generates, and read-after-write of a generation job returns
|
|
2316
|
+
* Alai's own status — our adapter does not cache derived state.
|
|
2317
|
+
*/
|
|
2318
|
+
declare const alaiConnector: ConnectorAdapter;
|
|
2319
|
+
|
|
2320
|
+
/**
|
|
2321
|
+
* AltText.ai (https://alttext.ai) generates SEO-friendly, accessible alt text
|
|
2322
|
+
* for images using AI vision models. The public REST API is rooted at
|
|
2323
|
+
* `https://alttext.ai/api/v1` and authenticated with a personal API key
|
|
2324
|
+
* presented as `X-API-Key: <key>` — the same shape Activepieces uses for
|
|
2325
|
+
* `@activepieces/piece-alt-text-ai`.
|
|
2326
|
+
*
|
|
2327
|
+
* Capability surface mirrors the upstream `generateAltTextAction`:
|
|
2328
|
+
* - generateAltTextAction → images.generateAltText
|
|
2329
|
+
*
|
|
2330
|
+
* The upstream action exposes four input fields:
|
|
2331
|
+
* - image (required) — URL or base64-encoded image bytes
|
|
2332
|
+
* - keywords (optional) — phrases to bias the alt text toward
|
|
2333
|
+
* - negativeKeywords (optional) — phrases to exclude from the alt text
|
|
2334
|
+
* - keywordSource (optional) — free text used to derive keywords
|
|
2335
|
+
* which we forward verbatim to POST /images so downstream agents can pass
|
|
2336
|
+
* the same field names the Activepieces piece accepts.
|
|
2337
|
+
*/
|
|
2338
|
+
declare const altTextAiConnector: ConnectorAdapter;
|
|
2339
|
+
|
|
2340
|
+
declare const alttextifyConnector: ConnectorAdapter;
|
|
2341
|
+
|
|
2342
|
+
declare const amazonSesConnector: ConnectorAdapter;
|
|
2343
|
+
|
|
2344
|
+
declare const amazonSnsConnector: ConnectorAdapter;
|
|
2345
|
+
|
|
2346
|
+
declare const amazonSqsConnector: ConnectorAdapter;
|
|
2347
|
+
|
|
2348
|
+
declare const amazonTextractConnector: ConnectorAdapter;
|
|
2349
|
+
|
|
2350
|
+
declare const apitemplateIoConnector: ConnectorAdapter;
|
|
2351
|
+
|
|
2352
|
+
declare const ampecoConnector: ConnectorAdapter;
|
|
2353
|
+
|
|
2354
|
+
declare const appfollowConnector: ConnectorAdapter;
|
|
2355
|
+
|
|
2356
|
+
declare const apitableConnector: ConnectorAdapter;
|
|
2357
|
+
|
|
2358
|
+
/**
|
|
2359
|
+
* Aminos (Aminos One) adapter — self-hosted/per-tenant SaaS panel.
|
|
2360
|
+
*
|
|
2361
|
+
* Base URL is per-tenant and supplied via connection metadata under the
|
|
2362
|
+
* `baseUrl` key (matches the catalog `base_url` auth field). The API key is
|
|
2363
|
+
* the `access_token` field; default credential placement is the
|
|
2364
|
+
* Authorization header.
|
|
2365
|
+
*
|
|
2366
|
+
* Catalog action surface: a single `createUser` mutation that provisions an
|
|
2367
|
+
* Aminos One end-user under the connecting account's plan.
|
|
2368
|
+
*/
|
|
2369
|
+
declare const aminosConnector: ConnectorAdapter;
|
|
2370
|
+
|
|
2371
|
+
declare const apolloConnector: ConnectorAdapter;
|
|
2372
|
+
|
|
2373
|
+
/**
|
|
2374
|
+
* Ashby ATS (https://developers.ashbyhq.com).
|
|
2375
|
+
*
|
|
2376
|
+
* Auth: HTTP Basic with the API key as the username and an empty password.
|
|
2377
|
+
* The catalog entry lists no explicit actions, so the surface below maps the
|
|
2378
|
+
* documented public API resources (candidate, job, application, offer,
|
|
2379
|
+
* feedback, interview, interviewSchedule). All Ashby endpoints are HTTP POST
|
|
2380
|
+
* with a JSON body — there are no GET reads — so query-class capabilities
|
|
2381
|
+
* model `*.list` / `*.info` calls as POSTs with a body envelope.
|
|
2382
|
+
*/
|
|
2383
|
+
declare const ashbyConnector: ConnectorAdapter;
|
|
2384
|
+
|
|
2385
|
+
/**
|
|
2386
|
+
* AssemblyAI connector — speech-to-text, audio intelligence, and LeMUR LLM
|
|
2387
|
+
* operations over a stored transcript.
|
|
2388
|
+
*
|
|
2389
|
+
* Authentication: workspace API key delivered in the `Authorization` header
|
|
2390
|
+
* verbatim (no `Bearer` prefix — AssemblyAI's API accepts the raw key). The
|
|
2391
|
+
* declarative-rest engine's header placement with an empty prefix matches
|
|
2392
|
+
* the vendor's documented contract.
|
|
2393
|
+
*
|
|
2394
|
+
* Endpoint surface: transcript submit + poll + list + delete, paragraph and
|
|
2395
|
+
* sentence views over a finished transcript, subtitle export (SRT/VTT), word
|
|
2396
|
+
* search, redacted-audio retrieval, and the LeMUR generation endpoints
|
|
2397
|
+
* (summary, Q&A, action items, free-form task) keyed by transcript ids.
|
|
2398
|
+
*
|
|
2399
|
+
* Multipart audio UPLOAD against POST /v2/upload is intentionally not declared
|
|
2400
|
+
* here — the declarative-rest engine JSON-encodes bodies and would corrupt a
|
|
2401
|
+
* raw binary payload. Callers should either pass a public `audio_url` to
|
|
2402
|
+
* `transcripts.submit` or use a bespoke upload adapter.
|
|
2403
|
+
*/
|
|
2404
|
+
declare const assemblyaiConnector: ConnectorAdapter;
|
|
2405
|
+
|
|
2406
|
+
/**
|
|
2407
|
+
* @stable Avian connector — OpenAI-compatible chat completions on api.avian.io.
|
|
2408
|
+
*
|
|
2409
|
+
* Avian exposes an OpenAI-compatible inference surface for hosted language
|
|
2410
|
+
* models. The activepieces piece-avian publishes a single `askAvian` action;
|
|
2411
|
+
* underneath it is a `POST /v1/chat/completions` call with the standard
|
|
2412
|
+
* OpenAI request shape (model, messages, temperature, top_p, frequency_penalty,
|
|
2413
|
+
* presence_penalty, max_tokens, response_format).
|
|
2414
|
+
*
|
|
2415
|
+
* API base : https://api.avian.io
|
|
2416
|
+
* Auth : `Authorization: Bearer <api-key>` (api-key credential).
|
|
2417
|
+
* Docs : https://docs.avian.io
|
|
2418
|
+
*
|
|
2419
|
+
* Consistency model is `authoritative`: Avian is the system of record for
|
|
2420
|
+
* the completions it returns — adapters do not cache or replay them.
|
|
2421
|
+
*/
|
|
2422
|
+
declare const avianConnector: ConnectorAdapter;
|
|
2423
|
+
|
|
2424
|
+
declare const asknewsConnector: ConnectorAdapter;
|
|
2425
|
+
|
|
2426
|
+
declare const avomaConnector: ConnectorAdapter;
|
|
2427
|
+
|
|
2428
|
+
declare const azureCommunicationServicesConnector: ConnectorAdapter;
|
|
2429
|
+
|
|
2430
|
+
declare const autocallsConnector: ConnectorAdapter;
|
|
2431
|
+
|
|
2432
|
+
/**
|
|
2433
|
+
* Microsoft Entra ID (Azure Active Directory) connector backed by Microsoft Graph v1.0.
|
|
2434
|
+
*
|
|
2435
|
+
* Auth: OAuth2 (authorization code or client credentials) against the v2.0 endpoint.
|
|
2436
|
+
* The tenant id (`common`, `organizations`, or a directory id / verified domain) is
|
|
2437
|
+
* substituted into the authorize/token URLs at client-registration time when the
|
|
2438
|
+
* caller wants to scope the connection to a single tenant. The default endpoints
|
|
2439
|
+
* below use `common` so the same connector serves multi-tenant SaaS app registrations;
|
|
2440
|
+
* single-tenant operators override authorizationUrl/tokenUrl with their own tenant id.
|
|
2441
|
+
*
|
|
2442
|
+
* Docs:
|
|
2443
|
+
* - https://learn.microsoft.com/graph/api/overview?view=graph-rest-1.0
|
|
2444
|
+
* - https://learn.microsoft.com/entra/identity-platform/v2-oauth2-auth-code-flow
|
|
2445
|
+
* - https://learn.microsoft.com/graph/permissions-reference
|
|
2446
|
+
*/
|
|
2447
|
+
declare const azureAdConnector: ConnectorAdapter;
|
|
2448
|
+
|
|
2449
|
+
declare const barcodeLookupConnector: ConnectorAdapter;
|
|
2450
|
+
|
|
2451
|
+
declare const azureOpenaiConnector: ConnectorAdapter;
|
|
2452
|
+
|
|
2453
|
+
/**
|
|
2454
|
+
* Backblaze B2 connector — S3-compatible object storage.
|
|
2455
|
+
*
|
|
2456
|
+
* The activepieces catalog entry models Backblaze as an api-key connector
|
|
2457
|
+
* with four wiring fields: accessKeyId, secretAccessKey, bucket, and region
|
|
2458
|
+
* (endpoint is optional and computed from region when omitted). That maps
|
|
2459
|
+
* directly onto Backblaze B2's S3-compatible REST surface, which lives at
|
|
2460
|
+
* https://s3.{region}.backblazeb2.com
|
|
2461
|
+
* (e.g. s3.us-west-001.backblazeb2.com) and accepts AWS SigV4-signed
|
|
2462
|
+
* requests against the bucket as a virtual-hosted-style or path-style
|
|
2463
|
+
* resource. Because the declarative-REST adapter carries one base URL per
|
|
2464
|
+
* connector and does not own request-time signing, the manifest here
|
|
2465
|
+
* captures the action surface; SigV4 signing is layered on by the runtime
|
|
2466
|
+
* once it sees the api-key credential bundle (accessKeyId + secretAccessKey).
|
|
2467
|
+
*
|
|
2468
|
+
* Action surface mirrors the activepieces catalog 1:1:
|
|
2469
|
+
* - files.read Read object bytes / metadata from a key in the bucket.
|
|
2470
|
+
* - files.s3_upload Upload an object to a key (or folderPath/fileName).
|
|
2471
|
+
*
|
|
2472
|
+
* Triggers (catalog "new.back.blaze.file") are not modeled on the
|
|
2473
|
+
* declarative-REST adapter — Backblaze does not emit native webhooks for
|
|
2474
|
+
* object events; the activepieces trigger polls the bucket. Polling-style
|
|
2475
|
+
* triggers belong in a poller adapter, not a request/response adapter,
|
|
2476
|
+
* so they're intentionally omitted here.
|
|
2477
|
+
*
|
|
2478
|
+
* Consistency model is `authoritative`: B2's bucket APIs return canonical
|
|
2479
|
+
* post-write state (the upload response carries the assigned fileId, sha1,
|
|
2480
|
+
* and content metadata), so a successful 2xx is the source of truth.
|
|
2481
|
+
*
|
|
2482
|
+
* CAS:
|
|
2483
|
+
* - files.read is a plain read.
|
|
2484
|
+
* - files.s3_upload is marked `native-idempotency` because B2 lets the
|
|
2485
|
+
* client supply an `X-Bz-Content-Sha1` (or use the S3 `If-None-Match: *`
|
|
2486
|
+
* header on the PUT) to make the upload conditional / dedupable on the
|
|
2487
|
+
* destination key.
|
|
2488
|
+
*/
|
|
2489
|
+
declare const backblazeConnector: ConnectorAdapter;
|
|
2490
|
+
|
|
2491
|
+
declare const baremetricsConnector: ConnectorAdapter;
|
|
2492
|
+
|
|
2493
|
+
/**
|
|
2494
|
+
* Beamer connector.
|
|
2495
|
+
*
|
|
2496
|
+
* Beamer is an in-app announcement / changelog / feedback-board product. The
|
|
2497
|
+
* public REST API is at `https://api.getbeamer.com/v0` and is authenticated by
|
|
2498
|
+
* sending the workspace API key in the `Beamer-Api-Key` request header. Keys
|
|
2499
|
+
* are minted from the Beamer dashboard → Settings → REST API.
|
|
2500
|
+
*
|
|
2501
|
+
* The activepieces `beamer` piece exposes four `actions` and zero `triggers`:
|
|
2502
|
+
* - createComment → POST /feature-requests/{id}/comments
|
|
2503
|
+
* - createNewFeatureRequest → POST /feature-requests
|
|
2504
|
+
* - createBeamerPost → POST /posts
|
|
2505
|
+
* - createVote → POST /feature-requests/{id}/votes
|
|
2506
|
+
*
|
|
2507
|
+
* Each maps 1:1 to a `mutation` capability below. Read-side capabilities are
|
|
2508
|
+
* added on top because they are the obvious companions for any LLM agent
|
|
2509
|
+
* (pulling the existing post / feature-request list before deciding what to
|
|
2510
|
+
* mutate). Webhooks / SSE triggers are not modeled — they belong in a
|
|
2511
|
+
* subscription adapter, not the declarative-REST request/response seam.
|
|
2512
|
+
*/
|
|
2513
|
+
declare const beamerConnector: ConnectorAdapter;
|
|
2514
|
+
|
|
2515
|
+
declare const bettermodeConnector: ConnectorAdapter;
|
|
2516
|
+
|
|
2517
|
+
declare const blandAiConnector: ConnectorAdapter;
|
|
2518
|
+
|
|
2519
|
+
declare const bitlyConnector: ConnectorAdapter;
|
|
2520
|
+
|
|
2521
|
+
declare const biginByZohoConnector: ConnectorAdapter;
|
|
2522
|
+
|
|
2523
|
+
declare const billplzConnector: ConnectorAdapter;
|
|
2524
|
+
|
|
2525
|
+
declare const bonjoroConnector: ConnectorAdapter;
|
|
2526
|
+
|
|
2527
|
+
/**
|
|
2528
|
+
* Bluesky / AT Protocol adapter.
|
|
2529
|
+
*
|
|
2530
|
+
* The piece authenticates by calling `com.atproto.server.createSession` with an
|
|
2531
|
+
* identifier (handle or email) and an app password. The returned access JWT is
|
|
2532
|
+
* then used as a bearer token against the same PDS host for the remaining
|
|
2533
|
+
* `app.bsky.*` XRPC endpoints. The connector framework treats the resolved
|
|
2534
|
+
* bearer token as the api-key credential and surfaces the PDS host through the
|
|
2535
|
+
* baseUrl + per-action XRPC paths.
|
|
2536
|
+
*
|
|
2537
|
+
* Default PDS host: https://bsky.social
|
|
2538
|
+
*/
|
|
2539
|
+
declare const blueskyConnector: ConnectorAdapter;
|
|
2540
|
+
|
|
2541
|
+
declare const bolnaConnector: ConnectorAdapter;
|
|
2542
|
+
|
|
2543
|
+
declare const bexioConnector: ConnectorAdapter;
|
|
2544
|
+
|
|
2545
|
+
declare const bookedinConnector: ConnectorAdapter;
|
|
2546
|
+
|
|
2547
|
+
declare const browseAiConnector: ConnectorAdapter;
|
|
2548
|
+
|
|
2549
|
+
/**
|
|
2550
|
+
* Brilliant Directories adapter — per-tenant REST API hosted on each
|
|
2551
|
+
* customer's directory instance (e.g. https://example.com/api). The base
|
|
2552
|
+
* URL is supplied at connect time via `source.metadata.siteUrl`; the API
|
|
2553
|
+
* key is the `X-Api-Key` header generated from the admin panel at
|
|
2554
|
+
* https://ww2.managemydirectory.com/admin/apiSettings.
|
|
2555
|
+
*
|
|
2556
|
+
* Actions mirror the activepieces catalog entry for `brilliant-directories`,
|
|
2557
|
+
* which exposes a single write action: createNewUser.
|
|
2558
|
+
*/
|
|
2559
|
+
declare const brilliantDirectoriesConnector: ConnectorAdapter;
|
|
2560
|
+
|
|
2561
|
+
declare const campaignMonitorConnector: ConnectorAdapter;
|
|
2562
|
+
|
|
2563
|
+
declare const braveSearchConnector: ConnectorAdapter;
|
|
2564
|
+
|
|
2565
|
+
declare const captainDataConnector: ConnectorAdapter;
|
|
2566
|
+
|
|
2567
|
+
declare const certopusConnector: ConnectorAdapter;
|
|
2568
|
+
|
|
2569
|
+
declare const chainalysisApiConnector: ConnectorAdapter;
|
|
2570
|
+
|
|
2571
|
+
declare const cannyConnector: ConnectorAdapter;
|
|
2572
|
+
|
|
2573
|
+
declare const capsuleCrmConnector: ConnectorAdapter;
|
|
2574
|
+
|
|
2575
|
+
declare const cashfreePaymentsConnector: ConnectorAdapter;
|
|
2576
|
+
|
|
2577
|
+
declare const chargebeeConnector: ConnectorAdapter;
|
|
2578
|
+
|
|
2579
|
+
declare const chargekeepConnector: ConnectorAdapter;
|
|
2580
|
+
|
|
2581
|
+
/**
|
|
2582
|
+
* Chatling connector.
|
|
2583
|
+
*
|
|
2584
|
+
* Chatling lets tenants build AI chatbots trained on their own data
|
|
2585
|
+
* (documents, URLs, custom Q&A). The integration surface exposes two
|
|
2586
|
+
* write actions — sending a message to a configured chatbot and
|
|
2587
|
+
* provisioning a new chatbot — and two event-shaped triggers that the
|
|
2588
|
+
* SDK surfaces as read capabilities the orchestrator can poll
|
|
2589
|
+
* (new-conversation, new-contact). Webhook-style push isn't part of
|
|
2590
|
+
* the declarative-REST contract, so we model the trigger surface as
|
|
2591
|
+
* authoritative reads.
|
|
2592
|
+
*
|
|
2593
|
+
* Auth is a tenant-issued API key delivered as a bearer token. There
|
|
2594
|
+
* is no OAuth flow — Chatling does not expose a 3-legged client.
|
|
2595
|
+
*
|
|
2596
|
+
* Consistency: send.message is non-deterministic (LLM-backed) and
|
|
2597
|
+
* carries metered billing, so CAS is `none` and `externalEffect: true`.
|
|
2598
|
+
* create.chatbot is a provisioning call against the tenant's account;
|
|
2599
|
+
* Chatling does not honour a client-supplied idempotency key, so the
|
|
2600
|
+
* caller owns dedupe. The read-shaped triggers are authoritative —
|
|
2601
|
+
* Chatling is the source of truth for its conversation log.
|
|
2602
|
+
*/
|
|
2603
|
+
declare const chatlingConnector: ConnectorAdapter;
|
|
2604
|
+
|
|
2605
|
+
declare const chatbaseConnector: ConnectorAdapter;
|
|
2606
|
+
|
|
2607
|
+
declare const chartlyConnector: ConnectorAdapter;
|
|
2608
|
+
|
|
2609
|
+
/**
|
|
2610
|
+
* Chatwoot — open-source customer engagement platform.
|
|
2611
|
+
*
|
|
2612
|
+
* Auth: per-user API access token (Profile Settings → API Access Token),
|
|
2613
|
+
* sent as the `api_access_token` header on every request. The instance
|
|
2614
|
+
* URL is configurable because Chatwoot is self-hostable; the cloud-hosted
|
|
2615
|
+
* default is `https://app.chatwoot.com`.
|
|
2616
|
+
*
|
|
2617
|
+
* Surface covered:
|
|
2618
|
+
* - send.message (mirrors the upstream `sendMessage` action — POST a
|
|
2619
|
+
* message into an existing conversation, optionally as a private note)
|
|
2620
|
+
*/
|
|
2621
|
+
declare const chatwootConnector: ConnectorAdapter;
|
|
2622
|
+
|
|
2623
|
+
/**
|
|
2624
|
+
* Chat Data connector.
|
|
2625
|
+
*
|
|
2626
|
+
* Chat Data is a chatbot-as-a-service platform: create AI chatbots backed by
|
|
2627
|
+
* model providers + custom training material (scraped URLs, free-form text,
|
|
2628
|
+
* uploaded files, Q&A pairs, product catalogs) and drive conversations with
|
|
2629
|
+
* them through a REST API. Optional integrations cover live-chat escalation
|
|
2630
|
+
* and custom backend dispatch.
|
|
2631
|
+
*
|
|
2632
|
+
* The public REST API is bearer-authenticated against
|
|
2633
|
+
* `https://api.chat-data.com/api/v2` with a workspace API key minted from the
|
|
2634
|
+
* Chat Data dashboard. All six declared capabilities map 1:1 to the
|
|
2635
|
+
* activepieces `actions` array for the `chat-data` piece — there are no
|
|
2636
|
+
* read-class endpoints in the activepieces surface (every action is risk
|
|
2637
|
+
* `write` or `destructive`).
|
|
2638
|
+
*
|
|
2639
|
+
* The `chat` category in the activepieces catalog has no analogue in our
|
|
2640
|
+
* `Manifest.category` enum, so we map to `comms` — the closest matching
|
|
2641
|
+
* concept (conversation-oriented messaging surface).
|
|
2642
|
+
*/
|
|
2643
|
+
declare const chatDataConnector: ConnectorAdapter;
|
|
2644
|
+
|
|
2645
|
+
declare const circleConnector: ConnectorAdapter;
|
|
2646
|
+
|
|
2647
|
+
declare const checkoutConnector: ConnectorAdapter;
|
|
2648
|
+
|
|
2649
|
+
/**
|
|
2650
|
+
* ChatNode connector.
|
|
2651
|
+
*
|
|
2652
|
+
* ChatNode is a hosted no-code AI chatbot builder. Workspace owners train
|
|
2653
|
+
* a bot against documents/URLs/FAQs, then expose it as a chat widget or a
|
|
2654
|
+
* REST endpoint that takes a user message and returns a generated reply
|
|
2655
|
+
* against the trained corpus.
|
|
2656
|
+
*
|
|
2657
|
+
* The public REST API is bearer-authenticated against
|
|
2658
|
+
* `https://www.chatnode.ai/api/v2`. The API key is workspace-scoped and
|
|
2659
|
+
* minted from the ChatNode dashboard. Each call also requires a `botId`
|
|
2660
|
+
* identifying which trained bot to query; the activepieces piece exposes
|
|
2661
|
+
* `botId` as an authField — we keep it as an explicit per-call parameter
|
|
2662
|
+
* here so a single credential can address multiple bots in the same
|
|
2663
|
+
* workspace without re-binding the connection.
|
|
2664
|
+
*
|
|
2665
|
+
* The activepieces `chatnode` piece ships exactly one action,
|
|
2666
|
+
* `askChatbotAction`, which we model as `chatbot.ask`. It is a write-class
|
|
2667
|
+
* action on the activepieces side because each call mutates the chat
|
|
2668
|
+
* session transcript on the ChatNode side (the answer is persisted under
|
|
2669
|
+
* the `chatSessionId`). There are no read actions and no triggers in the
|
|
2670
|
+
* upstream piece.
|
|
2671
|
+
*/
|
|
2672
|
+
declare const chatnodeConnector: ConnectorAdapter;
|
|
2673
|
+
|
|
2674
|
+
declare const cloudinaryConnector: ConnectorAdapter;
|
|
2675
|
+
|
|
2676
|
+
declare const clockodoConnector: ConnectorAdapter;
|
|
2677
|
+
|
|
2678
|
+
declare const clockifyConnector: ConnectorAdapter;
|
|
2679
|
+
|
|
2680
|
+
declare const cloutlyConnector: ConnectorAdapter;
|
|
2681
|
+
|
|
2682
|
+
/**
|
|
2683
|
+
* Clearout adapter — email verification REST API at https://api.clearout.io.
|
|
2684
|
+
*
|
|
2685
|
+
* Auth: API token issued from the Clearout dashboard, sent as a Bearer token
|
|
2686
|
+
* on the Authorization header (the placement Clearout documents for its v2
|
|
2687
|
+
* REST surface).
|
|
2688
|
+
*
|
|
2689
|
+
* The activepieces catalog ships a single action — `instant.verify` — backed
|
|
2690
|
+
* by `POST /v2/email_verify/instant`, which scores a single email address in
|
|
2691
|
+
* real time. We classify it as a mutation because each call is metered and
|
|
2692
|
+
* consumes account credits; CAS is `native-idempotency` since the API treats
|
|
2693
|
+
* repeat lookups of the same address as cache hits within the verification
|
|
2694
|
+
* window.
|
|
2695
|
+
*/
|
|
2696
|
+
declare const clearoutConnector: ConnectorAdapter;
|
|
2697
|
+
|
|
2698
|
+
declare const clicdataConnector: ConnectorAdapter;
|
|
2699
|
+
|
|
2700
|
+
declare const cognitoFormsConnector: ConnectorAdapter;
|
|
2701
|
+
|
|
2702
|
+
declare const cohereConnector: ConnectorAdapter;
|
|
2703
|
+
|
|
2704
|
+
declare const cloudconvertConnector: ConnectorAdapter;
|
|
2705
|
+
|
|
2706
|
+
/**
|
|
2707
|
+
* CometAPI connector.
|
|
2708
|
+
*
|
|
2709
|
+
* CometAPI is a unified inference gateway that fronts multiple model
|
|
2710
|
+
* providers (OpenAI, Anthropic, Google, Meta, Mistral, …) behind a single
|
|
2711
|
+
* OpenAI-compatible REST surface. A single bearer API key authenticates every
|
|
2712
|
+
* call; routing to a specific underlying provider is done by the `model`
|
|
2713
|
+
* field on the request body — there is no per-provider endpoint.
|
|
2714
|
+
*
|
|
2715
|
+
* The activepieces catalog ships a single high-level action (`ask.comet.api`)
|
|
2716
|
+
* which is a thin wrapper over the chat-completions endpoint. We expose that
|
|
2717
|
+
* as the primary `chat.completions.create` capability and add the rest of the
|
|
2718
|
+
* OpenAI-compatible surface CometAPI documents (models list, embeddings,
|
|
2719
|
+
* images) so the agent has a real tool kit, not just one knob.
|
|
2720
|
+
*
|
|
2721
|
+
* Consistency model: `advisory`. Every mutation here is a stateless
|
|
2722
|
+
* generation call — replaying it yields a different sample, never the same
|
|
2723
|
+
* record, so authoritative semantics would be a lie. The caller's
|
|
2724
|
+
* MutationGuard owns at-most-once delivery via an idempotency token if it
|
|
2725
|
+
* cares.
|
|
2726
|
+
*/
|
|
2727
|
+
declare const cometapiConnector: ConnectorAdapter;
|
|
2728
|
+
|
|
2729
|
+
/**
|
|
2730
|
+
* Comfy.ICU adapter — hosted ComfyUI runner at https://comfy.icu/api/v1/.
|
|
2731
|
+
*
|
|
2732
|
+
* Auth: API key, forwarded as `Authorization: Bearer <token>` per Comfy.ICU's
|
|
2733
|
+
* REST docs. The catalog maps four actions and three triggers; only actions
|
|
2734
|
+
* are surfaced as capabilities here (triggers are out-of-band webhooks
|
|
2735
|
+
* configured by the user in the Comfy.ICU UI).
|
|
2736
|
+
*
|
|
2737
|
+
* Capability slugs mirror the upstream `id` fields verbatim so trace events
|
|
2738
|
+
* cross-reference the activepieces catalog one-to-one.
|
|
2739
|
+
*/
|
|
2740
|
+
declare const comfyicuConnector: ConnectorAdapter;
|
|
2741
|
+
|
|
2742
|
+
declare const constantContactConnector: ConnectorAdapter;
|
|
2743
|
+
|
|
2744
|
+
declare const crispConnector: ConnectorAdapter;
|
|
2745
|
+
|
|
2746
|
+
declare const convertkitConnector: ConnectorAdapter;
|
|
2747
|
+
|
|
2748
|
+
/**
|
|
2749
|
+
* Dashworks connector.
|
|
2750
|
+
*
|
|
2751
|
+
* Dashworks is an enterprise answer engine that lets workspace users build
|
|
2752
|
+
* "Bots" backed by federated search over connected SaaS sources (Notion,
|
|
2753
|
+
* Slack, Confluence, Drive, etc.). The public Bots API exposes a single
|
|
2754
|
+
* synthesize-an-answer endpoint that targets a specific bot by ID and
|
|
2755
|
+
* returns a grounded response with optional inline source citations.
|
|
2756
|
+
*
|
|
2757
|
+
* Auth is a tenant-issued API key delivered as a bearer token; there is no
|
|
2758
|
+
* documented OAuth surface for the Bots API.
|
|
2759
|
+
*
|
|
2760
|
+
* Consistency: answers are LLM-synthesized over a non-deterministic
|
|
2761
|
+
* retrieval pass and each call is a metered query against the tenant's
|
|
2762
|
+
* Dashworks plan. CAS posture is therefore `none` — the caller owns
|
|
2763
|
+
* dedupe — and `externalEffect: true` so the orchestrator's dry-run
|
|
2764
|
+
* policy treats this as a side-effecting call.
|
|
2765
|
+
*/
|
|
2766
|
+
declare const dashworksConnector: ConnectorAdapter;
|
|
2767
|
+
|
|
2768
|
+
/**
|
|
2769
|
+
* Copy.ai connector.
|
|
2770
|
+
*
|
|
2771
|
+
* Copy.ai exposes a Workflows API: tenants design a workflow in the Copy.ai
|
|
2772
|
+
* UI (a chain of prompt + retrieval steps that produces marketing copy or
|
|
2773
|
+
* other structured text output), then external callers trigger that
|
|
2774
|
+
* workflow with a JSON input payload, poll the run for status, and read
|
|
2775
|
+
* the final outputs.
|
|
2776
|
+
*
|
|
2777
|
+
* Catalog action surface (Activepieces piece-copy-ai 0.1.3):
|
|
2778
|
+
* - run.workflow -> runWorkflowAction
|
|
2779
|
+
* - get.workflow.run.status -> getWorkflowRunStatusAction
|
|
2780
|
+
* - get.workflow.run.outputs -> getWorkflowRunOutputsAction
|
|
2781
|
+
* The catalog also declares a workflowRunCompletedTrigger which the
|
|
2782
|
+
* vendor implements as polling, not webhooks; surfacing it here would
|
|
2783
|
+
* require a poll-driver capability that this declarative-REST shape does
|
|
2784
|
+
* not model, so triggers are intentionally not exposed and the runtime
|
|
2785
|
+
* must compose status polling on top of the read capabilities below.
|
|
2786
|
+
*
|
|
2787
|
+
* Auth: tenant-issued API key, sent via the `x-copy-ai-api-key` header on
|
|
2788
|
+
* every request (Copy.ai does not accept Bearer placement).
|
|
2789
|
+
*
|
|
2790
|
+
* Consistency:
|
|
2791
|
+
* - run.workflow is LLM-backed, non-deterministic, and bills the tenant
|
|
2792
|
+
* on every invocation. CAS = `none`, externalEffect = true so the
|
|
2793
|
+
* orchestrator's dry-run policy treats it as side-effecting and
|
|
2794
|
+
* callers own dedupe (workflowRunId is server-issued so we cannot
|
|
2795
|
+
* supply a client idempotency key).
|
|
2796
|
+
* - status/outputs reads are advisory snapshots of an in-flight run.
|
|
2797
|
+
*/
|
|
2798
|
+
declare const copyAiConnector: ConnectorAdapter;
|
|
2799
|
+
|
|
2800
|
+
declare const datafuelConnector: ConnectorAdapter;
|
|
2801
|
+
|
|
2802
|
+
/**
|
|
2803
|
+
* Cryptolens adapter — Software Licensing as a Service (SLaaS).
|
|
2804
|
+
*
|
|
2805
|
+
* Auth: API key (Cryptolens access token), forwarded as the `token` form
|
|
2806
|
+
* parameter on every Web API call. The Cryptolens Web API is form-encoded
|
|
2807
|
+
* (not JSON) and exposes endpoints under https://api.cryptolens.io/api/.
|
|
2808
|
+
*
|
|
2809
|
+
* Actions mirror the activepieces catalog entry for `cryptolens`:
|
|
2810
|
+
* - add.customer → POST /api/customer/AddCustomer
|
|
2811
|
+
* - block.key → POST /api/key/BlockKey
|
|
2812
|
+
* - create.key → POST /api/key/CreateKey
|
|
2813
|
+
*
|
|
2814
|
+
* The catalog also lists a `new.api.event` trigger; triggers are out of
|
|
2815
|
+
* scope for declarative-REST adapters (the connector contract is action
|
|
2816
|
+
* surface, not webhook intake), so it is omitted here.
|
|
2817
|
+
*/
|
|
2818
|
+
declare const cryptolensConnector: ConnectorAdapter;
|
|
2819
|
+
|
|
2820
|
+
declare const copperConnector: ConnectorAdapter;
|
|
2821
|
+
|
|
2822
|
+
/**
|
|
2823
|
+
* CustomGPT (https://app.customgpt.ai) hosts no-code RAG chatbots backed by
|
|
2824
|
+
* customer-supplied corpora (sitemaps, file uploads). The public REST surface
|
|
2825
|
+
* is rooted at `/api/v1`, authenticated with a workspace API token presented
|
|
2826
|
+
* as `Authorization: Bearer <key>` — the same shape the Activepieces
|
|
2827
|
+
* piece-customgpt connector uses.
|
|
2828
|
+
*
|
|
2829
|
+
* Capabilities mirror the upstream actions array verbatim:
|
|
2830
|
+
* - createAgent → agents.create
|
|
2831
|
+
* - updateAgent → agents.update
|
|
2832
|
+
* - deleteAgent → agents.delete
|
|
2833
|
+
* - updateSettings → agents.updateSettings
|
|
2834
|
+
* - createConversation → conversations.create
|
|
2835
|
+
* - sendMessage → conversations.sendMessage
|
|
2836
|
+
* - findConversation → conversations.find
|
|
2837
|
+
* - exportConversation → conversations.export
|
|
2838
|
+
*
|
|
2839
|
+
* The `newConversation` polling trigger upstream is modelled as the read
|
|
2840
|
+
* capability `conversations.list.recent` so the agent can poll on its own
|
|
2841
|
+
* cadence without leaving the declarative-REST contract.
|
|
2842
|
+
*/
|
|
2843
|
+
declare const customgptConnector: ConnectorAdapter;
|
|
2844
|
+
|
|
2845
|
+
declare const deepseekConnector: ConnectorAdapter;
|
|
2846
|
+
|
|
2847
|
+
/**
|
|
2848
|
+
* Denser.ai connector.
|
|
2849
|
+
*
|
|
2850
|
+
* Denser.ai hosts retrieval-augmented chatbots over a tenant-supplied
|
|
2851
|
+
* document/website corpus. The external integration surface exposed by
|
|
2852
|
+
* the activepieces catalog is a single chat-query endpoint that accepts
|
|
2853
|
+
* a question, the target `chatbotId` from the Denser dashboard, and a
|
|
2854
|
+
* small set of optional generation knobs (model selection, system
|
|
2855
|
+
* prompt, citation inclusion) and returns the chatbot's synthesized
|
|
2856
|
+
* answer.
|
|
2857
|
+
*
|
|
2858
|
+
* Auth is a workspace API key delivered as a bearer token. There is no
|
|
2859
|
+
* OAuth flow — Denser does not document a 3-legged authorization grant.
|
|
2860
|
+
*
|
|
2861
|
+
* Consistency: chatbot responses are non-deterministic (LLM-backed) and
|
|
2862
|
+
* carry external billing-class effects (each call is a metered query
|
|
2863
|
+
* against the tenant's Denser plan). CAS posture is therefore `none` —
|
|
2864
|
+
* the caller owns dedupe — and `externalEffect: true` so the orchestrator
|
|
2865
|
+
* treats the call as side-effecting under dry-run policy.
|
|
2866
|
+
*/
|
|
2867
|
+
declare const denserAiConnector: ConnectorAdapter;
|
|
2868
|
+
|
|
2869
|
+
declare const devinConnector: ConnectorAdapter;
|
|
2870
|
+
|
|
2871
|
+
/**
|
|
2872
|
+
* Descript public API connector.
|
|
2873
|
+
*
|
|
2874
|
+
* Capability set mirrors the activepieces `@activepieces/piece-descript` piece:
|
|
2875
|
+
* - descript.agent.edit → POST /agent/jobs (Underlord prompt run on a project)
|
|
2876
|
+
* - descript.get.job.status → GET /agent/jobs/{id} (read job state + result URL)
|
|
2877
|
+
* - descript.get.project → GET /projects/{id} (single project fetch)
|
|
2878
|
+
* - descript.import.media → POST /projects/{id}/media (URL-import + optional composition)
|
|
2879
|
+
* - descript.list.projects → GET /projects (filter/sort)
|
|
2880
|
+
* - descript.publish.project → POST /projects/{id}/publish (export + share)
|
|
2881
|
+
*
|
|
2882
|
+
* Auth is an API key (Descript "Personal API token" in workspace settings),
|
|
2883
|
+
* sent as `Authorization: Bearer <token>` — matched by the piece's
|
|
2884
|
+
* `PieceAuth.SecretText` shape.
|
|
2885
|
+
*/
|
|
2886
|
+
declare const descriptConnector: ConnectorAdapter;
|
|
2887
|
+
|
|
2888
|
+
/**
|
|
2889
|
+
* DatoCMS Content Management API (https://www.datocms.com/docs/content-management-api).
|
|
2890
|
+
*
|
|
2891
|
+
* Auth: Bearer API token (project full-access or CMA token). The activepieces
|
|
2892
|
+
* catalog entry exposes an `apiKey` + optional `environment` (sandbox env name)
|
|
2893
|
+
* field; we model the bearer here and document the sandbox-environment header
|
|
2894
|
+
* on each capability that supports it. The CMA requires `X-Api-Version: 3` and
|
|
2895
|
+
* `Accept: application/json` on every request.
|
|
2896
|
+
*
|
|
2897
|
+
* The catalog `actions` array is empty (the activepieces piece is currently a
|
|
2898
|
+
* stub), so the capability surface below covers the documented CMA resources
|
|
2899
|
+
* we care about for an agent integration: items (records), item types
|
|
2900
|
+
* (models), uploads, environments, users, and webhooks. Reads use plural
|
|
2901
|
+
* `*.list` / singular `*.get`; mutations use REST verbs (POST/PUT/DELETE) on
|
|
2902
|
+
* the canonical CMA paths.
|
|
2903
|
+
*/
|
|
2904
|
+
declare const datocmsConnector: ConnectorAdapter;
|
|
2905
|
+
|
|
2906
|
+
declare const dittofeedConnector: ConnectorAdapter;
|
|
2907
|
+
|
|
2908
|
+
declare const documergeConnector: ConnectorAdapter;
|
|
2909
|
+
|
|
2910
|
+
/**
|
|
2911
|
+
* Doctly AI document conversion API.
|
|
2912
|
+
*
|
|
2913
|
+
* Doctly turns PDFs into markdown via an async job:
|
|
2914
|
+
* 1. POST /documents/ to upload — returns `{ id, status }`.
|
|
2915
|
+
* 2. GET /documents/{id} polls — terminal states are `COMPLETED` / `FAILED`.
|
|
2916
|
+
* A completed job exposes `output_file_url` for the markdown payload.
|
|
2917
|
+
*
|
|
2918
|
+
* Activepieces ships one curated action (`convertPdfToTextAction`) which
|
|
2919
|
+
* bundles the upload + polling loop. We expose the two real REST steps as
|
|
2920
|
+
* separate capabilities so the agent can orchestrate the poll itself (and so
|
|
2921
|
+
* a long-running upload doesn't hold a single tool call open for minutes).
|
|
2922
|
+
*
|
|
2923
|
+
* Notes:
|
|
2924
|
+
* - The `documents.create` upload is `multipart/form-data` in Activepieces.
|
|
2925
|
+
* Doctly also accepts a JSON body with a base64 `file` field (this is what
|
|
2926
|
+
* their hosted dashboard SDK calls — see api.doctly.ai/redoc). We use the
|
|
2927
|
+
* JSON path because the declarative REST runtime is JSON-only; multipart
|
|
2928
|
+
* would need a bespoke executor and the JSON variant is the same
|
|
2929
|
+
* resource.
|
|
2930
|
+
* - Bearer auth is the same Doctly secret-text API key the catalog declares.
|
|
2931
|
+
*/
|
|
2932
|
+
declare const doctlyConnector: ConnectorAdapter;
|
|
2933
|
+
|
|
2934
|
+
declare const dumplingAiConnector: ConnectorAdapter;
|
|
2935
|
+
|
|
2936
|
+
declare const dubConnector: ConnectorAdapter;
|
|
2937
|
+
|
|
2938
|
+
/**
|
|
2939
|
+
* DocumentPro connector.
|
|
2940
|
+
*
|
|
2941
|
+
* DocumentPro is an AI-powered document-processing service that extracts
|
|
2942
|
+
* structured fields from uploaded PDFs / images using either templated
|
|
2943
|
+
* Workflows or a general OCR + LLM pipeline. The customer first uploads
|
|
2944
|
+
* a file (multipart POST /v1/documents), then runs an extract Workflow
|
|
2945
|
+
* against the document_id returned by upload
|
|
2946
|
+
* (GET /v1/documents/{id}/run_parser?template_id=...).
|
|
2947
|
+
*
|
|
2948
|
+
* Auth is a per-tenant API key delivered as the `x-api-key` header — no
|
|
2949
|
+
* OAuth surface exists. The key is sent on every call.
|
|
2950
|
+
*
|
|
2951
|
+
* Why only `run.extract` is modeled here:
|
|
2952
|
+
* The activepieces piece exposes two actions, `uploaddocument` and
|
|
2953
|
+
* `run.extract`. Upload is multipart/form-data; the declarative-REST
|
|
2954
|
+
* adapter only serializes JSON bodies, so wiring upload through this
|
|
2955
|
+
* adapter would silently corrupt the request. Upload belongs in a
|
|
2956
|
+
* bespoke adapter (binary body + Blob) rather than a fake JSON shim.
|
|
2957
|
+
* `run.extract` is a clean GET with query parameters and maps directly.
|
|
2958
|
+
*
|
|
2959
|
+
* Consistency: extraction is non-deterministic (LLM-backed), each call
|
|
2960
|
+
* is metered, and there is no idempotency key on the upstream — so CAS
|
|
2961
|
+
* posture is `none` and `externalEffect: true` to keep the orchestrator
|
|
2962
|
+
* out of accidental dry-run replays. The connector advertises an
|
|
2963
|
+
* `advisory` default consistency model: a previous extract's output is
|
|
2964
|
+
* cacheable for read-after-write within a session, but the upstream is
|
|
2965
|
+
* not the authoritative store of the parsed value (the Workflow owner is).
|
|
2966
|
+
*/
|
|
2967
|
+
declare const documentproConnector: ConnectorAdapter;
|
|
2968
|
+
|
|
2969
|
+
declare const elasticEmailConnector: ConnectorAdapter;
|
|
2970
|
+
|
|
2971
|
+
/**
|
|
2972
|
+
* Eden AI connector.
|
|
2973
|
+
*
|
|
2974
|
+
* Eden AI is an aggregator API that proxies a uniform request shape to many
|
|
2975
|
+
* underlying providers (OpenAI, Cohere, Google, AWS, Microsoft, etc.). Each
|
|
2976
|
+
* endpoint accepts a `providers` field whose value is a comma-separated list
|
|
2977
|
+
* of provider keys; the first entry is the primary and any following entries
|
|
2978
|
+
* are fallbacks tried in order.
|
|
2979
|
+
*
|
|
2980
|
+
* Auth: workspace API key sent as a Bearer token on the Authorization header.
|
|
2981
|
+
* Eden does not expose an OAuth surface; the only credential is the key
|
|
2982
|
+
* minted from the dashboard at https://app.edenai.run/admin/api-settings.
|
|
2983
|
+
*
|
|
2984
|
+
* Consistency model: `advisory`. Every action mutates state on third-party
|
|
2985
|
+
* provider backends (text generated, audio synthesized, OCR billed) and Eden
|
|
2986
|
+
* does not honour an idempotency key on the aggregation endpoints, so replay
|
|
2987
|
+
* yields a fresh charge and a fresh sample. Callers own dedupe.
|
|
2988
|
+
*/
|
|
2989
|
+
declare const edenAiConnector: ConnectorAdapter;
|
|
2990
|
+
|
|
2991
|
+
/**
|
|
2992
|
+
* Easy-Peasy.AI connector.
|
|
2993
|
+
*
|
|
2994
|
+
* Easy-Peasy.AI exposes a small REST surface for AI generation tasks:
|
|
2995
|
+
* - Custom text generation through tenant-defined generators
|
|
2996
|
+
* - AI image generation across multiple model backends
|
|
2997
|
+
* - Asynchronous audio transcription against a hosted audio URL
|
|
2998
|
+
*
|
|
2999
|
+
* Catalog action surface (Activepieces piece-easy-peasy-ai 0.1.4):
|
|
3000
|
+
* - custom.generator.text -> customGeneratorText
|
|
3001
|
+
* - generate.ai.image -> generateAiImage
|
|
3002
|
+
* - get.ai.transcription -> getAiTranscription
|
|
3003
|
+
*
|
|
3004
|
+
* Auth: tenant-issued API key, sent in the Authorization header as
|
|
3005
|
+
* `Bearer <key>` on every request.
|
|
3006
|
+
*
|
|
3007
|
+
* Consistency:
|
|
3008
|
+
* - All three operations are LLM/model-backed, non-deterministic, and
|
|
3009
|
+
* billed per call. CAS = `none`, externalEffect = true so the
|
|
3010
|
+
* orchestrator treats them as side-effecting and the caller owns
|
|
3011
|
+
* dedupe (Easy-Peasy.AI does not accept a client idempotency key).
|
|
3012
|
+
* - Transcription returns asynchronously: the create call returns a job
|
|
3013
|
+
* handle and the read capability is used to poll the result.
|
|
3014
|
+
*/
|
|
3015
|
+
declare const easyPeasyAiConnector: ConnectorAdapter;
|
|
3016
|
+
|
|
3017
|
+
declare const dustConnector: ConnectorAdapter;
|
|
3018
|
+
|
|
3019
|
+
declare const emailoctopusConnector: ConnectorAdapter;
|
|
3020
|
+
|
|
3021
|
+
declare const emailitConnector: ConnectorAdapter;
|
|
3022
|
+
|
|
3023
|
+
declare const esignaturesConnector: ConnectorAdapter;
|
|
3024
|
+
|
|
3025
|
+
declare const firefliesAiConnector: ConnectorAdapter;
|
|
3026
|
+
|
|
3027
|
+
declare const firecrawlConnector: ConnectorAdapter;
|
|
3028
|
+
|
|
3029
|
+
declare const fathomAnalyticsConnector: ConnectorAdapter;
|
|
3030
|
+
|
|
3031
|
+
declare const enrichlayerConnector: ConnectorAdapter;
|
|
3032
|
+
|
|
3033
|
+
declare const fathomConnector: ConnectorAdapter;
|
|
3034
|
+
|
|
3035
|
+
declare const filloutFormsConnector: ConnectorAdapter;
|
|
3036
|
+
|
|
3037
|
+
declare const facebookLeadsConnector: ConnectorAdapter;
|
|
3038
|
+
|
|
3039
|
+
declare const fireberryConnector: ConnectorAdapter;
|
|
3040
|
+
|
|
3041
|
+
declare const flowluConnector: ConnectorAdapter;
|
|
3042
|
+
|
|
3043
|
+
declare const flowiseConnector: ConnectorAdapter;
|
|
3044
|
+
|
|
3045
|
+
/**
|
|
3046
|
+
* Flipando AI connector.
|
|
3047
|
+
*
|
|
3048
|
+
* Flipando is a no-code platform for assembling LLM-backed "Apps" — small
|
|
3049
|
+
* prompt-and-tool pipelines a workspace owner has provisioned in the
|
|
3050
|
+
* Flipando UI. The external surface lets a caller list the workspace's
|
|
3051
|
+
* apps, run a configured app against an input payload, poll the resulting
|
|
3052
|
+
* async task, and (for the generator surface) ask Flipando to scaffold a
|
|
3053
|
+
* brand-new app from a high-level description.
|
|
3054
|
+
*
|
|
3055
|
+
* Auth is a tenant-issued API key delivered as a bearer token; there is no
|
|
3056
|
+
* OAuth flow. The category in the activepieces catalog is "workflow", which
|
|
3057
|
+
* the connector manifest does not enumerate, so the closest accurate UI
|
|
3058
|
+
* bucket is `other`.
|
|
3059
|
+
*
|
|
3060
|
+
* Consistency: `runApp`, `runAppGenerator`, and any path that triggers an
|
|
3061
|
+
* LLM call is non-deterministic, metered, and externally-effecting. CAS
|
|
3062
|
+
* posture is `none` (the caller owns dedupe) and `externalEffect: true`
|
|
3063
|
+
* so the orchestrator's dry-run policy refuses to execute these in
|
|
3064
|
+
* preview mode. `getTask` and `getAllApps` are pure reads.
|
|
3065
|
+
*/
|
|
3066
|
+
declare const flipandoConnector: ConnectorAdapter;
|
|
3067
|
+
|
|
3068
|
+
declare const folkConnector: ConnectorAdapter;
|
|
3069
|
+
|
|
3070
|
+
declare const formbricksConnector: ConnectorAdapter;
|
|
3071
|
+
|
|
3072
|
+
declare const formstackConnector: ConnectorAdapter;
|
|
3073
|
+
|
|
3074
|
+
/**
|
|
3075
|
+
* Foreplay.co (https://public.api.foreplay.co/api).
|
|
3076
|
+
*
|
|
3077
|
+
* Foreplay is a creative ad library / "swipe file" tool for marketers: it
|
|
3078
|
+
* archives Facebook, Instagram, TikTok, and YouTube ads, lets users save them
|
|
3079
|
+
* into boards ("swipe files"), and tracks competitor brands via "Spyder".
|
|
3080
|
+
*
|
|
3081
|
+
* Auth: a single API key, passed in the `Authorization` header. The
|
|
3082
|
+
* activepieces catalog entry exposes only the auth shape — no actions or
|
|
3083
|
+
* triggers — so the surface below maps the documented public REST resources:
|
|
3084
|
+
* discovery (ad search), ad detail lookup, brand search and ad-by-brand
|
|
3085
|
+
* fetches, swipe-files (boards) listing and item membership, and Spyder
|
|
3086
|
+
* (tracked brand) management.
|
|
3087
|
+
*/
|
|
3088
|
+
declare const foreplayCoConnector: ConnectorAdapter;
|
|
3089
|
+
|
|
3090
|
+
/**
|
|
3091
|
+
* Fountain ATS (https://developer.fountain.com).
|
|
3092
|
+
*
|
|
3093
|
+
* HR hiring + onboarding platform. Auth is an API key obtained from
|
|
3094
|
+
* Profile > Manage API Keys (or Settings > Integrations & API Keys),
|
|
3095
|
+
* sent as `X-ACCESS-TOKEN: <apiKey>` per Fountain's REST conventions.
|
|
3096
|
+
*
|
|
3097
|
+
* Default base URL is https://api.fountain.com/v2; the catalog notes
|
|
3098
|
+
* regional deployments such as us-2.fountain.com/api/v2 — callers that
|
|
3099
|
+
* need a regional host should override via metadata.baseUrl.
|
|
3100
|
+
*/
|
|
3101
|
+
declare const fountainConnector: ConnectorAdapter;
|
|
3102
|
+
|
|
3103
|
+
declare const mailercheckConnector: ConnectorAdapter;
|
|
3104
|
+
|
|
3105
|
+
declare const freshsalesConnector: ConnectorAdapter;
|
|
3106
|
+
|
|
3107
|
+
/**
|
|
3108
|
+
* Frame.io (Adobe) collaborative video-review workspace
|
|
3109
|
+
* (https://developer.frame.io). The activepieces catalog entry lists no
|
|
3110
|
+
* explicit actions, so the surface below maps the documented v2 REST API
|
|
3111
|
+
* (https://api.frame.io/v2): account/team/project navigation, asset CRUD,
|
|
3112
|
+
* comments, and review links.
|
|
3113
|
+
*
|
|
3114
|
+
* Auth is api-key — Frame.io developer tokens are personal-access tokens
|
|
3115
|
+
* sent as `Authorization: Bearer <token>`. The catalog records
|
|
3116
|
+
* account_id + team_id auth fields so callers can scope subsequent
|
|
3117
|
+
* project/asset operations to a single workspace.
|
|
3118
|
+
*/
|
|
3119
|
+
declare const frameConnector: ConnectorAdapter;
|
|
3120
|
+
|
|
3121
|
+
declare const fragmentConnector: ConnectorAdapter;
|
|
3122
|
+
|
|
3123
|
+
/**
|
|
3124
|
+
* Gameball adapter — REST API at https://api.gameball.co/api/v3.0.
|
|
3125
|
+
*
|
|
3126
|
+
* Auth: API key forwarded in the `apiKey` request header. Gameball does not
|
|
3127
|
+
* accept Authorization bearer tokens for the integration endpoints.
|
|
3128
|
+
*
|
|
3129
|
+
* Actions mirror the activepieces catalog entry for `gameball`: a single
|
|
3130
|
+
* `send.event` mutation that posts an event tied to a player. The catalog
|
|
3131
|
+
* exposes only one upstream action (`sendEvent`); additional reads here
|
|
3132
|
+
* (player lookup, balance) are intentionally omitted to stay 1:1 with the
|
|
3133
|
+
* catalog surface.
|
|
3134
|
+
*/
|
|
3135
|
+
declare const gameballConnector: ConnectorAdapter;
|
|
3136
|
+
|
|
3137
|
+
declare const freeAgentConnector: ConnectorAdapter;
|
|
3138
|
+
|
|
3139
|
+
declare const freshserviceConnector: ConnectorAdapter;
|
|
3140
|
+
|
|
3141
|
+
declare const ghostcmsConnector: ConnectorAdapter;
|
|
3142
|
+
|
|
3143
|
+
/**
|
|
3144
|
+
* Gistly connector.
|
|
3145
|
+
*
|
|
3146
|
+
* Gistly (gist.ly) is a hosted YouTube-transcript API. A caller hands it a
|
|
3147
|
+
* YouTube video URL and receives the transcript either as timestamped chunks
|
|
3148
|
+
* or merged into a single text blob.
|
|
3149
|
+
*
|
|
3150
|
+
* Auth: a tenant-issued API key delivered in the `x-api-key` request header.
|
|
3151
|
+
* No OAuth, no refresh — the key is long-lived and rotated out-of-band in the
|
|
3152
|
+
* Gistly dashboard.
|
|
3153
|
+
*
|
|
3154
|
+
* Category: the activepieces catalog labels Gistly as `workflow`, which the
|
|
3155
|
+
* connector manifest does not enumerate. The closest accurate UI bucket is
|
|
3156
|
+
* `other`.
|
|
3157
|
+
*
|
|
3158
|
+
* Consistency: every action is a pure read against a third-party transcript
|
|
3159
|
+
* cache. There is no resource we own that needs CAS, and the upstream YouTube
|
|
3160
|
+
* transcript content is what it is — repeated calls return the same payload.
|
|
3161
|
+
* `authoritative` is correct because Gistly's response is the source of truth
|
|
3162
|
+
* for the transcript value at the time of the call; there is no local mirror
|
|
3163
|
+
* to reconcile.
|
|
3164
|
+
*/
|
|
3165
|
+
declare const gistlyConnector: ConnectorAdapter;
|
|
3166
|
+
|
|
3167
|
+
/**
|
|
3168
|
+
* Google Search Console — site verification, sitemap management, search analytics,
|
|
3169
|
+
* and URL inspection over the Webmasters / Search Console API.
|
|
3170
|
+
*
|
|
3171
|
+
* Auth model: standard Google OAuth2 with the `webmasters` scope. Search Console
|
|
3172
|
+
* exposes two scopes: `webmasters.readonly` (read everything) and `webmasters`
|
|
3173
|
+
* (read + sitemap management + site add/delete). The activepieces piece covers
|
|
3174
|
+
* destructive actions (addSite, deleteSite, submitSitemap), so we request the
|
|
3175
|
+
* full `webmasters` scope. URL Inspection has its own implicit grant: the
|
|
3176
|
+
* inspection endpoint requires `webmasters.readonly` at minimum, and the
|
|
3177
|
+
* `webmasters` scope is a superset.
|
|
3178
|
+
*
|
|
3179
|
+
* Site identifier: every Search Console endpoint is keyed by a `siteUrl` —
|
|
3180
|
+
* either a URL-prefix property (e.g. `https://example.com/`) or a domain
|
|
3181
|
+
* property (e.g. `sc-domain:example.com`). The literal string is encoded into
|
|
3182
|
+
* the path segment; callers pass it verbatim and the declarative-rest runtime
|
|
3183
|
+
* URL-encodes the path segment substitution.
|
|
3184
|
+
*
|
|
3185
|
+
* Consistency: Search Console is an analytics surface backed by Google's
|
|
3186
|
+
* indexing pipeline. Search Analytics data is typically delayed 2–3 days and
|
|
3187
|
+
* the URL inspection result reflects the last time Googlebot crawled the URL,
|
|
3188
|
+
* so we mark this connector as `cache` — agents should not treat its output
|
|
3189
|
+
* as a real-time mirror of the live site.
|
|
3190
|
+
*/
|
|
3191
|
+
declare const googleSearchConsoleConnector: ConnectorAdapter;
|
|
3192
|
+
|
|
3193
|
+
/**
|
|
3194
|
+
* Google Cloud Storage connector — buckets, objects, and ACLs.
|
|
3195
|
+
*
|
|
3196
|
+
* Auth is Google's standard OAuth2 user-grant flow:
|
|
3197
|
+
* - authorize at https://accounts.google.com/o/oauth2/v2/auth
|
|
3198
|
+
* - exchange / refresh at https://oauth2.googleapis.com/token
|
|
3199
|
+
*
|
|
3200
|
+
* The activepieces catalog declares `auth: oauth2` with access_token +
|
|
3201
|
+
* refresh_token credential fields, which maps onto the offline-access
|
|
3202
|
+
* variant of the user-grant flow (refresh tokens are minted when the
|
|
3203
|
+
* authorize call includes `access_type=offline&prompt=consent`).
|
|
3204
|
+
*
|
|
3205
|
+
* Scope picked: `devstorage.full_control`. The catalog exposes both
|
|
3206
|
+
* read and write actions (createBucket, deleteEmptyBucket, cloneObject,
|
|
3207
|
+
* deleteObject, createObjectAcl, deleteObjectAcl, createBucketAcl,
|
|
3208
|
+
* deleteBucketAcl, createBucketDefaultObjectAcl,
|
|
3209
|
+
* deleteBucketDefaultObjectAcl, searchObjects, searchBuckets) plus ACL
|
|
3210
|
+
* mutations on both buckets and objects. `read_only` cannot satisfy the
|
|
3211
|
+
* mutation surface, and `read_write` cannot satisfy the ACL surface;
|
|
3212
|
+
* `full_control` is the smallest scope that covers everything declared
|
|
3213
|
+
* in the catalog. Adapters that only need read access should override
|
|
3214
|
+
* `requiredScopes` per-capability via the runtime grant model.
|
|
3215
|
+
*
|
|
3216
|
+
* Action surface mirrors the activepieces catalog 1:1:
|
|
3217
|
+
* Buckets:
|
|
3218
|
+
* - buckets.search List buckets in a project.
|
|
3219
|
+
* - buckets.create Insert a new bucket.
|
|
3220
|
+
* - buckets.delete_empty Delete an empty bucket.
|
|
3221
|
+
* Objects:
|
|
3222
|
+
* - objects.search List objects in a bucket.
|
|
3223
|
+
* - objects.clone Server-side copy of an object.
|
|
3224
|
+
* - objects.delete Delete an object (or object version).
|
|
3225
|
+
* Bucket ACLs (the bucket-level ACL collection):
|
|
3226
|
+
* - bucket_acl.create
|
|
3227
|
+
* - bucket_acl.delete
|
|
3228
|
+
* Bucket default object ACLs (applied to newly-created objects):
|
|
3229
|
+
* - bucket_default_object_acl.create
|
|
3230
|
+
* - bucket_default_object_acl.delete
|
|
3231
|
+
* Object ACLs (per-object ACL collection):
|
|
3232
|
+
* - object_acl.create
|
|
3233
|
+
* - object_acl.delete
|
|
3234
|
+
*
|
|
3235
|
+
* Triggers (newObjectCreated, objectUpdated) are NOT modeled here. GCS
|
|
3236
|
+
* does not push webhooks for object-change events to arbitrary HTTPS
|
|
3237
|
+
* sinks without a Pub/Sub notification configuration; the activepieces
|
|
3238
|
+
* triggers poll the bucket listing. Polling triggers belong in a poller
|
|
3239
|
+
* adapter, not a request/response adapter, so they are intentionally
|
|
3240
|
+
* omitted.
|
|
3241
|
+
*
|
|
3242
|
+
* Consistency model is `authoritative`: the GCS JSON API returns the
|
|
3243
|
+
* canonical post-write resource representation on every successful 2xx,
|
|
3244
|
+
* including the `generation` (object version) and `metageneration`
|
|
3245
|
+
* counters used for optimistic concurrency. The adapter relies on the
|
|
3246
|
+
* response body as the source of truth for write outcomes.
|
|
3247
|
+
*
|
|
3248
|
+
* CAS:
|
|
3249
|
+
* - Creates use `native-idempotency`. GCS's object insert accepts the
|
|
3250
|
+
* `ifGenerationMatch=0` precondition to make creation conditional on
|
|
3251
|
+
* the destination not already existing; bucket inserts surface 409
|
|
3252
|
+
* on (project, name) collisions, which the declarative layer maps to
|
|
3253
|
+
* `{ status: 'conflict' }`.
|
|
3254
|
+
* - Deletes use `etag-if-match`. Bucket and object deletes accept
|
|
3255
|
+
* `ifMetagenerationMatch` / `ifGenerationMatch` query preconditions;
|
|
3256
|
+
* when the runtime carries an `etag` from a prior read, it threads it
|
|
3257
|
+
* onto the delete request. ACL deletes are scoped by (bucket, entity)
|
|
3258
|
+
* so collisions are well-defined.
|
|
3259
|
+
*
|
|
3260
|
+
* Base URL is `https://storage.googleapis.com/storage/v1`. Cloud Storage
|
|
3261
|
+
* also exposes an XML API at storage.googleapis.com root, but the
|
|
3262
|
+
* activepieces piece (and the rest action set above) targets the JSON
|
|
3263
|
+
* API exclusively.
|
|
3264
|
+
*/
|
|
3265
|
+
declare const googleCloudStorageConnector: ConnectorAdapter;
|
|
3266
|
+
|
|
3267
|
+
/**
|
|
3268
|
+
* Google BigQuery connector — Query, analyze, and stream data into BigQuery
|
|
3269
|
+
* via the public bigquery.googleapis.com REST surface.
|
|
3270
|
+
*
|
|
3271
|
+
* Connection metadata required:
|
|
3272
|
+
* - projectId: the GCP project that owns the dataset.
|
|
3273
|
+
* - datasetId: the dataset (default scope for table-level operations).
|
|
3274
|
+
*
|
|
3275
|
+
* Authorization: OAuth2 against Google's standard endpoints with the
|
|
3276
|
+
* BigQuery read/write scope. Refresh-token flow is handled by the
|
|
3277
|
+
* declarative-rest runtime; the catalog's authFields (access_token /
|
|
3278
|
+
* refresh_token) map to the oauth2 ConnectorCredentials variant.
|
|
3279
|
+
*
|
|
3280
|
+
* Capability naming maps onto the activepieces piece's actions:
|
|
3281
|
+
* run.query → query.run
|
|
3282
|
+
* create.row / create.rows → rows.insert.one / rows.insert.many (tabledata.insertAll)
|
|
3283
|
+
* delete.rows → rows.delete (DML)
|
|
3284
|
+
* update.rows → rows.update (DML)
|
|
3285
|
+
* find.one.row → rows.findOne
|
|
3286
|
+
* find.or.create.row → rows.findOrCreate
|
|
3287
|
+
* get.rows.for.job → jobs.getQueryResults
|
|
3288
|
+
* import.data → jobs.load
|
|
3289
|
+
*
|
|
3290
|
+
* Docs:
|
|
3291
|
+
* - https://cloud.google.com/bigquery/docs/reference/rest
|
|
3292
|
+
* - https://developers.google.com/identity/protocols/oauth2/scopes#bigquery
|
|
3293
|
+
*/
|
|
3294
|
+
declare const googleBigqueryConnector: ConnectorAdapter;
|
|
3295
|
+
|
|
3296
|
+
declare const googleSearchConnector: ConnectorAdapter;
|
|
3297
|
+
|
|
3298
|
+
/**
|
|
3299
|
+
* Google Contacts — OAuth2 Bearer against people.googleapis.com (People API v1).
|
|
3300
|
+
*
|
|
3301
|
+
* The People API is the supported successor to the deprecated Contacts API
|
|
3302
|
+
* v3 and is the surface that Google's own "Contacts" UI, Gmail's address
|
|
3303
|
+
* book, and Workspace's directory share. Every resource is keyed by
|
|
3304
|
+
* `people/{contactId}` (for personal contacts) or `people/{directoryId}`
|
|
3305
|
+
* (for directory entries the user can read). Mutating endpoints require
|
|
3306
|
+
* an `updatePersonFields` mask (PATCH) or a typed body (POST/DELETE) and
|
|
3307
|
+
* use the `Etag` field on the Person resource for optimistic concurrency.
|
|
3308
|
+
*
|
|
3309
|
+
* Scopes:
|
|
3310
|
+
* - contacts — read + write personal contacts
|
|
3311
|
+
* - contacts.readonly — read personal contacts (used for low-risk reads)
|
|
3312
|
+
* - contacts.other.readonly — read "Other contacts" auto-imported from
|
|
3313
|
+
* Gmail / Calendar interactions
|
|
3314
|
+
* - directory.readonly — read the Workspace directory (org users)
|
|
3315
|
+
* - userinfo.email — used by the test request below
|
|
3316
|
+
*
|
|
3317
|
+
* See https://developers.google.com/people/api/rest/v1 .
|
|
3318
|
+
*/
|
|
3319
|
+
declare const googleContactsConnector: ConnectorAdapter;
|
|
3320
|
+
|
|
3321
|
+
declare const googlechatConnector: ConnectorAdapter;
|
|
3322
|
+
|
|
3323
|
+
declare const googleMyBusinessConnector: ConnectorAdapter;
|
|
3324
|
+
|
|
3325
|
+
declare const googleTasksConnector: ConnectorAdapter;
|
|
3326
|
+
|
|
3327
|
+
declare const greenptConnector: ConnectorAdapter;
|
|
3328
|
+
|
|
3329
|
+
declare const greipConnector: ConnectorAdapter;
|
|
3330
|
+
|
|
3331
|
+
/**
|
|
3332
|
+
* GuideLite (https://guidelite.ai) is a hosted assistant platform that lets
|
|
3333
|
+
* organizations build AI assistants and embed them in lead-capture and
|
|
3334
|
+
* workflow surfaces. The public REST surface is rooted at `/api/v1` and
|
|
3335
|
+
* authenticated with an API key presented as `Authorization: Bearer <key>` —
|
|
3336
|
+
* the same shape the Activepieces `piece-guidelite` connector uses.
|
|
3337
|
+
*
|
|
3338
|
+
* Capabilities mirror the upstream actions array verbatim:
|
|
3339
|
+
* - sendAPrompt → assistant.sendPrompt
|
|
3340
|
+
*
|
|
3341
|
+
* The upstream `newLeadSubmission` trigger is a polling trigger; the
|
|
3342
|
+
* declarative-REST connector models it as a read capability so the agent can
|
|
3343
|
+
* poll for new lead submissions on its own schedule.
|
|
3344
|
+
*
|
|
3345
|
+
* The catalog category is "workflow", which is not a value in the connector
|
|
3346
|
+
* manifest's category union — `other` is the documented fallback for hosted
|
|
3347
|
+
* workflow platforms (matches AgentX and other Activepieces workflow pieces).
|
|
3348
|
+
*/
|
|
3349
|
+
declare const guideliteConnector: ConnectorAdapter;
|
|
3350
|
+
|
|
3351
|
+
/**
|
|
3352
|
+
* Hastewire (https://hastewire.com) is an AI-text humanizer service. The
|
|
3353
|
+
* Activepieces piece exposes two actions backed by the public REST API:
|
|
3354
|
+
* - detectTextAction → detect.text (classify text as AI- vs human-written)
|
|
3355
|
+
* - humanizeTextAction → humanize.text (rewrite AI-sounding text to read human)
|
|
3356
|
+
*
|
|
3357
|
+
* Both endpoints accept the input text in the request body and are authenticated
|
|
3358
|
+
* with a personal API key delivered as `Authorization: Bearer <key>`, matching
|
|
3359
|
+
* the api_key auth shape declared in the catalog. The catalog declares no
|
|
3360
|
+
* triggers, so the manifest below is purely action-driven.
|
|
3361
|
+
*
|
|
3362
|
+
* The catalog category is "workflow" upstream; the connector category enum
|
|
3363
|
+
* does not include `workflow`, so we map it to `other` (same choice the other
|
|
3364
|
+
* AI-text utility adapters make — see avian, afforai, alttextify).
|
|
3365
|
+
*/
|
|
3366
|
+
declare const hastewireConnector: ConnectorAdapter;
|
|
3367
|
+
|
|
3368
|
+
/**
|
|
3369
|
+
* HeyGen connector.
|
|
3370
|
+
*
|
|
3371
|
+
* Authentication: workspace API key delivered via the `X-Api-Key` header. HeyGen
|
|
3372
|
+
* does not publish a third-party OAuth surface, so api-key is the only honest
|
|
3373
|
+
* placement; sending it as Bearer would silently 401 on the v1 endpoints.
|
|
3374
|
+
*
|
|
3375
|
+
* Endpoint surface: the public v1/v2 split is real — template generation and
|
|
3376
|
+
* avatar/voice listing live under v2 while status, listing, translation, asset
|
|
3377
|
+
* upload, and share-link minting live under v1. We declare the path version
|
|
3378
|
+
* inline per capability to keep the wire contract auditable from this file.
|
|
3379
|
+
*
|
|
3380
|
+
* Async generation contract: `videos.createFromTemplate` and `videos.translate`
|
|
3381
|
+
* both return a `video_id` (or `video_translate_id`) immediately; the actual
|
|
3382
|
+
* rendered MP4 is produced by the downstream pipeline. Callers MUST poll the
|
|
3383
|
+
* matching `*.status` capability — there is no synchronous result. The
|
|
3384
|
+
* `cas: 'native-idempotency'` annotation reflects that submitting the same
|
|
3385
|
+
* payload twice creates two render jobs, which is why the orchestrator must
|
|
3386
|
+
* supply an idempotency token; HeyGen itself does not deduplicate.
|
|
3387
|
+
*/
|
|
3388
|
+
declare const heygenConnector: ConnectorAdapter;
|
|
3389
|
+
|
|
3390
|
+
declare const hashiCorpVaultConnector: ConnectorAdapter;
|
|
3391
|
+
|
|
3392
|
+
declare const harvestConnector: ConnectorAdapter;
|
|
3393
|
+
|
|
3394
|
+
declare const heymarketSmsConnector: ConnectorAdapter;
|
|
3395
|
+
|
|
3396
|
+
declare const housecallProConnector: ConnectorAdapter;
|
|
3397
|
+
|
|
3398
|
+
declare const influencersClubConnector: ConnectorAdapter;
|
|
3399
|
+
|
|
3400
|
+
declare const hunterConnector: ConnectorAdapter;
|
|
3401
|
+
|
|
3402
|
+
/**
|
|
3403
|
+
* Hugging Face Inference connector.
|
|
3404
|
+
*
|
|
3405
|
+
* Authentication: a user/workspace access token (`hf_…`) delivered as a
|
|
3406
|
+
* `Bearer` credential in the `Authorization` header. There is no 3-legged
|
|
3407
|
+
* OAuth surface on the inference endpoint.
|
|
3408
|
+
*
|
|
3409
|
+
* Endpoint surface: model-scoped task inference (`/models/{model_id}`) for
|
|
3410
|
+
* the classic serverless Inference API, plus the OpenAI-compatible chat
|
|
3411
|
+
* completions route exposed by the Hugging Face Inference Router. Every
|
|
3412
|
+
* task is a `POST` against the per-model URL with a task-shaped JSON body.
|
|
3413
|
+
*
|
|
3414
|
+
* Mapping to the activepieces catalog actions (verified against
|
|
3415
|
+
* `activepieces-catalog.json` → `id: "hugging-face"`):
|
|
3416
|
+
* - documentQuestionAnswering → document-question-answering
|
|
3417
|
+
* - languageTranslation → translation
|
|
3418
|
+
* - textClassification → text-classification
|
|
3419
|
+
* - textSummarization → summarization
|
|
3420
|
+
* - chatCompletion → router /v1/chat/completions
|
|
3421
|
+
* - createImage → text-to-image
|
|
3422
|
+
* - objectDetection → object-detection
|
|
3423
|
+
* - imageClassification → image-classification
|
|
3424
|
+
*
|
|
3425
|
+
* Inference is non-idempotent (each call samples a fresh output) and has
|
|
3426
|
+
* an external billing effect, so mutation capabilities declare `cas: 'none'`
|
|
3427
|
+
* and `externalEffect: true`. Read-only metadata lookups against the Hub
|
|
3428
|
+
* model registry are exposed as `read` capabilities.
|
|
3429
|
+
*/
|
|
3430
|
+
declare const huggingFaceConnector: ConnectorAdapter;
|
|
3431
|
+
|
|
3432
|
+
declare const insightlyConnector: ConnectorAdapter;
|
|
3433
|
+
|
|
3434
|
+
declare const instantlyAiConnector: ConnectorAdapter;
|
|
3435
|
+
|
|
3436
|
+
/**
|
|
3437
|
+
* ImageRouter connector.
|
|
3438
|
+
*
|
|
3439
|
+
* ImageRouter is a model-routing API that exposes many third-party image
|
|
3440
|
+
* generation and image-edit models behind a single OpenAI-compatible surface.
|
|
3441
|
+
* Authentication is a workspace API key delivered via the `Authorization:
|
|
3442
|
+
* Bearer` header — the activepieces piece declares `auth: "api_key"`, and the
|
|
3443
|
+
* upstream `/v1/openai/*` endpoints reject non-Bearer placements, so api-key
|
|
3444
|
+
* with bearer placement is the only honest wiring.
|
|
3445
|
+
*
|
|
3446
|
+
* Endpoint surface mirrors the OpenAI Images API: `POST /v1/openai/images/generations`
|
|
3447
|
+
* for text->image (`createImage`) and `POST /v1/openai/images/edits` for
|
|
3448
|
+
* image->image (`imageToImage`). Both return a JSON envelope with a `data[]`
|
|
3449
|
+
* array of `{ url }` or `{ b64_json }` objects depending on `response_format`.
|
|
3450
|
+
*
|
|
3451
|
+
* Mutation semantics: image generation is non-idempotent — re-submitting the
|
|
3452
|
+
* same prompt produces a fresh render and burns credits. We declare
|
|
3453
|
+
* `cas: 'native-idempotency'` so the orchestrator supplies an idempotency
|
|
3454
|
+
* token; ImageRouter itself does not deduplicate. `externalEffect: true`
|
|
3455
|
+
* because successful calls consume billable model credits even when the
|
|
3456
|
+
* caller drops the response.
|
|
3457
|
+
*
|
|
3458
|
+
* The activepieces piece declares only write actions (no triggers, no reads);
|
|
3459
|
+
* we additionally expose `models.list` because it is the canonical
|
|
3460
|
+
* authenticated probe (cheap, no credit consumption) and the agent needs a
|
|
3461
|
+
* concrete model id to populate `createImage.model`.
|
|
3462
|
+
*/
|
|
3463
|
+
declare const imageRouterConnector: ConnectorAdapter;
|
|
3464
|
+
|
|
3465
|
+
declare const jinaAiConnector: ConnectorAdapter;
|
|
3466
|
+
|
|
3467
|
+
declare const invoiceninjaConnector: ConnectorAdapter;
|
|
3468
|
+
|
|
3469
|
+
declare const jiraDataCenterConnector: ConnectorAdapter;
|
|
3470
|
+
|
|
3471
|
+
declare const justInvoiceConnector: ConnectorAdapter;
|
|
3472
|
+
|
|
3473
|
+
declare const jiraCloudConnector: ConnectorAdapter;
|
|
3474
|
+
|
|
3475
|
+
/**
|
|
3476
|
+
* Jogg AI — AI-generated avatar video and product-content platform.
|
|
3477
|
+
*
|
|
3478
|
+
* Authentication: workspace API key delivered in the `x-api-key` header.
|
|
3479
|
+
*
|
|
3480
|
+
* The v1 surface covers four resource families:
|
|
3481
|
+
* - avatars / photos (avatar.photo.create, avatar.video.create)
|
|
3482
|
+
* - product knowledge (product.create.from_url, product.create.from_info, product.update)
|
|
3483
|
+
* - generated-video polling (video.get)
|
|
3484
|
+
* - media + template-driven video (media.upload, video.create.from_template)
|
|
3485
|
+
*
|
|
3486
|
+
* Video generation is asynchronous: the create.* mutations return a
|
|
3487
|
+
* `video_id`; the caller polls `video.get` until status === completed.
|
|
3488
|
+
* The webhook-style triggers (video.generated.successfully /
|
|
3489
|
+
* video.generation.failed) are catalogued but not modelled here — the
|
|
3490
|
+
* declarative-REST shape only carries request/response capabilities; webhook
|
|
3491
|
+
* delivery is wired in the connector runtime layer.
|
|
3492
|
+
*/
|
|
3493
|
+
declare const joggAiConnector: ConnectorAdapter;
|
|
3494
|
+
|
|
3495
|
+
declare const jotformConnector: ConnectorAdapter;
|
|
3496
|
+
|
|
3497
|
+
declare const kizeoFormsConnector: ConnectorAdapter;
|
|
3498
|
+
|
|
3499
|
+
declare const kapsoConnector: ConnectorAdapter;
|
|
3500
|
+
|
|
3501
|
+
/**
|
|
3502
|
+
* Kimai is a self-hosted time-tracking application. Each tenant runs its
|
|
3503
|
+
* own instance, so the base URL is sourced from connection metadata
|
|
3504
|
+
* (`instanceUrl`, e.g. `https://demo.kimai.org`). API access uses the
|
|
3505
|
+
* legacy `X-AUTH-USER` / `X-AUTH-TOKEN` header pair documented in the
|
|
3506
|
+
* Kimai REST docs at `/api/doc`; the api-key credential carries the
|
|
3507
|
+
* token, and the username is supplied via metadata.
|
|
3508
|
+
*/
|
|
3509
|
+
declare const kimaiConnector: ConnectorAdapter;
|
|
3510
|
+
|
|
3511
|
+
declare const kissflowConnector: ConnectorAdapter;
|
|
3512
|
+
|
|
3513
|
+
declare const klentyConnector: ConnectorAdapter;
|
|
3514
|
+
|
|
3515
|
+
declare const knackConnector: ConnectorAdapter;
|
|
3516
|
+
|
|
3517
|
+
/**
|
|
3518
|
+
* Ko-fi connector.
|
|
3519
|
+
*
|
|
3520
|
+
* Ko-fi is a creator-monetization platform (donations, monthly subscriptions,
|
|
3521
|
+
* commissions, shop orders). The activepieces `ko-fi` piece is a triggers-only
|
|
3522
|
+
* piece — the documented integration surface is webhook delivery:
|
|
3523
|
+
*
|
|
3524
|
+
* 1. Creator pastes a verification token in Ko-fi → More → API.
|
|
3525
|
+
* 2. Ko-fi POSTs a JSON envelope to the configured webhook URL whenever
|
|
3526
|
+
* a Donation / Subscription / Commission / ShopOrder event occurs.
|
|
3527
|
+
* 3. The receiver verifies `verification_token` matches and dispatches.
|
|
3528
|
+
*
|
|
3529
|
+
* The catalog's auth shape — `api_key` with a single `instructions` field —
|
|
3530
|
+
* encodes that same token. We model it as `api-key` and document the
|
|
3531
|
+
* webhook-setup steps in the auth hint so the user gets actionable guidance
|
|
3532
|
+
* at connect-time.
|
|
3533
|
+
*
|
|
3534
|
+
* Capabilities expose the four trigger event types (`new.donation`,
|
|
3535
|
+
* `new.subscription`, `new.commission`, `new.shop.order`) as `read` operations
|
|
3536
|
+
* against Ko-fi's webhook-event ledger. The ledger URLs follow the
|
|
3537
|
+
* `https://ko-fi.com/api/v1/...` convention documented on the Ko-fi developer
|
|
3538
|
+
* portal; the per-creator base URL is held in `metadata.creatorBaseUrl` so a
|
|
3539
|
+
* caller targeting a specific creator's storefront does not collide with
|
|
3540
|
+
* another tenant's events.
|
|
3541
|
+
*
|
|
3542
|
+
* The verify-webhook mutation acks an inbound webhook payload back to Ko-fi
|
|
3543
|
+
* for replay protection — Ko-fi's verification_token is sent inside the
|
|
3544
|
+
* payload, not as a header, so the connector forwards it through the body.
|
|
3545
|
+
*/
|
|
3546
|
+
declare const koFiConnector: ConnectorAdapter;
|
|
3547
|
+
|
|
3548
|
+
declare const kudosityConnector: ConnectorAdapter;
|
|
3549
|
+
|
|
3550
|
+
/**
|
|
3551
|
+
* Leap AI (Workflows) connector.
|
|
3552
|
+
*
|
|
3553
|
+
* Leap AI exposes a hosted workflow runtime — a tenant defines a workflow
|
|
3554
|
+
* in the Leap dashboard (an arbitrary chain of model + tool steps) and
|
|
3555
|
+
* invokes it externally via a workflow ID. The integration surface is
|
|
3556
|
+
* therefore two endpoints: kick off a workflow run with an input object,
|
|
3557
|
+
* and fetch the status / output of a prior run by run ID.
|
|
3558
|
+
*
|
|
3559
|
+
* Auth is a tenant-issued API key delivered as a bearer token. There is
|
|
3560
|
+
* no OAuth surface.
|
|
3561
|
+
*
|
|
3562
|
+
* Consistency: workflows are non-deterministic (LLM- and tool-backed) and
|
|
3563
|
+
* each run carries external billing-class effects. Runs are async — the
|
|
3564
|
+
* caller polls the get-run endpoint until the run reports terminal state.
|
|
3565
|
+
* CAS posture for `run.workflow` is `none` (the caller owns the
|
|
3566
|
+
* idempotency key by supplying / persisting the resulting run ID).
|
|
3567
|
+
*/
|
|
3568
|
+
declare const leapAiConnector: ConnectorAdapter;
|
|
3569
|
+
|
|
3570
|
+
/**
|
|
3571
|
+
* Kommo CRM (https://developers.kommo.com).
|
|
3572
|
+
*
|
|
3573
|
+
* Auth: long-lived access token sent as Bearer in the Authorization header.
|
|
3574
|
+
* Each Kommo account lives on a per-tenant subdomain
|
|
3575
|
+
* (https://{subdomain}.kommo.com), so the connection stores the resolved
|
|
3576
|
+
* `apiBaseUrl` in metadata (e.g. https://acme.kommo.com/api/v4) and the
|
|
3577
|
+
* connector reads it via metadataKey.
|
|
3578
|
+
*
|
|
3579
|
+
* The activepieces catalog entry lists no explicit actions, so the surface
|
|
3580
|
+
* below maps the documented public v4 REST resources used by the piece's
|
|
3581
|
+
* auth-fields (contacts/leads/companies, plus tasks and notes that the
|
|
3582
|
+
* pipeline ops depend on). The `query` / `tags_to_add` / `tags_to_delete` /
|
|
3583
|
+
* `price` auth-fields the catalog enumerates are surfaced as parameters on
|
|
3584
|
+
* the matching search/update capabilities.
|
|
3585
|
+
*/
|
|
3586
|
+
declare const kommoConnector: ConnectorAdapter;
|
|
3587
|
+
|
|
3588
|
+
declare const lemonSqueezyConnector: ConnectorAdapter;
|
|
3589
|
+
|
|
3590
|
+
declare const leexiConnector: ConnectorAdapter;
|
|
3591
|
+
|
|
3592
|
+
declare const lettaConnector: ConnectorAdapter;
|
|
3593
|
+
|
|
3594
|
+
declare const leadConnectorConnector: ConnectorAdapter;
|
|
3595
|
+
|
|
3596
|
+
declare const linkupConnector: ConnectorAdapter;
|
|
3597
|
+
|
|
3598
|
+
declare const lightfunnelsConnector: ConnectorAdapter;
|
|
3599
|
+
|
|
3600
|
+
declare const lemlistConnector: ConnectorAdapter;
|
|
3601
|
+
|
|
3602
|
+
declare const letsCalendarConnector: ConnectorAdapter;
|
|
3603
|
+
|
|
3604
|
+
declare const linkaConnector: ConnectorAdapter;
|
|
3605
|
+
|
|
3606
|
+
declare const localaiConnector: ConnectorAdapter;
|
|
3607
|
+
|
|
3608
|
+
/**
|
|
3609
|
+
* LobsterMail adapter — managed inbox + transactional email API at
|
|
3610
|
+
* https://lobstermail.ai. Auth is a bearer API key minted from
|
|
3611
|
+
* Settings → API Keys; the key is forwarded as `Authorization: Bearer <key>`
|
|
3612
|
+
* on every call, which is `declarativeRestConnector`'s default placement.
|
|
3613
|
+
*
|
|
3614
|
+
* Capabilities mirror the activepieces catalog's `lobstermail` entry:
|
|
3615
|
+
* inbox lifecycle (create / get / list / delete), outbound email send,
|
|
3616
|
+
* and inbound email read paths (list / get / search) plus the account
|
|
3617
|
+
* lookup used by the SDK as a credential health check.
|
|
3618
|
+
*/
|
|
3619
|
+
declare const lobstermailConnector: ConnectorAdapter;
|
|
3620
|
+
|
|
3621
|
+
/**
|
|
3622
|
+
* LLM Rails connector.
|
|
3623
|
+
*
|
|
3624
|
+
* LLM Rails is a managed RAG platform: tenants upload documents into
|
|
3625
|
+
* "datastores", LLM Rails ingests + chunks + embeds them, and the
|
|
3626
|
+
* public API exposes a single hybrid (dense + sparse) semantic search
|
|
3627
|
+
* endpoint over a chosen datastore. The only documented external
|
|
3628
|
+
* action in the activepieces catalog is `datastore.search`.
|
|
3629
|
+
*
|
|
3630
|
+
* Auth: tenant API key sent as a bearer token. No OAuth surface.
|
|
3631
|
+
*
|
|
3632
|
+
* Consistency: a search call is a read against the platform's
|
|
3633
|
+
* vector + keyword index. The index itself is eventually consistent
|
|
3634
|
+
* with respect to recent uploads (ingest pipeline runs asynchronously
|
|
3635
|
+
* on LLM Rails' side), so we mark the connector `advisory` rather
|
|
3636
|
+
* than `authoritative` — a search issued moments after an upload may
|
|
3637
|
+
* not yet see the new chunks.
|
|
3638
|
+
*/
|
|
3639
|
+
declare const llmrailsConnector: ConnectorAdapter;
|
|
3640
|
+
|
|
3641
|
+
/**
|
|
3642
|
+
* Magical API connector.
|
|
3643
|
+
*
|
|
3644
|
+
* Magical API (magicalapi.com) is an HR/recruiting data API that wraps two
|
|
3645
|
+
* concerns into one tenant-scoped key:
|
|
3646
|
+
* 1. Resume intelligence — parse a resume PDF/DOC/DOCX into structured
|
|
3647
|
+
* fields, run a qualitative review against a job description, or
|
|
3648
|
+
* compute a numeric fit score.
|
|
3649
|
+
* 2. LinkedIn enrichment — fetch profile-by-username and company-by-name
|
|
3650
|
+
* / username / website snapshots.
|
|
3651
|
+
*
|
|
3652
|
+
* Catalog action surface (Activepieces piece-magical-api 0.1.4):
|
|
3653
|
+
* - review.resume -> reviewResume (write/billed call)
|
|
3654
|
+
* - parse.resume -> parseResume (write/billed call)
|
|
3655
|
+
* - score.resume -> scoreResume (write/billed call)
|
|
3656
|
+
* - get.profile.data -> getProfileData (read enrichment lookup)
|
|
3657
|
+
* - get.company.data -> getCompanyData (read enrichment lookup)
|
|
3658
|
+
* No triggers are declared upstream; this connector exposes the five
|
|
3659
|
+
* actions and nothing else.
|
|
3660
|
+
*
|
|
3661
|
+
* Auth: tenant-issued API key, sent via the `api-key` header on every
|
|
3662
|
+
* request. The vendor does not accept Bearer placement.
|
|
3663
|
+
*
|
|
3664
|
+
* Async / Request-ID pattern: the resume endpoints return a `request_id`
|
|
3665
|
+
* when the upstream model is still working; callers re-POST the same
|
|
3666
|
+
* endpoint with `{ request_id }` to fetch the completed result. The
|
|
3667
|
+
* catalog surfaces `request_id` as a top-level auth-form field for that
|
|
3668
|
+
* retry flow, but this adapter models it as a per-call parameter so the
|
|
3669
|
+
* runtime can drive both the initial submit and the retry through the
|
|
3670
|
+
* same capability without re-binding credentials.
|
|
3671
|
+
*
|
|
3672
|
+
* Consistency:
|
|
3673
|
+
* - parse/review/score are LLM-backed, non-deterministic, billed on
|
|
3674
|
+
* every accepted submit, and the vendor issues the request_id
|
|
3675
|
+
* server-side. CAS = `none`, externalEffect = true so dry-run policy
|
|
3676
|
+
* treats them as side-effecting.
|
|
3677
|
+
* - profile/company reads are advisory enrichment snapshots — the
|
|
3678
|
+
* underlying LinkedIn data may change between calls.
|
|
3679
|
+
*/
|
|
3680
|
+
declare const magicalApiConnector: ConnectorAdapter;
|
|
3681
|
+
|
|
3682
|
+
declare const lokaliseConnector: ConnectorAdapter;
|
|
3683
|
+
|
|
3684
|
+
/**
|
|
3685
|
+
* LogRocket (https://logrocket.com) is a session-replay + product-analytics
|
|
3686
|
+
* platform whose AI Highlights API surfaces summaries of user sessions. The
|
|
3687
|
+
* public REST surface is rooted at `/v1` and authenticated with a personal
|
|
3688
|
+
* API key presented as `Authorization: Bearer <key>` — the same shape the
|
|
3689
|
+
* Activepieces piece-logrocket connector uses.
|
|
3690
|
+
*
|
|
3691
|
+
* The Activepieces piece exposes two actions and one webhook trigger:
|
|
3692
|
+
* - requestHighlights → highlights.request (mutation; async, results
|
|
3693
|
+
* are delivered to a webhook
|
|
3694
|
+
* URL the caller controls)
|
|
3695
|
+
* - identifyUser → users.identify (mutation; user-trait upsert)
|
|
3696
|
+
* - highlightsReady → highlights.ready (webhook; modelled as a
|
|
3697
|
+
* read of the latest request
|
|
3698
|
+
* so callers without an
|
|
3699
|
+
* inbound webhook can poll)
|
|
3700
|
+
*
|
|
3701
|
+
* The `users.identify` trait write is an unconditional upsert keyed on
|
|
3702
|
+
* `userId`, so it tolerates idempotent replay natively. The highlights
|
|
3703
|
+
* request returns a server-assigned `requestId` and accepts an
|
|
3704
|
+
* `idempotencyKey` we forward through the declarative-REST adapter — also
|
|
3705
|
+
* native-idempotency.
|
|
3706
|
+
*/
|
|
3707
|
+
declare const logrocketConnector: ConnectorAdapter;
|
|
3708
|
+
|
|
3709
|
+
/**
|
|
3710
|
+
* LogSnag — project event tracking and lightweight product analytics.
|
|
3711
|
+
*
|
|
3712
|
+
* The activepieces catalog only declares the `createEvent` action; LogSnag's
|
|
3713
|
+
* public HTTP API (https://docs.logsnag.com/api-reference) is small and fully
|
|
3714
|
+
* shaped around `project` + `channel` keys, so the surface below is the real
|
|
3715
|
+
* set of endpoints a caller can reach with a single API token: `log` (event),
|
|
3716
|
+
* `identify` (user trait), `group` (group trait), `insight` (numeric metric),
|
|
3717
|
+
* and `insight/mutate` (atomic counter update).
|
|
3718
|
+
*
|
|
3719
|
+
* Auth: a single bearer API token, scoped to a LogSnag project. The catalog
|
|
3720
|
+
* marks `project` / `channel` / `event` as required text fields — those flow
|
|
3721
|
+
* through as capability parameters rather than connector-construction config
|
|
3722
|
+
* so a single connection can target multiple channels in the same project.
|
|
3723
|
+
*/
|
|
3724
|
+
declare const logsnagConnector: ConnectorAdapter;
|
|
3725
|
+
|
|
3726
|
+
declare const loftyConnector: ConnectorAdapter;
|
|
3727
|
+
|
|
3728
|
+
/**
|
|
3729
|
+
* Lusha — B2B contact and company data enrichment.
|
|
3730
|
+
*
|
|
3731
|
+
* Auth: API key sent in the `api_key` header.
|
|
3732
|
+
* Base: https://api.lusha.com
|
|
3733
|
+
*
|
|
3734
|
+
* Capabilities mirror the activepieces piece (search.companies,
|
|
3735
|
+
* enrich.companies) plus their natural read counterparts that the
|
|
3736
|
+
* upstream API exposes.
|
|
3737
|
+
*/
|
|
3738
|
+
declare const lushaConnector: ConnectorAdapter;
|
|
3739
|
+
|
|
3740
|
+
declare const mailerLiteConnector: ConnectorAdapter;
|
|
3741
|
+
|
|
3742
|
+
/**
|
|
3743
|
+
* Luxury Presence connector.
|
|
3744
|
+
*
|
|
3745
|
+
* Luxury Presence is a CRM + website + marketing platform for real-estate
|
|
3746
|
+
* agents and brokerages. The integration surface that LP exposes to outside
|
|
3747
|
+
* automation tools is its Lead Connect REST API: an api-key-authenticated
|
|
3748
|
+
* endpoint family that lets a third-party system push prospective buyer /
|
|
3749
|
+
* seller leads into the agent's LP CRM and read back the resulting lead
|
|
3750
|
+
* records for state reconciliation.
|
|
3751
|
+
*
|
|
3752
|
+
* The upstream activepieces catalog entry for luxury-presence documents
|
|
3753
|
+
* only a webhook trigger (`new.lead`) and no actions, because that piece
|
|
3754
|
+
* is webhook-receiver-only. We model the side of the integration that the
|
|
3755
|
+
* orchestrator needs in order to actually do CRM work: write a lead into
|
|
3756
|
+
* LP and read leads back out.
|
|
3757
|
+
*
|
|
3758
|
+
* Auth is a per-tenant API key issued in the LP admin console and sent in
|
|
3759
|
+
* the `X-API-Key` header (LP rejects Bearer placement for this surface).
|
|
3760
|
+
*/
|
|
3761
|
+
declare const luxuryPresenceConnector: ConnectorAdapter;
|
|
3762
|
+
|
|
3763
|
+
/**
|
|
3764
|
+
* Lucidya adapter — AI-powered social media analytics and customer experience
|
|
3765
|
+
* management. The activepieces catalog entry for `lucidya` ships with no
|
|
3766
|
+
* actions or triggers (the package only exposes auth wiring), so the
|
|
3767
|
+
* capability surface below maps the documented public Lucidya REST API at
|
|
3768
|
+
* https://api.lucidya.com.
|
|
3769
|
+
*
|
|
3770
|
+
* Auth: API key carried as an HTTP Bearer token on every request. The catalog
|
|
3771
|
+
* names the credential field `md` (the customer-facing "Measurement Domain"
|
|
3772
|
+
* key); the adapter forwards the same token as `Authorization: Bearer <md>`.
|
|
3773
|
+
*
|
|
3774
|
+
* Category: `crm` (matches the catalog entry; customer-experience tooling).
|
|
3775
|
+
*/
|
|
3776
|
+
declare const lucidyaConnector: ConnectorAdapter;
|
|
3777
|
+
|
|
3778
|
+
/**
|
|
3779
|
+
* Mastodon adapter.
|
|
3780
|
+
*
|
|
3781
|
+
* Mastodon is federated: every instance (mastodon.social, fosstodon.org, a
|
|
3782
|
+
* private server, ...) exposes the same REST surface under its own host. The
|
|
3783
|
+
* activepieces piece captures this with a `base_url` field plus a long-lived
|
|
3784
|
+
* `access_token` issued by that instance. We model the per-tenant host as
|
|
3785
|
+
* `baseUrl: { metadataKey: 'baseUrl' }` so each connection resolves to the
|
|
3786
|
+
* instance the user authorized against, and the access token rides as a
|
|
3787
|
+
* bearer credential (the default api-key placement) on every call.
|
|
3788
|
+
*
|
|
3789
|
+
* The piece itself ships exactly one action — `postStatus` — which maps to
|
|
3790
|
+
* the public `POST /api/v1/statuses` endpoint. We also surface the read
|
|
3791
|
+
* paths the same credential unlocks (verify-credentials for connection
|
|
3792
|
+
* health, fetch-status for permalink resolution, home/account timelines for
|
|
3793
|
+
* polling-based triggers) so downstream tooling can compose richer flows
|
|
3794
|
+
* without each consumer hand-rolling Mastodon HTTP.
|
|
3795
|
+
*/
|
|
3796
|
+
declare const mastodonConnector: ConnectorAdapter;
|
|
3797
|
+
|
|
3798
|
+
declare const matomoConnector: ConnectorAdapter;
|
|
3799
|
+
|
|
3800
|
+
declare const manychatConnector: ConnectorAdapter;
|
|
3801
|
+
|
|
3802
|
+
/**
|
|
3803
|
+
* Mailgun adapter — REST API at https://api.mailgun.net/v3 (US region) or
|
|
3804
|
+
* https://api.eu.mailgun.net/v3 (EU region).
|
|
3805
|
+
*
|
|
3806
|
+
* Auth: HTTP Basic with username `api` and the private API key as the password.
|
|
3807
|
+
* The credential token must be supplied pre-base64-encoded as `api:<KEY>` so the
|
|
3808
|
+
* declarative REST runtime can drop it into `Authorization: Basic <token>`
|
|
3809
|
+
* without per-request transformation. The catalog's `region` field selects the
|
|
3810
|
+
* base URL; default is the US endpoint, override via source metadata.baseUrl.
|
|
3811
|
+
*
|
|
3812
|
+
* Action set mirrors the activepieces `mailgun` piece: transactional send,
|
|
3813
|
+
* email validation, mailing-list membership, event/stat reads, and the bounces
|
|
3814
|
+
* suppression list. Domain templating uses the catalog `from` address's domain
|
|
3815
|
+
* for `/{domain}/messages`-style routes; callers pass the domain explicitly so
|
|
3816
|
+
* the same credential can drive multiple sending domains.
|
|
3817
|
+
*/
|
|
3818
|
+
declare const mailgunConnector: ConnectorAdapter;
|
|
3819
|
+
|
|
3820
|
+
declare const matrixConnector: ConnectorAdapter;
|
|
3821
|
+
|
|
3822
|
+
/**
|
|
3823
|
+
* Mattermost — open-source team messaging.
|
|
3824
|
+
*
|
|
3825
|
+
* Auth model from the activepieces catalog: api-key (bot token) plus a
|
|
3826
|
+
* caller-supplied workspace URL. The workspace URL is the customer's
|
|
3827
|
+
* Mattermost instance origin (e.g. `https://activepieces.mattermost.com`);
|
|
3828
|
+
* REST paths hang off `/api/v4` per the Mattermost server API.
|
|
3829
|
+
*
|
|
3830
|
+
* The catalog only ships one action (`send.message`, upstream `sendMessage`),
|
|
3831
|
+
* which maps to `POST /api/v4/posts`. We expose only that capability here so
|
|
3832
|
+
* the manifest reflects the catalog exactly.
|
|
3833
|
+
*/
|
|
3834
|
+
declare const mattermostConnector: ConnectorAdapter;
|
|
3835
|
+
|
|
3836
|
+
declare const mailerooConnector: ConnectorAdapter;
|
|
3837
|
+
|
|
3838
|
+
declare const meetgeekAiConnector: ConnectorAdapter;
|
|
3839
|
+
|
|
3840
|
+
declare const messagebirdConnector: ConnectorAdapter;
|
|
3841
|
+
|
|
3842
|
+
declare const mauticConnector: ConnectorAdapter;
|
|
3843
|
+
|
|
3844
|
+
/**
|
|
3845
|
+
* Microsoft 365 People connector backed by Microsoft Graph v1.0.
|
|
3846
|
+
*
|
|
3847
|
+
* Manages personal contacts and contact folders in the signed-in user's
|
|
3848
|
+
* Outlook/Exchange Online mailbox. Authentication uses the Microsoft identity
|
|
3849
|
+
* platform v2.0 OAuth endpoints; the `common` tenant lets one app registration
|
|
3850
|
+
* serve any work, school, or personal account.
|
|
3851
|
+
*
|
|
3852
|
+
* Docs:
|
|
3853
|
+
* - https://learn.microsoft.com/graph/api/resources/contact?view=graph-rest-1.0
|
|
3854
|
+
* - https://learn.microsoft.com/graph/api/resources/contactfolder?view=graph-rest-1.0
|
|
3855
|
+
* - https://learn.microsoft.com/graph/permissions-reference#contacts-permissions
|
|
3856
|
+
*/
|
|
3857
|
+
declare const microsoft365PeopleConnector: ConnectorAdapter;
|
|
3858
|
+
|
|
3859
|
+
declare const memConnector: ConnectorAdapter;
|
|
3860
|
+
|
|
3861
|
+
/**
|
|
3862
|
+
* Microsoft Dynamics 365 / Dataverse Web API connector.
|
|
3863
|
+
*
|
|
3864
|
+
* Auth: OAuth2 against the Microsoft identity platform. The token audience is
|
|
3865
|
+
* the organization URL itself (e.g. `https://contoso.crm.dynamics.com/.default`),
|
|
3866
|
+
* so the per-tenant Dataverse origin is supplied through `instanceUrl` connection
|
|
3867
|
+
* metadata rather than baked into baseUrl. The same connector therefore serves
|
|
3868
|
+
* every Dataverse region (crm, crm2..crm9, crm.dynamics.cn, crm.microsoftdynamics.us).
|
|
3869
|
+
*
|
|
3870
|
+
* Capability surface mirrors the activepieces piece (create / get / update /
|
|
3871
|
+
* delete record) but binds them to the Dataverse Web API v9.2 entity-set
|
|
3872
|
+
* conventions: pluralized logical names, GUID record ids, and the
|
|
3873
|
+
* If-Match: * idempotency header for upserts.
|
|
3874
|
+
*
|
|
3875
|
+
* Docs:
|
|
3876
|
+
* - https://learn.microsoft.com/power-apps/developer/data-platform/webapi/overview
|
|
3877
|
+
* - https://learn.microsoft.com/power-apps/developer/data-platform/webapi/perform-operations-web-api
|
|
3878
|
+
* - https://learn.microsoft.com/power-apps/developer/data-platform/authenticate-oauth
|
|
3879
|
+
*/
|
|
3880
|
+
declare const microsoftDynamicsCrmConnector: ConnectorAdapter;
|
|
3881
|
+
|
|
3882
|
+
declare const microsoftDynamics365BusinessCentralConnector: ConnectorAdapter;
|
|
3883
|
+
|
|
3884
|
+
/**
|
|
3885
|
+
* Microsoft 365 Planner connector backed by Microsoft Graph v1.0.
|
|
3886
|
+
*
|
|
3887
|
+
* Auth: OAuth2 against the Entra ID v2.0 endpoint. Uses the `common` tenant so the
|
|
3888
|
+
* same app registration works for multi-tenant deployments; single-tenant operators
|
|
3889
|
+
* override authorizationUrl/tokenUrl with their own tenant id at construction time.
|
|
3890
|
+
*
|
|
3891
|
+
* Planner write operations (update + delete) require optimistic concurrency via the
|
|
3892
|
+
* `If-Match` header carrying the resource `@odata.etag`. The declarative-REST runtime
|
|
3893
|
+
* surfaces `cas: 'optimistic-read-verify'` and `cas: 'etag-if-match'` for callers that
|
|
3894
|
+
* need to thread the etag through; the etag itself is read from the prior GET.
|
|
3895
|
+
*
|
|
3896
|
+
* Docs:
|
|
3897
|
+
* - https://learn.microsoft.com/graph/api/resources/planner-overview
|
|
3898
|
+
* - https://learn.microsoft.com/graph/api/resources/plannertask
|
|
3899
|
+
* - https://learn.microsoft.com/graph/api/resources/plannerbucket
|
|
3900
|
+
* - https://learn.microsoft.com/graph/api/resources/plannerplan
|
|
3901
|
+
*/
|
|
3902
|
+
declare const microsoft365PlannerConnector: ConnectorAdapter;
|
|
3903
|
+
|
|
3904
|
+
/**
|
|
3905
|
+
* Microsoft Power BI connector backed by the Power BI REST API v1.0.
|
|
3906
|
+
*
|
|
3907
|
+
* Auth: OAuth2 against the Entra ID v2.0 endpoint. The `common` tenant lets a
|
|
3908
|
+
* single app registration work for multi-tenant deployments; single-tenant
|
|
3909
|
+
* operators override authorizationUrl/tokenUrl with their tenant id at
|
|
3910
|
+
* construction time.
|
|
3911
|
+
*
|
|
3912
|
+
* Power BI dataset writes are not natively idempotent — pushRows is append-only
|
|
3913
|
+
* and createDataset rejects duplicate names within a workspace — so callers must
|
|
3914
|
+
* gate replay at the orchestration layer (idempotency key + workspace-scoped
|
|
3915
|
+
* name uniqueness check) rather than rely on the API.
|
|
3916
|
+
*
|
|
3917
|
+
* Docs:
|
|
3918
|
+
* - https://learn.microsoft.com/rest/api/power-bi/datasets/post-dataset
|
|
3919
|
+
* - https://learn.microsoft.com/rest/api/power-bi/push-datasets/datasets-post-rows
|
|
3920
|
+
*/
|
|
3921
|
+
declare const microsoftPowerBiConnector: ConnectorAdapter;
|
|
3922
|
+
|
|
3923
|
+
/**
|
|
3924
|
+
* Microsoft Outlook Calendar connector backed by Microsoft Graph v1.0.
|
|
3925
|
+
*
|
|
3926
|
+
* Manages events on the signed-in user's primary calendar (and any explicit
|
|
3927
|
+
* calendarId the caller supplies). Authentication uses the Microsoft identity
|
|
3928
|
+
* platform v2.0 OAuth endpoints; the `common` tenant lets a single app
|
|
3929
|
+
* registration serve any work, school, or personal account.
|
|
3930
|
+
*
|
|
3931
|
+
* Docs:
|
|
3932
|
+
* - https://learn.microsoft.com/graph/api/resources/event?view=graph-rest-1.0
|
|
3933
|
+
* - https://learn.microsoft.com/graph/api/user-list-events?view=graph-rest-1.0
|
|
3934
|
+
* - https://learn.microsoft.com/graph/permissions-reference#calendars-permissions
|
|
3935
|
+
*/
|
|
3936
|
+
declare const microsoftOutlookCalendarConnector: ConnectorAdapter;
|
|
3937
|
+
|
|
3938
|
+
/**
|
|
3939
|
+
* Microsoft OneNote connector via the Microsoft Graph v1.0 OneNote API.
|
|
3940
|
+
*
|
|
3941
|
+
* Auth: OAuth2 against the Microsoft identity platform. We request the
|
|
3942
|
+
* delegated Notes scopes that cover read + write of the user's notebooks,
|
|
3943
|
+
* sections, and pages, plus offline_access for refresh.
|
|
3944
|
+
*
|
|
3945
|
+
* Capability surface mirrors the activepieces piece actions:
|
|
3946
|
+
* - createNotebook → notebooks.create
|
|
3947
|
+
* - createSection → sections.create
|
|
3948
|
+
* - createPage → pages.create (HTML body)
|
|
3949
|
+
* - createNoteInSection → pages.createInSection (typed alias of pages.create
|
|
3950
|
+
* that pins the parent sectionId)
|
|
3951
|
+
* - createImageNote → pages.createImage (multipart not modeled here;
|
|
3952
|
+
* accepts an HTML page body referencing image data;
|
|
3953
|
+
* callers supply Graph-compatible HTML)
|
|
3954
|
+
* - appendNote → pages.append (PATCH a page with revisions)
|
|
3955
|
+
*
|
|
3956
|
+
* We also expose read helpers (list notebooks/sections/pages, get page content)
|
|
3957
|
+
* so an agent can navigate the hierarchy before mutating.
|
|
3958
|
+
*
|
|
3959
|
+
* Page mutations use 'native-idempotency' because Graph generates the page id
|
|
3960
|
+
* server-side on POST and accepts a client-request-id header for de-duplication;
|
|
3961
|
+
* page append is 'optimistic-read-verify' since PATCH targets a known page and
|
|
3962
|
+
* Graph has no etag for the OneNote subset.
|
|
3963
|
+
*
|
|
3964
|
+
* Docs:
|
|
3965
|
+
* - https://learn.microsoft.com/graph/api/resources/onenote-api-overview
|
|
3966
|
+
* - https://learn.microsoft.com/graph/api/onenote-list-notebooks
|
|
3967
|
+
* - https://learn.microsoft.com/graph/api/notebook-post-sections
|
|
3968
|
+
* - https://learn.microsoft.com/graph/api/section-post-pages
|
|
3969
|
+
* - https://learn.microsoft.com/graph/api/page-update
|
|
3970
|
+
*/
|
|
3971
|
+
declare const microsoftOnenoteConnector: ConnectorAdapter;
|
|
3972
|
+
|
|
3973
|
+
/**
|
|
3974
|
+
* Microsoft Outlook connector backed by Microsoft Graph v1.0 /me/messages.
|
|
3975
|
+
*
|
|
3976
|
+
* Drives the signed-in user's Outlook/Exchange Online mailbox: send mail,
|
|
3977
|
+
* drafts, replies, forwards, attachment download, label (category) tagging,
|
|
3978
|
+
* folder moves, and search. Authentication uses the Microsoft identity
|
|
3979
|
+
* platform v2.0 OAuth endpoints against the `common` tenant so one app
|
|
3980
|
+
* registration can serve work, school, or personal accounts.
|
|
3981
|
+
*
|
|
3982
|
+
* Docs:
|
|
3983
|
+
* - https://learn.microsoft.com/graph/api/resources/message?view=graph-rest-1.0
|
|
3984
|
+
* - https://learn.microsoft.com/graph/api/user-sendmail?view=graph-rest-1.0
|
|
3985
|
+
* - https://learn.microsoft.com/graph/api/message-reply?view=graph-rest-1.0
|
|
3986
|
+
* - https://learn.microsoft.com/graph/api/message-forward?view=graph-rest-1.0
|
|
3987
|
+
* - https://learn.microsoft.com/graph/api/message-move?view=graph-rest-1.0
|
|
3988
|
+
* - https://learn.microsoft.com/graph/api/attachment-get?view=graph-rest-1.0
|
|
3989
|
+
* - https://learn.microsoft.com/graph/permissions-reference#mail-permissions
|
|
3990
|
+
*/
|
|
3991
|
+
declare const microsoftOutlookConnector: ConnectorAdapter;
|
|
3992
|
+
|
|
3993
|
+
/**
|
|
3994
|
+
* Microsoft Excel 365 connector backed by Microsoft Graph v1.0 Excel APIs.
|
|
3995
|
+
*
|
|
3996
|
+
* Operates on workbooks stored in the signed-in user's OneDrive for Business
|
|
3997
|
+
* / SharePoint mailbox. The Graph Excel surface addresses workbooks via drive
|
|
3998
|
+
* item id, then exposes named worksheet, table, row, column, and range
|
|
3999
|
+
* sub-resources. Authentication uses the Microsoft identity platform v2.0
|
|
4000
|
+
* endpoints; the `common` tenant lets a single app registration serve work,
|
|
4001
|
+
* school, and personal accounts.
|
|
4002
|
+
*
|
|
4003
|
+
* Docs:
|
|
4004
|
+
* - https://learn.microsoft.com/graph/api/resources/excel
|
|
4005
|
+
* - https://learn.microsoft.com/graph/api/resources/workbook
|
|
4006
|
+
* - https://learn.microsoft.com/graph/api/resources/worksheet
|
|
4007
|
+
* - https://learn.microsoft.com/graph/api/resources/table
|
|
4008
|
+
* - https://learn.microsoft.com/graph/permissions-reference#files-permissions
|
|
4009
|
+
*/
|
|
4010
|
+
declare const microsoftExcel365Connector: ConnectorAdapter;
|
|
4011
|
+
|
|
4012
|
+
/**
|
|
4013
|
+
* Microsoft To Do connector via the Microsoft Graph v1.0 todo API.
|
|
4014
|
+
*
|
|
4015
|
+
* Auth: OAuth2 against the Microsoft identity platform. We request the
|
|
4016
|
+
* delegated Tasks scopes that cover read + write of the user's task lists
|
|
4017
|
+
* and tasks, plus offline_access for refresh.
|
|
4018
|
+
*
|
|
4019
|
+
* Capability surface mirrors the activepieces piece actions:
|
|
4020
|
+
* - addAttachmentAction → tasks.addAttachment
|
|
4021
|
+
* - completeTaskAction → tasks.complete (PATCH status=completed)
|
|
4022
|
+
* - createTask → tasks.create
|
|
4023
|
+
* - createTaskListAction → taskLists.create
|
|
4024
|
+
* - deleteTaskAction → tasks.delete
|
|
4025
|
+
* - findTaskByTitleAction → tasks.findByTitle ($filter on title eq)
|
|
4026
|
+
* - findTaskListByNameAction → taskLists.findByName ($filter on displayName eq)
|
|
4027
|
+
* - getTaskAction → tasks.get
|
|
4028
|
+
* - updateTaskAction → tasks.update
|
|
4029
|
+
* - updateTaskListAction → taskLists.update
|
|
4030
|
+
* - listTasksAction → tasks.list
|
|
4031
|
+
* - listTaskListsAction → taskLists.list
|
|
4032
|
+
*
|
|
4033
|
+
* Graph models the resource tree as:
|
|
4034
|
+
* /me/todo/lists → todoTaskList
|
|
4035
|
+
* /me/todo/lists/{listId}/tasks → todoTask
|
|
4036
|
+
* /me/todo/lists/{listId}/tasks/{id}/attachments → taskFileAttachment
|
|
4037
|
+
*
|
|
4038
|
+
* Mutations of resources Graph generates server-side (create list, create task,
|
|
4039
|
+
* create attachment) are 'native-idempotency'. Mutations targeting an existing
|
|
4040
|
+
* resource (PATCH list, PATCH task, complete task, DELETE task) are
|
|
4041
|
+
* 'optimistic-read-verify' — Graph does not expose ETags on To Do entities,
|
|
4042
|
+
* so callers must read-then-write if they need to detect concurrent edits.
|
|
4043
|
+
*
|
|
4044
|
+
* Docs:
|
|
4045
|
+
* - https://learn.microsoft.com/graph/api/resources/todo-overview
|
|
4046
|
+
* - https://learn.microsoft.com/graph/api/todo-list-lists
|
|
4047
|
+
* - https://learn.microsoft.com/graph/api/todotasklist-post-tasks
|
|
4048
|
+
* - https://learn.microsoft.com/graph/api/todotask-update
|
|
4049
|
+
* - https://learn.microsoft.com/graph/api/todotask-post-attachments
|
|
4050
|
+
*/
|
|
4051
|
+
declare const microsoftTodoConnector: ConnectorAdapter;
|
|
4052
|
+
|
|
4053
|
+
/**
|
|
4054
|
+
* Microsoft SharePoint connector backed by Microsoft Graph v1.0.
|
|
4055
|
+
*
|
|
4056
|
+
* Sites, drives, list items, files, and pages are surfaced through
|
|
4057
|
+
* `https://graph.microsoft.com/v1.0/sites/...`. OAuth2 against the v2.0
|
|
4058
|
+
* Microsoft identity platform endpoint uses the multi-tenant `common`
|
|
4059
|
+
* authority by default; single-tenant deployments override
|
|
4060
|
+
* authorizationUrl/tokenUrl with their own tenant id.
|
|
4061
|
+
*
|
|
4062
|
+
* Docs:
|
|
4063
|
+
* - https://learn.microsoft.com/graph/api/resources/sharepoint
|
|
4064
|
+
* - https://learn.microsoft.com/graph/api/resources/driveitem
|
|
4065
|
+
* - https://learn.microsoft.com/graph/api/resources/listitem
|
|
4066
|
+
* - https://learn.microsoft.com/entra/identity-platform/v2-oauth2-auth-code-flow
|
|
4067
|
+
*
|
|
4068
|
+
* Mapped activepieces piece: microsoft-sharepoint (storage / oauth2).
|
|
4069
|
+
*/
|
|
4070
|
+
declare const microsoftSharepointConnector: ConnectorAdapter;
|
|
4071
|
+
|
|
4072
|
+
/**
|
|
4073
|
+
* MillionVerifier adapter — email verification REST API.
|
|
4074
|
+
*
|
|
4075
|
+
* Upstream: https://api.millionverifier.com/api/v3
|
|
4076
|
+
* Auth: API key. MillionVerifier forwards the credential as the `api` query
|
|
4077
|
+
* parameter on every verification call; there is no Authorization header.
|
|
4078
|
+
*
|
|
4079
|
+
* Catalog (`millionverifier`) declares a single action `verifyEmail`. The
|
|
4080
|
+
* catalog's `authFields` block is misleading — `email` and `timeout` are
|
|
4081
|
+
* per-call inputs, not credentials; they are modeled as capability parameters
|
|
4082
|
+
* here. The credential itself is the bare API key.
|
|
4083
|
+
*/
|
|
4084
|
+
declare const millionverifierConnector: ConnectorAdapter;
|
|
4085
|
+
|
|
4086
|
+
declare const mindeeConnector: ConnectorAdapter;
|
|
4087
|
+
|
|
4088
|
+
declare const mixmaxConnector: ConnectorAdapter;
|
|
4089
|
+
|
|
4090
|
+
declare const mixpanelConnector: ConnectorAdapter;
|
|
4091
|
+
|
|
4092
|
+
declare const missiveConnector: ConnectorAdapter;
|
|
4093
|
+
|
|
4094
|
+
declare const exaConnector: ConnectorAdapter;
|
|
4095
|
+
|
|
4096
|
+
declare const googleVertexaiConnector: ConnectorAdapter;
|
|
4097
|
+
|
|
4098
|
+
declare const glideConnector: ConnectorAdapter;
|
|
4099
|
+
|
|
4100
|
+
declare const gotifyConnector: ConnectorAdapter;
|
|
4101
|
+
|
|
4102
|
+
declare const gptzeroDetectAiConnector: ConnectorAdapter;
|
|
4103
|
+
|
|
4104
|
+
declare const gristConnector: ConnectorAdapter;
|
|
4105
|
+
|
|
4106
|
+
declare const granolaConnector: ConnectorAdapter;
|
|
4107
|
+
|
|
4108
|
+
declare const griptapeConnector: ConnectorAdapter;
|
|
4109
|
+
|
|
4110
|
+
declare const heartbeatConnector: ConnectorAdapter;
|
|
4111
|
+
|
|
4112
|
+
/**
|
|
4113
|
+
* Hedy AI-powered meeting intelligence connector.
|
|
4114
|
+
*
|
|
4115
|
+
* Authentication: API key delivered in the `Authorization: Bearer` header.
|
|
4116
|
+
* Region selection (US vs EU) is configurable at credential time.
|
|
4117
|
+
*
|
|
4118
|
+
* Capability surface covers meeting session management and topic creation:
|
|
4119
|
+
* - topics: create, read, update, list
|
|
4120
|
+
* - sessions: get details, list by topic
|
|
4121
|
+
* - context: create and manage session context for AI analysis
|
|
4122
|
+
*/
|
|
4123
|
+
declare const hedyConnector: ConnectorAdapter;
|
|
4124
|
+
|
|
4125
|
+
declare const humeAiConnector: ConnectorAdapter;
|
|
4126
|
+
|
|
4127
|
+
declare const hystructConnector: ConnectorAdapter;
|
|
4128
|
+
|
|
4129
|
+
declare const ibmCognoseConnector: ConnectorAdapter;
|
|
4130
|
+
|
|
4131
|
+
declare const imapConnector: ConnectorAdapter;
|
|
4132
|
+
|
|
4133
|
+
declare const instaChartsConnector: ConnectorAdapter;
|
|
4134
|
+
|
|
4135
|
+
declare const insightoAiConnector: ConnectorAdapter;
|
|
4136
|
+
|
|
4137
|
+
declare const instasentConnector: ConnectorAdapter;
|
|
4138
|
+
|
|
4139
|
+
declare const kallabotAiConnector: ConnectorAdapter;
|
|
4140
|
+
|
|
4141
|
+
declare const knockConnector: ConnectorAdapter;
|
|
4142
|
+
|
|
4143
|
+
declare const loopsConnector: ConnectorAdapter;
|
|
4144
|
+
|
|
4145
|
+
declare const mailchainConnector: ConnectorAdapter;
|
|
4146
|
+
|
|
4147
|
+
declare const medullarConnector: ConnectorAdapter;
|
|
4148
|
+
|
|
4149
|
+
declare const mollieConnector: ConnectorAdapter;
|
|
4150
|
+
|
|
4151
|
+
declare const metabaseConnector: ConnectorAdapter;
|
|
4152
|
+
|
|
4153
|
+
declare const mindStudioConnector: ConnectorAdapter;
|
|
4154
|
+
|
|
4155
|
+
declare const microsoftOnedriveConnector: ConnectorAdapter;
|
|
4156
|
+
|
|
4157
|
+
/**
|
|
4158
|
+
* MongoDB adapter.
|
|
4159
|
+
*
|
|
4160
|
+
* Surfaces MongoDB document operations via the MongoDB Data API
|
|
4161
|
+
* (https://www.mongodb.com/docs/atlas/api/data-api/).
|
|
4162
|
+
*
|
|
4163
|
+
* Requires MongoDB Atlas and Data API enabled. Connection is via
|
|
4164
|
+
* API key authentication with host, database, and optional auth
|
|
4165
|
+
* credentials configured.
|
|
4166
|
+
*
|
|
4167
|
+
* Operations include:
|
|
4168
|
+
* - documents.find: Query documents with optional filters, projections, sort, limit, skip
|
|
4169
|
+
* - documents.findOne: Find a single document matching a filter
|
|
4170
|
+
* - documents.insertOne: Insert a single document into a collection
|
|
4171
|
+
* - documents.insertMany: Insert multiple documents
|
|
4172
|
+
* - documents.updateOne: Update a single document matching a filter
|
|
4173
|
+
* - documents.updateMany: Update multiple documents matching a filter
|
|
4174
|
+
* - documents.replaceOne: Replace a single document entirely
|
|
4175
|
+
* - documents.deleteOne: Delete a single document matching a filter
|
|
4176
|
+
* - documents.deleteMany: Delete multiple documents matching a filter
|
|
4177
|
+
* - documents.aggregate: Run an aggregation pipeline over a collection
|
|
4178
|
+
*/
|
|
4179
|
+
declare const mongodbConnector: ConnectorAdapter;
|
|
4180
|
+
|
|
4181
|
+
declare const niftyConnector: ConnectorAdapter;
|
|
4182
|
+
|
|
4183
|
+
declare const ninjapipeConnector: ConnectorAdapter;
|
|
4184
|
+
|
|
4185
|
+
declare const nocodbConnector: ConnectorAdapter;
|
|
4186
|
+
|
|
4187
|
+
declare const notionConnector: ConnectorAdapter;
|
|
4188
|
+
|
|
4189
|
+
declare const ntfyConnector: ConnectorAdapter;
|
|
4190
|
+
|
|
4191
|
+
declare const odooConnector: ConnectorAdapter;
|
|
4192
|
+
|
|
4193
|
+
declare const omniCoConnector: ConnectorAdapter;
|
|
4194
|
+
|
|
4195
|
+
declare const omnihrConnector: ConnectorAdapter;
|
|
4196
|
+
|
|
4197
|
+
declare const openRouterConnector: ConnectorAdapter;
|
|
4198
|
+
|
|
4199
|
+
declare const openPhoneConnector: ConnectorAdapter;
|
|
4200
|
+
|
|
4201
|
+
declare const opportifyConnector: ConnectorAdapter;
|
|
4202
|
+
|
|
4203
|
+
declare const openmicAiConnector: ConnectorAdapter;
|
|
4204
|
+
|
|
4205
|
+
declare const opnformConnector: ConnectorAdapter;
|
|
4206
|
+
|
|
4207
|
+
declare const orimonConnector: ConnectorAdapter;
|
|
4208
|
+
|
|
4209
|
+
/**
|
|
4210
|
+
* Oracle Database adapter.
|
|
4211
|
+
*
|
|
4212
|
+
* Surfaces Oracle Database operations via SQL/PL-SQL execution,
|
|
4213
|
+
* supporting row-level CRUD operations and custom SQL queries.
|
|
4214
|
+
*
|
|
4215
|
+
* Connection supports both direct (host, port, service name) and
|
|
4216
|
+
* connection string configurations. Authentication via username/password.
|
|
4217
|
+
* Optional thick mode for legacy Oracle versions (10g, 11g).
|
|
4218
|
+
*
|
|
4219
|
+
* Operations include:
|
|
4220
|
+
* - rows.find: Query rows with optional WHERE conditions
|
|
4221
|
+
* - rows.insert: Insert a single row
|
|
4222
|
+
* - rows.insertBatch: Insert multiple rows
|
|
4223
|
+
* - rows.update: Update rows matching filter conditions
|
|
4224
|
+
* - rows.delete: Delete rows matching filter conditions
|
|
4225
|
+
* - sql.execute: Run custom SQL or PL/SQL with bind parameters
|
|
4226
|
+
*/
|
|
4227
|
+
declare const oracleDatabaseConnector: ConnectorAdapter;
|
|
4228
|
+
|
|
4229
|
+
declare const paddleConnector: ConnectorAdapter;
|
|
4230
|
+
|
|
4231
|
+
declare const paperformConnector: ConnectorAdapter;
|
|
4232
|
+
|
|
4233
|
+
declare const pastefyConnector: ConnectorAdapter;
|
|
4234
|
+
|
|
4235
|
+
declare const pinchPaymentsConnector: ConnectorAdapter;
|
|
4236
|
+
|
|
4237
|
+
declare const paywhirlConnector: ConnectorAdapter;
|
|
4238
|
+
|
|
4239
|
+
declare const parseurConnector: ConnectorAdapter;
|
|
4240
|
+
|
|
4241
|
+
declare const pdfmonkeyConnector: ConnectorAdapter;
|
|
4242
|
+
|
|
4243
|
+
declare const peekshotConnector: ConnectorAdapter;
|
|
4244
|
+
|
|
4245
|
+
declare const perplexityAiConnector: ConnectorAdapter;
|
|
4246
|
+
|
|
4247
|
+
declare const personalAiConnector: ConnectorAdapter;
|
|
4248
|
+
|
|
4249
|
+
declare const placidConnector: ConnectorAdapter;
|
|
4250
|
+
|
|
4251
|
+
declare const plausibleConnector: ConnectorAdapter;
|
|
4252
|
+
|
|
4253
|
+
declare const pocketbaseConnector: ConnectorAdapter;
|
|
4254
|
+
|
|
4255
|
+
declare const pollybotAiConnector: ConnectorAdapter;
|
|
4256
|
+
|
|
4257
|
+
declare const postgresConnector: ConnectorAdapter;
|
|
4258
|
+
|
|
4259
|
+
declare const postizConnector: ConnectorAdapter;
|
|
4260
|
+
|
|
4261
|
+
declare const posthogConnector: ConnectorAdapter;
|
|
4262
|
+
|
|
4263
|
+
declare const predictLeadsConnector: ConnectorAdapter;
|
|
4264
|
+
|
|
4265
|
+
declare const productboardConnector: ConnectorAdapter;
|
|
4266
|
+
|
|
4267
|
+
declare const proxycurlConnector: ConnectorAdapter;
|
|
4268
|
+
|
|
4269
|
+
declare const pushbulletConnector: ConnectorAdapter;
|
|
4270
|
+
|
|
4271
|
+
/**
|
|
4272
|
+
* Pushover connector.
|
|
4273
|
+
*
|
|
4274
|
+
* Pushover is a push-notification service that delivers real-time alerts to
|
|
4275
|
+
* mobile devices and desktops. The external integration surface exposes the
|
|
4276
|
+
* send-notification endpoint, which requires an API token (application key)
|
|
4277
|
+
* and user key to deliver messages to user devices.
|
|
4278
|
+
*
|
|
4279
|
+
* Auth is via two API keys: the application/API token and the user key.
|
|
4280
|
+
* These are delivered as form-encoded parameters on every request.
|
|
4281
|
+
*
|
|
4282
|
+
* Consistency: notifications are fire-and-forget (write-only, non-deterministic
|
|
4283
|
+
* delivery due to network/device state). CAS posture is `none` — the caller owns
|
|
4284
|
+
* idempotency if needed — and `externalEffect: true` so the orchestrator's
|
|
4285
|
+
* dry-run policy treats this as a side-effecting call.
|
|
4286
|
+
*/
|
|
4287
|
+
declare const pushoverConnector: ConnectorAdapter;
|
|
4288
|
+
|
|
4289
|
+
declare const qawafelConnector: ConnectorAdapter;
|
|
4290
|
+
|
|
4291
|
+
declare const quadernoConnector: ConnectorAdapter;
|
|
4292
|
+
|
|
4293
|
+
declare const raiaAiConnector: ConnectorAdapter;
|
|
4294
|
+
|
|
4295
|
+
declare const rapidtextAiConnector: ConnectorAdapter;
|
|
4296
|
+
|
|
4297
|
+
declare const recallAiConnector: ConnectorAdapter;
|
|
4298
|
+
|
|
4299
|
+
declare const reachinboxConnector: ConnectorAdapter;
|
|
4300
|
+
|
|
4301
|
+
/**
|
|
4302
|
+
* Reddit adapter.
|
|
4303
|
+
*
|
|
4304
|
+
* Provides access to Reddit's JSON API (api.reddit.com) for reading posts,
|
|
4305
|
+
* comments, and creating content across subreddits. OAuth2 flows use
|
|
4306
|
+
* access_token (required) and refresh_token (optional) for long-lived sessions.
|
|
4307
|
+
*
|
|
4308
|
+
* The piece surfaces the core actions from activepieces:
|
|
4309
|
+
* - retrieve/get post details
|
|
4310
|
+
* - create post/comment
|
|
4311
|
+
* - edit post/comment
|
|
4312
|
+
* - delete post/comment
|
|
4313
|
+
* - fetch comments on a post
|
|
4314
|
+
*
|
|
4315
|
+
* All requests must include the User-Agent header per Reddit API requirements.
|
|
4316
|
+
*/
|
|
4317
|
+
declare const redditConnector: ConnectorAdapter;
|
|
4318
|
+
|
|
4319
|
+
declare const reoonVerifierConnector: ConnectorAdapter;
|
|
4320
|
+
|
|
4321
|
+
declare const replyIoConnector: ConnectorAdapter;
|
|
4322
|
+
|
|
4323
|
+
declare const retableConnector: ConnectorAdapter;
|
|
4324
|
+
|
|
4325
|
+
declare const retellAiConnector: ConnectorAdapter;
|
|
4326
|
+
|
|
4327
|
+
declare const robollyConnector: ConnectorAdapter;
|
|
4328
|
+
|
|
4329
|
+
declare const runwareConnector: ConnectorAdapter;
|
|
4330
|
+
|
|
4331
|
+
declare const saasticConnector: ConnectorAdapter;
|
|
4332
|
+
|
|
4333
|
+
declare const saleorConnector: ConnectorAdapter;
|
|
4334
|
+
|
|
4335
|
+
declare const sardisConnector: ConnectorAdapter;
|
|
4336
|
+
|
|
4337
|
+
declare const scrapegraphaiConnector: ConnectorAdapter;
|
|
4338
|
+
|
|
4339
|
+
declare const scrapelessConnector: ConnectorAdapter;
|
|
4340
|
+
|
|
4341
|
+
declare const seekTableConnector: ConnectorAdapter;
|
|
4342
|
+
|
|
4343
|
+
declare const skyprepConnector: ConnectorAdapter;
|
|
4344
|
+
|
|
4345
|
+
declare const sendinblueConnector: ConnectorAdapter;
|
|
4346
|
+
|
|
4347
|
+
declare const senjaConnector: ConnectorAdapter;
|
|
4348
|
+
|
|
4349
|
+
declare const serpstatConnector: ConnectorAdapter;
|
|
4350
|
+
|
|
4351
|
+
declare const serviceNowConnector: ConnectorAdapter;
|
|
4352
|
+
|
|
4353
|
+
declare const signNowConnector: ConnectorAdapter;
|
|
4354
|
+
|
|
4355
|
+
declare const signrequestConnector: ConnectorAdapter;
|
|
4356
|
+
|
|
4357
|
+
declare const shortIoConnector: ConnectorAdapter;
|
|
4358
|
+
|
|
4359
|
+
declare const shippoConnector: ConnectorAdapter;
|
|
4360
|
+
|
|
4361
|
+
declare const simplirouteConnector: ConnectorAdapter;
|
|
4362
|
+
|
|
4363
|
+
declare const simplybookmeConnector: ConnectorAdapter;
|
|
4364
|
+
|
|
4365
|
+
declare const smartleadConnector: ConnectorAdapter;
|
|
4366
|
+
|
|
4367
|
+
declare const smartsheetConnector: ConnectorAdapter;
|
|
4368
|
+
|
|
4369
|
+
declare const smartsuiteConnector: ConnectorAdapter;
|
|
4370
|
+
|
|
4371
|
+
declare const smsmodeConnector: ConnectorAdapter;
|
|
4372
|
+
|
|
4373
|
+
declare const snowflakeConnector: ConnectorAdapter;
|
|
4374
|
+
|
|
4375
|
+
declare const socialkitConnector: ConnectorAdapter;
|
|
4376
|
+
|
|
4377
|
+
declare const squareConnector: ConnectorAdapter;
|
|
4378
|
+
|
|
4379
|
+
declare const supadataConnector: ConnectorAdapter;
|
|
4380
|
+
|
|
4381
|
+
declare const swarmnodeConnector: ConnectorAdapter;
|
|
4382
|
+
|
|
4383
|
+
declare const stripeConnector: ConnectorAdapter;
|
|
4384
|
+
|
|
4385
|
+
declare const systemeIoConnector: ConnectorAdapter;
|
|
4386
|
+
|
|
4387
|
+
declare const tableauConnector: ConnectorAdapter;
|
|
4388
|
+
|
|
4389
|
+
declare const talkableConnector: ConnectorAdapter;
|
|
4390
|
+
|
|
4391
|
+
/**
|
|
4392
|
+
* Tally — form builder and submission receiver.
|
|
4393
|
+
*
|
|
4394
|
+
* Tally's primary use case is as a webhook receiver for form submissions
|
|
4395
|
+
* (ActivePieces catalogues it as webhook-only). This adapter exposes the
|
|
4396
|
+
* REST API for querying forms and retrieving submission history, scoped to
|
|
4397
|
+
* read operations. The webhook integration flow remains outside this connector
|
|
4398
|
+
* (agent agents receive submissions via the hub's inbound webhook dispatcher).
|
|
4399
|
+
*
|
|
4400
|
+
* Auth: API key placed in the `Authorization: Bearer <apiKey>` header.
|
|
4401
|
+
*
|
|
4402
|
+
* Tally API refs:
|
|
4403
|
+
* - GET https://api.tally.so/form/{formId} — fetch form metadata
|
|
4404
|
+
* - GET https://api.tally.so/form/{formId}/response — list responses
|
|
4405
|
+
*
|
|
4406
|
+
* TODO: expand to pagination and per-response filters if the agent needs them.
|
|
4407
|
+
*/
|
|
4408
|
+
declare const tallyConnector: ConnectorAdapter;
|
|
4409
|
+
|
|
4410
|
+
declare const ticktickConnector: ConnectorAdapter;
|
|
4411
|
+
|
|
4412
|
+
declare const teableConnector: ConnectorAdapter;
|
|
4413
|
+
|
|
4414
|
+
declare const telnyxConnector: ConnectorAdapter;
|
|
4415
|
+
|
|
4416
|
+
declare const tenzoConnector: ConnectorAdapter;
|
|
4417
|
+
|
|
4418
|
+
declare const textcortexAiConnector: ConnectorAdapter;
|
|
4419
|
+
|
|
4420
|
+
declare const timeOpsConnector: ConnectorAdapter;
|
|
4421
|
+
|
|
4422
|
+
declare const timelinesAiConnector: ConnectorAdapter;
|
|
4423
|
+
|
|
4424
|
+
declare const tlDvConnector: ConnectorAdapter;
|
|
4425
|
+
|
|
4426
|
+
declare const todoistConnector: ConnectorAdapter;
|
|
4427
|
+
|
|
4428
|
+
declare const togglTrackConnector: ConnectorAdapter;
|
|
4429
|
+
|
|
4430
|
+
declare const totalcmsConnector: ConnectorAdapter;
|
|
4431
|
+
|
|
4432
|
+
declare const typefullyConnector: ConnectorAdapter;
|
|
4433
|
+
|
|
4434
|
+
declare const twinLabsConnector: ConnectorAdapter;
|
|
4435
|
+
|
|
4436
|
+
declare const twitterConnector: ConnectorAdapter;
|
|
4437
|
+
|
|
4438
|
+
declare const twilioConnector: ConnectorAdapter;
|
|
4439
|
+
|
|
4440
|
+
declare const upgradechatConnector: ConnectorAdapter;
|
|
4441
|
+
|
|
4442
|
+
declare const vapiConnector: ConnectorAdapter;
|
|
4443
|
+
|
|
4444
|
+
declare const validatedmailsConnector: ConnectorAdapter;
|
|
4445
|
+
|
|
4446
|
+
declare const umamiConnector: ConnectorAdapter;
|
|
4447
|
+
|
|
4448
|
+
declare const uscreenConnector: ConnectorAdapter;
|
|
4449
|
+
|
|
4450
|
+
declare const vboutConnector: ConnectorAdapter;
|
|
4451
|
+
|
|
4452
|
+
declare const vidlab7Connector: ConnectorAdapter;
|
|
4453
|
+
|
|
4454
|
+
declare const videoaskConnector: ConnectorAdapter;
|
|
4455
|
+
|
|
4456
|
+
declare const vlmRunConnector: ConnectorAdapter;
|
|
4457
|
+
|
|
4458
|
+
declare const voucheryIoConnector: ConnectorAdapter;
|
|
4459
|
+
|
|
4460
|
+
declare const vtexConnector: ConnectorAdapter;
|
|
4461
|
+
|
|
4462
|
+
declare const vtigerConnector: ConnectorAdapter;
|
|
4463
|
+
|
|
4464
|
+
declare const wafeqConnector: ConnectorAdapter;
|
|
4465
|
+
|
|
4466
|
+
declare const whatConvertsConnector: ConnectorAdapter;
|
|
4467
|
+
|
|
4468
|
+
declare const webscrapingAiConnector: ConnectorAdapter;
|
|
4469
|
+
|
|
4470
|
+
declare const whatsappConnector: ConnectorAdapter;
|
|
4471
|
+
|
|
4472
|
+
declare const whatsscaleConnector: ConnectorAdapter;
|
|
4473
|
+
|
|
4474
|
+
declare const wonderchatConnector: ConnectorAdapter;
|
|
4475
|
+
|
|
4476
|
+
declare const woodpeckerConnector: ConnectorAdapter;
|
|
4477
|
+
|
|
4478
|
+
declare const wootricConnector: ConnectorAdapter;
|
|
4479
|
+
|
|
4480
|
+
declare const woocommerceConnector: ConnectorAdapter;
|
|
4481
|
+
|
|
4482
|
+
declare const workableConnector: ConnectorAdapter;
|
|
4483
|
+
|
|
4484
|
+
declare const writesonicBulkConnector: ConnectorAdapter;
|
|
4485
|
+
|
|
4486
|
+
declare const wufooConnector: ConnectorAdapter;
|
|
4487
|
+
|
|
4488
|
+
declare const wrikeConnector: ConnectorAdapter;
|
|
4489
|
+
|
|
4490
|
+
declare const youcanbookmeConnector: ConnectorAdapter;
|
|
4491
|
+
|
|
4492
|
+
/**
|
|
4493
|
+
* ZeroBounce adapter — email validation REST API at https://api.zerobounce.net.
|
|
4494
|
+
*
|
|
4495
|
+
* Auth: API token (key) from the ZeroBounce dashboard, sent as a query parameter
|
|
4496
|
+
* `api_key` on requests.
|
|
4497
|
+
*
|
|
4498
|
+
* The activepieces catalog ships a single action — `validate.email` — backed
|
|
4499
|
+
* by `GET /v2/validate`, which validates a single email address and returns
|
|
4500
|
+
* deliverability status, bounce type, and other metadata. We classify it as a
|
|
4501
|
+
* mutation because each call consumes API credits; CAS is `native-idempotency`
|
|
4502
|
+
* since repeat lookups return cached results within the default cache window.
|
|
4503
|
+
*/
|
|
4504
|
+
declare const zerobounceConnector: ConnectorAdapter;
|
|
4505
|
+
|
|
4506
|
+
declare const zeplinConnector: ConnectorAdapter;
|
|
4507
|
+
|
|
4508
|
+
/**
|
|
4509
|
+
* Zuora subscription management connector — core financial operations.
|
|
4510
|
+
* Supports finding accounts, products, rate plans, and invoice creation.
|
|
4511
|
+
* Uses OAuth2 with token-based authentication.
|
|
4512
|
+
*/
|
|
4513
|
+
declare const zuoraConnector: ConnectorAdapter;
|
|
4514
|
+
|
|
4515
|
+
declare const zapierConnector: ConnectorAdapter;
|
|
4516
|
+
|
|
4517
|
+
declare const n8nConnector: ConnectorAdapter;
|
|
4518
|
+
|
|
4519
|
+
declare const makeConnector: ConnectorAdapter;
|
|
4520
|
+
|
|
4521
|
+
declare const pipedreamConnector: ConnectorAdapter;
|
|
4522
|
+
|
|
4523
|
+
export { type DocuSealOptions, type EtsyOptions, type GmailOptions, type GoogleCalendarOptions, type GoogleDocsOptions, type GoogleDriveOptions, type GoogleFormsOptions, type GoogleSheetsOptions, type HelloSignOptions, type HubSpotOptions, type MicrosoftCalendarOptions, type MicrosoftGraphOptions, type MicrosoftTeamsOptions, type NotionDatabaseOptions, type OneDriveOptions, type OutlookMailOptions, type PandaDocOptions, type RestConnectorSpec, type RestCredentialPlacement, type RestOperationSpec, type RestRequestSpec, type SharePointOptions, type SlackOptions, TELEGRAM_FILE_DOWNLOAD_ROOT, type WhatsappBusinessOptions, activecampaignConnector, acumbamailConnector, adobeCreativeCloudConnector, afforaiConnector, agentxConnector, aidbaseConnector, aipriseConnector, airOpsConnector, aircallConnector, airtableConnector, airtopConnector, alaiConnector, altTextAiConnector, alttextifyConnector, amazonBedrockConnector, amazonSecretsManagerConnector, amazonSesConnector, amazonSnsConnector, amazonSqsConnector, amazonTextractConnector, aminosConnector, ampecoConnector, anthropicConnector, apitableConnector, apitemplateIoConnector, apolloConnector, appfollowConnector, asanaConnector, ashbyConnector, asknewsConnector, assemblyaiConnector, attioConnector, auth0Connector, autocallsConnector, avianConnector, avomaConnector, azureAdConnector, azureCommunicationServicesConnector, azureOpenaiConnector, backblazeConnector, bamboohrConnector, barcodeLookupConnector, baremetricsConnector, basecampConnector, beamerConnector, bettermodeConnector, bexioConnector, bigcommerceConnector, biginByZohoConnector, billplzConnector, bitlyConnector, blandAiConnector, blueskyConnector, bolnaConnector, bonjoroConnector, bookedinConnector, boxConnector, braveSearchConnector, brazeConnector, brilliantDirectoriesConnector, browseAiConnector, calComConnector, calendlyConnector, campaignMonitorConnector, cannyConnector, canvaConnector, capsuleCrmConnector, captainDataConnector, cashfreePaymentsConnector, certopusConnector, chainalysisApiConnector, chargebeeConnector, chargekeepConnector, chartlyConnector, chatDataConnector, chatbaseConnector, chatlingConnector, chatnodeConnector, chatwootConnector, checkoutConnector, circleConnector, clearoutConnector, clicdataConnector, clickupConnector, clioConnector, clockifyConnector, clockodoConnector, closeConnector, cloudconvertConnector, cloudinaryConnector, cloutlyConnector, codaConnector, cognitoFormsConnector, cohereConnector, cometapiConnector, comfyicuConnector, confluenceConnector, constantContactConnector, contentfulConnector, convertkitConnector, copperConnector, copyAiConnector, crispConnector, cryptolensConnector, customerIoConnector, customgptConnector, dashworksConnector, datadogConnector, datafuelConnector, datocmsConnector, declarativeRestConnector, deepseekConnector, denserAiConnector, descriptConnector, devinConnector, discordConnector, dittofeedConnector, doctlyConnector, documentproConnector, documergeConnector, docuseal, docusignConnector, dropboxConnector, dubConnector, dumplingAiConnector, dustConnector, easyPeasyAiConnector, ebayConnector, edenAiConnector, elasticEmailConnector, emailitConnector, emailoctopusConnector, enrichlayerConnector, esignaturesConnector, etsyConnector, exaConnector, facebookLeadsConnector, facebookPagesConnector, fathomAnalyticsConnector, fathomConnector, figjamConnector, figmaConnector, filloutFormsConnector, firebaseConnector, fireberryConnector, firecrawlConnector, firefliesAiConnector, flipandoConnector, flowiseConnector, flowluConnector, folkConnector, foreplayCoConnector, formbricksConnector, formstackConnector, fountainConnector, fragmentConnector, frameConnector, freeAgentConnector, freshsalesConnector, freshserviceConnector, frontConnector, gameballConnector, geminiConnector, ghostcmsConnector, gistlyConnector, giteaConnector, githubConnector, gitlabConnector, glideConnector, gmail, googleBigqueryConnector, googleCalendar, googleCloudStorageConnector, googleContactsConnector, googleDocs, googleDrive, googleForms, googleGeminiConnector, googleMyBusinessConnector, googleSearchConnector, googleSearchConsoleConnector, googleSheets, googleSlidesConnector, googleTasksConnector, googleVertexaiConnector, googlechatConnector, gorgiasConnector, gotifyConnector, gptzeroDetectAiConnector, granolaConnector, greenhouseConnector, greenptConnector, greipConnector, griptapeConnector, gristConnector, guideliteConnector, gustoConnector, harvestConnector, hashiCorpVaultConnector, hastewireConnector, heartbeatConnector, hedyConnector, hellosign, helpscoutConnector, heygenConnector, heymarketSmsConnector, housecallProConnector, hubspot, huggingFaceConnector, huggingfaceConnector, humeAiConnector, hunterConnector, hystructConnector, ibmCognoseConnector, imageRouterConnector, imapConnector, influencersClubConnector, insightlyConnector, insightoAiConnector, instaChartsConnector, instantlyAiConnector, instasentConnector, intercomConnector, invoiceninjaConnector, jinaAiConnector, jiraCloudConnector, jiraDataCenterConnector, joggAiConnector, jotformConnector, justInvoiceConnector, kallabotAiConnector, kapsoConnector, kimaiConnector, kissflowConnector, kizeoFormsConnector, klaviyoConnector, klentyConnector, knackConnector, knockConnector, koFiConnector, kommoConnector, kudosityConnector, kustomerConnector, leadConnectorConnector, leapAiConnector, leexiConnector, lemlistConnector, lemonSqueezyConnector, letsCalendarConnector, lettaConnector, leverConnector, lightfunnelsConnector, linearConnector, linkaConnector, linkupConnector, llmrailsConnector, lobstermailConnector, localaiConnector, loftyConnector, logrocketConnector, logsnagConnector, lokaliseConnector, loopsConnector, lucidyaConnector, lushaConnector, luxuryPresenceConnector, magicalApiConnector, mailchainConnector, mailchimpConnector, mailerLiteConnector, mailercheckConnector, mailerooConnector, mailgunConnector, makeConnector, manychatConnector, marketoConnector, mastodonConnector, matomoConnector, matrixConnector, mattermostConnector, mauticConnector, medullarConnector, meetgeekAiConnector, memConnector, messagebirdConnector, metabaseConnector, microsoft365PeopleConnector, microsoft365PlannerConnector, microsoftCalendar, microsoftDynamics365BusinessCentralConnector, microsoftDynamicsCrmConnector, microsoftExcel365Connector, microsoftGraph, microsoftOnedriveConnector, microsoftOnenoteConnector, microsoftOutlookCalendarConnector, microsoftOutlookConnector, microsoftPowerBiConnector, microsoftSharepointConnector, microsoftTeams, microsoftTodoConnector, millionverifierConnector, mindStudioConnector, mindeeConnector, miroConnector, missiveConnector, mixmaxConnector, mixpanelConnector, mollieConnector, mondayConnector, mongodbConnector, n8nConnector, netlifyConnector, niftyConnector, ninjapipeConnector, nocodbConnector, notionConnector, notionDatabase, ntfyConnector, odooConnector, omniCoConnector, omnihrConnector, oneDrive, openPhoneConnector, openRouterConnector, openaiConnector, openmicAiConnector, opnformConnector, opportifyConnector, opsgenieConnector, oracleDatabaseConnector, orimonConnector, outlookMail, paddleConnector, pagerdutyConnector, pandadoc, paperformConnector, parseurConnector, pastefyConnector, paywhirlConnector, pdfmonkeyConnector, peekshotConnector, perplexityAiConnector, personalAiConnector, pinchPaymentsConnector, pineconeConnector, pipedreamConnector, pipedriveConnector, placidConnector, plausibleConnector, pocketbaseConnector, pollybotAiConnector, postgresConnector, posthogConnector, postizConnector, postmarkConnector, predictLeadsConnector, productboardConnector, proxycurlConnector, pushbulletConnector, pushoverConnector, qawafelConnector, qdrantConnector, quadernoConnector, quickbooksConnector, quickzuConnector, raiaAiConnector, rapidtextAiConnector, reachinboxConnector, recallAiConnector, redditConnector, reoonVerifierConnector, replyIoConnector, retableConnector, retellAiConnector, ripplingConnector, robollyConnector, runwareConnector, saasticConnector, saleorConnector, salesforceConnector, sanityConnector, sardisConnector, savvycalConnector, scrapegraphaiConnector, scrapelessConnector, seekTableConnector, sendgridConnector, sendinblueConnector, sendpulseConnector, senjaConnector, sentryConnector, serpstatConnector, serviceNowConnector, sharepoint, shippoConnector, shopifyConnector, shortIoConnector, signNowConnector, signrequestConnector, simplirouteConnector, simplybookmeConnector, skyprepConnector, slack, slackEventsConnector, smartleadConnector, smartsheetConnector, smartsuiteConnector, smooveConnector, smsmodeConnector, snowflakeConnector, socialkitConnector, squareConnector, stripeConnector, stripePackConnector, stripeWebhookReceiverConnector, supabaseConnector, supadataConnector, swarmnodeConnector, systemeIoConnector, tableauConnector, talkableConnector, tallyConnector, teableConnector, telegramConnector, telnyxConnector, tenzoConnector, textcortexAiConnector, ticktickConnector, timeOpsConnector, timelinesAiConnector, tlDvConnector, todoistConnector, togglTrackConnector, totalcmsConnector, trelloConnector, twentyConnector, twilioConnector, twilioSmsConnector, twinLabsConnector, twitterConnector, typeformConnector, typefullyConnector, umamiConnector, upgradechatConnector, uscreenConnector, validatedmailsConnector, vapiConnector, vboutConnector, vercelConnector, videoaskConnector, vidlab7Connector, vlmRunConnector, voucheryIoConnector, vtexConnector, vtigerConnector, wafeqConnector, weaviateConnector, webflowConnector, webhookConnector, webscrapingAiConnector, whatConvertsConnector, whatsappBusiness, whatsappConnector, whatsscaleConnector, wonderchatConnector, woocommerceConnector, woodpeckerConnector, wootricConnector, wordpressConnector, workableConnector, workdayConnector, wrikeConnector, writesonicBulkConnector, wufooConnector, xeroConnector, youcanbookmeConnector, zagomailConnector, zapierConnector, zendeskConnector, zendeskSellConnector, zeplinConnector, zerobounceConnector, zohoBookingsConnector, zohoCrmConnector, zohoDeskConnector, zuoraConnector };
|