@zackbart/connecta 0.24.3 → 0.25.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 (145) hide show
  1. package/AGENTS.md +58 -30
  2. package/CHANGELOG.md +317 -1
  3. package/README.md +5 -6
  4. package/dist/advertised-schema.js +53 -0
  5. package/dist/auth/downstream-oauth.js +490 -106
  6. package/dist/branding.d.ts +31 -2
  7. package/dist/branding.js +116 -8
  8. package/dist/call-admission.js +139 -113
  9. package/dist/catalog-service.js +141 -105
  10. package/dist/catalog.js +258 -33
  11. package/dist/concurrency.js +24 -23
  12. package/dist/connector-scope.js +6 -37
  13. package/dist/connectors/api.d.ts +3 -3
  14. package/dist/connectors/api.js +10 -2
  15. package/dist/connectors/guarded-fetch.js +34 -4
  16. package/dist/connectors/remote-mcp.d.ts +6 -5
  17. package/dist/connectors/remote-mcp.js +325 -245
  18. package/dist/credential-contract.d.ts +9 -0
  19. package/dist/credential-rules.js +2 -2
  20. package/dist/credentials.d.ts +6 -1
  21. package/dist/credentials.js +45 -3
  22. package/dist/errors.d.ts +11 -3
  23. package/dist/errors.js +2 -1
  24. package/dist/execute.js +363 -257
  25. package/dist/executor-admission.js +67 -50
  26. package/dist/executors/quickjs-runtime.js +4 -2
  27. package/dist/executors/quickjs.js +251 -210
  28. package/dist/fix-prompt.js +37 -0
  29. package/dist/index.d.ts +11 -2
  30. package/dist/index.js +63 -21
  31. package/dist/invocation.js +324 -285
  32. package/dist/meta-tools.js +304 -114
  33. package/dist/oauth-callback-outcome.js +94 -0
  34. package/dist/oauth-sealing.js +29 -0
  35. package/dist/operator-ui/fix-prompts.js +87 -0
  36. package/dist/operator-ui/generated.js +2 -2
  37. package/dist/operator-ui/model.d.ts +46 -1
  38. package/dist/operator-ui/setup-commands.js +53 -0
  39. package/dist/operator-ui/view.js +109 -2
  40. package/dist/program-source.js +205 -0
  41. package/dist/providers/cloudflare.d.ts +14 -2
  42. package/dist/providers/cloudflare.js +107 -16
  43. package/dist/providers/linear.d.ts +26 -4
  44. package/dist/providers/linear.js +19 -4
  45. package/dist/providers/mixpanel.d.ts +16 -3
  46. package/dist/providers/mixpanel.js +13 -2
  47. package/dist/providers/notion.d.ts +8 -1
  48. package/dist/providers/notion.js +85 -12
  49. package/dist/providers/revenuecat.d.ts +30 -4
  50. package/dist/providers/revenuecat.js +70 -5
  51. package/dist/providers/stripe.d.ts +10 -3
  52. package/dist/providers/stripe.js +30 -4
  53. package/dist/providers/vercel.js +12 -2
  54. package/dist/registry.d.ts +13 -5
  55. package/dist/registry.js +317 -258
  56. package/dist/routes/activity.js +120 -137
  57. package/dist/routes/credentials.js +174 -163
  58. package/dist/routes/mcp.js +129 -70
  59. package/dist/routes/oauth-management.js +60 -71
  60. package/dist/routes/oauth.js +44 -16
  61. package/dist/routes/operator.js +82 -0
  62. package/dist/routes/shared.d.ts +2 -0
  63. package/dist/routes/ui-data.js +210 -0
  64. package/dist/routes/ui.js +64 -32
  65. package/dist/runtime/admission.js +43 -0
  66. package/dist/runtime/call-admission.js +67 -0
  67. package/dist/runtime/connector-scope.js +72 -0
  68. package/dist/runtime/run.js +174 -0
  69. package/dist/runtime/services.js +130 -0
  70. package/dist/runtime/storage.js +66 -0
  71. package/dist/server.js +111 -89
  72. package/dist/skills.js +1 -1
  73. package/dist/storage/file.js +39 -2
  74. package/dist/storage/memory.js +28 -16
  75. package/dist/timeout.js +17 -47
  76. package/dist/types.d.ts +64 -7
  77. package/dist/ui.d.ts +16 -2
  78. package/dist/ui.js +68 -176
  79. package/dist/url-safety.js +157 -0
  80. package/dist/version.d.ts +1 -1
  81. package/dist/version.js +1 -1
  82. package/documentation/architecture.md +368 -182
  83. package/documentation/auth.md +277 -176
  84. package/documentation/code-mode.md +479 -329
  85. package/documentation/meta-tools.md +494 -417
  86. package/ethos.md +44 -47
  87. package/examples/worker/AGENTS.md +2 -1
  88. package/examples/worker/README.md +62 -14
  89. package/examples/worker/src/d1-storage.ts +116 -0
  90. package/examples/worker/src/index.ts +18 -21
  91. package/examples/worker/wrangler.jsonc +16 -4
  92. package/package.json +11 -4
  93. package/templates/node/.env.example +3 -3
  94. package/templates/node/AGENTS.md +5 -4
  95. package/templates/node/README.md +2 -1
  96. package/templates/node/package.json +1 -1
  97. package/templates/node/src/index.ts +23 -22
  98. package/dist/auth/downstream-oauth.d.ts +0 -200
  99. package/dist/catalog-fingerprint.d.ts +0 -19
  100. package/dist/catalog-limits.d.ts +0 -9
  101. package/dist/catalog-service.d.ts +0 -263
  102. package/dist/catalog.d.ts +0 -87
  103. package/dist/concurrency.d.ts +0 -3
  104. package/dist/connectors/guarded-fetch.d.ts +0 -92
  105. package/dist/credential-rules.d.ts +0 -85
  106. package/dist/execute.d.ts +0 -154
  107. package/dist/executor-result.d.ts +0 -10
  108. package/dist/executors/quickjs-child.d.ts +0 -1
  109. package/dist/executors/quickjs-protocol.d.ts +0 -67
  110. package/dist/favicon.d.ts +0 -1
  111. package/dist/identity.d.ts +0 -4
  112. package/dist/invocation.d.ts +0 -74
  113. package/dist/mcp-result.d.ts +0 -8
  114. package/dist/meta-tools.d.ts +0 -129
  115. package/dist/operator-ui/generated.d.ts +0 -2
  116. package/dist/operator-ui/view.d.ts +0 -151
  117. package/dist/result-shapes.d.ts +0 -13
  118. package/dist/retired-toolkits.d.ts +0 -2
  119. package/dist/routes/activity.d.ts +0 -2
  120. package/dist/routes/credentials.d.ts +0 -2
  121. package/dist/routes/mcp.d.ts +0 -10
  122. package/dist/routes/oauth-management.d.ts +0 -2
  123. package/dist/routes/oauth.d.ts +0 -2
  124. package/dist/routes/ui.d.ts +0 -2
  125. package/dist/server.d.ts +0 -9
  126. package/dist/skills.d.ts +0 -44
  127. package/dist/timeout.d.ts +0 -21
  128. package/dist/tool-safety.d.ts +0 -9
  129. package/documentation/call-admission.md +0 -158
  130. package/documentation/cloudflare.md +0 -471
  131. package/documentation/connector-guides.md +0 -176
  132. package/documentation/connectors.md +0 -431
  133. package/documentation/linear.md +0 -193
  134. package/documentation/mixpanel.md +0 -160
  135. package/documentation/notion.md +0 -308
  136. package/documentation/operations.md +0 -359
  137. package/documentation/operator-ui.md +0 -135
  138. package/documentation/optional-modules-upgrade.md +0 -243
  139. package/documentation/provider-conventions.md +0 -729
  140. package/documentation/request-admission.md +0 -204
  141. package/documentation/revenuecat.md +0 -305
  142. package/documentation/storage-and-credentials.md +0 -254
  143. package/documentation/stripe.md +0 -262
  144. package/documentation/upgrading.md +0 -768
  145. package/documentation/vercel.md +0 -241
@@ -1,4 +1,14 @@
1
- /** See documentation/vercel.md#no-sdk-on-purpose. */
1
+ /**
2
+ * No `@vercel/sdk` on purpose — not a dependency and not an optional peer.
3
+ * Direct fetch keeps the root Workers-safe, avoids shipping the SDK's generated
4
+ * model graph, and lets the reviewed named operations and the REST hatches share
5
+ * one guarded transport. The trade is API drift, handled explicitly rather than
6
+ * by the SDK's version bumps: `scripts/drift/vercel-endpoints.json` records the
7
+ * method, versioned path, spec revision, and request/response digest for every
8
+ * fixed endpoint, and `npm run providers:check -- --provider vercel` compares
9
+ * those rows with Vercel's published OpenAPI document at
10
+ * https://openapi.vercel.sh/ without needing a credential.
11
+ */
2
12
  import { api, defined } from "../connectors/api.js";
3
13
  import { remoteMcp } from "../connectors/remote-mcp.js";
4
14
  import { vettedCatalog, withVettedCatalog } from "../catalog-drift.js";
@@ -128,7 +138,7 @@ function vercelTransport(baseUrl) {
128
138
  authenticate: async (ctx) => {
129
139
  const token = (await ctx.credential?.get())?.trim();
130
140
  if (!token) {
131
- throw new ConnectorCallError("auth_required", "No Vercel access token is configured for this connector. An operator must add one on /credentials before any Vercel call can run.");
141
+ throw new ConnectorCallError("auth_required", "No Vercel access token is configured for this connector. Call authorize_connector for recovery options. When available, an operator can add the token in this connection in the operator UI.");
132
142
  }
133
143
  return { Authorization: `Bearer ${token}` };
134
144
  },
@@ -58,7 +58,7 @@ export interface RegistryOptions {
58
58
  /**
59
59
  * Cap on inline result size before truncation + get_result paging. Must be a
60
60
  * whole number of bytes >= 1; anything else warns at startup and falls back
61
- * to the default 50_000.
61
+ * to the default 24_000.
62
62
  */
63
63
  maxResultBytes?: number | undefined;
64
64
  results?: {
@@ -107,8 +107,8 @@ export interface RegistryView {
107
107
  signal?: AbortSignal;
108
108
  }): Promise<CallAdmissionPermit>;
109
109
  resultsStorage(): KVStorage;
110
- /** Reserve runtime-wide capacity before writing a paging envelope. */
111
- stashResult(key: string, value: string, ttlSeconds: number): Promise<boolean>;
110
+ /** Reserve runtime-wide capacity before writing a paging envelope's chunks. */
111
+ stashResult(key: string, chunks: readonly string[], ttlSeconds: number): Promise<boolean>;
112
112
  /** Local declared-vs-stored credential mismatch, with no downstream I/O. */
113
113
  credentialDriftFor(id: string): Promise<string | undefined>;
114
114
  /** Value-free shape learned from successful calls, never a provider declaration. */
@@ -240,8 +240,16 @@ export declare class Registry implements RegistryView {
240
240
  private observeCatalogDrift;
241
241
  /** Reject queued/future downstream admission; active permits release safely. */
242
242
  closeCallAdmission(): void;
243
- /** Reserve capacity and write one ASCII paging envelope in this runtime. */
244
- stashResult(key: string, value: string, ttlSeconds: number, prefix?: string): Promise<boolean>;
243
+ /**
244
+ * Reserve capacity and write one ASCII paging envelope in this runtime.
245
+ *
246
+ * `chunks[0]` lands on `<prefix><key>` and `chunks[n]` on `<prefix><key>#<n>`
247
+ * — the layout get_result reads back, so a page fetches only the chunks it
248
+ * covers instead of the whole stored result (issue #540). Chunking is a
249
+ * read-cost decision, not a capacity one: however many keys an envelope
250
+ * occupies, it is one stash entry charged its total ASCII length.
251
+ */
252
+ stashResult(key: string, chunks: readonly string[], ttlSeconds: number, prefix?: string): Promise<boolean>;
245
253
  /**
246
254
  * Storage namespaced to the meta-tool result store (`results:` prefix), kept
247
255
  * separate from any connector's `conn:<id>:` namespace. Backs get_result.