@tangle-network/agent-integrations 0.30.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.
Files changed (37) hide show
  1. package/dist/bin/tangle-catalog-runtime.js +5 -5
  2. package/dist/catalog.d.ts +1 -1
  3. package/dist/catalog.js +5 -5
  4. package/dist/{chunk-5ASL5XNX.js → chunk-CDY2ETYT.js} +2 -2
  5. package/dist/chunk-F4YILONK.js +96875 -0
  6. package/dist/chunk-F4YILONK.js.map +1 -0
  7. package/dist/{chunk-DACSERTI.js → chunk-JCHD6L3B.js} +2 -2
  8. package/dist/{chunk-Y6O3MIBW.js → chunk-Q5X3QNHR.js} +1 -1
  9. package/dist/chunk-Q5X3QNHR.js.map +1 -0
  10. package/dist/{chunk-FDZIQVK7.js → chunk-S2MVWQYL.js} +2 -2
  11. package/dist/connect/index.d.ts +1 -1
  12. package/dist/connect/index.js +2 -2
  13. package/dist/connectors/adapters/index.d.ts +3933 -3
  14. package/dist/connectors/adapters/index.js +940 -4
  15. package/dist/connectors/index.d.ts +2 -2
  16. package/dist/connectors/index.js +940 -4
  17. package/dist/consumer.d.ts +1 -1
  18. package/dist/consumer.js +2 -2
  19. package/dist/index.d.ts +2 -2
  20. package/dist/index.js +943 -7
  21. package/dist/middleware/index.d.ts +1 -1
  22. package/dist/middleware/index.js +2 -2
  23. package/dist/registry.d.ts +1 -1
  24. package/dist/registry.js +5 -5
  25. package/dist/runtime.d.ts +1 -1
  26. package/dist/runtime.js +5 -5
  27. package/dist/specs.d.ts +1 -1
  28. package/dist/tangle-catalog-runtime.d.ts +1 -1
  29. package/dist/tangle-catalog-runtime.js +5 -5
  30. package/dist/{tangle-id-C6s2NT2r.d.ts → tangle-id-Dj0ipP4E.d.ts} +1 -1
  31. package/package.json +10 -12
  32. package/dist/chunk-JOILC44P.js +0 -4266
  33. package/dist/chunk-JOILC44P.js.map +0 -1
  34. package/dist/chunk-Y6O3MIBW.js.map +0 -1
  35. /package/dist/{chunk-5ASL5XNX.js.map → chunk-CDY2ETYT.js.map} +0 -0
  36. /package/dist/{chunk-DACSERTI.js.map → chunk-JCHD6L3B.js.map} +0 -0
  37. /package/dist/{chunk-FDZIQVK7.js.map → chunk-S2MVWQYL.js.map} +0 -0
@@ -1,5 +1,5 @@
1
- import { C as ConnectorAdapter } from '../../tangle-id-C6s2NT2r.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-C6s2NT2r.js';
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
- export { type DocuSealOptions, type GmailOptions, type GoogleCalendarOptions, type GoogleDriveOptions, type GoogleSheetsOptions, type HubSpotOptions, type MicrosoftCalendarOptions, type NotionDatabaseOptions, type RestConnectorSpec, type RestCredentialPlacement, type RestOperationSpec, type RestRequestSpec, type SlackOptions, airtableConnector, asanaConnector, declarativeRestConnector, docuseal, githubConnector, gitlabConnector, gmail, googleCalendar, googleDrive, googleSheets, hubspot, microsoftCalendar, notionDatabase, salesforceConnector, slack, slackEventsConnector, stripePackConnector, stripeWebhookReceiverConnector, twilioSmsConnector, webhookConnector };
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 };