@zackbart/connecta 0.14.2 → 0.15.1

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 (54) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/dist/catalog-service.d.ts.map +1 -1
  3. package/dist/catalog-service.js +104 -56
  4. package/dist/catalog-service.js.map +1 -1
  5. package/dist/catalog.d.ts +8 -2
  6. package/dist/catalog.d.ts.map +1 -1
  7. package/dist/catalog.js +58 -9
  8. package/dist/catalog.js.map +1 -1
  9. package/dist/connectors/api.d.ts +4 -4
  10. package/dist/connectors/api.js +4 -4
  11. package/dist/execute.d.ts.map +1 -1
  12. package/dist/execute.js +8 -7
  13. package/dist/execute.js.map +1 -1
  14. package/dist/meta-tools.js +1 -1
  15. package/dist/meta-tools.js.map +1 -1
  16. package/dist/providers/cloudflare.d.ts +5 -1
  17. package/dist/providers/cloudflare.d.ts.map +1 -1
  18. package/dist/providers/cloudflare.js +203 -70
  19. package/dist/providers/cloudflare.js.map +1 -1
  20. package/dist/providers/linear.d.ts.map +1 -1
  21. package/dist/providers/linear.js +4 -3
  22. package/dist/providers/linear.js.map +1 -1
  23. package/dist/providers/mixpanel.d.ts.map +1 -1
  24. package/dist/providers/mixpanel.js +4 -3
  25. package/dist/providers/mixpanel.js.map +1 -1
  26. package/dist/providers/stripe.d.ts.map +1 -1
  27. package/dist/providers/stripe.js +4 -3
  28. package/dist/providers/stripe.js.map +1 -1
  29. package/dist/validate.d.ts.map +1 -1
  30. package/dist/validate.js +97 -17
  31. package/dist/validate.js.map +1 -1
  32. package/dist/version.d.ts +1 -1
  33. package/dist/version.js +1 -1
  34. package/documentation/cloudflare.md +37 -19
  35. package/documentation/code-mode.md +9 -9
  36. package/documentation/connectors.md +9 -7
  37. package/documentation/linear.md +6 -7
  38. package/documentation/meta-tools.md +56 -13
  39. package/documentation/mixpanel.md +6 -7
  40. package/documentation/stripe.md +12 -12
  41. package/ethos.md +2 -1
  42. package/package.json +1 -1
  43. package/src/catalog-service.ts +93 -29
  44. package/src/catalog.ts +71 -8
  45. package/src/connectors/api.ts +4 -4
  46. package/src/execute.ts +8 -7
  47. package/src/meta-tools.ts +1 -1
  48. package/src/providers/cloudflare.ts +275 -79
  49. package/src/providers/linear.ts +4 -3
  50. package/src/providers/mixpanel.ts +4 -3
  51. package/src/providers/stripe.ts +4 -3
  52. package/src/validate.ts +125 -20
  53. package/src/version.ts +1 -1
  54. package/templates/node/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../src/providers/stripe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../src/providers/stripe.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAMjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAuJD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,wBAAwB,GAC7B,kBAAkB,GAAG,IAAI,CAsC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,0BAA0B,GAC/B,IAAI,CAQN"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAMjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA6PD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,wBAAwB,GAC7B,kBAAkB,GAAG,IAAI,CAyC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,0BAA0B,GAC/B,IAAI,CAQN"}
package/dist/validate.js CHANGED
@@ -7,6 +7,17 @@ import { MAX_ARGUMENT_VALIDATION_ISSUES } from "./errors.js";
7
7
  // connector are collectable, the same pattern compactSchema uses.
8
8
  const validators = new WeakMap();
9
9
  const REQUIRED_PROPERTY_RE = /^Instance does not have required property "([^"]+)"\.$/;
10
+ const CONTAINER_VALIDATION_KEYWORDS = new Set([
11
+ "properties",
12
+ "items",
13
+ "allOf",
14
+ "anyOf",
15
+ "oneOf",
16
+ "if",
17
+ "not",
18
+ "patternProperties",
19
+ "additionalProperties",
20
+ ]);
10
21
  function decodePointerPart(value) {
11
22
  return value.replaceAll("~1", "/").replaceAll("~0", "~");
12
23
  }
@@ -31,6 +42,85 @@ function argumentPath(location) {
31
42
  return "/";
32
43
  return location.startsWith("#") ? location.slice(1) || "/" : "/";
33
44
  }
45
+ function validationUnitKey(unit) {
46
+ return JSON.stringify([
47
+ unit.keyword,
48
+ unit.keywordLocation,
49
+ unit.instanceLocation,
50
+ unit.error,
51
+ ]);
52
+ }
53
+ function childPropertyName(parentLocation, childLocation) {
54
+ const prefix = parentLocation === "#" ? "#/" : `${parentLocation}/`;
55
+ if (!childLocation.startsWith(prefix))
56
+ return undefined;
57
+ const encoded = childLocation.slice(prefix.length);
58
+ return !encoded.includes("/") ? decodePointerPart(encoded) : undefined;
59
+ }
60
+ function schemaDeclaresProperty(schema, property) {
61
+ if (schema === null || typeof schema !== "object" || Array.isArray(schema)) {
62
+ return false;
63
+ }
64
+ const record = schema;
65
+ const properties = record.properties;
66
+ if (properties !== null &&
67
+ typeof properties === "object" &&
68
+ !Array.isArray(properties) &&
69
+ Object.hasOwn(properties, property)) {
70
+ return true;
71
+ }
72
+ const patterns = record.patternProperties;
73
+ if (patterns === null ||
74
+ typeof patterns !== "object" ||
75
+ Array.isArray(patterns)) {
76
+ return false;
77
+ }
78
+ for (const pattern of Object.keys(patterns)) {
79
+ try {
80
+ if (new RegExp(pattern).test(property))
81
+ return true;
82
+ }
83
+ catch {
84
+ // The validator owns schema support. An unusable pattern cannot prove
85
+ // that this additional-properties branch is a duplicate.
86
+ }
87
+ }
88
+ return false;
89
+ }
90
+ function isDuplicateAdditionalPropertiesBranch(schema, units, index) {
91
+ const unit = units[index];
92
+ const wrapper = units[index - 1];
93
+ if (unit?.keyword !== "false" ||
94
+ wrapper?.keyword !== "additionalProperties" ||
95
+ !wrapper.keywordLocation.endsWith("/additionalProperties")) {
96
+ return false;
97
+ }
98
+ const property = childPropertyName(wrapper.instanceLocation, unit.instanceLocation);
99
+ if (property === undefined)
100
+ return false;
101
+ const parentSchemaLocation = wrapper.keywordLocation.slice(0, -"/additionalProperties".length);
102
+ return schemaDeclaresProperty(pointerValue(schema, parentSchemaLocation || "#"), property);
103
+ }
104
+ function normalizedValidationUnits(schema, units) {
105
+ const seen = new Set();
106
+ return units.filter((unit, index) => {
107
+ if (CONTAINER_VALIDATION_KEYWORDS.has(unit.keyword))
108
+ return false;
109
+ if (isDuplicateAdditionalPropertiesBranch(schema, units, index)) {
110
+ return false;
111
+ }
112
+ const key = validationUnitKey(unit);
113
+ if (seen.has(key))
114
+ return false;
115
+ seen.add(key);
116
+ return true;
117
+ });
118
+ }
119
+ function agentFacingValidationError(unit) {
120
+ return unit.keyword === "false"
121
+ ? "Value is not allowed by the declared schema."
122
+ : unit.error;
123
+ }
34
124
  function expectedType(schema, unit) {
35
125
  if (unit.keyword === "type") {
36
126
  const value = pointerValue(schema, unit.keywordLocation);
@@ -66,19 +156,8 @@ function expectedType(schema, unit) {
66
156
  return fixed[unit.keyword];
67
157
  }
68
158
  function validationDetails(schema, units) {
69
- const leafUnits = units.filter((unit) => ![
70
- "properties",
71
- "items",
72
- "allOf",
73
- "anyOf",
74
- "oneOf",
75
- "if",
76
- "not",
77
- "patternProperties",
78
- "additionalProperties",
79
- ].includes(unit.keyword));
80
159
  const issues = [];
81
- for (const unit of leafUnits) {
160
+ for (const unit of units) {
82
161
  const missing = unit.keyword === "required"
83
162
  ? REQUIRED_PROPERTY_RE.exec(unit.error)?.[1]
84
163
  : undefined;
@@ -164,12 +243,13 @@ export function validateToolInput(schema, args, opts) {
164
243
  return opts.failClosed ? unevaluableSchema(opts.address) : null;
165
244
  }
166
245
  if (result && !result.valid) {
167
- const units = result.errors.filter((u) => u.instanceLocation !== "#");
168
- const detail = (units.length > 0 ? units : result.errors)
169
- .slice(0, 3)
170
- .map((u) => `${u.instanceLocation}: ${u.error}`)
246
+ const units = normalizedValidationUnits(schema, result.errors);
247
+ const nestedUnits = units.filter((unit) => unit.instanceLocation !== "#");
248
+ const detail = (nestedUnits.length > 0 ? nestedUnits : units)
249
+ .slice(0, MAX_ARGUMENT_VALIDATION_ISSUES)
250
+ .map((unit) => `${unit.instanceLocation}: ${agentFacingValidationError(unit)}`)
171
251
  .join("; ");
172
- return new ConnectorCallError("invalid_args", `Invalid arguments for "${opts.address}": ${detail || "input does not match the tool's inputSchema"}`, { validation: validationDetails(schema, result.errors) });
252
+ return new ConnectorCallError("invalid_args", `Invalid arguments for "${opts.address}": ${detail || "input does not match the tool's inputSchema"}`, { validation: validationDetails(schema, units) });
173
253
  }
174
254
  return null;
175
255
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -4,5 +4,5 @@
4
4
  * a bump that forgets this file fails the build rather than shipping a stale
5
5
  * version to `/health` and to downstream MCP handshakes.
6
6
  */
7
- export declare const CONNECTA_VERSION = "0.14.2";
7
+ export declare const CONNECTA_VERSION = "0.15.1";
8
8
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -4,5 +4,5 @@
4
4
  * a bump that forgets this file fails the build rather than shipping a stale
5
5
  * version to `/health` and to downstream MCP handshakes.
6
6
  */
7
- export const CONNECTA_VERSION = "0.14.2";
7
+ export const CONNECTA_VERSION = "0.15.1";
8
8
  //# sourceMappingURL=version.js.map
@@ -23,6 +23,18 @@ const edge = cloudflare("cloudflare_prod", {
23
23
  });
24
24
  ```
25
25
 
26
+ Use the legacy user-scoped Global API Key when an existing deployment needs it:
27
+
28
+ ```ts
29
+ const legacyEdge = cloudflare("cloudflare_legacy", {
30
+ purpose: "Legacy account administration",
31
+ authentication: "globalApiKey",
32
+ });
33
+ ```
34
+
35
+ The operator UI then asks for the Cloudflare user email and Global API Key as
36
+ separate fields. The default remains a scoped API token.
37
+
26
38
  The `id` owns the ordinary connector namespaces; use a different id for every
27
39
  Cloudflare account or estate. `purpose` is required because an agent choosing
28
40
  between a production and a staging instance needs to know which one answers the
@@ -40,7 +52,7 @@ dependency would cost is real — an optional peer with its own install step and
40
52
  version skew, an import that never belongs in the root graph, and a second
41
53
  opinion about what a Cloudflare call looks like.
42
54
 
43
- The API itself does not need one. It is Bearer-token `fetch` with a uniform
55
+ The API itself does not need one. It is authenticated `fetch` with a uniform
44
56
  `{ success, errors, messages, result, result_info }` response envelope. JSON,
45
57
  raw bytes, and multipart request bodies all use Web APIs, which keeps the
46
58
  provider Workers-clean and means `@zackbart/connecta/providers/cloudflare`
@@ -51,10 +63,16 @@ must be relative.
51
63
 
52
64
  ## Credentials
53
65
 
54
- The connection declares one operator-managed credential: a scoped Cloudflare
55
- API token, sent as `Authorization: Bearer <token>`. Create it under My Profile →
56
- API Tokens → Create Token. Do not use a Global API Key — it carries every
57
- permission on the account and cannot be scoped.
66
+ The default credential is a scoped Cloudflare API token, sent as
67
+ `Authorization: Bearer <token>`. Create it under My Profile → API Tokens →
68
+ Create Token.
69
+
70
+ Set `authentication: "globalApiKey"` to use the legacy user-scoped scheme. The
71
+ credential form stores two encrypted fields and sends them as `X-Auth-Email`
72
+ and `X-Auth-Key`. The Global API Key has the same access as its Cloudflare user
73
+ across every account and zone that user can reach. It cannot be scoped, only
74
+ one can exist per user, and it has no expiry or IP limits. Cloudflare recommends
75
+ API tokens for new use, but existing Global API Keys remain supported.
58
76
 
59
77
  Grant only what the deployment needs:
60
78
 
@@ -83,10 +101,9 @@ scope. "Cache Purge" is a single permission with no Read/Write split, and
83
101
  Cloudflare's own reference renders a few labels differently between its
84
102
  Dashboard and API tabs.
85
103
 
86
- `verify_api_token` needs no permission beyond the token existing, which is what
87
- makes it the right first call when something fails. The `/credentials` Test
88
- action runs the same verification against the candidate token before it is
89
- stored.
104
+ `verify_api_token` needs no permission beyond the token existing. In legacy
105
+ mode, `verify_global_api_key` reads `/user` to confirm the email and key pair.
106
+ The `/credentials` Test action runs the matching check before storage.
90
107
 
91
108
  Cloudflare rate-limits *authentication failures* aggressively and separately
92
109
  from the global limit: a few requests with a bad token return HTTP 429 with
@@ -146,7 +163,8 @@ method classification into user input:
146
163
  default; `responseType: "text" | "base64"` retrieves scripts, logs, R2
147
164
  objects, and media bodies without pretending they have a JSON envelope.
148
165
  - `cloudflare_api_mutate` accepts JSON POST, PUT, PATCH, and DELETE. It is always
149
- destructive, even when a particular POST is merely additive.
166
+ destructive, even when a particular POST is merely additive. It preserves
167
+ ordinary non-envelope JSON from endpoints such as `/graphql`.
150
168
  - `cloudflare_api_upload` accepts POST or PUT plus exactly one of raw text,
151
169
  base64 bytes, or multipart fields/files. It is always destructive and reads
152
170
  no local files.
@@ -160,7 +178,7 @@ Paths are relative to `/client/v4`. Absolute URLs, protocol-relative paths,
160
178
  `..` traversal, fragments, and embedded query strings are refused locally;
161
179
  query parameters are explicit name/value pairs. These tools reuse the same
162
180
  credential, admission budget, abort signal, envelope parsing, and typed failure
163
- mapping as named tools. They do not widen the token's Cloudflare permissions.
181
+ mapping as named tools. They do not widen the configured credential's access.
164
182
 
165
183
  This is intentionally not OpenAPI ingestion: it creates three stable tools,
166
184
  not one tool per Cloudflare operation. For example, an agent can list Images at
@@ -271,8 +289,8 @@ official table mapping error codes to causes, so that set is assembled from
271
289
  community reports and probing, not from documentation. The same goes for the
272
290
  claim below that `10000` is overloaded — that is an observation about responses
273
291
  seen in practice. Treat both as well-supported readings that Cloudflare could
274
- invalidate without notice, and prefer `verify_api_token` over the code list
275
- when a diagnosis actually matters.
292
+ invalidate without notice. Prefer `verify_api_token` or
293
+ `verify_global_api_key`, as configured, when a diagnosis matters.
276
294
 
277
295
  Two ordering decisions are deliberate. The 429 branch is checked before the
278
296
  authentication codes, because Cloudflare reuses the generic `10000` code on
@@ -280,15 +298,15 @@ throttled responses and reading a rate limit as an auth failure would tell an
280
298
  agent to stop when it should wait. And `10000` is *not* itself treated as an
281
299
  auth code: Cloudflare returns it for "Authentication error" but also for
282
300
  ordinary validation failures like "Invalid pagination cursor" and
283
- "domain_name is required", so routing on it would tell an agent its token was
301
+ "domain_name is required", so routing on it would tell an agent its credential was
284
302
  broken when its arguments were. Genuine `10000` auth failures arrive with 401
285
303
  or 403 and are caught by status.
286
304
 
287
305
  Because the connection declares an operator-managed credential rather than an
288
306
  OAuth flow, an `auth_required` failure resolves to the `operator_config`
289
- recovery mode — the fix is a human updating the token, not an authorization
290
- URL the agent can open. A missing token fails that way before any request is
291
- made.
307
+ recovery mode — the fix is a human updating the credential, not an authorization
308
+ URL the agent can open. A missing credential fails that way before any request
309
+ is made.
292
310
 
293
311
  Some failures never reach Cloudflare at all. A blank scope id, a `purge_cache`
294
312
  call with no variant or two, and an `update_dns_record` with nothing to change
@@ -309,5 +327,5 @@ enforcement of it. Each runtime keeps its own counter, so N Worker isolates or
309
327
  Node processes serving one deployment can each admit up to 1,200 — and the
310
328
  dashboard traffic of a human sharing the account is counted by Cloudflare but
311
329
  not by Connecta. `maxConcurrency` is the bound that actually protects a shared
312
- token, because a single `execute_code` program can fan out far faster than the
313
- window notices.
330
+ credential, because a single `execute_code` program can fan out far faster than
331
+ the window notices.
@@ -219,21 +219,21 @@ const page = await connecta.search({
219
219
  });
220
220
  ```
221
221
 
222
- **S1.** Returns one flat page: `{ tools, total, offset, limit, hasMore }`, plus `nextOffset` when more remains and `matchMode: "partial"` when no tool matched every term. Each entry in `tools` carries `address`, `name`, and — when requested — `description`, `inputSchema`, `outputSchema`, `annotations`, and the connector's `guide`. Compact shapes omit property prose, put required fields first, and cap each shape at 1,024 UTF-8 bytes; capped shapes remain structurally valid with `unknown` types plus `/* truncated */`, and carry `inputSchemaTruncated` or `outputSchemaTruncated`. Use `connecta.describe` (or JSON search) for omitted exact constraints.
222
+ **S1.** Returns one flat page: `{ tools, total, offset, limit, hasMore }`, plus `nextOffset` when more remains and `matchMode: "partial"` when no tool matched every term. Top-level `search_tools` is different: it returns `{ connectors: [{ id, tools }], total, offset, limit, hasMore }`. Complete matches normally precede partial matches, but a partial candidate whose complete normalized tool name occurs in the normalized raw query competes by score; conversational cleanup applies only to scoring terms. Other candidates covering at least two terms fill the page after every complete match; when no complete match exists, the existing any-term fallback remains. Each entry in `tools` carries `address`, `name`, and — when requested — `description`, `inputSchema`, `outputSchema`, `annotations`, and the connector's `guide`. Tool rows expose neither lexical scores nor per-result coverage. An empty or whitespace-only query browses. Non-empty input with no ASCII lexical terms returns no tools and bounded no-match analysis; mixed input searches with its ASCII terms. Compact shapes omit property prose, put required fields first, and cap each shape at 1,024 UTF-8 bytes. Each enum node gets 256 of those bytes. About three near-cap enum nodes can therefore coexist while leaving the final quarter for surrounding syntax; the unchanged global fallback still applies above 1,024 bytes. A capped enum preserves whole values before `unknown` and an exact omitted-value count, while an empty enum renders as `never`. Either cap carries `inputSchemaTruncated` or `outputSchemaTruncated`; a shape-wide cap remains structurally valid with `unknown` types plus `/* truncated */`. Small enums remain complete. Use `connecta.describe` (or JSON search) for omitted exact constraints.
223
223
 
224
224
  **S1a.** `connector` loads only the named catalog; omit it only when the integration is ambiguous, because an unscoped search fans out across every configured connector. `safety: "readOnly"` returns exactly the tools available through `connecta.call`, connector shortcuts, and `connecta.batch`; `"approvalRequired"` returns the complementary fail-closed class, including false, missing, and contradictory annotations. Omitted or `"all"` preserves the complete catalog. These filters grant no authority and change no admission decision.
225
225
 
226
- **S2.** A requested object schema carries `inputKeys`, `requiredInputKeys`, and `outputKeys`:
227
- the same names the rendered schema shows, ready to check before
228
- building arguments. Match inputs, truncation, safety, and outputs, not lexical
226
+ **S2.** A requested object schema carries `inputKeys`, `requiredInputKeys`, and `outputKeys`: the same names the rendered schema shows, ready to check before building arguments. Match inputs, truncation, safety, and outputs, not lexical
229
227
  rank; search distinct operations separately and use `outputKeys`, not guessed roots. A non-object schema — a union, an array, an
230
228
  unresolvable `$ref` — carries no lists rather than empty ones, because absent
231
229
  means "read the schema" where `[]` would claim the tool takes no fields. The
232
230
  lists come from the same walk that renders the compact schema, so a top-level
233
231
  `$ref` resolves and an `allOf` composes rather than reporting an empty list
234
- beside a schema that plainly shows fields; an object with no properties is the
235
- one case where `[]` is the truth. A truncated schema omits the corresponding
236
- key list rather than repeating a large partial inventory. `search_tools`
232
+ beside a schema that plainly shows fields. A zero-input object keeps `inputKeys:
233
+ []` and `requiredInputKeys: []`; an output object with no declared properties
234
+ omits `outputKeys` because it declares no useful inventory. A
235
+ truncated schema omits the corresponding key list rather than repeating a
236
+ large partial inventory. `search_tools`
237
237
  carries the same metadata whenever schemas are requested. Code-mode callers
238
238
  can set `includeSchemaKeys: false` to buy the bytes back.
239
239
 
@@ -384,7 +384,7 @@ type beats keeping the prose.
384
384
 
385
385
  **E7.** `retryable` for `unknown_address`, `unknown_tool`, `ambiguous_tool_alias`, and `destructive_tool_requires_approval` is pinned false, never inferred from an address containing `503`, `429`, or `temporar`. The first two carry `nextAction: { function: "connecta.search", arguments: { query, connector?, includeSchemas: "compact" } }` — the same scoped discovery the top-level record names, keyed to the surface the caller actually has. A program cannot call `search_tools`, so it is never told to. Both the message and the derived `query` clamp the address to 512 UTF-8 bytes with a `…` marker: the address is caller-authored and lands in the message, the query, the text content, and `structuredContent`, so an invented 50 KB one would otherwise produce a refusal orders of magnitude past the deployment's result cap. A clipped address still identifies the mistake; a short one — the common case — is exact and untagged.
386
386
 
387
- **E8.** A remote MCP tool whose advertised schema rejects the call fails before provider dispatch with `invalid_args`, carrying bounded, value-free `{ path, code, expected }` findings and scoped search recovery keyed `function: "connecta.search"` like every other in-program miss. Unsupported schemas pass through; unrecognized provider prose remains `connector_call_failed`.
387
+ **E8.** A remote MCP tool whose advertised schema rejects the call fails before provider dispatch with `invalid_args`, carrying bounded, value-free `{ path, code, expected }` findings and scoped search recovery keyed `function: "connecta.search"` like every other in-program miss. A declared property reports the schema keyword that failed, never the validator's duplicate `additionalProperties` branch; a truly undeclared property still reports `additionalProperties`. Unsupported schemas pass through; unrecognized provider prose remains `connector_call_failed`.
388
388
 
389
389
  ## Results and projection
390
390
 
@@ -840,7 +840,7 @@ the upstream `Executor` shape assignable.
840
840
  | `A3` | `test/guest-api-contract.test.ts`, `test/execute.test.ts` (colliding alias) |
841
841
  | `A4` | `test/execute.test.ts` (namespace collisions, reserved namespace) |
842
842
  | `A5` | verdict; `A1`–`A3` are its enforcement |
843
- | `S1`, `S2` | `test/guest-api-contract.test.ts` (flat page, connector guides, schema keys, and the unfiltered browse that replaces `list_connectors`), `test/execute.test.ts` (guide pagination/partial/no-match behavior and `$ref`/`allOf`) |
843
+ | `S1`, `S2` | `test/guest-api-contract.test.ts` (flat page, connector guides, schema keys, and the unfiltered browse that replaces `list_connectors`), `test/execute.test.ts` (guide pagination/partial/no-match behavior and `$ref`/`allOf`), `test/meta-tools.test.ts` (mixed complete/partial ranking and stable pagination) |
844
844
  | `S3` | `test/guest-api-contract.test.ts` (typed uncaught bound), `test/execute.test.ts` (count limits, fan-out bound) |
845
845
  | `S4` | `test/guest-api-contract.test.ts` (unknown address in `describe`) |
846
846
  | `S5` | `test/guest-api-contract.test.ts`, `test/execute.test.ts` (`unwrapMcpResult`) |
@@ -47,13 +47,15 @@ choice does not grant the connection different runtime privileges. Two
47
47
  instances of the same provider are isolated in exactly the same way as two
48
48
  hand-written connectors with different ids.
49
49
 
50
- A prebuilt connection's vetted annotations are fill-in only. They classify what
51
- the downstream leaves unannotated and do not argue with what it states — not an
52
- explicit `destructiveHint: true` or `readOnlyHint: false` on a name the
53
- connection files as a read, nor an explicit `readOnlyHint: true` on a name no
54
- release has classified at all. Silence on an unclassified name still means not
55
- read-only, so catalog drift fails closed. The fail-closed read-only invariant
56
- is unchanged by the authoring path.
50
+ A prebuilt connection's vetted annotations fill in downstream silence and
51
+ otherwise preserve explicit annotations. This includes an explicit
52
+ `destructiveHint: true` or `readOnlyHint: false` on a vetted read, and an
53
+ explicit `readOnlyHint: true` on a name no release has classified. One narrow
54
+ exception stays fail-closed: a release-reviewed destructive classification
55
+ overrides a contradictory `readOnlyHint: true`, because Connecta has
56
+ independently established that the tool mutates existing state. Silence on an
57
+ unclassified name still means not read-only. The authoring path never weakens
58
+ the fail-closed read-only invariant.
57
59
 
58
60
  Prebuilt means preferred when available, not mandatory. A deployment may mix
59
61
  prebuilt connections, custom `remoteMcp()` connections, and custom `api()`
@@ -83,18 +83,17 @@ The wrapper classifies Linear's documented `list_*`, `get_*`, and
83
83
  downstream leaves unannotated fails closed onto `call_destructive_tool` until a
84
84
  Connecta release reviews it.
85
85
 
86
- That classification is **fill-in only**, and unconditionally so: it supplies
87
- the annotations Linear leaves unset and contradicts an explicit downstream
88
- annotation in neither direction. A tool on the read allowlist arriving with
86
+ That classification fills in downstream silence and otherwise preserves
87
+ explicit annotations. A tool on the read allowlist arriving with
89
88
  `destructiveHint: true` or `readOnlyHint: false` keeps exactly what the
90
89
  downstream said and stays behind `call_destructive_tool`. A tool on neither
91
90
  maintained list arriving with `readOnlyHint: true` keeps that too, and stays
92
91
  callable from `execute_code`. Both are the downstream telling you this
93
92
  release's allowlist is stale, and on a name no release has reviewed its word is
94
- the only evidence there is. The one classification that still outranks the
95
- downstream is a name this release reviewed and filed destructive: a `save_*`
96
- tool claiming `readOnlyHint: true` is a downstream bug rather than news, and
97
- stays on the approval path.
93
+ the only evidence there is. One narrow fail-closed exception applies to a name
94
+ this release reviewed and filed destructive: a `save_*` tool claiming
95
+ `readOnlyHint: true` is a downstream bug rather than news, and stays on the
96
+ approval path.
98
97
 
99
98
  One detail of Linear's own design shapes the classification: **`save_*` tools
100
99
  are upserts.** Omitting a record id creates; supplying one updates in place.
@@ -46,6 +46,18 @@ read-only calls and returns typed outcomes, and an unfiltered
46
46
  `connecta.search({})` browses every catalog a program can reach. Live connector
47
47
  probing is an operator concern: the operator pages and `/health` own it.
48
48
 
49
+ The three discovery routes use deliberately different envelopes. These are
50
+ their smallest successful one-tool shapes:
51
+
52
+ ```js
53
+ // Top-level search_tools
54
+ { connectors: [{ id: "ci", tools: [{ name: "get_run", address: "ci.get_run" }] }], total: 1, offset: 0, limit: 8, hasMore: false }
55
+
56
+ // Inside execute_code
57
+ { tools: [{ name: "get_run", address: "ci.get_run" }], total: 1, offset: 0, limit: 8, hasMore: false } // connecta.search
58
+ { tools: [{ name: "get_run", address: "ci.get_run", inputSchema: "{ runId: integer }" }] } // connecta.describe
59
+ ```
60
+
49
61
  ## Discovery context
50
62
 
51
63
  Start an unknown-address lookup with two to four distinctive action/object
@@ -60,8 +72,10 @@ or setting it to `"all"`, preserves the complete configured catalog. This is
60
72
  only a discovery filter: it neither grants authority nor changes invocation admission.
61
73
  `includeSchemas: "compact"` adds each match's input and any declared output
62
74
  shape. Bounded plain-object schemas also expose `inputKeys`,
63
- `requiredInputKeys`, and `outputKeys`; a truncated shape omits its corresponding
64
- list rather than repeating a large partial inventory. Matches carry declared
75
+ `requiredInputKeys`, and `outputKeys`; a zero-input object keeps
76
+ `requiredInputKeys: []`, while an output object with no declared properties
77
+ omits `outputKeys`. A truncated shape omits its corresponding list rather than
78
+ repeating a large partial inventory. Matches carry declared
65
79
  behavior annotations. Lexical rank is only one signal: select a candidate whose
66
80
  required inputs are available, whose schema is complete enough for the call,
67
81
  and whose safety and declared outputs fit the work. A reducer uses `outputKeys`
@@ -75,11 +89,17 @@ Compact search is deliberately a routing view, not a second copy of connector
75
89
  documentation. Tool purposes are capped at 160 characters, connector
76
90
  descriptions and property prose are omitted, required input fields render
77
91
  before optional ones, and each input or output shape is capped at 1,024 UTF-8
78
- bytes. A capped object becomes a valid required-first shape with `unknown`
79
- types; other shapes become `unknown /* truncated */`. The match also carries
92
+ bytes. Within that unchanged total, each enum node may spend at most 256 UTF-8
93
+ bytes. This lets about three near-cap enum nodes coexist while reserving the
94
+ remaining quarter for surrounding syntax; the global fallback still applies
95
+ when the complete shape exceeds 1,024 bytes. A large enum keeps the longest
96
+ whole-value prefix that fits, then adds `unknown` and a comment with the exact
97
+ omitted-value count. An empty enum renders as the valid `never` type. A capped
98
+ object becomes a valid required-first shape with `unknown` types; other shapes
99
+ become `unknown /* truncated */`. Either cap marks the match with
80
100
  `inputSchemaTruncated` or `outputSchemaTruncated`; repeat the search with
81
101
  `includeSchemas: "json"` or use the existing describe path when exact
82
- constraints matter.
102
+ constraints matter. Small enums and both exact paths remain complete.
83
103
 
84
104
  ## Connector guide selection
85
105
 
@@ -176,13 +196,34 @@ set of inflectional variants preserves singular/plural and verb-form recall
176
196
  without allowing arbitrary mid-word substring matches. Ranking weights each
177
197
  query term by its document frequency across the available catalogs in that
178
198
  search, so a rare domain term outranks a ubiquitous action while action terms
179
- still distinguish `get`, `list`, `search`, and write operations. If no tool
180
- covers every non-conversational term, the same scorer falls back to any-term
181
- matching and marks the result `matchMode: "partial"`.
182
-
183
- Every partial or no-match lexical search also returns bounded `queryAnalysis`;
184
- an all-term result needs no recovery advice. `representedTerms` occur in the
185
- current page, `otherResultTerms` occur only in another result, and
199
+ still distinguish `get`, `list`, `search`, and write operations. The scorer
200
+ always evaluates useful near-matches instead of letting one broad all-term
201
+ description hide them. Complete matches rank before ordinary partial matches;
202
+ a partial candidate whose complete normalized tool name occurs in the
203
+ normalized raw query competes with complete matches by score, and other
204
+ candidates covering at least two terms fill the remaining page after them.
205
+ Conversational cleanup applies only to scoring terms, never to the exact-name
206
+ phrase check. If no tool covers every non-conversational term, the same scorer
207
+ preserves the wider any-term fallback and marks the result
208
+ `matchMode: "partial"`.
209
+
210
+ Returned tool rows expose neither lexical scores nor per-result query coverage.
211
+ The mixed complete/partial scorer still ranks rare domain terms, action terms,
212
+ and exact tool-name phrases. Select from the returned purpose, address, schema,
213
+ safety, and output shape. Page-level `queryAnalysis` remains the recovery path
214
+ when no single result covers every term or no match exists.
215
+
216
+ Only an empty or whitespace-only query browses. A non-empty query that
217
+ normalizes to no ASCII lexical terms returns no tools instead of unrelated
218
+ browse results. Its bounded `queryAnalysis.unmatchedTerms` contains the clipped
219
+ raw query and guidance asks for ASCII action/object terms. A mixed query still
220
+ searches with its ASCII terms; unsupported characters do not become false
221
+ matches or per-tool coverage terms.
222
+
223
+ Every partial or no-match lexical search also returns bounded page-level
224
+ `queryAnalysis`; an all-term result needs no recovery advice.
225
+ `representedTerms` occur in the current page, `otherResultTerms` occur only in
226
+ another result, and
186
227
  `unmatchedTerms` have no lexical match in the catalogs that answered. Partial
187
228
  results explain that no single tool covered every term and recommend splitting
188
229
  distinct intents. A true negative says that no matching capability is
@@ -331,7 +372,9 @@ exist. `nextAction` points to discovery scoped to the same connector and tool
331
372
  name when the compact schema is needed — routed like any other miss, so a
332
373
  program is sent to `connecta.search` and a top-level call to `search_tools` —
333
374
  while `retry` says to correct the listed arguments and reissue the original
334
- operation. A schema the local
375
+ operation. A declared property reports only its failed schema keyword, while a
376
+ truly undeclared property reports `additionalProperties`; validator-internal
377
+ duplicate `additionalProperties` branches never reach the caller. A schema the local
335
378
  validator cannot evaluate passes through to the provider. Provider error prose
336
379
  is not parsed or guessed, so an unknown format remains
337
380
  `connector_call_failed`.
@@ -49,18 +49,17 @@ documented create, update, edit, merge, dismiss, duplicate, and delete tools as
49
49
  writes. An unfamiliar tool the downstream leaves unannotated fails closed onto
50
50
  `call_destructive_tool` until a Connecta release reviews it.
51
51
 
52
- That classification is **fill-in only**, and unconditionally so: it supplies
53
- the annotations Mixpanel leaves unset and contradicts an explicit downstream
54
- annotation in neither direction. A tool on the read allowlist arriving with
52
+ That classification fills in downstream silence and otherwise preserves
53
+ explicit annotations. A tool on the read allowlist arriving with
55
54
  `destructiveHint: true` or `readOnlyHint: false` keeps exactly what the
56
55
  downstream said and stays behind `call_destructive_tool`. A tool on neither
57
56
  maintained list arriving with `readOnlyHint: true` keeps that too, and stays
58
57
  callable from `execute_code`. Both are the downstream telling you this
59
58
  release's allowlist is stale, and on a name no release has reviewed its word is
60
- the only evidence there is. The one classification that still outranks the
61
- downstream is a name this release reviewed and filed destructive: a
62
- `Delete-Dashboard` claiming `readOnlyHint: true` is a downstream bug rather
63
- than news, and stays on the approval path. Maintained writes that only create
59
+ the only evidence there is. One narrow fail-closed exception applies to a name
60
+ this release reviewed and filed destructive: a `Delete-Dashboard` claiming
61
+ `readOnlyHint: true` is a downstream bug rather than news, and stays on the
62
+ approval path. Maintained writes that only create
64
63
  something new (`Create-Dashboard`, `Create-Cohort`, `Create-Metric`, and the
65
64
  rest) leave `destructiveHint` unset; `readOnlyHint: false` already routes them
66
65
  through the destructive path, and asserting destruction only inflates the