@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,47 @@
1
+ const stores = [];
2
+ /** Keep `store`'s entry for a value on every redacted copy of that value. */
3
+ export function followRedactedCopies(store) {
4
+ stores.push(store);
5
+ return store;
6
+ }
7
+ /** `to`, a redacted copy of `from`, takes every registered fact about `from`. */
8
+ export function redactedCopyOf(from, to) {
9
+ for (const store of stores) {
10
+ if (!store.has(from))
11
+ continue;
12
+ if (store instanceof WeakMap)
13
+ store.set(to, store.get(from));
14
+ else
15
+ store.add(to);
16
+ }
17
+ return to;
18
+ }
19
+ // Error classes whose instances' `name` redaction keeps whatever was sent, by identity: the
20
+ // built-in errors, DOMException, and connecta's and the pinned MCP SDK's own classes, each
21
+ // registered with literals beside its class. Any other name an error carries, including one a
22
+ // custom class gives itself, is checked like other text.
23
+ const errorNames = new Map();
24
+ /** Keep `names` as the `name` of `ctor`'s instances and its subclasses'. */
25
+ export function keepErrorName(ctor, ...names) {
26
+ errorNames.set(ctor.prototype, new Set(names));
27
+ }
28
+ /** Whether a registered class on `prototype`'s chain gives its instances `name`. */
29
+ export function keptErrorName(prototype, name) {
30
+ for (let at = prototype; at; at = Object.getPrototypeOf(at))
31
+ if (errorNames.get(at)?.has(name))
32
+ return true;
33
+ return false;
34
+ }
35
+ for (const [ctor, name] of [
36
+ [Error, "Error"],
37
+ [TypeError, "TypeError"],
38
+ [RangeError, "RangeError"],
39
+ [SyntaxError, "SyntaxError"],
40
+ [ReferenceError, "ReferenceError"],
41
+ [EvalError, "EvalError"],
42
+ [URIError, "URIError"],
43
+ [AggregateError, "AggregateError"],
44
+ ])
45
+ keepErrorName(ctor, name);
46
+ if (typeof DOMException === "function")
47
+ keepErrorName(DOMException, "DOMException", "AbortError", "TimeoutError");
@@ -0,0 +1,125 @@
1
+ // The placeholder redaction leaves where it removed a value. Sent-secret redaction (sent-secrets.ts)
2
+ // and REST value safety (providers/_shared/rest/value-safety.ts) write the same text.
3
+ /** What a removed value reads as. */
4
+ export const REDACTED = "[redacted]";
5
+ /**
6
+ * Whether redaction altered a value: it carries the placeholder. The provider kit redacts sent
7
+ * secrets from every value of a vendor body before result safety reads it, so a rule that decides
8
+ * on a value (a type discriminator, a record's label or type, a URL's scheme or parameter names,
9
+ * a Content-Type) can find the placeholder where the vendor wrote what the rule matches.
10
+ * Such a decision takes its most protective outcome (#703).
11
+ */
12
+ export function redactionAltered(value) {
13
+ return typeof value === "string" && value.includes(REDACTED);
14
+ }
15
+ // Numeric references may omit `;`; named HTML references have at most 31 characters. Require
16
+ // their `;` so a real query separator such as `&amp=value` remains a separator. Legacy `amp`
17
+ // may omit its semicolon only before the `#` of a nested numeric reference.
18
+ const CHARACTER_REFERENCE = /(?:#([0-9]+);?|#x([0-9a-f]+);?|([a-z][a-z0-9]{1,30});|(amp)(?=#))/iy;
19
+ // Named references whose decoded characters all belong to a credential's alphabet (`fjlig` is `fj`).
20
+ const CREDENTIAL_REFERENCE = /^(?:plus|sol|equals|percnt|lowbar|underbar|fjlig)$/;
21
+ /**
22
+ * The end of a character reference at `at`, or `at` itself. A reference is value data, including
23
+ * one spelling a delimiter. Decode only to find nested-reference boundaries and, when
24
+ * `credentialOnly`, to require credential data or an ampersand. No decoded text is returned.
25
+ * Known signing values read possible named references fail-closed without a browser entity table.
26
+ * Each successful read advances over disjoint source characters.
27
+ */
28
+ export function characterReferenceEnd(text, at, credentialOnly = false) {
29
+ if (text.charCodeAt(at) !== 0x26)
30
+ return at;
31
+ return referenceBodyEnd(text, at + 1, at, credentialOnly);
32
+ }
33
+ /** A numeric reference body whose leading characters redaction may have taken, including its `&`. */
34
+ export function bareReferenceEnd(text, at, credentialOnly = false) {
35
+ if (text.charCodeAt(at) !== 0x23 || !/[0-9x]/i.test(text[at + 1] ?? ""))
36
+ return at;
37
+ return referenceBodyEnd(text, at, at, credentialOnly);
38
+ }
39
+ function referenceBodyEnd(text, from, at, credentialOnly) {
40
+ let end = at;
41
+ let readable = false;
42
+ while (from < text.length) {
43
+ CHARACTER_REFERENCE.lastIndex = from;
44
+ const reference = CHARACTER_REFERENCE.exec(text);
45
+ if (!reference)
46
+ break;
47
+ end = CHARACTER_REFERENCE.lastIndex;
48
+ const name = (reference[3] ?? reference[4])?.toLowerCase();
49
+ const code = reference[1] !== undefined
50
+ ? Number(reference[1])
51
+ : reference[2] !== undefined
52
+ ? Number.parseInt(reference[2], 16)
53
+ : name === "amp"
54
+ ? 0x26
55
+ : -1;
56
+ const ampersand = code === 0x26;
57
+ readable = ampersand || credentialUnit(code) || (name !== undefined && CREDENTIAL_REFERENCE.test(name));
58
+ if (!readable && name === undefined && text.charCodeAt(end - 1) !== 0x3b)
59
+ readable = prefixSpellsCredential(reference[1] ?? reference[2], reference[1] === undefined ? 16 : 10);
60
+ if (!ampersand)
61
+ break;
62
+ from = end;
63
+ }
64
+ return credentialOnly && !readable ? at : end;
65
+ }
66
+ // Without its `;`, a numeric reference's digits may run into the value's next characters (`&#47`
67
+ // then `9` reads as `&#479`), so a short digit prefix spelling credential data counts.
68
+ function prefixSpellsCredential(digits, radix) {
69
+ let at = 0;
70
+ while (digits.charCodeAt(at) === 0x30)
71
+ at++;
72
+ const limit = radix === 16 ? 2 : 3;
73
+ for (let length = 1; length <= limit && at + length <= digits.length; length++)
74
+ if (credentialUnit(Number.parseInt(digits.slice(at, at + length), radix)))
75
+ return true;
76
+ return false;
77
+ }
78
+ /**
79
+ * A credential's data: the base64 and base64url alphabets (letters, digits, `+`, `/`, `=`, `-`,
80
+ * `_`) and `%` escapes. A remainder of `+/` alone is still the end of a base64 value.
81
+ */
82
+ function credentialUnit(code) {
83
+ return ((code >= 0x30 && code <= 0x39) ||
84
+ (code >= 0x41 && code <= 0x5a) ||
85
+ (code >= 0x61 && code <= 0x7a) ||
86
+ code === 0x2b ||
87
+ code === 0x2f ||
88
+ code === 0x3d ||
89
+ code === 0x2d ||
90
+ code === 0x5f ||
91
+ code === 0x25);
92
+ }
93
+ /**
94
+ * The text right after the placeholder at `at` that may be the rest of a credential whose public
95
+ * prefix redaction took (#703): up to the first unit `ends` accepts, reading later placeholders
96
+ * whole so none is split. Redaction can take `sk_live_`, `whsec_`, `Bearer `, or a signing
97
+ * parameter's name and `=`, leaving what follows; with that prefix known, any remainder rebuilds
98
+ * the credential, however short or encoded, so `readable` holds whenever it carries any base64 or
99
+ * base64url character, a `%` escape or a reference spelling credential data or an ampersand.
100
+ * Other references end the inferred remainder. Other punctuation alone (`.`, `,`, `;`, `!`) is no
101
+ * credential's data. References, including bare numeric bodies, are read before consulting `ends`.
102
+ * The run still ends where `ends` says a value does. One forward pass.
103
+ */
104
+ export function splitRemainder(text, at, ends) {
105
+ if (!redactionAltered(text.slice(at, at + REDACTED.length)))
106
+ return { end: at, readable: false };
107
+ let end = at + REDACTED.length;
108
+ let readable = false;
109
+ while (end < text.length) {
110
+ const reference = Math.max(characterReferenceEnd(text, end, true), bareReferenceEnd(text, end, true));
111
+ if (text.startsWith(REDACTED, end))
112
+ end += REDACTED.length;
113
+ else if (reference > end) {
114
+ readable = true;
115
+ end = reference;
116
+ }
117
+ else if (ends(text, end))
118
+ break;
119
+ else {
120
+ readable ||= credentialUnit(text.charCodeAt(end));
121
+ end++;
122
+ }
123
+ }
124
+ return { end, readable };
125
+ }
@@ -1,8 +1,8 @@
1
1
  import type { CatalogDriftActivityContext } from "./activity.js";
2
- import type { CredentialVault } from "./credential-contract.js";
3
- import type { Connector, ConnectorContext, ConnectorStatus, KVStorage, Logger, ToolDef } from "./types.js";
4
2
  import { type CallAdmissionPermit, type ConnectorCallAdmissionSnapshot } from "./call-admission.js";
5
3
  import { type ConnectorCaller } from "./connector-caller.js";
4
+ import type { CredentialVault } from "./credential-contract.js";
5
+ import type { Connector, ConnectorContext, ConnectorStatus, KVStorage, Logger, ToolDef } from "./types.js";
6
6
  /**
7
7
  * Split `"<connectorId>.<toolName>"` on the first dot. Connector ids contain
8
8
  * no dots, so a downstream tool name may. Exported because an address that
@@ -45,8 +45,10 @@ export declare function resolveMaxResultBytes(value: number | undefined, inherit
45
45
  export interface RegistryOptions {
46
46
  publicUrl?: string | undefined;
47
47
  oauthClientName?: string | undefined;
48
- classification?: Readonly<Record<string, Readonly<Record<string, "read" | "write">>>> | undefined;
48
+ classification?: Readonly<Record<string, Readonly<Record<string, "read" | "write" | "hidden">>>> | undefined;
49
49
  storage: KVStorage;
50
+ /** Internal deployment root, preserved when a personal registry partitions storage. */
51
+ rootStorage?: KVStorage;
50
52
  catalogStorage?: KVStorage;
51
53
  logger: Logger;
52
54
  credentialVault?: CredentialVault | undefined;
@@ -87,6 +89,13 @@ export interface ResultIdentity {
87
89
  endpoint: string;
88
90
  origin: string | null;
89
91
  }
92
+ export interface ProgramResultDependency {
93
+ /** Catalog metadata needs visibility, not permission to invoke a write. */
94
+ access?: "catalog";
95
+ connector: string;
96
+ tool?: string;
97
+ classification: "read" | "write";
98
+ }
90
99
  export interface RegistryView {
91
100
  credentialUiAvailable(): boolean;
92
101
  /** Deployment-wide result-size cap threaded to the meta-tools. */
@@ -111,8 +120,8 @@ export interface RegistryView {
111
120
  }): Promise<CallAdmissionPermit>;
112
121
  resultsStorage(): KVStorage;
113
122
  resultIdentity(): ResultIdentity;
114
- /** Recheck live auth/grants and pool admission before exposing stored data. */
115
- recheckResultAccess(address: string | undefined, classification: "read" | "write", signal?: AbortSignal, access?: "catalog"): Promise<boolean>;
123
+ /** One validation pass: admit once, then check every dependency under that scope. */
124
+ recheckResultAccess(dependencies: readonly ProgramResultDependency[], classification: "read" | "write", signal?: AbortSignal): Promise<boolean>;
116
125
  /** Reserve deployment-wide capacity before writing a paging envelope's chunks. */
117
126
  stashResult(id: string, chunks: readonly string[], ttlSeconds: number): Promise<boolean>;
118
127
  /** Local declared-vs-stored credential mismatch, with no downstream I/O. */
@@ -143,7 +152,7 @@ export interface RegistryScope {
143
152
  principalKey?: string;
144
153
  endpoint?: string;
145
154
  origin?: string | null;
146
- currentResultAccess?: (address: string | undefined, classification: "read" | "write", signal?: AbortSignal, access?: "catalog") => Promise<boolean>;
155
+ currentResultAccess?: RegistryView["recheckResultAccess"];
147
156
  /** The admitted caller, readable only by built-in connectors; see connector-caller.ts. */
148
157
  caller?: ConnectorCaller;
149
158
  }
@@ -163,6 +172,7 @@ export declare class Registry implements RegistryView {
163
172
  private readonly catalogAccess;
164
173
  /** Bounded tokens isolating count-only observations by catalog identity. */
165
174
  private readonly catalogObservationPartitions;
175
+ private readonly overrideWarningCatalogs;
166
176
  private readonly observedOutputSchemas;
167
177
  /** Result-size guard cap threaded to the meta-tools. */
168
178
  readonly maxResultBytes: number;
@@ -221,7 +231,6 @@ export declare class Registry implements RegistryView {
221
231
  private catalogPartition;
222
232
  /** Bounded, in-memory tokens; no principal or catalog data is persisted. */
223
233
  private catalogObservationPartition;
224
- private catalogDriftOf;
225
234
  /** Reject queued/future downstream admission; active permits release safely. */
226
235
  closeCallAdmission(): void;
227
236
  /**
@@ -248,7 +257,7 @@ export declare class Registry implements RegistryView {
248
257
  * connector's namespace. Backs connecta.result.
249
258
  */
250
259
  resultIdentity(): ResultIdentity;
251
- recheckResultAccess(_address: string | undefined, _classification: "read" | "write", _signal?: AbortSignal, _access?: "catalog"): Promise<boolean>;
260
+ recheckResultAccess(_dependencies: readonly ProgramResultDependency[], _classification: "read" | "write", _signal?: AbortSignal): Promise<boolean>;
252
261
  resultsStorage(): KVStorage;
253
262
  credentialUiAvailable(): boolean;
254
263
  bindOAuthHandoff(id: string, authorizationUrl: string, principalKey?: string): Promise<void>;
@@ -266,14 +275,11 @@ export declare class Registry implements RegistryView {
266
275
  private acceptToolNames;
267
276
  /**
268
277
  * One connector's catalog as served: the cached downstream facts, classified
269
- * on every read by the connector's `classification`, into fresh objects.
270
- * Safety is derived here and nowhere else, so no cache layer can carry a
271
- * stale verdict — from an older review, an older release, or a stale
272
- * fallback — and nothing a caller or decorator does to a served tool reaches
273
- * the next read.
278
+ * on every read by annotations and deployment overrides, into fresh objects.
279
+ * No cache or caller mutation can carry a stale verdict into the next read.
274
280
  */
275
281
  private loadTools;
276
- private publishUnreviewedTool;
282
+ private publishTool;
277
283
  /** Construction-only view for the secret-free static config description. */
278
284
  describeStaticTools(id: string): ToolDef[] | undefined;
279
285
  private validateClassification;
@@ -282,7 +288,7 @@ export declare class Registry implements RegistryView {
282
288
  /** Age of a complete cache entry; reads never refresh it. */
283
289
  catalogAgeMs(id: string): number | null;
284
290
  /** Pure lookup shared by status probes and operator catalog refreshes. */
285
- withCatalogObservations(id: string, baseUrl: string, status: ConnectorStatus, scope?: RegistryScope): ConnectorStatus;
291
+ withCatalogObservations(id: string, _baseUrl: string, status: ConnectorStatus, _scope?: RegistryScope): ConnectorStatus;
286
292
  /** Best-effort connector status for the operator UI. */
287
293
  statusFor(id: string, baseUrl: string, requestScope?: object, callOptions?: ConnectorOperationOptions, scope?: RegistryScope): Promise<ConnectorStatus>;
288
294
  /** Rotate the storage generation; in-flight old readers cannot republish it. */