@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.
Files changed (399) hide show
  1. package/README.md +192 -0
  2. package/docs/ai-upstream-notices.md +51 -0
  3. package/docs/ai.md +191 -0
  4. package/docs/airtable.md +130 -0
  5. package/docs/algolia.md +190 -0
  6. package/docs/amazon-redshift.md +229 -0
  7. package/docs/amplitude.md +210 -0
  8. package/docs/apify.md +162 -0
  9. package/docs/apollo-io.md +200 -0
  10. package/docs/asana.md +126 -0
  11. package/docs/ashby.md +188 -0
  12. package/docs/atlassian.md +224 -0
  13. package/docs/attention.md +162 -0
  14. package/docs/aws-athena.md +150 -0
  15. package/docs/aws-credentials.md +75 -0
  16. package/docs/aws-s3.md +193 -0
  17. package/docs/bigquery.md +146 -0
  18. package/docs/brevo.md +122 -0
  19. package/docs/calendly.md +158 -0
  20. package/docs/canva.md +191 -0
  21. package/docs/chargebee.md +192 -0
  22. package/docs/clay.md +194 -0
  23. package/docs/clickhouse.md +242 -0
  24. package/docs/confidence-exp.md +74 -0
  25. package/docs/confidence-flags.md +75 -0
  26. package/docs/confidence-oauth.md +137 -0
  27. package/docs/contentful.md +123 -0
  28. package/docs/databricks.md +180 -0
  29. package/docs/dbt-semantic-layer.md +175 -0
  30. package/docs/elevenlabs.md +102 -0
  31. package/docs/figma.md +132 -0
  32. package/docs/firebase-cloud-messaging.md +262 -0
  33. package/docs/firecrawl.md +137 -0
  34. package/docs/fireflies.md +95 -0
  35. package/docs/fireworks-ai.md +53 -0
  36. package/docs/gatewayapi.md +113 -0
  37. package/docs/gemini-enterprise.md +224 -0
  38. package/docs/github-api.md +133 -0
  39. package/docs/gitlab-api.md +138 -0
  40. package/docs/gmail.md +133 -0
  41. package/docs/gong.md +205 -0
  42. package/docs/google-ads.md +156 -0
  43. package/docs/google-analytics.md +202 -0
  44. package/docs/google-docs.md +105 -0
  45. package/docs/google-drive.md +108 -0
  46. package/docs/google-maps-platform.md +208 -0
  47. package/docs/google-oauth.md +123 -0
  48. package/docs/google-search-console.md +124 -0
  49. package/docs/google-sheets.md +94 -0
  50. package/docs/google-slides.md +95 -0
  51. package/docs/granola.md +178 -0
  52. package/docs/hex.md +161 -0
  53. package/docs/heygen.md +124 -0
  54. package/docs/hubspot.md +142 -0
  55. package/docs/incident-io.md +118 -0
  56. package/docs/inngest.md +178 -0
  57. package/docs/klipy.md +149 -0
  58. package/docs/lexware.md +144 -0
  59. package/docs/lightspeed.md +193 -0
  60. package/docs/linear.md +137 -0
  61. package/docs/linkedin.md +196 -0
  62. package/docs/logo-dev.md +152 -0
  63. package/docs/mailgun.md +153 -0
  64. package/docs/mapbox.md +174 -0
  65. package/docs/microsoft-excel.md +97 -0
  66. package/docs/microsoft-fabric.md +249 -0
  67. package/docs/microsoft-oauth.md +143 -0
  68. package/docs/microsoft-onedrive.md +76 -0
  69. package/docs/microsoft-onenote.md +75 -0
  70. package/docs/microsoft-outlook.md +90 -0
  71. package/docs/microsoft-powerpoint.md +119 -0
  72. package/docs/microsoft-sharepoint.md +75 -0
  73. package/docs/microsoft-teams.md +72 -0
  74. package/docs/microsoft-word.md +119 -0
  75. package/docs/miro.md +117 -0
  76. package/docs/n8n.md +169 -0
  77. package/docs/notion.md +137 -0
  78. package/docs/oura.md +161 -0
  79. package/docs/paddle.md +168 -0
  80. package/docs/perplexity.md +85 -0
  81. package/docs/pipedrive.md +120 -0
  82. package/docs/polar.md +63 -0
  83. package/docs/posthog.md +227 -0
  84. package/docs/prestashop.md +151 -0
  85. package/docs/replicate.md +60 -0
  86. package/docs/resend.md +153 -0
  87. package/docs/salesforce.md +234 -0
  88. package/docs/sanity.md +122 -0
  89. package/docs/semrush.md +276 -0
  90. package/docs/sentry.md +112 -0
  91. package/docs/sevdesk.md +107 -0
  92. package/docs/shopify.md +206 -0
  93. package/docs/slack.md +257 -0
  94. package/docs/snowflake.md +271 -0
  95. package/docs/storyblok.md +130 -0
  96. package/docs/stripe.md +77 -0
  97. package/docs/supabase.md +51 -0
  98. package/docs/tally.md +105 -0
  99. package/docs/telegram.md +165 -0
  100. package/docs/tiktok.md +201 -0
  101. package/docs/twilio.md +284 -0
  102. package/docs/twitch.md +428 -0
  103. package/docs/wave.md +440 -0
  104. package/docs/wix.md +1249 -0
  105. package/docs/wiz.md +177 -0
  106. package/docs/woocommerce.md +400 -0
  107. package/docs/wordpress-com.md +358 -0
  108. package/docs/wordpress-self-hosted.md +252 -0
  109. package/docs/workday.md +292 -0
  110. package/docs/x-twitter.md +188 -0
  111. package/docs/xero.md +429 -0
  112. package/docs/zoho-books.md +214 -0
  113. package/docs/zoho-crm.md +192 -0
  114. package/package.json +153 -0
  115. package/patterns/ai-connections/PATTERN.md +84 -0
  116. package/patterns/ai-connections/example/ai-model.js +11 -0
  117. package/patterns/ai-connections/example/perplexity-answer.js +29 -0
  118. package/patterns/api-key-connection/PATTERN.md +368 -0
  119. package/patterns/api-key-connection/example/connections.js +18 -0
  120. package/patterns/api-key-connection/example/integrations.json +19 -0
  121. package/patterns/assistant-mcp/PATTERN.md +110 -0
  122. package/patterns/assistant-mcp/example/integrations.json +13 -0
  123. package/patterns/assistant-mcp-oauth/PATTERN.md +235 -0
  124. package/patterns/assistant-mcp-oauth/example/integrations.json +102 -0
  125. package/patterns/aws-storage-queries/PATTERN.md +169 -0
  126. package/patterns/aws-storage-queries/example/formats/data-formats.js +35 -0
  127. package/patterns/aws-storage-queries/example/formats/package-lock.json +49 -0
  128. package/patterns/aws-storage-queries/example/formats/package.json +12 -0
  129. package/patterns/aws-storage-queries/example/formats/verify-formats.mjs +37 -0
  130. package/patterns/aws-storage-queries/example/integrations.json +38 -0
  131. package/patterns/aws-storage-queries/example/s3-transfer.js +34 -0
  132. package/patterns/event-delivery/PATTERN.md +151 -0
  133. package/patterns/event-delivery/example/integrations.json +17 -0
  134. package/patterns/firebase-messaging/PATTERN.md +156 -0
  135. package/patterns/firebase-messaging/example/server/notifications.js +23 -0
  136. package/patterns/google-ads-search/PATTERN.md +92 -0
  137. package/patterns/google-ads-search/example/ads-setup.js +25 -0
  138. package/patterns/oauth-connection/PATTERN.md +724 -0
  139. package/patterns/oauth-connection/example/integrations.json +20 -0
  140. package/patterns/paddle-catalogue/PATTERN.md +78 -0
  141. package/patterns/paddle-catalogue/example/create-products.js +38 -0
  142. package/patterns/public-image/PATTERN.md +84 -0
  143. package/patterns/public-image/example/integrations.json +13 -0
  144. package/patterns/public-image/example/logo-url.js +16 -0
  145. package/patterns/redshift-queries/PATTERN.md +150 -0
  146. package/patterns/redshift-queries/example/integrations.json +33 -0
  147. package/patterns/source-scanning/PATTERN.md +83 -0
  148. package/patterns/source-scanning/example/source-scanner.js +13 -0
  149. package/src/client/firebase-cloud-messaging.js +10 -0
  150. package/src/client/google-analytics.js +72 -0
  151. package/src/client/google-maps-platform.js +39 -0
  152. package/src/client/logo-dev.js +36 -0
  153. package/src/server/ai.js +46 -0
  154. package/src/server/airtable.js +67 -0
  155. package/src/server/algolia.js +63 -0
  156. package/src/server/amazon-redshift.js +96 -0
  157. package/src/server/amplitude.js +31 -0
  158. package/src/server/apify.js +68 -0
  159. package/src/server/apollo-io.js +85 -0
  160. package/src/server/asana.js +64 -0
  161. package/src/server/ashby.js +61 -0
  162. package/src/server/atlassian.js +32 -0
  163. package/src/server/attention.js +93 -0
  164. package/src/server/aws-athena.js +82 -0
  165. package/src/server/aws-s3.js +49 -0
  166. package/src/server/awsTransport.js +75 -0
  167. package/src/server/bigquery.js +97 -0
  168. package/src/server/brevo.js +97 -0
  169. package/src/server/calendly.js +77 -0
  170. package/src/server/canva.js +13 -0
  171. package/src/server/chargebee.js +88 -0
  172. package/src/server/clay.js +78 -0
  173. package/src/server/clickhouse.js +66 -0
  174. package/src/server/confidence.js +29 -0
  175. package/src/server/contentful.js +40 -0
  176. package/src/server/databricks.js +55 -0
  177. package/src/server/dbt-semantic-layer.js +95 -0
  178. package/src/server/elevenlabs.js +81 -0
  179. package/src/server/figma.js +24 -0
  180. package/src/server/firebase-cloud-messaging.js +111 -0
  181. package/src/server/firecrawl.js +70 -0
  182. package/src/server/fireflies.js +31 -0
  183. package/src/server/fireworks-ai.js +16 -0
  184. package/src/server/gatewayapi.js +48 -0
  185. package/src/server/gemini-enterprise.js +47 -0
  186. package/src/server/github-api.js +90 -0
  187. package/src/server/gitlab-api.js +67 -0
  188. package/src/server/gmail.js +60 -0
  189. package/src/server/gong.js +52 -0
  190. package/src/server/google-ads-search.js +134 -0
  191. package/src/server/google-ads.js +80 -0
  192. package/src/server/google-docs.js +36 -0
  193. package/src/server/google-drive.js +71 -0
  194. package/src/server/google-maps-platform.js +90 -0
  195. package/src/server/google-search-console.js +31 -0
  196. package/src/server/google-sheets.js +60 -0
  197. package/src/server/google-slides.js +36 -0
  198. package/src/server/google.js +61 -0
  199. package/src/server/granola.js +115 -0
  200. package/src/server/graphqlOperation.js +15 -0
  201. package/src/server/hex.js +29 -0
  202. package/src/server/heygen.js +54 -0
  203. package/src/server/hubspot.js +85 -0
  204. package/src/server/incident-io.js +68 -0
  205. package/src/server/inngest.js +86 -0
  206. package/src/server/jsonOperation.js +34 -0
  207. package/src/server/klipy.js +34 -0
  208. package/src/server/lexware.js +59 -0
  209. package/src/server/lightspeed.js +82 -0
  210. package/src/server/linear.js +52 -0
  211. package/src/server/linkedin.js +74 -0
  212. package/src/server/mailgun.js +76 -0
  213. package/src/server/mapbox.js +46 -0
  214. package/src/server/mcpRegistration.js +41 -0
  215. package/src/server/mcpTransport.js +60 -0
  216. package/src/server/microsoft-excel.js +67 -0
  217. package/src/server/microsoft-fabric.js +81 -0
  218. package/src/server/microsoft-onedrive.js +58 -0
  219. package/src/server/microsoft-onenote.js +52 -0
  220. package/src/server/microsoft-outlook.js +58 -0
  221. package/src/server/microsoft-powerpoint.js +5 -0
  222. package/src/server/microsoft-sharepoint.js +46 -0
  223. package/src/server/microsoft-teams.js +29 -0
  224. package/src/server/microsoft-word.js +5 -0
  225. package/src/server/microsoft.js +88 -0
  226. package/src/server/miro.js +29 -0
  227. package/src/server/n8n.js +78 -0
  228. package/src/server/notion.js +76 -0
  229. package/src/server/oura.js +48 -0
  230. package/src/server/paddle.js +83 -0
  231. package/src/server/perplexity.js +15 -0
  232. package/src/server/pipedrive.js +95 -0
  233. package/src/server/polar.js +20 -0
  234. package/src/server/posthog.js +44 -0
  235. package/src/server/prestashop.js +42 -0
  236. package/src/server/replicate.js +42 -0
  237. package/src/server/resend.js +93 -0
  238. package/src/server/salesforce.js +84 -0
  239. package/src/server/sanity.js +31 -0
  240. package/src/server/semrush.js +359 -0
  241. package/src/server/sentry.js +30 -0
  242. package/src/server/sevdesk.js +20 -0
  243. package/src/server/shopify.js +99 -0
  244. package/src/server/slack.js +143 -0
  245. package/src/server/snowflake.js +139 -0
  246. package/src/server/storyblok.js +49 -0
  247. package/src/server/stripe.js +13 -0
  248. package/src/server/supabase.js +13 -0
  249. package/src/server/tally.js +78 -0
  250. package/src/server/telegram.js +55 -0
  251. package/src/server/tiktok.js +86 -0
  252. package/src/server/twilio.js +90 -0
  253. package/src/server/twitch.js +409 -0
  254. package/src/server/wave.js +520 -0
  255. package/src/server/wix.js +1048 -0
  256. package/src/server/wiz.js +117 -0
  257. package/src/server/woocommerce.js +412 -0
  258. package/src/server/wordpress-com.js +236 -0
  259. package/src/server/wordpress-self-hosted.js +134 -0
  260. package/src/server/workday.js +136 -0
  261. package/src/server/x-twitter.js +110 -0
  262. package/src/server/xero.js +397 -0
  263. package/src/server/zoho-books.js +90 -0
  264. package/src/server/zoho-crm.js +89 -0
  265. package/src/server/zohoOAuth.js +21 -0
  266. package/src/shared/ai-models.json +8049 -0
  267. package/src/shared/ai.js +63 -0
  268. package/src/shared/algolia.js +29 -0
  269. package/src/shared/amazon-redshift.js +51 -0
  270. package/src/shared/amplitude.js +28 -0
  271. package/src/shared/atlassian.js +43 -0
  272. package/src/shared/aws.js +72 -0
  273. package/src/shared/canva.js +66 -0
  274. package/src/shared/chargebee.js +26 -0
  275. package/src/shared/clickhouse.js +38 -0
  276. package/src/shared/confidence.js +28 -0
  277. package/src/shared/databricks.js +33 -0
  278. package/src/shared/dbt-semantic-layer.js +32 -0
  279. package/src/shared/definitions.js +140 -0
  280. package/src/shared/figma.js +21 -0
  281. package/src/shared/firebase-cloud-messaging.js +45 -0
  282. package/src/shared/gemini-enterprise.js +33 -0
  283. package/src/shared/gong.js +33 -0
  284. package/src/shared/google-ads-search.js +31 -0
  285. package/src/shared/google-ads.js +28 -0
  286. package/src/shared/google-maps-platform.js +28 -0
  287. package/src/shared/google.js +133 -0
  288. package/src/shared/granola.js +25 -0
  289. package/src/shared/hex.js +28 -0
  290. package/src/shared/inngest.js +35 -0
  291. package/src/shared/lightspeed.js +75 -0
  292. package/src/shared/linkedin.js +27 -0
  293. package/src/shared/logo-dev.js +21 -0
  294. package/src/shared/mapbox.js +38 -0
  295. package/src/shared/mcp.js +92 -0
  296. package/src/shared/microsoft-fabric.js +47 -0
  297. package/src/shared/microsoft.js +231 -0
  298. package/src/shared/miro.js +27 -0
  299. package/src/shared/oura.js +23 -0
  300. package/src/shared/posthog.js +33 -0
  301. package/src/shared/prestashop.js +23 -0
  302. package/src/shared/salesforce.js +36 -0
  303. package/src/shared/semrush.js +24 -0
  304. package/src/shared/shopify.js +51 -0
  305. package/src/shared/siteUrl.js +12 -0
  306. package/src/shared/slack.js +88 -0
  307. package/src/shared/snowflake.js +55 -0
  308. package/src/shared/tiktok.js +22 -0
  309. package/src/shared/tokens.js +747 -0
  310. package/src/shared/twilio.js +41 -0
  311. package/src/shared/twitch.js +49 -0
  312. package/src/shared/wave.js +52 -0
  313. package/src/shared/wix.js +40 -0
  314. package/src/shared/wiz.js +41 -0
  315. package/src/shared/wordpress-com.js +30 -0
  316. package/src/shared/wordpress.js +69 -0
  317. package/src/shared/workday.js +50 -0
  318. package/src/shared/x-twitter.js +19 -0
  319. package/src/shared/xero.js +46 -0
  320. package/src/shared/zoho-books.js +39 -0
  321. package/src/shared/zoho-crm.js +43 -0
  322. package/src/shared/zoho-regions.js +12 -0
  323. package/test/ai.test.js +136 -0
  324. package/test/airtable.test.js +125 -0
  325. package/test/algolia.test.js +207 -0
  326. package/test/amazon-redshift.test.js +272 -0
  327. package/test/amplitude.test.js +239 -0
  328. package/test/apify.test.js +93 -0
  329. package/test/apollo-io.test.js +125 -0
  330. package/test/asana.test.js +99 -0
  331. package/test/ashby.test.js +97 -0
  332. package/test/atlassian.test.js +249 -0
  333. package/test/attention.test.js +79 -0
  334. package/test/aws.test.js +405 -0
  335. package/test/brevo.test.js +71 -0
  336. package/test/calendly.test.js +136 -0
  337. package/test/canva.test.js +258 -0
  338. package/test/chargebee.test.js +195 -0
  339. package/test/clickhouse.test.js +278 -0
  340. package/test/confidence.test.js +205 -0
  341. package/test/databricks.test.js +253 -0
  342. package/test/dbt-semantic-layer.test.js +221 -0
  343. package/test/designMcp.test.js +336 -0
  344. package/test/elevenlabs.test.js +52 -0
  345. package/test/firebase-cloud-messaging.test.js +242 -0
  346. package/test/firecrawl.test.js +66 -0
  347. package/test/gemini-enterprise.test.js +218 -0
  348. package/test/github-api.test.js +167 -0
  349. package/test/gitlab-api.test.js +160 -0
  350. package/test/gong.test.js +192 -0
  351. package/test/google-ads.test.js +350 -0
  352. package/test/google-maps-platform.test.js +191 -0
  353. package/test/google.test.js +710 -0
  354. package/test/granola.test.js +240 -0
  355. package/test/hex.test.js +253 -0
  356. package/test/heygen.test.js +121 -0
  357. package/test/hubspot.test.js +103 -0
  358. package/test/inngest.test.js +219 -0
  359. package/test/lightspeed.test.js +250 -0
  360. package/test/linear.test.js +146 -0
  361. package/test/linkedin.test.js +243 -0
  362. package/test/logo-dev.test.js +79 -0
  363. package/test/mailgun.test.js +107 -0
  364. package/test/mapbox.test.js +181 -0
  365. package/test/mcp.test.js +227 -0
  366. package/test/microsoft-fabric.test.js +258 -0
  367. package/test/microsoft.test.js +554 -0
  368. package/test/n8nOAuth.test.js +188 -0
  369. package/test/notionOAuth.test.js +183 -0
  370. package/test/oura.test.js +211 -0
  371. package/test/paddleCatalogue.test.js +51 -0
  372. package/test/paddlePermissions.test.js +101 -0
  373. package/test/perplexityComposition.test.js +39 -0
  374. package/test/pipedriveOAuth.test.js +140 -0
  375. package/test/posthog.test.js +200 -0
  376. package/test/prestashop.test.js +207 -0
  377. package/test/resend.test.js +163 -0
  378. package/test/salesforce.test.js +276 -0
  379. package/test/semrush.test.js +479 -0
  380. package/test/sentry.test.js +35 -0
  381. package/test/shopify.test.js +247 -0
  382. package/test/slack.test.js +320 -0
  383. package/test/snowflake.test.js +391 -0
  384. package/test/tally.test.js +75 -0
  385. package/test/telegram.test.js +58 -0
  386. package/test/tiktok.test.js +243 -0
  387. package/test/tokens.test.js +1079 -0
  388. package/test/twilio.test.js +221 -0
  389. package/test/twitch.test.js +573 -0
  390. package/test/wave.test.js +678 -0
  391. package/test/wix.test.js +1099 -0
  392. package/test/wiz.test.js +185 -0
  393. package/test/wordpress-com.test.js +469 -0
  394. package/test/wordpress.test.js +660 -0
  395. package/test/workday.test.js +314 -0
  396. package/test/x-twitter.test.js +256 -0
  397. package/test/xero.test.js +700 -0
  398. package/test/zoho-books.test.js +253 -0
  399. 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.
@@ -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.