@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,83 +0,0 @@
1
- /** In-memory tokens and credential-bound login flights shared only inside one request. */
2
- import { ConnectorCallError } from "../../errors.js";
3
- const LOGIN_TIMEOUT_MS = 15_000;
4
- const MAX_CACHED_TOKENS = 512;
5
- /** Each provider instance owns its cache, so no credential crosses an API origin. */
6
- export function requestTokenCache(source) {
7
- const tokens = new Map();
8
- const requests = new WeakMap();
9
- function start(auth, ctx) {
10
- const controller = new AbortController();
11
- const timer = setTimeout(() => controller.abort(new ConnectorCallError("unavailable", "Machine identity login timed out.")), LOGIN_TIMEOUT_MS);
12
- const flight = { controller, waiters: 0, settled: false, promise: Promise.resolve("") };
13
- flight.promise = auth
14
- .mint({ ...ctx, signal: controller.signal })
15
- .then((minted) => {
16
- // An abandoned login must not seed a token after cancellation.
17
- controller.signal.throwIfAborted();
18
- tokens.delete(auth.key);
19
- tokens.set(auth.key, minted);
20
- while (tokens.size > MAX_CACHED_TOKENS)
21
- tokens.delete(tokens.keys().next().value);
22
- return minted.accessToken;
23
- })
24
- .finally(() => {
25
- flight.settled = true;
26
- clearTimeout(timer);
27
- });
28
- // All waiters may cancel before the transport observes its abort.
29
- void flight.promise.catch(() => { });
30
- return flight;
31
- }
32
- async function follow(flight, signal) {
33
- signal?.throwIfAborted();
34
- flight.waiters++;
35
- let onAbort;
36
- try {
37
- const aborted = new Promise((_, reject) => {
38
- if (!signal)
39
- return;
40
- onAbort = () => reject(signal.reason);
41
- signal.addEventListener("abort", onAbort, { once: true });
42
- });
43
- return await Promise.race([flight.promise, aborted]);
44
- }
45
- finally {
46
- if (onAbort)
47
- signal?.removeEventListener("abort", onAbort);
48
- flight.waiters--;
49
- if (!flight.settled && flight.waiters === 0)
50
- flight.controller.abort();
51
- }
52
- }
53
- return {
54
- async token(ctx, rejected) {
55
- ctx.signal?.throwIfAborted();
56
- const auth = await source(ctx);
57
- ctx.signal?.throwIfAborted();
58
- const cached = tokens.get(auth.key);
59
- if (cached && cached.accessToken !== rejected && cached.expiresAt > Date.now())
60
- return cached.accessToken;
61
- const scope = ctx.requestScope ?? ctx;
62
- let perCredential = requests.get(scope);
63
- if (!perCredential) {
64
- perCredential = new Map();
65
- requests.set(scope, perCredential);
66
- }
67
- let request = perCredential.get(auth.key);
68
- if (!request) {
69
- request = {};
70
- perCredential.set(auth.key, request);
71
- }
72
- if (rejected !== undefined) {
73
- // Keep the recovery outcome for the request, including failures. Later
74
- // 401s can never turn this into a fresh-login loop.
75
- request.recovery ??= start(auth, ctx);
76
- return await follow(request.recovery, ctx.signal);
77
- }
78
- if (!request.initial || request.initial.settled || request.initial.controller.signal.aborted)
79
- request.initial = start(auth, ctx);
80
- return await follow(request.initial, ctx.signal);
81
- },
82
- };
83
- }
@@ -1,41 +0,0 @@
1
- // Auth selects the implementation (decisions/0005): a `"dual"` provider sends
2
- // OAuth to the vendor's hosted MCP server and a key to Connecta's own REST
3
- // connector. The choice is made once, at construction, from `auth.type`; one
4
- // connector id is one implementation, and a failure on one is never replayed
5
- // against the other (INV-9).
6
- import { remoteMcp } from "../../../connectors/remote-mcp.js";
7
- /**
8
- * A provider `create` that dispatches on `options.auth.type`. Pair it with
9
- * `variants(["auth", "type"], …)` options, which refuse a missing or unknown
10
- * type, and options the selected case does not accept, before this runs.
11
- */
12
- export function byAuth(cases) {
13
- return (id, options, provider) => {
14
- const type = options.auth?.type;
15
- const create = typeof type === "string" && Object.hasOwn(cases, type) ? cases[type] : undefined;
16
- if (!create) {
17
- throw new Error(`auth.type must be one of ${Object.keys(cases)
18
- .map((name) => JSON.stringify(name))
19
- .join(", ")}.`);
20
- }
21
- return create(id, options, provider);
22
- };
23
- }
24
- /**
25
- * The vendor's hosted MCP server, OAuth only: no bearer token, header, or
26
- * operator credential reaches a hosted endpoint. The provider's reviewed
27
- * classification classifies its catalog.
28
- */
29
- export function hostedOAuth(id, provider, options) {
30
- return remoteMcp(id, {
31
- url: options.url,
32
- ...provider.connectorOptions,
33
- title: options.title,
34
- description: options.description,
35
- auth: { type: "oauth" },
36
- requireHttps: true,
37
- classify: provider.classify,
38
- ...(options.callAdmission ? { callAdmission: options.callAdmission } : {}),
39
- usageGuide: options.usageGuide,
40
- });
41
- }
@@ -1,133 +0,0 @@
1
- import type { JsonSchema } from "../../../types.js";
2
- export type RestMethod = "GET" | "HEAD" | "POST" | "PUT" | "PATCH" | "DELETE";
3
- /**
4
- * One request-side schema, compacted: `t` type, `e` enum, `f` format (only
5
- * `binary`), `n` nullable, `d` description, `a` anyOf/oneOf, `p` properties,
6
- * `r` required, `i` items, `m` additionalProperties, `x` truncated at the
7
- * generation depth (unvalidated below), `$` a shared subtree.
8
- */
9
- export interface SchemaNode {
10
- readonly t?: string | readonly string[];
11
- readonly e?: readonly unknown[];
12
- readonly f?: string;
13
- readonly n?: 1;
14
- readonly d?: string;
15
- readonly a?: readonly SchemaNode[];
16
- readonly p?: Readonly<Record<string, SchemaNode>>;
17
- readonly r?: readonly string[];
18
- readonly i?: SchemaNode;
19
- readonly m?: SchemaNode;
20
- readonly x?: 1;
21
- readonly $?: number;
22
- }
23
- /** `[method, path template, operationId, summary, tag index, server index?]` */
24
- type OperationRow = readonly [string, string, string, string, number, number?];
25
- /** What `scripts/generate-openapi.mjs` writes to `openapi.generated.ts`. */
26
- export interface OpenApiData {
27
- /** The pinned document's URL. */
28
- readonly source: string;
29
- /** The pin: a tag, commit, or content hash. */
30
- readonly revision: string;
31
- /** `sha256:` digest of the pinned document's bytes. */
32
- readonly digest: string;
33
- /** The document's `info.version`; Stripe sends it as `Stripe-Version`. */
34
- readonly version: string;
35
- /** `[0]` is the default origin; later entries are per-operation servers. */
36
- readonly servers: readonly string[];
37
- readonly tags: readonly string[];
38
- readonly ops: readonly OperationRow[];
39
- /** JSON: `{ d: SchemaNode[], o: (0 | [params, body])[] }`, aligned with `ops`. */
40
- readonly details: string;
41
- }
42
- export interface Operation {
43
- readonly method: RestMethod;
44
- /** The path template, e.g. `/v1/customers/{customer}`. */
45
- readonly path: string;
46
- readonly operationId: string;
47
- readonly summary: string;
48
- readonly tag: string;
49
- /** A non-default origin this operation is served from, if any. */
50
- readonly server: string | undefined;
51
- /** Position in `OpenApiData.ops`. */
52
- readonly row: number;
53
- }
54
- /** A concrete call matched to its operation. */
55
- export interface OperationMatch {
56
- readonly op: Operation;
57
- /** Path parameter values, exactly as the caller sent them. */
58
- readonly params: Readonly<Record<string, string>>;
59
- }
60
- /** One operation's request contract, expanded to JSON Schema for an agent. */
61
- export interface OperationContract {
62
- method: RestMethod;
63
- path: string;
64
- operationId: string;
65
- summary: string;
66
- server?: string;
67
- parameters: {
68
- name: string;
69
- in: "path" | "query";
70
- required: boolean;
71
- description?: string;
72
- schema: JsonSchema;
73
- }[];
74
- body?: {
75
- contentType: string;
76
- required?: true;
77
- schema: JsonSchema;
78
- };
79
- }
80
- /** The read side of one vendor's pinned index. */
81
- export declare class OperationIndex {
82
- #private;
83
- readonly version: string;
84
- readonly revision: string;
85
- readonly ops: readonly Operation[];
86
- /** The methods any operation uses, in a stable order. */
87
- readonly methods: readonly RestMethod[];
88
- /**
89
- * `vendor` is the tool-name prefix; `title` the display name in refusals.
90
- * `slashParams` names path parameters whose values may carry an encoded
91
- * "/" (`%2F`), such as an object key, and only as the path's last segment.
92
- */
93
- constructor(data: OpenApiData, names: {
94
- vendor: string;
95
- title: string;
96
- slashParams?: readonly string[];
97
- });
98
- /** The operation with this exact method and path template, if any. */
99
- operation(method: string, template: string): Operation | undefined;
100
- /**
101
- * Match a concrete call to its operation. Literal segments outrank
102
- * parameters, as OpenAPI requires (`/v1/customers/search` before
103
- * `/v1/customers/{customer}`); the most specific template that fits decides,
104
- * and a method it does not define is refused rather than retried against a
105
- * looser template.
106
- */
107
- resolve(method: string, path: string): OperationMatch;
108
- /** Up to five operations whose paths most resemble a missed one. */
109
- nearest(method: string, segments: readonly string[]): string[];
110
- /**
111
- * Rank operations for a free-text query: every query word must appear in
112
- * the path, summary, operationId, or tag (plural-insensitive, prefixes of
113
- * three letters count), and path matches weigh most. A query that starts
114
- * with "/" also matches the templates that fit it.
115
- */
116
- search(query: string, options: {
117
- method?: RestMethod;
118
- limit: number;
119
- }): Operation[];
120
- /** Whether the operation takes a body, and in which framing. */
121
- bodyType(op: Operation): string | undefined;
122
- /** The operation's request contract as JSON Schema, optionally one parameter only. */
123
- contract(op: Operation, only?: string): OperationContract;
124
- /**
125
- * Check query and body names, required members, enums, and object/array
126
- * shapes against the operation, to the depth the index carries. Scalars are
127
- * not type-policed beyond that: vendors coerce form strings, and a wrong
128
- * number is the vendor's to explain. `null` and `""` pass anywhere, since
129
- * they are how form APIs unset a field.
130
- */
131
- check(op: Operation, query: Readonly<Record<string, unknown>>, body: unknown): void;
132
- }
133
- export {};
@@ -1,141 +0,0 @@
1
- import type { ApiTool } from "../../../connectors/api-connector.js";
2
- import { type GuardedFetchOptions, type GuardedRequest, type GuardedTransport } from "../../../connectors/guarded-fetch.js";
3
- import { ConnectorCallError } from "../../../errors.js";
4
- import type { ConnectorContext } from "../../../types.js";
5
- import type { Operation, OperationIndex, RestMethod } from "./operation-index.js";
6
- import type { ValueSafety } from "./value-safety.js";
7
- /** One call matched to its operation, after the vendor's defaults and pins. */
8
- export interface RestCall {
9
- readonly method: RestMethod;
10
- /** The concrete path the caller named. */
11
- readonly path: string;
12
- readonly op: Operation;
13
- /** Path parameter values by template name. */
14
- readonly params: Readonly<Record<string, string>>;
15
- readonly query: Readonly<Record<string, unknown>>;
16
- readonly body: unknown;
17
- /** Request headers from the vendor's reviewed `headers` allowlist. */
18
- readonly headers?: Readonly<Record<string, string>>;
19
- }
20
- /** How the vendor frames one call on the wire. */
21
- export interface RestFraming {
22
- query?: GuardedRequest["query"];
23
- /** A JSON body; exclusive with `rawBody`. */
24
- body?: unknown;
25
- /** A pre-framed body, such as a form-encoded string, with its own `Content-Type` header. */
26
- rawBody?: BodyInit;
27
- headers?: Record<string, string | undefined>;
28
- }
29
- /**
30
- * The cursor for the next page: pass `next` back as `param`, a query
31
- * parameter unless `in` says the operation takes it in its body (Notion's
32
- * read-only POST queries do). `path` names a different GET that continues
33
- * the list, when the first page came from a call that created it (Notion's
34
- * view queries). `hasMore` without `next` means the operation has no cursor.
35
- */
36
- export interface RestPage {
37
- hasMore: boolean;
38
- next?: string;
39
- param?: string;
40
- in?: "query" | "body";
41
- path?: string;
42
- }
43
- export interface RestResult {
44
- status: number;
45
- data: unknown;
46
- page?: RestPage;
47
- }
48
- /** A reviewed POST that only reads: `[method, path template, reason]`. */
49
- export type RestReadPost = readonly [method: RestMethod, path: string, reason: string];
50
- export interface RestVendor {
51
- /** Lowercase tool-name prefix: `${vendor}_api_search` and so on. */
52
- readonly vendor: string;
53
- /** Display name in descriptions and refusals. */
54
- readonly title: string;
55
- readonly index: OperationIndex;
56
- /**
57
- * The transport for an operation's server (`undefined` is the default
58
- * origin), or a refusal that says where to go instead.
59
- */
60
- transport(server: string | undefined): GuardedTransport | string;
61
- /** Map a failed response to what the caller does next (H11); `call` lets a vendor withhold text for secret families. */
62
- failure(status: number, headers: Headers, body: unknown, call?: RestCall): ConnectorCallError;
63
- /** Reviewed POSTs that only read; `_api_read` admits exactly these. */
64
- readonly readPosts?: readonly RestReadPost[];
65
- /**
66
- * The vendor's reviewed value-safety table: `refuse` verdicts are refused
67
- * by the generic tools before any request, and every successful body is
68
- * redacted (decision 0005, "Value safety"). Failure mappers ask it which
69
- * operations withhold vendor error text.
70
- */
71
- readonly valueSafety: ValueSafety;
72
- /** Reviewed refusals that depend on arguments: return the reason to refuse, before any request. */
73
- refuse?(call: RestCall): string | undefined;
74
- /** Rewrite a caller's path before it is matched, such as filling configured default ids. */
75
- path?(path: string): string;
76
- /** Apply configured defaults and enforce pins; throw to refuse. */
77
- scope?(call: RestCall): RestCall;
78
- /**
79
- * Admit one prepared call before it is sent; throw to refuse. Runs in
80
- * `callRest`, so generic and named tools alike pass through it, and may
81
- * await, as a pin check that resolves which account owns a zone does.
82
- */
83
- admit?(call: RestCall, ctx: ConnectorContext): void | Promise<void>;
84
- /**
85
- * Map a successful body into the envelope's `data`, such as unwrapping a
86
- * vendor envelope; throw to fail a success-status body that reports an
87
- * error. `page` still reads the body as it arrived.
88
- */
89
- result?(body: unknown, call: RestCall, response: {
90
- status: number;
91
- headers: Headers;
92
- }): unknown;
93
- /** Request headers the generic tools accept, by name, with what each does; the vendor validates values. */
94
- readonly headers?: Readonly<Record<string, string>>;
95
- /** Whether the generic tools accept a string body, for operations framed as text. */
96
- readonly textBodies?: boolean;
97
- /** A concrete path in this vendor's API, for the path argument's description. */
98
- readonly pathExample?: string;
99
- /** Frame the request. Defaults to scalar query values and a JSON body. */
100
- encode?(call: RestCall): RestFraming;
101
- /** Read the next-page cursor from a successful body. */
102
- page?(data: unknown, call: RestCall): RestPage | undefined;
103
- /** A header write tools fill with a caller key or a generated one, and return. */
104
- readonly idempotencyHeader?: string;
105
- /** Where multipart or binary uploads go instead of `_api_write`. */
106
- readonly upload?: string;
107
- /** One clause on how `_api_write` frames bodies, for its schema. */
108
- readonly bodyHint?: string;
109
- }
110
- /**
111
- * A guarded transport whose requests, response bodies included, end after
112
- * `timeoutMs`: a stream the vendor never closes cannot hold a call open past
113
- * it. The request's own signal still cancels first.
114
- */
115
- export declare function restTransport(options: Omit<GuardedFetchOptions, "fetch"> & {
116
- timeoutMs: number;
117
- }): GuardedTransport;
118
- /** Match a call to its operation and apply the vendor's defaults and pins. */
119
- export declare function restCall(vendor: RestVendor, method: RestMethod, path: string, input?: {
120
- query?: Readonly<Record<string, unknown>>;
121
- body?: unknown;
122
- headers?: Readonly<Record<string, string>>;
123
- }): RestCall;
124
- /**
125
- * A request that is not safe to repeat (a write without an idempotency key)
126
- * must never be advertised as retryable after it may have reached the vendor
127
- * (INV-9). Definite answers pass through: refusals and 4xx verdicts, a failure
128
- * proven to precede any connection, and timeouts, which the invocation layer
129
- * already reports as `write_outcome_unknown`. Exported so a named write tool
130
- * with its own transport (an upload) applies the same rule.
131
- */
132
- export declare function unknownOutcome(vendor: RestVendor, error: unknown, responded: boolean): unknown;
133
- /**
134
- * Send one prepared call and read it into the envelope. No validation and no
135
- * refusal tables run here: the generic tools do both first, and named tools
136
- * build their calls from fixed operations. `visibleHeaders` carry values the
137
- * result returns to the caller, such as an idempotency key.
138
- */
139
- export declare function callRest(vendor: RestVendor, call: RestCall, ctx: ConnectorContext, visibleHeaders?: Record<string, string>): Promise<RestResult>;
140
- /** The four generic tools over one vendor's index. */
141
- export declare function restTools(vendor: RestVendor): ApiTool[];