@zackbart/connecta 0.9.0 → 0.10.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 (75) hide show
  1. package/CHANGELOG.md +145 -0
  2. package/README.md +43 -91
  3. package/dist/catalog-service.d.ts +8 -0
  4. package/dist/catalog-service.d.ts.map +1 -1
  5. package/dist/catalog-service.js +24 -5
  6. package/dist/catalog-service.js.map +1 -1
  7. package/dist/catalog.d.ts +34 -1
  8. package/dist/catalog.d.ts.map +1 -1
  9. package/dist/catalog.js +264 -40
  10. package/dist/catalog.js.map +1 -1
  11. package/dist/errors.d.ts +5 -0
  12. package/dist/errors.d.ts.map +1 -1
  13. package/dist/errors.js +26 -0
  14. package/dist/errors.js.map +1 -1
  15. package/dist/execute.d.ts +3 -1
  16. package/dist/execute.d.ts.map +1 -1
  17. package/dist/execute.js +87 -20
  18. package/dist/execute.js.map +1 -1
  19. package/dist/executor-result.d.ts.map +1 -1
  20. package/dist/executor-result.js +37 -6
  21. package/dist/executor-result.js.map +1 -1
  22. package/dist/executors/quickjs-protocol.d.ts +12 -0
  23. package/dist/executors/quickjs-protocol.d.ts.map +1 -1
  24. package/dist/executors/quickjs-protocol.js +14 -0
  25. package/dist/executors/quickjs-protocol.js.map +1 -1
  26. package/dist/executors/quickjs-runtime.d.ts.map +1 -1
  27. package/dist/executors/quickjs-runtime.js +6 -3
  28. package/dist/executors/quickjs-runtime.js.map +1 -1
  29. package/dist/executors/quickjs.d.ts.map +1 -1
  30. package/dist/executors/quickjs.js +10 -4
  31. package/dist/executors/quickjs.js.map +1 -1
  32. package/dist/index.d.ts +16 -6
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +31 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/invocation.d.ts.map +1 -1
  37. package/dist/invocation.js +1 -4
  38. package/dist/invocation.js.map +1 -1
  39. package/dist/meta-tools.d.ts +26 -5
  40. package/dist/meta-tools.d.ts.map +1 -1
  41. package/dist/meta-tools.js +86 -42
  42. package/dist/meta-tools.js.map +1 -1
  43. package/dist/routes/mcp.d.ts.map +1 -1
  44. package/dist/routes/mcp.js +8 -2
  45. package/dist/routes/mcp.js.map +1 -1
  46. package/dist/routes/shared.d.ts +8 -2
  47. package/dist/routes/shared.d.ts.map +1 -1
  48. package/dist/routes/shared.js.map +1 -1
  49. package/dist/skills.d.ts +17 -5
  50. package/dist/skills.d.ts.map +1 -1
  51. package/dist/skills.js +70 -17
  52. package/dist/skills.js.map +1 -1
  53. package/dist/types.d.ts +14 -0
  54. package/dist/types.d.ts.map +1 -1
  55. package/dist/version.d.ts +1 -1
  56. package/dist/version.d.ts.map +1 -1
  57. package/dist/version.js +1 -1
  58. package/dist/version.js.map +1 -1
  59. package/package.json +2 -2
  60. package/src/catalog-service.ts +44 -5
  61. package/src/catalog.ts +327 -33
  62. package/src/errors.ts +28 -0
  63. package/src/execute.ts +126 -42
  64. package/src/executor-result.ts +50 -6
  65. package/src/executors/quickjs-protocol.ts +19 -0
  66. package/src/executors/quickjs-runtime.ts +6 -2
  67. package/src/executors/quickjs.ts +10 -3
  68. package/src/index.ts +52 -4
  69. package/src/invocation.ts +1 -5
  70. package/src/meta-tools.ts +118 -55
  71. package/src/routes/mcp.ts +8 -2
  72. package/src/routes/shared.ts +8 -1
  73. package/src/skills.ts +86 -16
  74. package/src/types.ts +15 -0
  75. package/src/version.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,151 @@
2
2
 
3
3
  All notable changes to this package are documented here.
4
4
 
5
+ ## 0.10.0 — 2026-07-30
6
+
7
+ **Code-first is what a model sees.** A deployment with an executor now serves
8
+ seven meta-tools instead of ten: `list_connectors`, `describe_tools`, and
9
+ `batch_call` are no longer top-level tools, and their behavior lives in
10
+ `connecta.search`, `connecta.describe`, and `connecta.batch` inside a program.
11
+ Nothing became unreachable and no policy machinery changed — writes still cross
12
+ `call_destructive_tool`, and `call_tool` deliberately stays, because a single cold
13
+ call is measurably cheaper direct than through a program. What breaks is a client
14
+ that calls one of the three folded names against an executor-backed deployment:
15
+ it gets an unknown-tool error. The always-loaded instructions, the `skills`
16
+ guidance, and the routing sentences in `call_tool`, `search_tools`, `get_result`,
17
+ and `execute_code` are rewritten for that surface, which measures 19.6% smaller
18
+ serialized tool definitions (10,675B → 8,587B), correcting the exploration's ~32%
19
+ estimate. **An executor-free deployment can ignore all of it**: it serves the same
20
+ nine tools with the same descriptions and the same instructions as before, byte
21
+ for byte. `surface: "classic"` alongside an executor restores the ten-tool shape.
22
+
23
+ The default was flipped by owner decision for a single-operator deployment rather
24
+ than by the repeated per-model eval that [`ethos.md`](./ethos.md) had gated it on;
25
+ that row now records the decision and its reasoning, and
26
+ [`eval/code-first-gate`](./eval/code-first-gate/README.md) remains as measurement
27
+ with all three of its arms now real deployment shapes rather than harness
28
+ simulations.
29
+
30
+ The code-mode guest API is now specified rather than merely described:
31
+ [`documentation/code-mode.md`](./documentation/code-mode.md) states what a
32
+ program is promised — surface, addressing, error shapes, projection, retry,
33
+ cancellation, limits, activity — with clause identifiers the tests cite, and
34
+ names the QuickJS/Dynamic Worker divergences as documented exceptions instead of
35
+ leaving them to be discovered. Both executors now run the same contract case
36
+ table, the Workers arm against a real Dynamic Worker in workerd. Writing the
37
+ clauses down turned up four places where the code did not quite match the
38
+ behavior worth having; those are the changes below, all additive or corrective,
39
+ and one of them (retryable policy refusals) reaches `call_tool` and `batch_call`
40
+ as well as programs.
41
+
42
+ ### Changed
43
+
44
+ - **The code-first surface is the default wherever an executor is configured.**
45
+ Seven tools: `execute_code`, `search_tools`, `call_tool`,
46
+ `call_destructive_tool`, `authorize_connector`, `get_result`, `skills`. Four
47
+ overlapping ways to reach one connector became two — `search_tools` then
48
+ `call_tool` for a single cold read, one `execute_code` run for everything wider.
49
+ An executor-free deployment is unchanged.
50
+ - **`ConnectaConfig.surface`** overrides what the executor implies. The reason to
51
+ set it is `"classic"` beside an executor, which is the ten-tool shape the eval
52
+ gate's incremental arm measures. `"code-first"` without an executor throws at
53
+ construction rather than advertise a program surface that does not exist, as
54
+ does any other value.
55
+ - **The eval gate configures its arms instead of faking one.** `gate-server.ts`
56
+ no longer filters `tools/list` or rewrites connecta's descriptions: all three
57
+ arms are ordinary deployments, so the harness measures the product and the arms
58
+ are byte-for-byte identical in the transport layer.
59
+
60
+ ### Added
61
+
62
+ - **Typed failures inside `connecta.batch`.** A failed call now reports
63
+ `{ address, ok: false, error, errorDetails }`, where `errorDetails` is the
64
+ same typed object `batch_call` returns (`code`, `retryable`, `retryAfterMs`,
65
+ and the `auth_required` recovery envelope). A thrown host error crosses the
66
+ sandbox bridge as a bare message in every executor, so this is the one channel
67
+ through which a program can tell a policy refusal from a transient failure
68
+ instead of cheerfully retrying the refusal. Programs reading `error` are
69
+ unaffected. An entry connecta could not even attempt — a malformed call object
70
+ — reports `batch_call_failed`, the code `batch_call` already uses for the same
71
+ situation.
72
+
73
+ ### Fixed
74
+
75
+ - **A policy refusal can no longer look retryable.** `unknown_address`,
76
+ `unknown_tool`, `ambiguous_tool_alias`, and
77
+ `destructive_tool_requires_approval` now pin `retryable: false` instead of
78
+ deriving it from their own message text. Those messages embed the address the
79
+ caller asked for, and the heuristic that classifies connector errors matches
80
+ `503`, `429`, and `temporar`, so a connector named `svc-503` or
81
+ `temporary-export` turned a refusal that will never succeed into one an agent
82
+ was told to retry. This affects `call_tool` and `batch_call` too, not only
83
+ programs.
84
+ - **An uncaught discovery-bound failure inside a program is typed.** A bad
85
+ `limit`, an oversized `addresses` list, or a discovery page over the
86
+ 256,000-byte ceiling now reaches the model as `invalid_args` or
87
+ `result_too_large` with `retryable: false`, the same envelope a failed tool
88
+ call gets, instead of as untyped error prose.
89
+ - **Bridge-limit errors name the address, not the plumbing.** A host call over
90
+ the QuickJS 256 KiB bound reported `connecta.__callNamespace` — the internal
91
+ dispatcher every shortcut namespace shares — where it now reports the
92
+ `connector.tool` address the program called.
93
+ - **An oversized program result is truncated once.** The over-cap notice is now
94
+ sized so its *serialized* form fits the 24,000-character result cap.
95
+ Previously the QuickJS path truncated in the child and again in the parent, so
96
+ a very large result came back as a truncation envelope wrapped in a truncation
97
+ envelope whose `totalChars` reported the inner envelope's length rather than
98
+ the real size. Previews are somewhat shorter; `totalChars` is now the true
99
+ serialized size of what the program returned.
100
+
101
+ ## 0.9.1 — 2026-07-29
102
+
103
+ A code-mode routing release. Agents that needed an unknown address *and* a
104
+ dependent call used to spend two outer executions on it — one to search, one to
105
+ act. They now spend one: schema-bearing `connecta.search()` matches carry the
106
+ exact field names a dependent program needs, and `execute_code` says to search
107
+ inside the run rather than ahead of it. A deployment can ignore all of this
108
+ unless it runs code mode; nothing in the published surface, the nine base
109
+ meta-tools, or `search_tools` responses changed.
110
+
111
+ Measured against the previous release across 60 matched runs per arm with a
112
+ pinned model: the dependent one-pass route went 0/10 to 10/10, the intended
113
+ route 41/60 to 52/60, exact addresses and arguments 58/60 to 60/60, and outer
114
+ round trips fell 10.8%. Final-answer correctness stayed at 60/60 in both arms.
115
+ The trade is real and recorded rather than buried: agent *output* tokens rose
116
+ 38.3% and non-cached host input 107.1%, both reproducing across replications,
117
+ while total agent input still fell 1.7%. Search performance is untouched —
118
+ 10,000-tool warm-search p50 stays near 3 ms.
119
+
120
+ ### Added
121
+
122
+ - **Schema key metadata in code mode.** `connecta.search()` matches that carry
123
+ schemas also carry `inputKeys`, `requiredInputKeys`, and `outputKeys`. The
124
+ names come from the same walk that renders the compact schema, so a top-level
125
+ `$ref` resolves and an `allOf` composes instead of reporting an empty field
126
+ list beside a schema that plainly lists fields. A schema that is not an object
127
+ shape — a union, an array, an unresolvable `$ref` — gets no lists rather than
128
+ empty ones: absent means "read the schema", where `[]` would claim the tool
129
+ takes no fields. A program that wants the bytes back passes
130
+ `includeSchemaKeys: false`.
131
+
132
+ ### Changed
133
+
134
+ - **`execute_code` routes dependent unknown-address work in one execution.**
135
+ Its description, the server instructions, and the usage guide agreed on the
136
+ two-round-trip pattern; they now agree on the one-pass one, and still send
137
+ search-only and single-call work to `search_tools` and `call_tool`.
138
+ - **The dependent example names its fields.** It previously indexed
139
+ `requiredInputKeys[0]`, which is a positional guess in a description that
140
+ forbids guessing, and worked only because the benchmark's tool has exactly
141
+ one required key.
142
+
143
+ ### Fixed
144
+
145
+ - **The workflow-by-id benchmark fixture no longer contradicts its own
146
+ prompt.** It asked for "the integration's JSON result" while naming a
147
+ projection of it, so no answer satisfied both readings and a wording defect
148
+ scored as a routing failure.
149
+
5
150
  ## 0.9.0 — 2026-07-29
6
151
 
7
152
  Connecta now speaks the 2026-07-28 MCP revision on both sides while retaining
package/README.md CHANGED
@@ -2,103 +2,55 @@
2
2
 
3
3
  ![A monochrome clay Connecta hub joining many tools](./assets/connecta-clay-hero.png)
4
4
 
5
- One MCP endpoint in front of every integration you've deliberately chosen.
6
- Agents see a handful of meta-tools instead of hundreds of definitions, and each
7
- client is configured once instead of once per integration.
8
-
9
- ## What connecta is
10
-
11
- An agent connected to N MCP servers pays for all N before it does anything:
12
- every server's full tool list lands in the context window at connect time, and
13
- every client is pointed at every server separately, each with its own auth.
14
- Connecta is one endpoint you deploy instead — a Cloudflare Worker or a Node
15
- process, same code either way — aggregating your connectors behind nine
16
- meta-tools. A connector is a remote MCP server connecta proxies or a plain
17
- HTTP API with hand-written tool definitions; both come out identical,
18
- addressed as `<connectorId>.<toolName>`.
19
-
20
- ```
21
- ┌── remoteMcp("notion") → mcp.notion.com
22
- Claude / Cursor ── MCP ──▶ connecta ───┼── remoteMcp("linear") → mcp.linear.app
23
- sees 9 tools /mcp ├── api("resend") → fetch(...)
24
- └── api("internal") → fetch(...)
25
- ```
26
-
27
- The agent discovers instead of preloading: `search_tools` ranks matches,
28
- `describe_tools` returns schemas for only the addresses about to be called,
29
- `call_tool` / `batch_call` / `call_destructive_tool` invoke them, and
30
- `list_connectors`, `authorize_connector`, `get_result`, and `skills` round out
31
- the nine. An optional tenth, `execute_code`, runs model-written JavaScript in
32
- a sandbox with no network, filesystem, or environment access — only the
33
- read-only tools in scope. Context holds nine definitions whether ten tools sit
34
- behind them or a thousand.
35
-
36
- Three properties are load-bearing enough to name here; the rest live in the
37
- [ethos](./ethos.md). **Read-only is fail-closed**: anything not explicitly
38
- annotated read-only crosses `call_destructive_tool`, which is annotated so the
39
- MCP host can ask a human. **Credentials stay server-side**: an encrypted
40
- vault, rotated from an operator page, and no surface ever returns a secret.
41
- **Config is code**: adding a connector is an edit and a deploy you can review
42
- in a pull request.
43
-
44
- ## Getting started
45
-
46
- Node deployments require Node.js 20.9 or newer.
47
-
48
- ```sh
49
- npm install @zackbart/connecta
5
+ One place for AI agents to connect to the tools you choose.
6
+
7
+ Connecta gives an agent a single MCP endpoint instead of making it connect to
8
+ every service separately. You decide which integrations are available and
9
+ Connecta holds their credentials, and the agent mostly works by writing
10
+ ordinary JavaScript that Connecta runs in a sandbox next to them — with a few
11
+ explicit tools for the jobs a program is the wrong shape for, destructive calls
12
+ among them.
13
+
14
+ ```mermaid
15
+ flowchart LR
16
+ Agent["AI agent"] -- "writes a program" --> Sandbox
17
+ Agent -- "one deliberate call" --> Explicit
18
+ subgraph Connecta["Connecta — one MCP endpoint. Credentials stay here."]
19
+ Sandbox["execute_code<br/>server-side sandbox"]
20
+ Explicit["Explicit tools<br/>destructive calls, search, auth"]
21
+ end
22
+ Sandbox --> Integrations["The integrations you chose"]
23
+ Explicit --> Integrations
50
24
  ```
51
25
 
52
- A minimal server with one hand-written connector:
53
-
54
- ```ts
55
- import { api, bearerToken, createConnecta } from "@zackbart/connecta";
56
- import { fileStorage, listen } from "@zackbart/connecta/node";
26
+ ## Why Connecta
57
27
 
58
- const connecta = createConnecta({
59
- storage: fileStorage("./.connecta-state.json"), // or memoryStorage()
60
- auth: bearerToken(process.env.CONNECTA_TOKEN ?? "dev-token"),
61
- connectors: [
62
- api("time", {
63
- description: "Time current timestamp",
64
- tools: [
65
- {
66
- name: "get_now",
67
- description: "Return the current time as an ISO 8601 timestamp.",
68
- inputSchema: { type: "object", properties: {} },
69
- annotations: { readOnlyHint: true },
70
- handler: async () => ({ now: new Date().toISOString() }),
71
- },
72
- ],
73
- }),
74
- ],
75
- });
28
+ - **One connection.** Configure clients once, even as integrations change.
29
+ - **Seven tools, not seven hundred.** A program can search the catalog, chain
30
+ calls, and trim the results before the agent ever sees them — so nothing has
31
+ to be loaded up front.
32
+ - **Safer access.** Credentials stay server-side — the program never sees them
33
+ and consequential actions remain explicit and individual.
34
+ - **Your deployment.** Connecta runs on Node, Docker, or Cloudflare Workers,
35
+ with configuration you can review and version.
76
36
 
77
- listen(connecta, 8787); // MCP at /mcp; Connections at http://localhost:8787/
78
- ```
37
+ ## Start here
79
38
 
80
- Point an MCP client at `http://localhost:8787/mcp` with an
81
- `Authorization: Bearer` header and `time.get_now` is discoverable through
82
- `search_tools`.
39
+ - [Node example](./examples/node/)
40
+ - [Docker example](./examples/docker/)
41
+ - [Cloudflare Worker example](./examples/worker/)
42
+ - [Documentation](./documentation/)
83
43
 
84
- Runnable deployments live in
85
- [`examples/`](https://github.com/zackbart/connecta/tree/main/examples): a
86
- free-tier-compatible Cloudflare Worker with KV and D1 adapters, a Node server
87
- extending the one above, and a single-service Docker compose stack.
88
- Heavyweight extras are optional peers behind subpaths (`/auth/clerk`,
89
- `/quickjs`), and connecta ships no service-specific connectors — endpoint,
90
- credential, and tool choices stay in your project.
44
+ Configuring a sandbox — a Dynamic Worker on Cloudflare, QuickJS on Node — is
45
+ what selects the code-first surface, and it is the assumed posture. A
46
+ deployment without one keeps the earlier nine-tool, call-by-call interface,
47
+ which stays supported.
91
48
 
92
- A candid note on maturity: connecta is built for its author's deployments
93
- first and published openly. Breaking changes are cheap and the version number
94
- signals change, not stability — the [ethos](./ethos.md) says so on purpose.
49
+ ## Project status
95
50
 
96
- ## Learn more
51
+ Connecta is built for its author's deployments first and is still evolving.
52
+ Breaking changes are expected before 1.0.
97
53
 
98
- - **[ethos.md](./ethos.md)** what this is, what it refuses to be, the
99
- decisions table, and the invariants. Read it before proposing anything.
100
- - **[documentation/](./documentation/)** — per-subsystem guides (currently
101
- stubs; the prior manual lives in git history).
102
- - **[CHANGELOG](./CHANGELOG.md)** — what changed in each release.
103
- - **[SECURITY](./SECURITY.md)** — supported versions and how to report a
104
- vulnerability.
54
+ Read the [ethos](./ethos.md) for the product's principles, the
55
+ [changelog](./CHANGELOG.md) for releases, and [security policy](./SECURITY.md)
56
+ for vulnerability reporting.
@@ -18,6 +18,8 @@ export interface CatalogSearchArgs {
18
18
  offset?: number;
19
19
  fullDescriptions?: boolean;
20
20
  includeSchemas?: "compact" | "json";
21
+ /** Code-mode helper metadata; never exposed by the public search_tools schema. */
22
+ includeSchemaKeys?: boolean;
21
23
  }
22
24
  export interface CatalogDescribeArgs {
23
25
  addresses?: unknown;
@@ -33,6 +35,9 @@ interface CatalogSearchEntry {
33
35
  description?: string;
34
36
  inputSchema?: unknown;
35
37
  outputSchema?: unknown;
38
+ inputKeys?: string[];
39
+ requiredInputKeys?: string[];
40
+ outputKeys?: string[];
36
41
  annotations?: ToolDef["annotations"];
37
42
  };
38
43
  }
@@ -126,6 +131,9 @@ export declare function flatSearchResult(page: CatalogSearchPage): {
126
131
  description?: string;
127
132
  inputSchema?: unknown;
128
133
  outputSchema?: unknown;
134
+ inputKeys?: string[];
135
+ requiredInputKeys?: string[];
136
+ outputKeys?: string[];
129
137
  annotations?: ToolDef["annotations"];
130
138
  }[];
131
139
  total: number;
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-service.d.ts","sourceRoot":"","sources":["../src/catalog-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-service.d.ts","sourceRoot":"","sources":["../src/catalog-service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { compactSchema, lexicalSearchQuery, rankTools, summarizeDescription, } from "./catalog.js";
1
+ import { compactSchema, lexicalCorpusStatistics, lexicalSearchQuery, rankTools, schemaObjectKeys, summarizeDescription, } from "./catalog.js";
2
2
  import { mapSettledWithConcurrency, resolveDiscoveryConcurrency, } from "./concurrency.js";
3
- import { classifyCallError, messageLooksRetryable } from "./errors.js";
3
+ import { classifyCallError, framingError } from "./errors.js";
4
4
  import { connectorGuide, connectorSkillName, } from "./skills.js";
5
5
  import { DEFAULT_PROBE_TIMEOUT_MS, normalizeTimeoutMs, withAbortableTimeout, } from "./timeout.js";
6
6
  export const DEFAULT_SEARCH_LIMIT = 8;
@@ -50,8 +50,23 @@ export function boundedDiscoveryText(value, hint) {
50
50
  }
51
51
  return text;
52
52
  }
53
- function framingError(code, message) {
54
- return { code, message, retryable: messageLooksRetryable(message) };
53
+ /**
54
+ * Code-mode key metadata for one match. Each half is omitted when its schema
55
+ * does not resolve to an object shape, so a program reads "no metadata, use the
56
+ * rendered schema" rather than "this tool has no fields".
57
+ */
58
+ function schemaKeyMetadata(input, output) {
59
+ const inputKeys = schemaObjectKeys(input);
60
+ const outputKeys = schemaObjectKeys(output);
61
+ return {
62
+ ...(inputKeys
63
+ ? {
64
+ inputKeys: inputKeys.properties,
65
+ requiredInputKeys: inputKeys.required,
66
+ }
67
+ : {}),
68
+ ...(outputKeys ? { outputKeys: outputKeys.properties } : {}),
69
+ };
55
70
  }
56
71
  function renderSchema(schema, format) {
57
72
  return format === "json" ? schema : compactSchema(schema);
@@ -223,6 +238,7 @@ export class CatalogService {
223
238
  const catalogs = await mapSettledWithConcurrency(connectors, this.concurrency, (connector) => this.loadForDiscovery(connector.id, `search_tools probe of "${connector.id}"`));
224
239
  const matches = [];
225
240
  let matchMode = "all";
241
+ const statistics = lexicalCorpusStatistics(catalogs.flatMap((catalog) => catalog.status === "fulfilled" ? [catalog.value] : []), retrievalQuery);
226
242
  const collectMatches = (mode) => {
227
243
  matches.length = 0;
228
244
  let orderBase = 0;
@@ -232,7 +248,7 @@ export class CatalogService {
232
248
  throw new Error("Catalog result has no corresponding connector");
233
249
  }
234
250
  if (catalog.status === "fulfilled") {
235
- for (const ranked of rankTools(catalog.value, retrievalQuery, mode)) {
251
+ for (const ranked of rankTools(catalog.value, retrievalQuery, mode, statistics)) {
236
252
  matches.push({
237
253
  connector,
238
254
  tool: ranked.tool,
@@ -273,6 +289,9 @@ export class CatalogService {
273
289
  outputSchema: renderSchema(match.tool.outputSchema, args.includeSchemas),
274
290
  }
275
291
  : {}),
292
+ ...(args.includeSchemas && args.includeSchemaKeys
293
+ ? schemaKeyMetadata(input, match.tool.outputSchema)
294
+ : {}),
276
295
  ...(match.tool.annotations
277
296
  ? { annotations: match.tool.annotations }
278
297
  : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-service.js","sourceRoot":"","sources":["../src/catalog-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-service.js","sourceRoot":"","sources":["../src/catalog-service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM9D,OAAO,EACL,cAAc,EACd,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAOtB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAElD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAElC,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAElC;IADX,YACW,IAAyC,EAClD,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,SAAI,GAAJ,IAAI,CAAqC;QAIlD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,gFAAgF;AAChF,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,oBAAoB,CAAC;IACrD,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACxB,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,gBAAgB,EACxB,CAAC;QACD,MAAM,IAAI,oBAAoB,CAC5B,cAAc,EACd,+CAA+C,gBAAgB,6CAA6C,CAC7G,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,oBAAoB,CAC5B,cAAc,EACd,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;QAC1C,MAAM,IAAI,oBAAoB,CAC5B,cAAc,EACd,kCAAkC,sBAAsB,4DAA4D,CACrH,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,IAAY;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,KAAK,GAAG,0BAA0B,EAAE,CAAC;QACvC,MAAM,IAAI,oBAAoB,CAC5B,kBAAkB,EAClB,uBAAuB,KAAK,0BAA0B,0BAA0B,kBAAkB,IAAI,EAAE,CACzG,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAmCD;;;;GAIG;AACH,SAAS,iBAAiB,CACxB,KAAiB,EACjB,MAA8B;IAM9B,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,CAAC,SAAS;YACX,CAAC,CAAC;gBACE,SAAS,EAAE,SAAS,CAAC,UAAU;gBAC/B,iBAAiB,EAAE,SAAS,CAAC,QAAQ;aACtC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAC;AACJ,CAAC;AA4CD,SAAS,YAAY,CAAC,MAAkB,EAAE,MAA0B;IAClE,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,cAAc;IAQN;IACR;IARF,YAAY,CAAS;IACb,cAAc,CAAS;IACvB,WAAW,CAAS;IACpB,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAC;IACtC,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEjE,YACmB,QAAsB,EAC9B,OAAe,EACxB,UAII,EAAE;QANW,aAAQ,GAAR,QAAQ,CAAc;QAC9B,YAAO,GAAP,OAAO,CAAQ;QAOxB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,cAAc;YACjB,kBAAkB,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,wBAAwB,CAAC;QACzE,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,EAAU,EACV,cAAyC,EAAE;QAE3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ;aAC1B,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC;aAC1D,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,gBAAgB,CAAC,EAAU,EAAE,KAAa;QAChD,OAAO,oBAAoB,CACzB,CAAC,MAAM,EAAE,EAAE,CACT,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;YACrB,MAAM;YACN,SAAS,EAAE,IAAI,CAAC,cAAc;SAC/B,CAAC,EACJ,IAAI,CAAC,cAAc,EACnB,KAAK,CACN,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAe,EACf,cAAyC,EAAE;QAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,YAAY,CACjB,iBAAiB,EACjB,oBAAoB,OAAO,GAAG,CAC/B;gBACD,SAAS,EAAE,CAAC;aACb,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,KAAgB,CAAC;QACrB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,iBAAiB,CAAC,KAAK,EAAE,uBAAuB,CAAC;gBACxD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,KAAK;aACN,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,YAAY,CACjB,cAAc,EACd,iBAAiB,QAAQ,CAAC,QAAQ,mBAAmB,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,CAC9E;gBACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B,CAAC;QACJ,CAAC;QACD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE;gBACR,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,UAAU;aACX;YACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;SAChC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CACpB,WAAmB,EACnB,KAAa,EACb,QAAsC,EACtC,cAAyC,EAAE;QAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,YAAY,CACjB,iBAAiB,EACjB,oBAAoB,WAAW,IAAI,KAAK,GAAG,CAC5C;gBACD,SAAS,EAAE,CAAC;aACb,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,KAAgB,CAAC;QACrB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,iBAAiB,CAAC,KAAK,EAAE,uBAAuB,CAAC;gBACxD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAC/B,SAAS;gBACT,QAAQ,EAAE,KAAK;gBACf,KAAK;aACN,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,GAAG,KAAK,CAAC,MAAM,CAC9C,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CACxC,CAAC;QACF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,YAAY,CACjB,cAAc,EACd,iBAAiB,KAAK,mBAAmB,SAAS,CAAC,EAAE,GAAG,CACzD;gBACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAC/B,SAAS;gBACT,QAAQ,EAAE,KAAK;aAChB,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC;iBACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC;iBAC/B,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,eAAe,KAAK,gCAAgC,SAAS,CAAC,EAAE,aAAa,KAAK,sEAAsE;oBACjK,SAAS,EAAE,KAAK;iBACjB;gBACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAC/B,SAAS;gBACT,QAAQ,EAAE,KAAK;aAChB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE;gBACR,SAAS;gBACT,QAAQ,EAAE,UAAU,CAAC,IAAI;gBACzB,UAAU;aACX;YACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;SAChC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAuB;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS;YAC/B,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CACjD,CAAC,SAAS,EAA0B,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAC1D;YACH,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAC9C,UAAU,EACV,IAAI,CAAC,WAAW,EAChB,CAAC,SAAS,EAAE,EAAE,CACZ,IAAI,CAAC,gBAAgB,CACnB,SAAS,CAAC,EAAE,EACZ,0BAA0B,SAAS,CAAC,EAAE,GAAG,CAC1C,CACJ,CAAC;QACF,MAAM,OAAO,GAKR,EAAE,CAAC;QACR,IAAI,SAAS,GAAsB,KAAK,CAAC;QACzC,MAAM,UAAU,GAAG,uBAAuB,CACxC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3B,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CACtD,EACD,cAAc,CACf,CAAC;QACF,MAAM,cAAc,GAAG,CAAC,IAAuB,EAAE,EAAE;YACjD,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACnB,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE;gBAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;gBAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACnE,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBACnC,KAAK,MAAM,MAAM,IAAI,SAAS,CAC5B,OAAO,CAAC,KAAK,EACb,cAAc,EACd,IAAI,EACJ,UAAU,CACX,EAAE,CAAC;wBACF,OAAO,CAAC,IAAI,CAAC;4BACX,SAAS;4BACT,IAAI,EAAE,MAAM,CAAC,IAAI;4BACjB,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK;yBAChC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,SAAS;oBACP,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,SAAS,GAAG,SAAS,CAAC;YACtB,cAAc,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAClE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3D,MAAM,WAAW,GAAG,oBAAoB,CACtC,KAAK,CAAC,IAAI,CAAC,WAAW,EACtB,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAC/B,CAAC;YACF,OAAO;gBACL,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC;oBACjC,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;oBACnD,CAAC,CAAC,EAAE,CAAC;gBACP,IAAI,EAAE;oBACJ,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;oBACrB,OAAO,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;oBACnD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrD,GAAG,CAAC,IAAI,CAAC,cAAc;wBACrB,CAAC,CAAC;4BACE,WAAW,EACT,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC;yBAC3C;wBACH,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY;wBAChD,CAAC,CAAC;4BACE,YAAY,EACV,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC;yBAC7D;wBACH,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB;wBAC/C,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;wBACnD,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW;wBACxB,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;wBACzC,CAAC,CAAC,EAAE,CAAC;iBACR;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,UAAU,GACd,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;YACtC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;YACzB,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO;YACL,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,MAAM;YACN,KAAK;YACL,OAAO,EAAE,UAAU,KAAK,SAAS;YACjC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAC/C,CAAC,CAAC,EAAE,SAAS,EAAE;gBACf,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAyB;QACtC,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC;QACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;YACnC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG;YACnB,GAAG,IAAI,GAAG,CACR,QAAQ;iBACL,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;iBAC5C,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAC7C;SACF,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAC5C,YAAY,EACZ,IAAI,CAAC,WAAW,EAChB,CAAC,EAAE,EAAE,EAAE,CACL,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,4BAA4B,EAAE,GAAG,CAAC,CAC/D,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;QACtD,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtE,CAAC;YACD,QAAQ,CAAC,GAAG,CACV,WAAW,EACX,MAAM,CAAC,MAAM,KAAK,WAAW;gBAC3B,CAAC,CAAC,MAAM,CAAC,KAAK;gBACd,CAAC,CAAC,MAAM,CAAC,MAAM,YAAY,KAAK;oBAC9B,CAAC,CAAC,MAAM,CAAC,MAAM;oBACf,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CACvC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,EAAE;YAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,OAAO,GAAG,EAAE,CAAC;YAC5D,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC7D,IAAI,OAAO,YAAY,KAAK,EAAE,CAAC;gBAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7C,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,CACxB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,QAAQ,CACnD,CAAC;YACF,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO;oBACL,OAAO;oBACP,KAAK,EAAE,iBAAiB,iBAAiB,CAAC,QAAQ,mBAAmB,iBAAiB,CAAC,SAAS,CAAC,EAAE,GAAG;iBACvG,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACrD,MAAM,WAAW,GAAG,oBAAoB,CACtC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAC/B,CAAC;YACF,OAAO;gBACL,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC;oBAC7C,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;oBAC/D,CAAC,CAAC,EAAE,CAAC;gBACP,WAAW,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC;gBACxC,GAAG,CAAC,IAAI,CAAC,YAAY;oBACnB,CAAC,CAAC;wBACE,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC;qBACtD;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAuB;IACzD,MAAM,MAAM,GAMP,EAAE,CAAC;IACR,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmC,CAAC;IAC/D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAA4B;gBACrC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE;gBACtB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,KAAK,SAAS;oBAC3C,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;oBAC9C,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,KAAK,EAAE,EAAE;aACV,CAAC;YACF,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO;QACL,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAuB;IACtD,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9C,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC;AACJ,CAAC"}
package/dist/catalog.d.ts CHANGED
@@ -12,8 +12,41 @@ export interface RankedTool {
12
12
  score: number;
13
13
  order: number;
14
14
  }
15
+ export interface LexicalCorpusStatistics {
16
+ documentCount: number;
17
+ documentFrequency: ReadonlyMap<string, number>;
18
+ nameMatches: ReadonlyMap<string, ReadonlySet<ToolDef>>;
19
+ descriptionMatches: ReadonlyMap<string, ReadonlySet<ToolDef>>;
20
+ }
21
+ /**
22
+ * Compute query-specific document frequencies across every available catalog.
23
+ * The caller does this once per search and shares the result with each
24
+ * connector rank, so ubiquitous words contribute less than discriminative
25
+ * ones without making any action word a stopword.
26
+ */
27
+ export declare function lexicalCorpusStatistics(toolSets: ToolDef[][], query: string): LexicalCorpusStatistics;
15
28
  /** Rank a connector's tools while caching its normalized plain-data index. */
16
- export declare function rankTools(tools: ToolDef[], query: string, mode?: LexicalMatchMode): RankedTool[];
29
+ export declare function rankTools(tools: ToolDef[], query: string, mode?: LexicalMatchMode, statistics?: LexicalCorpusStatistics): RankedTool[];
17
30
  /** Render and cache a compact TypeScript-like representation of JSON Schema. */
18
31
  export declare function compactSchema(schema: JsonSchema): string;
32
+ /** The property and required names a schema resolves to, or undefined. */
33
+ export interface SchemaObjectKeys {
34
+ properties: string[];
35
+ required: string[];
36
+ }
37
+ /**
38
+ * Walk a schema the way renderSchema does — composing `allOf` and resolving
39
+ * `$ref` against the root's `$defs`/`definitions` — and collect the top-level
40
+ * property names it would render. A shallow `Object.keys(schema.properties)`
41
+ * disagrees with the rendered compact schema for exactly the shapes real
42
+ * connectors emit (a top-level `$ref` to a `$defs` entry, or the OpenAPI
43
+ * "extend this base" `allOf`), which is worse than no metadata at all: it
44
+ * reports an empty field list for a tool that plainly has fields.
45
+ *
46
+ * Returns undefined when the schema is not an object shape at all — a union,
47
+ * array, enum, or unresolvable `$ref`. Absent metadata tells a caller to read
48
+ * the rendered schema instead; an empty array would claim the tool takes no
49
+ * fields.
50
+ */
51
+ export declare function schemaObjectKeys(schema: JsonSchema | undefined): SchemaObjectKeys | undefined;
19
52
  //# sourceMappingURL=catalog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAItD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,EAAE,OAAO,GACZ,MAAM,GAAG,SAAS,CAMpB;AAgDD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMxD;AAQD,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAkDD,8EAA8E;AAC9E,wBAAgB,SAAS,CACvB,KAAK,EAAE,OAAO,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,gBAAwB,GAC7B,UAAU,EAAE,CASd;AAuID,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAexD"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAItD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,EAAE,OAAO,GACZ,MAAM,GAAG,SAAS,CAMpB;AA2DD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMxD;AAeD,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAyFD,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;CAC/D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,OAAO,EAAE,EAAE,EACrB,KAAK,EAAE,MAAM,GACZ,uBAAuB,CAqDzB;AA8DD,8EAA8E;AAC9E,wBAAgB,SAAS,CACvB,KAAK,EAAE,OAAO,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,gBAAwB,EAC9B,UAAU,GAAE,uBAGX,GACA,UAAU,EAAE,CASd;AAuID,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAexD;AAED,0EAA0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,UAAU,GAAG,SAAS,GAC7B,gBAAgB,GAAG,SAAS,CAW9B"}