@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
@@ -0,0 +1,175 @@
1
+ # dbt Semantic Layer
2
+
3
+ Import `dbtSemanticLayerProvider` from
4
+ `@jskit-ai/connectors-catalog/server/dbt-semantic-layer`. The library verifies an environment, browses metadata and queries metric values. CLI and Vibe64 use the
5
+ same file and validators. Saving does not contact dbt or run a warehouse query.
6
+
7
+ ## Provider setup
8
+
9
+ 1. Sign into the dbt account owning the project. Confirm Semantic Layer access,
10
+ configured metrics, a supported warehouse and a deployment environment.
11
+ 2. Open **Account settings → Settings → Projects**, select your project, then
12
+ **Semantic Layer → Configure Semantic Layer**. Choose the deployment
13
+ environment containing those metrics and save.
14
+ 3. Under **Credentials & service tokens**, choose **Add Semantic Layer
15
+ credential**. Supply a warehouse identity allowed to read the source schemas.
16
+ 4. Map a new service token to that credential. Name it for this application and
17
+ grant **Semantic Layer Only** and **Metadata Only** permissions. Save.
18
+ 5. Copy the one-time token. In Vibe64 enter `env:DBT_SERVICE_TOKEN` in
19
+ **Service token reference**, save configuration, and use **Set credential in
20
+ Env** to paste and save the token as `DBT_SERVICE_TOKEN`. CLI users supply the
21
+ same backend environment variable; source stores only its reference.
22
+ 6. Copy the GraphQL hostname and Environment ID from the Semantic Layer
23
+ connection details. Use the GraphQL host, not the JDBC connection string.
24
+ 7. Save and choose **Connect account / Verify again**. **Check connection** only reads saved status. CLI hosts call `connectApiKey`.
25
+ Verification reads the environment's data-platform dialect.
26
+
27
+ The provider's account plan, roles and warehouse credentials remain required.
28
+ [Semantic Layer setup](https://docs.getdbt.com/docs/use-dbt-semantic-layer/setup-sl)
29
+
30
+ ```json
31
+ {
32
+ "schemaVersion": 1,
33
+ "registrations": {},
34
+ "integrations": {
35
+ "metrics": {
36
+ "provider": "dbt-semantic-layer",
37
+ "displayName": "Warehouse metadata",
38
+ "accountMode": "shared",
39
+ "scopes": [],
40
+ "settings": {
41
+ "host": "semantic-layer.cloud.getdbt.com",
42
+ "environmentId": "70506183142324"
43
+ },
44
+ "authentication": {
45
+ "method": "api-key",
46
+ "secretRef": "env:DBT_SERVICE_TOKEN"
47
+ }
48
+ }
49
+ }
50
+ }
51
+ ```
52
+
53
+ The Environment ID is positive decimal **text**, locally bounded to 38 digits.
54
+ Never convert it through a JavaScript number. `assistant` ownership is also
55
+ available; neither mode connects separate accounts for application users.
56
+
57
+ ## Hosts and operations
58
+
59
+ The transport sends Bearer-authenticated POST requests to
60
+ `https://<host>/api/graphql`, injecting the configured `environmentId` as a
61
+ `BigInt!` variable. Hosts support North America, EMEA, APAC, dbt single-tenant
62
+ and multi-cell patterns. Copy the actual hostname; these patterns do not prove
63
+ that a particular account exists. Arbitrary domains, URLs, paths and ports are
64
+ rejected. [GraphQL API](https://docs.getdbt.com/docs/dbt-apis/sl-graphql)
65
+
66
+ | Operation | Inputs | Selected result |
67
+ |---|---|---|
68
+ | `queries.create` | `metrics`, optional `groupBy` and `where`, `limit` (default 100, max 10000) | `data.createQuery.queryId` |
69
+ | `queries.get` | `queryId`, `pageNum` (default 1) | `data.query.status`, `totalPages`, decoded `jsonResult` |
70
+ | `environment.read` (verification) | None | `data.environmentInfo.dialect` |
71
+ | `metrics.list` | Paging and optional search | `data.metricsPaginated`, with name, description and type |
72
+ | `dimensions.list` | Required `metrics: [{ name }]`, plus paging/search | `data.dimensionsPaginated`, with name, description and type |
73
+ | `savedQueries.list` | Paging and optional search | `data.savedQueriesPaginated`, with name and description |
74
+
75
+ Paging inputs are `pageNum` (default 1, positive GraphQL integer) and `pageSize`
76
+ (default 20, local limit 100). `search` is at most 512 characters. Dimension
77
+ reads accept 1–100 metric names, each at most 512 characters. Page results keep
78
+ `items`, `pageNum`, `pageSize`, `totalItems` and `totalPages`. The original
79
+ GraphQL envelope is returned. Empty lists and nullable descriptions are valid.
80
+
81
+ Each call makes one request. No automatic paging, polling or retries occur.
82
+ The fixed documents keep caller data in variables. Environment and host are
83
+ configuration values, never operation overrides. Unknown operations, fields,
84
+ malformed pages and partial GraphQL errors fail before data is returned.
85
+ HTTP 401 requires reconnection; 403 reports denied permission; 429 reports
86
+ rate limiting. GraphQL error text is not used to guess authentication state
87
+ or exposed to the caller. Host, environment and token-reference changes require
88
+ reverification; updating the existing secret binding supports token rotation.
89
+ Disconnect removes local connection state, not the provider token.
90
+
91
+ ## Application and CLI wiring
92
+
93
+ Compose this provider with the existing connection service, your file-backed
94
+ store, Env resolver and authorization callback. Vibe64 writes the same JSON;
95
+ it is not needed at runtime. After explicit token verification:
96
+
97
+ ```js
98
+ const started = await connections.invoke({
99
+ context, integrationId: "metrics", operation: "queries.create",
100
+ input: {
101
+ metrics: [{ name: "order_total" }],
102
+ groupBy: [{ name: "metric_time", grain: "MONTH" }],
103
+ limit: 100
104
+ }
105
+ });
106
+ const page = await connections.invoke({
107
+ context, integrationId: "metrics", operation: "queries.get",
108
+ input: { queryId: started.data.createQuery.queryId, pageNum: 1 }
109
+ });
110
+ // If pending, schedule a bounded later check using the SAME query ID.
111
+ // If SUCCESSFUL, render page.data.query.jsonResult.data using its table schema.
112
+ ```
113
+
114
+ Other frameworks use their native HTTP client with the same host, exact string
115
+ Environment ID and backend Env token. They send the documented GraphQL requests
116
+ and implement their own result parsing/access policy. No JSKIT dependency or
117
+ Vibe64 service is required for those applications.
118
+
119
+ ## Public, Online and universal URLs
120
+
121
+ This service-token variant has **no OAuth registration or callback URL**.
122
+ There is no universal URL to enter in dbt for it. The customer's VM or custom
123
+ domain can invoke the same backend library with the same configuration. Its
124
+ identity and authorized environment must remain stable when the address changes.
125
+
126
+ Each application owner supplies the customer's token and selected environment
127
+ through its own configuration and private Env. Its backend enforces access and
128
+ usage limits. Separate tokens do not establish independent account or warehouse
129
+ capacity; confirm any required provider arrangement. The adapter does not
130
+ provision provider accounts or warehouse capacity.
131
+
132
+ ## Automation assessment
133
+
134
+ | Work | Feasibility |
135
+ |---|---|
136
+ | Write or edit configuration and wire the runtime | AI can use these exports, schema and ordinary file storage with externally supplied references. |
137
+ | Read metadata and query metric values | Implemented API operations; a valid customer token/environment are required. |
138
+ | Create two OAuth applications | Not applicable to the captured service-token flow. |
139
+ | Provision warehouse identities, dbt credentials and service tokens | Account-admin setup is required. The reviewed setup instructions do not establish a complete provisioning API; do not claim automated creation. An authorized operator can follow the portal steps above. |
140
+ | Choose account capacity or grant access | Requires the owner's account and warehouse decisions. No change is made by saving a form. |
141
+
142
+ ## Current limits and evidence
143
+
144
+ Queries accept 1–100 metrics (`name`, optional `alias`), up to 100 dimensions
145
+ (`name`, optional `grain`: DAY/WEEK/MONTH/QUARTER/YEAR), and up to 20 trusted
146
+ `where: [{sql}]` filters. For example, group `order_total` by `metric_time` at
147
+ MONTH grain and filter with `{{ Dimension('metric_time') }} >= '2026-01-01'`.
148
+ The fixed GraphQL document uses variables, but SQL templates remain executable
149
+ provider expressions: the backend must construct trusted filters and enforce
150
+ customer access. Never interpolate arbitrary app-user text into them.
151
+
152
+ Submit once using `queries.create`; retain its ID and call `queries.get` at a
153
+ bounded interval while pending. SUCCESSFUL returns a decoded pandas TABLE object:
154
+ rows are in `jsonResult.data`, column metadata in `jsonResult.schema.fields`.
155
+ Request each page explicitly through `totalPages`; the provider normally uses
156
+ 1024 rows per page. Local JSON pages are bounded to 5 MiB/1024 rows. FAILED raises
157
+ a generic error; inspect dbt for details. No retries or background polling are
158
+ performed, and a timed-out submission may still execute and consume warehouse
159
+ capacity. The app owns submission deduplication, deadlines and authorization.
160
+
161
+ **LIMITATIONS:** dbt recommends JSON for testing/validation because of its
162
+ performance cost. This path supports small metric tables; large production
163
+ analytics should use native dbt/Arrow tooling. Arrow decoding, SQL compilation,
164
+ saved-query execution, webhooks and app-user login are not supplied. For example,
165
+ an app can fetch monthly revenue and render its own chart, but this connector
166
+ does not build the chart or a continuous warehouse dashboard. Editor
167
+ Codex/OpenCode attachment remains deferred. Personal access
168
+ tokens are another documented provider option; the captured service-token setup
169
+ is the supported initial onboarding journey.
170
+
171
+ Controlled HTTP/file tests cover configuration, host restrictions, precise IDs,
172
+ metadata, empty pages, ownership, restart, rotation, malformed responses,
173
+ permission failures, cancellation and timeout. Live account setup, actual data
174
+ access and generated applications are not exercised. Editor form proof is
175
+ recorded separately when the installed package has passed browser checks.
@@ -0,0 +1,102 @@
1
+ # ElevenLabs
2
+
3
+ Import `elevenlabsProvider` from `@jskit-ai/connectors-catalog/server/elevenlabs`.
4
+ This connector discovers voices/models, generates audio and creates Instant Voice Clones.
5
+
6
+ ## Set up access
7
+
8
+ 1. Select the intended ElevenLabs workspace. Choose **Developers** in the
9
+ sidebar and open **API Keys**.
10
+ 2. Create a named key. Keep restrictions enabled and grant read access to the
11
+ User read and Voices read. Add Models read and Text to Speech for synthesis; Voices write is required only for cloning.
12
+ 3. Set an available credit limit and expiry appropriate for the application.
13
+ Copy the key when created; the full value is not displayed later.
14
+ 4. Store the value outside source as `ELEVENLABS_API_KEY`. The configuration slot
15
+ uses provider `elevenlabs`, mode `shared` or `assistant`, empty `scopes`, and
16
+ `authentication: { "method": "api-key", "secretRef": "env:ELEVENLABS_API_KEY" }`.
17
+ 5. Save and choose **Connect account / Verify again**, or call `connectApiKey` from your CLI host. **Check connection** only reads saved status. Verification reads the account without generating audio; it does not prove speech/cloning permissions.
18
+ Edit/revoke keys through the key's **•••** menu. See
19
+ [API-key setup](https://elevenlabs.io/docs/help-center/technical/how-do-i-authorize-myself-using-an-api-key).
20
+
21
+ ## Runtime and AI composition
22
+
23
+ `account.read` uses `GET /v1/user` as the authenticated verification request.
24
+ `voices.list` uses `GET /v2/voices`, with `search`, `page_size` (1–100, default
25
+ 10), and `next_page_token`. Results preserve the pagination envelope, including
26
+ `has_more` and `next_page_token`. Requests carry `xi-api-key`. See
27
+ [Account](https://elevenlabs.io/docs/api-reference/user/get) and
28
+ [Voices](https://elevenlabs.io/docs/api-reference/voices/search).
29
+
30
+ Compose the [API-key source pattern](../patterns/api-key-connection/PATTERN.md)
31
+ with this provider and an application authorizer. Keep resource ownership in
32
+ the application. A CLI edits the same portable JSON as Vibe64; neither requires
33
+ a database to store connection state.
34
+
35
+ ## Provisioning automation and capacity
36
+
37
+ An AI can prepare source/configuration and wire these operations once a key
38
+ is provided; generation and cloning require explicit application authorization. This pass has not verified automated key/service-account issuance
39
+ for every plan; use console-assisted setup for the initial credential. Dedicated
40
+ service accounts can isolate resources where available, but that alone does not
41
+ prove separate workspace credits. See [Provider security guidance](https://elevenlabs.io/docs/eleven-api/guides/how-to/best-practices/security).
42
+
43
+ The application owner supplies its workspace/service credential through private
44
+ Env and verifies the actual billing and concurrency boundaries. Retain provider
45
+ key limits. Two key names in one workspace do not create independent capacity.
46
+
47
+ Fixtures cover both endpoints, the custom header, cursor encoding, page limits,
48
+ encrypted file restart, rotation and permission/rate-limit failures. No real
49
+ ElevenLabs requests or audio generation were performed.
50
+
51
+ ## Speech and Instant Voice Cloning
52
+
53
+ - `models.list`: `GET /v1/models`; choose a model with `can_do_text_to_speech`.
54
+ - `speech.create`: `POST /v1/text-to-speech/{voiceId}`; required `voiceId`,
55
+ `model_id` and `text` (1–5000 characters). Optional `language_code` and bounded
56
+ `voice_settings` (stability, similarity_boost, style, use_speaker_boost, speed).
57
+ Output choices: mp3_44100_128 (default), mp3_22050_32, pcm_16000, ulaw_8000.
58
+ The result contains `bodyBase64`, `contentType`, `size`; decode it on the
59
+ backend and return audio through an authorized route. PCM/µ-law are raw formats,
60
+ not universally browser-playable files. MP3 is suitable for an HTML audio player.
61
+ - `voices.clone`: `POST /v1/voices/add`, multipart `files` plus `name`, optional
62
+ `description` and `remove_background_noise` (false by default). The portable
63
+ input supplies 1–5 files as `{name, contentType, base64}`, total at most 16 MiB,
64
+ with canonical base64 and a maximum 12 MiB encoded per file. The app must supply
65
+ `consentConfirmed: true` after obtaining speaker permission; this local flag
66
+ is not sent as a provider field. Response `requires_verification: true` means
67
+ the voice is not yet ready. Complete provider verification; never bypass it.
68
+
69
+ [Speech API](https://elevenlabs.io/docs/api-reference/text-to-speech/convert),
70
+ [Instant clone API](https://elevenlabs.io/docs/api-reference/voices/ivc/create).
71
+ For console cloning, open Voices > Add a new voice > Instant Voice Clone,
72
+ provide clear samples, a name and confirm rights. An eligible plan/voice slot
73
+ is required; [Instant cloning is available from Starter](https://help.elevenlabs.io/hc/en-us/articles/13313587528849-What-is-My-Voices).
74
+
75
+ ```js
76
+ const audio = await connections.invoke({ context, integrationId: "voice",
77
+ operation: "speech.create", input: {
78
+ voiceId: selectedVoiceId, model_id: selectedModelId, text: approvedText
79
+ }
80
+ });
81
+ const bytes = Buffer.from(audio.bodyBase64, "base64");
82
+ // Serve bytes through your app's authenticated audio route, using contentType.
83
+ ```
84
+
85
+ The generated app owns authorization, voice selection, samples, storage, credit
86
+ limits and playback. Other frameworks use their native HTTP/multipart clients
87
+ with the same backend Env key and documented endpoints; no JSKIT runtime or
88
+ Vibe64 gateway is needed. API-key setup has no OAuth client or callback URL.
89
+
90
+ **LIMITATIONS:** Audio is buffered up to 16 MiB; it is not low-latency streaming.
91
+ Use native ElevenLabs streaming for live conversation or larger outputs.
92
+ Professional Voice Cloning, realtime agents, regional residency and provider
93
+ verification workflows are not implemented here. For example, an app can generate
94
+ an appointment announcement with an authorized cloned voice, but configuring this
95
+ connector does not create a phone agent or let Vibe64's coding assistant use it.
96
+ Editor assistant attachment is deferred. A failed or timed-out POST may already
97
+ have consumed credits or created a clone; no automatic retry is performed.
98
+
99
+ Focused fixtures additionally verify playable audio bytes/content type, malformed
100
+ and oversized responses, clone multipart/consent/verification status, denied
101
+ permissions, rate limiting and uncertain submissions. No live audio, account or
102
+ generated app was used.
package/docs/figma.md ADDED
@@ -0,0 +1,132 @@
1
+ # Figma remote MCP
2
+
3
+ Checked against Figma's public documentation and OAuth discovery on 9 September
4
+ 2026. This fragment connects an assistant owner's account, discovers tools and
5
+ invokes an explicitly authorized tool. It uses the remote HTTP server, not the
6
+ desktop MCP server or a personal access token for Figma's REST API.
7
+
8
+ ## Prerequisites and registration
9
+
10
+ Figma currently admits clients listed in its MCP catalogue. A new client must
11
+ request approval through the waitlist linked from the
12
+ [MCP introduction](https://developers.figma.com/docs/figma-mcp-server/).
13
+ The registration endpoint's existence does not remove that requirement.
14
+
15
+ 1. Open that introduction and follow **join the waitlist** in the client-access
16
+ notice. Supply the intended assistant client and usage details requested by
17
+ Figma. Wait for acceptance; this package cannot approve a client.
18
+ 2. Choose the callback implemented by your backend or CLI host. For your own
19
+ application, this is its actual HTTPS callback, or a loopback callback where
20
+ accepted. The host must retain the pending owner and state through consent.
21
+ 3. After approval, use Vibe64's **OAuth client registration** section to copy
22
+ the endpoint and JSON body into an HTTP client and send one POST with
23
+ Content-Type application/json. Alternatively invoke `registerFigmaClient`
24
+ once from a trusted setup command.
25
+ It sends `client_name`, the exact callback, the authorization-code/refresh
26
+ grant types and `mcp:connect` to Figma's advertised registration endpoint.
27
+ It requests confidential client authentication using `client_secret_post`.
28
+ 4. Put the returned client ID in `registrations.figma.clientId`. Store the
29
+ returned secret and callback in your host's existing secret/environment
30
+ facilities; place only references in `clientSecretRef` and `callbackUrlRef`.
31
+ 5. In Vibe64, open **Integrations → Add Figma**. Enter **Client ID**,
32
+ **Client secret reference** and **Callback URL reference**. Keep **Assistant
33
+ access** and **Use Figma MCP tools**, then save. Use **Set credential in Env** for the returned secret and **Set
34
+ callback in Env** for the exact registered URL. Saving edits the same JSON
35
+ a CLI user writes; it does not register the client or start consent.
36
+ 6. Your host calls `beginAuthorization` and opens its URL. Sign into Figma and
37
+ review the consent screen. Its callback calls `completeAuthorization` for
38
+ the original authenticated owner. The runtime verifies tool discovery before
39
+ saving a connected grant.
40
+
41
+ There is no separate REST-app dashboard step in this MCP registration fragment.
42
+ Figma's [remote-server instructions](https://developers.figma.com/docs/figma-mcp-server/remote-server-installation/)
43
+ show the consent UI for supported clients. Do not copy another client's ID to
44
+ bypass the approval process.
45
+
46
+ ## Runtime and CLI composition
47
+
48
+ Import `figmaProvider` and `registerFigmaClient` from
49
+ `@jskit-ai/connectors-catalog/server/figma`. Use the
50
+ [assistant OAuth pattern](../patterns/assistant-mcp-oauth/PATTERN.md) with the
51
+ existing connection service, environment resolver and encrypted file store.
52
+
53
+ ```js
54
+ const registration = await registerFigmaClient({
55
+ clientName: "My design assistant",
56
+ callbackUrl: configuredCallback
57
+ });
58
+ ```
59
+
60
+ The setup caller authorizes this operation and stores `registration.clientSecret`
61
+ securely. Do not print the result or run registration for each sign-in. On an
62
+ ambiguous failure, check with the provider before trying to create another client.
63
+
64
+ The provider's resource is `https://mcp.figma.com/mcp`. Authorization uses
65
+ `https://www.figma.com/oauth/mcp`; exchange/refresh use
66
+ `https://api.figma.com/v1/oauth/token`. Discovery advertises an authorization
67
+ response issuer, which the runtime requires and validates. PKCE, state,
68
+ single-use attempts, refresh, isolation and token storage belong to the shared
69
+ connection implementation.
70
+ [Authorization metadata](https://api.figma.com/.well-known/oauth-authorization-server),
71
+ [resource metadata](https://mcp.figma.com/.well-known/oauth-protected-resource).
72
+
73
+ Call `tools.list` first; use the returned schemas to validate inputs for
74
+ `tools.call`. The host must approve the exact name and arguments, including file
75
+ and node identity. `mcp:connect` is a broad MCP permission, not a read-only
76
+ guarantee. A host that only needs design reads should disallow write tools in its
77
+ own policy. Preserve the tool's `isError` result and surface provider failures.
78
+ Discovery does not prove access to a particular design.
79
+
80
+ ## Connection ownership and callbacks
81
+
82
+ Register the real callback implemented by the runtime that owns this connection.
83
+ For an application integration, use the application's assigned hosting URL as
84
+ the initial origin and its implemented callback path. Store the exact callback
85
+ in its Env reference and provider registration. A domain change requires updating
86
+ both values if the callback URL changes; retain the application identity and its
87
+ persistent grants when moving hosts. Public Vibe64, Online and CLI users supply
88
+ their own registrations through this same contract.
89
+ See the [callback guide](../../connectors-core/docs/oauth-callbacks.md).
90
+
91
+ The registration and grants belong to the application or explicitly authorized
92
+ assistant host consuming Figma. Provider approval and usage quotas still apply;
93
+ separate client IDs do not establish separate capacity or broader permissions.
94
+
95
+ ## Automation assessment and limits
96
+
97
+ The helper can automate the documented client-registration request and field
98
+ validation after eligibility is established. AI can prepare configuration,
99
+ callback handling and permitted tool policy. Provider approval, account sign-in
100
+ and user consent require the appropriate human/provider action. No account,
101
+ registration, consent or tool call was performed against Figma in these tests.
102
+
103
+ Tests use controlled OAuth/MCP responses with real encrypted file persistence.
104
+ They exercise issuer binding, refresh, owner isolation, replay, invalid inputs,
105
+ tool authorization, cancellation, safe failures and registration behavior.
106
+ Local desktop MCP, automatic chat attachment, login and resources/prompts
107
+ are not implemented by this fragment.
108
+
109
+ ## Design context and topology
110
+
111
+ After connection, discover the current tool schemas and explicitly authorize the
112
+ selected file and node before calling `get_design_context`. A Figma frame link
113
+ identifies that selection. Preserve returned text, images and tool errors for
114
+ the authorized assistant host. The returned context is provider-owned, not a
115
+ fixed JSKIT design schema; fixtures demonstrate consumption rather than asserting
116
+ an immutable live tool signature. The host chooses the target framework and
117
+ performs code generation itself.
118
+
119
+ **LIMITATIONS:** This supplies remote MCP only. Installed Vibe64 and Online can
120
+ both use the remote server with their own approved registration. Desktop MCP is
121
+ local to the machine running Figma Desktop and the consuming client: on Online,
122
+ 127.0.0.1 means the VPS, not the user's laptop. Native desktop clients may configure
123
+ Figma Desktop independently; no tunnel/proxy is provided here. Government-only
124
+ desktop deployments are outside this remote connector.
125
+
126
+ Editor coding-assistant attachment is deferred. For example, an explicitly wired
127
+ assistant host can receive an authorized booking-card layout and screenshot, but
128
+ saving Figma in Vibe64 does not yet let Codex/OpenCode reproduce that frame.
129
+ App-user login, Make resources/prompts and a visual Figma editor are not supplied.
130
+ Other frameworks use a native MCP/OAuth client and the same config/Env contract;
131
+ PHP/other runtime code does not belong in JSKIT. Provider approval remains external;
132
+ new-client registration is a guided setup/helper request, not automatic admission.