@zackbart/connecta 0.34.1 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/CHANGELOG.md +418 -0
  2. package/README.md +65 -105
  3. package/SECURITY.md +3 -2
  4. package/bin/connecta.mjs +41 -16
  5. package/bin/version.mjs +1 -1
  6. package/dist/access-tokens.d.ts +2 -1
  7. package/dist/access-tokens.js +66 -30
  8. package/dist/activity.d.ts +1 -1
  9. package/dist/activity.js +2 -0
  10. package/dist/agent-config.d.ts +23 -0
  11. package/dist/agent-config.js +59 -0
  12. package/dist/agent-description.js +16 -0
  13. package/dist/agent-identity.js +4 -4
  14. package/dist/agent-observation.js +39 -0
  15. package/dist/auth/clerk-sdk/client.d.ts +2 -0
  16. package/dist/auth/clerk-sdk/generated.js +554 -563
  17. package/dist/auth/clerk-transport.js +70 -3
  18. package/dist/auth/clerk.d.ts +13 -0
  19. package/dist/auth/clerk.js +653 -246
  20. package/dist/auth/cloudflare-access.js +46 -42
  21. package/dist/auth/downstream-client-metadata.js +2 -2
  22. package/dist/auth/downstream-oauth.js +2044 -1161
  23. package/dist/auth/downstream-revocation.js +88 -88
  24. package/dist/auth/native-call.js +20 -0
  25. package/dist/auth/native.js +184 -0
  26. package/dist/auth/oauth-start-reset.js +11 -5
  27. package/dist/auth/oauth-token-response.js +121 -102
  28. package/dist/auth/oauth-v2-migration.js +97 -78
  29. package/dist/auth/renewable-grant.js +10 -0
  30. package/dist/auth/static-oauth.js +751 -281
  31. package/dist/auth/vercel-agent.js +266 -0
  32. package/dist/auth-admission.js +204 -0
  33. package/dist/auth-elicitation.js +350 -241
  34. package/dist/authorization-handoff.js +164 -90
  35. package/dist/call-admission-context.js +3 -10
  36. package/dist/call-admission.js +2 -0
  37. package/dist/call-classification.js +9 -0
  38. package/dist/call-recovery.js +32 -13
  39. package/dist/canonical-json.js +8 -0
  40. package/dist/catalog-cache.js +369 -213
  41. package/dist/catalog-service.js +659 -530
  42. package/dist/catalog.js +5 -1
  43. package/dist/concurrency.js +0 -25
  44. package/dist/config-defaults.d.ts +1 -0
  45. package/dist/config-defaults.js +1 -0
  46. package/dist/config-schema.d.ts +3 -1
  47. package/dist/config-schema.js +13 -3
  48. package/dist/config.d.ts +40 -6
  49. package/dist/config.js +40 -26
  50. package/dist/connector-caller.d.ts +4 -0
  51. package/dist/connector-caller.js +17 -4
  52. package/dist/connectors/api-connector.d.ts +29 -7
  53. package/dist/connectors/api-connector.js +145 -57
  54. package/dist/connectors/guarded-fetch.d.ts +51 -17
  55. package/dist/connectors/guarded-fetch.js +215 -121
  56. package/dist/connectors/negotiation-cache.js +20 -10
  57. package/dist/connectors/remote-mcp.d.ts +10 -30
  58. package/dist/connectors/remote-mcp.js +955 -563
  59. package/dist/d1.js +10 -243
  60. package/dist/derived-context.js +5 -0
  61. package/dist/describe-config.d.ts +3 -1
  62. package/dist/describe-config.js +2 -0
  63. package/dist/downstream-input.js +347 -260
  64. package/dist/errors.d.ts +87 -6
  65. package/dist/errors.js +114 -4
  66. package/dist/execute.js +87 -50
  67. package/dist/executor-admission.js +3 -0
  68. package/dist/executors/quickjs.js +163 -112
  69. package/dist/guarded-transport.js +50 -0
  70. package/dist/guest-runtime.js +1 -1
  71. package/dist/http/client.js +439 -0
  72. package/dist/http/errors.js +558 -0
  73. package/dist/http/fields.js +49 -0
  74. package/dist/http/hatch-paging.js +318 -0
  75. package/dist/http/hatch.js +1279 -0
  76. package/dist/http/json-schema.js +267 -0
  77. package/dist/http/node-transport.js +241 -0
  78. package/dist/http/oauth.js +162 -0
  79. package/dist/http/paging.js +227 -0
  80. package/dist/http/provider.js +221 -0
  81. package/dist/http/safety.js +82 -0
  82. package/dist/http/services.js +79 -0
  83. package/dist/http/tools.js +379 -0
  84. package/dist/http/vendor-index.js +138 -0
  85. package/dist/http/vendor.js +448 -0
  86. package/dist/http/write-request.js +66 -0
  87. package/dist/http-policy.d.ts +11 -0
  88. package/dist/http-policy.js +45 -0
  89. package/dist/inbound-credential.js +1 -1
  90. package/dist/index.d.ts +2 -2
  91. package/dist/index.js +4 -0
  92. package/dist/invocation-auth.js +30 -19
  93. package/dist/invocation.js +218 -85
  94. package/dist/mcp-result.js +0 -4
  95. package/dist/membership.d.ts +4 -0
  96. package/dist/meta-output.js +1 -1
  97. package/dist/meta-tools.js +531 -406
  98. package/dist/native-recovery.js +52 -0
  99. package/dist/native-tools.js +382 -0
  100. package/dist/node.d.ts +4 -3
  101. package/dist/node.js +45 -8
  102. package/dist/oauth-handoff.js +177 -104
  103. package/dist/oauth-partition.js +6 -20
  104. package/dist/oauth-sealing.js +6 -7
  105. package/dist/operation-vocabulary.js +101 -0
  106. package/dist/operator-record.d.ts +2 -2
  107. package/dist/operator-record.js +17 -4
  108. package/dist/operator-ui/contract.d.ts +8 -3
  109. package/dist/operator-ui/generated.js +4 -4
  110. package/dist/operator-ui/model.d.ts +2 -3
  111. package/dist/program-writes.js +47 -26
  112. package/dist/provider-call-facts.d.ts +115 -0
  113. package/dist/provider-call-facts.js +182 -0
  114. package/dist/provider-call.d.ts +112 -0
  115. package/dist/provider-call.js +271 -0
  116. package/dist/provider.d.ts +65 -31
  117. package/dist/provider.js +116 -39
  118. package/dist/providers/_shared/google/hatch.js +91 -0
  119. package/dist/providers/_shared/google/kit.js +427 -0
  120. package/dist/providers/_shared/google/result-size.js +15 -2
  121. package/dist/providers/_shared/google/service-account.d.ts +2 -1
  122. package/dist/providers/_shared/google/service-account.js +8 -4
  123. package/dist/providers/_shared/google/workspace.d.ts +6 -210
  124. package/dist/providers/_shared/google/workspace.js +6 -425
  125. package/dist/providers/_shared/rest/compact-index.js +86 -0
  126. package/dist/providers/_shared/rest/kit.js +146 -0
  127. package/dist/providers/_shared/rest/operation-index.js +230 -14
  128. package/dist/providers/_shared/rest/response-media.js +11 -0
  129. package/dist/providers/_shared/rest/value-safety.js +353 -195
  130. package/dist/providers/_shared/sensitive-fields.js +27 -0
  131. package/dist/providers/breeze/api.js +584 -0
  132. package/dist/providers/breeze/index.d.ts +1 -3
  133. package/dist/providers/breeze/index.js +67 -1420
  134. package/dist/providers/breeze/openapi.generated.js +60 -0
  135. package/dist/providers/breeze/skill.generated.js +2 -6
  136. package/dist/providers/breeze/tools.js +696 -0
  137. package/dist/providers/ccb/api.js +496 -0
  138. package/dist/providers/ccb/index.d.ts +15 -37
  139. package/dist/providers/ccb/index.js +77 -1702
  140. package/dist/providers/ccb/lib/constants.d.ts +34 -0
  141. package/dist/providers/ccb/lib/constants.js +74 -0
  142. package/dist/providers/ccb/lib/guide.js +9 -0
  143. package/dist/providers/ccb/lib/verdicts.js +387 -0
  144. package/dist/providers/ccb/openapi.generated.js +397 -0
  145. package/dist/providers/ccb/safety.js +295 -0
  146. package/dist/providers/ccb/skill.generated.js +2 -6
  147. package/dist/providers/ccb/tools.js +853 -0
  148. package/dist/providers/cloudflare/api.js +1066 -0
  149. package/dist/providers/cloudflare/index.d.ts +5 -22
  150. package/dist/providers/cloudflare/index.js +79 -197
  151. package/dist/providers/cloudflare/lib/config.d.ts +16 -0
  152. package/dist/providers/cloudflare/lib/config.js +2 -0
  153. package/dist/providers/cloudflare/lib/discovery.js +29 -0
  154. package/dist/providers/cloudflare/{graphql.js → lib/graphql.js} +1 -1
  155. package/dist/providers/cloudflare/lib/hatch.js +103 -0
  156. package/dist/providers/cloudflare/lib/path-bounds.js +28 -0
  157. package/dist/providers/cloudflare/lib/response-media.js +75 -0
  158. package/dist/providers/cloudflare/openapi.generated.js +4 -3
  159. package/dist/providers/cloudflare/{value-safety.js → safety.js} +487 -0
  160. package/dist/providers/cloudflare/skill.generated.js +2 -10
  161. package/dist/providers/cloudflare/tools.js +360 -0
  162. package/dist/providers/docs/api.js +51 -0
  163. package/dist/providers/docs/index.d.ts +1 -12
  164. package/dist/providers/docs/index.js +53 -1165
  165. package/dist/providers/docs/lib/constants.d.ts +18 -0
  166. package/dist/providers/docs/lib/constants.js +18 -0
  167. package/dist/providers/docs/lib/discovery.js +26 -0
  168. package/dist/providers/docs/lib/requests.js +48 -0
  169. package/dist/providers/docs/lib/schemas.js +168 -0
  170. package/dist/providers/docs/openapi.generated.js +16 -0
  171. package/dist/providers/docs/safety.js +54 -0
  172. package/dist/providers/docs/skill.generated.js +2 -6
  173. package/dist/providers/docs/tools.js +801 -0
  174. package/dist/providers/drive/api.js +177 -0
  175. package/dist/providers/drive/index.d.ts +1 -12
  176. package/dist/providers/drive/index.js +38 -1448
  177. package/dist/providers/drive/lib/constants.d.ts +6 -0
  178. package/dist/providers/drive/lib/constants.js +6 -0
  179. package/dist/providers/drive/lib/contracts.js +532 -0
  180. package/dist/providers/drive/lib/hatch.js +197 -0
  181. package/dist/providers/drive/openapi.generated.js +77 -0
  182. package/dist/providers/drive/safety.js +90 -0
  183. package/dist/providers/drive/skill.generated.js +2 -6
  184. package/dist/providers/drive/tools.js +1290 -0
  185. package/dist/providers/forms/api.js +71 -0
  186. package/dist/providers/forms/index.d.ts +1 -12
  187. package/dist/providers/forms/index.js +49 -1145
  188. package/dist/providers/forms/lib/constants.d.ts +14 -0
  189. package/dist/providers/forms/lib/constants.js +19 -0
  190. package/dist/providers/forms/lib/hatch.js +72 -0
  191. package/dist/providers/forms/openapi.generated.js +23 -0
  192. package/dist/providers/forms/safety.js +34 -0
  193. package/dist/providers/forms/skill.generated.js +2 -8
  194. package/dist/providers/forms/tools.js +1023 -0
  195. package/dist/providers/github/api.js +150 -0
  196. package/dist/providers/github/index.d.ts +4 -5
  197. package/dist/providers/github/index.js +30 -87
  198. package/dist/providers/github/{auth.d.ts → lib/auth.d.ts} +5 -3
  199. package/dist/providers/github/{auth.js → lib/auth.js} +40 -43
  200. package/dist/providers/github/lib/discovery.js +132 -0
  201. package/dist/providers/github/lib/operations.js +58 -0
  202. package/dist/providers/github/{scope.d.ts → lib/scope.d.ts} +2 -0
  203. package/dist/providers/github/{scope.js → lib/scope.js} +25 -1
  204. package/dist/providers/github/openapi.generated.js +1216 -0
  205. package/dist/providers/github/safety.js +216 -0
  206. package/dist/providers/github/skill.generated.js +2 -5
  207. package/dist/providers/github/tools.js +506 -0
  208. package/dist/providers/gmail/api.js +114 -0
  209. package/dist/providers/gmail/index.d.ts +1 -12
  210. package/dist/providers/gmail/index.js +73 -1621
  211. package/dist/providers/gmail/lib/constants.d.ts +13 -0
  212. package/dist/providers/gmail/lib/constants.js +16 -0
  213. package/dist/providers/gmail/lib/index.js +173 -0
  214. package/dist/providers/gmail/lib/schemas.js +176 -0
  215. package/dist/providers/gmail/lib/threading.js +120 -0
  216. package/dist/providers/gmail/openapi.generated.js +92 -0
  217. package/dist/providers/gmail/safety.js +21 -0
  218. package/dist/providers/gmail/skill.generated.js +2 -6
  219. package/dist/providers/gmail/tools.js +1435 -0
  220. package/dist/providers/overflow/api.js +1008 -0
  221. package/dist/providers/overflow/index.d.ts +1 -17
  222. package/dist/providers/overflow/index.js +60 -1488
  223. package/dist/providers/overflow/skill.generated.js +2 -5
  224. package/dist/providers/overflow/tools.js +873 -0
  225. package/dist/providers/planning-center/api.js +467 -0
  226. package/dist/providers/planning-center/index.d.ts +4 -35
  227. package/dist/providers/planning-center/index.js +69 -2445
  228. package/dist/providers/planning-center/lib/constants.d.ts +58 -0
  229. package/dist/providers/planning-center/lib/constants.js +83 -0
  230. package/dist/providers/planning-center/lib/discovery.js +40 -0
  231. package/dist/providers/planning-center/lib/guide.js +39 -0
  232. package/dist/providers/planning-center/lib/json-api.js +83 -0
  233. package/dist/providers/planning-center/lib/verdicts.js +1758 -0
  234. package/dist/providers/planning-center/openapi.generated.js +1764 -0
  235. package/dist/providers/planning-center/safety.js +188 -0
  236. package/dist/providers/planning-center/skill.generated.js +2 -27
  237. package/dist/providers/planning-center/tools.js +1010 -0
  238. package/dist/providers/quickbooks/api.js +299 -0
  239. package/dist/providers/quickbooks/index.d.ts +13 -0
  240. package/dist/providers/quickbooks/index.js +93 -0
  241. package/dist/providers/quickbooks/lib/query.js +118 -0
  242. package/dist/providers/quickbooks/lib/writes.js +168 -0
  243. package/dist/providers/quickbooks/safety.js +222 -0
  244. package/dist/providers/quickbooks/skill.generated.js +5 -0
  245. package/dist/providers/quickbooks/tools.js +117 -0
  246. package/dist/providers/sheets/api.js +133 -0
  247. package/dist/providers/sheets/index.d.ts +4 -16
  248. package/dist/providers/sheets/index.js +61 -1172
  249. package/dist/providers/sheets/lib/constants.d.ts +14 -0
  250. package/dist/providers/sheets/lib/constants.js +14 -0
  251. package/dist/providers/sheets/lib/hatch.js +163 -0
  252. package/dist/providers/sheets/lib/requests.js +105 -0
  253. package/dist/providers/sheets/lib/schemas.js +138 -0
  254. package/dist/providers/sheets/openapi.generated.js +30 -0
  255. package/dist/providers/sheets/safety.js +27 -0
  256. package/dist/providers/sheets/skill.generated.js +2 -7
  257. package/dist/providers/sheets/tools.js +733 -0
  258. package/dist/providers/slides/api.js +147 -0
  259. package/dist/providers/slides/index.d.ts +2 -10
  260. package/dist/providers/slides/index.js +48 -2555
  261. package/dist/providers/slides/lib/constants.d.ts +11 -0
  262. package/dist/providers/slides/lib/constants.js +11 -0
  263. package/dist/providers/slides/lib/requests.js +60 -0
  264. package/dist/providers/slides/lib/schemas.js +565 -0
  265. package/dist/providers/slides/openapi.generated.js +18 -0
  266. package/dist/providers/slides/skill.generated.js +2 -6
  267. package/dist/providers/slides/tools.js +1968 -0
  268. package/dist/providers/stripe/api.js +401 -0
  269. package/dist/providers/stripe/index.d.ts +5 -27
  270. package/dist/providers/stripe/index.js +74 -210
  271. package/dist/providers/stripe/lib/config.d.ts +4 -0
  272. package/dist/providers/stripe/lib/config.js +2 -0
  273. package/dist/providers/stripe/openapi.generated.js +4 -3
  274. package/dist/providers/stripe/{value-safety.js → safety.js} +5 -5
  275. package/dist/providers/stripe/skill.generated.js +2 -11
  276. package/dist/providers/stripe/tools.js +77 -0
  277. package/dist/providers/tithely/api.js +531 -0
  278. package/dist/providers/tithely/index.d.ts +17 -0
  279. package/dist/providers/tithely/index.js +86 -965
  280. package/dist/providers/tithely/skill.generated.js +2 -5
  281. package/dist/providers/tithely/tools.js +426 -0
  282. package/dist/providers/vercel/api.js +551 -0
  283. package/dist/providers/vercel/index.d.ts +9 -25
  284. package/dist/providers/vercel/index.js +65 -260
  285. package/dist/providers/vercel/lib/config.d.ts +2 -0
  286. package/dist/providers/vercel/lib/config.js +2 -0
  287. package/dist/providers/vercel/lib/index.js +117 -0
  288. package/dist/providers/vercel/lib/logs.js +100 -0
  289. package/dist/providers/vercel/lib/pin.js +270 -0
  290. package/dist/providers/vercel/openapi.generated.js +10 -5
  291. package/dist/providers/vercel/{value-safety.js → safety.js} +247 -38
  292. package/dist/providers/vercel/skill.generated.js +2 -7
  293. package/dist/providers/vercel/tools.js +642 -0
  294. package/dist/redaction-identity.js +47 -0
  295. package/dist/redaction-marker.js +125 -0
  296. package/dist/registry.d.ts +21 -15
  297. package/dist/registry.js +409 -376
  298. package/dist/routes/access-tokens.js +1 -1
  299. package/dist/routes/actor-labels.js +1 -1
  300. package/dist/routes/connect.js +1 -1
  301. package/dist/routes/dispatch.js +103 -0
  302. package/dist/routes/mcp.js +170 -79
  303. package/dist/routes/oauth.js +6 -1
  304. package/dist/routes/operator.js +2 -2
  305. package/dist/routes/shared.d.ts +5 -4
  306. package/dist/routes/shared.js +244 -177
  307. package/dist/routes/skills.js +10 -8
  308. package/dist/routes/ui-config.js +27 -3
  309. package/dist/routes/ui-data.js +21 -20
  310. package/dist/routes/ui.js +1 -1
  311. package/dist/runtime/call-admission.js +0 -26
  312. package/dist/runtime/call-entry.js +30 -0
  313. package/dist/runtime/call.js +552 -0
  314. package/dist/runtime/connector-scope.js +7 -0
  315. package/dist/runtime/credential-probe.js +34 -0
  316. package/dist/runtime/executor.js +40 -0
  317. package/dist/runtime/native-storage.js +63 -0
  318. package/dist/runtime/registry.js +27 -0
  319. package/dist/runtime/request-scope.js +72 -0
  320. package/dist/runtime/run.js +15 -7
  321. package/dist/runtime/shared-read.js +34 -5
  322. package/dist/runtime/storage.js +34 -21
  323. package/dist/sent-secrets.d.ts +194 -37
  324. package/dist/sent-secrets.js +1743 -340
  325. package/dist/server.js +5 -56
  326. package/dist/skills.js +322 -223
  327. package/dist/sqlite.js +15 -14
  328. package/dist/storage/d1-copy.js +255 -0
  329. package/dist/storage/d1-driver.js +15 -0
  330. package/dist/storage/keys.js +28 -0
  331. package/dist/storage/sql-driver.js +88 -0
  332. package/dist/storage/sql-native.js +544 -0
  333. package/dist/storage/sql-schema.d.ts +6 -0
  334. package/dist/storage/sql-schema.js +15 -0
  335. package/dist/storage/sql.d.ts +14 -20
  336. package/dist/storage/sql.js +29 -535
  337. package/dist/timeout.js +0 -26
  338. package/dist/tool-safety.js +20 -10
  339. package/dist/types.d.ts +9 -109
  340. package/dist/ui.d.ts +1 -1
  341. package/dist/ui.js +0 -1
  342. package/dist/upward.js +3 -0
  343. package/dist/usage-guide.js +3 -1
  344. package/dist/validate.d.ts +4 -2
  345. package/dist/validate.js +86 -9
  346. package/dist/version.d.ts +1 -1
  347. package/dist/version.js +1 -1
  348. package/dist/worker.js +312 -292
  349. package/dist/workspace-subject.js +5 -1
  350. package/dist/write-outcome.js +454 -34
  351. package/documentation/README.md +28 -7
  352. package/documentation/architecture.md +2409 -255
  353. package/documentation/auth.md +867 -114
  354. package/documentation/code-mode.md +49 -16
  355. package/documentation/deploying.md +164 -20
  356. package/documentation/hosted-mcp-migration.md +460 -0
  357. package/documentation/integrating.md +129 -144
  358. package/documentation/meta-tools.md +409 -32
  359. package/documentation/operating.md +27 -3
  360. package/documentation/operator-tests.md +3 -0
  361. package/documentation/operator-ui.md +84 -48
  362. package/documentation/provider-auth-migration.md +16 -63
  363. package/documentation/provider-migration-0.29.md +10 -5
  364. package/documentation/provider-migration-0.35.md +975 -0
  365. package/documentation/providers.md +1347 -0
  366. package/examples/worker/AGENTS.md +23 -9
  367. package/examples/worker/README.md +254 -135
  368. package/examples/worker/alchemy.run.ts +116 -0
  369. package/examples/worker/gitignore +10 -0
  370. package/examples/worker/src/connecta.config.ts +23 -21
  371. package/examples/worker/wrangler.jsonc +14 -5
  372. package/guides/connecting-agents.md +157 -0
  373. package/guides/how-it-works.md +156 -0
  374. package/guides/safety-and-trust.md +153 -0
  375. package/package.json +30 -50
  376. package/templates/node/.env.example +3 -0
  377. package/templates/node/README.md +22 -2
  378. package/templates/node/docker-compose.yml +1 -0
  379. package/templates/node/package.json +3 -2
  380. package/templates/node/src/connecta.config.ts +8 -0
  381. package/dist/catalog-drift.d.ts +0 -138
  382. package/dist/catalog-drift.js +0 -578
  383. package/dist/operator-ui/agents.d.ts +0 -74
  384. package/dist/operator-ui/agents.js +0 -104
  385. package/dist/operator-ui/config-summary.js +0 -565
  386. package/dist/operator-ui/connection-map.js +0 -376
  387. package/dist/operator-ui/endpoints.js +0 -221
  388. package/dist/operator-ui/fix-prompts.d.ts +0 -18
  389. package/dist/operator-ui/fix-prompts.js +0 -87
  390. package/dist/operator-ui/health.js +0 -52
  391. package/dist/operator-ui/member-page.js +0 -97
  392. package/dist/operator-ui/overview.js +0 -123
  393. package/dist/operator-ui/setup-commands.js +0 -51
  394. package/dist/operator-ui/view.d.ts +0 -401
  395. package/dist/operator-ui/view.js +0 -705
  396. package/dist/providers/_shared/request-token.js +0 -83
  397. package/dist/providers/_shared/rest/dispatch.js +0 -41
  398. package/dist/providers/_shared/rest/operation-index.d.ts +0 -133
  399. package/dist/providers/_shared/rest/tools.d.ts +0 -141
  400. package/dist/providers/_shared/rest/tools.js +0 -569
  401. package/dist/providers/_shared/rest/value-safety.d.ts +0 -201
  402. package/dist/providers/basecamp/index.d.ts +0 -45
  403. package/dist/providers/basecamp/index.js +0 -997
  404. package/dist/providers/basecamp/skill.generated.js +0 -9
  405. package/dist/providers/cloudflare/rest.d.ts +0 -37
  406. package/dist/providers/cloudflare/rest.js +0 -1097
  407. package/dist/providers/github/hosted.js +0 -218
  408. package/dist/providers/github/rest.js +0 -321
  409. package/dist/providers/infisical/index.d.ts +0 -7
  410. package/dist/providers/infisical/index.js +0 -713
  411. package/dist/providers/infisical/skill.generated.js +0 -8
  412. package/dist/providers/intercom/index.d.ts +0 -24
  413. package/dist/providers/intercom/index.js +0 -121
  414. package/dist/providers/intercom/skill.generated.js +0 -8
  415. package/dist/providers/linear/index.d.ts +0 -55
  416. package/dist/providers/linear/index.js +0 -537
  417. package/dist/providers/linear/skill.generated.js +0 -8
  418. package/dist/providers/mixpanel/index.d.ts +0 -59
  419. package/dist/providers/mixpanel/index.js +0 -472
  420. package/dist/providers/mixpanel/operations.js +0 -20
  421. package/dist/providers/mixpanel/rest.js +0 -603
  422. package/dist/providers/mixpanel/skill.generated.js +0 -10
  423. package/dist/providers/mixpanel/value-safety.js +0 -16
  424. package/dist/providers/notion/index.d.ts +0 -67
  425. package/dist/providers/notion/index.js +0 -368
  426. package/dist/providers/notion/openapi.generated.js +0 -75
  427. package/dist/providers/notion/rest.d.ts +0 -24
  428. package/dist/providers/notion/rest.js +0 -1226
  429. package/dist/providers/notion/skill.generated.js +0 -11
  430. package/dist/providers/notion/value-safety.js +0 -56
  431. package/dist/providers/revenuecat/index.d.ts +0 -51
  432. package/dist/providers/revenuecat/index.js +0 -697
  433. package/dist/providers/revenuecat/skill.generated.js +0 -11
  434. package/dist/providers/stripe/rest.d.ts +0 -14
  435. package/dist/providers/stripe/rest.js +0 -402
  436. package/dist/providers/vercel/rest.d.ts +0 -20
  437. package/dist/providers/vercel/rest.js +0 -1020
  438. package/dist/providers/wispr-flow/index.d.ts +0 -14
  439. package/dist/providers/wispr-flow/index.js +0 -117
  440. package/dist/providers/wispr-flow/skill.generated.js +0 -8
  441. /package/dist/providers/github/{key.js → lib/key.js} +0 -0
@@ -1,14 +1,10 @@
1
- import { skill } from "./skill.generated.js";
2
- import { apiConnector } from "../../connectors/api-connector.js";
3
- import { reviewedCatalog } from "../../catalog-drift.js";
4
1
  import { keys, optionsOf, variants } from "../../config-schema.js";
5
- import { defineProvider } from "../../provider.js";
6
- import { byAuth, hostedOAuth } from "../_shared/rest/dispatch.js";
7
- import { restTools } from "../_shared/rest/tools.js";
8
- import { stripeRest } from "./rest.js";
9
- export { STRIPE_API_BASE_URL } from "./rest.js";
10
- /** Stripe publishes one hosted MCP endpoint for every account and mode. */
11
- export const STRIPE_MCP_ENDPOINT = "https://mcp.stripe.com/";
2
+ import { defineApiProvider } from "../../http/provider.js";
3
+ import { authenticate, connectedAccount, MAX_RESPONSE_BYTES, READ_CAP_MS, MODE_COPY, probe, safety, stripeErrors, StripeApi, stripeIndex, stripeBinding, STRIPE_PAGES, STRIPE_VERDICTS, } from "./api.js";
4
+ import { stripeTools } from "./tools.js";
5
+ import { skill } from "./skill.generated.js";
6
+ import { STRIPE_API_BASE_URL } from "./lib/config.js";
7
+ export { STRIPE_API_BASE_URL } from "./lib/config.js";
12
8
  /**
13
9
  * Stripe documents no MCP-specific limit, so these transcribe the account limit
14
10
  * every request spends: 100 requests per second live, 25 in a sandbox. OAuth
@@ -39,221 +35,89 @@ const STRIPE_ADMISSION = {
39
35
  ],
40
36
  },
41
37
  };
42
- /**
43
- * Re-reviewed for #343 against the hosted OAuth catalog and official MCP and
44
- * analytics docs on 2026-10-19 (#703). Digests cover the complete describe
45
- * schemas captured in fixtures.ts, not inferred result shapes. The documented
46
- * get_stripe_account_info remains reviewed without an uncaptured digest.
47
- * This review applies only to hosted OAuth; REST annotates its own tools.
48
- */
49
- const STRIPE_CLASSIFICATION = {
50
- "tools": {
51
- "stripe_api_search": {
52
- "verdict": "read",
53
- "reason": "Searches API method contracts and object records; it does not invoke mutating methods.",
54
- "schemaDigest": "sha256:1fdb44c12347b21b3896250e2a3c88763b54f4cdfe4fff27f7067d004e3097e4",
55
- },
56
- "stripe_api_details": {
57
- "verdict": "read",
58
- "reason": "Reads the parameter contract for an API method; it does not execute that method.",
59
- "schemaDigest": "sha256:a80bf5b685eba9b0cb91df7fa36afac04bcb97a7dcadb3c07bd22f0a4fcc7771",
60
- },
61
- "stripe_api_read": {
62
- "verdict": "read",
63
- "reason": "The vendor restricts this generic tool to HTTP GET; all mutating methods use stripe_api_write.",
64
- "schemaDigest": "sha256:90b15c317384e244a19472d2bffcc0da73a1174f16fd89a7562134a3da5d0d53",
65
- },
66
- "get_stripe_account_info": {
67
- "verdict": "read",
68
- "reason": "Reads metadata for the selected Stripe account; still documented although absent from the observed hosted catalog.",
69
- },
70
- "get_balance_summary": {
71
- "verdict": "read",
72
- "reason": "Retrieves Stripe balance summary information without changing vendor state.",
73
- "schemaDigest": "sha256:857973344e59ca7199bc65e62d5e7198332542339f387b7363626ad752437a11",
74
- },
75
- "list_available_accounts_or_orgs": {
76
- "verdict": "read",
77
- "reason": "Lists accessible accounts with stripe_context and livemode without changing vendor state; verified in the hosted catalog despite omission from public docs.",
78
- "schemaDigest": "sha256:5ed608b204ddf3e117f419a0443db5bdc28783133476e953338f525489dd5626",
79
- },
80
- "manage_stripe_accounts": {
81
- "verdict": "read",
82
- "reason": "Returns a Dashboard reconsent URL; the tool itself does not add accounts, remove accounts, or change permissions.",
83
- "schemaDigest": "sha256:abb66368ed8d461b1106eb2257235a5d836f76906674c44be9ac816b6d509cd4",
84
- },
85
- "search_stripe_documentation": {
86
- "verdict": "read",
87
- "reason": "Searches Stripe reference documentation without accessing payment mutations.",
88
- "schemaDigest": "sha256:18b5d9f565d28bc4786ba1f657a2c291c43f4c9137e4c5ca5fbbf5dd114eae67",
89
- },
90
- "stripe_api_write": {
91
- "verdict": "destructive",
92
- "reason": "Can dispatch POST, PATCH, PUT, or DELETE across the Stripe API, including edits and cancellations.",
93
- "schemaDigest": "sha256:61d1bdc4e6862989c46250bdbea3adfc6169c24dbf6e8b20fc4251108da5c4e7",
94
- },
95
- "convert_currency": {
96
- "verdict": "destructive",
97
- "reason": "Converts existing funds between currencies in a Financial Account, changing balances.",
98
- "schemaDigest": "sha256:5a861f71e41b6c680452a5817d7c67c4a708796a4e0dcf7adbd8c4f89c6c99f8",
99
- },
100
- "send_money": {
101
- "verdict": "destructive",
102
- "reason": "Sends funds to a third-party recipient through an outbound payment or payout link.",
103
- "schemaDigest": "sha256:5415856ee7e5073f3e6ea3280c5f17289449ded3dbb92d4a4ab9b52af1ed3049",
104
- },
105
- "setup_recipient": {
106
- "verdict": "destructive",
107
- "reason": "Creates a recipient account for outbound payments; retain the upstream destructive hint rather than treating setup as a read.",
108
- "schemaDigest": "sha256:75e0bb1003a3a74badab81d4fb76f4a8481b186f7755b0a7ee73f1623b163457",
109
- },
110
- "transfer_money": {
111
- "verdict": "destructive",
112
- "reason": "Moves existing funds between Stripe balances or Financial Accounts.",
113
- "schemaDigest": "sha256:e75be95113883df72577127387cf2a11fae51d2cc01df80a085f4b276bd362d8",
114
- },
115
- "atlas_company_formation": {
116
- "verdict": "destructive",
117
- "reason": "Creates or advances company formation state; list and retrieve actions share this mutating tool boundary.",
118
- "schemaDigest": "sha256:648e1faca5f5ac3dc7018890a336081135842d9418ee6df94dcbd81b7d861694",
119
- },
120
- "stripe_implementation_planner": {
121
- "verdict": "write",
122
- "reason": "Creates or continues provider-side planning state.",
123
- "schemaDigest": "sha256:284dce4e701ab4cb9b9c9fbf61104cae2eab0b9eef1b986f128fc1bbc42ef185",
124
- },
125
- "stripe_analytics": {
126
- "verdict": "write",
127
- "reason": "The hosted schema includes execute_query_run and execute_query_template alongside retrieval; asynchronous query-run creation makes the whole tool a write even though it analyzes existing data.",
128
- "schemaDigest": "sha256:c6b22ff19b5fe2d359b20f99b67591ba74cf504870123711579556b6937916b9",
129
- },
130
- "send_stripe_feedback": {
131
- "verdict": "write",
132
- "reason": "Submits feedback to Stripe, creating provider-side state; replaces send_stripe_mcp_feedback.",
133
- "schemaDigest": "sha256:4ac352f04a8d974bdb56503f4826e7fbc19458e0f0d0c369f17e82d5fb6a7a86",
134
- },
135
- },
136
- };
137
- function instructionsSection(instructions) {
138
- const text = instructions?.trim();
139
- return text ? `\n## ${skill.instructionsHeading}\n\n${text}\n` : "";
140
- }
141
- function oauthUsageGuide(purpose, instructions) {
142
- const { oauth, shared, oauth_limits } = skill.fragments;
143
- return `# Stripe usage
144
-
145
- Scope: live and sandbox accounts. Connector purpose: ${purpose}${oauth}${shared}${oauth_limits}
146
- ${instructionsSection(instructions)}`;
147
- }
148
- const MODE_COPY = {
149
- production: {
150
- title: "Stripe (production)",
151
- blurb: "production — live money and real customers",
152
- warning: "This is a PRODUCTION Stripe connection. Every write moves real money against real customers, and a refund cannot be undone. If a request could plausibly be a rehearsal, route it to a sandbox connector instead.",
153
- rate: "100 requests per second",
154
- },
155
- sandbox: {
156
- title: "Stripe (sandbox)",
157
- blurb: "sandbox — test data, no real money",
158
- warning: "This is a SANDBOX Stripe connection. Nothing here is real money and none of these objects exist in production, so never answer a question about live revenue, payouts, or a named customer from this connector.",
159
- rate: "25 requests per second",
160
- },
161
- };
162
- function keyUsageGuide(mode, purpose, connectedAccount, instructions) {
163
- const copy = MODE_COPY[mode];
164
- const { key, shared, key_limits, key_tail } = skill.fragments;
165
- const connect = connectedAccount
166
- ? `\n\nConnected account: \`${connectedAccount}\`. Every call acts as this Connect account; the platform account's own objects are out of reach here.`
167
- : "";
168
- return `# Stripe usage
169
-
170
- Mode: ${mode}. Connector purpose: ${purpose}
171
-
172
- ${copy.warning}${connect}${key}${shared}${key_limits}${copy.rate}${key_tail}
173
- ${instructionsSection(instructions)}`;
174
- }
175
38
  const COMMON = keys("title", "authScope", "purpose", "instructions", "maxResultBytes", "readOnly");
176
39
  /** The closed options stripe() accepts, selected by `auth.type`; see `assertKnownOptions`. */
177
40
  const STRIPE_OPTIONS = variants(["auth", "type"], {
178
41
  // The never-typed keys stay out of the shape, so the walk refuses them by name.
179
- oauth: optionsOf()({
180
- ...COMMON,
181
- auth: optionsOf()(keys("type")),
182
- }).shape,
42
+ oauth: { ...COMMON, auth: optionsOf()(keys("type")) },
183
43
  apiKey: optionsOf()({
184
44
  ...COMMON,
185
45
  ...keys("mode", "connectedAccount"),
186
46
  auth: optionsOf()(keys("type")),
187
47
  }).shape,
188
- });
189
- function stripeOAuth(id, options, provider) {
190
- return hostedOAuth(id, provider, {
191
- url: STRIPE_MCP_ENDPOINT,
192
- title: options.title ?? "Stripe",
193
- description: `Stripe payments (live and sandbox accounts) — ${options.purpose}`,
194
- callAdmission: STRIPE_ADMISSION.sandbox,
195
- usageGuide: {
196
- content: oauthUsageGuide(options.purpose, options.instructions),
197
- // Explicit rather than derived: OAuth must lead with its account-scoped selector pair.
198
- summary: "Live and sandbox Stripe accounts. List accounts; carry the returned stripe_context and livemode before acting.",
199
- },
200
- });
201
- }
202
- function stripeApiKey(id, options, provider) {
203
- const mode = options.mode;
204
- if (mode !== "production" && mode !== "sandbox") {
205
- throw new Error(`stripe("${id}") requires mode "production" or "sandbox" with apiKey auth.`);
206
- }
207
- let connectedAccount;
208
- if (options.connectedAccount !== undefined) {
209
- connectedAccount = typeof options.connectedAccount === "string" ? options.connectedAccount.trim() : "";
210
- if (!/^acct_[A-Za-z0-9]+$/.test(connectedAccount)) {
211
- throw new Error(`stripe("${id}") connectedAccount must be a Stripe account id ("acct_...").`);
212
- }
213
- }
214
- const copy = MODE_COPY[mode];
215
- const live = mode === "production" ? "live" : "test";
216
- const rest = stripeRest(mode, connectedAccount);
217
- return apiConnector(id, {
218
- ...provider.connectorOptions,
219
- title: options.title ?? copy.title,
220
- description: `Stripe payments (${copy.blurb}) — ${options.purpose}`,
221
- credential: {
222
- label: `Stripe ${live}-mode secret or restricted key`,
223
- description: `A ${live}-mode secret (sk_${live}_…) or restricted (rk_${live}_…) key; prefer a restricted key with only the permissions this connector needs. It is sent only to api.stripe.com and files.stripe.com, stored encrypted, and never displayed.`,
224
- placeholder: `rk_${live}_…`,
225
- },
226
- testCredential: rest.testCredential,
227
- callAdmission: STRIPE_ADMISSION[mode],
228
- usageGuide: {
229
- content: keyUsageGuide(mode, options.purpose, connectedAccount, options.instructions),
230
- // Explicit rather than derived: a key connector must lead with its one mode.
231
- summary: mode === "production"
232
- ? "PRODUCTION: real money. One live-mode key over REST; search operations, read details, then read or write."
233
- : "Sandbox: test data only. One test-mode key over REST; search operations, read details, then read or write.",
234
- },
235
- tools: [...restTools(rest.vendor), ...rest.tools],
236
- });
48
+ }, undefined, ["oauth"]);
49
+ function usageGuide(options) {
50
+ const copy = MODE_COPY[options.mode];
51
+ const account = connectedAccount(options);
52
+ return {
53
+ heading: "Stripe usage",
54
+ summary: options.mode === "production"
55
+ ? "PRODUCTION: real money. One configured live-mode key over REST; resolve ids before acting."
56
+ : "Sandbox: test data only. One configured test-mode key over REST; resolve ids before acting.",
57
+ context: [
58
+ `Mode: ${options.mode}. Connector purpose: ${options.purpose}`,
59
+ copy.warning,
60
+ "This connection's key is already configured and reaches exactly one Stripe account in this mode; there is no account selection or sign-in step.",
61
+ ...(account
62
+ ? [
63
+ `Connected account: ${account}. Every call acts as this Connect account; the platform account's own objects are out of reach here.`,
64
+ ]
65
+ : []),
66
+ ...(options.readOnly === true ? ["This connection is read-only: every write is refused."] : []),
67
+ ],
68
+ required: true,
69
+ };
237
70
  }
238
- /**
239
- * A maintained Stripe connection. `auth` selects the implementation: OAuth
240
- * reaches Stripe's hosted MCP server; an API key reaches Connecta's REST
241
- * connector to `api.stripe.com`.
242
- */
243
- export const stripe = defineProvider({
71
+ export const stripe = defineApiProvider({
244
72
  name: "stripe",
245
73
  title: "Stripe",
246
- kind: "dual",
247
74
  readme: "Stripe",
248
75
  bundle: {
249
- "baselineGzip": 232089,
250
- "maxGzip": 292089,
251
- "note": "./providers/stripe remeasures at 232,089 B gzip (#801), from 170,771 B on main: auth now selects the implementation, so the entry carries the hosted MCP client and Connecta's REST connector (api(), the schema validator, guarded transport, the shared REST module) plus the pinned Stripe operation index (638 operations; request details to depth 2, without descriptions or enums over 50 values; 37,918 B gzip as source). Details were shrunk before the cap moved: the first full index measured 81 KB gzip. The cap uses the existing baseline + 60,000 B policy.",
76
+ baselineGzip: 379663,
77
+ note: "./providers/stripe measures 379,663 B gzip standalone in F3 (#703), Node 22 CI static at 9420933711af5e42bf9d134d1b73bed114a48fa0 (run 39997464724, Run pnpm run check:build). This entry includes the shared Effect provider kit, paid once per deployment; standalone provider sizes are not additive. Provider entries are reported, not capped (#899).",
252
78
  },
253
79
  skill,
254
80
  options: STRIPE_OPTIONS,
255
- classify: STRIPE_CLASSIFICATION,
256
- create: byAuth({ oauth: stripeOAuth, apiKey: stripeApiKey }),
81
+ vendor: StripeApi,
82
+ baseUrl: (options) => {
83
+ connectedAccount(options);
84
+ return STRIPE_API_BASE_URL;
85
+ },
86
+ displayTitle: (options) => MODE_COPY[options.mode].title,
87
+ description: (options) => `Stripe payments (${MODE_COPY[options.mode].blurb}) — ${options.purpose}`,
88
+ maxResponseBytes: MAX_RESPONSE_BYTES,
89
+ idempotencyKey: true,
90
+ timeoutMs: READ_CAP_MS,
91
+ headers: { "Stripe-Version": stripeIndex.version },
92
+ defaultCallAdmission: (options) => STRIPE_ADMISSION[options.mode],
93
+ credential: (options) => {
94
+ const live = options.mode === "production" ? "live" : "test";
95
+ return {
96
+ label: `Stripe ${live}-mode secret or restricted key`,
97
+ description: `A ${live}-mode secret (sk_${live}_…) or restricted (rk_${live}_…) key; prefer a restricted key with only the permissions this connector needs. It is sent only to api.stripe.com and files.stripe.com, stored encrypted, and never displayed.`,
98
+ placeholder: `rk_${live}_…`,
99
+ };
100
+ },
101
+ authenticate,
102
+ safety,
103
+ errors: stripeErrors,
104
+ probe,
105
+ guide: usageGuide,
106
+ hatch: {
107
+ name: "stripe",
108
+ title: "Stripe",
109
+ index: stripeIndex,
110
+ verdicts: STRIPE_VERDICTS,
111
+ named: { "GET /v1/account": "get_stripe_account_info", "GET /v1/balance": "get_balance_summary" },
112
+ pathExample: "/v1/customers/cus_123",
113
+ pages: STRIPE_PAGES,
114
+ pageCursor: "argument",
115
+ binding: stripeBinding,
116
+ idempotency: { header: "Idempotency-Key", methods: ["POST"] },
117
+ notes: () => ({
118
+ read: "Pass page.nextCursor as cursor; starting_after or ending_before record-id anchors are allowed only on the first request, without cursor. v1 parameters use bracketed form encoding; v2 bodies are JSON. Quote PDFs use the confined files origin.",
119
+ write: "POST sends an Idempotency-Key; DELETE sends none. v1 bodies are form-encoded, including nested fields; v2 bodies are JSON. Upload files in the Stripe Dashboard.",
120
+ }),
121
+ },
122
+ tools: stripeTools,
257
123
  });
258
- /** @deprecated Read `stripe.definition.classify` instead. Kept for existing imports. */
259
- export const STRIPE_VETTED_CATALOG = reviewedCatalog(stripe.definition.classify, 'defineProvider("stripe")');
@@ -0,0 +1,4 @@
1
+ /** Which Stripe environment a secret or restricted key reaches. */
2
+ export type StripeMode = "production" | "sandbox";
3
+ /** Stripe's main REST origin. The PDF origin is confined separately. */
4
+ export declare const STRIPE_API_BASE_URL = "https://api.stripe.com";
@@ -0,0 +1,2 @@
1
+ /** Stripe's main REST origin. The PDF origin is confined separately. */
2
+ export const STRIPE_API_BASE_URL = "https://api.stripe.com";