@zackbart/connecta 0.34.1 → 0.35.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 (429) hide show
  1. package/CHANGELOG.md +363 -0
  2. package/README.md +62 -106
  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 +2051 -1160
  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 +663 -271
  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 +12 -7
  53. package/dist/connectors/api-connector.js +142 -56
  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 +228 -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 +383 -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/agents.d.ts +5 -4
  109. package/dist/operator-ui/agents.js +17 -7
  110. package/dist/operator-ui/config-summary.js +5 -4
  111. package/dist/operator-ui/connection-map.js +7 -5
  112. package/dist/operator-ui/contract.d.ts +7 -3
  113. package/dist/operator-ui/endpoints.js +4 -13
  114. package/dist/operator-ui/fix-prompts.d.ts +1 -1
  115. package/dist/operator-ui/fix-prompts.js +0 -8
  116. package/dist/operator-ui/generated.js +3 -3
  117. package/dist/operator-ui/model.d.ts +2 -3
  118. package/dist/operator-ui/overview.js +5 -2
  119. package/dist/operator-ui/setup-commands.js +0 -4
  120. package/dist/operator-ui/view.d.ts +2 -25
  121. package/dist/operator-ui/view.js +2 -76
  122. package/dist/program-writes.js +47 -26
  123. package/dist/provider-call-facts.d.ts +115 -0
  124. package/dist/provider-call-facts.js +182 -0
  125. package/dist/provider-call.d.ts +112 -0
  126. package/dist/provider-call.js +271 -0
  127. package/dist/provider.d.ts +65 -31
  128. package/dist/provider.js +116 -39
  129. package/dist/providers/_shared/google/hatch.js +91 -0
  130. package/dist/providers/_shared/google/kit.js +537 -0
  131. package/dist/providers/_shared/google/result-size.js +15 -2
  132. package/dist/providers/_shared/google/service-account.d.ts +2 -1
  133. package/dist/providers/_shared/google/service-account.js +8 -4
  134. package/dist/providers/_shared/google/workspace.d.ts +6 -210
  135. package/dist/providers/_shared/google/workspace.js +6 -425
  136. package/dist/providers/_shared/rest/compact-index.js +86 -0
  137. package/dist/providers/_shared/rest/dispatch.js +3 -23
  138. package/dist/providers/_shared/rest/kit.js +546 -0
  139. package/dist/providers/_shared/rest/operation-index.js +230 -14
  140. package/dist/providers/_shared/rest/response-media.js +11 -0
  141. package/dist/providers/_shared/rest/tools.js +101 -78
  142. package/dist/providers/_shared/rest/value-safety.js +353 -195
  143. package/dist/providers/_shared/sensitive-fields.js +27 -0
  144. package/dist/providers/breeze/api.js +584 -0
  145. package/dist/providers/breeze/index.d.ts +1 -3
  146. package/dist/providers/breeze/index.js +67 -1420
  147. package/dist/providers/breeze/openapi.generated.js +60 -0
  148. package/dist/providers/breeze/skill.generated.js +2 -6
  149. package/dist/providers/breeze/tools.js +696 -0
  150. package/dist/providers/ccb/api.js +496 -0
  151. package/dist/providers/ccb/index.d.ts +15 -37
  152. package/dist/providers/ccb/index.js +77 -1702
  153. package/dist/providers/ccb/lib/constants.d.ts +34 -0
  154. package/dist/providers/ccb/lib/constants.js +74 -0
  155. package/dist/providers/ccb/lib/guide.js +9 -0
  156. package/dist/providers/ccb/lib/verdicts.js +387 -0
  157. package/dist/providers/ccb/openapi.generated.js +397 -0
  158. package/dist/providers/ccb/safety.js +295 -0
  159. package/dist/providers/ccb/skill.generated.js +2 -6
  160. package/dist/providers/ccb/tools.js +853 -0
  161. package/dist/providers/cloudflare/api.js +1066 -0
  162. package/dist/providers/cloudflare/index.d.ts +5 -22
  163. package/dist/providers/cloudflare/index.js +79 -197
  164. package/dist/providers/cloudflare/lib/config.d.ts +16 -0
  165. package/dist/providers/cloudflare/lib/config.js +2 -0
  166. package/dist/providers/cloudflare/lib/discovery.js +29 -0
  167. package/dist/providers/cloudflare/{graphql.js → lib/graphql.js} +1 -1
  168. package/dist/providers/cloudflare/lib/hatch.js +103 -0
  169. package/dist/providers/cloudflare/lib/path-bounds.js +28 -0
  170. package/dist/providers/cloudflare/lib/response-media.js +75 -0
  171. package/dist/providers/cloudflare/openapi.generated.js +4 -3
  172. package/dist/providers/cloudflare/{value-safety.js → safety.js} +487 -0
  173. package/dist/providers/cloudflare/skill.generated.js +2 -10
  174. package/dist/providers/cloudflare/tools.js +360 -0
  175. package/dist/providers/docs/api.js +51 -0
  176. package/dist/providers/docs/index.d.ts +1 -12
  177. package/dist/providers/docs/index.js +53 -1165
  178. package/dist/providers/docs/lib/constants.d.ts +18 -0
  179. package/dist/providers/docs/lib/constants.js +18 -0
  180. package/dist/providers/docs/lib/discovery.js +26 -0
  181. package/dist/providers/docs/lib/requests.js +48 -0
  182. package/dist/providers/docs/lib/schemas.js +168 -0
  183. package/dist/providers/docs/openapi.generated.js +16 -0
  184. package/dist/providers/docs/safety.js +54 -0
  185. package/dist/providers/docs/skill.generated.js +2 -6
  186. package/dist/providers/docs/tools.js +802 -0
  187. package/dist/providers/drive/api.js +177 -0
  188. package/dist/providers/drive/index.d.ts +1 -12
  189. package/dist/providers/drive/index.js +38 -1448
  190. package/dist/providers/drive/lib/constants.d.ts +6 -0
  191. package/dist/providers/drive/lib/constants.js +6 -0
  192. package/dist/providers/drive/lib/contracts.js +532 -0
  193. package/dist/providers/drive/lib/hatch.js +197 -0
  194. package/dist/providers/drive/openapi.generated.js +77 -0
  195. package/dist/providers/drive/safety.js +90 -0
  196. package/dist/providers/drive/skill.generated.js +2 -6
  197. package/dist/providers/drive/tools.js +1290 -0
  198. package/dist/providers/forms/api.js +71 -0
  199. package/dist/providers/forms/index.d.ts +1 -12
  200. package/dist/providers/forms/index.js +49 -1145
  201. package/dist/providers/forms/lib/constants.d.ts +14 -0
  202. package/dist/providers/forms/lib/constants.js +19 -0
  203. package/dist/providers/forms/lib/hatch.js +72 -0
  204. package/dist/providers/forms/openapi.generated.js +23 -0
  205. package/dist/providers/forms/safety.js +34 -0
  206. package/dist/providers/forms/skill.generated.js +2 -8
  207. package/dist/providers/forms/tools.js +1024 -0
  208. package/dist/providers/github/api.js +150 -0
  209. package/dist/providers/github/index.d.ts +4 -5
  210. package/dist/providers/github/index.js +30 -87
  211. package/dist/providers/github/{auth.d.ts → lib/auth.d.ts} +5 -3
  212. package/dist/providers/github/{auth.js → lib/auth.js} +40 -43
  213. package/dist/providers/github/lib/discovery.js +132 -0
  214. package/dist/providers/github/lib/operations.js +58 -0
  215. package/dist/providers/github/{scope.d.ts → lib/scope.d.ts} +2 -0
  216. package/dist/providers/github/{scope.js → lib/scope.js} +25 -1
  217. package/dist/providers/github/openapi.generated.js +1216 -0
  218. package/dist/providers/github/safety.js +216 -0
  219. package/dist/providers/github/skill.generated.js +2 -5
  220. package/dist/providers/github/tools.js +506 -0
  221. package/dist/providers/gmail/api.js +114 -0
  222. package/dist/providers/gmail/index.d.ts +1 -12
  223. package/dist/providers/gmail/index.js +73 -1621
  224. package/dist/providers/gmail/lib/constants.d.ts +13 -0
  225. package/dist/providers/gmail/lib/constants.js +16 -0
  226. package/dist/providers/gmail/lib/index.js +173 -0
  227. package/dist/providers/gmail/lib/schemas.js +176 -0
  228. package/dist/providers/gmail/lib/threading.js +120 -0
  229. package/dist/providers/gmail/openapi.generated.js +92 -0
  230. package/dist/providers/gmail/safety.js +21 -0
  231. package/dist/providers/gmail/skill.generated.js +2 -6
  232. package/dist/providers/gmail/tools.js +1435 -0
  233. package/dist/providers/overflow/api.js +1008 -0
  234. package/dist/providers/overflow/index.d.ts +1 -17
  235. package/dist/providers/overflow/index.js +60 -1488
  236. package/dist/providers/overflow/skill.generated.js +2 -5
  237. package/dist/providers/overflow/tools.js +873 -0
  238. package/dist/providers/planning-center/api.js +467 -0
  239. package/dist/providers/planning-center/index.d.ts +4 -35
  240. package/dist/providers/planning-center/index.js +69 -2445
  241. package/dist/providers/planning-center/lib/constants.d.ts +58 -0
  242. package/dist/providers/planning-center/lib/constants.js +83 -0
  243. package/dist/providers/planning-center/lib/discovery.js +40 -0
  244. package/dist/providers/planning-center/lib/guide.js +39 -0
  245. package/dist/providers/planning-center/lib/json-api.js +83 -0
  246. package/dist/providers/planning-center/lib/verdicts.js +1758 -0
  247. package/dist/providers/planning-center/openapi.generated.js +1764 -0
  248. package/dist/providers/planning-center/safety.js +188 -0
  249. package/dist/providers/planning-center/skill.generated.js +2 -27
  250. package/dist/providers/planning-center/tools.js +1010 -0
  251. package/dist/providers/sheets/api.js +133 -0
  252. package/dist/providers/sheets/index.d.ts +4 -16
  253. package/dist/providers/sheets/index.js +61 -1172
  254. package/dist/providers/sheets/lib/constants.d.ts +14 -0
  255. package/dist/providers/sheets/lib/constants.js +14 -0
  256. package/dist/providers/sheets/lib/hatch.js +163 -0
  257. package/dist/providers/sheets/lib/requests.js +105 -0
  258. package/dist/providers/sheets/lib/schemas.js +138 -0
  259. package/dist/providers/sheets/openapi.generated.js +30 -0
  260. package/dist/providers/sheets/safety.js +27 -0
  261. package/dist/providers/sheets/skill.generated.js +2 -7
  262. package/dist/providers/sheets/tools.js +734 -0
  263. package/dist/providers/slides/api.js +147 -0
  264. package/dist/providers/slides/index.d.ts +2 -10
  265. package/dist/providers/slides/index.js +48 -2555
  266. package/dist/providers/slides/lib/constants.d.ts +11 -0
  267. package/dist/providers/slides/lib/constants.js +11 -0
  268. package/dist/providers/slides/lib/requests.js +60 -0
  269. package/dist/providers/slides/lib/schemas.js +565 -0
  270. package/dist/providers/slides/openapi.generated.js +18 -0
  271. package/dist/providers/slides/skill.generated.js +2 -6
  272. package/dist/providers/slides/tools.js +1968 -0
  273. package/dist/providers/stripe/api.js +401 -0
  274. package/dist/providers/stripe/index.d.ts +5 -27
  275. package/dist/providers/stripe/index.js +74 -210
  276. package/dist/providers/stripe/lib/config.d.ts +4 -0
  277. package/dist/providers/stripe/lib/config.js +2 -0
  278. package/dist/providers/stripe/openapi.generated.js +4 -3
  279. package/dist/providers/stripe/{value-safety.js → safety.js} +5 -5
  280. package/dist/providers/stripe/skill.generated.js +2 -11
  281. package/dist/providers/stripe/tools.js +77 -0
  282. package/dist/providers/tithely/api.js +531 -0
  283. package/dist/providers/tithely/index.d.ts +17 -0
  284. package/dist/providers/tithely/index.js +86 -965
  285. package/dist/providers/tithely/skill.generated.js +2 -5
  286. package/dist/providers/tithely/tools.js +426 -0
  287. package/dist/providers/vercel/api.js +551 -0
  288. package/dist/providers/vercel/index.d.ts +9 -25
  289. package/dist/providers/vercel/index.js +66 -260
  290. package/dist/providers/vercel/lib/config.d.ts +2 -0
  291. package/dist/providers/vercel/lib/config.js +2 -0
  292. package/dist/providers/vercel/lib/index.js +117 -0
  293. package/dist/providers/vercel/lib/logs.js +100 -0
  294. package/dist/providers/vercel/lib/pin.js +270 -0
  295. package/dist/providers/vercel/openapi.generated.js +10 -5
  296. package/dist/providers/vercel/{value-safety.js → safety.js} +247 -38
  297. package/dist/providers/vercel/skill.generated.js +2 -7
  298. package/dist/providers/vercel/tools.js +642 -0
  299. package/dist/redaction-identity.js +47 -0
  300. package/dist/redaction-marker.js +125 -0
  301. package/dist/registry.d.ts +21 -15
  302. package/dist/registry.js +409 -376
  303. package/dist/routes/access-tokens.js +1 -1
  304. package/dist/routes/actor-labels.js +1 -1
  305. package/dist/routes/connect.js +1 -1
  306. package/dist/routes/dispatch.js +103 -0
  307. package/dist/routes/mcp.js +170 -79
  308. package/dist/routes/oauth.js +3 -1
  309. package/dist/routes/operator.js +2 -2
  310. package/dist/routes/shared.d.ts +5 -4
  311. package/dist/routes/shared.js +244 -177
  312. package/dist/routes/skills.js +10 -8
  313. package/dist/routes/ui-config.js +27 -3
  314. package/dist/routes/ui-data.js +21 -20
  315. package/dist/routes/ui.js +1 -1
  316. package/dist/runtime/call-admission.js +0 -26
  317. package/dist/runtime/call-entry.js +30 -0
  318. package/dist/runtime/call.js +556 -0
  319. package/dist/runtime/connector-scope.js +7 -0
  320. package/dist/runtime/credential-probe.js +34 -0
  321. package/dist/runtime/executor.js +40 -0
  322. package/dist/runtime/native-storage.js +63 -0
  323. package/dist/runtime/registry.js +27 -0
  324. package/dist/runtime/request-scope.js +72 -0
  325. package/dist/runtime/run.js +15 -7
  326. package/dist/runtime/shared-read.js +34 -5
  327. package/dist/runtime/storage.js +34 -21
  328. package/dist/sent-secrets.d.ts +194 -37
  329. package/dist/sent-secrets.js +1743 -340
  330. package/dist/server.js +5 -56
  331. package/dist/skills.js +322 -222
  332. package/dist/sqlite.js +15 -14
  333. package/dist/storage/d1-copy.js +255 -0
  334. package/dist/storage/d1-driver.js +15 -0
  335. package/dist/storage/keys.js +28 -0
  336. package/dist/storage/sql-driver.js +88 -0
  337. package/dist/storage/sql-native.js +544 -0
  338. package/dist/storage/sql-schema.d.ts +6 -0
  339. package/dist/storage/sql-schema.js +15 -0
  340. package/dist/storage/sql.d.ts +14 -20
  341. package/dist/storage/sql.js +29 -535
  342. package/dist/timeout.js +0 -26
  343. package/dist/tool-safety.js +20 -10
  344. package/dist/types.d.ts +7 -109
  345. package/dist/upward.js +3 -0
  346. package/dist/usage-guide.js +3 -1
  347. package/dist/validate.d.ts +4 -2
  348. package/dist/validate.js +86 -9
  349. package/dist/version.d.ts +1 -1
  350. package/dist/version.js +1 -1
  351. package/dist/worker.js +312 -292
  352. package/dist/workspace-subject.js +5 -1
  353. package/dist/write-outcome.js +454 -34
  354. package/documentation/README.md +27 -7
  355. package/documentation/architecture.md +2547 -226
  356. package/documentation/auth.md +821 -98
  357. package/documentation/code-mode.md +49 -16
  358. package/documentation/deploying.md +164 -20
  359. package/documentation/hosted-mcp-migration.md +460 -0
  360. package/documentation/integrating.md +129 -144
  361. package/documentation/meta-tools.md +409 -32
  362. package/documentation/operating.md +27 -3
  363. package/documentation/operator-tests.md +3 -0
  364. package/documentation/operator-ui.md +68 -45
  365. package/documentation/provider-auth-migration.md +16 -63
  366. package/documentation/provider-migration-0.29.md +10 -5
  367. package/documentation/provider-migration-0.35.md +975 -0
  368. package/documentation/providers.md +965 -0
  369. package/examples/worker/AGENTS.md +23 -9
  370. package/examples/worker/README.md +254 -135
  371. package/examples/worker/alchemy.run.ts +116 -0
  372. package/examples/worker/gitignore +10 -0
  373. package/examples/worker/src/connecta.config.ts +23 -21
  374. package/examples/worker/wrangler.jsonc +14 -5
  375. package/guides/connecting-agents.md +157 -0
  376. package/guides/how-it-works.md +156 -0
  377. package/guides/safety-and-trust.md +153 -0
  378. package/package.json +27 -46
  379. package/templates/node/.env.example +3 -0
  380. package/templates/node/README.md +22 -2
  381. package/templates/node/docker-compose.yml +1 -0
  382. package/templates/node/package.json +3 -2
  383. package/templates/node/src/connecta.config.ts +8 -0
  384. package/dist/catalog-drift.d.ts +0 -138
  385. package/dist/catalog-drift.js +0 -578
  386. package/dist/providers/_shared/request-token.js +0 -83
  387. package/dist/providers/_shared/rest/operation-index.d.ts +0 -133
  388. package/dist/providers/_shared/rest/tools.d.ts +0 -141
  389. package/dist/providers/_shared/rest/value-safety.d.ts +0 -201
  390. package/dist/providers/basecamp/index.d.ts +0 -45
  391. package/dist/providers/basecamp/index.js +0 -997
  392. package/dist/providers/basecamp/skill.generated.js +0 -9
  393. package/dist/providers/cloudflare/rest.d.ts +0 -37
  394. package/dist/providers/cloudflare/rest.js +0 -1097
  395. package/dist/providers/github/hosted.js +0 -218
  396. package/dist/providers/github/rest.js +0 -321
  397. package/dist/providers/infisical/index.d.ts +0 -7
  398. package/dist/providers/infisical/index.js +0 -713
  399. package/dist/providers/infisical/skill.generated.js +0 -8
  400. package/dist/providers/intercom/index.d.ts +0 -24
  401. package/dist/providers/intercom/index.js +0 -121
  402. package/dist/providers/intercom/skill.generated.js +0 -8
  403. package/dist/providers/linear/index.d.ts +0 -55
  404. package/dist/providers/linear/index.js +0 -537
  405. package/dist/providers/linear/skill.generated.js +0 -8
  406. package/dist/providers/mixpanel/index.d.ts +0 -59
  407. package/dist/providers/mixpanel/index.js +0 -472
  408. package/dist/providers/mixpanel/operations.js +0 -20
  409. package/dist/providers/mixpanel/rest.js +0 -603
  410. package/dist/providers/mixpanel/skill.generated.js +0 -10
  411. package/dist/providers/mixpanel/value-safety.js +0 -16
  412. package/dist/providers/notion/index.d.ts +0 -67
  413. package/dist/providers/notion/index.js +0 -368
  414. package/dist/providers/notion/openapi.generated.js +0 -75
  415. package/dist/providers/notion/rest.d.ts +0 -24
  416. package/dist/providers/notion/rest.js +0 -1226
  417. package/dist/providers/notion/skill.generated.js +0 -11
  418. package/dist/providers/notion/value-safety.js +0 -56
  419. package/dist/providers/revenuecat/index.d.ts +0 -51
  420. package/dist/providers/revenuecat/index.js +0 -697
  421. package/dist/providers/revenuecat/skill.generated.js +0 -11
  422. package/dist/providers/stripe/rest.d.ts +0 -14
  423. package/dist/providers/stripe/rest.js +0 -402
  424. package/dist/providers/vercel/rest.d.ts +0 -20
  425. package/dist/providers/vercel/rest.js +0 -1020
  426. package/dist/providers/wispr-flow/index.d.ts +0 -14
  427. package/dist/providers/wispr-flow/index.js +0 -117
  428. package/dist/providers/wispr-flow/skill.generated.js +0 -8
  429. /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
- };