@zackbart/connecta 0.28.0 → 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 (320) hide show
  1. package/CHANGELOG.md +961 -5
  2. package/README.md +62 -39
  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 +1632 -1509
  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 +526 -0
  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 +220 -0
  52. package/dist/connectors/api-connector.js +214 -0
  53. package/dist/connectors/api.d.ts +8 -71
  54. package/dist/connectors/api.js +13 -99
  55. package/dist/connectors/guarded-fetch.d.ts +144 -0
  56. package/dist/connectors/guarded-fetch.js +108 -25
  57. package/dist/connectors/negotiation-cache.js +46 -0
  58. package/dist/connectors/option-shapes.js +27 -0
  59. package/dist/connectors/remote-mcp.d.ts +30 -4
  60. package/dist/connectors/remote-mcp.js +1780 -351
  61. package/dist/connectors/resource-uri.js +335 -0
  62. package/dist/credential-contract.d.ts +10 -0
  63. package/dist/credential-rules.js +1 -3
  64. package/dist/credential-url.js +108 -0
  65. package/dist/credentials.d.ts +6 -1
  66. package/dist/credentials.js +27 -18
  67. package/dist/d1.d.ts +130 -0
  68. package/dist/d1.js +290 -0
  69. package/dist/describe-config.d.ts +165 -0
  70. package/dist/describe-config.js +315 -0
  71. package/dist/described.js +106 -0
  72. package/dist/downstream-input-context.js +119 -0
  73. package/dist/downstream-input.js +323 -0
  74. package/dist/errors.d.ts +97 -20
  75. package/dist/errors.js +158 -80
  76. package/dist/execute.js +453 -305
  77. package/dist/executor-admission.d.ts +1 -0
  78. package/dist/executor-admission.js +11 -15
  79. package/dist/executor-contract.d.ts +20 -0
  80. package/dist/executor-contract.js +48 -0
  81. package/dist/executor-result.js +24 -9
  82. package/dist/executors/quickjs-child.js +3 -4
  83. package/dist/executors/quickjs-runtime.js +147 -59
  84. package/dist/executors/quickjs.js +29 -35
  85. package/dist/favicon.js +1 -2
  86. package/dist/fix-prompt.js +1 -3
  87. package/dist/guest-runtime.js +188 -0
  88. package/dist/guest-types.d.ts +176 -0
  89. package/dist/guest-types.js +1 -0
  90. package/dist/html-security.js +24 -0
  91. package/dist/identity.js +1 -3
  92. package/dist/inbound-credential.js +52 -0
  93. package/dist/index.d.ts +25 -257
  94. package/dist/index.js +65 -478
  95. package/dist/invocation-auth.js +69 -0
  96. package/dist/invocation.js +230 -73
  97. package/dist/json-schema.d.ts +1 -1
  98. package/dist/mcp-client-context.js +35 -0
  99. package/dist/mcp-result.js +11 -7
  100. package/dist/meta-output.js +76 -0
  101. package/dist/meta-tool-names.d.ts +2 -0
  102. package/dist/meta-tool-names.js +3 -0
  103. package/dist/meta-tools.js +285 -209
  104. package/dist/module-contracts.d.ts +8 -23
  105. package/dist/node.d.ts +0 -2
  106. package/dist/node.js +2 -2
  107. package/dist/oauth-callback-outcome.js +1 -3
  108. package/dist/oauth-handoff.js +117 -0
  109. package/dist/oauth-partition.js +17 -0
  110. package/dist/oauth-sealing.js +20 -0
  111. package/dist/operator-record.d.ts +137 -0
  112. package/dist/operator-record.js +420 -0
  113. package/dist/operator-ui/assets.js +31 -0
  114. package/dist/operator-ui/contract.d.ts +72 -0
  115. package/dist/operator-ui/contract.js +1 -0
  116. package/dist/operator-ui/fix-prompts.d.ts +18 -0
  117. package/dist/operator-ui/generated.js +5 -4
  118. package/dist/operator-ui/model.d.ts +12 -87
  119. package/dist/operator-ui/model.js +2 -9
  120. package/dist/operator-ui/setup-commands.js +1 -3
  121. package/dist/operator-ui/view.d.ts +323 -0
  122. package/dist/operator-ui/view.js +62 -189
  123. package/dist/page-styles.js +2 -3
  124. package/dist/program-source.js +14 -2
  125. package/dist/{exempt-writes.js → program-writes.js} +55 -18
  126. package/dist/provider.d.ts +142 -0
  127. package/dist/provider.js +187 -0
  128. package/dist/providers/_shared/google/result-size.js +57 -0
  129. package/dist/providers/_shared/google/service-account.d.ts +58 -0
  130. package/dist/providers/_shared/google/service-account.js +500 -0
  131. package/dist/providers/_shared/google/workspace.d.ts +276 -0
  132. package/dist/providers/_shared/google/workspace.js +518 -0
  133. package/dist/providers/basecamp/index.d.ts +43 -0
  134. package/dist/providers/basecamp/index.js +997 -0
  135. package/dist/providers/basecamp/skill.generated.js +9 -0
  136. package/dist/providers/breeze/index.d.ts +34 -0
  137. package/dist/providers/breeze/index.js +1446 -0
  138. package/dist/providers/breeze/skill.generated.js +9 -0
  139. package/dist/providers/ccb/index.d.ts +103 -0
  140. package/dist/providers/ccb/index.js +1725 -0
  141. package/dist/providers/ccb/skill.generated.js +9 -0
  142. package/dist/providers/{cloudflare.d.ts → cloudflare/index.d.ts} +8 -7
  143. package/dist/providers/{cloudflare.js → cloudflare/index.js} +171 -738
  144. package/dist/providers/cloudflare/skill.generated.js +10 -0
  145. package/dist/providers/docs/index.d.ts +54 -0
  146. package/dist/providers/docs/index.js +1237 -0
  147. package/dist/providers/docs/skill.generated.js +9 -0
  148. package/dist/providers/drive/index.d.ts +53 -0
  149. package/dist/providers/drive/index.js +1523 -0
  150. package/dist/providers/drive/skill.generated.js +9 -0
  151. package/dist/providers/forms/index.d.ts +54 -0
  152. package/dist/providers/forms/index.js +1217 -0
  153. package/dist/providers/forms/skill.generated.js +11 -0
  154. package/dist/providers/github/auth.d.ts +32 -0
  155. package/dist/providers/github/auth.js +361 -0
  156. package/dist/providers/github/hosted.js +218 -0
  157. package/dist/providers/github/index.d.ts +13 -0
  158. package/dist/providers/github/index.js +140 -0
  159. package/dist/providers/github/key.js +100 -0
  160. package/dist/providers/github/rest.js +321 -0
  161. package/dist/providers/github/scope.d.ts +29 -0
  162. package/dist/providers/github/scope.js +124 -0
  163. package/dist/providers/github/skill.generated.js +8 -0
  164. package/dist/providers/gmail/index.d.ts +51 -0
  165. package/dist/providers/gmail/index.js +1436 -0
  166. package/dist/providers/gmail/skill.generated.js +9 -0
  167. package/dist/providers/{linear.d.ts → linear/index.d.ts} +11 -14
  168. package/dist/providers/linear/index.js +352 -0
  169. package/dist/providers/linear/skill.generated.js +8 -0
  170. package/dist/providers/{mixpanel.d.ts → mixpanel/index.d.ts} +5 -10
  171. package/dist/providers/mixpanel/index.js +416 -0
  172. package/dist/providers/mixpanel/skill.generated.js +9 -0
  173. package/dist/providers/{notion.d.ts → notion/index.d.ts} +8 -8
  174. package/dist/providers/{notion.js → notion/index.js} +226 -239
  175. package/dist/providers/notion/skill.generated.js +10 -0
  176. package/dist/providers/overflow/index.d.ts +60 -0
  177. package/dist/providers/overflow/index.js +1535 -0
  178. package/dist/providers/overflow/skill.generated.js +8 -0
  179. package/dist/providers/planning-center/index.d.ts +59 -0
  180. package/dist/providers/planning-center/index.js +2199 -0
  181. package/dist/providers/planning-center/skill.generated.js +10 -0
  182. package/dist/providers/{revenuecat.d.ts → revenuecat/index.d.ts} +5 -10
  183. package/dist/providers/revenuecat/index.js +557 -0
  184. package/dist/providers/revenuecat/skill.generated.js +11 -0
  185. package/dist/providers/sheets/index.d.ts +54 -0
  186. package/dist/providers/sheets/index.js +1237 -0
  187. package/dist/providers/sheets/skill.generated.js +10 -0
  188. package/dist/providers/slides/index.d.ts +53 -0
  189. package/dist/providers/slides/index.js +2645 -0
  190. package/dist/providers/slides/skill.generated.js +9 -0
  191. package/dist/providers/{stripe.d.ts → stripe/index.d.ts} +5 -12
  192. package/dist/providers/stripe/index.js +266 -0
  193. package/dist/providers/stripe/skill.generated.js +11 -0
  194. package/dist/providers/tithely/index.d.ts +49 -0
  195. package/dist/providers/tithely/index.js +1003 -0
  196. package/dist/providers/tithely/skill.generated.js +8 -0
  197. package/dist/providers/{vercel.d.ts → vercel/index.d.ts} +8 -8
  198. package/dist/providers/vercel/index.js +1038 -0
  199. package/dist/providers/vercel/mcp-ownership.js +212 -0
  200. package/dist/providers/vercel/skill.generated.js +11 -0
  201. package/dist/registry.d.ts +108 -171
  202. package/dist/registry.js +513 -925
  203. package/dist/request-state.js +21 -0
  204. package/dist/resource-read.js +100 -0
  205. package/dist/result-shapes.js +17 -49
  206. package/dist/retired-toolkits.js +1 -1
  207. package/dist/routes/access-tokens.js +3 -6
  208. package/dist/routes/activity-context.js +21 -0
  209. package/dist/routes/activity-disclosure.js +40 -0
  210. package/dist/routes/activity.js +59 -21
  211. package/dist/routes/actor-labels.js +3 -50
  212. package/dist/routes/connect.js +221 -0
  213. package/dist/routes/credentials.js +15 -27
  214. package/dist/routes/mcp.js +356 -130
  215. package/dist/routes/oauth-client-metadata.js +15 -0
  216. package/dist/routes/oauth-management.js +45 -107
  217. package/dist/routes/oauth.js +136 -57
  218. package/dist/routes/operator.js +3 -3
  219. package/dist/routes/shared.d.ts +25 -64
  220. package/dist/routes/shared.js +160 -80
  221. package/dist/routes/skills.js +30 -0
  222. package/dist/routes/ui-config.js +225 -0
  223. package/dist/routes/ui-data.js +40 -35
  224. package/dist/routes/ui.js +66 -56
  225. package/dist/runtime/admission.js +4 -2
  226. package/dist/runtime/call-admission.js +3 -1
  227. package/dist/runtime/connector-scope.js +1 -4
  228. package/dist/runtime/run.js +10 -39
  229. package/dist/runtime/services.js +12 -117
  230. package/dist/runtime/shared-read.js +1 -3
  231. package/dist/runtime/storage.js +8 -1
  232. package/dist/sent-secrets.d.ts +52 -0
  233. package/dist/sent-secrets.js +474 -0
  234. package/dist/server.js +28 -71
  235. package/dist/skills.js +406 -174
  236. package/dist/sqlite.d.ts +48 -0
  237. package/dist/sqlite.js +166 -0
  238. package/dist/storage/keys.js +428 -0
  239. package/dist/storage/memory.js +7 -0
  240. package/dist/storage/sql.d.ts +66 -0
  241. package/dist/storage/sql.js +534 -0
  242. package/dist/timeout.js +4 -2
  243. package/dist/tool-name.js +17 -0
  244. package/dist/tool-safety.d.ts +9 -35
  245. package/dist/tool-safety.js +20 -40
  246. package/dist/types.d.ts +320 -54
  247. package/dist/types.js +0 -1
  248. package/dist/ui.d.ts +7 -19
  249. package/dist/ui.js +76 -90
  250. package/dist/url-safety.js +3 -6
  251. package/dist/usage-guide.js +137 -0
  252. package/dist/validate.d.ts +7 -0
  253. package/dist/validate.js +309 -47
  254. package/dist/version.d.ts +1 -7
  255. package/dist/version.js +3 -7
  256. package/dist/worker.d.ts +11 -0
  257. package/dist/worker.js +434 -0
  258. package/documentation/architecture.md +665 -230
  259. package/documentation/auth.md +962 -458
  260. package/documentation/code-mode.md +501 -312
  261. package/documentation/meta-tools.md +449 -200
  262. package/documentation/operator-tests.md +93 -0
  263. package/documentation/provider-migration-0.29.md +60 -0
  264. package/examples/worker/AGENTS.md +34 -12
  265. package/examples/worker/README.md +286 -255
  266. package/examples/worker/kv-to-d1.wrangler.jsonc +26 -0
  267. package/examples/worker/scripts/copy-kv-to-d1.mjs +162 -0
  268. package/examples/worker/src/connecta.config.ts +151 -0
  269. package/examples/worker/src/index.ts +14 -197
  270. package/examples/worker/wrangler.jsonc +15 -35
  271. package/package.json +125 -35
  272. package/templates/node/.dockerignore +1 -2
  273. package/templates/node/.env.example +20 -21
  274. package/templates/node/AGENTS.md +21 -17
  275. package/templates/node/Dockerfile +3 -5
  276. package/templates/node/README.md +133 -58
  277. package/templates/node/docker-compose.yml +11 -12
  278. package/templates/node/package.json +4 -2
  279. package/templates/node/src/connecta.config.ts +119 -0
  280. package/templates/node/src/index.ts +9 -154
  281. package/templates/node/src/provision-token.ts +17 -0
  282. package/AGENTS.md +0 -170
  283. package/dist/artifacts/connector.d.ts +0 -58
  284. package/dist/artifacts/connector.js +0 -730
  285. package/dist/artifacts/document.js +0 -86
  286. package/dist/artifacts/guide.js +0 -140
  287. package/dist/artifacts/html-scan.js +0 -329
  288. package/dist/artifacts/json.js +0 -78
  289. package/dist/artifacts/kv-store.d.ts +0 -20
  290. package/dist/artifacts/kv-store.js +0 -140
  291. package/dist/artifacts/markdown.js +0 -478
  292. package/dist/artifacts/module.d.ts +0 -37
  293. package/dist/artifacts/module.js +0 -66
  294. package/dist/artifacts/operations.d.ts +0 -197
  295. package/dist/artifacts/operations.js +0 -1002
  296. package/dist/artifacts/refresh.d.ts +0 -55
  297. package/dist/artifacts/refresh.js +0 -236
  298. package/dist/artifacts/routes.js +0 -206
  299. package/dist/artifacts/types.d.ts +0 -214
  300. package/dist/artifacts/types.js +0 -22
  301. package/dist/artifacts/validate.d.ts +0 -62
  302. package/dist/artifacts/validate.js +0 -651
  303. package/dist/artifacts.d.ts +0 -6
  304. package/dist/artifacts.js +0 -9
  305. package/dist/auth/bearer.d.ts +0 -11
  306. package/dist/auth/bearer.js +0 -50
  307. package/dist/providers/linear.js +0 -217
  308. package/dist/providers/mixpanel.js +0 -247
  309. package/dist/providers/revenuecat.js +0 -317
  310. package/dist/providers/stripe.js +0 -253
  311. package/dist/providers/vercel.js +0 -1253
  312. package/dist/storage/file.d.ts +0 -15
  313. package/dist/storage/file.js +0 -455
  314. package/ethos.md +0 -93
  315. package/examples/worker/src/cloudflare-kv.ts +0 -43
  316. package/examples/worker/src/d1-activity-row.ts +0 -155
  317. package/examples/worker/src/d1-activity.ts +0 -147
  318. package/examples/worker/src/d1-storage.ts +0 -138
  319. package/examples/worker/src/r2-artifact-blobs.ts +0 -29
  320. 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";
274
- export type { 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";
40
+ export type { RemoteMcpOptions, RemoteMcpAuth, RemoteMcpRedirectPolicy } from "./connectors/remote-mcp.js";
41
+ export type { ApiHandlerContext, ApiOAuthAccess, ApiOAuthClientAuthentication, ApiOAuthConfig, ApiOptions, ApiTool, } from "./connectors/api.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";