@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
@@ -0,0 +1,58 @@
1
+ import type { ConnectorCallAdmissionPolicy } from "../../../types.js";
2
+ /** Planning Center's REST origin. Override only for a proxy or test double. */
3
+ export declare const PLANNING_CENTER_API_BASE_URL = "https://api.planningcenteronline.com";
4
+ /** The products behind `/<app>/v2`, in the order their guides list them. */
5
+ export declare const PLANNING_CENTER_APPS: readonly ["people", "services", "groups", "check-ins", "calendar", "registrations", "giving", "publishing", "webhooks", "api"];
6
+ export type PlanningCenterApp = (typeof PLANNING_CENTER_APPS)[number];
7
+ /**
8
+ * A product a deployment may remove from this connection. People is the one
9
+ * it may not: every product joins through its person ids, and the credential
10
+ * test reads `/people/v2/me`.
11
+ */
12
+ export type PlanningCenterExcludableApp = Exclude<PlanningCenterApp, "people">;
13
+ /**
14
+ * One reviewed `X-PCO-API-Version` per product, sent on every request.
15
+ *
16
+ * The header is optional, and omitting it is the trap: Planning Center then
17
+ * applies a per-application default chosen in a web dashboard, so behavior
18
+ * would follow whoever last clicked there rather than this file. Each date is
19
+ * the newest non-beta version in the product's documentation graph on
20
+ * 2026-10-05, and every projection below is written against it. A breaking
21
+ * change arrives as a new dated version, never inside this one, so moving a
22
+ * pin is a reviewed change to this table, its drift manifest, and whatever
23
+ * projection the version's change list touches. Notes worth keeping:
24
+ *
25
+ * - groups `2023-07-10` removed every person attribute from `Membership`, so a
26
+ * membership is nameless without `include=person`.
27
+ * - calendar `2026-06-22` may return `BookedEvent*` stubs in place of events on
28
+ * booking and conflict traversals for users without access to the event.
29
+ * - webhooks `2022-10-20` renamed `Subscription` to `WebhookSubscription`.
30
+ * - services `2018-11-01` and giving `2019-10-18` are simply the newest there is.
31
+ *
32
+ * Every request uses the pin for its product; another version requires a
33
+ * reviewed pin and regenerated operation index.
34
+ */
35
+ export declare const PLANNING_CENTER_API_VERSIONS: Readonly<Record<PlanningCenterApp, string>>;
36
+ /** Planning Center's own cap on `per_page`; its default is 25. */
37
+ export declare const MAX_PAGE_SIZE = 100;
38
+ export declare const DEFAULT_PAGE_SIZE = 25;
39
+ /**
40
+ * A ceiling on absurdity, not a budget. `per_page` tops out at 100, and the
41
+ * heaviest projection here — 100 people with emails and phone numbers
42
+ * included — is a few hundred kilobytes.
43
+ */
44
+ export declare const PLANNING_CENTER_MAX_RESPONSE_BYTES: number;
45
+ /**
46
+ * Planning Center documents 100 requests per 20 seconds per authenticated user
47
+ * (429 with `Retry-After` in seconds past it, and `X-PCO-API-Request-Rate-*`
48
+ * headers on every response). The rolling window transcribes that number, as
49
+ * Cloudflare's per-user limit is transcribed: a per-runtime approximation, not
50
+ * an enforcement, because N isolates each keep their own counter and every
51
+ * other integration the token's user runs draws on the same bucket.
52
+ * `maxConcurrency: 5` is connecta's choice, not Planning Center's — the bound
53
+ * that stops one `execute_code` fan-out from spending the window in a tick.
54
+ * Admission meters tool calls, not requests: `get_plan` spends three.
55
+ */
56
+ export declare const PLANNING_CENTER_ADMISSION: ConnectorCallAdmissionPolicy;
57
+ /** Planning Center refuses a request without a descriptive one (HTTP 403). */
58
+ export declare const DEFAULT_USER_AGENT = "connecta/0.36.0 (+https://github.com/zackbart/connecta)";
@@ -0,0 +1,83 @@
1
+ import { CONNECTA_VERSION } from "../../../version.js";
2
+ /** Planning Center's REST origin. Override only for a proxy or test double. */
3
+ export const PLANNING_CENTER_API_BASE_URL = "https://api.planningcenteronline.com";
4
+ /** The products behind `/<app>/v2`, in the order their guides list them. */
5
+ export const PLANNING_CENTER_APPS = [
6
+ "people",
7
+ "services",
8
+ "groups",
9
+ "check-ins",
10
+ "calendar",
11
+ "registrations",
12
+ "giving",
13
+ "publishing",
14
+ "webhooks",
15
+ "api",
16
+ ];
17
+ /**
18
+ * One reviewed `X-PCO-API-Version` per product, sent on every request.
19
+ *
20
+ * The header is optional, and omitting it is the trap: Planning Center then
21
+ * applies a per-application default chosen in a web dashboard, so behavior
22
+ * would follow whoever last clicked there rather than this file. Each date is
23
+ * the newest non-beta version in the product's documentation graph on
24
+ * 2026-10-05, and every projection below is written against it. A breaking
25
+ * change arrives as a new dated version, never inside this one, so moving a
26
+ * pin is a reviewed change to this table, its drift manifest, and whatever
27
+ * projection the version's change list touches. Notes worth keeping:
28
+ *
29
+ * - groups `2023-07-10` removed every person attribute from `Membership`, so a
30
+ * membership is nameless without `include=person`.
31
+ * - calendar `2026-06-22` may return `BookedEvent*` stubs in place of events on
32
+ * booking and conflict traversals for users without access to the event.
33
+ * - webhooks `2022-10-20` renamed `Subscription` to `WebhookSubscription`.
34
+ * - services `2018-11-01` and giving `2019-10-18` are simply the newest there is.
35
+ *
36
+ * Every request uses the pin for its product; another version requires a
37
+ * reviewed pin and regenerated operation index.
38
+ */
39
+ export const PLANNING_CENTER_API_VERSIONS = {
40
+ people: "2026-06-04",
41
+ services: "2018-11-01",
42
+ groups: "2023-07-10",
43
+ "check-ins": "2025-05-28",
44
+ calendar: "2026-06-22",
45
+ registrations: "2025-05-01",
46
+ giving: "2019-10-18",
47
+ publishing: "2024-03-25",
48
+ webhooks: "2022-10-20",
49
+ api: "2026-09-24",
50
+ };
51
+ /** Planning Center's own cap on `per_page`; its default is 25. */
52
+ export const MAX_PAGE_SIZE = 100;
53
+ export const DEFAULT_PAGE_SIZE = 25;
54
+ /**
55
+ * A ceiling on absurdity, not a budget. `per_page` tops out at 100, and the
56
+ * heaviest projection here — 100 people with emails and phone numbers
57
+ * included — is a few hundred kilobytes.
58
+ */
59
+ export const PLANNING_CENTER_MAX_RESPONSE_BYTES = 8 * 1024 * 1024;
60
+ /**
61
+ * Planning Center documents 100 requests per 20 seconds per authenticated user
62
+ * (429 with `Retry-After` in seconds past it, and `X-PCO-API-Request-Rate-*`
63
+ * headers on every response). The rolling window transcribes that number, as
64
+ * Cloudflare's per-user limit is transcribed: a per-runtime approximation, not
65
+ * an enforcement, because N isolates each keep their own counter and every
66
+ * other integration the token's user runs draws on the same bucket.
67
+ * `maxConcurrency: 5` is connecta's choice, not Planning Center's — the bound
68
+ * that stops one `execute_code` fan-out from spending the window in a tick.
69
+ * Admission meters tool calls, not requests: `get_plan` spends three.
70
+ */
71
+ export const PLANNING_CENTER_ADMISSION = {
72
+ rules: [
73
+ {
74
+ maxConcurrency: 5,
75
+ budget: { kind: "rolling-window", maxCalls: 100, windowMs: 20_000 },
76
+ maxQueueSize: 32,
77
+ queueTimeoutMs: 5_000,
78
+ retryAfterMs: 1_000,
79
+ },
80
+ ],
81
+ };
82
+ /** Planning Center refuses a request without a descriptive one (HTTP 403). */
83
+ export const DEFAULT_USER_AGENT = `connecta/${CONNECTA_VERSION} (+https://github.com/zackbart/connecta)`;
@@ -0,0 +1,40 @@
1
+ import { OperationIndex } from "../../_shared/rest/operation-index.js";
2
+ /** Reviewed workflow vocabulary over the unchanged vendor paths and contracts. */
3
+ const summaries = {
4
+ "GET /people/v2/people": "Find and search People profiles: a person, contact details, active or inactive members, name, email or phone.",
5
+ "GET /people/v2/people/{person_id}": "Get one person's People profile and contact details; include emails, phone numbers, addresses and household.",
6
+ "PATCH /people/v2/people/{person_id}": "Update or archive a person: inactive archives the People profile; active restores it without deleting history.",
7
+ "GET /people/v2/person_mergers": "Find merged person history and the surviving People id for a removed duplicate profile.",
8
+ "POST /people/v2/people/{person_id}/emails": "Add an email address to a person as a separate People Email record.",
9
+ "POST /people/v2/people/{person_id}/phone_numbers": "Add a phone number to a person as a separate People PhoneNumber record.",
10
+ "GET /people/v2/field_definitions": "List custom field definitions, names and data types for People profiles.",
11
+ "GET /people/v2/people/{person_id}/field_data": "List a person's custom field values; join field definitions for their names and data types.",
12
+ "GET /people/v2/people/{person_id}/notes": "List a person's profile note records and their categories.",
13
+ "GET /services/v2/people": "List Services volunteers and person identities for a volunteer roster; use plans for who is serving on a date.",
14
+ "GET /services/v2/teams": "List volunteer teams and roster roles across Services service types.",
15
+ "GET /services/v2/service_types": "List service types to resolve the worship service before finding its dated plan and order of service.",
16
+ "GET /services/v2/service_types/{service_type_id}/plans": "List dated Services plans for an order of service; choose the plan before reading items or the volunteer roster.",
17
+ "GET /services/v2/service_types/{service_type_id}/plans/{plan_id}/items": "Read the order of service: ordered plan items, songs, durations and worship-service positions.",
18
+ "GET /services/v2/service_types/{service_type_id}/plans/{plan_id}/team_members": "List a plan's volunteer roster and serving team members, with person, team and position identities.",
19
+ "POST /services/v2/service_types/{service_type_id}/plans/{plan_id}/team_members": "Schedule a volunteer into one plan's serving roster with the person's team and position.",
20
+ "GET /groups/v2/groups": "Find church groups, then resolve group leaders and members through their memberships.",
21
+ "GET /groups/v2/groups/{group_id}/memberships": "List church group leaders and members; each group membership joins a person and their leader role.",
22
+ "GET /giving/v2/donations": "List donations by person, date or fund; include designations for fund identities.",
23
+ };
24
+ /** Reviewed vocabulary; shared hatch ranking keeps the full index reachable. */
25
+ export class PlanningCenterIndex extends OperationIndex {
26
+ constructor(data) {
27
+ super({
28
+ ...data,
29
+ ops: data.ops.map(([method, path, id, summary, tag, server]) => {
30
+ const reviewed = summaries[`${method} ${path}`];
31
+ // PCO omits operation ids: preserve the generated CRUD/resource words
32
+ // alongside workflow synonyms so verb-led queries remain discoverable.
33
+ const combined = reviewed ? `${reviewed} (${summary.replace(/ — Planning Center \w[\w-]*$/, "")})` : summary;
34
+ return server === undefined
35
+ ? [method, path, id, combined, tag]
36
+ : [method, path, id, combined, tag, server];
37
+ }),
38
+ }, { vendor: "pco", title: "Planning Center" });
39
+ }
40
+ }
@@ -0,0 +1,39 @@
1
+ import { PLANNING_CENTER_APPS, isApp } from "../api.js";
2
+ /** `a, b, and c`, the way the guide and description list products. */
3
+ export function series(items) {
4
+ return items.length < 3 ? items.join(" and ") : `${items.slice(0, -1).join(", ")}, and ${items.at(-1)}`;
5
+ }
6
+ /** The products the description names: those with named tools for staff work. */
7
+ export const DESCRIBED_APPS = [
8
+ "people",
9
+ "services",
10
+ "groups",
11
+ "check-ins",
12
+ "calendar",
13
+ "registrations",
14
+ "giving",
15
+ ];
16
+ /**
17
+ * `excludeApps` as a set, refusing at construction what cannot be meant
18
+ * (INV-11): a product Planning Center does not have, a misspelling, or People.
19
+ */
20
+ export function excludedApps(value) {
21
+ const excluded = new Set();
22
+ if (value === undefined)
23
+ return excluded;
24
+ const excludable = PLANNING_CENTER_APPS.filter((app) => app !== "people").join(", ");
25
+ if (!Array.isArray(value)) {
26
+ throw new Error(`planningCenter() excludeApps must be an array of app names from: ${excludable}.`);
27
+ }
28
+ for (const entry of value) {
29
+ if (entry === "people") {
30
+ throw new Error('planningCenter() excludeApps cannot exclude "people": every product joins through People person ids, and the credential test reads /people/v2/me.');
31
+ }
32
+ if (typeof entry !== "string" || !isApp(entry)) {
33
+ const lower = typeof entry === "string" ? entry.trim().toLowerCase() : "";
34
+ throw new Error(`planningCenter() excludeApps has unknown app ${JSON.stringify(entry)}; expected any of ${excludable}.${isApp(lower) && lower !== "people" ? ` App names are lowercase path segments: "${lower}".` : ""}`);
35
+ }
36
+ excluded.add(entry);
37
+ }
38
+ return excluded;
39
+ }
@@ -0,0 +1,83 @@
1
+ import { ConnectorCallError } from "../../../errors.js";
2
+ export function asRecord(value) {
3
+ return value && typeof value === "object" && !Array.isArray(value) ? value : {};
4
+ }
5
+ export function asArray(value) {
6
+ return Array.isArray(value) ? value : [];
7
+ }
8
+ export function compact(value) {
9
+ return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== undefined));
10
+ }
11
+ export function isResource(value) {
12
+ const record = asRecord(value);
13
+ return typeof record["id"] === "string" && typeof record["type"] === "string";
14
+ }
15
+ export function resources(value) {
16
+ return (Array.isArray(value) ? value : value ? [value] : []).filter(isResource);
17
+ }
18
+ export function indexIncluded(document) {
19
+ const index = new Map();
20
+ for (const resource of resources(document["included"])) {
21
+ index.set(`${resource.type}:${resource.id}`, resource);
22
+ }
23
+ return index;
24
+ }
25
+ export function relationshipData(resource, name) {
26
+ return resource.relationships?.[name]?.data;
27
+ }
28
+ /** The related id, `null` when Planning Center says there is none. */
29
+ export function relId(resource, name) {
30
+ const data = relationshipData(resource, name);
31
+ if (data === null)
32
+ return null;
33
+ const id = asRecord(data)["id"];
34
+ return typeof id === "string" ? id : undefined;
35
+ }
36
+ export function related(resource, name, index) {
37
+ const data = asRecord(relationshipData(resource, name));
38
+ return typeof data["type"] === "string" && typeof data["id"] === "string"
39
+ ? index.get(`${data["type"]}:${data["id"]}`)
40
+ : undefined;
41
+ }
42
+ export function relatedMany(resource, name, index) {
43
+ return asArray(relationshipData(resource, name))
44
+ .map((entry) => {
45
+ const ref = asRecord(entry);
46
+ return index.get(`${String(ref["type"])}:${String(ref["id"])}`);
47
+ })
48
+ .filter((item) => item !== undefined);
49
+ }
50
+ /** `{ id, ...the named attributes }`, keeping Planning Center's own names. */
51
+ export function pick(resource, names) {
52
+ const attributes = resource.attributes ?? {};
53
+ const out = { id: resource.id };
54
+ for (const name of names) {
55
+ if (attributes[name] !== undefined)
56
+ out[name] = attributes[name];
57
+ }
58
+ return out;
59
+ }
60
+ export function attribute(resource, name) {
61
+ return resource?.attributes?.[name];
62
+ }
63
+ /** A JSON:API write document. `undefined` drops a key; `null` clears a field. */
64
+ export function writeDocument(type, attributes) {
65
+ return { data: { type, attributes: compact(attributes) } };
66
+ }
67
+ /** One branchable signal: `meta.next.offset`, Planning Center's own cursor. */
68
+ export function pageOf(document, offset = 0) {
69
+ const meta = asRecord(document["meta"]);
70
+ const next = asRecord(meta["next"])["offset"];
71
+ const total = meta["total_count"];
72
+ if (meta["next"] != null && (next === undefined || !Number.isSafeInteger(next) || next <= offset)) {
73
+ throw new ConnectorCallError("connector_call_failed", "Planning Center returned invalid paging metadata.", {
74
+ retryable: false,
75
+ });
76
+ }
77
+ const nextOffset = next === undefined ? null : next;
78
+ return {
79
+ hasMore: nextOffset !== null,
80
+ nextOffset,
81
+ totalCount: typeof total === "number" && Number.isSafeInteger(total) && total >= 0 ? total : null,
82
+ };
83
+ }