@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,67 +0,0 @@
1
- import type { ConnectorCallAdmissionPolicy } from "../../types.js";
2
- export { NOTION_API_BASE_URL, NOTION_API_VERSION } from "./rest.js";
3
- /** Notion's official hosted MCP endpoint. */
4
- export declare const NOTION_MCP_ENDPOINT = "https://mcp.notion.com/mcp";
5
- interface NotionCommonOptions {
6
- /** Human-readable display name; defaults identify the selected implementation. */
7
- title?: string;
8
- /** Downstream auth ownership. Defaults to one shared deployment grant. */
9
- authScope?: "shared" | "personal";
10
- /** Which workspace this is and what it should be used for. Required. */
11
- purpose: string;
12
- /** Workspace-specific conventions appended to the maintained provider guide. */
13
- instructions?: string;
14
- /** Connector-specific inline result limit; omit to inherit the deployment. */
15
- maxResultBytes?: number;
16
- /** Serve only read-classified tools on every endpoint. Defaults to false. */
17
- readOnly?: boolean;
18
- }
19
- /**
20
- * Notion's official hosted MCP server, acting as the OAuth-authorized user.
21
- * OAuth only: no integration token reaches the hosted endpoint.
22
- */
23
- export interface NotionOAuthOptions extends NotionCommonOptions {
24
- auth: {
25
- type: "oauth";
26
- };
27
- /** Optional per-runtime downstream call-admission policy. */
28
- callAdmission?: ConnectorCallAdmissionPolicy;
29
- /** Refused: the hosted server holds no operator credential. */
30
- credentialLabel?: never;
31
- /** Refused: hosted tools own their own paging. */
32
- defaultPageSize?: never;
33
- }
34
- /**
35
- * Connecta's REST connector to `api.notion.com`, acting as one internal
36
- * integration with an operator-managed token pasted into the connection in
37
- * the operator UI.
38
- */
39
- export interface NotionTokenOptions extends NotionCommonOptions {
40
- auth: {
41
- type: "token";
42
- };
43
- /**
44
- * Per-runtime downstream call-admission policy, replacing the default of
45
- * 180 calls/minute and 3 concurrent. Business and Enterprise allow 600
46
- * requests/minute per connection; all connections share a workspace-wide
47
- * limit. One admitted call can make several HTTP requests.
48
- */
49
- callAdmission?: ConnectorCallAdmissionPolicy;
50
- /** Operator-facing label for the integration token. */
51
- credentialLabel?: string;
52
- /**
53
- * Default `page_size` for the named list tools when the caller omits one.
54
- * Defaults to 25; Notion's maximum is 100.
55
- */
56
- defaultPageSize?: number;
57
- }
58
- /** `auth` selects the implementation: hosted MCP over OAuth, or REST with a token. */
59
- export type NotionOptions = NotionOAuthOptions | NotionTokenOptions;
60
- /**
61
- * A maintained Notion connection. `auth` selects the implementation: OAuth
62
- * reaches Notion's hosted MCP server as the authorizing user; an integration
63
- * token reaches Connecta's REST connector to `api.notion.com` as that bot.
64
- */
65
- export declare const notion: import("../../provider.js").ProviderFactory<NotionOptions>;
66
- /** @deprecated Read `notion.definition.classify` instead. Kept for existing imports. */
67
- export declare const NOTION_MCP_VETTED_CATALOG: import("../../catalog-drift.js").VettedCatalog;
@@ -1,368 +0,0 @@
1
- import { skill } from "./skill.generated.js";
2
- import { apiConnector } from "../../connectors/api-connector.js";
3
- import { reviewedCatalog } from "../../catalog-drift.js";
4
- import { keys, optionsOf, variants } from "../../config-schema.js";
5
- import { CALL_ADMISSION, defineProvider } from "../../provider.js";
6
- import { byAuth, hostedOAuth } from "../_shared/rest/dispatch.js";
7
- import { MAX_PAGE_SIZE, notionRest } from "./rest.js";
8
- export { NOTION_API_BASE_URL, NOTION_API_VERSION } from "./rest.js";
9
- /** Notion's official hosted MCP endpoint. */
10
- export const NOTION_MCP_ENDPOINT = "https://mcp.notion.com/mcp";
11
- /** Lean by default: smaller than Notion's 100 so a first read stays cheap. */
12
- const DEFAULT_PAGE_SIZE = 25;
13
- /**
14
- * Conservative default for every Notion plan: 180 calls per minute, with
15
- * Connecta's concurrency cap of three to bound bursts. Business and Enterprise
16
- * allow 600 requests per minute per connection; all connections also share a
17
- * workspace-wide limit. This policy is per runtime and counts calls rather
18
- * than HTTP requests, since one admitted call can spend many fetches.
19
- */
20
- const NOTION_ADMISSION = {
21
- rules: [
22
- {
23
- maxConcurrency: 3,
24
- budget: { kind: "rolling-window", maxCalls: 180, windowMs: 60_000 },
25
- maxQueueSize: 32,
26
- queueTimeoutMs: 5_000,
27
- retryAfterMs: 1_000,
28
- },
29
- ],
30
- };
31
- function instructionsSection(instructions) {
32
- const text = instructions?.trim();
33
- return text ? `\n## ${skill.instructionsHeading}\n\n${text}\n` : "";
34
- }
35
- /**
36
- * Both guides are marked `required` for one reason: a Notion database is a
37
- * container, and the rows and schema live in a data source inside it. The id
38
- * in a database URL is a database id, and passing it to a query or a row
39
- * create fails — a trap no input schema can teach, so the guide has to.
40
- */
41
- function tokenUsageGuide(purpose, instructions) {
42
- const { key, shared } = skill.fragments;
43
- return `# Notion usage
44
-
45
- Workspace purpose: ${purpose}${key}${shared}${instructionsSection(instructions)}`;
46
- }
47
- function oauthUsageGuide(purpose, instructions) {
48
- const { oauth_head, oauth, shared } = skill.fragments;
49
- return `${oauth_head}${purpose}${oauth}${shared}${instructionsSection(instructions)}`;
50
- }
51
- /**
52
- * Reviewed in #705's provider audit against https://developers.notion.com/guides/mcp/mcp-supported-tools.
53
- * Extended in #814 from the operator's 2026-10-15 hosted catalog capture,
54
- * recorded in mcp-catalog-2026-10-15.md. Includes names absent from the public
55
- * reference and retains reviewed names absent from this client's catalog.
56
- * Annotations were not visible; captured input summaries are not schema
57
- * documents, so no schema digests are asserted.
58
- */
59
- const NOTION_MCP_CLASSIFICATION = {
60
- tools: {
61
- "notion-search": { "verdict": "read", "reason": "Retrieves Notion information without changing vendor state." },
62
- "notion-ai-search": {
63
- "verdict": "read",
64
- "reason": "Legacy AI search, still callable by name; retrieves matching content without changing vendor state.",
65
- },
66
- "notion-get-self": {
67
- "verdict": "read",
68
- "reason": "Returns the connected workspace and user without changing vendor state.",
69
- },
70
- "notion-get-tool-access": {
71
- "verdict": "read",
72
- "reason": "Reads which tools the workspace plan allows; it grants nothing and changes nothing.",
73
- },
74
- "notion-download-skill": {
75
- "verdict": "read",
76
- "reason": "Returns an existing Skill as a signed, expiring archive URL; it changes no workspace state.",
77
- },
78
- "notion-search-skills": {
79
- "verdict": "read",
80
- "reason": "Retrieves Notion skills information without changing vendor state.",
81
- },
82
- "notion-fetch": {
83
- "verdict": "read",
84
- "reason": "Retrieves Notion fetch information without changing vendor state.",
85
- },
86
- "notion-download-attachment": {
87
- "verdict": "read",
88
- "reason": "Reads attachment content; creating uploads and attachments uses separate writes.",
89
- },
90
- "notion-query-data-sources": {
91
- "verdict": "read",
92
- "reason": "Retrieves Notion query data sources information without changing vendor state.",
93
- },
94
- "notion-query-meeting-notes": {
95
- "verdict": "read",
96
- "reason": "Retrieves Notion query meeting notes information without changing vendor state.",
97
- },
98
- "notion-search-agents": {
99
- "verdict": "read",
100
- "reason": "Retrieves Notion agents information without changing vendor state.",
101
- },
102
- "notion-list-agents": {
103
- "verdict": "read",
104
- "reason": "Retrieves Notion agents information without changing vendor state.",
105
- },
106
- "notion-query-sessions": {
107
- "verdict": "read",
108
- "reason": "Retrieves Notion query sessions information without changing vendor state.",
109
- },
110
- "notion-search-sessions": {
111
- "verdict": "read",
112
- "reason": "Retrieves Notion sessions information without changing vendor state.",
113
- },
114
- "notion-get-session-status": {
115
- "verdict": "read",
116
- "reason": "Retrieves Notion session status information without changing vendor state.",
117
- },
118
- "notion-wait-session": {
119
- "verdict": "read",
120
- "reason": "Waits for existing session state; it does not start or message a session.",
121
- },
122
- "notion-list-session-events": {
123
- "verdict": "read",
124
- "reason": "Retrieves Notion session events information without changing vendor state.",
125
- },
126
- "notion-read-session-event": {
127
- "verdict": "read",
128
- "reason": "Retrieves Notion read session event information without changing vendor state.",
129
- },
130
- "notion-get-comments": {
131
- "verdict": "read",
132
- "reason": "Retrieves Notion comments information without changing vendor state.",
133
- },
134
- "notion-get-teams": {
135
- "verdict": "read",
136
- "reason": "Retrieves Notion teams information without changing vendor state.",
137
- },
138
- "notion-get-users": {
139
- "verdict": "read",
140
- "reason": "Retrieves Notion users information without changing vendor state.",
141
- },
142
- "notion-get-async-task": {
143
- "verdict": "read",
144
- "reason": "Retrieves Notion async task information without changing vendor state.",
145
- },
146
- "notion-create-file-upload": { "verdict": "write", "reason": "Allocates upload state for a workspace file." },
147
- "notion-create-attachment": {
148
- "verdict": "write",
149
- "reason": "create attachment creates or appends Notion state; it has side effects.",
150
- },
151
- "notion-create-pages": {
152
- "verdict": "write",
153
- "reason": "create pages creates or appends Notion state; it has side effects.",
154
- },
155
- "notion-duplicate-page": {
156
- "verdict": "write",
157
- "reason": "duplicate page creates or appends Notion state; it has side effects.",
158
- },
159
- "notion-create-database": {
160
- "verdict": "write",
161
- "reason": "create database creates or appends Notion state; it has side effects.",
162
- },
163
- "notion-create-folder": {
164
- "verdict": "write",
165
- "reason": "create folder creates or appends Notion state; it has side effects.",
166
- },
167
- "notion-create-view": {
168
- "verdict": "write",
169
- "reason": "create view creates or appends Notion state; it has side effects.",
170
- },
171
- "notion-spawn-session": {
172
- "verdict": "write",
173
- "reason": "Starts asynchronous agent work and creates session state.",
174
- },
175
- "notion-send-message-to-session": {
176
- "verdict": "write",
177
- "reason": "Appends a message to a running session and may trigger further work.",
178
- },
179
- "notion-create-comment": {
180
- "verdict": "write",
181
- "reason": "create comment creates or appends Notion state; it has side effects.",
182
- },
183
- "notion-update-page": {
184
- "verdict": "destructive",
185
- "reason": "update page changes existing Notion state or removes it.",
186
- },
187
- "notion-convert-page-to-skill": {
188
- "verdict": "destructive",
189
- "reason": "Changes the role and content of an existing workspace page.",
190
- },
191
- "notion-move-pages": {
192
- "verdict": "destructive",
193
- "reason": "move pages changes existing Notion state or removes it.",
194
- },
195
- "notion-update-data-source": {
196
- "verdict": "destructive",
197
- "reason": "update data source changes existing Notion state or removes it.",
198
- },
199
- "notion-update-view": {
200
- "verdict": "destructive",
201
- "reason": "update view changes existing Notion state or removes it.",
202
- },
203
- "notion-stop-session": { "verdict": "destructive", "reason": "Stops an existing session and interrupts its work." },
204
- "notion-check-mcp-next-steps": {
205
- "verdict": "read",
206
- "reason": "Returns an upsell or next-step card without changing workspace state or enabling access.",
207
- },
208
- "notion-show-advanced-analysis-next-steps": {
209
- "verdict": "read",
210
- "reason": "Returns a message and destination link without changing workspace state or enabling access.",
211
- },
212
- "notion-get-enabled-skills": {
213
- "verdict": "read",
214
- "reason": "Lists the current user's enabled skills; enabling or disabling them is a separate write.",
215
- },
216
- "notion-get-file-download-urls": {
217
- "verdict": "read",
218
- "reason": "Returns signed, expiring download URLs for existing file references without changing workspace state; use only for downloads and do not expose the URLs.",
219
- },
220
- "notion-get-groups": {
221
- "verdict": "read",
222
- "reason": "Retrieves visible permission group IDs and names without changing membership or permissions.",
223
- },
224
- "notion-list-favorite-pages": {
225
- "verdict": "read",
226
- "reason": "Lists existing favorites in sidebar order without changing them.",
227
- },
228
- "notion-list-page-backlinks": {
229
- "verdict": "read",
230
- "reason": "Retrieves IDs, titles and URLs of existing page backlinks without changing links or pages.",
231
- },
232
- "notion-list-private-pages": {
233
- "verdict": "read",
234
- "reason": "Lists existing pages and databases in the user's Private sidebar without changing them.",
235
- },
236
- "notion-list-recent-pages": {
237
- "verdict": "read",
238
- "reason": "Lists the user's existing page-view history without changing pages or recording a new view.",
239
- },
240
- "notion-list-shared-pages": {
241
- "verdict": "read",
242
- "reason": "Lists existing pages and databases in the user's Shared sidebar without changing sharing.",
243
- },
244
- "notion-memory-search": {
245
- "verdict": "read",
246
- "reason": "Searches memories saved by connected agents in earlier sessions without saving or changing memories.",
247
- },
248
- "notion-query-multiple-data-sources": {
249
- "verdict": "read",
250
- "reason": "Runs read-only SQLite SQL across existing data sources without changing them.",
251
- },
252
- "notion-delete-comment": {
253
- "verdict": "destructive",
254
- "reason": "Deletes a comment and may remove its discussion when no comments remain.",
255
- },
256
- "notion-delete-databases": {
257
- "verdict": "destructive",
258
- "reason": "Moves existing databases to Trash; an optional confirmation flag does not make this tool read-only.",
259
- },
260
- "notion-delete-pages": {
261
- "verdict": "destructive",
262
- "reason": "Moves existing pages to Trash; an optional confirmation flag does not make this tool read-only.",
263
- },
264
- "notion-restore-pages": {
265
- "verdict": "destructive",
266
- "reason": "Restores pages or databases from Trash and changes their workspace state.",
267
- },
268
- "notion-set-comment-reaction": {
269
- "verdict": "destructive",
270
- "reason": "Adds or removes the user's emoji reaction on a comment; repeatability does not make it read-only.",
271
- },
272
- "notion-set-discussion-resolved": {
273
- "verdict": "destructive",
274
- "reason": "Resolves or reopens an existing comment discussion.",
275
- },
276
- "notion-update-comment": {
277
- "verdict": "destructive",
278
- "reason": "Replaces the text of an existing comment.",
279
- },
280
- "notion-update-enabled-skills": {
281
- "verdict": "destructive",
282
- "reason": "Changes the current user's skill enablement for external MCP clients, Notion AI, or both.",
283
- },
284
- "notion-update-folder": {
285
- "verdict": "destructive",
286
- "reason": "Changes an existing folder by adding or removing files or adding a subfolder.",
287
- },
288
- "notion-upload-skill": {
289
- "verdict": "destructive",
290
- "reason": "Preparation returns a credential-bearing upload URL and headers; completion replaces the target page title, Description, body and Files. Both actions stay writes.",
291
- },
292
- },
293
- };
294
- const COMMON = keys("title", "authScope", "purpose", "instructions", "maxResultBytes", "readOnly");
295
- /** The closed options notion() accepts, selected by `auth.type`; see `assertKnownOptions`. */
296
- const NOTION_OPTIONS = variants(["auth", "type"], {
297
- // The never-typed keys stay out of the shape, so the walk refuses them by name.
298
- oauth: optionsOf()({
299
- ...COMMON,
300
- callAdmission: CALL_ADMISSION,
301
- auth: optionsOf()(keys("type")),
302
- }).shape,
303
- token: optionsOf()({
304
- ...COMMON,
305
- callAdmission: CALL_ADMISSION,
306
- ...keys("credentialLabel", "defaultPageSize"),
307
- auth: optionsOf()(keys("type")),
308
- }).shape,
309
- });
310
- function notionOAuth(id, options, provider) {
311
- return hostedOAuth(id, provider, {
312
- url: NOTION_MCP_ENDPOINT,
313
- title: options.title ?? "Notion (MCP)",
314
- description: `Notion's official hosted MCP interface: ${options.purpose}`,
315
- usageGuide: {
316
- content: oauthUsageGuide(options.purpose, options.instructions),
317
- summary: "Official MCP as the OAuth user. Live Notion schemas, object discovery, sessions, agents, attachments.",
318
- required: true,
319
- },
320
- });
321
- }
322
- function notionToken(id, options, provider) {
323
- const defaultPageSize = options.defaultPageSize ?? DEFAULT_PAGE_SIZE;
324
- if (!Number.isInteger(defaultPageSize) || defaultPageSize < 1 || defaultPageSize > MAX_PAGE_SIZE) {
325
- throw new Error(`notion() defaultPageSize must be a whole number between 1 and ${MAX_PAGE_SIZE}.`);
326
- }
327
- const rest = notionRest(defaultPageSize);
328
- return apiConnector(id, {
329
- ...provider.connectorOptions,
330
- title: options.title ?? "Notion integration",
331
- description: `Notion internal integration: ${options.purpose}`,
332
- credential: {
333
- label: options.credentialLabel ?? "Notion integration token",
334
- description: "Internal integration token from notion.so/profile/integrations. Every page or database the agent should reach must also be shared with that integration, and its capabilities decide which tools succeed — comment capabilities are off by default.",
335
- placeholder: "Paste the integration token",
336
- },
337
- testCredential: rest.testCredential,
338
- callAdmission: options.callAdmission === undefined ? NOTION_ADMISSION : options.callAdmission,
339
- usageGuide: {
340
- content: tokenUsageGuide(options.purpose, options.instructions),
341
- summary: "Internal integration over REST. Flattened reads, authoring helpers, and the pinned API index for the rest.",
342
- required: true,
343
- },
344
- tools: rest.tools,
345
- });
346
- }
347
- /**
348
- * A maintained Notion connection. `auth` selects the implementation: OAuth
349
- * reaches Notion's hosted MCP server as the authorizing user; an integration
350
- * token reaches Connecta's REST connector to `api.notion.com` as that bot.
351
- */
352
- export const notion = defineProvider({
353
- name: "notion",
354
- title: "Notion",
355
- kind: "dual",
356
- readme: "Notion",
357
- bundle: {
358
- "baselineGzip": 211946,
359
- "maxGzip": 271946,
360
- "note": "./providers/notion remeasures at 211,946 B gzip (#801), against a 145,300 B baseline: 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 Notion operation index (64 operations; request details to depth 4, so block payload keys validate, with 160-character top-level descriptions; 14,240 B gzip as source). The index is already small, and removing eight one-operation named tools offset part of the shared module, so shrinking details further could not bring the entry under the old cap. The cap uses the existing baseline + 60,000 B policy.",
361
- },
362
- skill,
363
- options: NOTION_OPTIONS,
364
- classify: NOTION_MCP_CLASSIFICATION,
365
- create: byAuth({ oauth: notionOAuth, token: notionToken }),
366
- });
367
- /** @deprecated Read `notion.definition.classify` instead. Kept for existing imports. */
368
- export const NOTION_MCP_VETTED_CATALOG = reviewedCatalog(notion.definition.classify, 'defineProvider("notion")');