@zackbart/connecta 0.28.1 → 0.29.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 (319) hide show
  1. package/CHANGELOG.md +788 -5
  2. package/README.md +62 -42
  3. package/bin/connecta.mjs +110 -139
  4. package/bin/meta-tool-names.d.mts +2 -0
  5. package/bin/meta-tool-names.mjs +9 -0
  6. package/bin/version.mjs +3 -0
  7. package/dist/access-tokens.js +53 -63
  8. package/dist/activity-request.js +8 -0
  9. package/dist/activity.d.ts +76 -42
  10. package/dist/activity.js +110 -42
  11. package/dist/auth/clerk-sdk/client.d.ts +65 -0
  12. package/dist/auth/clerk-sdk/client.js +5 -0
  13. package/dist/auth/clerk-sdk/generated.js +1845 -0
  14. package/dist/auth/clerk-transport.js +19 -0
  15. package/dist/auth/clerk.d.ts +17 -7
  16. package/dist/auth/clerk.js +189 -107
  17. package/dist/auth/cloudflare-access.js +25 -26
  18. package/dist/auth/downstream-client-metadata.d.ts +29 -0
  19. package/dist/auth/downstream-client-metadata.js +133 -0
  20. package/dist/auth/downstream-oauth.js +1584 -1580
  21. package/dist/auth/downstream-revocation.js +106 -0
  22. package/dist/auth/oauth-token-response.js +231 -0
  23. package/dist/auth/oauth-v2-migration.js +116 -0
  24. package/dist/auth/static-oauth.js +93 -71
  25. package/dist/auth-elicitation.js +283 -0
  26. package/dist/branding.d.ts +8 -16
  27. package/dist/branding.js +26 -59
  28. package/dist/byte-read-response.js +39 -0
  29. package/dist/call-admission.js +12 -16
  30. package/dist/catalog-cache.js +739 -0
  31. package/dist/catalog-drift.d.ts +50 -15
  32. package/dist/catalog-drift.js +365 -128
  33. package/dist/catalog-fingerprint.js +2 -4
  34. package/dist/catalog-freshness.js +13 -0
  35. package/dist/catalog-limits.js +2 -2
  36. package/dist/catalog-service.js +368 -224
  37. package/dist/catalog.js +43 -84
  38. package/dist/concurrency.js +3 -4
  39. package/dist/config-defaults.d.ts +39 -0
  40. package/dist/config-defaults.js +46 -0
  41. package/dist/config-schema.d.ts +181 -0
  42. package/dist/config-schema.js +435 -0
  43. package/dist/config-value-sources.js +102 -0
  44. package/dist/config.d.ts +631 -0
  45. package/dist/config.js +503 -0
  46. package/dist/connector-access.d.ts +1 -0
  47. package/dist/connector-access.js +13 -15
  48. package/dist/connector-caller.d.ts +8 -0
  49. package/dist/connector-caller.js +15 -6
  50. package/dist/connector-scope.js +1 -1
  51. package/dist/connectors/api-connector.d.ts +59 -7
  52. package/dist/connectors/api-connector.js +106 -19
  53. package/dist/connectors/api.js +4 -1
  54. package/dist/connectors/guarded-fetch.d.ts +144 -0
  55. package/dist/connectors/guarded-fetch.js +84 -35
  56. package/dist/connectors/negotiation-cache.js +46 -0
  57. package/dist/connectors/option-shapes.js +27 -0
  58. package/dist/connectors/remote-mcp.d.ts +30 -4
  59. package/dist/connectors/remote-mcp.js +1774 -320
  60. package/dist/connectors/resource-uri.js +335 -0
  61. package/dist/credential-contract.d.ts +10 -0
  62. package/dist/credential-rules.js +1 -3
  63. package/dist/credential-url.js +108 -0
  64. package/dist/credentials.d.ts +6 -1
  65. package/dist/credentials.js +27 -18
  66. package/dist/d1.d.ts +130 -0
  67. package/dist/d1.js +290 -0
  68. package/dist/describe-config.d.ts +165 -0
  69. package/dist/describe-config.js +315 -0
  70. package/dist/described.js +106 -0
  71. package/dist/downstream-input-context.js +119 -0
  72. package/dist/downstream-input.js +323 -0
  73. package/dist/errors.d.ts +97 -20
  74. package/dist/errors.js +158 -80
  75. package/dist/execute.js +453 -305
  76. package/dist/executor-admission.d.ts +1 -0
  77. package/dist/executor-admission.js +11 -15
  78. package/dist/executor-contract.d.ts +20 -0
  79. package/dist/executor-contract.js +48 -0
  80. package/dist/executor-result.js +24 -9
  81. package/dist/executors/quickjs-child.js +3 -4
  82. package/dist/executors/quickjs-runtime.js +147 -59
  83. package/dist/executors/quickjs.js +29 -35
  84. package/dist/favicon.js +1 -2
  85. package/dist/fix-prompt.js +1 -3
  86. package/dist/guest-runtime.js +188 -0
  87. package/dist/guest-types.d.ts +176 -0
  88. package/dist/guest-types.js +1 -0
  89. package/dist/html-security.js +24 -0
  90. package/dist/identity.js +1 -3
  91. package/dist/inbound-credential.js +52 -0
  92. package/dist/index.d.ts +24 -256
  93. package/dist/index.js +65 -478
  94. package/dist/invocation-auth.js +69 -0
  95. package/dist/invocation.js +230 -73
  96. package/dist/json-schema.d.ts +1 -1
  97. package/dist/mcp-client-context.js +35 -0
  98. package/dist/mcp-result.js +11 -7
  99. package/dist/meta-output.js +76 -0
  100. package/dist/meta-tool-names.d.ts +2 -0
  101. package/dist/meta-tool-names.js +3 -0
  102. package/dist/meta-tools.js +285 -209
  103. package/dist/module-contracts.d.ts +8 -23
  104. package/dist/node.d.ts +0 -2
  105. package/dist/node.js +2 -2
  106. package/dist/oauth-callback-outcome.js +1 -3
  107. package/dist/oauth-handoff.js +117 -0
  108. package/dist/oauth-sealing.js +20 -0
  109. package/dist/operator-record.d.ts +137 -0
  110. package/dist/operator-record.js +420 -0
  111. package/dist/operator-ui/assets.js +31 -0
  112. package/dist/operator-ui/contract.d.ts +72 -0
  113. package/dist/operator-ui/contract.js +1 -0
  114. package/dist/operator-ui/fix-prompts.d.ts +18 -0
  115. package/dist/operator-ui/generated.js +5 -4
  116. package/dist/operator-ui/model.d.ts +12 -87
  117. package/dist/operator-ui/model.js +2 -9
  118. package/dist/operator-ui/setup-commands.js +1 -3
  119. package/dist/operator-ui/view.d.ts +323 -0
  120. package/dist/operator-ui/view.js +62 -189
  121. package/dist/page-styles.js +2 -3
  122. package/dist/program-source.js +14 -2
  123. package/dist/{exempt-writes.js → program-writes.js} +55 -18
  124. package/dist/provider.d.ts +142 -0
  125. package/dist/provider.js +187 -0
  126. package/dist/providers/_shared/google/result-size.js +57 -0
  127. package/dist/providers/_shared/google/service-account.d.ts +58 -0
  128. package/dist/providers/_shared/google/service-account.js +500 -0
  129. package/dist/providers/_shared/google/workspace.d.ts +276 -0
  130. package/dist/providers/_shared/google/workspace.js +518 -0
  131. package/dist/providers/{basecamp.d.ts → basecamp/index.d.ts} +6 -28
  132. package/dist/providers/basecamp/index.js +997 -0
  133. package/dist/providers/basecamp/skill.generated.js +9 -0
  134. package/dist/providers/{breeze.d.ts → breeze/index.d.ts} +2 -2
  135. package/dist/providers/{breeze.js → breeze/index.js} +184 -140
  136. package/dist/providers/breeze/skill.generated.js +9 -0
  137. package/dist/providers/{ccb.d.ts → ccb/index.d.ts} +2 -2
  138. package/dist/providers/{ccb.js → ccb/index.js} +271 -116
  139. package/dist/providers/ccb/skill.generated.js +9 -0
  140. package/dist/providers/{cloudflare.d.ts → cloudflare/index.d.ts} +8 -7
  141. package/dist/providers/{cloudflare.js → cloudflare/index.js} +171 -738
  142. package/dist/providers/cloudflare/skill.generated.js +10 -0
  143. package/dist/providers/docs/index.d.ts +54 -0
  144. package/dist/providers/docs/index.js +1237 -0
  145. package/dist/providers/docs/skill.generated.js +9 -0
  146. package/dist/providers/drive/index.d.ts +53 -0
  147. package/dist/providers/drive/index.js +1523 -0
  148. package/dist/providers/drive/skill.generated.js +9 -0
  149. package/dist/providers/forms/index.d.ts +54 -0
  150. package/dist/providers/forms/index.js +1217 -0
  151. package/dist/providers/forms/skill.generated.js +11 -0
  152. package/dist/providers/github/auth.d.ts +32 -0
  153. package/dist/providers/github/auth.js +361 -0
  154. package/dist/providers/github/hosted.js +218 -0
  155. package/dist/providers/github/index.d.ts +13 -0
  156. package/dist/providers/github/index.js +140 -0
  157. package/dist/providers/github/key.js +100 -0
  158. package/dist/providers/github/rest.js +321 -0
  159. package/dist/providers/github/scope.d.ts +29 -0
  160. package/dist/providers/github/scope.js +124 -0
  161. package/dist/providers/github/skill.generated.js +8 -0
  162. package/dist/providers/gmail/index.d.ts +51 -0
  163. package/dist/providers/gmail/index.js +1436 -0
  164. package/dist/providers/gmail/skill.generated.js +9 -0
  165. package/dist/providers/{linear.d.ts → linear/index.d.ts} +11 -14
  166. package/dist/providers/linear/index.js +352 -0
  167. package/dist/providers/linear/skill.generated.js +8 -0
  168. package/dist/providers/{mixpanel.d.ts → mixpanel/index.d.ts} +5 -10
  169. package/dist/providers/mixpanel/index.js +416 -0
  170. package/dist/providers/mixpanel/skill.generated.js +9 -0
  171. package/dist/providers/{notion.d.ts → notion/index.d.ts} +8 -8
  172. package/dist/providers/{notion.js → notion/index.js} +226 -239
  173. package/dist/providers/notion/skill.generated.js +10 -0
  174. package/dist/providers/{overflow.d.ts → overflow/index.d.ts} +2 -2
  175. package/dist/providers/{overflow.js → overflow/index.js} +74 -111
  176. package/dist/providers/overflow/skill.generated.js +8 -0
  177. package/dist/providers/{planning-center.d.ts → planning-center/index.d.ts} +2 -2
  178. package/dist/providers/{planning-center.js → planning-center/index.js} +264 -104
  179. package/dist/providers/planning-center/skill.generated.js +10 -0
  180. package/dist/providers/{revenuecat.d.ts → revenuecat/index.d.ts} +5 -10
  181. package/dist/providers/revenuecat/index.js +557 -0
  182. package/dist/providers/revenuecat/skill.generated.js +11 -0
  183. package/dist/providers/sheets/index.d.ts +54 -0
  184. package/dist/providers/sheets/index.js +1237 -0
  185. package/dist/providers/sheets/skill.generated.js +10 -0
  186. package/dist/providers/slides/index.d.ts +53 -0
  187. package/dist/providers/slides/index.js +2645 -0
  188. package/dist/providers/slides/skill.generated.js +9 -0
  189. package/dist/providers/{stripe.d.ts → stripe/index.d.ts} +5 -12
  190. package/dist/providers/stripe/index.js +266 -0
  191. package/dist/providers/stripe/skill.generated.js +11 -0
  192. package/dist/providers/{tithely.d.ts → tithely/index.d.ts} +2 -2
  193. package/dist/providers/{tithely.js → tithely/index.js} +60 -91
  194. package/dist/providers/tithely/skill.generated.js +8 -0
  195. package/dist/providers/{vercel.d.ts → vercel/index.d.ts} +8 -8
  196. package/dist/providers/vercel/index.js +1038 -0
  197. package/dist/providers/vercel/mcp-ownership.js +212 -0
  198. package/dist/providers/vercel/skill.generated.js +11 -0
  199. package/dist/registry.d.ts +108 -171
  200. package/dist/registry.js +513 -925
  201. package/dist/request-state.js +21 -0
  202. package/dist/resource-read.js +100 -0
  203. package/dist/result-shapes.js +17 -49
  204. package/dist/retired-toolkits.js +1 -1
  205. package/dist/routes/access-tokens.js +3 -6
  206. package/dist/routes/activity-context.js +21 -0
  207. package/dist/routes/activity-disclosure.js +40 -0
  208. package/dist/routes/activity.js +59 -21
  209. package/dist/routes/actor-labels.js +3 -50
  210. package/dist/routes/connect.js +221 -0
  211. package/dist/routes/credentials.js +15 -27
  212. package/dist/routes/mcp.js +356 -130
  213. package/dist/routes/oauth-client-metadata.js +15 -0
  214. package/dist/routes/oauth-management.js +45 -107
  215. package/dist/routes/oauth.js +110 -57
  216. package/dist/routes/operator.js +3 -3
  217. package/dist/routes/shared.d.ts +25 -64
  218. package/dist/routes/shared.js +160 -80
  219. package/dist/routes/skills.js +30 -0
  220. package/dist/routes/ui-config.js +225 -0
  221. package/dist/routes/ui-data.js +40 -35
  222. package/dist/routes/ui.js +66 -56
  223. package/dist/runtime/admission.js +4 -2
  224. package/dist/runtime/call-admission.js +3 -1
  225. package/dist/runtime/connector-scope.js +1 -4
  226. package/dist/runtime/run.js +10 -39
  227. package/dist/runtime/services.js +12 -117
  228. package/dist/runtime/shared-read.js +1 -3
  229. package/dist/runtime/storage.js +8 -1
  230. package/dist/sent-secrets.d.ts +52 -0
  231. package/dist/sent-secrets.js +474 -0
  232. package/dist/server.js +28 -71
  233. package/dist/skills.js +406 -174
  234. package/dist/sqlite.d.ts +48 -0
  235. package/dist/sqlite.js +166 -0
  236. package/dist/storage/keys.js +428 -0
  237. package/dist/storage/memory.js +7 -0
  238. package/dist/storage/sql.d.ts +66 -0
  239. package/dist/storage/sql.js +534 -0
  240. package/dist/timeout.js +4 -2
  241. package/dist/tool-name.js +17 -0
  242. package/dist/tool-safety.d.ts +9 -35
  243. package/dist/tool-safety.js +20 -40
  244. package/dist/types.d.ts +320 -54
  245. package/dist/types.js +0 -1
  246. package/dist/ui.d.ts +7 -19
  247. package/dist/ui.js +76 -90
  248. package/dist/url-safety.js +3 -6
  249. package/dist/usage-guide.js +137 -0
  250. package/dist/validate.d.ts +7 -0
  251. package/dist/validate.js +309 -47
  252. package/dist/version.d.ts +1 -7
  253. package/dist/version.js +3 -7
  254. package/dist/worker.d.ts +11 -0
  255. package/dist/worker.js +434 -0
  256. package/documentation/architecture.md +664 -231
  257. package/documentation/auth.md +936 -546
  258. package/documentation/code-mode.md +501 -312
  259. package/documentation/meta-tools.md +449 -200
  260. package/documentation/operator-tests.md +93 -0
  261. package/documentation/provider-migration-0.29.md +60 -0
  262. package/examples/worker/AGENTS.md +34 -12
  263. package/examples/worker/README.md +286 -255
  264. package/examples/worker/kv-to-d1.wrangler.jsonc +26 -0
  265. package/examples/worker/scripts/copy-kv-to-d1.mjs +162 -0
  266. package/examples/worker/src/connecta.config.ts +151 -0
  267. package/examples/worker/src/index.ts +14 -197
  268. package/examples/worker/wrangler.jsonc +15 -35
  269. package/package.json +120 -54
  270. package/templates/node/.dockerignore +1 -2
  271. package/templates/node/.env.example +20 -21
  272. package/templates/node/AGENTS.md +21 -17
  273. package/templates/node/Dockerfile +3 -5
  274. package/templates/node/README.md +133 -58
  275. package/templates/node/docker-compose.yml +11 -12
  276. package/templates/node/package.json +4 -2
  277. package/templates/node/src/connecta.config.ts +119 -0
  278. package/templates/node/src/index.ts +9 -154
  279. package/templates/node/src/provision-token.ts +17 -0
  280. package/AGENTS.md +0 -170
  281. package/dist/artifacts/connector.d.ts +0 -58
  282. package/dist/artifacts/connector.js +0 -730
  283. package/dist/artifacts/document.js +0 -86
  284. package/dist/artifacts/guide.js +0 -140
  285. package/dist/artifacts/html-scan.js +0 -329
  286. package/dist/artifacts/json.js +0 -78
  287. package/dist/artifacts/kv-store.d.ts +0 -20
  288. package/dist/artifacts/kv-store.js +0 -140
  289. package/dist/artifacts/markdown.js +0 -478
  290. package/dist/artifacts/module.d.ts +0 -37
  291. package/dist/artifacts/module.js +0 -66
  292. package/dist/artifacts/operations.d.ts +0 -197
  293. package/dist/artifacts/operations.js +0 -1002
  294. package/dist/artifacts/refresh.d.ts +0 -55
  295. package/dist/artifacts/refresh.js +0 -236
  296. package/dist/artifacts/routes.js +0 -206
  297. package/dist/artifacts/types.d.ts +0 -214
  298. package/dist/artifacts/types.js +0 -22
  299. package/dist/artifacts/validate.d.ts +0 -62
  300. package/dist/artifacts/validate.js +0 -651
  301. package/dist/artifacts.d.ts +0 -6
  302. package/dist/artifacts.js +0 -9
  303. package/dist/auth/bearer.d.ts +0 -11
  304. package/dist/auth/bearer.js +0 -50
  305. package/dist/providers/basecamp.js +0 -445
  306. package/dist/providers/linear.js +0 -217
  307. package/dist/providers/mixpanel.js +0 -247
  308. package/dist/providers/revenuecat.js +0 -317
  309. package/dist/providers/stripe.js +0 -253
  310. package/dist/providers/vercel.js +0 -1253
  311. package/dist/storage/file.d.ts +0 -15
  312. package/dist/storage/file.js +0 -455
  313. package/ethos.md +0 -93
  314. package/examples/worker/src/cloudflare-kv.ts +0 -43
  315. package/examples/worker/src/d1-activity-row.ts +0 -155
  316. package/examples/worker/src/d1-activity.ts +0 -147
  317. package/examples/worker/src/d1-storage.ts +0 -138
  318. package/examples/worker/src/r2-artifact-blobs.ts +0 -29
  319. package/templates/node/src/file-activity.ts +0 -182
package/dist/index.d.ts CHANGED
@@ -1,276 +1,44 @@
1
- import type { CredentialVault } from "./credential-contract.js";
2
1
  import { Registry } from "./registry.js";
3
- import type { ConnectorGrant } from "./connector-access.js";
4
- import type { AccessTokensModule, ActivityModule, ArtifactsModule, OperatorSurface } from "./module-contracts.js";
5
- export type { AccessTokensModule, ActivityModule, ArtifactsModule, OperatorSurface, } from "./module-contracts.js";
2
+ import { type ConnectaConfig } from "./config.js";
3
+ import { type ConnectaConfigDescription } from "./describe-config.js";
4
+ export { customExecutor, type CustomExecutorOptions } from "./executor-contract.js";
5
+ export type { AccessTokensModule, ActivityModule, OperatorSurface } from "./module-contracts.js";
6
6
  export type { CredentialVault, CredentialMetadata } from "./credential-contract.js";
7
- import type { AuthenticatedIdentity, Connector, Executor, IdentityReference, InboundAuth, KVStorage, Logger } from "./types.js";
8
- /** Tool-catalog caching, persistence, stale fallback, and probe deadlines. */
9
- export interface ConnectaDiscoveryConfig {
10
- /**
11
- * Maximum connector catalogs/status probes fetched at once by discovery
12
- * operations. Default 4.
13
- */
14
- concurrency?: number;
15
- /** Tool-list cache TTL (seconds). Default 300. */
16
- catalogTtlSeconds?: number;
17
- /**
18
- * Persist serializable remote tool catalogs in storage so cold isolates can
19
- * discover tools without a downstream handshake. Default true.
20
- */
21
- persistCatalog?: boolean;
22
- /**
23
- * How long an expired persisted catalog remains available as a fallback
24
- * when a live refresh fails. Default 3600 seconds.
25
- */
26
- staleCatalogSeconds?: number;
27
- /**
28
- * Deadline (ms) for each downstream probe/catalog call fanned out by
29
- * `search_tools` and by `connecta.search`/`connecta.describe` inside
30
- * `execute_code`. Defaults to 30_000. A timed-out connector degrades
31
- * independently; this does not apply to tool calls. Catalog walks receive the
32
- * same cancellation signal, which aborts an in-flight page where supported and
33
- * prevents another from starting.
34
- */
35
- probeTimeoutMs?: number;
36
- }
37
- /** Deployment-wide call deadlines and inline-result paging thresholds. */
38
- export interface ConnectaCallsConfig {
39
- /**
40
- * Deadline (ms) for `call_tool`/`call_destructive_tool` calls that pass no
41
- * `timeoutMs`. An explicit per-call value wins. Opt-in: unset by default, so
42
- * existing long-running calls gain no surprise deadline.
43
- *
44
- * Each call makes one attempt. `execute_code` host calls are
45
- * unaffected because they already carry their own bound.
46
- */
47
- defaultTimeoutMs?: number;
48
- /**
49
- * Max inline result size (bytes) before truncation and `get_result` paging.
50
- * Must be a finite whole number >= 1; invalid values warn and fall back to
51
- * 24_000. Connectors may override it individually.
52
- */
53
- maxResultBytes?: number;
54
- }
55
- /** Runtime-wide bounds for transient direct-call result paging. */
56
- export interface ConnectaResultsConfig {
57
- /** Stored bytes, including the paging envelope. Default 8 MiB. Zero disables stashing. */
58
- maxStashBytes?: number;
59
- /** Stored or in-flight entries. Default 64. Zero disables stashing. */
60
- maxStashEntries?: number;
61
- }
62
- /** Budgets for execute_code programs: host calls and rich output (`connecta.emit`). */
63
- export interface ConnectaExecuteConfig {
64
- /**
65
- * Aggregate serialized bytes `connecta.emit` accepts per run. Default
66
- * 4_000_000 — a transport bound, not a context bound: emitted image/audio
67
- * blocks reach the model as media, not base64 text. Invalid values fall
68
- * back to the default.
69
- */
70
- maxEmittedBytes?: number;
71
- /** Content blocks `connecta.emit` accepts per run. Default 32. */
72
- maxEmittedBlocks?: number;
73
- /**
74
- * Host calls one program may make. Default 20. Invalid values fall back to
75
- * the default.
76
- */
77
- maxHostCalls?: number;
78
- /**
79
- * Deadline for each host call a program makes, in milliseconds. Default
80
- * 15_000. Raise it for providers whose legitimate calls run longer, such as
81
- * analytics queries; `call_tool`'s own `timeoutMs` is unaffected. Invalid
82
- * values fall back to the default.
83
- */
84
- hostCallTimeoutMs?: number;
85
- /**
86
- * Hard ceiling on one execution, in milliseconds, enforced outside the
87
- * sandbox. Default 120_000, above both executors' own deadlines (QuickJS
88
- * 30_000, the Dynamic Worker 60_000), so it only ends a run whose executor
89
- * never settled; that run fails as unresponsive and its admission slot is
90
- * released. Keep it above any raised executor deadline. Invalid values
91
- * fall back to the default.
92
- */
93
- watchdogMs?: number;
94
- /**
95
- * Config-exempt writes one program may send, on top of the host-call
96
- * budget every call already spends. Default 10. Invalid values fall back
97
- * to the default.
98
- */
99
- maxWrites?: number;
100
- /**
101
- * Which writes a program may make without asking. A program runs only
102
- * explicitly read-only tools and these; every other write is refused and
103
- * goes through `call_destructive_tool`, where the host asks. Keys are
104
- * connector ids (all of that connector's tools) or `connector.tool`
105
- * addresses (that tool); values are `"never"` (never ask) or `"ask"`. The
106
- * most specific key wins, and `"ask"` switches off a connector's own
107
- * default. An exempt write still spends the write budget and is recorded
108
- * in activity; it is never read-only anywhere else — discovery still lists
109
- * it as approval-required and `call_tool` still refuses it. An unknown
110
- * connector id, or an `api()` address its tools do not include, refuses to
111
- * construct; a remote connector's tool names load later, so an address
112
- * naming one it never serves simply never matches.
113
- */
114
- approval?: Readonly<Record<string, "never" | "ask">>;
115
- }
116
- export interface AdmissionPoolConfig {
117
- /** Simultaneous work admitted to this pool. */
118
- concurrency?: number;
119
- /** Callers allowed to wait behind active work. Set zero to fail fast. */
120
- maxQueueSize?: number;
121
- /** Maximum queue wait in milliseconds. */
122
- queueTimeoutMs?: number;
123
- /** Retry hint returned with overload failures, in milliseconds. */
124
- retryAfterMs?: number;
125
- }
126
- export interface RequestAdmissionConfig extends AdmissionPoolConfig {
127
- /** Hard lifetime of an admitted /mcp request. Default 300,000 ms. */
128
- maxDurationMs?: number;
129
- }
130
- /**
131
- * Runtime-portable server-memory boundaries. `/health` and operator routes do
132
- * not consume these permits, so they remain responsive during MCP saturation.
133
- */
134
- export interface ConnectaAdmissionConfig {
135
- /**
136
- * The `/mcp` request boundary. Defaults to 16 active, 32 queued, and a
137
- * 5-second maximum wait.
138
- */
139
- requests?: RequestAdmissionConfig;
140
- /**
141
- * Fallback pool for an `executor` that does not implement its own `acquire`.
142
- * Defaults to 2 active, 8 queued, and a 5-second maximum wait. Bounded
143
- * executors (including `quickJsExecutor`) keep their own tighter pool.
144
- */
145
- code?: AdmissionPoolConfig;
146
- }
147
- /** Config-owned identity rules for one deployment and tenant. */
148
- export type ConnectorPermission = "all" | "none" | readonly string[];
149
- export interface ConnectaIdentityConfig {
150
- /**
151
- * What this admitted identity may discover and call: `"all"`, or a list
152
- * whose entries are connector ids (the whole connector) and `connector.tool`
153
- * addresses (that tool only), or `{ tool: "connector.tool",
154
- * requireReadOnly: true }` for an exact tool only while its loaded catalog
155
- * explicitly classifies it read-only. Grants are additive: an unrestricted
156
- * connector or address grant wins over the guarded form. An address naming
157
- * a tool the catalog lacks is unreachable and warned once, never widened.
158
- */
159
- connectorAccess?(identity: Readonly<AuthenticatedIdentity>): "all" | readonly ConnectorGrant[] | Promise<"all" | readonly ConnectorGrant[]>;
160
- /** Global payload-free activity reads. Defaults to interactive humans. */
161
- activityAccess?(principal: Readonly<IdentityReference>): boolean | Promise<boolean>;
162
- /** Shared credential and OAuth administration. Defaults to none. */
163
- credentialAdministration?(identity: Readonly<AuthenticatedIdentity>): ConnectorPermission | Promise<ConnectorPermission>;
164
- /** Client-token lifecycle management by interactive humans. Defaults to false. */
165
- accessTokenManagement?(identity: Readonly<AuthenticatedIdentity>): boolean | Promise<boolean>;
166
- /** Connecting or changing the caller's personal account. Defaults to none. */
167
- personalConnection?(identity: Readonly<AuthenticatedIdentity>): ConnectorPermission | Promise<ConnectorPermission>;
168
- }
169
- /**
170
- * A named tool pool served at `/mcp/<name>`. The pool is the slice a client
171
- * pointed at that endpoint may see; the identity's own `connectorAccess`
172
- * remains its ceiling and the pool can only narrow it.
173
- */
174
- export interface ConnectaPoolConfig {
175
- /** Connector ids and exact `connector.tool` addresses in this pool. */
176
- tools: readonly string[];
177
- /**
178
- * Whether this admitted identity may open the pool. Denied by default:
179
- * a pool with no grant serves nobody. A false return, a throw, and an
180
- * undeclared pool name are the same 404.
181
- */
182
- grant?(identity: Readonly<AuthenticatedIdentity>): boolean | Promise<boolean>;
183
- }
184
- export interface ConnectaConfig {
185
- connectors: Connector[];
186
- /** Inbound auth adapters. Includes bearerToken(...); omit for open (dev). */
187
- auth?: InboundAuth | InboundAuth[];
188
- /** Code-derived connection visibility and independent management permissions. */
189
- identity?: ConnectaIdentityConfig;
190
- /** Named tool pools, each served at `/mcp/<name>` to identities its grant admits. */
191
- pools?: Record<string, ConnectaPoolConfig>;
192
- /** KVStorage impl. Defaults to memoryStorage(). */
193
- storage?: KVStorage;
194
- /**
195
- * Public base URL. Defaults to the request origin per-request. Configuring an
196
- * HTTPS URL also redirects matching inbound HTTP requests to HTTPS.
197
- */
198
- publicUrl?: string;
199
- /**
200
- * Exact browser MCP origins, or "*". Defaults to publicUrl's origin and
201
- * HTTP(S) loopback origins at any port. Originless clients are admitted.
202
- */
203
- allowedOrigins?: readonly string[] | "*";
204
- /** Optional recorder and reader, created by activityHistory() from /activity. */
205
- activity?: ActivityModule;
206
- /** Replaceable owner-partitioned credential storage. Omit for config-owned secrets. */
207
- vault?: CredentialVault;
208
- /** Optional connection UI, created by operatorUi() from /ui. */
209
- ui?: OperatorSurface;
210
- /**
211
- * Optional team pages over stored data, created by artifacts() from
212
- * /artifacts. Adds the built-in `artifacts` connector; needs `publicUrl`,
213
- * because the links it hands out are shared.
214
- */
215
- artifacts?: ArtifactsModule;
216
- /** Optional managed client tokens, created by accessTokens() from /auth/access-tokens. */
217
- accessTokens?: AccessTokensModule;
218
- /** Optional dedicated HTTPS origin that serves only artifact pages and their library. */
219
- artifactOrigin?: string;
220
- /** Tool-catalog caching, persistence, stale fallback, and probe deadlines. */
221
- discovery?: ConnectaDiscoveryConfig;
222
- /** Deployment-wide call deadlines and result paging threshold. */
223
- calls?: ConnectaCallsConfig;
224
- /** Runtime-wide transient result stash limits, shared across subjects. */
225
- results?: ConnectaResultsConfig;
226
- /** Budgets for the `connecta.emit` rich-output channel in execute_code. */
227
- execute?: ConnectaExecuteConfig;
228
- /** Bounded MCP and fallback code-mode admission. */
229
- admission?: ConnectaAdmissionConfig;
230
- /** Diagnostic output. Use "silent" to disable all diagnostic logging. */
231
- logger?: Logger | "silent";
232
- serverInfo?: {
233
- name?: string;
234
- version?: string;
235
- /** Human-readable name clients may show instead of `name`. */
236
- title?: string;
237
- /** Homepage clients may link from the server listing. */
238
- websiteUrl?: string;
239
- /** MCP icons-spec entries; clients render these instead of a scraped favicon. */
240
- icons?: Array<{
241
- src: string;
242
- mimeType?: string;
243
- sizes?: string[];
244
- }>;
245
- };
246
- /** Deployment metadata exposed by /health (for example a Worker version). */
247
- deploymentInfo?: Record<string, unknown>;
248
- /**
249
- * Required sandbox for `execute_code`. Workers use
250
- * `new DynamicWorkerExecutor({ loader: env.LOADER })` from
251
- * `@cloudflare/codemode`; Node uses `quickJsExecutor()` from
252
- * `@zackbart/connecta/quickjs`.
253
- */
254
- executor: Executor;
255
- }
7
+ export { defineConfig } from "./config.js";
8
+ export type { AdmissionPoolConfig, ConnectaAdmissionConfig, ConnectaCallsConfig, ConnectaConfig, ConnectaDiscoveryConfig, ConnectaExecuteConfig, ConnectaIdentityConfig, ConnectaPoolConfig, ConnectaResultsConfig, ConnectorPermission, RequestAdmissionConfig, } from "./config.js";
9
+ export type { ConfigValueSource, ConnectaConfigDescription, DescribedConnector, DescribedLimit, } from "./describe-config.js";
256
10
  export interface Connecta {
257
11
  /** Web-standard fetch handler. Usable as `export default { fetch: connecta.fetch }`. */
258
12
  fetch: (request: Request, env?: unknown, ctx?: unknown) => Promise<Response>;
259
13
  registry: Registry;
14
+ /**
15
+ * A secret-free snapshot of the configuration this deployment runs with,
16
+ * built once at construction: limits and where each came from, auth
17
+ * providers, identity rules, pools, modules, and every connector's source,
18
+ * endpoint, auth mode, and static tools. Header values, keys, client
19
+ * secrets, credentials, and functions never appear. The same object is
20
+ * returned on every call.
21
+ */
22
+ describeConfig: () => ConnectaConfigDescription;
260
23
  /** Drain and release configured executor resources. Idempotent. */
261
24
  close: () => Promise<void>;
262
25
  }
263
26
  export declare function createConnecta(config: ConnectaConfig): Connecta;
264
27
  export { remoteMcp } from "./connectors/remote-mcp.js";
265
28
  export { api } from "./connectors/api.js";
29
+ export { keys, optionsOf, array, opaque, instance, strings, variants } from "./config-schema.js";
30
+ export { defineProvider, PROVIDER_COMMON } from "./provider.js";
31
+ export type { ProviderContext, ProviderDefinition, ProviderFactory, ProviderGuideInput, ProviderKind, ProviderOptions, ProviderSkill, } from "./provider.js";
266
32
  export { ConnectorCallError } from "./errors.js";
267
33
  export type { ConnectorCallErrorCode, CallErrorDetails } from "./errors.js";
268
34
  export { validateToolInput } from "./validate.js";
269
35
  export type { ValidateToolInputOptions } from "./validate.js";
270
36
  export { memoryStorage } from "./storage/memory.js";
271
37
  export { CONNECTA_VERSION } from "./version.js";
38
+ export type { GuestApi, GuestResourceResult, GuestResult, GuestResultPage, GuestBlock } from "./guest-types.js";
272
39
  export type { Registry } from "./registry.js";
273
- export type { RemoteMcpOptions, RemoteMcpAuth, RemoteMcpRedirectPolicy, } from "./connectors/remote-mcp.js";
40
+ export type { RemoteMcpOptions, RemoteMcpAuth, RemoteMcpRedirectPolicy } from "./connectors/remote-mcp.js";
274
41
  export type { ApiHandlerContext, ApiOAuthAccess, ApiOAuthClientAuthentication, ApiOAuthConfig, ApiOptions, ApiTool, } from "./connectors/api.js";
275
- export type { CatalogDriftCounts, CatalogDriftReport, ConnectaBranding, ConnectaTheme, Connector, ConnectorCallAdmissionInput, ConnectorCallAdmissionPolicy, ConnectorCallAdmissionRule, ConnectorRollingWindowBudget, ConnectorCredentialAccess, ConnectorCredentialConfig, ConnectorCredentialFieldConfig, ConnectorCredentialValues, ConnectorContext, ConnectorUsageGuide, ConnectorStatus, CredentialTestResult, AdmittingExecutor, AdmissionSnapshot, ExecuteResult, Executor, ExecutorLease, ExecutorProvider, InboundAuth, InboundAuthRuntimeContext, UiAuthConfig, AuthResult, AuthenticatedIdentity, IdentityReference, JsonSchema, KVStorage, Logger, ToolDef, ToolAnnotations, } from "./types.js";
276
- export type { ActivityActor, ActivityCallSource, ActivityOutcome, ActivityPage, ActivityReadActor, ActivityReadEvent, ActivityReader, ActivityReadGate, ActivityReadPage, ActivitySink, ActivityStore, AgentFriction, CatalogDriftActivityEvent, ToolCallActivityEvent, } from "./activity.js";
42
+ export type { CatalogDriftCounts, CatalogDriftReport, ConnectaBranding, ConnectaTheme, Connector, ConnectorCallAdmissionInput, ConnectorCallAdmissionPolicy, ConnectorCallAdmissionRule, ConnectorRollingWindowBudget, ConnectorCredentialAccess, ConnectorCredentialConfig, ConnectorCredentialFieldConfig, ConnectorCredentialValues, ConnectorContext, ConnectorAuthDescription, ConnectorDescription, ConnectorToolDescription, ConnectorUsageGuide, ConnectorSkill, ConnectorSkillResourceContents, DescribedEndpoint, ConnectorStatus, CredentialTestResult, AdmittingExecutor, AdmissionSnapshot, ExecuteResult, Executor, ExecutorLease, ExecutorProvider, InboundAuth, InboundAuthRuntimeContext, UiAuthConfig, AuthResult, AuthenticatedIdentity, IdentityReference, JsonSchema, KVStorage, Logger, ReviewedTool, ToolClassification, ToolDef, ToolAnnotations, ToolVerdict, } from "./types.js";
43
+ export type { ActivityActor, ActivityCatalogChange, ActivityCallSource, ActivityOutcome, ActivityPage, ActivityReadActor, ActivityReadEvent, ActivityReader, ActivityReadGate, ActivityReadPage, ActivitySink, ActivityStore, AgentFriction, ToolCallActivityEvent, } from "./activity.js";
44
+ export { META_TOOL_NAMES } from "./meta-tool-names.js";