@jskit-ai/connectors-catalog 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +192 -0
- package/docs/ai-upstream-notices.md +51 -0
- package/docs/ai.md +191 -0
- package/docs/airtable.md +130 -0
- package/docs/algolia.md +190 -0
- package/docs/amazon-redshift.md +229 -0
- package/docs/amplitude.md +210 -0
- package/docs/apify.md +162 -0
- package/docs/apollo-io.md +200 -0
- package/docs/asana.md +126 -0
- package/docs/ashby.md +188 -0
- package/docs/atlassian.md +224 -0
- package/docs/attention.md +162 -0
- package/docs/aws-athena.md +150 -0
- package/docs/aws-credentials.md +75 -0
- package/docs/aws-s3.md +193 -0
- package/docs/bigquery.md +146 -0
- package/docs/brevo.md +122 -0
- package/docs/calendly.md +158 -0
- package/docs/canva.md +191 -0
- package/docs/chargebee.md +192 -0
- package/docs/clay.md +194 -0
- package/docs/clickhouse.md +242 -0
- package/docs/confidence-exp.md +74 -0
- package/docs/confidence-flags.md +75 -0
- package/docs/confidence-oauth.md +137 -0
- package/docs/contentful.md +123 -0
- package/docs/databricks.md +180 -0
- package/docs/dbt-semantic-layer.md +175 -0
- package/docs/elevenlabs.md +102 -0
- package/docs/figma.md +132 -0
- package/docs/firebase-cloud-messaging.md +262 -0
- package/docs/firecrawl.md +137 -0
- package/docs/fireflies.md +95 -0
- package/docs/fireworks-ai.md +53 -0
- package/docs/gatewayapi.md +113 -0
- package/docs/gemini-enterprise.md +224 -0
- package/docs/github-api.md +133 -0
- package/docs/gitlab-api.md +138 -0
- package/docs/gmail.md +133 -0
- package/docs/gong.md +205 -0
- package/docs/google-ads.md +156 -0
- package/docs/google-analytics.md +202 -0
- package/docs/google-docs.md +105 -0
- package/docs/google-drive.md +108 -0
- package/docs/google-maps-platform.md +208 -0
- package/docs/google-oauth.md +123 -0
- package/docs/google-search-console.md +124 -0
- package/docs/google-sheets.md +94 -0
- package/docs/google-slides.md +95 -0
- package/docs/granola.md +178 -0
- package/docs/hex.md +161 -0
- package/docs/heygen.md +124 -0
- package/docs/hubspot.md +142 -0
- package/docs/incident-io.md +118 -0
- package/docs/inngest.md +178 -0
- package/docs/klipy.md +149 -0
- package/docs/lexware.md +144 -0
- package/docs/lightspeed.md +193 -0
- package/docs/linear.md +137 -0
- package/docs/linkedin.md +196 -0
- package/docs/logo-dev.md +152 -0
- package/docs/mailgun.md +153 -0
- package/docs/mapbox.md +174 -0
- package/docs/microsoft-excel.md +97 -0
- package/docs/microsoft-fabric.md +249 -0
- package/docs/microsoft-oauth.md +143 -0
- package/docs/microsoft-onedrive.md +76 -0
- package/docs/microsoft-onenote.md +75 -0
- package/docs/microsoft-outlook.md +90 -0
- package/docs/microsoft-powerpoint.md +119 -0
- package/docs/microsoft-sharepoint.md +75 -0
- package/docs/microsoft-teams.md +72 -0
- package/docs/microsoft-word.md +119 -0
- package/docs/miro.md +117 -0
- package/docs/n8n.md +169 -0
- package/docs/notion.md +137 -0
- package/docs/oura.md +161 -0
- package/docs/paddle.md +168 -0
- package/docs/perplexity.md +85 -0
- package/docs/pipedrive.md +120 -0
- package/docs/polar.md +63 -0
- package/docs/posthog.md +227 -0
- package/docs/prestashop.md +151 -0
- package/docs/replicate.md +60 -0
- package/docs/resend.md +153 -0
- package/docs/salesforce.md +234 -0
- package/docs/sanity.md +122 -0
- package/docs/semrush.md +276 -0
- package/docs/sentry.md +112 -0
- package/docs/sevdesk.md +107 -0
- package/docs/shopify.md +206 -0
- package/docs/slack.md +257 -0
- package/docs/snowflake.md +271 -0
- package/docs/storyblok.md +130 -0
- package/docs/stripe.md +77 -0
- package/docs/supabase.md +51 -0
- package/docs/tally.md +105 -0
- package/docs/telegram.md +165 -0
- package/docs/tiktok.md +201 -0
- package/docs/twilio.md +284 -0
- package/docs/twitch.md +428 -0
- package/docs/wave.md +440 -0
- package/docs/wix.md +1249 -0
- package/docs/wiz.md +177 -0
- package/docs/woocommerce.md +400 -0
- package/docs/wordpress-com.md +358 -0
- package/docs/wordpress-self-hosted.md +252 -0
- package/docs/workday.md +292 -0
- package/docs/x-twitter.md +188 -0
- package/docs/xero.md +429 -0
- package/docs/zoho-books.md +214 -0
- package/docs/zoho-crm.md +192 -0
- package/package.json +153 -0
- package/patterns/ai-connections/PATTERN.md +84 -0
- package/patterns/ai-connections/example/ai-model.js +11 -0
- package/patterns/ai-connections/example/perplexity-answer.js +29 -0
- package/patterns/api-key-connection/PATTERN.md +368 -0
- package/patterns/api-key-connection/example/connections.js +18 -0
- package/patterns/api-key-connection/example/integrations.json +19 -0
- package/patterns/assistant-mcp/PATTERN.md +110 -0
- package/patterns/assistant-mcp/example/integrations.json +13 -0
- package/patterns/assistant-mcp-oauth/PATTERN.md +235 -0
- package/patterns/assistant-mcp-oauth/example/integrations.json +102 -0
- package/patterns/aws-storage-queries/PATTERN.md +169 -0
- package/patterns/aws-storage-queries/example/formats/data-formats.js +35 -0
- package/patterns/aws-storage-queries/example/formats/package-lock.json +49 -0
- package/patterns/aws-storage-queries/example/formats/package.json +12 -0
- package/patterns/aws-storage-queries/example/formats/verify-formats.mjs +37 -0
- package/patterns/aws-storage-queries/example/integrations.json +38 -0
- package/patterns/aws-storage-queries/example/s3-transfer.js +34 -0
- package/patterns/event-delivery/PATTERN.md +151 -0
- package/patterns/event-delivery/example/integrations.json +17 -0
- package/patterns/firebase-messaging/PATTERN.md +156 -0
- package/patterns/firebase-messaging/example/server/notifications.js +23 -0
- package/patterns/google-ads-search/PATTERN.md +92 -0
- package/patterns/google-ads-search/example/ads-setup.js +25 -0
- package/patterns/oauth-connection/PATTERN.md +724 -0
- package/patterns/oauth-connection/example/integrations.json +20 -0
- package/patterns/paddle-catalogue/PATTERN.md +78 -0
- package/patterns/paddle-catalogue/example/create-products.js +38 -0
- package/patterns/public-image/PATTERN.md +84 -0
- package/patterns/public-image/example/integrations.json +13 -0
- package/patterns/public-image/example/logo-url.js +16 -0
- package/patterns/redshift-queries/PATTERN.md +150 -0
- package/patterns/redshift-queries/example/integrations.json +33 -0
- package/patterns/source-scanning/PATTERN.md +83 -0
- package/patterns/source-scanning/example/source-scanner.js +13 -0
- package/src/client/firebase-cloud-messaging.js +10 -0
- package/src/client/google-analytics.js +72 -0
- package/src/client/google-maps-platform.js +39 -0
- package/src/client/logo-dev.js +36 -0
- package/src/server/ai.js +46 -0
- package/src/server/airtable.js +67 -0
- package/src/server/algolia.js +63 -0
- package/src/server/amazon-redshift.js +96 -0
- package/src/server/amplitude.js +31 -0
- package/src/server/apify.js +68 -0
- package/src/server/apollo-io.js +85 -0
- package/src/server/asana.js +64 -0
- package/src/server/ashby.js +61 -0
- package/src/server/atlassian.js +32 -0
- package/src/server/attention.js +93 -0
- package/src/server/aws-athena.js +82 -0
- package/src/server/aws-s3.js +49 -0
- package/src/server/awsTransport.js +75 -0
- package/src/server/bigquery.js +97 -0
- package/src/server/brevo.js +97 -0
- package/src/server/calendly.js +77 -0
- package/src/server/canva.js +13 -0
- package/src/server/chargebee.js +88 -0
- package/src/server/clay.js +78 -0
- package/src/server/clickhouse.js +66 -0
- package/src/server/confidence.js +29 -0
- package/src/server/contentful.js +40 -0
- package/src/server/databricks.js +55 -0
- package/src/server/dbt-semantic-layer.js +95 -0
- package/src/server/elevenlabs.js +81 -0
- package/src/server/figma.js +24 -0
- package/src/server/firebase-cloud-messaging.js +111 -0
- package/src/server/firecrawl.js +70 -0
- package/src/server/fireflies.js +31 -0
- package/src/server/fireworks-ai.js +16 -0
- package/src/server/gatewayapi.js +48 -0
- package/src/server/gemini-enterprise.js +47 -0
- package/src/server/github-api.js +90 -0
- package/src/server/gitlab-api.js +67 -0
- package/src/server/gmail.js +60 -0
- package/src/server/gong.js +52 -0
- package/src/server/google-ads-search.js +134 -0
- package/src/server/google-ads.js +80 -0
- package/src/server/google-docs.js +36 -0
- package/src/server/google-drive.js +71 -0
- package/src/server/google-maps-platform.js +90 -0
- package/src/server/google-search-console.js +31 -0
- package/src/server/google-sheets.js +60 -0
- package/src/server/google-slides.js +36 -0
- package/src/server/google.js +61 -0
- package/src/server/granola.js +115 -0
- package/src/server/graphqlOperation.js +15 -0
- package/src/server/hex.js +29 -0
- package/src/server/heygen.js +54 -0
- package/src/server/hubspot.js +85 -0
- package/src/server/incident-io.js +68 -0
- package/src/server/inngest.js +86 -0
- package/src/server/jsonOperation.js +34 -0
- package/src/server/klipy.js +34 -0
- package/src/server/lexware.js +59 -0
- package/src/server/lightspeed.js +82 -0
- package/src/server/linear.js +52 -0
- package/src/server/linkedin.js +74 -0
- package/src/server/mailgun.js +76 -0
- package/src/server/mapbox.js +46 -0
- package/src/server/mcpRegistration.js +41 -0
- package/src/server/mcpTransport.js +60 -0
- package/src/server/microsoft-excel.js +67 -0
- package/src/server/microsoft-fabric.js +81 -0
- package/src/server/microsoft-onedrive.js +58 -0
- package/src/server/microsoft-onenote.js +52 -0
- package/src/server/microsoft-outlook.js +58 -0
- package/src/server/microsoft-powerpoint.js +5 -0
- package/src/server/microsoft-sharepoint.js +46 -0
- package/src/server/microsoft-teams.js +29 -0
- package/src/server/microsoft-word.js +5 -0
- package/src/server/microsoft.js +88 -0
- package/src/server/miro.js +29 -0
- package/src/server/n8n.js +78 -0
- package/src/server/notion.js +76 -0
- package/src/server/oura.js +48 -0
- package/src/server/paddle.js +83 -0
- package/src/server/perplexity.js +15 -0
- package/src/server/pipedrive.js +95 -0
- package/src/server/polar.js +20 -0
- package/src/server/posthog.js +44 -0
- package/src/server/prestashop.js +42 -0
- package/src/server/replicate.js +42 -0
- package/src/server/resend.js +93 -0
- package/src/server/salesforce.js +84 -0
- package/src/server/sanity.js +31 -0
- package/src/server/semrush.js +359 -0
- package/src/server/sentry.js +30 -0
- package/src/server/sevdesk.js +20 -0
- package/src/server/shopify.js +99 -0
- package/src/server/slack.js +143 -0
- package/src/server/snowflake.js +139 -0
- package/src/server/storyblok.js +49 -0
- package/src/server/stripe.js +13 -0
- package/src/server/supabase.js +13 -0
- package/src/server/tally.js +78 -0
- package/src/server/telegram.js +55 -0
- package/src/server/tiktok.js +86 -0
- package/src/server/twilio.js +90 -0
- package/src/server/twitch.js +409 -0
- package/src/server/wave.js +520 -0
- package/src/server/wix.js +1048 -0
- package/src/server/wiz.js +117 -0
- package/src/server/woocommerce.js +412 -0
- package/src/server/wordpress-com.js +236 -0
- package/src/server/wordpress-self-hosted.js +134 -0
- package/src/server/workday.js +136 -0
- package/src/server/x-twitter.js +110 -0
- package/src/server/xero.js +397 -0
- package/src/server/zoho-books.js +90 -0
- package/src/server/zoho-crm.js +89 -0
- package/src/server/zohoOAuth.js +21 -0
- package/src/shared/ai-models.json +8049 -0
- package/src/shared/ai.js +63 -0
- package/src/shared/algolia.js +29 -0
- package/src/shared/amazon-redshift.js +51 -0
- package/src/shared/amplitude.js +28 -0
- package/src/shared/atlassian.js +43 -0
- package/src/shared/aws.js +72 -0
- package/src/shared/canva.js +66 -0
- package/src/shared/chargebee.js +26 -0
- package/src/shared/clickhouse.js +38 -0
- package/src/shared/confidence.js +28 -0
- package/src/shared/databricks.js +33 -0
- package/src/shared/dbt-semantic-layer.js +32 -0
- package/src/shared/definitions.js +140 -0
- package/src/shared/figma.js +21 -0
- package/src/shared/firebase-cloud-messaging.js +45 -0
- package/src/shared/gemini-enterprise.js +33 -0
- package/src/shared/gong.js +33 -0
- package/src/shared/google-ads-search.js +31 -0
- package/src/shared/google-ads.js +28 -0
- package/src/shared/google-maps-platform.js +28 -0
- package/src/shared/google.js +133 -0
- package/src/shared/granola.js +25 -0
- package/src/shared/hex.js +28 -0
- package/src/shared/inngest.js +35 -0
- package/src/shared/lightspeed.js +75 -0
- package/src/shared/linkedin.js +27 -0
- package/src/shared/logo-dev.js +21 -0
- package/src/shared/mapbox.js +38 -0
- package/src/shared/mcp.js +92 -0
- package/src/shared/microsoft-fabric.js +47 -0
- package/src/shared/microsoft.js +231 -0
- package/src/shared/miro.js +27 -0
- package/src/shared/oura.js +23 -0
- package/src/shared/posthog.js +33 -0
- package/src/shared/prestashop.js +23 -0
- package/src/shared/salesforce.js +36 -0
- package/src/shared/semrush.js +24 -0
- package/src/shared/shopify.js +51 -0
- package/src/shared/siteUrl.js +12 -0
- package/src/shared/slack.js +88 -0
- package/src/shared/snowflake.js +55 -0
- package/src/shared/tiktok.js +22 -0
- package/src/shared/tokens.js +747 -0
- package/src/shared/twilio.js +41 -0
- package/src/shared/twitch.js +49 -0
- package/src/shared/wave.js +52 -0
- package/src/shared/wix.js +40 -0
- package/src/shared/wiz.js +41 -0
- package/src/shared/wordpress-com.js +30 -0
- package/src/shared/wordpress.js +69 -0
- package/src/shared/workday.js +50 -0
- package/src/shared/x-twitter.js +19 -0
- package/src/shared/xero.js +46 -0
- package/src/shared/zoho-books.js +39 -0
- package/src/shared/zoho-crm.js +43 -0
- package/src/shared/zoho-regions.js +12 -0
- package/test/ai.test.js +136 -0
- package/test/airtable.test.js +125 -0
- package/test/algolia.test.js +207 -0
- package/test/amazon-redshift.test.js +272 -0
- package/test/amplitude.test.js +239 -0
- package/test/apify.test.js +93 -0
- package/test/apollo-io.test.js +125 -0
- package/test/asana.test.js +99 -0
- package/test/ashby.test.js +97 -0
- package/test/atlassian.test.js +249 -0
- package/test/attention.test.js +79 -0
- package/test/aws.test.js +405 -0
- package/test/brevo.test.js +71 -0
- package/test/calendly.test.js +136 -0
- package/test/canva.test.js +258 -0
- package/test/chargebee.test.js +195 -0
- package/test/clickhouse.test.js +278 -0
- package/test/confidence.test.js +205 -0
- package/test/databricks.test.js +253 -0
- package/test/dbt-semantic-layer.test.js +221 -0
- package/test/designMcp.test.js +336 -0
- package/test/elevenlabs.test.js +52 -0
- package/test/firebase-cloud-messaging.test.js +242 -0
- package/test/firecrawl.test.js +66 -0
- package/test/gemini-enterprise.test.js +218 -0
- package/test/github-api.test.js +167 -0
- package/test/gitlab-api.test.js +160 -0
- package/test/gong.test.js +192 -0
- package/test/google-ads.test.js +350 -0
- package/test/google-maps-platform.test.js +191 -0
- package/test/google.test.js +710 -0
- package/test/granola.test.js +240 -0
- package/test/hex.test.js +253 -0
- package/test/heygen.test.js +121 -0
- package/test/hubspot.test.js +103 -0
- package/test/inngest.test.js +219 -0
- package/test/lightspeed.test.js +250 -0
- package/test/linear.test.js +146 -0
- package/test/linkedin.test.js +243 -0
- package/test/logo-dev.test.js +79 -0
- package/test/mailgun.test.js +107 -0
- package/test/mapbox.test.js +181 -0
- package/test/mcp.test.js +227 -0
- package/test/microsoft-fabric.test.js +258 -0
- package/test/microsoft.test.js +554 -0
- package/test/n8nOAuth.test.js +188 -0
- package/test/notionOAuth.test.js +183 -0
- package/test/oura.test.js +211 -0
- package/test/paddleCatalogue.test.js +51 -0
- package/test/paddlePermissions.test.js +101 -0
- package/test/perplexityComposition.test.js +39 -0
- package/test/pipedriveOAuth.test.js +140 -0
- package/test/posthog.test.js +200 -0
- package/test/prestashop.test.js +207 -0
- package/test/resend.test.js +163 -0
- package/test/salesforce.test.js +276 -0
- package/test/semrush.test.js +479 -0
- package/test/sentry.test.js +35 -0
- package/test/shopify.test.js +247 -0
- package/test/slack.test.js +320 -0
- package/test/snowflake.test.js +391 -0
- package/test/tally.test.js +75 -0
- package/test/telegram.test.js +58 -0
- package/test/tiktok.test.js +243 -0
- package/test/tokens.test.js +1079 -0
- package/test/twilio.test.js +221 -0
- package/test/twitch.test.js +573 -0
- package/test/wave.test.js +678 -0
- package/test/wix.test.js +1099 -0
- package/test/wiz.test.js +185 -0
- package/test/wordpress-com.test.js +469 -0
- package/test/wordpress.test.js +660 -0
- package/test/workday.test.js +314 -0
- package/test/x-twitter.test.js +256 -0
- package/test/xero.test.js +700 -0
- package/test/zoho-books.test.js +253 -0
- package/test/zoho-crm.test.js +223 -0
package/README.md
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Connector catalogue
|
|
2
|
+
|
|
3
|
+
Browser-safe definitions are exported from `@jskit-ai/connectors-catalog/shared`.
|
|
4
|
+
Import a provider individually from `@jskit-ai/connectors-catalog/server/<id>`;
|
|
5
|
+
the id is the linked guide's filename without `.md`.
|
|
6
|
+
HTTP and MCP providers compose with `createConnectionService` from connectors-core; each
|
|
7
|
+
contains request validation and a small useful operation set, not application
|
|
8
|
+
business workflows. There is no automatic provider installation or activation.
|
|
9
|
+
|
|
10
|
+
Each application owns its registration, callback, credentials and grants. Read
|
|
11
|
+
the core package's [callback guide](../connectors-core/docs/oauth-callbacks.md)
|
|
12
|
+
and [application setup contract](../connectors-core/docs/online-setup.md), which
|
|
13
|
+
apply to hosted editors, installed editors and CLI use. There is no shared
|
|
14
|
+
Vibe64 provider registration or token gateway.
|
|
15
|
+
|
|
16
|
+
## Finding setup instructions from a CLI or coding agent
|
|
17
|
+
|
|
18
|
+
Start with the selected provider's guide in `docs/<provider-id>.md`, linked
|
|
19
|
+
below. It describes credential acquisition, required permissions, environment
|
|
20
|
+
choices and the adapter's supported operations. Read only the selected
|
|
21
|
+
provider's recipe and shared contracts it references. A configured credential
|
|
22
|
+
is not proof that the application's requested feature is implemented.
|
|
23
|
+
|
|
24
|
+
`integrations.json` is application-owned source; secret values belong in the
|
|
25
|
+
application's Env or private grant storage. The same files can be authored by
|
|
26
|
+
hand, by a coding agent or by an editor. Genesis is optional: when used, selected
|
|
27
|
+
Stack guidance should lead to these same documents, while the application
|
|
28
|
+
records its actual environment requirements and implemented commands.
|
|
29
|
+
|
|
30
|
+
For full Stripe/Paddle checkout, subscriptions, features and usage credits,
|
|
31
|
+
continue to [application-owned payments](../payments-core/README.md) and its
|
|
32
|
+
[standalone composition](../payments-core/docs/standalone.md). The narrow
|
|
33
|
+
catalogue connector alone does not implement billing. Other technologies can
|
|
34
|
+
read the [static payment contract](../payments-core/docs/contract.md), schema
|
|
35
|
+
and examples without executing JavaScript; their own framework owns runtime
|
|
36
|
+
implementation. An editor management command is optional for standalone CLI
|
|
37
|
+
use, and does not replace application authorization.
|
|
38
|
+
|
|
39
|
+
Definitions can expose `verificationFields` with `name`, `label`, `hint` and `required` for
|
|
40
|
+
non-secret text inputs used by a provider's check operation. Sheets, Docs and
|
|
41
|
+
Slides expose their resource IDs this way. Excel supplies a workbook drive item
|
|
42
|
+
ID, SharePoint a site-search term, PostHog a flag-evaluation identity, Maps an
|
|
43
|
+
address and X a public username. Maps and X field hints identify provider usage
|
|
44
|
+
charges before the explicit check. A UI passes entered values through
|
|
45
|
+
`verificationInput` on Connect; CLI callers supply the same operation input.
|
|
46
|
+
These are check parameters, separate from source configuration and credentials.
|
|
47
|
+
Provider request validation remains authoritative.
|
|
48
|
+
|
|
49
|
+
| Provider | Export | Initial operations | Authentication |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| [AI](docs/ai.md) | `createAiConnectionResolver` | Static catalogue and authorized SDK parameters; app-owned inference | Free public Zen default, administrator Env key or private individual grant |
|
|
52
|
+
| [Wiz](docs/wiz.md) | `createWizScanner` | Authorised source-directory scan, policy verdict and report; separate CLI runtime | Own Cognito service account; installed Wiz v1 CLI |
|
|
53
|
+
| [Shopify](docs/shopify.md) | `shopifyProvider` | `products.list`, `products.create`, `products.update`, `products.delete`; assistant policies | Organization client credentials or existing Admin API token |
|
|
54
|
+
| [Confidence Flags](docs/confidence-flags.md) | `confidenceFlagsProvider`, `registerConfidenceClient` | `tools.list`, `tools.call`; explicit client setup | Assistant OAuth for flag management |
|
|
55
|
+
| [Confidence Exp](docs/confidence-exp.md) | `confidenceExpProvider`, `registerConfidenceClient` | `tools.list`, `tools.call`; explicit client setup | Assistant OAuth for experiment analysis |
|
|
56
|
+
| [Lightspeed](docs/lightspeed.md) | `lightspeedProvider` | `products.list`, `customers.list`, `outlets.list`, `sales.list`, `inventory.list` | Own X-Series OAuth registration and store prefix |
|
|
57
|
+
| [Microsoft Fabric](docs/microsoft-fabric.md) | `microsoftFabricProvider` | `connection.check`, `schema.types`, `graphql.execute` | Tenant-specific user consent or service principal; one GraphQL endpoint |
|
|
58
|
+
| [X (Twitter)](docs/x-twitter.md) | `xTwitterProvider` | `users.lookup`, `users.posts` | App-only bearer token; public reads |
|
|
59
|
+
| [Snowflake](docs/snowflake.md) | `snowflakeProvider` | `databases.list` | Account-specific custom OAuth; optional role and bounded metadata pages |
|
|
60
|
+
| [Workday](docs/workday.md) | `workdayProvider` | `workers.me`, `workers.list` | Per-user confidential tenant OAuth; Staffing v7 worker reads |
|
|
61
|
+
| [Gemini Enterprise](docs/gemini-enterprise.md) | `geminiEnterpriseProvider` | `engine.get`, `search` | Google OAuth; configured project, region and engine; shared search identity |
|
|
62
|
+
| [Wix](docs/wix.md) | `wixProvider` | `sites.list` | Own account API key; explicit site pages |
|
|
63
|
+
| [TikTok](docs/tiktok.md) | `tiktokProvider` | `profile.read`, `profile.extended`, `profile.stats`, `videos.list` | Own confidential Web OAuth; optional profile/statistics/video permissions |
|
|
64
|
+
| [LinkedIn](docs/linkedin.md) | `linkedinProvider` | `profile.read`, `posts.create` | Own OAuth; approved member text publishing; reconnect unless refresh is approved |
|
|
65
|
+
| [Google Ads](docs/google-ads.md) | `googleAdsProvider` | `customers.listAccessible`, `customers.listClients`, `reports.search` | Own Google OAuth plus developer token or approved Cloud organization |
|
|
66
|
+
| [Salesforce](docs/salesforce.md) | `salesforceProvider` | `limits.read`, `objects.list`, `objects.describe`, `query.read`, `query.next` | Own confidential OAuth, My Domain and production/sandbox settings |
|
|
67
|
+
| [Firebase Cloud Messaging](docs/firebase-cloud-messaging.md) | `firebaseCloudMessagingProvider` | `connection.check`, `messages.validate`, `messages.send`; public web configuration helper | Explicit service-account JSON reference and target project; optional web push |
|
|
68
|
+
| [dbt Semantic Layer](docs/dbt-semantic-layer.md) | `dbtSemanticLayerProvider` | `environment.read`, `metrics.list`, `dimensions.list`, `savedQueries.list` | Customer service token, GraphQL host and exact text Environment ID; metadata only |
|
|
69
|
+
| [Databricks](docs/databricks.md) | `databricksProvider` | `jobs.list`, `jobs.get` | Custom user OAuth application or service principal; per-workspace URL |
|
|
70
|
+
| [Hex](docs/hex.md) | `hexProvider`, `registerHexClient` | `tools.list`, `tools.call`; explicit client setup | Assistant OAuth; standard, EU and HIPAA endpoints |
|
|
71
|
+
| [Granola](docs/granola.md) | `granolaProvider` | `notes.list`, `notes.get`, `folders.list`, `transcripts.list` | Own personal/workspace API key; MCP is separate |
|
|
72
|
+
| [Zoho Books](docs/zoho-books.md) | `zohoBooksProvider` | `organizations.list`, `contacts.list`, `invoices.list` | Own regional web OAuth registration; explicit organisation selection |
|
|
73
|
+
| [Zoho CRM](docs/zoho-crm.md) | `zohoCrmProvider` | `users.current`, `leads.list`, `contacts.list`, `accounts.list`, `deals.list` | Own regional web OAuth registration |
|
|
74
|
+
| [Wave](docs/wave.md) | `waveProvider` | `user.read`, `businesses.list`, `customers.list`, `invoices.list` | Own web OAuth registration |
|
|
75
|
+
| [Semrush](docs/semrush.md) | `semrushProvider` | `projects.list`, `projects.get` | Own V4 API key with read permission |
|
|
76
|
+
| [Xero](docs/xero.md) | `xeroProvider` | `connections.list`, `organisation.read`, `contacts.list`, `invoices.list` | Own web OAuth registration, Basic client authentication |
|
|
77
|
+
| [Resend](docs/resend.md) | `resendProvider` | Domains, transactional sending, contacts/segments and draft/review/send broadcasts | Own API key, Full access |
|
|
78
|
+
| [Firecrawl](docs/firecrawl.md) | `firecrawlProvider` | `credits.read`, `pages.scrape` | Own team API key |
|
|
79
|
+
| [Gmail](docs/gmail.md) | `gmailProvider` | `profile.read`, `messages.list`, `messages.get` | Own OAuth registration |
|
|
80
|
+
| [Google Drive](docs/google-drive.md) | `googleDriveProvider` | `files.list` | Own OAuth registration |
|
|
81
|
+
| [Google Sheets](docs/google-sheets.md) | `googleSheetsProvider` | `spreadsheets.get`, `values.get` | Own OAuth registration |
|
|
82
|
+
| [Google Docs](docs/google-docs.md) | `googleDocsProvider` | `documents.get` | Own OAuth registration |
|
|
83
|
+
| [Google Slides](docs/google-slides.md) | `googleSlidesProvider` | `presentations.get` | Own OAuth registration |
|
|
84
|
+
| [Google Search Console](docs/google-search-console.md) | `googleSearchConsoleProvider` | `sites.list` | Own OAuth registration |
|
|
85
|
+
| [Airtable](docs/airtable.md) | `airtableProvider` | `bases.list` | Own personal access token |
|
|
86
|
+
| [Notion](docs/notion.md) | `notionProvider` | Search, page/block reads and writes, data-source queries; separate MCP tools | Own internal token, REST OAuth or separate MCP client |
|
|
87
|
+
| [Brevo](docs/brevo.md) | `brevoProvider` | `contacts.list` | Own API key |
|
|
88
|
+
| [ElevenLabs](docs/elevenlabs.md) | `elevenlabsProvider` | `account.read`, `voices.list` | Own API key |
|
|
89
|
+
| [GitHub API](docs/github-api.md) | `githubApiProvider` | `account.read`, `repositories.list` | Own personal access token |
|
|
90
|
+
| [Apify](docs/apify.md) | `apifyProvider` | `actors.list` | Own API token |
|
|
91
|
+
| [Calendly](docs/calendly.md) | `calendlyProvider` | `profile.read`, `eventTypes.list` | Own personal access token |
|
|
92
|
+
| [HubSpot](docs/hubspot.md) | `hubspotProvider` | Contact/deal list/get/create/update, relationships and pipeline reads | Own private/static token or project OAuth |
|
|
93
|
+
| [Linear](docs/linear.md) | `linearProvider` | `profile.read`, `issues.list` | Own personal API key |
|
|
94
|
+
| [Pipedrive](docs/pipedrive.md) | `pipedriveProvider` | Profile; deals, people, organizations, activities, leads and pipeline reads; basic record create/update | Own user/company API token |
|
|
95
|
+
| [GitLab API](docs/gitlab-api.md) | `gitlabApiProvider` | `profile.read`, `projects.list` | Own GitLab.com personal access token |
|
|
96
|
+
| [Tally](docs/tally.md) | `tallyProvider` | `forms.list` | Own API key |
|
|
97
|
+
| [Contentful](docs/contentful.md) | `contentfulProvider` | `entries.list` | Own Content Delivery key, space and environment |
|
|
98
|
+
| [Asana](docs/asana.md) | `asanaProvider` | `workspaces.list` | Own personal access token |
|
|
99
|
+
| [Microsoft Outlook](docs/microsoft-outlook.md) | `microsoftOutlookProvider` | `folders.list`, `inbox.list` | Own delegated OAuth registration |
|
|
100
|
+
| [Microsoft OneDrive](docs/microsoft-onedrive.md) | `microsoftOneDriveProvider` | `items.list/get`, `files.upload` | Own delegated OAuth registration |
|
|
101
|
+
| [Microsoft Excel](docs/microsoft-excel.md) | `microsoftExcelProvider` | `worksheets.list`, `ranges.get/update`, `sessions.create/close` | Own delegated OAuth registration |
|
|
102
|
+
| [Microsoft Teams](docs/microsoft-teams.md) | `microsoftTeamsProvider` | Team/channel/chat reads and message/reply sends | Own organizational OAuth registration |
|
|
103
|
+
| [Microsoft OneNote](docs/microsoft-onenote.md) | `microsoftOneNoteProvider` | `notebooks.list`, `sections.list`, `pages.list/content/create/append` | Own delegated OAuth registration |
|
|
104
|
+
| [Microsoft Word](docs/microsoft-word.md) | `microsoftWordProvider` | `items.list`, `items.get` | Own delegated OAuth registration |
|
|
105
|
+
| [Microsoft PowerPoint](docs/microsoft-powerpoint.md) | `microsoftPowerPointProvider` | `items.list`, `items.get` | Own delegated OAuth registration |
|
|
106
|
+
| [Microsoft SharePoint](docs/microsoft-sharepoint.md) | `microsoftSharePointProvider` | `sites.search` | Own organizational OAuth registration |
|
|
107
|
+
|
|
108
|
+
| [Stripe](docs/stripe.md) | `stripeProvider` | `balance.read` | Own restricted/secret API key |
|
|
109
|
+
| [Replicate](docs/replicate.md) | `replicateProvider` | Account/hardware, model schema, prediction submit/poll/cancel | Own API token |
|
|
110
|
+
| [Sentry](docs/sentry.md) | `sentryProvider` | `organizations.list` | Own Sentry.io personal token |
|
|
111
|
+
| [incident.io](docs/incident-io.md) | `incidentIoProvider` | Incidents/follow-ups, alert resolution, schedule reads, catalogue entries | Own API key |
|
|
112
|
+
| [Fireflies](docs/fireflies.md) | `firefliesProvider` | `profile.read`, `transcripts.list` | Own API key |
|
|
113
|
+
|
|
114
|
+
| [HeyGen](docs/heygen.md) | `heygenProvider` | `profile.read`, `voices.list` | Own API key |
|
|
115
|
+
| [Perplexity](docs/perplexity.md) | `perplexityProvider` | `requests.list`, `models.list` | Own project API key |
|
|
116
|
+
| [Supabase](docs/supabase.md) | `supabaseProvider` | `projects.list` | Own Management API personal token |
|
|
117
|
+
| [Google Analytics](docs/google-analytics.md) | `googleAnalyticsDefinition` (shared configuration) | Framework-owned Google tag | Public Measurement ID |
|
|
118
|
+
| [BigQuery](docs/bigquery.md) | `bigqueryProvider` | `projects.list` | Own OAuth registration |
|
|
119
|
+
| [Paddle](docs/paddle.md) | `paddleProvider` | `products.list` | Own sandbox/live API key |
|
|
120
|
+
| [Mailgun](docs/mailgun.md) | `mailgunProvider` | `domains.list` | Own US/EU account API key |
|
|
121
|
+
| [Fireworks AI](docs/fireworks-ai.md) | `fireworksAiProvider` | `accounts.list` | Own API key with account read access |
|
|
122
|
+
| [GatewayAPI](docs/gatewayapi.md) | `gatewayApiProvider` | `balance.read` | Own Global/EU API token |
|
|
123
|
+
| [Polar](docs/polar.md) | `polarProvider` | `products.list` | Own sandbox/production organization token |
|
|
124
|
+
| [Storyblok](docs/storyblok.md) | `storyblokProvider` | `space.read`, `stories.list` | Own public/preview space token, five regions |
|
|
125
|
+
| [Twitch](docs/twitch.md) | `twitchProvider` | `token.validate`, `profile.read`, `channels.followed` | Own application-specific confidential OAuth registration |
|
|
126
|
+
| [Slack](docs/slack.md) | `slackProvider` | `auth.test`, `channels.list`, `groups.list`, `directMessages.list`, `groupMessages.list` | Own OAuth registration, connected user or installed bot |
|
|
127
|
+
| [Oura](docs/oura.md) | `ouraProvider` | Daily/detailed sleep, readiness, activity, heart rate and profile reads | Own per-user OAuth registration |
|
|
128
|
+
| [Algolia](docs/algolia.md) | `algoliaProvider` | `indices.list`, `index.search` | Own application ID and backend API key; optional frontend key reference |
|
|
129
|
+
| [Twilio](docs/twilio.md) | `twilioProvider` | `calls.list` | Own regional Account SID, Standard API Key SID and secret |
|
|
130
|
+
| [Gong](docs/gong.md) | `gongProvider` | `users.list` | Own company access key and secret, optional company API origin |
|
|
131
|
+
| [PostHog](docs/posthog.md) | `posthogProvider` | `flags.evaluate`, `events.capture` | Own public project token, numeric project ID and EU/US region; explicit verification subject |
|
|
132
|
+
| [Chargebee](docs/chargebee.md) | `chargebeeProvider` | `customers.list` | Own site name and API key with transactional-data read access |
|
|
133
|
+
| [Ashby](docs/ashby.md) | `ashbyProvider` | `jobs.list` | Own organization key with Jobs: Read access |
|
|
134
|
+
| [Lexware](docs/lexware.md) | `lexwareProvider` | Accounting resource reads, article/voucher pages, `invoices.createDraft` | Own private Public API key with selected read/create permissions |
|
|
135
|
+
| [Sevdesk](docs/sevdesk.md) | `sevdeskProvider` | `contacts.list` | Own account API token, raw Authorization header |
|
|
136
|
+
| [Apollo.io](docs/apollo-io.md) | `apolloIoProvider` | `accounts.search` | Own workspace API key scoped to saved-account search |
|
|
137
|
+
| [Attention](docs/attention.md) | `attentionProvider` | `conversations.list` | Own organization API key |
|
|
138
|
+
| [Telegram](docs/telegram.md) | `telegramProvider` | `profile.read`, `webhook.read` | Own bot token |
|
|
139
|
+
| [KLIPY](docs/klipy.md) | `klipyProvider` | Clip/GIF/sticker/existing-emoji trending and search | Own app key; generation unavailable |
|
|
140
|
+
| [Mapbox](docs/mapbox.md) | `mapboxProvider` | `token.read`, `geocoding.forward`, `geocoding.reverse`, `directions.get` | Backend token or browser-only public-token configuration |
|
|
141
|
+
| [Logo.dev](docs/logo-dev.md) | `createLogoDevImageUrl` (client export) | Public image URL construction | Publishable image key; no server connection grant |
|
|
142
|
+
| [Google Maps Platform](docs/google-maps-platform.md) | `googleMapsPlatformProvider` | `geocoding.forward`, `geocoding.reverse` | Server API key, optional browser-key reference and an explicit verification address |
|
|
143
|
+
| [WooCommerce](docs/woocommerce.md) | `woocommerceProvider` | `products.list`, `orders.list` | Own HTTPS store, consumer key and secret reference |
|
|
144
|
+
| [PrestaShop](docs/prestashop.md) | `prestashopProvider` | `products.list`, `orders.list` | Own HTTPS store and Webservice API key reference |
|
|
145
|
+
| [ClickHouse](docs/clickhouse.md) | `clickhouseProvider` | `connection.check`, `tables.list`, `columns.list`, `rows.list` | Own HTTPS endpoint; Basic database credentials or explicit no-credentials mode |
|
|
146
|
+
| [WordPress (self-hosted)](docs/wordpress-self-hosted.md) | `wordpressSelfHostedProvider` | `users.me`, `posts.list` | Own HTTPS site, username and Application Password reference |
|
|
147
|
+
| [WordPress.com](docs/wordpress-com.md) | `wordpressComProvider` | `profile.read`, `sites.list`, `posts.list` | Own OAuth registration, verified client and permissions |
|
|
148
|
+
| [n8n](docs/n8n.md) | `n8nProvider` | `tools.list`, `tools.call` | Assistant MCP access token, own instance URL |
|
|
149
|
+
| [Sanity](docs/sanity.md) | `sanityProvider` | `tools.list`, `tools.call` | Assistant API token, hosted MCP endpoint |
|
|
150
|
+
| [Inngest](docs/inngest.md) | `inngestProvider` | `apps.list`, `functions.list`, `events.send` | Separate Signing Key and Event Key references |
|
|
151
|
+
| [Canva](docs/canva.md) | `canvaProvider`, shared `createCanvaClientMetadata` | `tools.list`, `tools.call`; public metadata builder | Assistant OAuth, metadata URL, approved callback, no client secret |
|
|
152
|
+
| [Clay](docs/clay.md) | `clayProvider` | `identity.read`, `searches.create`, `searches.next` | User/workspace Public API key |
|
|
153
|
+
| [Figma](docs/figma.md) | `figmaProvider` | `tools.list`, `tools.call`; explicit `registerFigmaClient` setup | Approved confidential OAuth client |
|
|
154
|
+
| [Miro](docs/miro.md) | `miroProvider` | `tools.list`, `tools.call`; explicit `registerMiroClient` setup | Own MCP OAuth client, selected team |
|
|
155
|
+
| [Atlassian](docs/atlassian.md) | `atlassianProvider`, `registerAtlassianClient` | `tools.list`, `tools.call`; explicit client setup | Assistant OAuth, Rovo MCP v2, own confidential client |
|
|
156
|
+
| [Amplitude](docs/amplitude.md) | `amplitudeProvider`, `registerAmplitudeClient` | `tools.list`, `tools.call`; explicit client setup | Assistant OAuth, US/EU, own confidential client |
|
|
157
|
+
| [AWS S3](docs/aws-s3.md) | `awsS3Provider` | `objects.list`, `objects.downloadUrl`, `objects.uploadUrl` | Explicit AWS key/optional STS token |
|
|
158
|
+
| [AWS Athena](docs/aws-athena.md) | `awsAthenaProvider` | `workgroup.get`, `query.start`, `query.status`, `query.results`, `query.cancel` | Explicit AWS key/optional STS token |
|
|
159
|
+
| [Amazon Redshift](docs/amazon-redshift.md) | `amazonRedshiftProvider` | `tables.list`, `table.describe`, `query.start`, `query.status`, `query.results`, `query.cancel` | Explicit AWS key/optional STS token; serverless or provisioned |
|
|
160
|
+
|
|
161
|
+
The MCP providers use the official MCP SDK through a server-only transport.
|
|
162
|
+
They initialize and list tools to verify transport access, then expose explicit
|
|
163
|
+
tool calls under the existing connection policy. Discovery does not prove
|
|
164
|
+
permission to execute every tool. Read the [assistant OAuth pattern](patterns/assistant-mcp-oauth/PATTERN.md) for
|
|
165
|
+
Amplitude/Atlassian/Canva setup and the [assistant MCP pattern](patterns/assistant-mcp/PATTERN.md)
|
|
166
|
+
before exposing calls. These definitions cannot select shared or per-user
|
|
167
|
+
application mode. OAuth discovery, assistant attachment, resources, prompts and
|
|
168
|
+
local stdio are not part of these initial fragments.
|
|
169
|
+
|
|
170
|
+
The definitions provide names, account modes, permissions and setup text to the
|
|
171
|
+
shared configuration fields. API-key values belong in the environment or secret
|
|
172
|
+
store; `integrations.json` stores references. Use the file connection store for
|
|
173
|
+
text-based runtime persistence. SQL is an explicit application choice.
|
|
174
|
+
|
|
175
|
+
See the [API-key connection pattern](patterns/api-key-connection/PATTERN.md) for
|
|
176
|
+
library wiring usable from ordinary Node code and a manually composed CLI.
|
|
177
|
+
The [OAuth file-connection pattern](patterns/oauth-connection/PATTERN.md) covers
|
|
178
|
+
consent and callbacks with the same text-based runtime storage.
|
|
179
|
+
The [Microsoft guide](docs/microsoft-oauth.md) adds delegated OAuth wiring,
|
|
180
|
+
registration automation and provider-specific account/permission requirements.
|
|
181
|
+
Focused runtime tests cover the providers' requests, result validation,
|
|
182
|
+
credential changes, isolation, errors and disconnect. Provider calls in those
|
|
183
|
+
tests are simulated; live service use and sample-app generation are outside
|
|
184
|
+
this delivery's test scope. Managed service credentials and sharing grants
|
|
185
|
+
remain host-owned capabilities; an own key is not a managed subscription.
|
|
186
|
+
|
|
187
|
+
Logo.dev uses the [public-image pattern](patterns/public-image/PATTERN.md) and
|
|
188
|
+
its client library export. Its `runtimeKind: "public-resource"` metadata
|
|
189
|
+
distinguishes URL construction from the server adapters above. Image delivery
|
|
190
|
+
is observed in the browser; constructing a URL never records Connected.
|
|
191
|
+
|
|
192
|
+
The [AWS pattern](patterns/aws-storage-queries/PATTERN.md) composes the signed S3 and Athena libraries with the same file configuration and host authorization.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# AI catalogue upstream notices
|
|
2
|
+
|
|
3
|
+
The bundled snapshot is derived from models.dev data and OpenCode’s public-access rule. Both are MIT licensed. See `src/shared/ai-models.json` for retrieval date, URLs and source hashes. No upstream code executes at runtime.
|
|
4
|
+
|
|
5
|
+
## models.dev
|
|
6
|
+
|
|
7
|
+
MIT License
|
|
8
|
+
|
|
9
|
+
Copyright (c) 2025 models.dev
|
|
10
|
+
|
|
11
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
13
|
+
in the Software without restriction, including without limitation the rights
|
|
14
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
16
|
+
furnished to do so, subject to the following conditions:
|
|
17
|
+
|
|
18
|
+
The above copyright notice and this permission notice shall be included in all
|
|
19
|
+
copies or substantial portions of the Software.
|
|
20
|
+
|
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
+
SOFTWARE.
|
|
28
|
+
|
|
29
|
+
## OpenCode
|
|
30
|
+
|
|
31
|
+
MIT License
|
|
32
|
+
|
|
33
|
+
Copyright (c) 2025 opencode
|
|
34
|
+
|
|
35
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
36
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
37
|
+
in the Software without restriction, including without limitation the rights
|
|
38
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
39
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
40
|
+
furnished to do so, subject to the following conditions:
|
|
41
|
+
|
|
42
|
+
The above copyright notice and this permission notice shall be included in all
|
|
43
|
+
copies or substantial portions of the Software.
|
|
44
|
+
|
|
45
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
46
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
47
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
48
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
49
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
50
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
51
|
+
SOFTWARE.
|
package/docs/ai.md
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# AI connections and a static model catalogue
|
|
2
|
+
|
|
3
|
+
This integration supplies configuration and authorized connection parameters.
|
|
4
|
+
The application's AI library makes requests directly to its chosen provider.
|
|
5
|
+
There is no JSKIT or Vibe64 inference gateway, token resale, conversation engine,
|
|
6
|
+
coding-agent runtime, or automatic paid fallback.
|
|
7
|
+
|
|
8
|
+
## Ownership
|
|
9
|
+
|
|
10
|
+
| Owner | Responsibility |
|
|
11
|
+
| --- | --- |
|
|
12
|
+
| JSKIT `connectors-catalog` | Static provider/model data, settings schema, free-access classification and Node credential resolver |
|
|
13
|
+
| JSKIT `connectors-web` | Reusable Vue configuration fields, including searchable model selection |
|
|
14
|
+
| Vibe64 | Edit the project's portable `integrations.json`; manage administrator secrets through its existing Env system |
|
|
15
|
+
| Vibe64 Online | Supply the same editor and Env facilities; it supplies no AI credit or shared commercial AI identity |
|
|
16
|
+
| Generated application | Authenticate and authorize its users, own credentials and individual connection screens, choose its AI SDK, execute requests and handle provider failures |
|
|
17
|
+
| Other frameworks | Read the same configuration or map it into their native configuration; use their own libraries and private credential storage |
|
|
18
|
+
|
|
19
|
+
JSKIT is a JavaScript library for Node applications. A Laravel application does
|
|
20
|
+
not install JSKIT, Node, OpenCode or Vibe64. Its backend can read the selected
|
|
21
|
+
model and `env:NAME` reference and use its own environment/configuration and AI
|
|
22
|
+
client. Framework-independent facts in this guide are usable by its coding AI;
|
|
23
|
+
PHP code and a parallel PHP package are not part of JSKIT.
|
|
24
|
+
|
|
25
|
+
## Default and catalogue
|
|
26
|
+
|
|
27
|
+
Import `aiCatalogue`, `listAiModels`, `getAiModel`, `aiAccessLabels` and
|
|
28
|
+
`DEFAULT_AI_MODEL` from `@jskit-ai/connectors-catalog/shared/ai`.
|
|
29
|
+
|
|
30
|
+
The one-time 10 September 2026 extraction contains 213 provider records and
|
|
31
|
+
7,614 model records from models.dev, the catalogue used by OpenCode. There is
|
|
32
|
+
no runtime fetch, synchronization job, subprocess or OpenCode dependency.
|
|
33
|
+
The raw-source hashes and source URLs are in the bundled `ai-models.json`;
|
|
34
|
+
[upstream MIT notices](ai-upstream-notices.md) accompany it. Updates require
|
|
35
|
+
deliberate review and a new package release.
|
|
36
|
+
|
|
37
|
+
`listAiModels()` hides deprecated entries and sorts free choices first, with
|
|
38
|
+
`opencode/big-pickle` first. `includeDeprecated: true` exposes retained upstream
|
|
39
|
+
history; `providerId`, `access` and `configurableOnly` filter the list.
|
|
40
|
+
Models retain limits, modality and cost metadata as dated information, not a
|
|
41
|
+
promise of current availability or a billing calculator. An explicit unknown
|
|
42
|
+
or deprecated model fails validation; it is never replaced automatically.
|
|
43
|
+
|
|
44
|
+
| Classification | Meaning |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| `free-no-setup` | Active Zen entry with zero declared input, output and other cost fields, covered by OpenCode's published public access rule |
|
|
47
|
+
| `free-with-connection` | Zero declared costs, but a connection is required or no public access rule has been established |
|
|
48
|
+
| `paid` | Declared positive input or output charges |
|
|
49
|
+
| `unknown` | Insufficient pricing information; check the provider |
|
|
50
|
+
|
|
51
|
+
The snapshot's seven active public choices are Big Pickle, MiMo-V2.5 Free,
|
|
52
|
+
Ling3.0 FlashFin Free, Nemotron 3 Ultra Free, Nemotron 3.5 Lightning Free,
|
|
53
|
+
Muse Spark 1.2 Contributor Free and Muse Spark 1.3 Contributor Free.
|
|
54
|
+
This is a source-derived eligibility list, **not live inference verification**.
|
|
55
|
+
Provider capacity, free offers and data-use terms can change. A failure stays
|
|
56
|
+
with the selected provider/model; the application decides how to explain it.
|
|
57
|
+
|
|
58
|
+
Zen's no-account protocol uses the fixed string `public` in its API-key
|
|
59
|
+
position. The resolver supplies it. Nobody needs to enter it, create an account
|
|
60
|
+
or create an environment variable for this mode. The Muse models use the
|
|
61
|
+
OpenAI Responses SDK route, whereas Big Pickle uses OpenAI-compatible chat;
|
|
62
|
+
the model's `sdkPackage` preserves that distinction.
|
|
63
|
+
|
|
64
|
+
The initial configuration form and resolver support regular direct API-key
|
|
65
|
+
routes for OpenCode Zen, Z.AI, OpenAI, Anthropic, DeepSeek, Google, OpenRouter,
|
|
66
|
+
Groq, Mistral, xAI, Cerebras, Together AI and Perplexity. Other upstream records
|
|
67
|
+
remain available as `connection: "framework"` metadata. Cloud identity,
|
|
68
|
+
regional endpoints, coding subscriptions and special authentication require
|
|
69
|
+
their framework's own configuration; their presence in the catalogue does not
|
|
70
|
+
claim that a URL and API key can configure them.
|
|
71
|
+
|
|
72
|
+
## Portable configuration and Env
|
|
73
|
+
|
|
74
|
+
This is enough to select the no-setup default:
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"schemaVersion": 1,
|
|
79
|
+
"registrations": {},
|
|
80
|
+
"integrations": {
|
|
81
|
+
"suggestions": {
|
|
82
|
+
"provider": "ai",
|
|
83
|
+
"accountMode": "shared",
|
|
84
|
+
"scopes": [],
|
|
85
|
+
"authentication": { "method": "none" },
|
|
86
|
+
"settings": { "model": "opencode/big-pickle" }
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
For an administrator-funded model, select `authentication.method: "api-key"`
|
|
93
|
+
and `authentication.secretRef: "env:APP_AI_API_KEY"`. Store the **value** in the
|
|
94
|
+
existing Env screen or the application's normal private environment. Vibe64's
|
|
95
|
+
existing launch/deployment environment mechanism supplies it to the backend;
|
|
96
|
+
this integration adds no token delivery service. Do not use `VITE_` or another
|
|
97
|
+
browser-exposed environment prefix. The JSON and source control contain only
|
|
98
|
+
the variable's name.
|
|
99
|
+
|
|
100
|
+
`createAiConnectionResolver({ configuration, authorize, resolveReference? })`
|
|
101
|
+
is imported from `@jskit-ai/connectors-catalog/server/ai`. It uses the existing
|
|
102
|
+
environment-reference resolver by default. `resolve({ context, integrationId })`
|
|
103
|
+
returns `{ providerId, model, sdkPackage, baseURL?, apiKey, access }` **to backend
|
|
104
|
+
code only**. An absent `baseURL` means use the named provider SDK's normal
|
|
105
|
+
endpoint. Pass the result to an explicitly installed SDK adapter; never
|
|
106
|
+
dynamically install a package or send the result through a browser route.
|
|
107
|
+
|
|
108
|
+
The application must implement `authorize(context, request)` and return a
|
|
109
|
+
trusted `{ applicationId, subjectId }`, or deny access. It receives operation
|
|
110
|
+
`ai.resolve`, the integration ID and the configured account mode. Derive
|
|
111
|
+
identity from a server-authenticated session or trusted CLI operator, never
|
|
112
|
+
from request-supplied owner IDs. Check who can consume the shared account.
|
|
113
|
+
Authorize edits to the configuration and Env separately as administrator work.
|
|
114
|
+
|
|
115
|
+
Secrets are resolved on every call, so rotation or deletion takes effect without
|
|
116
|
+
changing source. Missing or invalid bindings fail without leaking their values.
|
|
117
|
+
Saving the form means **configured**, not **connected** or **verified**.
|
|
118
|
+
|
|
119
|
+
## Individual app accounts
|
|
120
|
+
|
|
121
|
+
Use `accountMode: "per-user"` and a reference such as `account:personal-ai`.
|
|
122
|
+
The app supplies `resolveReference(reference, owner, slot)`, where `owner` is
|
|
123
|
+
the authorized application/user identity and `slot` includes integration ID,
|
|
124
|
+
account mode and provider ID. Look up only that user's grant for that provider
|
|
125
|
+
and integration. Bind stored keys to all those identities; do not resolve a
|
|
126
|
+
reference against another app's or another provider's credentials.
|
|
127
|
+
|
|
128
|
+
The app owns authenticated key entry, verification, encrypted private storage,
|
|
129
|
+
replacement and disconnect. JSKIT's existing encrypted file store is available
|
|
130
|
+
to Node apps that choose file storage; this resolver creates no database or
|
|
131
|
+
second store. A shared `env:` reference is rejected in individual-account mode.
|
|
132
|
+
Disconnect removes that user's grant; it must not affect another user.
|
|
133
|
+
|
|
134
|
+
Changing providers in the form removes the previous key reference. Existing
|
|
135
|
+
editor coding-agent credentials are never inherited. A provider-supported
|
|
136
|
+
OAuth-to-key flow can be implemented by the app before storing its own grant;
|
|
137
|
+
this initial integration does not implement OAuth or a login screen for every
|
|
138
|
+
AI service. Do not repurpose Codex or Claude coding-subscription OAuth tokens
|
|
139
|
+
as general app-inference credentials.
|
|
140
|
+
|
|
141
|
+
## Provider setup and automation
|
|
142
|
+
|
|
143
|
+
There are no `vibe64-online`/`vibe64-public` OAuth registrations or universal
|
|
144
|
+
callbacks for this AI integration. Regular keys belong to the app administrator
|
|
145
|
+
or individual app user and are billed directly by that provider.
|
|
146
|
+
|
|
147
|
+
For the no-setup default: choose AI, keep Big Pickle selected and save. No
|
|
148
|
+
provider-side action is needed. For API-key routes, follow the provider's current
|
|
149
|
+
dashboard documentation linked in `aiCatalogue.providers[].documentationUrl`:
|
|
150
|
+
|
|
151
|
+
1. The account owner signs in to the provider and selects the organization or
|
|
152
|
+
project that should own usage. This is a human account/terms/billing step.
|
|
153
|
+
2. Open the provider's API-key management screen and create a dedicated key
|
|
154
|
+
for this application. Choose applicable project restrictions and limits.
|
|
155
|
+
3. Copy the value directly into the app's Env or authenticated personal-key
|
|
156
|
+
screen. Save only its reference in the integration configuration.
|
|
157
|
+
4. Choose a model on that same provider route. Configure the app's SDK using
|
|
158
|
+
the selected model's protocol. Verification and inference belong to the app.
|
|
159
|
+
|
|
160
|
+
For **Z.AI**, open [API keys](https://z.ai/manage-apikey/apikey-list), create a
|
|
161
|
+
regular API key, store it in Env, and select `zai/glm-4.7-flash`. Its regular API
|
|
162
|
+
base is `https://api.z.ai/api/paas/v4`. GLM-4.7-Flash is listed free but needs a
|
|
163
|
+
key; full GLM-4.7 is paid. The Coding Plan endpoint is not this app-inference
|
|
164
|
+
route.
|
|
165
|
+
|
|
166
|
+
For **Zen paid access**, follow [Zen setup](https://opencode.ai/docs/zen/),
|
|
167
|
+
create an account/key and meet its billing requirements before choosing a paid
|
|
168
|
+
model. For **OpenRouter**, the app may separately implement the provider's
|
|
169
|
+
[OAuth PKCE key-creation flow](https://openrouter.ai/docs/guides/overview/auth/oauth);
|
|
170
|
+
it still stores the resulting user-owned key privately. Other dashboards may
|
|
171
|
+
offer administrative provisioning APIs, but this slice does not assume or
|
|
172
|
+
automate them. AI can wire environment names, configuration and native SDKs;
|
|
173
|
+
it cannot create somebody's account, accept terms or supply their billing
|
|
174
|
+
authorization merely by editing this JSON.
|
|
175
|
+
|
|
176
|
+
## Evidence and limits
|
|
177
|
+
|
|
178
|
+
Focused tests cover snapshot integrity, free/default classification, strict
|
|
179
|
+
selection, authorized environment and individual-key resolution, rotation,
|
|
180
|
+
disconnect, redacted failures and SDK parameter handoff. Browser fixtures cover
|
|
181
|
+
the editor's default, searchable model change, credential ownership, persistence
|
|
182
|
+
and responsive layout. These tests perform no live inference, provider login,
|
|
183
|
+
account creation or generated-application execution.
|
|
184
|
+
|
|
185
|
+
## Existing-scope closeout — 13 September 2026
|
|
186
|
+
|
|
187
|
+
A static, attributed September 10 provider/model catalogue, searchable free/paid model configuration and a backend-only authorized credential/SDK-parameter resolver. The default is the snapshot's Zen Big Pickle no-account route; administrator keys resolve through Env, and individual keys through an app-supplied user/provider-scoped reference resolver.
|
|
188
|
+
|
|
189
|
+
No inference engine, streaming, tools, conversation storage, provider OAuth/login screens, account/key provisioning, live credential verification, usage metering, billing, token resale or Vibe64 AI gateway. No automatic SDK installation, catalogue updates, model replacement or paid fallback. Only the 13 explicitly supported direct-key routes are configurable; other catalogue entries are framework metadata, not implemented cloud/coding-subscription authentication. Model availability, pricing/free classification and endpoint operation are dated source information, not live proof; even no-setup choices can be unavailable or capacity-limited. Detailed provider-specific personal-key entry, verification, encrypted storage, rotation/disconnect and authorization remain application work; the resolver only consumes those bindings. The app/framework owns SDK installation, protocol selection, requests, errors and UI. Generic key-creation guidance and linked provider documentation are supplied; bespoke audited login/key-creation screens for every catalogue provider are not. To extend: deliberately refresh the static snapshot, improve selected provider-specific instructions, and wire any desired app-native key-entry/inference features. This intentionally differs from Lovable managed AI; Vibe64 coding-agent credentials and runtime remain separate.
|
|
190
|
+
|
|
191
|
+
10 source and 10 installed-package tests passed on September 13, proving snapshot/default selection, rejected unsupported modes, no-network public parameters, authorized Env and individual references, rotation/deletion, redaction and SDK handoff. Historical September 10 compact/medium/expanded UI evidence is retained; no fresh browser, live inference, provider account, generated-app execution or release was performed.
|
package/docs/airtable.md
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Airtable
|
|
2
|
+
|
|
3
|
+
Import `airtableProvider` from `@jskit-ai/connectors-catalog/server/airtable`.
|
|
4
|
+
The initial adapter uses a personal access token (PAT), recorded as the common
|
|
5
|
+
`api-key` authentication method. OAuth installation is not implemented by this
|
|
6
|
+
adapter yet. Legacy account API keys cannot authenticate.
|
|
7
|
+
|
|
8
|
+
## Set up access
|
|
9
|
+
|
|
10
|
+
1. Sign in as the account that should own the connection. Open
|
|
11
|
+
[Developer hub](https://airtable.com/create/tokens).
|
|
12
|
+
2. Choose **Personal access tokens**, then **Create token**. Name it for the
|
|
13
|
+
application/environment.
|
|
14
|
+
3. Choose **Add a scope**. Add `schema.bases:read` for discovery,
|
|
15
|
+
`data.records:read` for reading records, `data.records:write` for creating,
|
|
16
|
+
updating or deleting records, and `schema.bases:write` only when the app
|
|
17
|
+
creates bases or changes tables/fields. Base creation needs Workspace Creator access and a token resource grant covering the target workspace. The token owner needs Editor access for record writes
|
|
18
|
+
and Creator access for schema writes; scopes do not increase base permissions.
|
|
19
|
+
4. Under access, select the individual bases or workspaces the app needs.
|
|
20
|
+
A token only inherits rights the creating account already has.
|
|
21
|
+
5. Create the token. Store the value outside source, for example in the backend
|
|
22
|
+
environment as `AIRTABLE_TOKEN`. In `integrations.json`, set provider
|
|
23
|
+
`airtable`, account mode `shared` or `assistant`, empty `scopes`, and
|
|
24
|
+
`authentication: { "method": "api-key", "secretRef": "env:AIRTABLE_TOKEN" }`.
|
|
25
|
+
Leave `registrations` empty for this slot.
|
|
26
|
+
6. Use `connectApiKey` to verify access. Rotating the value behind the same
|
|
27
|
+
reference affects the next operation; changing the reference requires
|
|
28
|
+
verification again. See [Airtable's PAT guide](https://support.airtable.com/docs/creating-personal-access-tokens).
|
|
29
|
+
|
|
30
|
+
## Runtime and AI composition
|
|
31
|
+
|
|
32
|
+
`bases.list` calls `GET /v0/meta/bases`. Its optional `offset` is the cursor
|
|
33
|
+
returned by the previous page. Results retain `bases` and `offset`. There is no
|
|
34
|
+
page-size input: this endpoint pages up to 1,000 bases. An empty collection
|
|
35
|
+
can indicate missing resource grants or an organization restriction; it does
|
|
36
|
+
not prove access to a particular base. See [List bases](https://airtable.com/developers/web/api/list-bases).
|
|
37
|
+
|
|
38
|
+
Use the [API-key source pattern](../patterns/api-key-connection/PATTERN.md),
|
|
39
|
+
substituting this provider, slot and secret reference. The application owns
|
|
40
|
+
authorization and maps the trusted caller to the connection owner. The library
|
|
41
|
+
supplies validation, HTTP errors and file persistence. A CLI and Vibe64 edit
|
|
42
|
+
the same JSON. The provider supplies the record and schema operations below. Application screens
|
|
43
|
+
and rules deciding which rows a caller may access remain application work.
|
|
44
|
+
|
|
45
|
+
## Provisioning automation and capacity
|
|
46
|
+
|
|
47
|
+
An AI can prepare configuration, secret names and operation calls once a PAT
|
|
48
|
+
is supplied. No supported ordinary-account API for issuing PATs was verified
|
|
49
|
+
in this pass; token creation and resource grants use the console above.
|
|
50
|
+
The application owner supplies its authorized PAT through private Env. Two
|
|
51
|
+
PAT names alone do not establish separate capacity:
|
|
52
|
+
check the relevant base, workspace and token-owner limits. OAuth registrations
|
|
53
|
+
for distribution to unrelated customers are a separate future mode.
|
|
54
|
+
|
|
55
|
+
Automated fixtures verify the authenticated endpoint, encoded pagination,
|
|
56
|
+
file-store restart, rotation, isolation, disconnect, malformed success and
|
|
57
|
+
401/403/429 failures. No real Airtable account was used.
|
|
58
|
+
|
|
59
|
+
## Record and schema workflows
|
|
60
|
+
|
|
61
|
+
`bases.create` accepts `{ name, workspaceId, tables }`. Supply an explicitly
|
|
62
|
+
selected Airtable workspace ID and at least one table containing at least one
|
|
63
|
+
field; field names must be unique ignoring case. This writes a new base and must
|
|
64
|
+
be an explicitly authorized action, never part of verification. The first field
|
|
65
|
+
is the primary field. A token granted only one existing base cannot provision
|
|
66
|
+
another base: grant the intended workspace in the PAT's resource access and use
|
|
67
|
+
an account with Workspace Creator access. The API returns the new base ID and
|
|
68
|
+
table schema. Existing-base workflows need no workspace ID.
|
|
69
|
+
[Create base](https://airtable.com/developers/web/api/create-base).
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
Use `tables.list` with `{ baseId }` to discover the base's tables and fields.
|
|
73
|
+
Prefer returned table and field IDs over mutable display names. A selected token
|
|
74
|
+
resource grant is still required even when the API scope is enabled.
|
|
75
|
+
[Base schema](https://airtable.com/developers/web/api/get-base-schema).
|
|
76
|
+
|
|
77
|
+
```js
|
|
78
|
+
const page = await connections.invoke({ context, integrationId: "data",
|
|
79
|
+
operation: "records.list", input: { baseId: "appYourBase", tableId: "tblYourTable",
|
|
80
|
+
pageSize: 100, filterByFormula: '{Status}="Open"' } });
|
|
81
|
+
const created = await connections.invoke({ context, integrationId: "data",
|
|
82
|
+
operation: "records.create", input: { baseId: "appYourBase", tableId: "tblYourTable",
|
|
83
|
+
fields: { Name: "A task", Done: false } } });
|
|
84
|
+
await connections.invoke({ context, integrationId: "data", operation: "records.update",
|
|
85
|
+
input: { baseId: "appYourBase", tableId: "tblYourTable", recordId: created.id,
|
|
86
|
+
fields: { Done: true } } });
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
`records.list` uses the documented POST `/listRecords` variant, avoiding URL
|
|
90
|
+
length limits for formulas. Supply returned `offset` on the next call and retain
|
|
91
|
+
the same view/formula. No offset means the last page. Inputs include optional
|
|
92
|
+
`view` and `filterByFormula`, and `pageSize` from 1 to 100. Empty values may be
|
|
93
|
+
omitted by Airtable; absence in a read response does not mean a field was removed.
|
|
94
|
+
[Record listing](https://airtable.com/developers/web/api/list-records).
|
|
95
|
+
|
|
96
|
+
`records.create` creates one record. `records.update` uses PATCH, preserving
|
|
97
|
+
unspecified cells. Both require a nonempty `fields` object and disable automatic
|
|
98
|
+
`typecast`. Validate user fields against your application contract and the returned
|
|
99
|
+
Airtable schema; the API validates provider-specific cell formats. Do not copy
|
|
100
|
+
arbitrary HTTP request bodies into this operation. Use `records.delete` with
|
|
101
|
+
`{ baseId, tableId, recordId }` for an explicitly authorized deletion. None of
|
|
102
|
+
these mutations occurs on connection verification.
|
|
103
|
+
[Create](https://airtable.com/developers/web/api/create-records),
|
|
104
|
+
[update](https://airtable.com/developers/web/api/update-record),
|
|
105
|
+
[delete](https://airtable.com/developers/web/api/delete-record).
|
|
106
|
+
|
|
107
|
+
`tables.create` accepts `{ baseId, name, description?, fields }`, where each field
|
|
108
|
+
has `name`, `type`, and optional `description`/`options`. The first field is the
|
|
109
|
+
primary field; choose a supported primary type such as `singleLineText` and unique
|
|
110
|
+
field names. `tables.update` accepts `{ baseId, tableId, name, description? }`.
|
|
111
|
+
`fields.create` accepts `{ baseId, tableId, field }`; `fields.update` accepts
|
|
112
|
+
`{ baseId, tableId, fieldId, name, description?, options? }`. Use the documented
|
|
113
|
+
write shape for each field type, not a copied read-only schema response. Unknown
|
|
114
|
+
field types/options are rejected by Airtable, not converted silently. The adapter
|
|
115
|
+
currently requires a name on schema updates.
|
|
116
|
+
[Create table](https://airtable.com/developers/web/api/create-table),
|
|
117
|
+
[update table](https://airtable.com/developers/web/api/update-table),
|
|
118
|
+
[create field](https://airtable.com/developers/web/api/create-field),
|
|
119
|
+
[update field](https://airtable.com/developers/web/api/update-field).
|
|
120
|
+
|
|
121
|
+
Surface 403 as missing scope, base resource, account role or policy; surface 429
|
|
122
|
+
for application-owned backoff. Uncertain writes are not automatically retried.
|
|
123
|
+
The application owns deduplication/reconciliation before another creation attempt.
|
|
124
|
+
|
|
125
|
+
`test/airtable.test.js` proves the schema and record workflow through the real
|
|
126
|
+
connection service with controlled responses: discovery, table/field writes,
|
|
127
|
+
pagination, encoded table names, partial updates, deletion, nonempty field
|
|
128
|
+
validation, authorization, app isolation, 403/429 and uncertain-write handling.
|
|
129
|
+
One focused test passed. No live Airtable account was used. This is runtime
|
|
130
|
+
repair evidence. A focused public-editor browser fixture also passed: PAT references save without secrets, and scope, verification and revocation guidance is visible. This adapter does not itself attach tools to an editor’s coding assistant; that remains an assistant-host responsibility.
|