@zackbart/connecta 0.34.0 → 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 (428) hide show
  1. package/CHANGELOG.md +393 -0
  2. package/README.md +62 -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 +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 +15 -7
  53. package/dist/connectors/api-connector.js +147 -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/option-shapes.js +1 -1
  58. package/dist/connectors/remote-mcp.d.ts +12 -30
  59. package/dist/connectors/remote-mcp.js +960 -564
  60. package/dist/d1.js +10 -243
  61. package/dist/derived-context.js +5 -0
  62. package/dist/describe-config.d.ts +5 -1
  63. package/dist/describe-config.js +3 -0
  64. package/dist/downstream-input.js +347 -260
  65. package/dist/errors.d.ts +87 -6
  66. package/dist/errors.js +114 -4
  67. package/dist/execute.js +87 -50
  68. package/dist/executor-admission.js +3 -0
  69. package/dist/executors/quickjs.js +163 -112
  70. package/dist/guarded-transport.js +50 -0
  71. package/dist/guest-runtime.js +1 -1
  72. package/dist/http/client.js +439 -0
  73. package/dist/http/errors.js +558 -0
  74. package/dist/http/fields.js +49 -0
  75. package/dist/http/hatch-paging.js +318 -0
  76. package/dist/http/hatch.js +1279 -0
  77. package/dist/http/json-schema.js +267 -0
  78. package/dist/http/node-transport.js +241 -0
  79. package/dist/http/oauth.js +162 -0
  80. package/dist/http/paging.js +228 -0
  81. package/dist/http/provider.js +221 -0
  82. package/dist/http/safety.js +82 -0
  83. package/dist/http/services.js +79 -0
  84. package/dist/http/tools.js +383 -0
  85. package/dist/http/vendor-index.js +138 -0
  86. package/dist/http/vendor.js +448 -0
  87. package/dist/http/write-request.js +66 -0
  88. package/dist/http-policy.d.ts +11 -0
  89. package/dist/http-policy.js +45 -0
  90. package/dist/inbound-credential.js +1 -1
  91. package/dist/index.d.ts +2 -2
  92. package/dist/index.js +4 -0
  93. package/dist/invocation-auth.js +30 -19
  94. package/dist/invocation.js +221 -87
  95. package/dist/mcp-result.js +0 -4
  96. package/dist/membership.d.ts +4 -0
  97. package/dist/meta-output.js +1 -1
  98. package/dist/meta-tools.js +534 -408
  99. package/dist/native-recovery.js +52 -0
  100. package/dist/native-tools.js +382 -0
  101. package/dist/node.d.ts +4 -3
  102. package/dist/node.js +45 -8
  103. package/dist/oauth-handoff.js +177 -104
  104. package/dist/oauth-partition.js +6 -20
  105. package/dist/oauth-sealing.js +6 -7
  106. package/dist/operation-vocabulary.js +101 -0
  107. package/dist/operator-record.d.ts +2 -2
  108. package/dist/operator-record.js +17 -4
  109. package/dist/operator-ui/agents.d.ts +5 -4
  110. package/dist/operator-ui/agents.js +17 -7
  111. package/dist/operator-ui/config-summary.js +8 -4
  112. package/dist/operator-ui/connection-map.js +9 -6
  113. package/dist/operator-ui/contract.d.ts +7 -3
  114. package/dist/operator-ui/endpoints.js +5 -14
  115. package/dist/operator-ui/fix-prompts.d.ts +1 -1
  116. package/dist/operator-ui/fix-prompts.js +0 -8
  117. package/dist/operator-ui/generated.js +3 -3
  118. package/dist/operator-ui/health.js +52 -0
  119. package/dist/operator-ui/model.d.ts +2 -3
  120. package/dist/operator-ui/overview.js +11 -19
  121. package/dist/operator-ui/setup-commands.js +0 -4
  122. package/dist/operator-ui/view.d.ts +5 -29
  123. package/dist/operator-ui/view.js +3 -59
  124. package/dist/program-writes.js +47 -26
  125. package/dist/provider-call-facts.d.ts +115 -0
  126. package/dist/provider-call-facts.js +182 -0
  127. package/dist/provider-call.d.ts +112 -0
  128. package/dist/provider-call.js +271 -0
  129. package/dist/provider.d.ts +71 -32
  130. package/dist/provider.js +134 -40
  131. package/dist/providers/_shared/google/hatch.js +91 -0
  132. package/dist/providers/_shared/google/kit.js +537 -0
  133. package/dist/providers/_shared/google/result-size.js +15 -2
  134. package/dist/providers/_shared/google/service-account.d.ts +2 -1
  135. package/dist/providers/_shared/google/service-account.js +8 -4
  136. package/dist/providers/_shared/google/workspace.d.ts +8 -209
  137. package/dist/providers/_shared/google/workspace.js +7 -426
  138. package/dist/providers/_shared/rest/compact-index.js +86 -0
  139. package/dist/providers/_shared/rest/dispatch.js +3 -23
  140. package/dist/providers/_shared/rest/kit.js +546 -0
  141. package/dist/providers/_shared/rest/operation-index.js +230 -14
  142. package/dist/providers/_shared/rest/response-media.js +11 -0
  143. package/dist/providers/_shared/rest/tools.js +101 -78
  144. package/dist/providers/_shared/rest/value-safety.js +353 -195
  145. package/dist/providers/_shared/sensitive-fields.js +27 -0
  146. package/dist/providers/breeze/api.js +584 -0
  147. package/dist/providers/breeze/index.d.ts +3 -3
  148. package/dist/providers/breeze/index.js +67 -1420
  149. package/dist/providers/breeze/openapi.generated.js +60 -0
  150. package/dist/providers/breeze/skill.generated.js +2 -6
  151. package/dist/providers/breeze/tools.js +696 -0
  152. package/dist/providers/ccb/api.js +496 -0
  153. package/dist/providers/ccb/index.d.ts +17 -37
  154. package/dist/providers/ccb/index.js +77 -1702
  155. package/dist/providers/ccb/lib/constants.d.ts +34 -0
  156. package/dist/providers/ccb/lib/constants.js +74 -0
  157. package/dist/providers/ccb/lib/guide.js +9 -0
  158. package/dist/providers/ccb/lib/verdicts.js +387 -0
  159. package/dist/providers/ccb/openapi.generated.js +397 -0
  160. package/dist/providers/ccb/safety.js +295 -0
  161. package/dist/providers/ccb/skill.generated.js +2 -6
  162. package/dist/providers/ccb/tools.js +853 -0
  163. package/dist/providers/cloudflare/api.js +1066 -0
  164. package/dist/providers/cloudflare/index.d.ts +7 -22
  165. package/dist/providers/cloudflare/index.js +80 -194
  166. package/dist/providers/cloudflare/lib/config.d.ts +16 -0
  167. package/dist/providers/cloudflare/lib/config.js +2 -0
  168. package/dist/providers/cloudflare/lib/discovery.js +29 -0
  169. package/dist/providers/cloudflare/{graphql.js → lib/graphql.js} +1 -1
  170. package/dist/providers/cloudflare/lib/hatch.js +103 -0
  171. package/dist/providers/cloudflare/lib/path-bounds.js +28 -0
  172. package/dist/providers/cloudflare/lib/response-media.js +75 -0
  173. package/dist/providers/cloudflare/openapi.generated.js +3299 -3208
  174. package/dist/providers/cloudflare/{value-safety.js → safety.js} +538 -18
  175. package/dist/providers/cloudflare/skill.generated.js +2 -10
  176. package/dist/providers/cloudflare/tools.js +360 -0
  177. package/dist/providers/docs/api.js +51 -0
  178. package/dist/providers/docs/index.d.ts +1 -12
  179. package/dist/providers/docs/index.js +53 -1165
  180. package/dist/providers/docs/lib/constants.d.ts +18 -0
  181. package/dist/providers/docs/lib/constants.js +18 -0
  182. package/dist/providers/docs/lib/discovery.js +26 -0
  183. package/dist/providers/docs/lib/requests.js +48 -0
  184. package/dist/providers/docs/lib/schemas.js +168 -0
  185. package/dist/providers/docs/openapi.generated.js +16 -0
  186. package/dist/providers/docs/safety.js +54 -0
  187. package/dist/providers/docs/skill.generated.js +2 -6
  188. package/dist/providers/docs/tools.js +802 -0
  189. package/dist/providers/drive/api.js +177 -0
  190. package/dist/providers/drive/index.d.ts +1 -12
  191. package/dist/providers/drive/index.js +38 -1448
  192. package/dist/providers/drive/lib/constants.d.ts +6 -0
  193. package/dist/providers/drive/lib/constants.js +6 -0
  194. package/dist/providers/drive/lib/contracts.js +532 -0
  195. package/dist/providers/drive/lib/hatch.js +197 -0
  196. package/dist/providers/drive/openapi.generated.js +77 -0
  197. package/dist/providers/drive/safety.js +90 -0
  198. package/dist/providers/drive/skill.generated.js +2 -6
  199. package/dist/providers/drive/tools.js +1290 -0
  200. package/dist/providers/forms/api.js +71 -0
  201. package/dist/providers/forms/index.d.ts +1 -12
  202. package/dist/providers/forms/index.js +49 -1145
  203. package/dist/providers/forms/lib/constants.d.ts +14 -0
  204. package/dist/providers/forms/lib/constants.js +19 -0
  205. package/dist/providers/forms/lib/hatch.js +72 -0
  206. package/dist/providers/forms/openapi.generated.js +23 -0
  207. package/dist/providers/forms/safety.js +34 -0
  208. package/dist/providers/forms/skill.generated.js +2 -8
  209. package/dist/providers/forms/tools.js +1024 -0
  210. package/dist/providers/github/api.js +150 -0
  211. package/dist/providers/github/index.d.ts +4 -5
  212. package/dist/providers/github/index.js +30 -87
  213. package/dist/providers/github/{auth.d.ts → lib/auth.d.ts} +5 -3
  214. package/dist/providers/github/{auth.js → lib/auth.js} +40 -43
  215. package/dist/providers/github/lib/discovery.js +132 -0
  216. package/dist/providers/github/lib/operations.js +58 -0
  217. package/dist/providers/github/{scope.d.ts → lib/scope.d.ts} +2 -0
  218. package/dist/providers/github/{scope.js → lib/scope.js} +25 -1
  219. package/dist/providers/github/openapi.generated.js +1216 -0
  220. package/dist/providers/github/safety.js +216 -0
  221. package/dist/providers/github/skill.generated.js +2 -5
  222. package/dist/providers/github/tools.js +506 -0
  223. package/dist/providers/gmail/api.js +114 -0
  224. package/dist/providers/gmail/index.d.ts +1 -12
  225. package/dist/providers/gmail/index.js +73 -1621
  226. package/dist/providers/gmail/lib/constants.d.ts +13 -0
  227. package/dist/providers/gmail/lib/constants.js +16 -0
  228. package/dist/providers/gmail/lib/index.js +173 -0
  229. package/dist/providers/gmail/lib/schemas.js +176 -0
  230. package/dist/providers/gmail/lib/threading.js +120 -0
  231. package/dist/providers/gmail/openapi.generated.js +92 -0
  232. package/dist/providers/gmail/safety.js +21 -0
  233. package/dist/providers/gmail/skill.generated.js +2 -6
  234. package/dist/providers/gmail/tools.js +1435 -0
  235. package/dist/providers/overflow/api.js +1008 -0
  236. package/dist/providers/overflow/index.d.ts +3 -17
  237. package/dist/providers/overflow/index.js +60 -1488
  238. package/dist/providers/overflow/skill.generated.js +2 -5
  239. package/dist/providers/overflow/tools.js +873 -0
  240. package/dist/providers/planning-center/api.js +467 -0
  241. package/dist/providers/planning-center/index.d.ts +6 -35
  242. package/dist/providers/planning-center/index.js +69 -2445
  243. package/dist/providers/planning-center/lib/constants.d.ts +58 -0
  244. package/dist/providers/planning-center/lib/constants.js +83 -0
  245. package/dist/providers/planning-center/lib/discovery.js +40 -0
  246. package/dist/providers/planning-center/lib/guide.js +39 -0
  247. package/dist/providers/planning-center/lib/json-api.js +83 -0
  248. package/dist/providers/planning-center/lib/verdicts.js +1758 -0
  249. package/dist/providers/planning-center/openapi.generated.js +1764 -0
  250. package/dist/providers/planning-center/safety.js +188 -0
  251. package/dist/providers/planning-center/skill.generated.js +2 -27
  252. package/dist/providers/planning-center/tools.js +1010 -0
  253. package/dist/providers/sheets/api.js +133 -0
  254. package/dist/providers/sheets/index.d.ts +4 -16
  255. package/dist/providers/sheets/index.js +61 -1172
  256. package/dist/providers/sheets/lib/constants.d.ts +14 -0
  257. package/dist/providers/sheets/lib/constants.js +14 -0
  258. package/dist/providers/sheets/lib/hatch.js +163 -0
  259. package/dist/providers/sheets/lib/requests.js +105 -0
  260. package/dist/providers/sheets/lib/schemas.js +138 -0
  261. package/dist/providers/sheets/openapi.generated.js +30 -0
  262. package/dist/providers/sheets/safety.js +27 -0
  263. package/dist/providers/sheets/skill.generated.js +2 -7
  264. package/dist/providers/sheets/tools.js +734 -0
  265. package/dist/providers/slides/api.js +147 -0
  266. package/dist/providers/slides/index.d.ts +2 -10
  267. package/dist/providers/slides/index.js +48 -2555
  268. package/dist/providers/slides/lib/constants.d.ts +11 -0
  269. package/dist/providers/slides/lib/constants.js +11 -0
  270. package/dist/providers/slides/lib/requests.js +60 -0
  271. package/dist/providers/slides/lib/schemas.js +565 -0
  272. package/dist/providers/slides/openapi.generated.js +18 -0
  273. package/dist/providers/slides/skill.generated.js +2 -6
  274. package/dist/providers/slides/tools.js +1968 -0
  275. package/dist/providers/stripe/api.js +401 -0
  276. package/dist/providers/stripe/index.d.ts +7 -27
  277. package/dist/providers/stripe/index.js +75 -191
  278. package/dist/providers/stripe/lib/config.d.ts +4 -0
  279. package/dist/providers/stripe/lib/config.js +2 -0
  280. package/dist/providers/stripe/openapi.generated.js +4 -3
  281. package/dist/providers/stripe/{value-safety.js → safety.js} +5 -5
  282. package/dist/providers/stripe/skill.generated.js +2 -10
  283. package/dist/providers/stripe/tools.js +77 -0
  284. package/dist/providers/tithely/api.js +531 -0
  285. package/dist/providers/tithely/index.d.ts +19 -0
  286. package/dist/providers/tithely/index.js +86 -965
  287. package/dist/providers/tithely/skill.generated.js +2 -5
  288. package/dist/providers/tithely/tools.js +426 -0
  289. package/dist/providers/vercel/api.js +551 -0
  290. package/dist/providers/vercel/index.d.ts +11 -25
  291. package/dist/providers/vercel/index.js +67 -261
  292. package/dist/providers/vercel/lib/config.d.ts +2 -0
  293. package/dist/providers/vercel/lib/config.js +2 -0
  294. package/dist/providers/vercel/lib/index.js +117 -0
  295. package/dist/providers/vercel/lib/logs.js +100 -0
  296. package/dist/providers/vercel/lib/pin.js +270 -0
  297. package/dist/providers/vercel/openapi.generated.js +398 -376
  298. package/dist/providers/vercel/{value-safety.js → safety.js} +261 -42
  299. package/dist/providers/vercel/skill.generated.js +2 -7
  300. package/dist/providers/vercel/tools.js +642 -0
  301. package/dist/redaction-identity.js +47 -0
  302. package/dist/redaction-marker.js +125 -0
  303. package/dist/registry.d.ts +30 -28
  304. package/dist/registry.js +446 -413
  305. package/dist/routes/access-tokens.js +1 -1
  306. package/dist/routes/actor-labels.js +1 -1
  307. package/dist/routes/connect.js +1 -1
  308. package/dist/routes/dispatch.js +103 -0
  309. package/dist/routes/mcp.js +170 -79
  310. package/dist/routes/oauth.js +3 -1
  311. package/dist/routes/operator.js +2 -2
  312. package/dist/routes/shared.d.ts +5 -4
  313. package/dist/routes/shared.js +244 -177
  314. package/dist/routes/skills.js +10 -8
  315. package/dist/routes/ui-config.js +27 -3
  316. package/dist/routes/ui-data.js +29 -22
  317. package/dist/routes/ui.js +1 -1
  318. package/dist/runtime/call-admission.js +0 -26
  319. package/dist/runtime/call-entry.js +30 -0
  320. package/dist/runtime/call.js +556 -0
  321. package/dist/runtime/connector-scope.js +7 -0
  322. package/dist/runtime/credential-probe.js +34 -0
  323. package/dist/runtime/executor.js +40 -0
  324. package/dist/runtime/native-storage.js +63 -0
  325. package/dist/runtime/registry.js +27 -0
  326. package/dist/runtime/request-scope.js +72 -0
  327. package/dist/runtime/run.js +15 -7
  328. package/dist/runtime/shared-read.js +34 -5
  329. package/dist/runtime/storage.js +34 -21
  330. package/dist/sent-secrets.d.ts +194 -37
  331. package/dist/sent-secrets.js +1743 -340
  332. package/dist/server.js +5 -56
  333. package/dist/skills.js +330 -224
  334. package/dist/sqlite.js +15 -14
  335. package/dist/storage/d1-copy.js +255 -0
  336. package/dist/storage/d1-driver.js +15 -0
  337. package/dist/storage/keys.js +28 -0
  338. package/dist/storage/sql-driver.js +88 -0
  339. package/dist/storage/sql-native.js +544 -0
  340. package/dist/storage/sql-schema.d.ts +6 -0
  341. package/dist/storage/sql-schema.js +15 -0
  342. package/dist/storage/sql.d.ts +14 -20
  343. package/dist/storage/sql.js +29 -535
  344. package/dist/timeout.js +0 -26
  345. package/dist/tool-safety.js +20 -10
  346. package/dist/types.d.ts +11 -99
  347. package/dist/upward.js +3 -0
  348. package/dist/usage-guide.js +3 -1
  349. package/dist/validate.d.ts +4 -2
  350. package/dist/validate.js +86 -9
  351. package/dist/version.d.ts +1 -1
  352. package/dist/version.js +1 -1
  353. package/dist/worker.js +312 -292
  354. package/dist/workspace-subject.js +5 -1
  355. package/dist/write-outcome.js +454 -34
  356. package/documentation/README.md +27 -7
  357. package/documentation/architecture.md +2550 -186
  358. package/documentation/auth.md +821 -98
  359. package/documentation/code-mode.md +56 -21
  360. package/documentation/deploying.md +164 -20
  361. package/documentation/hosted-mcp-migration.md +460 -0
  362. package/documentation/integrating.md +144 -105
  363. package/documentation/meta-tools.md +411 -34
  364. package/documentation/operating.md +28 -4
  365. package/documentation/operator-tests.md +11 -2
  366. package/documentation/operator-ui.md +103 -33
  367. package/documentation/provider-auth-migration.md +38 -63
  368. package/documentation/provider-migration-0.29.md +10 -5
  369. package/documentation/provider-migration-0.35.md +975 -0
  370. package/documentation/providers.md +965 -0
  371. package/examples/worker/AGENTS.md +23 -9
  372. package/examples/worker/README.md +254 -135
  373. package/examples/worker/alchemy.run.ts +116 -0
  374. package/examples/worker/gitignore +10 -0
  375. package/examples/worker/src/connecta.config.ts +23 -21
  376. package/examples/worker/wrangler.jsonc +14 -5
  377. package/guides/connecting-agents.md +157 -0
  378. package/guides/how-it-works.md +156 -0
  379. package/guides/safety-and-trust.md +153 -0
  380. package/package.json +27 -42
  381. package/templates/node/.env.example +3 -0
  382. package/templates/node/README.md +22 -2
  383. package/templates/node/docker-compose.yml +1 -0
  384. package/templates/node/package.json +3 -2
  385. package/templates/node/src/connecta.config.ts +8 -0
  386. package/dist/catalog-drift.d.ts +0 -134
  387. package/dist/catalog-drift.js +0 -493
  388. package/dist/providers/_shared/request-token.js +0 -83
  389. package/dist/providers/_shared/rest/operation-index.d.ts +0 -133
  390. package/dist/providers/_shared/rest/tools.d.ts +0 -141
  391. package/dist/providers/_shared/rest/value-safety.d.ts +0 -201
  392. package/dist/providers/basecamp/index.d.ts +0 -43
  393. package/dist/providers/basecamp/index.js +0 -997
  394. package/dist/providers/basecamp/skill.generated.js +0 -9
  395. package/dist/providers/cloudflare/rest.d.ts +0 -37
  396. package/dist/providers/cloudflare/rest.js +0 -1078
  397. package/dist/providers/github/hosted.js +0 -218
  398. package/dist/providers/github/rest.js +0 -321
  399. package/dist/providers/infisical/index.d.ts +0 -7
  400. package/dist/providers/infisical/index.js +0 -713
  401. package/dist/providers/infisical/skill.generated.js +0 -8
  402. package/dist/providers/linear/index.d.ts +0 -55
  403. package/dist/providers/linear/index.js +0 -352
  404. package/dist/providers/linear/skill.generated.js +0 -8
  405. package/dist/providers/mixpanel/index.d.ts +0 -57
  406. package/dist/providers/mixpanel/index.js +0 -468
  407. package/dist/providers/mixpanel/operations.js +0 -20
  408. package/dist/providers/mixpanel/rest.js +0 -603
  409. package/dist/providers/mixpanel/skill.generated.js +0 -10
  410. package/dist/providers/mixpanel/value-safety.js +0 -16
  411. package/dist/providers/notion/index.d.ts +0 -65
  412. package/dist/providers/notion/index.js +0 -368
  413. package/dist/providers/notion/openapi.generated.js +0 -75
  414. package/dist/providers/notion/rest.d.ts +0 -24
  415. package/dist/providers/notion/rest.js +0 -1226
  416. package/dist/providers/notion/skill.generated.js +0 -11
  417. package/dist/providers/notion/value-safety.js +0 -56
  418. package/dist/providers/revenuecat/index.d.ts +0 -49
  419. package/dist/providers/revenuecat/index.js +0 -557
  420. package/dist/providers/revenuecat/skill.generated.js +0 -11
  421. package/dist/providers/stripe/rest.d.ts +0 -14
  422. package/dist/providers/stripe/rest.js +0 -402
  423. package/dist/providers/vercel/rest.d.ts +0 -20
  424. package/dist/providers/vercel/rest.js +0 -1020
  425. package/dist/providers/wispr-flow/index.d.ts +0 -14
  426. package/dist/providers/wispr-flow/index.js +0 -117
  427. package/dist/providers/wispr-flow/skill.generated.js +0 -8
  428. /package/dist/providers/github/{key.js → lib/key.js} +0 -0
@@ -1,468 +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 in #705's provider audit against https://docs.mixpanel.com/docs/mcp.
16
- * Retains the release-reviewed inventory, including names absent from today's
17
- * public reference. Live annotations were not reverified without credentials.
18
- * Schema digests retain the 2026-08-30 live US review (#395, #512).
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:56659fa3277723b75e24f3b4ca142ac9cd62120fb97e6c9252c221d00cdf8509",
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-Events": {
68
- "verdict": "read",
69
- "reason": "Retrieves Mixpanel events information without changing vendor state.",
70
- "schemaDigest": "sha256:d206fe30ab47d64bf6090bffdb4d119a80cfc2a35963bbe7fd52d56060090ded",
71
- },
72
- "List-Properties": {
73
- "verdict": "read",
74
- "reason": "Retrieves Mixpanel properties information without changing vendor state.",
75
- "schemaDigest": "sha256:52b38861df076119dfefe0128cf9819868336bf60e090f63c80da734877a69fe",
76
- },
77
- "Get-Property-Values": {
78
- "verdict": "read",
79
- "reason": "Retrieves Mixpanel property values information without changing vendor state.",
80
- "schemaDigest": "sha256:0cd487c9b92a187b21f456de3c785bb631aa30cba702785c9ff158608883a6bb",
81
- },
82
- "Search-Entities": {
83
- "verdict": "read",
84
- "reason": "Retrieves Mixpanel entities information without changing vendor state.",
85
- "schemaDigest": "sha256:86cfa1d3bf7f17a70ad07264d7b1d16c83480e40996e8d847911fe8bde13e35e",
86
- },
87
- "Get-Issues": {
88
- "verdict": "read",
89
- "reason": "Retrieves Mixpanel issues information without changing vendor state.",
90
- "schemaDigest": "sha256:cf172ef18f37504a758c825c7bd4bc23fd98c3421655754dccd8e5ee2d700a10",
91
- },
92
- "Get-Lexicon-URL": {
93
- "verdict": "read",
94
- "reason": "Retrieves Mixpanel lexicon url information without changing vendor state.",
95
- "schemaDigest": "sha256:c6456d5c4a38ba069a2caa6cdac651be9d86d47bc6efb3316a893c7336d0e2bc",
96
- },
97
- "Find-Duplicate-Groups": {
98
- "verdict": "read",
99
- "reason": "Retrieves Mixpanel find duplicate groups information without changing vendor state.",
100
- "schemaDigest": "sha256:8f944cef9a147eab3c51bfcf1b873cef1409e5a6c21565d34e7ed20d23dcebb7",
101
- },
102
- "Get-Custom-Property": {
103
- "verdict": "read",
104
- "reason": "Retrieves Mixpanel custom property information without changing vendor state.",
105
- "schemaDigest": "sha256:d1cbce906cee66d422846c8ef1a745bbeac2c058ecad6b1ee8dcdd2120fa86be",
106
- },
107
- "Get-Cohort": {
108
- "verdict": "read",
109
- "reason": "Retrieves Mixpanel cohort information without changing vendor state.",
110
- "schemaDigest": "sha256:e18c500459edd9c2b6a614a3f6c97b668786be9abf72929a0a50086bdadb1dae",
111
- },
112
- "List-Cohorts": {
113
- "verdict": "read",
114
- "reason": "Retrieves Mixpanel cohorts information without changing vendor state.",
115
- "schemaDigest": "sha256:fd04778d60a027cfd777b40f36fbb037ba070661e149b2fce35a14865cada2db",
116
- },
117
- "Describe-Cohort-Schema": {
118
- "verdict": "read",
119
- "reason": "Retrieves Mixpanel describe cohort schema information without changing vendor state.",
120
- "schemaDigest": "sha256:775dbb8bb71ad3fa39ba35ca3a2683dfd88120f7af84a968531609c5a12de537",
121
- },
122
- "Get-Lookup-Table": {
123
- "verdict": "read",
124
- "reason": "Retrieves Mixpanel lookup table information without changing vendor state.",
125
- "schemaDigest": "sha256:061602b283461f083bbd74348c264f802cb21c4fe6d961241c7090895a8334ac",
126
- },
127
- "Get-Metric": {
128
- "verdict": "read",
129
- "reason": "Retrieves Mixpanel metric information without changing vendor state.",
130
- "schemaDigest": "sha256:eef10dd9ca25a63a63775565cbc4f2261b289dec526aa33df0f318eefbc96c46",
131
- },
132
- "List-Metrics": {
133
- "verdict": "read",
134
- "reason": "Retrieves Mixpanel metrics information without changing vendor state.",
135
- "schemaDigest": "sha256:341710bebabb82112e80eb521d9d5cdb3bca024699b3aa795874d3549a315042",
136
- },
137
- "Get-User-Replays-Data": {
138
- "verdict": "read",
139
- "reason": "Retrieves Mixpanel user replays data information without changing vendor state.",
140
- "schemaDigest": "sha256:5df287735478a67489075b0c7c9d8c07097abe67408d06743c7fb9be43c6e024",
141
- },
142
- "List-Experiments": {
143
- "verdict": "read",
144
- "reason": "Retrieves Mixpanel experiments information without changing vendor state.",
145
- "schemaDigest": "sha256:26a3f3e0b4e52135d74335dd769103303071fc48c15b1df40efd2dfa5a353848",
146
- },
147
- "Get-Experiment": {
148
- "verdict": "read",
149
- "reason": "Retrieves Mixpanel experiment information without changing vendor state.",
150
- "schemaDigest": "sha256:ab685aa985aa2ec36d9cbeb1b3c1ef298b020e552e8fdce12e75abbeb4706f2b",
151
- },
152
- "Get-Experiment-Setup-Guidance": {
153
- "verdict": "read",
154
- "reason": "Retrieves Mixpanel experiment setup guidance information without changing vendor state.",
155
- "schemaDigest": "sha256:e517d9759f66f4a7ad15b0b67ffaabfb605e80949afcf41d007dfafd8f3e9574",
156
- },
157
- "Get-Experiment-Results-Interpretation-Guidance": {
158
- "verdict": "read",
159
- "reason": "Retrieves Mixpanel experiment results interpretation guidance information without changing vendor state.",
160
- "schemaDigest": "sha256:e517d9759f66f4a7ad15b0b67ffaabfb605e80949afcf41d007dfafd8f3e9574",
161
- },
162
- "Explain-Experiment-Health-Check": {
163
- "verdict": "read",
164
- "reason": "Retrieves Mixpanel explain experiment health check information without changing vendor state.",
165
- "schemaDigest": "sha256:a50b1263247012dc78521bf6c1dd18584a7b08d46221a444b1ca49c81d3286e5",
166
- },
167
- "Run-Experiment-Pre-Launch-Checks": {
168
- "verdict": "read",
169
- "reason": "Retrieves Mixpanel run experiment pre launch checks information without changing vendor state.",
170
- "schemaDigest": "sha256:f6b5d85f75450b76fda9c7ef441f190fd45fcaeaff4cc3c30a6d1bee76e4c706",
171
- },
172
- "Search-Prior-Experiments": {
173
- "verdict": "read",
174
- "reason": "Retrieves Mixpanel prior experiments information without changing vendor state.",
175
- "schemaDigest": "sha256:847d1dcefaf6dc5e7ea967476f464a4d678a06b5e7d437dfb11ad4af2e56620f",
176
- },
177
- "List-Feature-Flags": {
178
- "verdict": "read",
179
- "reason": "Retrieves Mixpanel feature flags information without changing vendor state.",
180
- "schemaDigest": "sha256:75fc1ff14f3d3faedb8e00c6563d151de397d584429764fd0c332f6a84f6993c",
181
- },
182
- "Get-Feature-Flag": {
183
- "verdict": "read",
184
- "reason": "Retrieves Mixpanel feature flag information without changing vendor state.",
185
- "schemaDigest": "sha256:129de58b379ffba272bdbcee2b5759262e586dd415edc2067a69e9844d4d0877",
186
- },
187
- "Get-Feature-Flag-Setup-Guidance": {
188
- "verdict": "read",
189
- "reason": "Retrieves Mixpanel feature flag setup guidance information without changing vendor state.",
190
- "schemaDigest": "sha256:e517d9759f66f4a7ad15b0b67ffaabfb605e80949afcf41d007dfafd8f3e9574",
191
- },
192
- "Get-Feature-Flag-Lifecycle-Guidance": {
193
- "verdict": "read",
194
- "reason": "Retrieves Mixpanel feature flag lifecycle guidance information without changing vendor state.",
195
- "schemaDigest": "sha256:e517d9759f66f4a7ad15b0b67ffaabfb605e80949afcf41d007dfafd8f3e9574",
196
- },
197
- "Create-Dashboard": {
198
- "verdict": "write",
199
- "reason": "Create Dashboard creates or appends Mixpanel state; it has side effects.",
200
- "schemaDigest": "sha256:bd3b6e5134d27dafb04ccdf04d19e54dd23e6e2dc16989e418006e484268037b",
201
- },
202
- "Update-Dashboard": {
203
- "verdict": "destructive",
204
- "reason": "Update Dashboard changes existing Mixpanel state or removes it.",
205
- "schemaDigest": "sha256:2cc179ba75eda476ba7488f01503d947f023a4460aa98c4806ef0ab10c3b3ce8",
206
- },
207
- "Duplicate-Dashboard": {
208
- "verdict": "write",
209
- "reason": "Duplicate Dashboard creates or appends Mixpanel state; it has side effects.",
210
- "schemaDigest": "sha256:9738db7495d29034df966423df3c9d4b16ac3a8254c8473bf1e85a467fe9cf4e",
211
- },
212
- "Delete-Dashboard": {
213
- "verdict": "destructive",
214
- "reason": "Delete Dashboard changes existing Mixpanel state or removes it.",
215
- "schemaDigest": "sha256:3a04594218b491743240e6970f677ed8ed132237d933efe30e97bdc41eb1ab6f",
216
- },
217
- "Edit-Event": {
218
- "verdict": "destructive",
219
- "reason": "Edit Event changes existing Mixpanel state or removes it.",
220
- "schemaDigest": "sha256:28c47da0b56f57da0f11eb11435441a39ecd5175600f854442744c66a379ef93",
221
- },
222
- "Edit-Property": {
223
- "verdict": "destructive",
224
- "reason": "Edit Property changes existing Mixpanel state or removes it.",
225
- "schemaDigest": "sha256:11975587d2a566edc468db7cb24df70167d12068f30c1fe52c84f543cf4e2399",
226
- },
227
- "Bulk-Edit-Events": {
228
- "verdict": "destructive",
229
- "reason": "Bulk Edit Events changes existing Mixpanel state or removes it.",
230
- "schemaDigest": "sha256:94512138df153de95436371f5a313e32b97faffebda3be6c0c69d09d1ff2b340",
231
- },
232
- "Bulk-Edit-Properties": {
233
- "verdict": "destructive",
234
- "reason": "Bulk Edit Properties changes existing Mixpanel state or removes it.",
235
- "schemaDigest": "sha256:93481eb896ded45b623c678612e2156439efbaad5b4d660da1f2b087e7409ee3",
236
- },
237
- "Create-Tag": {
238
- "verdict": "write",
239
- "reason": "Create Tag creates or appends Mixpanel state; it has side effects.",
240
- "schemaDigest": "sha256:f99b6faad422aa6142d20d0aa4bdec1074e96a8ec45e35573e86d84b01df1d3b",
241
- },
242
- "Rename-Tag": {
243
- "verdict": "destructive",
244
- "reason": "Rename Tag changes existing Mixpanel state or removes it.",
245
- "schemaDigest": "sha256:a7e20e79ecd6ca7edca104fa1030e059ffae8962bf084d4a384c012ac9bbf087",
246
- },
247
- "Delete-Tag": {
248
- "verdict": "destructive",
249
- "reason": "Delete Tag changes existing Mixpanel state or removes it.",
250
- "schemaDigest": "sha256:5f6cc58ada5d2796f124e15883fe05061d03f9129414f4c8e10a0ec463f17807",
251
- },
252
- "Dismiss-Issues": {
253
- "verdict": "destructive",
254
- "reason": "Dismiss Issues changes existing Mixpanel state or removes it.",
255
- "schemaDigest": "sha256:9c1f4901eca53f58d16feee126868d23c6ed1f5fad72344f86ea9965385b8644",
256
- },
257
- "Update-Business-Context": {
258
- "verdict": "destructive",
259
- "reason": "Update Business Context changes existing Mixpanel state or removes it.",
260
- "schemaDigest": "sha256:0d21290053b6d532386c3c83d60cd78013a7109492c02ba2e7822716f2cde027",
261
- },
262
- "Dismiss-Duplicate-Group": {
263
- "verdict": "destructive",
264
- "reason": "Dismiss Duplicate Group changes existing Mixpanel state or removes it.",
265
- "schemaDigest": "sha256:4e39c6f9bb83ed54020097f6cf34507a5288de2c1ce333456c84682bb5986bc4",
266
- },
267
- "Merge-Group": {
268
- "verdict": "destructive",
269
- "reason": "Merge Group changes existing Mixpanel state or removes it.",
270
- "schemaDigest": "sha256:a3b215a5be70305c2f02439513bee76ae3947da14e2a9e5b6ff0afb9ad3d4dcd",
271
- },
272
- "Create-Custom-Property": {
273
- "verdict": "write",
274
- "reason": "Create Custom Property creates or appends Mixpanel state; it has side effects.",
275
- "schemaDigest": "sha256:d22818b812f3fd0e785a5bbbee26cf099eaa911d5b6f383f94cf458a2ed26294",
276
- },
277
- "Update-Custom-Property": {
278
- "verdict": "destructive",
279
- "reason": "Update Custom Property changes existing Mixpanel state or removes it.",
280
- "schemaDigest": "sha256:781aaaab41c1ab5958062dc393d02b1df2ef2a09a28d3c4f21ae3177f4f53c86",
281
- },
282
- "Create-Cohort": {
283
- "verdict": "write",
284
- "reason": "Create Cohort creates or appends Mixpanel state; it has side effects.",
285
- "schemaDigest": "sha256:ea687f4bc607f8bfb5b1949e060239d6f7d629d3ec80fb0b72eae6cc6156ed03",
286
- },
287
- "Update-Cohort": {
288
- "verdict": "destructive",
289
- "reason": "Update Cohort changes existing Mixpanel state or removes it.",
290
- "schemaDigest": "sha256:ebe0d5afcc00e23eef55f079cd1816c851c2c647dff9565b7045f1f1615663f2",
291
- },
292
- "Delete-Cohort": {
293
- "verdict": "destructive",
294
- "reason": "Delete Cohort changes existing Mixpanel state or removes it.",
295
- "schemaDigest": "sha256:e18c500459edd9c2b6a614a3f6c97b668786be9abf72929a0a50086bdadb1dae",
296
- },
297
- "Create-Lookup-Table": {
298
- "verdict": "write",
299
- "reason": "Create Lookup Table creates or appends Mixpanel state; it has side effects.",
300
- "schemaDigest": "sha256:c2fefa33a4f19fc65f394fecdc7126cab0ae874f7c97018cf003d8462a049e4c",
301
- },
302
- "Update-Lookup-Table": {
303
- "verdict": "destructive",
304
- "reason": "Update Lookup Table changes existing Mixpanel state or removes it.",
305
- "schemaDigest": "sha256:ef28f1ec9c9484a7a53b5e2b6659e70f79a8e71e55bda17025aa4ab3c23b6a63",
306
- },
307
- "Create-Metric": {
308
- "verdict": "write",
309
- "reason": "Create Metric creates or appends Mixpanel state; it has side effects.",
310
- "schemaDigest": "sha256:315766d0c197d87bb44aedd16732f6e69fbfc93661d1fcfc177cadc1751f26ce",
311
- },
312
- "Update-Metric": {
313
- "verdict": "destructive",
314
- "reason": "Update Metric changes existing Mixpanel state or removes it.",
315
- "schemaDigest": "sha256:739bb6abdab19282afd4a6644a96183daabe9098a5322c44a77b840608a5ee9d",
316
- },
317
- "Create-Experiment": {
318
- "verdict": "write",
319
- "reason": "Create Experiment creates or appends Mixpanel state; it has side effects.",
320
- "schemaDigest": "sha256:1cfc2edeb2ac2d329a531d2095671a0653ab5b94b9e233b34268ff29a48c5ac5",
321
- },
322
- "Update-Experiment": {
323
- "verdict": "destructive",
324
- "reason": "Update Experiment changes existing Mixpanel state or removes it.",
325
- "schemaDigest": "sha256:3ea3902555c146f45127fc563b36ffb7ff04b7594765dac9ae98cc09dc432808",
326
- },
327
- "Create-Feature-Flag": {
328
- "verdict": "write",
329
- "reason": "Create Feature Flag creates or appends Mixpanel state; it has side effects.",
330
- "schemaDigest": "sha256:3460d11d726727349cac62db5c19915ab589b7f1d8387042f0a3783356b252c4",
331
- },
332
- "Update-Feature-Flag": {
333
- "verdict": "destructive",
334
- "reason": "Update Feature Flag changes existing Mixpanel state or removes it.",
335
- "schemaDigest": "sha256:9b34b19164168938d08a75d268c9becf8d189c85a1789a45061ae304041faf7c",
336
- },
337
- "Fill-Event-Metadata": {
338
- "verdict": "destructive",
339
- "reason": "Applies generated names and descriptions to existing Lexicon events.",
340
- "schemaDigest": "sha256:53accc988f216bdd5d7a259d731f6df82549e4e6146b191f1815a0d1a72a1abe",
341
- },
342
- },
343
- };
344
- const REGION_COPY = {
345
- us: "US",
346
- eu: "EU",
347
- in: "India",
348
- };
349
- function usageGuide(purpose, region, instructions) {
350
- const accountInstructions = instructions?.trim();
351
- // Leads the guide because discovery summarizes a connector by its first
352
- // content line. A project lives in exactly one residency, so a question
353
- // pointed at the wrong region does not return fewer rows — it returns
354
- // nothing, and reads as the project having no data.
355
- const regionNote = `${REGION_COPY[region]}-residency connection: bound to Mixpanel's ${region}${skill.fragments.guide_0}`;
356
- return `# Mixpanel usage
357
-
358
- ${regionNote}
359
-
360
- Account purpose: ${purpose}${skill.fragments.guide_1}${accountInstructions ? `\n## ${skill.instructionsHeading}\n\n${accountInstructions}\n` : ""}`;
361
- }
362
- /** The closed options mixpanel() accepts; see `assertKnownOptions`. */
363
- const MIXPANEL_OPTIONS = variants("via", {
364
- mcp: optionsOf()({
365
- ...PROVIDER_COMMON,
366
- ...keys("region", "via"),
367
- auth: REMOTE_MCP_AUTH,
368
- }).shape,
369
- api: optionsOf()({
370
- ...PROVIDER_COMMON,
371
- ...keys("region", "via", "defaultProjectId"),
372
- auth: variants("type", { credential: optionsOf()(keys("type")).shape }),
373
- }).shape,
374
- }, "mcp");
375
- /** Mixpanel hosted MCP by default, or service-account REST with via: "api". */
376
- export const mixpanel = defineProvider({
377
- name: "mixpanel",
378
- title: "Mixpanel",
379
- kind: "dual",
380
- readme: "Mixpanel",
381
- bundle: {
382
- baselineGzip: 205500,
383
- maxGzip: 265500,
384
- 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.",
385
- },
386
- skill,
387
- options: MIXPANEL_OPTIONS,
388
- classify: MIXPANEL_CLASSIFICATION,
389
- create: (id, options, provider) => {
390
- const region = options.region ?? "us";
391
- if (!Object.hasOwn(MIXPANEL_MCP_ENDPOINTS, region)) {
392
- throw new Error('region must be "us", "eu", or "in".');
393
- }
394
- return options.via === "api" ? mixpanelApi(id, options, provider) : mixpanelConnector(id, options, provider);
395
- },
396
- });
397
- function mixpanelConnector(id, options, provider) {
398
- const purpose = options.purpose.trim();
399
- const region = options.region ?? "us";
400
- if (!(region in MIXPANEL_MCP_ENDPOINTS)) {
401
- throw new Error(`mixpanel("${id}") region must be "us", "eu", or "in".`);
402
- }
403
- const connector = remoteMcp(id, {
404
- url: MIXPANEL_MCP_ENDPOINTS[region],
405
- ...provider.connectorOptions,
406
- // The region rides the title because browse-time discovery renders the
407
- // title and the guide summary and nothing else, and residency is the fact
408
- // an agent must not get wrong between two Mixpanel connections.
409
- title: options.title ?? `Mixpanel (${region})`,
410
- description: `Mixpanel product analytics (${REGION_COPY[region]} residency) — ${purpose}`,
411
- // Mixpanel's beta service-account scheme is deliberately not ordinary HTTP
412
- // Basic: the endpoint wants `Bearer Basic <base64(user:secret)>`. The
413
- // operator therefore pastes the pair, not an encoded blob, and Connecta
414
- // does the framing — the same shaping the maintainer drift check applies.
415
- auth: withCredentialDefaults(options.auth ?? { type: "oauth" }, {
416
- credential: {
417
- label: "Service account",
418
- 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.",
419
- placeholder: "username:secret",
420
- },
421
- scheme: "Bearer Basic",
422
- }),
423
- requireHttps: true,
424
- classify: provider.classify,
425
- usageGuide: {
426
- content: usageGuide(purpose, region, options.instructions),
427
- // Explicit rather than derived: the derived summary would truncate the
428
- // residency note mid-sentence at 120 characters
429
- // ([#342](https://github.com/zackbart/connecta/issues/342)).
430
- summary: `${REGION_COPY[region]} residency. Project scoping, id resolution, query-schema-first analysis, plan-gated catalog.`,
431
- // Not `required`. Mixpanel's own schemas describe each call; the guide
432
- // carries the project-then-context sequence, which is worth reading
433
- // before an analysis rather than before every call.
434
- },
435
- });
436
- return connector;
437
- }
438
- function mixpanelApi(id, options, provider) {
439
- if (options.auth?.type !== "credential")
440
- throw new Error('via: "api" requires auth: { type: "credential" }.');
441
- if (options.defaultProjectId !== undefined &&
442
- (!Number.isSafeInteger(options.defaultProjectId) || options.defaultProjectId < 1)) {
443
- throw new Error("defaultProjectId must be a positive safe integer.");
444
- }
445
- const region = options.region ?? "us";
446
- const rest = mixpanelRest(region, options.defaultProjectId);
447
- const instructions = options.instructions?.trim();
448
- return apiConnector(id, {
449
- ...provider.connectorOptions,
450
- title: options.title ?? `Mixpanel API (${region})`,
451
- description: `Mixpanel service-account REST APIs (${region} residency): ${options.purpose}`,
452
- credential: {
453
- label: "Mixpanel service account",
454
- description: "username:secret from Mixpanel organization settings. Import requires Owner or Admin on the target project.",
455
- placeholder: "username:secret",
456
- },
457
- testCredential: rest.testCredential,
458
- callAdmission: options.callAdmission === undefined ? MIXPANEL_API_ADMISSION : options.callAdmission,
459
- usageGuide: {
460
- 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` : ""}`,
461
- summary: `${REGION_COPY[region]} residency, service-account REST. Raw export, user activity, profiles, reports and event import.`,
462
- required: true,
463
- },
464
- tools: rest.tools,
465
- });
466
- }
467
- /** @deprecated Read `mixpanel.definition.classify` instead. Kept for existing imports. */
468
- 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
- };