@zackbart/connecta 0.34.1 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/CHANGELOG.md +418 -0
  2. package/README.md +65 -105
  3. package/SECURITY.md +3 -2
  4. package/bin/connecta.mjs +41 -16
  5. package/bin/version.mjs +1 -1
  6. package/dist/access-tokens.d.ts +2 -1
  7. package/dist/access-tokens.js +66 -30
  8. package/dist/activity.d.ts +1 -1
  9. package/dist/activity.js +2 -0
  10. package/dist/agent-config.d.ts +23 -0
  11. package/dist/agent-config.js +59 -0
  12. package/dist/agent-description.js +16 -0
  13. package/dist/agent-identity.js +4 -4
  14. package/dist/agent-observation.js +39 -0
  15. package/dist/auth/clerk-sdk/client.d.ts +2 -0
  16. package/dist/auth/clerk-sdk/generated.js +554 -563
  17. package/dist/auth/clerk-transport.js +70 -3
  18. package/dist/auth/clerk.d.ts +13 -0
  19. package/dist/auth/clerk.js +653 -246
  20. package/dist/auth/cloudflare-access.js +46 -42
  21. package/dist/auth/downstream-client-metadata.js +2 -2
  22. package/dist/auth/downstream-oauth.js +2044 -1161
  23. package/dist/auth/downstream-revocation.js +88 -88
  24. package/dist/auth/native-call.js +20 -0
  25. package/dist/auth/native.js +184 -0
  26. package/dist/auth/oauth-start-reset.js +11 -5
  27. package/dist/auth/oauth-token-response.js +121 -102
  28. package/dist/auth/oauth-v2-migration.js +97 -78
  29. package/dist/auth/renewable-grant.js +10 -0
  30. package/dist/auth/static-oauth.js +751 -281
  31. package/dist/auth/vercel-agent.js +266 -0
  32. package/dist/auth-admission.js +204 -0
  33. package/dist/auth-elicitation.js +350 -241
  34. package/dist/authorization-handoff.js +164 -90
  35. package/dist/call-admission-context.js +3 -10
  36. package/dist/call-admission.js +2 -0
  37. package/dist/call-classification.js +9 -0
  38. package/dist/call-recovery.js +32 -13
  39. package/dist/canonical-json.js +8 -0
  40. package/dist/catalog-cache.js +369 -213
  41. package/dist/catalog-service.js +659 -530
  42. package/dist/catalog.js +5 -1
  43. package/dist/concurrency.js +0 -25
  44. package/dist/config-defaults.d.ts +1 -0
  45. package/dist/config-defaults.js +1 -0
  46. package/dist/config-schema.d.ts +3 -1
  47. package/dist/config-schema.js +13 -3
  48. package/dist/config.d.ts +40 -6
  49. package/dist/config.js +40 -26
  50. package/dist/connector-caller.d.ts +4 -0
  51. package/dist/connector-caller.js +17 -4
  52. package/dist/connectors/api-connector.d.ts +29 -7
  53. package/dist/connectors/api-connector.js +145 -57
  54. package/dist/connectors/guarded-fetch.d.ts +51 -17
  55. package/dist/connectors/guarded-fetch.js +215 -121
  56. package/dist/connectors/negotiation-cache.js +20 -10
  57. package/dist/connectors/remote-mcp.d.ts +10 -30
  58. package/dist/connectors/remote-mcp.js +955 -563
  59. package/dist/d1.js +10 -243
  60. package/dist/derived-context.js +5 -0
  61. package/dist/describe-config.d.ts +3 -1
  62. package/dist/describe-config.js +2 -0
  63. package/dist/downstream-input.js +347 -260
  64. package/dist/errors.d.ts +87 -6
  65. package/dist/errors.js +114 -4
  66. package/dist/execute.js +87 -50
  67. package/dist/executor-admission.js +3 -0
  68. package/dist/executors/quickjs.js +163 -112
  69. package/dist/guarded-transport.js +50 -0
  70. package/dist/guest-runtime.js +1 -1
  71. package/dist/http/client.js +439 -0
  72. package/dist/http/errors.js +558 -0
  73. package/dist/http/fields.js +49 -0
  74. package/dist/http/hatch-paging.js +318 -0
  75. package/dist/http/hatch.js +1279 -0
  76. package/dist/http/json-schema.js +267 -0
  77. package/dist/http/node-transport.js +241 -0
  78. package/dist/http/oauth.js +162 -0
  79. package/dist/http/paging.js +227 -0
  80. package/dist/http/provider.js +221 -0
  81. package/dist/http/safety.js +82 -0
  82. package/dist/http/services.js +79 -0
  83. package/dist/http/tools.js +379 -0
  84. package/dist/http/vendor-index.js +138 -0
  85. package/dist/http/vendor.js +448 -0
  86. package/dist/http/write-request.js +66 -0
  87. package/dist/http-policy.d.ts +11 -0
  88. package/dist/http-policy.js +45 -0
  89. package/dist/inbound-credential.js +1 -1
  90. package/dist/index.d.ts +2 -2
  91. package/dist/index.js +4 -0
  92. package/dist/invocation-auth.js +30 -19
  93. package/dist/invocation.js +218 -85
  94. package/dist/mcp-result.js +0 -4
  95. package/dist/membership.d.ts +4 -0
  96. package/dist/meta-output.js +1 -1
  97. package/dist/meta-tools.js +531 -406
  98. package/dist/native-recovery.js +52 -0
  99. package/dist/native-tools.js +382 -0
  100. package/dist/node.d.ts +4 -3
  101. package/dist/node.js +45 -8
  102. package/dist/oauth-handoff.js +177 -104
  103. package/dist/oauth-partition.js +6 -20
  104. package/dist/oauth-sealing.js +6 -7
  105. package/dist/operation-vocabulary.js +101 -0
  106. package/dist/operator-record.d.ts +2 -2
  107. package/dist/operator-record.js +17 -4
  108. package/dist/operator-ui/contract.d.ts +8 -3
  109. package/dist/operator-ui/generated.js +4 -4
  110. package/dist/operator-ui/model.d.ts +2 -3
  111. package/dist/program-writes.js +47 -26
  112. package/dist/provider-call-facts.d.ts +115 -0
  113. package/dist/provider-call-facts.js +182 -0
  114. package/dist/provider-call.d.ts +112 -0
  115. package/dist/provider-call.js +271 -0
  116. package/dist/provider.d.ts +65 -31
  117. package/dist/provider.js +116 -39
  118. package/dist/providers/_shared/google/hatch.js +91 -0
  119. package/dist/providers/_shared/google/kit.js +427 -0
  120. package/dist/providers/_shared/google/result-size.js +15 -2
  121. package/dist/providers/_shared/google/service-account.d.ts +2 -1
  122. package/dist/providers/_shared/google/service-account.js +8 -4
  123. package/dist/providers/_shared/google/workspace.d.ts +6 -210
  124. package/dist/providers/_shared/google/workspace.js +6 -425
  125. package/dist/providers/_shared/rest/compact-index.js +86 -0
  126. package/dist/providers/_shared/rest/kit.js +146 -0
  127. package/dist/providers/_shared/rest/operation-index.js +230 -14
  128. package/dist/providers/_shared/rest/response-media.js +11 -0
  129. package/dist/providers/_shared/rest/value-safety.js +353 -195
  130. package/dist/providers/_shared/sensitive-fields.js +27 -0
  131. package/dist/providers/breeze/api.js +584 -0
  132. package/dist/providers/breeze/index.d.ts +1 -3
  133. package/dist/providers/breeze/index.js +67 -1420
  134. package/dist/providers/breeze/openapi.generated.js +60 -0
  135. package/dist/providers/breeze/skill.generated.js +2 -6
  136. package/dist/providers/breeze/tools.js +696 -0
  137. package/dist/providers/ccb/api.js +496 -0
  138. package/dist/providers/ccb/index.d.ts +15 -37
  139. package/dist/providers/ccb/index.js +77 -1702
  140. package/dist/providers/ccb/lib/constants.d.ts +34 -0
  141. package/dist/providers/ccb/lib/constants.js +74 -0
  142. package/dist/providers/ccb/lib/guide.js +9 -0
  143. package/dist/providers/ccb/lib/verdicts.js +387 -0
  144. package/dist/providers/ccb/openapi.generated.js +397 -0
  145. package/dist/providers/ccb/safety.js +295 -0
  146. package/dist/providers/ccb/skill.generated.js +2 -6
  147. package/dist/providers/ccb/tools.js +853 -0
  148. package/dist/providers/cloudflare/api.js +1066 -0
  149. package/dist/providers/cloudflare/index.d.ts +5 -22
  150. package/dist/providers/cloudflare/index.js +79 -197
  151. package/dist/providers/cloudflare/lib/config.d.ts +16 -0
  152. package/dist/providers/cloudflare/lib/config.js +2 -0
  153. package/dist/providers/cloudflare/lib/discovery.js +29 -0
  154. package/dist/providers/cloudflare/{graphql.js → lib/graphql.js} +1 -1
  155. package/dist/providers/cloudflare/lib/hatch.js +103 -0
  156. package/dist/providers/cloudflare/lib/path-bounds.js +28 -0
  157. package/dist/providers/cloudflare/lib/response-media.js +75 -0
  158. package/dist/providers/cloudflare/openapi.generated.js +4 -3
  159. package/dist/providers/cloudflare/{value-safety.js → safety.js} +487 -0
  160. package/dist/providers/cloudflare/skill.generated.js +2 -10
  161. package/dist/providers/cloudflare/tools.js +360 -0
  162. package/dist/providers/docs/api.js +51 -0
  163. package/dist/providers/docs/index.d.ts +1 -12
  164. package/dist/providers/docs/index.js +53 -1165
  165. package/dist/providers/docs/lib/constants.d.ts +18 -0
  166. package/dist/providers/docs/lib/constants.js +18 -0
  167. package/dist/providers/docs/lib/discovery.js +26 -0
  168. package/dist/providers/docs/lib/requests.js +48 -0
  169. package/dist/providers/docs/lib/schemas.js +168 -0
  170. package/dist/providers/docs/openapi.generated.js +16 -0
  171. package/dist/providers/docs/safety.js +54 -0
  172. package/dist/providers/docs/skill.generated.js +2 -6
  173. package/dist/providers/docs/tools.js +801 -0
  174. package/dist/providers/drive/api.js +177 -0
  175. package/dist/providers/drive/index.d.ts +1 -12
  176. package/dist/providers/drive/index.js +38 -1448
  177. package/dist/providers/drive/lib/constants.d.ts +6 -0
  178. package/dist/providers/drive/lib/constants.js +6 -0
  179. package/dist/providers/drive/lib/contracts.js +532 -0
  180. package/dist/providers/drive/lib/hatch.js +197 -0
  181. package/dist/providers/drive/openapi.generated.js +77 -0
  182. package/dist/providers/drive/safety.js +90 -0
  183. package/dist/providers/drive/skill.generated.js +2 -6
  184. package/dist/providers/drive/tools.js +1290 -0
  185. package/dist/providers/forms/api.js +71 -0
  186. package/dist/providers/forms/index.d.ts +1 -12
  187. package/dist/providers/forms/index.js +49 -1145
  188. package/dist/providers/forms/lib/constants.d.ts +14 -0
  189. package/dist/providers/forms/lib/constants.js +19 -0
  190. package/dist/providers/forms/lib/hatch.js +72 -0
  191. package/dist/providers/forms/openapi.generated.js +23 -0
  192. package/dist/providers/forms/safety.js +34 -0
  193. package/dist/providers/forms/skill.generated.js +2 -8
  194. package/dist/providers/forms/tools.js +1023 -0
  195. package/dist/providers/github/api.js +150 -0
  196. package/dist/providers/github/index.d.ts +4 -5
  197. package/dist/providers/github/index.js +30 -87
  198. package/dist/providers/github/{auth.d.ts → lib/auth.d.ts} +5 -3
  199. package/dist/providers/github/{auth.js → lib/auth.js} +40 -43
  200. package/dist/providers/github/lib/discovery.js +132 -0
  201. package/dist/providers/github/lib/operations.js +58 -0
  202. package/dist/providers/github/{scope.d.ts → lib/scope.d.ts} +2 -0
  203. package/dist/providers/github/{scope.js → lib/scope.js} +25 -1
  204. package/dist/providers/github/openapi.generated.js +1216 -0
  205. package/dist/providers/github/safety.js +216 -0
  206. package/dist/providers/github/skill.generated.js +2 -5
  207. package/dist/providers/github/tools.js +506 -0
  208. package/dist/providers/gmail/api.js +114 -0
  209. package/dist/providers/gmail/index.d.ts +1 -12
  210. package/dist/providers/gmail/index.js +73 -1621
  211. package/dist/providers/gmail/lib/constants.d.ts +13 -0
  212. package/dist/providers/gmail/lib/constants.js +16 -0
  213. package/dist/providers/gmail/lib/index.js +173 -0
  214. package/dist/providers/gmail/lib/schemas.js +176 -0
  215. package/dist/providers/gmail/lib/threading.js +120 -0
  216. package/dist/providers/gmail/openapi.generated.js +92 -0
  217. package/dist/providers/gmail/safety.js +21 -0
  218. package/dist/providers/gmail/skill.generated.js +2 -6
  219. package/dist/providers/gmail/tools.js +1435 -0
  220. package/dist/providers/overflow/api.js +1008 -0
  221. package/dist/providers/overflow/index.d.ts +1 -17
  222. package/dist/providers/overflow/index.js +60 -1488
  223. package/dist/providers/overflow/skill.generated.js +2 -5
  224. package/dist/providers/overflow/tools.js +873 -0
  225. package/dist/providers/planning-center/api.js +467 -0
  226. package/dist/providers/planning-center/index.d.ts +4 -35
  227. package/dist/providers/planning-center/index.js +69 -2445
  228. package/dist/providers/planning-center/lib/constants.d.ts +58 -0
  229. package/dist/providers/planning-center/lib/constants.js +83 -0
  230. package/dist/providers/planning-center/lib/discovery.js +40 -0
  231. package/dist/providers/planning-center/lib/guide.js +39 -0
  232. package/dist/providers/planning-center/lib/json-api.js +83 -0
  233. package/dist/providers/planning-center/lib/verdicts.js +1758 -0
  234. package/dist/providers/planning-center/openapi.generated.js +1764 -0
  235. package/dist/providers/planning-center/safety.js +188 -0
  236. package/dist/providers/planning-center/skill.generated.js +2 -27
  237. package/dist/providers/planning-center/tools.js +1010 -0
  238. package/dist/providers/quickbooks/api.js +299 -0
  239. package/dist/providers/quickbooks/index.d.ts +13 -0
  240. package/dist/providers/quickbooks/index.js +93 -0
  241. package/dist/providers/quickbooks/lib/query.js +118 -0
  242. package/dist/providers/quickbooks/lib/writes.js +168 -0
  243. package/dist/providers/quickbooks/safety.js +222 -0
  244. package/dist/providers/quickbooks/skill.generated.js +5 -0
  245. package/dist/providers/quickbooks/tools.js +117 -0
  246. package/dist/providers/sheets/api.js +133 -0
  247. package/dist/providers/sheets/index.d.ts +4 -16
  248. package/dist/providers/sheets/index.js +61 -1172
  249. package/dist/providers/sheets/lib/constants.d.ts +14 -0
  250. package/dist/providers/sheets/lib/constants.js +14 -0
  251. package/dist/providers/sheets/lib/hatch.js +163 -0
  252. package/dist/providers/sheets/lib/requests.js +105 -0
  253. package/dist/providers/sheets/lib/schemas.js +138 -0
  254. package/dist/providers/sheets/openapi.generated.js +30 -0
  255. package/dist/providers/sheets/safety.js +27 -0
  256. package/dist/providers/sheets/skill.generated.js +2 -7
  257. package/dist/providers/sheets/tools.js +733 -0
  258. package/dist/providers/slides/api.js +147 -0
  259. package/dist/providers/slides/index.d.ts +2 -10
  260. package/dist/providers/slides/index.js +48 -2555
  261. package/dist/providers/slides/lib/constants.d.ts +11 -0
  262. package/dist/providers/slides/lib/constants.js +11 -0
  263. package/dist/providers/slides/lib/requests.js +60 -0
  264. package/dist/providers/slides/lib/schemas.js +565 -0
  265. package/dist/providers/slides/openapi.generated.js +18 -0
  266. package/dist/providers/slides/skill.generated.js +2 -6
  267. package/dist/providers/slides/tools.js +1968 -0
  268. package/dist/providers/stripe/api.js +401 -0
  269. package/dist/providers/stripe/index.d.ts +5 -27
  270. package/dist/providers/stripe/index.js +74 -210
  271. package/dist/providers/stripe/lib/config.d.ts +4 -0
  272. package/dist/providers/stripe/lib/config.js +2 -0
  273. package/dist/providers/stripe/openapi.generated.js +4 -3
  274. package/dist/providers/stripe/{value-safety.js → safety.js} +5 -5
  275. package/dist/providers/stripe/skill.generated.js +2 -11
  276. package/dist/providers/stripe/tools.js +77 -0
  277. package/dist/providers/tithely/api.js +531 -0
  278. package/dist/providers/tithely/index.d.ts +17 -0
  279. package/dist/providers/tithely/index.js +86 -965
  280. package/dist/providers/tithely/skill.generated.js +2 -5
  281. package/dist/providers/tithely/tools.js +426 -0
  282. package/dist/providers/vercel/api.js +551 -0
  283. package/dist/providers/vercel/index.d.ts +9 -25
  284. package/dist/providers/vercel/index.js +65 -260
  285. package/dist/providers/vercel/lib/config.d.ts +2 -0
  286. package/dist/providers/vercel/lib/config.js +2 -0
  287. package/dist/providers/vercel/lib/index.js +117 -0
  288. package/dist/providers/vercel/lib/logs.js +100 -0
  289. package/dist/providers/vercel/lib/pin.js +270 -0
  290. package/dist/providers/vercel/openapi.generated.js +10 -5
  291. package/dist/providers/vercel/{value-safety.js → safety.js} +247 -38
  292. package/dist/providers/vercel/skill.generated.js +2 -7
  293. package/dist/providers/vercel/tools.js +642 -0
  294. package/dist/redaction-identity.js +47 -0
  295. package/dist/redaction-marker.js +125 -0
  296. package/dist/registry.d.ts +21 -15
  297. package/dist/registry.js +409 -376
  298. package/dist/routes/access-tokens.js +1 -1
  299. package/dist/routes/actor-labels.js +1 -1
  300. package/dist/routes/connect.js +1 -1
  301. package/dist/routes/dispatch.js +103 -0
  302. package/dist/routes/mcp.js +170 -79
  303. package/dist/routes/oauth.js +6 -1
  304. package/dist/routes/operator.js +2 -2
  305. package/dist/routes/shared.d.ts +5 -4
  306. package/dist/routes/shared.js +244 -177
  307. package/dist/routes/skills.js +10 -8
  308. package/dist/routes/ui-config.js +27 -3
  309. package/dist/routes/ui-data.js +21 -20
  310. package/dist/routes/ui.js +1 -1
  311. package/dist/runtime/call-admission.js +0 -26
  312. package/dist/runtime/call-entry.js +30 -0
  313. package/dist/runtime/call.js +552 -0
  314. package/dist/runtime/connector-scope.js +7 -0
  315. package/dist/runtime/credential-probe.js +34 -0
  316. package/dist/runtime/executor.js +40 -0
  317. package/dist/runtime/native-storage.js +63 -0
  318. package/dist/runtime/registry.js +27 -0
  319. package/dist/runtime/request-scope.js +72 -0
  320. package/dist/runtime/run.js +15 -7
  321. package/dist/runtime/shared-read.js +34 -5
  322. package/dist/runtime/storage.js +34 -21
  323. package/dist/sent-secrets.d.ts +194 -37
  324. package/dist/sent-secrets.js +1743 -340
  325. package/dist/server.js +5 -56
  326. package/dist/skills.js +322 -223
  327. package/dist/sqlite.js +15 -14
  328. package/dist/storage/d1-copy.js +255 -0
  329. package/dist/storage/d1-driver.js +15 -0
  330. package/dist/storage/keys.js +28 -0
  331. package/dist/storage/sql-driver.js +88 -0
  332. package/dist/storage/sql-native.js +544 -0
  333. package/dist/storage/sql-schema.d.ts +6 -0
  334. package/dist/storage/sql-schema.js +15 -0
  335. package/dist/storage/sql.d.ts +14 -20
  336. package/dist/storage/sql.js +29 -535
  337. package/dist/timeout.js +0 -26
  338. package/dist/tool-safety.js +20 -10
  339. package/dist/types.d.ts +9 -109
  340. package/dist/ui.d.ts +1 -1
  341. package/dist/ui.js +0 -1
  342. package/dist/upward.js +3 -0
  343. package/dist/usage-guide.js +3 -1
  344. package/dist/validate.d.ts +4 -2
  345. package/dist/validate.js +86 -9
  346. package/dist/version.d.ts +1 -1
  347. package/dist/version.js +1 -1
  348. package/dist/worker.js +312 -292
  349. package/dist/workspace-subject.js +5 -1
  350. package/dist/write-outcome.js +454 -34
  351. package/documentation/README.md +28 -7
  352. package/documentation/architecture.md +2409 -255
  353. package/documentation/auth.md +867 -114
  354. package/documentation/code-mode.md +49 -16
  355. package/documentation/deploying.md +164 -20
  356. package/documentation/hosted-mcp-migration.md +460 -0
  357. package/documentation/integrating.md +129 -144
  358. package/documentation/meta-tools.md +409 -32
  359. package/documentation/operating.md +27 -3
  360. package/documentation/operator-tests.md +3 -0
  361. package/documentation/operator-ui.md +84 -48
  362. package/documentation/provider-auth-migration.md +16 -63
  363. package/documentation/provider-migration-0.29.md +10 -5
  364. package/documentation/provider-migration-0.35.md +975 -0
  365. package/documentation/providers.md +1347 -0
  366. package/examples/worker/AGENTS.md +23 -9
  367. package/examples/worker/README.md +254 -135
  368. package/examples/worker/alchemy.run.ts +116 -0
  369. package/examples/worker/gitignore +10 -0
  370. package/examples/worker/src/connecta.config.ts +23 -21
  371. package/examples/worker/wrangler.jsonc +14 -5
  372. package/guides/connecting-agents.md +157 -0
  373. package/guides/how-it-works.md +156 -0
  374. package/guides/safety-and-trust.md +153 -0
  375. package/package.json +30 -50
  376. package/templates/node/.env.example +3 -0
  377. package/templates/node/README.md +22 -2
  378. package/templates/node/docker-compose.yml +1 -0
  379. package/templates/node/package.json +3 -2
  380. package/templates/node/src/connecta.config.ts +8 -0
  381. package/dist/catalog-drift.d.ts +0 -138
  382. package/dist/catalog-drift.js +0 -578
  383. package/dist/operator-ui/agents.d.ts +0 -74
  384. package/dist/operator-ui/agents.js +0 -104
  385. package/dist/operator-ui/config-summary.js +0 -565
  386. package/dist/operator-ui/connection-map.js +0 -376
  387. package/dist/operator-ui/endpoints.js +0 -221
  388. package/dist/operator-ui/fix-prompts.d.ts +0 -18
  389. package/dist/operator-ui/fix-prompts.js +0 -87
  390. package/dist/operator-ui/health.js +0 -52
  391. package/dist/operator-ui/member-page.js +0 -97
  392. package/dist/operator-ui/overview.js +0 -123
  393. package/dist/operator-ui/setup-commands.js +0 -51
  394. package/dist/operator-ui/view.d.ts +0 -401
  395. package/dist/operator-ui/view.js +0 -705
  396. package/dist/providers/_shared/request-token.js +0 -83
  397. package/dist/providers/_shared/rest/dispatch.js +0 -41
  398. package/dist/providers/_shared/rest/operation-index.d.ts +0 -133
  399. package/dist/providers/_shared/rest/tools.d.ts +0 -141
  400. package/dist/providers/_shared/rest/tools.js +0 -569
  401. package/dist/providers/_shared/rest/value-safety.d.ts +0 -201
  402. package/dist/providers/basecamp/index.d.ts +0 -45
  403. package/dist/providers/basecamp/index.js +0 -997
  404. package/dist/providers/basecamp/skill.generated.js +0 -9
  405. package/dist/providers/cloudflare/rest.d.ts +0 -37
  406. package/dist/providers/cloudflare/rest.js +0 -1097
  407. package/dist/providers/github/hosted.js +0 -218
  408. package/dist/providers/github/rest.js +0 -321
  409. package/dist/providers/infisical/index.d.ts +0 -7
  410. package/dist/providers/infisical/index.js +0 -713
  411. package/dist/providers/infisical/skill.generated.js +0 -8
  412. package/dist/providers/intercom/index.d.ts +0 -24
  413. package/dist/providers/intercom/index.js +0 -121
  414. package/dist/providers/intercom/skill.generated.js +0 -8
  415. package/dist/providers/linear/index.d.ts +0 -55
  416. package/dist/providers/linear/index.js +0 -537
  417. package/dist/providers/linear/skill.generated.js +0 -8
  418. package/dist/providers/mixpanel/index.d.ts +0 -59
  419. package/dist/providers/mixpanel/index.js +0 -472
  420. package/dist/providers/mixpanel/operations.js +0 -20
  421. package/dist/providers/mixpanel/rest.js +0 -603
  422. package/dist/providers/mixpanel/skill.generated.js +0 -10
  423. package/dist/providers/mixpanel/value-safety.js +0 -16
  424. package/dist/providers/notion/index.d.ts +0 -67
  425. package/dist/providers/notion/index.js +0 -368
  426. package/dist/providers/notion/openapi.generated.js +0 -75
  427. package/dist/providers/notion/rest.d.ts +0 -24
  428. package/dist/providers/notion/rest.js +0 -1226
  429. package/dist/providers/notion/skill.generated.js +0 -11
  430. package/dist/providers/notion/value-safety.js +0 -56
  431. package/dist/providers/revenuecat/index.d.ts +0 -51
  432. package/dist/providers/revenuecat/index.js +0 -697
  433. package/dist/providers/revenuecat/skill.generated.js +0 -11
  434. package/dist/providers/stripe/rest.d.ts +0 -14
  435. package/dist/providers/stripe/rest.js +0 -402
  436. package/dist/providers/vercel/rest.d.ts +0 -20
  437. package/dist/providers/vercel/rest.js +0 -1020
  438. package/dist/providers/wispr-flow/index.d.ts +0 -14
  439. package/dist/providers/wispr-flow/index.js +0 -117
  440. package/dist/providers/wispr-flow/skill.generated.js +0 -8
  441. /package/dist/providers/github/{key.js → lib/key.js} +0 -0
@@ -1,472 +0,0 @@
1
- import { skill } from "./skill.generated.js";
2
- import { remoteMcp, withCredentialDefaults } from "../../connectors/remote-mcp.js";
3
- import { reviewedCatalog } from "../../catalog-drift.js";
4
- import { keys, optionsOf, variants } from "../../config-schema.js";
5
- import { PROVIDER_COMMON, REMOTE_MCP_AUTH } from "../../connectors/option-shapes.js";
6
- import { defineProvider } from "../../provider.js";
7
- import { apiConnector } from "../../connectors/api-connector.js";
8
- import { mixpanelRest, MIXPANEL_API_ADMISSION } from "./rest.js";
9
- export const MIXPANEL_MCP_ENDPOINTS = {
10
- us: "https://mcp.mixpanel.com/mcp",
11
- eu: "https://mcp-eu.mixpanel.com/mcp",
12
- in: "https://mcp-in.mixpanel.com/mcp",
13
- };
14
- /**
15
- * Reviewed against https://docs.mixpanel.com/docs/mcp and the 2026-10-19 live
16
- * US describe schemas (#343, #703). Eleven of the 64 previously pinned tools
17
- * changed since the 2026-08-30 review (#395, #512); unchanged pins are retained.
18
- * Get-Audit-Log is documented beta-only: no live schema digest is claimed.
19
- */
20
- const MIXPANEL_CLASSIFICATION = {
21
- tools: {
22
- "Run-Query": {
23
- "verdict": "read",
24
- "reason": "Runs an observational analytics query; saved reports and dashboard edits use separate write tools.",
25
- "schemaDigest": "sha256:0eb7d52343f6137275a02c2d7bb02dafdbfd25bd6f9067395eb689492d835466",
26
- },
27
- "Get-Query-Schema": {
28
- "verdict": "read",
29
- "reason": "Retrieves Mixpanel query schema information without changing vendor state.",
30
- "schemaDigest": "sha256:8fea929d2ad4f8fed6c47116ff0eaa6f964b3ddd4685e482b68a8dac0231af73",
31
- },
32
- "Get-Report": {
33
- "verdict": "read",
34
- "reason": "Retrieves Mixpanel report information without changing vendor state.",
35
- "schemaDigest": "sha256:a99ba2af1ab57c1d5a606dbd7701968aa430ab23f5969f356a4c41f345dba041",
36
- },
37
- "Display-Query": {
38
- "verdict": "read",
39
- "reason": "Displays existing query results without editing a dashboard or saved report.",
40
- "schemaDigest": "sha256:d0776167b8a20898c1ff580ca9517da8dea6b827c64e10b9fa01ae1a3c2db95f",
41
- },
42
- "List-Dashboards": {
43
- "verdict": "read",
44
- "reason": "Retrieves Mixpanel dashboards information without changing vendor state.",
45
- "schemaDigest": "sha256:994c1c9fc87a4f1f00a677b856a44bad028252d283bd8e647ae157683fc89ea2",
46
- },
47
- "Get-Dashboard": {
48
- "verdict": "read",
49
- "reason": "Retrieves Mixpanel dashboard information without changing vendor state.",
50
- "schemaDigest": "sha256:0af78ab95566a20eeba08af6922f2017d98503e2b14dcbe8d7e2ac54eef870d7",
51
- },
52
- "Get-Business-Context": {
53
- "verdict": "read",
54
- "reason": "Reads existing business context for a project or organization; updates use a separate tool.",
55
- "schemaDigest": "sha256:309f5ba864c90132061096b4f0ebc1e78544a6486bac3a45bd661d16bcab2b6c",
56
- },
57
- "Get-Projects": {
58
- "verdict": "read",
59
- "reason": "Retrieves Mixpanel projects information without changing vendor state.",
60
- "schemaDigest": "sha256:d23d07a777441f04b128f08a2c30a6e8a1573d203f8a1ad7788bc1fd57a9cbbf",
61
- },
62
- "List-Organizations": {
63
- "verdict": "read",
64
- "reason": "Retrieves Mixpanel organizations information without changing vendor state.",
65
- "schemaDigest": "sha256:e4c23f123dde073e00038d92ebd53f45157c83a4d3a2ff686ab1b66c859f4a11",
66
- },
67
- "Get-Audit-Log": {
68
- "verdict": "read",
69
- "reason": "Queries existing organization audit history; limited-access beta requiring organization admin or owner access.",
70
- },
71
- "Get-Events": {
72
- "verdict": "read",
73
- "reason": "Retrieves Mixpanel events information without changing vendor state.",
74
- "schemaDigest": "sha256:09d7874b0c60cf790944b8998ee943f200912eac4349dfa80d0f2ae82a7a7998",
75
- },
76
- "List-Properties": {
77
- "verdict": "read",
78
- "reason": "Retrieves Mixpanel properties information without changing vendor state.",
79
- "schemaDigest": "sha256:52b38861df076119dfefe0128cf9819868336bf60e090f63c80da734877a69fe",
80
- },
81
- "Get-Property-Values": {
82
- "verdict": "read",
83
- "reason": "Retrieves Mixpanel property values information without changing vendor state.",
84
- "schemaDigest": "sha256:0cd487c9b92a187b21f456de3c785bb631aa30cba702785c9ff158608883a6bb",
85
- },
86
- "Search-Entities": {
87
- "verdict": "read",
88
- "reason": "Retrieves Mixpanel entities information without changing vendor state.",
89
- "schemaDigest": "sha256:86cfa1d3bf7f17a70ad07264d7b1d16c83480e40996e8d847911fe8bde13e35e",
90
- },
91
- "Get-Issues": {
92
- "verdict": "read",
93
- "reason": "Retrieves Mixpanel issues information without changing vendor state.",
94
- "schemaDigest": "sha256:cf172ef18f37504a758c825c7bd4bc23fd98c3421655754dccd8e5ee2d700a10",
95
- },
96
- "Get-Lexicon-URL": {
97
- "verdict": "read",
98
- "reason": "Retrieves Mixpanel lexicon url information without changing vendor state.",
99
- "schemaDigest": "sha256:c6456d5c4a38ba069a2caa6cdac651be9d86d47bc6efb3316a893c7336d0e2bc",
100
- },
101
- "Find-Duplicate-Groups": {
102
- "verdict": "read",
103
- "reason": "Retrieves Mixpanel find duplicate groups information without changing vendor state.",
104
- "schemaDigest": "sha256:8f944cef9a147eab3c51bfcf1b873cef1409e5a6c21565d34e7ed20d23dcebb7",
105
- },
106
- "Get-Custom-Property": {
107
- "verdict": "read",
108
- "reason": "Retrieves Mixpanel custom property information without changing vendor state.",
109
- "schemaDigest": "sha256:d1cbce906cee66d422846c8ef1a745bbeac2c058ecad6b1ee8dcdd2120fa86be",
110
- },
111
- "Get-Cohort": {
112
- "verdict": "read",
113
- "reason": "Retrieves Mixpanel cohort information without changing vendor state.",
114
- "schemaDigest": "sha256:e18c500459edd9c2b6a614a3f6c97b668786be9abf72929a0a50086bdadb1dae",
115
- },
116
- "List-Cohorts": {
117
- "verdict": "read",
118
- "reason": "Retrieves Mixpanel cohorts information without changing vendor state.",
119
- "schemaDigest": "sha256:505ff07f668186b670bcce28aa339076140b85896eb4f64afad78d963018297a",
120
- },
121
- "Describe-Cohort-Schema": {
122
- "verdict": "read",
123
- "reason": "Retrieves Mixpanel describe cohort schema information without changing vendor state.",
124
- "schemaDigest": "sha256:775dbb8bb71ad3fa39ba35ca3a2683dfd88120f7af84a968531609c5a12de537",
125
- },
126
- "Get-Lookup-Table": {
127
- "verdict": "read",
128
- "reason": "Retrieves Mixpanel lookup table information without changing vendor state.",
129
- "schemaDigest": "sha256:061602b283461f083bbd74348c264f802cb21c4fe6d961241c7090895a8334ac",
130
- },
131
- "Get-Metric": {
132
- "verdict": "read",
133
- "reason": "Retrieves Mixpanel metric information without changing vendor state.",
134
- "schemaDigest": "sha256:451e867abd1162f25bec96f76cb1b1d1d84eb33c04fe4d804e729810d93d26d7",
135
- },
136
- "List-Metrics": {
137
- "verdict": "read",
138
- "reason": "Retrieves Mixpanel metrics information without changing vendor state.",
139
- "schemaDigest": "sha256:341710bebabb82112e80eb521d9d5cdb3bca024699b3aa795874d3549a315042",
140
- },
141
- "Get-User-Replays-Data": {
142
- "verdict": "read",
143
- "reason": "Retrieves Mixpanel user replays data information without changing vendor state.",
144
- "schemaDigest": "sha256:5df287735478a67489075b0c7c9d8c07097abe67408d06743c7fb9be43c6e024",
145
- },
146
- "List-Experiments": {
147
- "verdict": "read",
148
- "reason": "Retrieves Mixpanel experiments information without changing vendor state.",
149
- "schemaDigest": "sha256:26a3f3e0b4e52135d74335dd769103303071fc48c15b1df40efd2dfa5a353848",
150
- },
151
- "Get-Experiment": {
152
- "verdict": "destructive",
153
- "reason": "Optional compute flags persist refreshed result caches and may auto-conclude an experiment; the full tool can modify existing state.",
154
- "schemaDigest": "sha256:aebe329b5c5f3a9a465d40f12af1d6336d1304cc949c291eea752a5dd532e6fa",
155
- },
156
- "Get-Experiment-Setup-Guidance": {
157
- "verdict": "read",
158
- "reason": "Retrieves Mixpanel experiment setup guidance information without changing vendor state.",
159
- "schemaDigest": "sha256:e517d9759f66f4a7ad15b0b67ffaabfb605e80949afcf41d007dfafd8f3e9574",
160
- },
161
- "Get-Experiment-Results-Interpretation-Guidance": {
162
- "verdict": "read",
163
- "reason": "Retrieves Mixpanel experiment results interpretation guidance information without changing vendor state.",
164
- "schemaDigest": "sha256:e517d9759f66f4a7ad15b0b67ffaabfb605e80949afcf41d007dfafd8f3e9574",
165
- },
166
- "Explain-Experiment-Health-Check": {
167
- "verdict": "read",
168
- "reason": "Retrieves Mixpanel explain experiment health check information without changing vendor state.",
169
- "schemaDigest": "sha256:a50b1263247012dc78521bf6c1dd18584a7b08d46221a444b1ca49c81d3286e5",
170
- },
171
- "Run-Experiment-Pre-Launch-Checks": {
172
- "verdict": "read",
173
- "reason": "Retrieves Mixpanel run experiment pre launch checks information without changing vendor state.",
174
- "schemaDigest": "sha256:f6b5d85f75450b76fda9c7ef441f190fd45fcaeaff4cc3c30a6d1bee76e4c706",
175
- },
176
- "Search-Prior-Experiments": {
177
- "verdict": "read",
178
- "reason": "Retrieves Mixpanel prior experiments information without changing vendor state.",
179
- "schemaDigest": "sha256:847d1dcefaf6dc5e7ea967476f464a4d678a06b5e7d437dfb11ad4af2e56620f",
180
- },
181
- "List-Feature-Flags": {
182
- "verdict": "read",
183
- "reason": "Retrieves Mixpanel feature flags information without changing vendor state.",
184
- "schemaDigest": "sha256:75fc1ff14f3d3faedb8e00c6563d151de397d584429764fd0c332f6a84f6993c",
185
- },
186
- "Get-Feature-Flag": {
187
- "verdict": "read",
188
- "reason": "Retrieves Mixpanel feature flag information without changing vendor state.",
189
- "schemaDigest": "sha256:129de58b379ffba272bdbcee2b5759262e586dd415edc2067a69e9844d4d0877",
190
- },
191
- "Get-Feature-Flag-Setup-Guidance": {
192
- "verdict": "read",
193
- "reason": "Retrieves Mixpanel feature flag setup guidance information without changing vendor state.",
194
- "schemaDigest": "sha256:e517d9759f66f4a7ad15b0b67ffaabfb605e80949afcf41d007dfafd8f3e9574",
195
- },
196
- "Get-Feature-Flag-Lifecycle-Guidance": {
197
- "verdict": "read",
198
- "reason": "Retrieves Mixpanel feature flag lifecycle guidance information without changing vendor state.",
199
- "schemaDigest": "sha256:e517d9759f66f4a7ad15b0b67ffaabfb605e80949afcf41d007dfafd8f3e9574",
200
- },
201
- "Create-Dashboard": {
202
- "verdict": "write",
203
- "reason": "Create Dashboard creates or appends Mixpanel state; it has side effects.",
204
- "schemaDigest": "sha256:59fbe58cc8b69b31adfa7015e541d495abc566f56b1320e10ad77288ff9facf0",
205
- },
206
- "Update-Dashboard": {
207
- "verdict": "destructive",
208
- "reason": "Update Dashboard changes existing Mixpanel state or removes it.",
209
- "schemaDigest": "sha256:6f2f11e94a13667848bdcb30531a7ff478a8c53460a5e0859f8241b64d0008da",
210
- },
211
- "Duplicate-Dashboard": {
212
- "verdict": "write",
213
- "reason": "Duplicate Dashboard creates or appends Mixpanel state; it has side effects.",
214
- "schemaDigest": "sha256:9738db7495d29034df966423df3c9d4b16ac3a8254c8473bf1e85a467fe9cf4e",
215
- },
216
- "Delete-Dashboard": {
217
- "verdict": "destructive",
218
- "reason": "Delete Dashboard changes existing Mixpanel state or removes it.",
219
- "schemaDigest": "sha256:3a04594218b491743240e6970f677ed8ed132237d933efe30e97bdc41eb1ab6f",
220
- },
221
- "Edit-Event": {
222
- "verdict": "destructive",
223
- "reason": "Edit Event changes existing Mixpanel state or removes it.",
224
- "schemaDigest": "sha256:28c47da0b56f57da0f11eb11435441a39ecd5175600f854442744c66a379ef93",
225
- },
226
- "Edit-Property": {
227
- "verdict": "destructive",
228
- "reason": "Edit Property changes existing Mixpanel state or removes it.",
229
- "schemaDigest": "sha256:11975587d2a566edc468db7cb24df70167d12068f30c1fe52c84f543cf4e2399",
230
- },
231
- "Bulk-Edit-Events": {
232
- "verdict": "destructive",
233
- "reason": "Bulk Edit Events changes existing Mixpanel state or removes it.",
234
- "schemaDigest": "sha256:94512138df153de95436371f5a313e32b97faffebda3be6c0c69d09d1ff2b340",
235
- },
236
- "Bulk-Edit-Properties": {
237
- "verdict": "destructive",
238
- "reason": "Bulk Edit Properties changes existing Mixpanel state or removes it.",
239
- "schemaDigest": "sha256:93481eb896ded45b623c678612e2156439efbaad5b4d660da1f2b087e7409ee3",
240
- },
241
- "Create-Tag": {
242
- "verdict": "write",
243
- "reason": "Create Tag creates or appends Mixpanel state; it has side effects.",
244
- "schemaDigest": "sha256:f99b6faad422aa6142d20d0aa4bdec1074e96a8ec45e35573e86d84b01df1d3b",
245
- },
246
- "Rename-Tag": {
247
- "verdict": "destructive",
248
- "reason": "Rename Tag changes existing Mixpanel state or removes it.",
249
- "schemaDigest": "sha256:a7e20e79ecd6ca7edca104fa1030e059ffae8962bf084d4a384c012ac9bbf087",
250
- },
251
- "Delete-Tag": {
252
- "verdict": "destructive",
253
- "reason": "Delete Tag changes existing Mixpanel state or removes it.",
254
- "schemaDigest": "sha256:5f6cc58ada5d2796f124e15883fe05061d03f9129414f4c8e10a0ec463f17807",
255
- },
256
- "Dismiss-Issues": {
257
- "verdict": "destructive",
258
- "reason": "Dismiss Issues changes existing Mixpanel state or removes it.",
259
- "schemaDigest": "sha256:9c1f4901eca53f58d16feee126868d23c6ed1f5fad72344f86ea9965385b8644",
260
- },
261
- "Update-Business-Context": {
262
- "verdict": "destructive",
263
- "reason": "Update Business Context changes existing Mixpanel state or removes it.",
264
- "schemaDigest": "sha256:0d21290053b6d532386c3c83d60cd78013a7109492c02ba2e7822716f2cde027",
265
- },
266
- "Dismiss-Duplicate-Group": {
267
- "verdict": "destructive",
268
- "reason": "Dismiss Duplicate Group changes existing Mixpanel state or removes it.",
269
- "schemaDigest": "sha256:4e39c6f9bb83ed54020097f6cf34507a5288de2c1ce333456c84682bb5986bc4",
270
- },
271
- "Merge-Group": {
272
- "verdict": "destructive",
273
- "reason": "Merge Group changes existing Mixpanel state or removes it.",
274
- "schemaDigest": "sha256:a3b215a5be70305c2f02439513bee76ae3947da14e2a9e5b6ff0afb9ad3d4dcd",
275
- },
276
- "Create-Custom-Property": {
277
- "verdict": "write",
278
- "reason": "Create Custom Property creates or appends Mixpanel state; it has side effects.",
279
- "schemaDigest": "sha256:d22818b812f3fd0e785a5bbbee26cf099eaa911d5b6f383f94cf458a2ed26294",
280
- },
281
- "Update-Custom-Property": {
282
- "verdict": "destructive",
283
- "reason": "Update Custom Property changes existing Mixpanel state or removes it.",
284
- "schemaDigest": "sha256:781aaaab41c1ab5958062dc393d02b1df2ef2a09a28d3c4f21ae3177f4f53c86",
285
- },
286
- "Create-Cohort": {
287
- "verdict": "write",
288
- "reason": "Create Cohort creates or appends Mixpanel state; it has side effects.",
289
- "schemaDigest": "sha256:ea687f4bc607f8bfb5b1949e060239d6f7d629d3ec80fb0b72eae6cc6156ed03",
290
- },
291
- "Update-Cohort": {
292
- "verdict": "destructive",
293
- "reason": "Update Cohort changes existing Mixpanel state or removes it.",
294
- "schemaDigest": "sha256:ebe0d5afcc00e23eef55f079cd1816c851c2c647dff9565b7045f1f1615663f2",
295
- },
296
- "Delete-Cohort": {
297
- "verdict": "destructive",
298
- "reason": "Delete Cohort changes existing Mixpanel state or removes it.",
299
- "schemaDigest": "sha256:e18c500459edd9c2b6a614a3f6c97b668786be9abf72929a0a50086bdadb1dae",
300
- },
301
- "Create-Lookup-Table": {
302
- "verdict": "write",
303
- "reason": "Create Lookup Table creates or appends Mixpanel state; it has side effects.",
304
- "schemaDigest": "sha256:c2fefa33a4f19fc65f394fecdc7126cab0ae874f7c97018cf003d8462a049e4c",
305
- },
306
- "Update-Lookup-Table": {
307
- "verdict": "destructive",
308
- "reason": "Update Lookup Table changes existing Mixpanel state or removes it.",
309
- "schemaDigest": "sha256:ef28f1ec9c9484a7a53b5e2b6659e70f79a8e71e55bda17025aa4ab3c23b6a63",
310
- },
311
- "Create-Metric": {
312
- "verdict": "write",
313
- "reason": "Create Metric creates or appends Mixpanel state; it has side effects.",
314
- "schemaDigest": "sha256:c10bc660e0664a9aba6450a45b50fb1fbea6a4fac809fd5390616416f72e04d6",
315
- },
316
- "Update-Metric": {
317
- "verdict": "destructive",
318
- "reason": "Update Metric changes existing Mixpanel state or removes it.",
319
- "schemaDigest": "sha256:ca03823ea995d0ae53807a60b1dd0d47f1667b28cfd24cdab52a9fc66f0c2834",
320
- },
321
- "Create-Experiment": {
322
- "verdict": "write",
323
- "reason": "Create Experiment creates or appends Mixpanel state; it has side effects.",
324
- "schemaDigest": "sha256:ce64eafec7f2490fa3c76030c75340bf5dd282a9d0bfb0c5353bcdc3b50f602d",
325
- },
326
- "Update-Experiment": {
327
- "verdict": "destructive",
328
- "reason": "Update Experiment changes existing Mixpanel state or removes it.",
329
- "schemaDigest": "sha256:27c0e2b58fbb1468dda938c4112560e9481f58bc4ddafd4a94bad56666c5b12c",
330
- },
331
- "Create-Feature-Flag": {
332
- "verdict": "write",
333
- "reason": "Create Feature Flag creates or appends Mixpanel state; it has side effects.",
334
- "schemaDigest": "sha256:3460d11d726727349cac62db5c19915ab589b7f1d8387042f0a3783356b252c4",
335
- },
336
- "Update-Feature-Flag": {
337
- "verdict": "destructive",
338
- "reason": "Update Feature Flag changes existing Mixpanel state or removes it.",
339
- "schemaDigest": "sha256:9b34b19164168938d08a75d268c9becf8d189c85a1789a45061ae304041faf7c",
340
- },
341
- "Fill-Event-Metadata": {
342
- "verdict": "destructive",
343
- "reason": "Applies generated names and descriptions to existing Lexicon events.",
344
- "schemaDigest": "sha256:53accc988f216bdd5d7a259d731f6df82549e4e6146b191f1815a0d1a72a1abe",
345
- },
346
- },
347
- };
348
- const REGION_COPY = {
349
- us: "US",
350
- eu: "EU",
351
- in: "India",
352
- };
353
- function usageGuide(purpose, region, instructions) {
354
- const accountInstructions = instructions?.trim();
355
- // Leads the guide because discovery summarizes a connector by its first
356
- // content line. A project lives in exactly one residency, so a question
357
- // pointed at the wrong region does not return fewer rows — it returns
358
- // nothing, and reads as the project having no data.
359
- const regionNote = `${REGION_COPY[region]}-residency connection: bound to Mixpanel's ${region}${skill.fragments.guide_0}`;
360
- return `# Mixpanel usage
361
-
362
- ${regionNote}
363
-
364
- Account purpose: ${purpose}${skill.fragments.guide_1}${accountInstructions ? `\n## ${skill.instructionsHeading}\n\n${accountInstructions}\n` : ""}`;
365
- }
366
- /** The closed options mixpanel() accepts; see `assertKnownOptions`. */
367
- const MIXPANEL_OPTIONS = variants("via", {
368
- mcp: optionsOf()({
369
- ...PROVIDER_COMMON,
370
- ...keys("region", "via"),
371
- auth: REMOTE_MCP_AUTH,
372
- }).shape,
373
- api: optionsOf()({
374
- ...PROVIDER_COMMON,
375
- ...keys("region", "via", "defaultProjectId"),
376
- auth: variants("type", { credential: optionsOf()(keys("type")).shape }),
377
- }).shape,
378
- }, "mcp");
379
- /** Mixpanel hosted MCP by default, or service-account REST with via: "api". */
380
- export const mixpanel = defineProvider({
381
- name: "mixpanel",
382
- title: "Mixpanel",
383
- kind: "dual",
384
- readme: "Mixpanel",
385
- bundle: {
386
- baselineGzip: 205500,
387
- maxGzip: 265500,
388
- note: "./providers/mixpanel (#823) adds the REST connector, guarded transport, shared operation index and value-safety engine alongside the unchanged hosted MCP client. The nine-operation reviewed subset was shrunk to depth 3 without descriptions before remeasuring: operations.ts is 1355 B gzip. The provider remeasures at about 205500 B gzip, compared with the 131378 B MCP-only baseline; the cap follows baseline + 60000 B. No new runtime dependencies.",
389
- },
390
- skill,
391
- options: MIXPANEL_OPTIONS,
392
- classify: MIXPANEL_CLASSIFICATION,
393
- create: (id, options, provider) => {
394
- const region = options.region ?? "us";
395
- if (!Object.hasOwn(MIXPANEL_MCP_ENDPOINTS, region)) {
396
- throw new Error('region must be "us", "eu", or "in".');
397
- }
398
- return options.via === "api" ? mixpanelApi(id, options, provider) : mixpanelConnector(id, options, provider);
399
- },
400
- });
401
- function mixpanelConnector(id, options, provider) {
402
- const purpose = options.purpose.trim();
403
- const region = options.region ?? "us";
404
- if (!(region in MIXPANEL_MCP_ENDPOINTS)) {
405
- throw new Error(`mixpanel("${id}") region must be "us", "eu", or "in".`);
406
- }
407
- const connector = remoteMcp(id, {
408
- url: MIXPANEL_MCP_ENDPOINTS[region],
409
- ...provider.connectorOptions,
410
- // The region rides the title because browse-time discovery renders the
411
- // title and the guide summary and nothing else, and residency is the fact
412
- // an agent must not get wrong between two Mixpanel connections.
413
- title: options.title ?? `Mixpanel (${region})`,
414
- description: `Mixpanel product analytics (${REGION_COPY[region]} residency) — ${purpose}`,
415
- // Mixpanel's beta service-account scheme is deliberately not ordinary HTTP
416
- // Basic: the endpoint wants `Bearer Basic <base64(user:secret)>`. The
417
- // operator therefore pastes the pair, not an encoded blob, and Connecta
418
- // does the framing — the same shaping the maintainer drift check applies.
419
- auth: withCredentialDefaults(options.auth ?? { type: "oauth" }, {
420
- credential: {
421
- label: "Service account",
422
- description: "A Mixpanel service account as `username:secret`. Connecta encodes and frames it the way the hosted endpoint requires; it is stored encrypted and never displayed.",
423
- placeholder: "username:secret",
424
- },
425
- scheme: "Bearer Basic",
426
- }),
427
- requireHttps: true,
428
- classify: provider.classify,
429
- usageGuide: {
430
- content: usageGuide(purpose, region, options.instructions),
431
- // Explicit rather than derived: the derived summary would truncate the
432
- // residency note mid-sentence at 120 characters
433
- // ([#342](https://github.com/zackbart/connecta/issues/342)).
434
- summary: `${REGION_COPY[region]} residency. Project scoping, id resolution, query-schema-first analysis, plan-gated catalog.`,
435
- // Not `required`. Mixpanel's own schemas describe each call; the guide
436
- // carries the project-then-context sequence, which is worth reading
437
- // before an analysis rather than before every call.
438
- },
439
- });
440
- return connector;
441
- }
442
- function mixpanelApi(id, options, provider) {
443
- if (options.auth?.type !== "credential")
444
- throw new Error('via: "api" requires auth: { type: "credential" }.');
445
- if (options.defaultProjectId !== undefined &&
446
- (!Number.isSafeInteger(options.defaultProjectId) || options.defaultProjectId < 1)) {
447
- throw new Error("defaultProjectId must be a positive safe integer.");
448
- }
449
- const region = options.region ?? "us";
450
- const rest = mixpanelRest(region, options.defaultProjectId);
451
- const instructions = options.instructions?.trim();
452
- return apiConnector(id, {
453
- ...provider.connectorOptions,
454
- title: options.title ?? `Mixpanel API (${region})`,
455
- description: `Mixpanel service-account REST APIs (${region} residency): ${options.purpose}`,
456
- credential: {
457
- label: "Mixpanel service account",
458
- description: "username:secret from Mixpanel organization settings. Import requires Owner or Admin on the target project.",
459
- placeholder: "username:secret",
460
- },
461
- testCredential: rest.testCredential,
462
- callAdmission: options.callAdmission === undefined ? MIXPANEL_API_ADMISSION : options.callAdmission,
463
- usageGuide: {
464
- content: `# Mixpanel API usage\n\nService-account REST, ${region} residency. Account purpose: ${options.purpose}\n\nDefault project: ${options.defaultProjectId ?? "none; supply project_id"}.${skill.fragments.api}${instructions ? `\n## ${skill.instructionsHeading}\n\n${instructions}\n` : ""}`,
465
- summary: `${REGION_COPY[region]} residency, service-account REST. Raw export, user activity, profiles, reports and event import.`,
466
- required: true,
467
- },
468
- tools: rest.tools,
469
- });
470
- }
471
- /** @deprecated Read `mixpanel.definition.classify` instead. Kept for existing imports. */
472
- export const MIXPANEL_VETTED_CATALOG = reviewedCatalog(mixpanel.definition.classify, 'defineProvider("mixpanel")');
@@ -1,20 +0,0 @@
1
- export const openapi = {
2
- source: "https://docs.mixpanel.com/openapi/query.openapi.yaml",
3
- revision: "reviewed-2026-10-14",
4
- digest: "sha256:d9bbbbfa67f0a31f900b325932462b9cd541d287e55357d28e201df69a35e677",
5
- version: "1.0.0",
6
- servers: ["query", "export", "app", "ingestion"],
7
- tags: ["Export", "Account", "Engage", "Funnels", "Insights", "Retention", "Activity Feed", "Events"],
8
- ops: [
9
- ["GET", "/api/2.0/export", "raw-event-export", "Download Data", 0, 1],
10
- ["GET", "/api/app/me", "service-account-me", "Service-account identity and reachable projects", 1, 2],
11
- ["POST", "/api/query/engage", "engage-query", "Query Profiles", 2],
12
- ["GET", "/api/query/funnels", "funnels-query", "Query Saved Report", 3],
13
- ["GET", "/api/query/funnels/list", "funnels-list-saved", "List Saved Funnels", 3],
14
- ["GET", "/api/query/insights", "insights-query", "Query Saved Report", 4],
15
- ["GET", "/api/query/retention", "retention-query", "Query Retention Report", 5],
16
- ["GET", "/api/query/stream/query", "activity-stream-query", "Profile Event Activity", 6],
17
- ["POST", "/import", "import-events", "Import Events", 7, 3],
18
- ],
19
- details: '{"d":[],"o":[[[["project_id","query",0,{"t":"integer"}],["from_date","query",1,{"t":"string"}],["to_date","query",1,{"t":"string"}],["limit","query",0,{"t":"integer"}],["event","query",0,{"t":"string"}],["where","query",0,{"t":"string"}],["time_in_ms","query",0,{"t":"boolean"}]],0],0,[[["project_id","query",1,{"t":"integer"}],["workspace_id","query",0,{"t":"integer"}]],["application/x-www-form-urlencoded",{"p":{"distinct_id":{"t":"string"},"distinct_ids":{"t":"string"},"data_group_id":{"t":"string"},"where":{"t":"string"},"output_properties":{"t":"array","i":{"t":"string"}},"session_id":{"t":"string"},"page":{"t":"integer"},"behaviors":{"t":"integer"},"as_of_timestamp":{"t":"integer"},"filter_by_cohort":{"t":"string"},"include_all_users":{"t":"boolean"}}}]],[[["project_id","query",1,{"t":"integer"}],["workspace_id","query",0,{"t":"integer"}],["funnel_id","query",1,{"t":"integer"}],["from_date","query",1,{"t":"string"}],["to_date","query",1,{"t":"string"}],["length","query",0,{"t":"integer"}],["length_unit","query",0,{"t":"string","e":["day","hour","minute","second"]}],["interval","query",0,{"t":"integer"}],["unit","query",0,{"t":"string","e":["day","week","month"]}],["on","query",0,{"t":"string"}],["where","query",0,{"t":"string"}],["limit","query",0,{"t":"integer"}]],0],[[["project_id","query",1,{"t":"integer"}],["workspace_id","query",0,{"t":"integer"}]],0],[[["project_id","query",1,{"t":"integer"}],["workspace_id","query",0,{"t":"integer"}],["bookmark_id","query",1,{"t":"integer"}]],0],[[["project_id","query",1,{"t":"integer"}],["workspace_id","query",0,{"t":"integer"}],["from_date","query",1,{"t":"string"}],["to_date","query",1,{"t":"string"}],["retention_type","query",0,{"t":"string","e":["birth","compounded"]}],["born_event","query",0,{"t":"string"}],["event","query",0,{"t":"string"}],["born_where","query",0,{"t":"string"}],["where","query",0,{"t":"string"}],["interval","query",0,{"t":"integer"}],["interval_count","query",0,{"t":"integer"}],["unit","query",0,{"t":"string","e":["day","week","month"]}],["unbounded_retention","query",0,{"t":"boolean"}],["on","query",0,{"t":"string"}],["limit","query",0,{"t":"integer"}]],0],[[["project_id","query",1,{"t":"integer"}],["workspace_id","query",0,{"t":"integer"}],["distinct_ids","query",1,{"t":"string"}],["from_date","query",1,{"t":"string"}],["to_date","query",1,{"t":"string"}]],0],[[["strict","query",1,{"t":"string","e":["0","1"]}],["project_id","query",1,{"t":"string"}]],["application/json",{"t":"array","i":{"t":"object","p":{"event":{"t":"string"},"properties":{"t":"object","p":{"time":{"t":"integer"},"distinct_id":{"t":"string"},"$insert_id":{"t":"string"}},"r":["time","$insert_id","distinct_id"],"m":{}}},"r":["event","properties"]}},1]]]}',
20
- };