autorouter-mcp 0.1.0 → 0.2.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.
package/README.md CHANGED
@@ -17,19 +17,19 @@ else behind a search. The model asks for what it needs in natural language, gets
17
17
  back a few ranked candidates, reads one schema, and calls it through the router.
18
18
 
19
19
  ```
20
- find_capabilities({ query: "why did my deploy fail" })
21
- → mcp:railway/get_deployment_logs (tool)
22
- → mcp:datadog/search_datadog_logs (tool)
23
- → skill:incident-triage (skill)
20
+ find_capabilities({ query: "inspect recent deployment errors" })
21
+ → mcp:deployments/get_logs (tool)
22
+ → mcp:monitoring/search_events (tool)
23
+ → skill:incident-triage (skill)
24
24
 
25
- describe_capability({ id: "mcp:railway/get_deployment_logs" })
26
- call_capability({ id: "mcp:railway/get_deployment_logs", arguments: { lines: 50 } })
25
+ describe_capability({ id: "mcp:deployments/get_logs" })
26
+ call_capability({ id: "mcp:deployments/get_logs", arguments: { lines: 50 } })
27
27
  ```
28
28
 
29
29
  ## Install
30
30
 
31
31
  ```sh
32
- npm install -g @webb-ventures/autorouter-mcp # or: npx autorouter-mcp <command>
32
+ npm install -g autorouter-mcp # or: npx autorouter-mcp <command>
33
33
  autorouter init --target claude # claude | codex | cursor | vscode
34
34
  autorouter adopt --target claude # ← the step that actually saves context
35
35
  ```
@@ -72,16 +72,16 @@ Run `autorouter doctor` to see the difference:
72
72
 
73
73
  ```
74
74
  ## Context cost
75
- exposing everything: ~23,172 tokens
75
+ exposing everything: ~12,400 tokens
76
76
  router surface: ~700 tokens
77
- still loaded direct: ~20,115 tokens (18,657 servers + 1,458 skills)
78
- actually saved: ~2,357 tokens per request (10%)
77
+ still loaded direct: ~11,700 tokens (10,800 servers + 900 skills)
78
+ actually saved: ~0 tokens per request (0%)
79
79
 
80
80
  ## Not yet adopted
81
81
  claude
82
- servers: datadog:mcp, semble, railway, pencil, gemini
83
- plugins: frontend-design
84
- skills: lavish, react-doctor, find-skills, use-railway
82
+ servers: project-tools, docs-search, issue-tracker
83
+ plugins: ui-toolkit
84
+ skills: code-review, incident-response
85
85
  → autorouter adopt --target claude
86
86
  ```
87
87
 
@@ -94,7 +94,7 @@ up verbatim to `~/.autorouter/adopted/` before anything is written;
94
94
  Retrieve, then rerank.
95
95
 
96
96
  1. **BM25** over every capability, always on, no dependencies. The tokenizer
97
- splits camelCase and snake_case (`execute_sql` → `execute`, `sql`, `executesql`)
97
+ splits camelCase and snake_case (`get_user` → `get`, `user`, `getuser`)
98
98
  and boosts fields: name ×3, keywords ×2, description ×1, schema ×0.5.
99
99
  2. **Embeddings**, optional. Voyage or OpenAI; scores are min-max normalized and
100
100
  fused `0.5 × bm25 + 0.5 × cosine`. An absent or unreachable provider is not an
@@ -122,20 +122,17 @@ access to a model they are already paying for. Meanwhile `claude` is sitting on
122
122
  `PATH`, already authenticated. Shelling out to it reuses that login with nothing
123
123
  to configure and no second bill.
124
124
 
125
- What it costs is process startup: 3-5s for a 30-candidate list against
126
- `claude -p --model haiku`, against roughly 1s for a direct HTTPS request. That is
127
- why a configured API key still outranks it. Selections are memoized per query and
128
- candidate set for the life of the process, so the price is paid once per distinct
129
- search, not once per turn.
130
-
131
- Getting there took stripping the harness back to a reranker. Out of the box the
132
- same call took 22s, because a headless agent boots hooks, LSP, plugin sync and
133
- `CLAUDE.md` discovery it has no use for, and then spends 6,223 output tokens
134
- thinking about a list it could rank in 168 — and returns a _worse_ answer for the
135
- deliberation. So the subprocess runs with `--bare --tools "" --setting-sources ""`
136
- and `MAX_THINKING_TOKENS=0` (Codex: `--ephemeral -s read-only`). The empty tool
137
- list is a correctness property before it is a saving: a selector that could edit
138
- files would be a different program.
125
+ What it costs is process startup, which makes a CLI selector slower than a direct
126
+ HTTPS request. That is why a configured API key still outranks it. Selections are
127
+ memoized per query and candidate set for the life of the process, so the price is
128
+ paid once per distinct search, not once per turn.
129
+
130
+ The harness is stripped back to a reranker. A default headless agent may boot
131
+ hooks, language servers, plugin sync and project-instruction discovery that a
132
+ short ranking task does not need. The subprocess therefore runs with
133
+ `--bare --tools "" --setting-sources ""` and `MAX_THINKING_TOKENS=0` (Codex:
134
+ `--ephemeral -s read-only`). The empty tool list is a correctness property before
135
+ it is a saving: a selector that could edit files would be a different program.
139
136
 
140
137
  ```jsonc
141
138
  "selector": {
@@ -188,10 +185,10 @@ per-project) and `.mcp.json`, `~/.codex/config.toml`, `~/.cursor/mcp.json`,
188
185
  "import": ["claude", "codex", "cursor", "plugins"],
189
186
  "servers": { "custom": { "command": "…", "args": [] } },
190
187
  "skillPaths": ["~/.claude/skills", ".claude/skills"],
191
- "exclude": ["gemini.generate_video"], // never surfaced at all
192
- "alwaysExpose": ["semble.search"], // stays first-class, never adopted
193
- "confirm": ["supabase.execute_sql"], // first call is rejected, must re-issue
194
- "selector": { "mode": "auto", "model": "claude-haiku-4-5-20251001" },
188
+ "exclude": ["media.generate_video"], // never surfaced at all
189
+ "alwaysExpose": ["code-search.search"], // stays first-class, never adopted
190
+ "confirm": ["database.execute_statement"], // first call is rejected, must re-issue
191
+ "selector": { "mode": "auto" },
195
192
  "embeddings": {
196
193
  "provider": "voyage",
197
194
  "model": "voyage-3-lite",
@@ -214,8 +211,8 @@ plugin command and subagent in the catalog is republished as one:
214
211
 
215
212
  ```
216
213
  /mcp__autorouter__find <what you want to do>
217
- /mcp__autorouter__datadog_ddviz
218
- /mcp__autorouter__supabase_supabase
214
+ /mcp__autorouter__plugin_name_command_name
215
+ /mcp__autorouter__skill_name
219
216
  ```
220
217
 
221
218
  Bodies are substituted the way the native loader substitutes them — `$ARGUMENTS`
@@ -226,7 +223,7 @@ plugin, so two plugins shipping a `setup` command both stay reachable rather tha
226
223
  one silently shadowing the other.
227
224
 
228
225
  Tools are deliberately not published here. A prompt returns text for the model to
229
- act on and cannot return a tool result, so a slash command for `execute_sql` would
226
+ act on and cannot return a tool result, so a slash command for `database_write` would
230
227
  look callable and do nothing. Tools reach the model through search instead.
231
228
 
232
229
  ## Harness support
@@ -258,9 +255,9 @@ identical result.
258
255
 
259
256
  A router that leaks context is just a slower way of loading everything, so the
260
257
  three surfaces that persist or accumulate are each bounded in **tokens**, not in
261
- item count. Counting items looks like a bound and is not one: tool definitions in
262
- a real catalog range from 199 to 1,748 tokens, so "15 tools" is anywhere between
263
- 3k and 26k depending only on what the model happened to search for.
258
+ item count. Counting items looks like a bound and is not one: tool definitions
259
+ vary widely in size, so the context cost of "15 tools" depends entirely on what
260
+ the model happened to search for.
264
261
 
265
262
  | surface | budget | lifetime |
266
263
  | ------------------------- | --------------------------------- | ---------- |
@@ -275,8 +272,9 @@ Schemas are **compacted** everywhere they are repeated: `$schema`, `title` and
275
272
  `examples` are dropped, and prose is trimmed, more aggressively the deeper it
276
273
  sits. Every structural field survives untouched — names, types, enums, `required`,
277
274
  nesting, and `additionalProperties: false` — because dropping one of those turns a
278
- valid call into a guessed one. On this machine that is a 31% cut across the
279
- catalog and 3× on the worst offenders, with no effect on what is callable.
275
+ valid call into a guessed one. This reduces repeated schema size without changing
276
+ what is callable.
277
+
280
278
  `describe_capability` is the exception and returns the schema verbatim: it exists
281
279
  precisely to recover anything a budgeted result had to leave out.
282
280
 
@@ -286,37 +284,35 @@ For agents that have a shell but no MCP, the same engine is directly usable:
286
284
 
287
285
  ```sh
288
286
  autorouter search "chart a csv"
289
- autorouter search "query postgres" --raw --limit 5
287
+ autorouter search "query a database" --raw --limit 5
290
288
  autorouter describe skill:dataviz
291
- autorouter call mcp:railway/get_logs --args '{"lines":50}'
289
+ autorouter call mcp:deployments/get_logs --args '{"lines":50}'
292
290
  autorouter list --kind skill
293
291
  autorouter doctor
294
292
  autorouter reindex
295
293
 
296
294
  autorouter adopt --target claude --dry-run # preview, change nothing
297
295
  autorouter adopt --target claude --servers-only # skip skills and plugins
298
- autorouter adopt --target claude --keep supabase --keep-plugin datadog
296
+ autorouter adopt --target claude --keep project-tools --keep-plugin ui-toolkit
299
297
  autorouter restore --target claude # undo the most recent adopt
300
298
 
301
299
  autorouter login # which servers need a grant
302
- autorouter login datadog:mcp # authorize one (opens a browser)
303
- autorouter logout datadog:mcp # forget a stored grant
300
+ autorouter login remote-server # authorize one (opens a browser)
301
+ autorouter logout remote-server # forget a stored grant
304
302
  ```
305
303
 
306
304
  ## OAuth servers
307
305
 
308
- Several of the heaviest MCP servers Datadog, Supabase, Linear carry no
309
- credentials in their config at all. Datadog's headers expand to `""`, Supabase's
310
- are only `X-Source-*`. The working token is an OAuth grant your harness obtained
311
- and keeps in its own credential store, and it was issued to that harness.
306
+ Some remote MCP servers carry no credentials in their visible configuration.
307
+ The working token is an OAuth grant obtained by the harness, stored in the
308
+ harness's credential store, and issued specifically to that harness.
312
309
 
313
310
  The router does not read it. It runs its own authorization-code flow and holds
314
311
  its own grant, which means it also works under Codex and Cursor, neither of which
315
312
  has a token to borrow:
316
313
 
317
314
  ```sh
318
- autorouter login datadog:mcp
319
- autorouter login supabase:supabase
315
+ autorouter login remote-server
320
316
  autorouter reindex
321
317
  ```
322
318
 
@@ -329,23 +325,23 @@ on one port cannot be refreshed from another.
329
325
 
330
326
  ### Choosing permissions
331
327
 
332
- A dynamically registered client defaults to every scope the provider advertises,
333
- which for Supabase includes `database:write` and `edge_functions:write` a token
334
- able to drop tables, held on behalf of a search tool. Scopes are the only
328
+ A dynamically registered client may default to every scope the provider
329
+ advertises, including write or administrative permissions. That can leave a
330
+ search tool holding a token capable of destructive actions. Scopes are the only
335
331
  restriction that survives a prompt injection, so pick them deliberately:
336
332
 
337
333
  ```sh
338
- autorouter login supabase --list-scopes # what this server offers
339
- autorouter login supabase --read-only # 8 of 13, no write scopes
340
- autorouter login supabase --scopes "projects:read,database:read"
334
+ autorouter login remote-server --list-scopes
335
+ autorouter login remote-server --read-only
336
+ autorouter login remote-server --scopes "projects:read,data:read"
341
337
  ```
342
338
 
343
339
  `--read-only` keeps the scopes whose names do not grant mutation. It is a
344
340
  heuristic over naming conventions (`:write`, `admin`, `manage`, `all`) and it
345
- cannot see through an opaque name like GitHub's `repo`, which grants write while
346
- reading as neutral `--scopes` is the exact lever when it guesses wrong. Where a
347
- provider offers no read-only subset at all, `--read-only` fails loudly rather than
348
- requesting an empty scope, which most providers read as "give the default".
341
+ cannot infer the permissions behind opaque scope names. `--scopes` is the exact
342
+ lever when the heuristic cannot tell. Where a provider offers no read-only subset
343
+ at all, `--read-only` fails loudly rather than requesting an empty scope, which
344
+ most providers read as "give the default".
349
345
 
350
346
  Scopes are fixed when the grant is issued, so narrowing an existing one means
351
347
  `--force` and a fresh authorization. A re-login inherits the previous narrowing
@@ -359,11 +355,12 @@ capability, so `doctor` and `adopt` both print the exact `login` command instead
359
355
  ## The trade-off, stated plainly
360
356
 
361
357
  Routing means your host's permission prompt sees `call_capability`, not
362
- `supabase.execute_sql`. That is a real loss of granularity and this tool does not
363
- pretend otherwise. Three mitigations: `exclude` means a capability is never
364
- surfaced; `confirm` rejects the first attempt with the resolved target spelled
365
- out and requires the model to re-issue with `confirm: true`; and every result is
366
- prefixed with the resolved `server/tool` so the transcript stays auditable.
358
+ `database.execute_statement`. That is a real loss of granularity and this tool
359
+ does not pretend otherwise. Three mitigations: `exclude` means a capability is
360
+ never surfaced; `confirm` rejects the first attempt with the resolved target
361
+ spelled out and requires the model to re-issue with `confirm: true`; and every
362
+ result is prefixed with the resolved `server/tool` so the transcript stays
363
+ auditable.
367
364
 
368
365
  Adopting skills and plugins edits `~/.claude/settings.json`, a file you also edit
369
366
  by hand. The whole file is backed up verbatim alongside the server moves and
package/dist/cli.js CHANGED
@@ -20,12 +20,14 @@ var __toESM = (mod, isNodeMode, target) => {
20
20
  }
21
21
  target = mod != null ? __create(__getProtoOf(mod)) : {};
22
22
  const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
23
- for (let key of __getOwnPropNames(mod))
24
- if (!__hasOwnProp.call(to, key))
25
- __defProp(to, key, {
26
- get: __accessProp.bind(mod, key),
27
- enumerable: true
28
- });
23
+ if (mod && typeof mod === "object" || typeof mod === "function") {
24
+ for (let key of __getOwnPropNames(mod))
25
+ if (!__hasOwnProp.call(to, key))
26
+ __defProp(to, key, {
27
+ get: __accessProp.bind(mod, key),
28
+ enumerable: true
29
+ });
30
+ }
29
31
  if (canCache)
30
32
  cache.set(mod, to);
31
33
  return to;
@@ -47,7 +49,7 @@ var __export = (target, all) => {
47
49
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
48
50
 
49
51
  // node_modules/ajv/dist/compile/codegen/code.js
50
- var require_code = __commonJS((exports) => {
52
+ var require_code = __commonJS(function(exports) {
51
53
  Object.defineProperty(exports, "__esModule", { value: true });
52
54
  exports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = undefined;
53
55
 
@@ -201,7 +203,7 @@ var require_code = __commonJS((exports) => {
201
203
  });
202
204
 
203
205
  // node_modules/ajv/dist/compile/codegen/scope.js
204
- var require_scope = __commonJS((exports) => {
206
+ var require_scope = __commonJS(function(exports) {
205
207
  Object.defineProperty(exports, "__esModule", { value: true });
206
208
  exports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = undefined;
207
209
  var code_1 = require_code();
@@ -347,7 +349,7 @@ var require_scope = __commonJS((exports) => {
347
349
  });
348
350
 
349
351
  // node_modules/ajv/dist/compile/codegen/index.js
350
- var require_codegen = __commonJS((exports) => {
352
+ var require_codegen = __commonJS(function(exports) {
351
353
  Object.defineProperty(exports, "__esModule", { value: true });
352
354
  exports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = undefined;
353
355
  var code_1 = require_code();
@@ -1057,7 +1059,7 @@ var require_codegen = __commonJS((exports) => {
1057
1059
  });
1058
1060
 
1059
1061
  // node_modules/ajv/dist/compile/util.js
1060
- var require_util = __commonJS((exports) => {
1062
+ var require_util = __commonJS(function(exports) {
1061
1063
  Object.defineProperty(exports, "__esModule", { value: true });
1062
1064
  exports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = undefined;
1063
1065
  var codegen_1 = require_codegen();
@@ -1221,7 +1223,7 @@ var require_util = __commonJS((exports) => {
1221
1223
  });
1222
1224
 
1223
1225
  // node_modules/ajv/dist/compile/names.js
1224
- var require_names = __commonJS((exports) => {
1226
+ var require_names = __commonJS(function(exports) {
1225
1227
  Object.defineProperty(exports, "__esModule", { value: true });
1226
1228
  var codegen_1 = require_codegen();
1227
1229
  var names = {
@@ -1246,7 +1248,7 @@ var require_names = __commonJS((exports) => {
1246
1248
  });
1247
1249
 
1248
1250
  // node_modules/ajv/dist/compile/errors.js
1249
- var require_errors = __commonJS((exports) => {
1251
+ var require_errors = __commonJS(function(exports) {
1250
1252
  Object.defineProperty(exports, "__esModule", { value: true });
1251
1253
  exports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = undefined;
1252
1254
  var codegen_1 = require_codegen();
@@ -1364,7 +1366,7 @@ var require_errors = __commonJS((exports) => {
1364
1366
  });
1365
1367
 
1366
1368
  // node_modules/ajv/dist/compile/validate/boolSchema.js
1367
- var require_boolSchema = __commonJS((exports) => {
1369
+ var require_boolSchema = __commonJS(function(exports) {
1368
1370
  Object.defineProperty(exports, "__esModule", { value: true });
1369
1371
  exports.boolOrEmptySchema = exports.topBoolOrEmptySchema = undefined;
1370
1372
  var errors_1 = require_errors();
@@ -1412,7 +1414,7 @@ var require_boolSchema = __commonJS((exports) => {
1412
1414
  });
1413
1415
 
1414
1416
  // node_modules/ajv/dist/compile/rules.js
1415
- var require_rules = __commonJS((exports) => {
1417
+ var require_rules = __commonJS(function(exports) {
1416
1418
  Object.defineProperty(exports, "__esModule", { value: true });
1417
1419
  exports.getRules = exports.isJSONType = undefined;
1418
1420
  var _jsonTypes = ["string", "number", "integer", "boolean", "null", "object", "array"];
@@ -1440,7 +1442,7 @@ var require_rules = __commonJS((exports) => {
1440
1442
  });
1441
1443
 
1442
1444
  // node_modules/ajv/dist/compile/validate/applicability.js
1443
- var require_applicability = __commonJS((exports) => {
1445
+ var require_applicability = __commonJS(function(exports) {
1444
1446
  Object.defineProperty(exports, "__esModule", { value: true });
1445
1447
  exports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = undefined;
1446
1448
  function schemaHasRulesForType({ schema, self }, type) {
@@ -1460,7 +1462,7 @@ var require_applicability = __commonJS((exports) => {
1460
1462
  });
1461
1463
 
1462
1464
  // node_modules/ajv/dist/compile/validate/dataType.js
1463
- var require_dataType = __commonJS((exports) => {
1465
+ var require_dataType = __commonJS(function(exports) {
1464
1466
  Object.defineProperty(exports, "__esModule", { value: true });
1465
1467
  exports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = undefined;
1466
1468
  var rules_1 = require_rules();
@@ -1641,7 +1643,7 @@ var require_dataType = __commonJS((exports) => {
1641
1643
  });
1642
1644
 
1643
1645
  // node_modules/ajv/dist/compile/validate/defaults.js
1644
- var require_defaults = __commonJS((exports) => {
1646
+ var require_defaults = __commonJS(function(exports) {
1645
1647
  Object.defineProperty(exports, "__esModule", { value: true });
1646
1648
  exports.assignDefaults = undefined;
1647
1649
  var codegen_1 = require_codegen();
@@ -1675,7 +1677,7 @@ var require_defaults = __commonJS((exports) => {
1675
1677
  });
1676
1678
 
1677
1679
  // node_modules/ajv/dist/vocabularies/code.js
1678
- var require_code2 = __commonJS((exports) => {
1680
+ var require_code2 = __commonJS(function(exports) {
1679
1681
  Object.defineProperty(exports, "__esModule", { value: true });
1680
1682
  exports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = undefined;
1681
1683
  var codegen_1 = require_codegen();
@@ -1804,7 +1806,7 @@ var require_code2 = __commonJS((exports) => {
1804
1806
  });
1805
1807
 
1806
1808
  // node_modules/ajv/dist/compile/validate/keyword.js
1807
- var require_keyword = __commonJS((exports) => {
1809
+ var require_keyword = __commonJS(function(exports) {
1808
1810
  Object.defineProperty(exports, "__esModule", { value: true });
1809
1811
  exports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = undefined;
1810
1812
  var codegen_1 = require_codegen();
@@ -1919,7 +1921,7 @@ var require_keyword = __commonJS((exports) => {
1919
1921
  });
1920
1922
 
1921
1923
  // node_modules/ajv/dist/compile/validate/subschema.js
1922
- var require_subschema = __commonJS((exports) => {
1924
+ var require_subschema = __commonJS(function(exports) {
1923
1925
  Object.defineProperty(exports, "__esModule", { value: true });
1924
1926
  exports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = undefined;
1925
1927
  var codegen_1 = require_codegen();
@@ -1999,7 +2001,7 @@ var require_subschema = __commonJS((exports) => {
1999
2001
  });
2000
2002
 
2001
2003
  // node_modules/fast-deep-equal/index.js
2002
- var require_fast_deep_equal = __commonJS((exports, module) => {
2004
+ var require_fast_deep_equal = __commonJS(function(exports, module) {
2003
2005
  module.exports = function equal(a, b) {
2004
2006
  if (a === b)
2005
2007
  return true;
@@ -2041,7 +2043,7 @@ var require_fast_deep_equal = __commonJS((exports, module) => {
2041
2043
  });
2042
2044
 
2043
2045
  // node_modules/json-schema-traverse/index.js
2044
- var require_json_schema_traverse = __commonJS((exports, module) => {
2046
+ var require_json_schema_traverse = __commonJS(function(exports, module) {
2045
2047
  var traverse = module.exports = function(schema, opts, cb) {
2046
2048
  if (typeof opts == "function") {
2047
2049
  cb = opts;
@@ -2124,7 +2126,7 @@ var require_json_schema_traverse = __commonJS((exports, module) => {
2124
2126
  });
2125
2127
 
2126
2128
  // node_modules/ajv/dist/compile/resolve.js
2127
- var require_resolve = __commonJS((exports) => {
2129
+ var require_resolve = __commonJS(function(exports) {
2128
2130
  Object.defineProperty(exports, "__esModule", { value: true });
2129
2131
  exports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = undefined;
2130
2132
  var util_1 = require_util();
@@ -2277,7 +2279,7 @@ var require_resolve = __commonJS((exports) => {
2277
2279
  });
2278
2280
 
2279
2281
  // node_modules/ajv/dist/compile/validate/index.js
2280
- var require_validate = __commonJS((exports) => {
2282
+ var require_validate = __commonJS(function(exports) {
2281
2283
  Object.defineProperty(exports, "__esModule", { value: true });
2282
2284
  exports.getData = exports.KeywordCxt = exports.validateFunctionCode = undefined;
2283
2285
  var boolSchema_1 = require_boolSchema();
@@ -2782,7 +2784,7 @@ var require_validate = __commonJS((exports) => {
2782
2784
  });
2783
2785
 
2784
2786
  // node_modules/ajv/dist/runtime/validation_error.js
2785
- var require_validation_error = __commonJS((exports) => {
2787
+ var require_validation_error = __commonJS(function(exports) {
2786
2788
  Object.defineProperty(exports, "__esModule", { value: true });
2787
2789
 
2788
2790
  class ValidationError extends Error {
@@ -2796,7 +2798,7 @@ var require_validation_error = __commonJS((exports) => {
2796
2798
  });
2797
2799
 
2798
2800
  // node_modules/ajv/dist/compile/ref_error.js
2799
- var require_ref_error = __commonJS((exports) => {
2801
+ var require_ref_error = __commonJS(function(exports) {
2800
2802
  Object.defineProperty(exports, "__esModule", { value: true });
2801
2803
  var resolve_1 = require_resolve();
2802
2804
 
@@ -2811,7 +2813,7 @@ var require_ref_error = __commonJS((exports) => {
2811
2813
  });
2812
2814
 
2813
2815
  // node_modules/ajv/dist/compile/index.js
2814
- var require_compile = __commonJS((exports) => {
2816
+ var require_compile = __commonJS(function(exports) {
2815
2817
  Object.defineProperty(exports, "__esModule", { value: true });
2816
2818
  exports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = undefined;
2817
2819
  var codegen_1 = require_codegen();
@@ -3032,7 +3034,7 @@ var require_compile = __commonJS((exports) => {
3032
3034
  });
3033
3035
 
3034
3036
  // node_modules/ajv/dist/refs/data.json
3035
- var require_data = __commonJS((exports, module) => {
3037
+ var require_data = __commonJS(function(exports, module) {
3036
3038
  module.exports = {
3037
3039
  $id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
3038
3040
  description: "Meta-schema for $data reference (JSON AnySchema extension proposal)",
@@ -3049,7 +3051,7 @@ var require_data = __commonJS((exports, module) => {
3049
3051
  });
3050
3052
 
3051
3053
  // node_modules/fast-uri/lib/utils.js
3052
- var require_utils = __commonJS((exports, module) => {
3054
+ var require_utils = __commonJS(function(exports, module) {
3053
3055
  var isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
3054
3056
  var isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);
3055
3057
  var isHexPair = RegExp.prototype.test.bind(/^[\da-f]{2}$/iu);
@@ -3561,7 +3563,7 @@ var require_utils = __commonJS((exports, module) => {
3561
3563
  });
3562
3564
 
3563
3565
  // node_modules/fast-uri/lib/schemes.js
3564
- var require_schemes = __commonJS((exports, module) => {
3566
+ var require_schemes = __commonJS(function(exports, module) {
3565
3567
  var { isUUID } = require_utils();
3566
3568
  var URN_REG = /^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu;
3567
3569
  var supportedSchemeNames = [
@@ -3736,7 +3738,7 @@ var require_schemes = __commonJS((exports, module) => {
3736
3738
  });
3737
3739
 
3738
3740
  // node_modules/fast-uri/index.js
3739
- var require_fast_uri = __commonJS((exports, module) => {
3741
+ var require_fast_uri = __commonJS(function(exports, module) {
3740
3742
  var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
3741
3743
  var { SCHEMES, getSchemeHandler } = require_schemes();
3742
3744
  var VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u;
@@ -4132,7 +4134,7 @@ var require_fast_uri = __commonJS((exports, module) => {
4132
4134
  });
4133
4135
 
4134
4136
  // node_modules/ajv/dist/runtime/uri.js
4135
- var require_uri = __commonJS((exports) => {
4137
+ var require_uri = __commonJS(function(exports) {
4136
4138
  Object.defineProperty(exports, "__esModule", { value: true });
4137
4139
  var uri = require_fast_uri();
4138
4140
  uri.code = 'require("ajv/dist/runtime/uri").default';
@@ -4140,7 +4142,7 @@ var require_uri = __commonJS((exports) => {
4140
4142
  });
4141
4143
 
4142
4144
  // node_modules/ajv/dist/core.js
4143
- var require_core = __commonJS((exports) => {
4145
+ var require_core = __commonJS(function(exports) {
4144
4146
  Object.defineProperty(exports, "__esModule", { value: true });
4145
4147
  exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = undefined;
4146
4148
  var validate_1 = require_validate();
@@ -4733,7 +4735,7 @@ var require_core = __commonJS((exports) => {
4733
4735
  });
4734
4736
 
4735
4737
  // node_modules/ajv/dist/vocabularies/core/id.js
4736
- var require_id = __commonJS((exports) => {
4738
+ var require_id = __commonJS(function(exports) {
4737
4739
  Object.defineProperty(exports, "__esModule", { value: true });
4738
4740
  var def = {
4739
4741
  keyword: "id",
@@ -4745,7 +4747,7 @@ var require_id = __commonJS((exports) => {
4745
4747
  });
4746
4748
 
4747
4749
  // node_modules/ajv/dist/vocabularies/core/ref.js
4748
- var require_ref = __commonJS((exports) => {
4750
+ var require_ref = __commonJS(function(exports) {
4749
4751
  Object.defineProperty(exports, "__esModule", { value: true });
4750
4752
  exports.callRef = exports.getValidate = undefined;
4751
4753
  var ref_error_1 = require_ref_error();
@@ -4864,7 +4866,7 @@ var require_ref = __commonJS((exports) => {
4864
4866
  });
4865
4867
 
4866
4868
  // node_modules/ajv/dist/vocabularies/core/index.js
4867
- var require_core2 = __commonJS((exports) => {
4869
+ var require_core2 = __commonJS(function(exports) {
4868
4870
  Object.defineProperty(exports, "__esModule", { value: true });
4869
4871
  var id_1 = require_id();
4870
4872
  var ref_1 = require_ref();
@@ -4882,7 +4884,7 @@ var require_core2 = __commonJS((exports) => {
4882
4884
  });
4883
4885
 
4884
4886
  // node_modules/ajv/dist/vocabularies/validation/limitNumber.js
4885
- var require_limitNumber = __commonJS((exports) => {
4887
+ var require_limitNumber = __commonJS(function(exports) {
4886
4888
  Object.defineProperty(exports, "__esModule", { value: true });
4887
4889
  var codegen_1 = require_codegen();
4888
4890
  var ops = codegen_1.operators;
@@ -4911,7 +4913,7 @@ var require_limitNumber = __commonJS((exports) => {
4911
4913
  });
4912
4914
 
4913
4915
  // node_modules/ajv/dist/vocabularies/validation/multipleOf.js
4914
- var require_multipleOf = __commonJS((exports) => {
4916
+ var require_multipleOf = __commonJS(function(exports) {
4915
4917
  Object.defineProperty(exports, "__esModule", { value: true });
4916
4918
  var codegen_1 = require_codegen();
4917
4919
  var error2 = {
@@ -4936,7 +4938,7 @@ var require_multipleOf = __commonJS((exports) => {
4936
4938
  });
4937
4939
 
4938
4940
  // node_modules/ajv/dist/runtime/ucs2length.js
4939
- var require_ucs2length = __commonJS((exports) => {
4941
+ var require_ucs2length = __commonJS(function(exports) {
4940
4942
  Object.defineProperty(exports, "__esModule", { value: true });
4941
4943
  function ucs2length(str) {
4942
4944
  const len = str.length;
@@ -4959,7 +4961,7 @@ var require_ucs2length = __commonJS((exports) => {
4959
4961
  });
4960
4962
 
4961
4963
  // node_modules/ajv/dist/vocabularies/validation/limitLength.js
4962
- var require_limitLength = __commonJS((exports) => {
4964
+ var require_limitLength = __commonJS(function(exports) {
4963
4965
  Object.defineProperty(exports, "__esModule", { value: true });
4964
4966
  var codegen_1 = require_codegen();
4965
4967
  var util_1 = require_util();
@@ -4988,7 +4990,7 @@ var require_limitLength = __commonJS((exports) => {
4988
4990
  });
4989
4991
 
4990
4992
  // node_modules/ajv/dist/vocabularies/validation/pattern.js
4991
- var require_pattern = __commonJS((exports) => {
4993
+ var require_pattern = __commonJS(function(exports) {
4992
4994
  Object.defineProperty(exports, "__esModule", { value: true });
4993
4995
  var code_1 = require_code2();
4994
4996
  var util_1 = require_util();
@@ -5022,7 +5024,7 @@ var require_pattern = __commonJS((exports) => {
5022
5024
  });
5023
5025
 
5024
5026
  // node_modules/ajv/dist/vocabularies/validation/limitProperties.js
5025
- var require_limitProperties = __commonJS((exports) => {
5027
+ var require_limitProperties = __commonJS(function(exports) {
5026
5028
  Object.defineProperty(exports, "__esModule", { value: true });
5027
5029
  var codegen_1 = require_codegen();
5028
5030
  var error2 = {
@@ -5048,7 +5050,7 @@ var require_limitProperties = __commonJS((exports) => {
5048
5050
  });
5049
5051
 
5050
5052
  // node_modules/ajv/dist/vocabularies/validation/required.js
5051
- var require_required = __commonJS((exports) => {
5053
+ var require_required = __commonJS(function(exports) {
5052
5054
  Object.defineProperty(exports, "__esModule", { value: true });
5053
5055
  var code_1 = require_code2();
5054
5056
  var codegen_1 = require_codegen();
@@ -5127,7 +5129,7 @@ var require_required = __commonJS((exports) => {
5127
5129
  });
5128
5130
 
5129
5131
  // node_modules/ajv/dist/vocabularies/validation/limitItems.js
5130
- var require_limitItems = __commonJS((exports) => {
5132
+ var require_limitItems = __commonJS(function(exports) {
5131
5133
  Object.defineProperty(exports, "__esModule", { value: true });
5132
5134
  var codegen_1 = require_codegen();
5133
5135
  var error2 = {
@@ -5153,7 +5155,7 @@ var require_limitItems = __commonJS((exports) => {
5153
5155
  });
5154
5156
 
5155
5157
  // node_modules/ajv/dist/runtime/equal.js
5156
- var require_equal = __commonJS((exports) => {
5158
+ var require_equal = __commonJS(function(exports) {
5157
5159
  Object.defineProperty(exports, "__esModule", { value: true });
5158
5160
  var equal = require_fast_deep_equal();
5159
5161
  equal.code = 'require("ajv/dist/runtime/equal").default';
@@ -5161,7 +5163,7 @@ var require_equal = __commonJS((exports) => {
5161
5163
  });
5162
5164
 
5163
5165
  // node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
5164
- var require_uniqueItems = __commonJS((exports) => {
5166
+ var require_uniqueItems = __commonJS(function(exports) {
5165
5167
  Object.defineProperty(exports, "__esModule", { value: true });
5166
5168
  var dataType_1 = require_dataType();
5167
5169
  var codegen_1 = require_codegen();
@@ -5225,7 +5227,7 @@ var require_uniqueItems = __commonJS((exports) => {
5225
5227
  });
5226
5228
 
5227
5229
  // node_modules/ajv/dist/vocabularies/validation/const.js
5228
- var require_const = __commonJS((exports) => {
5230
+ var require_const = __commonJS(function(exports) {
5229
5231
  Object.defineProperty(exports, "__esModule", { value: true });
5230
5232
  var codegen_1 = require_codegen();
5231
5233
  var util_1 = require_util();
@@ -5251,7 +5253,7 @@ var require_const = __commonJS((exports) => {
5251
5253
  });
5252
5254
 
5253
5255
  // node_modules/ajv/dist/vocabularies/validation/enum.js
5254
- var require_enum = __commonJS((exports) => {
5256
+ var require_enum = __commonJS(function(exports) {
5255
5257
  Object.defineProperty(exports, "__esModule", { value: true });
5256
5258
  var codegen_1 = require_codegen();
5257
5259
  var util_1 = require_util();
@@ -5297,7 +5299,7 @@ var require_enum = __commonJS((exports) => {
5297
5299
  });
5298
5300
 
5299
5301
  // node_modules/ajv/dist/vocabularies/validation/index.js
5300
- var require_validation = __commonJS((exports) => {
5302
+ var require_validation = __commonJS(function(exports) {
5301
5303
  Object.defineProperty(exports, "__esModule", { value: true });
5302
5304
  var limitNumber_1 = require_limitNumber();
5303
5305
  var multipleOf_1 = require_multipleOf();
@@ -5327,7 +5329,7 @@ var require_validation = __commonJS((exports) => {
5327
5329
  });
5328
5330
 
5329
5331
  // node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
5330
- var require_additionalItems = __commonJS((exports) => {
5332
+ var require_additionalItems = __commonJS(function(exports) {
5331
5333
  Object.defineProperty(exports, "__esModule", { value: true });
5332
5334
  exports.validateAdditionalItems = undefined;
5333
5335
  var codegen_1 = require_codegen();
@@ -5377,7 +5379,7 @@ var require_additionalItems = __commonJS((exports) => {
5377
5379
  });
5378
5380
 
5379
5381
  // node_modules/ajv/dist/vocabularies/applicator/items.js
5380
- var require_items = __commonJS((exports) => {
5382
+ var require_items = __commonJS(function(exports) {
5381
5383
  Object.defineProperty(exports, "__esModule", { value: true });
5382
5384
  exports.validateTuple = undefined;
5383
5385
  var codegen_1 = require_codegen();
@@ -5431,7 +5433,7 @@ var require_items = __commonJS((exports) => {
5431
5433
  });
5432
5434
 
5433
5435
  // node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
5434
- var require_prefixItems = __commonJS((exports) => {
5436
+ var require_prefixItems = __commonJS(function(exports) {
5435
5437
  Object.defineProperty(exports, "__esModule", { value: true });
5436
5438
  var items_1 = require_items();
5437
5439
  var def = {
@@ -5445,7 +5447,7 @@ var require_prefixItems = __commonJS((exports) => {
5445
5447
  });
5446
5448
 
5447
5449
  // node_modules/ajv/dist/vocabularies/applicator/items2020.js
5448
- var require_items2020 = __commonJS((exports) => {
5450
+ var require_items2020 = __commonJS(function(exports) {
5449
5451
  Object.defineProperty(exports, "__esModule", { value: true });
5450
5452
  var codegen_1 = require_codegen();
5451
5453
  var util_1 = require_util();
@@ -5477,7 +5479,7 @@ var require_items2020 = __commonJS((exports) => {
5477
5479
  });
5478
5480
 
5479
5481
  // node_modules/ajv/dist/vocabularies/applicator/contains.js
5480
- var require_contains = __commonJS((exports) => {
5482
+ var require_contains = __commonJS(function(exports) {
5481
5483
  Object.defineProperty(exports, "__esModule", { value: true });
5482
5484
  var codegen_1 = require_codegen();
5483
5485
  var util_1 = require_util();
@@ -5568,7 +5570,7 @@ var require_contains = __commonJS((exports) => {
5568
5570
  });
5569
5571
 
5570
5572
  // node_modules/ajv/dist/vocabularies/applicator/dependencies.js
5571
- var require_dependencies = __commonJS((exports) => {
5573
+ var require_dependencies = __commonJS(function(exports) {
5572
5574
  Object.defineProperty(exports, "__esModule", { value: true });
5573
5575
  exports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = undefined;
5574
5576
  var codegen_1 = require_codegen();
@@ -5653,7 +5655,7 @@ var require_dependencies = __commonJS((exports) => {
5653
5655
  });
5654
5656
 
5655
5657
  // node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
5656
- var require_propertyNames = __commonJS((exports) => {
5658
+ var require_propertyNames = __commonJS(function(exports) {
5657
5659
  Object.defineProperty(exports, "__esModule", { value: true });
5658
5660
  var codegen_1 = require_codegen();
5659
5661
  var util_1 = require_util();
@@ -5693,7 +5695,7 @@ var require_propertyNames = __commonJS((exports) => {
5693
5695
  });
5694
5696
 
5695
5697
  // node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
5696
- var require_additionalProperties = __commonJS((exports) => {
5698
+ var require_additionalProperties = __commonJS(function(exports) {
5697
5699
  Object.defineProperty(exports, "__esModule", { value: true });
5698
5700
  var code_1 = require_code2();
5699
5701
  var codegen_1 = require_codegen();
@@ -5796,7 +5798,7 @@ var require_additionalProperties = __commonJS((exports) => {
5796
5798
  });
5797
5799
 
5798
5800
  // node_modules/ajv/dist/vocabularies/applicator/properties.js
5799
- var require_properties = __commonJS((exports) => {
5801
+ var require_properties = __commonJS(function(exports) {
5800
5802
  Object.defineProperty(exports, "__esModule", { value: true });
5801
5803
  var validate_1 = require_validate();
5802
5804
  var code_1 = require_code2();
@@ -5851,7 +5853,7 @@ var require_properties = __commonJS((exports) => {
5851
5853
  });
5852
5854
 
5853
5855
  // node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
5854
- var require_patternProperties = __commonJS((exports) => {
5856
+ var require_patternProperties = __commonJS(function(exports) {
5855
5857
  Object.defineProperty(exports, "__esModule", { value: true });
5856
5858
  var code_1 = require_code2();
5857
5859
  var codegen_1 = require_codegen();
@@ -5922,7 +5924,7 @@ var require_patternProperties = __commonJS((exports) => {
5922
5924
  });
5923
5925
 
5924
5926
  // node_modules/ajv/dist/vocabularies/applicator/not.js
5925
- var require_not = __commonJS((exports) => {
5927
+ var require_not = __commonJS(function(exports) {
5926
5928
  Object.defineProperty(exports, "__esModule", { value: true });
5927
5929
  var util_1 = require_util();
5928
5930
  var def = {
@@ -5950,7 +5952,7 @@ var require_not = __commonJS((exports) => {
5950
5952
  });
5951
5953
 
5952
5954
  // node_modules/ajv/dist/vocabularies/applicator/anyOf.js
5953
- var require_anyOf = __commonJS((exports) => {
5955
+ var require_anyOf = __commonJS(function(exports) {
5954
5956
  Object.defineProperty(exports, "__esModule", { value: true });
5955
5957
  var code_1 = require_code2();
5956
5958
  var def = {
@@ -5964,7 +5966,7 @@ var require_anyOf = __commonJS((exports) => {
5964
5966
  });
5965
5967
 
5966
5968
  // node_modules/ajv/dist/vocabularies/applicator/oneOf.js
5967
- var require_oneOf = __commonJS((exports) => {
5969
+ var require_oneOf = __commonJS(function(exports) {
5968
5970
  Object.defineProperty(exports, "__esModule", { value: true });
5969
5971
  var codegen_1 = require_codegen();
5970
5972
  var util_1 = require_util();
@@ -6019,7 +6021,7 @@ var require_oneOf = __commonJS((exports) => {
6019
6021
  });
6020
6022
 
6021
6023
  // node_modules/ajv/dist/vocabularies/applicator/allOf.js
6022
- var require_allOf = __commonJS((exports) => {
6024
+ var require_allOf = __commonJS(function(exports) {
6023
6025
  Object.defineProperty(exports, "__esModule", { value: true });
6024
6026
  var util_1 = require_util();
6025
6027
  var def = {
@@ -6043,7 +6045,7 @@ var require_allOf = __commonJS((exports) => {
6043
6045
  });
6044
6046
 
6045
6047
  // node_modules/ajv/dist/vocabularies/applicator/if.js
6046
- var require_if = __commonJS((exports) => {
6048
+ var require_if = __commonJS(function(exports) {
6047
6049
  Object.defineProperty(exports, "__esModule", { value: true });
6048
6050
  var codegen_1 = require_codegen();
6049
6051
  var util_1 = require_util();
@@ -6109,7 +6111,7 @@ var require_if = __commonJS((exports) => {
6109
6111
  });
6110
6112
 
6111
6113
  // node_modules/ajv/dist/vocabularies/applicator/thenElse.js
6112
- var require_thenElse = __commonJS((exports) => {
6114
+ var require_thenElse = __commonJS(function(exports) {
6113
6115
  Object.defineProperty(exports, "__esModule", { value: true });
6114
6116
  var util_1 = require_util();
6115
6117
  var def = {
@@ -6124,7 +6126,7 @@ var require_thenElse = __commonJS((exports) => {
6124
6126
  });
6125
6127
 
6126
6128
  // node_modules/ajv/dist/vocabularies/applicator/index.js
6127
- var require_applicator = __commonJS((exports) => {
6129
+ var require_applicator = __commonJS(function(exports) {
6128
6130
  Object.defineProperty(exports, "__esModule", { value: true });
6129
6131
  var additionalItems_1 = require_additionalItems();
6130
6132
  var prefixItems_1 = require_prefixItems();
@@ -6167,7 +6169,7 @@ var require_applicator = __commonJS((exports) => {
6167
6169
  });
6168
6170
 
6169
6171
  // node_modules/ajv/dist/vocabularies/format/format.js
6170
- var require_format = __commonJS((exports) => {
6172
+ var require_format = __commonJS(function(exports) {
6171
6173
  Object.defineProperty(exports, "__esModule", { value: true });
6172
6174
  var codegen_1 = require_codegen();
6173
6175
  var error2 = {
@@ -6254,7 +6256,7 @@ var require_format = __commonJS((exports) => {
6254
6256
  });
6255
6257
 
6256
6258
  // node_modules/ajv/dist/vocabularies/format/index.js
6257
- var require_format2 = __commonJS((exports) => {
6259
+ var require_format2 = __commonJS(function(exports) {
6258
6260
  Object.defineProperty(exports, "__esModule", { value: true });
6259
6261
  var format_1 = require_format();
6260
6262
  var format = [format_1.default];
@@ -6262,7 +6264,7 @@ var require_format2 = __commonJS((exports) => {
6262
6264
  });
6263
6265
 
6264
6266
  // node_modules/ajv/dist/vocabularies/metadata.js
6265
- var require_metadata = __commonJS((exports) => {
6267
+ var require_metadata = __commonJS(function(exports) {
6266
6268
  Object.defineProperty(exports, "__esModule", { value: true });
6267
6269
  exports.contentVocabulary = exports.metadataVocabulary = undefined;
6268
6270
  exports.metadataVocabulary = [
@@ -6282,7 +6284,7 @@ var require_metadata = __commonJS((exports) => {
6282
6284
  });
6283
6285
 
6284
6286
  // node_modules/ajv/dist/vocabularies/draft7.js
6285
- var require_draft7 = __commonJS((exports) => {
6287
+ var require_draft7 = __commonJS(function(exports) {
6286
6288
  Object.defineProperty(exports, "__esModule", { value: true });
6287
6289
  var core_1 = require_core2();
6288
6290
  var validation_1 = require_validation();
@@ -6301,7 +6303,7 @@ var require_draft7 = __commonJS((exports) => {
6301
6303
  });
6302
6304
 
6303
6305
  // node_modules/ajv/dist/vocabularies/discriminator/types.js
6304
- var require_types = __commonJS((exports) => {
6306
+ var require_types = __commonJS(function(exports) {
6305
6307
  Object.defineProperty(exports, "__esModule", { value: true });
6306
6308
  exports.DiscrError = undefined;
6307
6309
  var DiscrError;
@@ -6312,7 +6314,7 @@ var require_types = __commonJS((exports) => {
6312
6314
  });
6313
6315
 
6314
6316
  // node_modules/ajv/dist/vocabularies/discriminator/index.js
6315
- var require_discriminator = __commonJS((exports) => {
6317
+ var require_discriminator = __commonJS(function(exports) {
6316
6318
  Object.defineProperty(exports, "__esModule", { value: true });
6317
6319
  var codegen_1 = require_codegen();
6318
6320
  var types_1 = require_types();
@@ -6414,7 +6416,7 @@ var require_discriminator = __commonJS((exports) => {
6414
6416
  });
6415
6417
 
6416
6418
  // node_modules/ajv/dist/refs/json-schema-draft-07.json
6417
- var require_json_schema_draft_07 = __commonJS((exports, module) => {
6419
+ var require_json_schema_draft_07 = __commonJS(function(exports, module) {
6418
6420
  module.exports = {
6419
6421
  $schema: "http://json-schema.org/draft-07/schema#",
6420
6422
  $id: "http://json-schema.org/draft-07/schema#",
@@ -6569,7 +6571,7 @@ var require_json_schema_draft_07 = __commonJS((exports, module) => {
6569
6571
  });
6570
6572
 
6571
6573
  // node_modules/ajv/dist/ajv.js
6572
- var require_ajv = __commonJS((exports, module) => {
6574
+ var require_ajv = __commonJS(function(exports, module) {
6573
6575
  Object.defineProperty(exports, "__esModule", { value: true });
6574
6576
  exports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = undefined;
6575
6577
  var core_1 = require_core();
@@ -6637,7 +6639,7 @@ var require_ajv = __commonJS((exports, module) => {
6637
6639
  });
6638
6640
 
6639
6641
  // node_modules/ajv-formats/dist/formats.js
6640
- var require_formats = __commonJS((exports) => {
6642
+ var require_formats = __commonJS(function(exports) {
6641
6643
  Object.defineProperty(exports, "__esModule", { value: true });
6642
6644
  exports.formatNames = exports.fastFormats = exports.fullFormats = undefined;
6643
6645
  function fmtDef(validate, compare) {
@@ -6814,7 +6816,7 @@ var require_formats = __commonJS((exports) => {
6814
6816
  });
6815
6817
 
6816
6818
  // node_modules/ajv-formats/dist/limit.js
6817
- var require_limit = __commonJS((exports) => {
6819
+ var require_limit = __commonJS(function(exports) {
6818
6820
  Object.defineProperty(exports, "__esModule", { value: true });
6819
6821
  exports.formatLimitDefinition = undefined;
6820
6822
  var ajv_1 = require_ajv();
@@ -6883,7 +6885,7 @@ var require_limit = __commonJS((exports) => {
6883
6885
  });
6884
6886
 
6885
6887
  // node_modules/ajv-formats/dist/index.js
6886
- var require_dist = __commonJS((exports, module) => {
6888
+ var require_dist = __commonJS(function(exports, module) {
6887
6889
  Object.defineProperty(exports, "__esModule", { value: true });
6888
6890
  var formats_1 = require_formats();
6889
6891
  var limit_1 = require_limit();
@@ -6922,7 +6924,7 @@ var require_dist = __commonJS((exports, module) => {
6922
6924
  });
6923
6925
 
6924
6926
  // node_modules/isexe/windows.js
6925
- var require_windows = __commonJS((exports, module) => {
6927
+ var require_windows = __commonJS(function(exports, module) {
6926
6928
  module.exports = isexe;
6927
6929
  isexe.sync = sync;
6928
6930
  var fs = __require("fs");
@@ -6960,7 +6962,7 @@ var require_windows = __commonJS((exports, module) => {
6960
6962
  });
6961
6963
 
6962
6964
  // node_modules/isexe/mode.js
6963
- var require_mode = __commonJS((exports, module) => {
6965
+ var require_mode = __commonJS(function(exports, module) {
6964
6966
  module.exports = isexe;
6965
6967
  isexe.sync = sync;
6966
6968
  var fs = __require("fs");
@@ -6991,7 +6993,7 @@ var require_mode = __commonJS((exports, module) => {
6991
6993
  });
6992
6994
 
6993
6995
  // node_modules/isexe/index.js
6994
- var require_isexe = __commonJS((exports, module) => {
6996
+ var require_isexe = __commonJS(function(exports, module) {
6995
6997
  var fs = __require("fs");
6996
6998
  var core2;
6997
6999
  if (process.platform === "win32" || global.TESTING_WINDOWS) {
@@ -7044,7 +7046,7 @@ var require_isexe = __commonJS((exports, module) => {
7044
7046
  });
7045
7047
 
7046
7048
  // node_modules/which/which.js
7047
- var require_which = __commonJS((exports, module) => {
7049
+ var require_which = __commonJS(function(exports, module) {
7048
7050
  var isWindows = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys";
7049
7051
  var path = __require("path");
7050
7052
  var COLON = isWindows ? ";" : ":";
@@ -7135,7 +7137,7 @@ var require_which = __commonJS((exports, module) => {
7135
7137
  });
7136
7138
 
7137
7139
  // node_modules/path-key/index.js
7138
- var require_path_key = __commonJS((exports, module) => {
7140
+ var require_path_key = __commonJS(function(exports, module) {
7139
7141
  var pathKey = (options = {}) => {
7140
7142
  const environment = options.env || process.env;
7141
7143
  const platform = options.platform || process.platform;
@@ -7149,7 +7151,7 @@ var require_path_key = __commonJS((exports, module) => {
7149
7151
  });
7150
7152
 
7151
7153
  // node_modules/cross-spawn/lib/util/resolveCommand.js
7152
- var require_resolveCommand = __commonJS((exports, module) => {
7154
+ var require_resolveCommand = __commonJS(function(exports, module) {
7153
7155
  var path = __require("path");
7154
7156
  var which = require_which();
7155
7157
  var getPathKey = require_path_key();
@@ -7186,7 +7188,7 @@ var require_resolveCommand = __commonJS((exports, module) => {
7186
7188
  });
7187
7189
 
7188
7190
  // node_modules/cross-spawn/lib/util/escape.js
7189
- var require_escape = __commonJS((exports, module) => {
7191
+ var require_escape = __commonJS(function(exports, module) {
7190
7192
  var metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g;
7191
7193
  function escapeCommand(arg) {
7192
7194
  arg = arg.replace(metaCharsRegExp, "^$1");
@@ -7208,12 +7210,12 @@ var require_escape = __commonJS((exports, module) => {
7208
7210
  });
7209
7211
 
7210
7212
  // node_modules/shebang-regex/index.js
7211
- var require_shebang_regex = __commonJS((exports, module) => {
7213
+ var require_shebang_regex = __commonJS(function(exports, module) {
7212
7214
  module.exports = /^#!(.*)/;
7213
7215
  });
7214
7216
 
7215
7217
  // node_modules/shebang-command/index.js
7216
- var require_shebang_command = __commonJS((exports, module) => {
7218
+ var require_shebang_command = __commonJS(function(exports, module) {
7217
7219
  var shebangRegex = require_shebang_regex();
7218
7220
  module.exports = (string5 = "") => {
7219
7221
  const match = string5.match(shebangRegex);
@@ -7230,7 +7232,7 @@ var require_shebang_command = __commonJS((exports, module) => {
7230
7232
  });
7231
7233
 
7232
7234
  // node_modules/cross-spawn/lib/util/readShebang.js
7233
- var require_readShebang = __commonJS((exports, module) => {
7235
+ var require_readShebang = __commonJS(function(exports, module) {
7234
7236
  var fs = __require("fs");
7235
7237
  var shebangCommand = require_shebang_command();
7236
7238
  function readShebang(command) {
@@ -7248,7 +7250,7 @@ var require_readShebang = __commonJS((exports, module) => {
7248
7250
  });
7249
7251
 
7250
7252
  // node_modules/cross-spawn/lib/parse.js
7251
- var require_parse = __commonJS((exports, module) => {
7253
+ var require_parse = __commonJS(function(exports, module) {
7252
7254
  var path = __require("path");
7253
7255
  var resolveCommand = require_resolveCommand();
7254
7256
  var escape2 = require_escape();
@@ -7307,7 +7309,7 @@ var require_parse = __commonJS((exports, module) => {
7307
7309
  });
7308
7310
 
7309
7311
  // node_modules/cross-spawn/lib/enoent.js
7310
- var require_enoent = __commonJS((exports, module) => {
7312
+ var require_enoent = __commonJS(function(exports, module) {
7311
7313
  var isWin = process.platform === "win32";
7312
7314
  function notFoundError(original, syscall) {
7313
7315
  return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {
@@ -7354,7 +7356,7 @@ var require_enoent = __commonJS((exports, module) => {
7354
7356
  });
7355
7357
 
7356
7358
  // node_modules/cross-spawn/index.js
7357
- var require_cross_spawn = __commonJS((exports, module) => {
7359
+ var require_cross_spawn = __commonJS(function(exports, module) {
7358
7360
  var cp = __require("child_process");
7359
7361
  var parse6 = require_parse();
7360
7362
  var enoent = require_enoent();
@@ -7378,7 +7380,7 @@ var require_cross_spawn = __commonJS((exports, module) => {
7378
7380
  });
7379
7381
 
7380
7382
  // node_modules/content-type/index.js
7381
- var require_content_type = __commonJS((exports) => {
7383
+ var require_content_type = __commonJS(function(exports) {
7382
7384
  /*!
7383
7385
  * content-type
7384
7386
  * Copyright(c) 2015 Douglas Christopher Wilson
@@ -9336,69 +9338,69 @@ function config(newConfig) {
9336
9338
  // node_modules/zod/v4/core/util.js
9337
9339
  var exports_util = {};
9338
9340
  __export(exports_util, {
9339
- unwrapMessage: () => unwrapMessage,
9340
- uint8ArrayToHex: () => uint8ArrayToHex,
9341
- uint8ArrayToBase64url: () => uint8ArrayToBase64url,
9342
- uint8ArrayToBase64: () => uint8ArrayToBase64,
9343
- stringifyPrimitive: () => stringifyPrimitive,
9344
- slugify: () => slugify,
9345
- shallowClone: () => shallowClone,
9346
- safeExtend: () => safeExtend,
9347
- required: () => required,
9348
- randomString: () => randomString,
9349
- propertyKeyTypes: () => propertyKeyTypes,
9350
- promiseAllObject: () => promiseAllObject,
9351
- primitiveTypes: () => primitiveTypes,
9352
- prefixIssues: () => prefixIssues,
9353
- pick: () => pick,
9354
- partial: () => partial,
9355
- parsedType: () => parsedType,
9356
- optionalKeys: () => optionalKeys,
9357
- omit: () => omit,
9358
- objectClone: () => objectClone,
9359
- numKeys: () => numKeys,
9360
- nullish: () => nullish,
9361
- normalizeParams: () => normalizeParams,
9362
- mergeDefs: () => mergeDefs,
9363
- merge: () => merge,
9364
- jsonStringifyReplacer: () => jsonStringifyReplacer,
9365
- joinValues: () => joinValues,
9366
- issue: () => issue,
9367
- isPlainObject: () => isPlainObject,
9368
- isObject: () => isObject,
9369
- hexToUint8Array: () => hexToUint8Array,
9370
- getSizableOrigin: () => getSizableOrigin,
9371
- getParsedType: () => getParsedType,
9372
- getLengthableOrigin: () => getLengthableOrigin,
9373
- getEnumValues: () => getEnumValues,
9374
- getElementAtPath: () => getElementAtPath,
9375
- floatSafeRemainder: () => floatSafeRemainder,
9376
- finalizeIssue: () => finalizeIssue,
9377
- extend: () => extend,
9378
- explicitlyAborted: () => explicitlyAborted,
9379
- escapeRegex: () => escapeRegex2,
9380
- esc: () => esc,
9381
- defineLazy: () => defineLazy,
9382
- createTransparentProxy: () => createTransparentProxy,
9383
- cloneDef: () => cloneDef,
9384
- clone: () => clone,
9385
- cleanRegex: () => cleanRegex,
9386
- cleanEnum: () => cleanEnum,
9387
- captureStackTrace: () => captureStackTrace,
9388
- cached: () => cached,
9389
- base64urlToUint8Array: () => base64urlToUint8Array,
9390
- base64ToUint8Array: () => base64ToUint8Array,
9391
- assignProp: () => assignProp,
9392
- assertNotEqual: () => assertNotEqual,
9393
- assertNever: () => assertNever,
9394
- assertIs: () => assertIs,
9395
- assertEqual: () => assertEqual,
9396
- assert: () => assert,
9397
- allowsEval: () => allowsEval,
9398
- aborted: () => aborted,
9399
- NUMBER_FORMAT_RANGES: () => NUMBER_FORMAT_RANGES,
9341
+ BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES,
9400
9342
  Class: () => Class,
9401
- BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES
9343
+ NUMBER_FORMAT_RANGES: () => NUMBER_FORMAT_RANGES,
9344
+ aborted: () => aborted,
9345
+ allowsEval: () => allowsEval,
9346
+ assert: () => assert,
9347
+ assertEqual: () => assertEqual,
9348
+ assertIs: () => assertIs,
9349
+ assertNever: () => assertNever,
9350
+ assertNotEqual: () => assertNotEqual,
9351
+ assignProp: () => assignProp,
9352
+ base64ToUint8Array: () => base64ToUint8Array,
9353
+ base64urlToUint8Array: () => base64urlToUint8Array,
9354
+ cached: () => cached,
9355
+ captureStackTrace: () => captureStackTrace,
9356
+ cleanEnum: () => cleanEnum,
9357
+ cleanRegex: () => cleanRegex,
9358
+ clone: () => clone,
9359
+ cloneDef: () => cloneDef,
9360
+ createTransparentProxy: () => createTransparentProxy,
9361
+ defineLazy: () => defineLazy,
9362
+ esc: () => esc,
9363
+ escapeRegex: () => escapeRegex2,
9364
+ explicitlyAborted: () => explicitlyAborted,
9365
+ extend: () => extend,
9366
+ finalizeIssue: () => finalizeIssue,
9367
+ floatSafeRemainder: () => floatSafeRemainder,
9368
+ getElementAtPath: () => getElementAtPath,
9369
+ getEnumValues: () => getEnumValues,
9370
+ getLengthableOrigin: () => getLengthableOrigin,
9371
+ getParsedType: () => getParsedType,
9372
+ getSizableOrigin: () => getSizableOrigin,
9373
+ hexToUint8Array: () => hexToUint8Array,
9374
+ isObject: () => isObject,
9375
+ isPlainObject: () => isPlainObject,
9376
+ issue: () => issue,
9377
+ joinValues: () => joinValues,
9378
+ jsonStringifyReplacer: () => jsonStringifyReplacer,
9379
+ merge: () => merge,
9380
+ mergeDefs: () => mergeDefs,
9381
+ normalizeParams: () => normalizeParams,
9382
+ nullish: () => nullish,
9383
+ numKeys: () => numKeys,
9384
+ objectClone: () => objectClone,
9385
+ omit: () => omit,
9386
+ optionalKeys: () => optionalKeys,
9387
+ parsedType: () => parsedType,
9388
+ partial: () => partial,
9389
+ pick: () => pick,
9390
+ prefixIssues: () => prefixIssues,
9391
+ primitiveTypes: () => primitiveTypes,
9392
+ promiseAllObject: () => promiseAllObject,
9393
+ propertyKeyTypes: () => propertyKeyTypes,
9394
+ randomString: () => randomString,
9395
+ required: () => required,
9396
+ safeExtend: () => safeExtend,
9397
+ shallowClone: () => shallowClone,
9398
+ slugify: () => slugify,
9399
+ stringifyPrimitive: () => stringifyPrimitive,
9400
+ uint8ArrayToBase64: () => uint8ArrayToBase64,
9401
+ uint8ArrayToBase64url: () => uint8ArrayToBase64url,
9402
+ uint8ArrayToHex: () => uint8ArrayToHex,
9403
+ unwrapMessage: () => unwrapMessage
9402
9404
  });
9403
9405
  function assertEqual(val) {
9404
9406
  return val;
@@ -13606,14 +13608,14 @@ function getLiteralValue(schema) {
13606
13608
  // node_modules/zod/v4/classic/iso.js
13607
13609
  var exports_iso = {};
13608
13610
  __export(exports_iso, {
13609
- time: () => time2,
13610
- duration: () => duration2,
13611
- datetime: () => datetime2,
13612
- date: () => date2,
13613
- ZodISOTime: () => ZodISOTime,
13614
- ZodISODuration: () => ZodISODuration,
13611
+ ZodISODate: () => ZodISODate,
13615
13612
  ZodISODateTime: () => ZodISODateTime,
13616
- ZodISODate: () => ZodISODate
13613
+ ZodISODuration: () => ZodISODuration,
13614
+ ZodISOTime: () => ZodISOTime,
13615
+ date: () => date2,
13616
+ datetime: () => datetime2,
13617
+ duration: () => duration2,
13618
+ time: () => time2
13617
13619
  });
13618
13620
  var ZodISODateTime = /* @__PURE__ */ $constructor("ZodISODateTime", (inst, def) => {
13619
13621
  $ZodISODateTime.init(inst, def);
@@ -14594,11 +14596,11 @@ var ZodFirstPartyTypeKind;
14594
14596
  // node_modules/zod/v4/classic/coerce.js
14595
14597
  var exports_coerce = {};
14596
14598
  __export(exports_coerce, {
14597
- string: () => string3,
14598
- number: () => number3,
14599
- date: () => date3,
14599
+ bigint: () => bigint2,
14600
14600
  boolean: () => boolean3,
14601
- bigint: () => bigint2
14601
+ date: () => date3,
14602
+ number: () => number3,
14603
+ string: () => string3
14602
14604
  });
14603
14605
  function string3(params) {
14604
14606
  return _coercedString(ZodString, params);
@@ -22398,7 +22400,7 @@ function summarizeScopes(scope, limit = 6) {
22398
22400
  }
22399
22401
 
22400
22402
  // src/cli.ts
22401
- var VERSION2 = "0.1.0";
22403
+ var VERSION2 = "0.2.0";
22402
22404
  var USAGE = `autorouter — one search tool instead of every tool
22403
22405
 
22404
22406
  autorouter serve Run as an MCP server over stdio (default)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autorouter-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "One search tool instead of every tool: an MCP capability router for Claude Code, Codex, Cursor and anything else that speaks MCP.",
5
5
  "mcpName": "io.github.webb-ventures/autorouter",
6
6
  "license": "MIT",
package/server.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "name": "io.github.webb-ventures/autorouter",
4
4
  "title": "autorouter",
5
5
  "description": "An MCP capability router: one search tool instead of every server's tool schema.",
6
- "version": "0.1.0",
6
+ "version": "0.2.0",
7
7
  "websiteUrl": "https://github.com/Webb-Ventures/autorouter",
8
8
  "repository": {
9
9
  "url": "https://github.com/Webb-Ventures/autorouter",
@@ -14,7 +14,7 @@
14
14
  "registryType": "npm",
15
15
  "registryBaseUrl": "https://registry.npmjs.org",
16
16
  "identifier": "autorouter-mcp",
17
- "version": "0.1.0",
17
+ "version": "0.2.0",
18
18
  "transport": { "type": "stdio" },
19
19
  "packageArguments": [{ "type": "positional", "value": "serve" }],
20
20
  "environmentVariables": [