lazy-mcp 2.4.1 → 2.6.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 +146 -0
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +16 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +113 -0
- package/dist/config.js.map +1 -1
- package/dist/multi-proxy.d.ts.map +1 -1
- package/dist/multi-proxy.js +21 -0
- package/dist/multi-proxy.js.map +1 -1
- package/dist/permissions.d.ts +49 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/permissions.js +83 -0
- package/dist/permissions.js.map +1 -0
- package/dist/server-manager.d.ts +21 -3
- package/dist/server-manager.d.ts.map +1 -1
- package/dist/server-manager.js +34 -3
- package/dist/server-manager.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +42 -3
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +57 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -28,9 +28,19 @@ A client-agnostic proxy that converts normal MCP servers to use a lazy-loading p
|
|
|
28
28
|
- [`CARGO_TOKEN`](#cargotoken)
|
|
29
29
|
- [Configuration Reference](#configuration-reference)
|
|
30
30
|
- [Server Configuration Fields](#server-configuration-fields)
|
|
31
|
+
- [Permissions](#permissions)
|
|
32
|
+
- [Pattern syntax](#pattern-syntax)
|
|
33
|
+
- [Resolution algorithm](#resolution-algorithm)
|
|
34
|
+
- [Per-server permissions](#per-server-permissions)
|
|
35
|
+
- [Global (cross-server) permissions](#global-cross-server-permissions)
|
|
36
|
+
- [Read-only preset](#read-only-preset)
|
|
37
|
+
- [Hot reload](#hot-reload)
|
|
38
|
+
- [Soft-fail validation](#soft-fail-validation)
|
|
39
|
+
- [Error contract](#error-contract)
|
|
31
40
|
- [OAuth 2.0 Authentication](#oauth-20-authentication)
|
|
32
41
|
- [Command Format](#command-format)
|
|
33
42
|
- [Environment Variables](#environment-variables)
|
|
43
|
+
- [Embed Server Summaries](#embed-server-summaries)
|
|
34
44
|
- [Transport Configuration](#transport-configuration)
|
|
35
45
|
- [Logging Configuration](#logging-configuration)
|
|
36
46
|
- [Health Monitoring](#health-monitoring)
|
|
@@ -519,6 +529,116 @@ Four CI/CD variables must be configured (GitLab → Project → Settings → CI/
|
|
|
519
529
|
| `enabled` | boolean | Optional | Enable/disable server (default: true) |
|
|
520
530
|
| `examples` | object[] | Optional | Usage examples shown in `list_servers` output |
|
|
521
531
|
| `tags` | string[] | Optional | Capability tags for filtering (e.g. `"api"`, `"browser"`) |
|
|
532
|
+
| `permissions` | object | Optional | Per-server `invoke_command` allow/deny rules (see [Permissions](#permissions)) |
|
|
533
|
+
|
|
534
|
+
### Permissions
|
|
535
|
+
|
|
536
|
+
> **Experimental.** The permissions feature is experimental and may change in future releases. Only the `allow` and `deny` actions are supported today. An `ask` action (for interactive confirmation) is planned but not yet implemented — it requires host-side companion hooks that are still in design. Configs that use `"action": "ask"` will fail validation for now.
|
|
537
|
+
|
|
538
|
+
The `permissions` block gives you per-server and global allow/deny rules over `invoke_command`. Rules are glob patterns matched (case-insensitively) against the command name. Calls that match a `deny` rule are blocked before they reach the downstream server and the agent receives a structured error (with `_meta.lazyMcpPolicy: "blocked"` so host plugins can hook into it).
|
|
539
|
+
|
|
540
|
+
#### Pattern syntax
|
|
541
|
+
|
|
542
|
+
A tiny glob — no regex, no alternation, no negation:
|
|
543
|
+
|
|
544
|
+
| Token | Meaning |
|
|
545
|
+
|-------|---------|
|
|
546
|
+
| `*` | Zero or more characters |
|
|
547
|
+
| `?` | Exactly one character |
|
|
548
|
+
| Any other char | Literal (case-insensitive) |
|
|
549
|
+
|
|
550
|
+
#### Resolution algorithm
|
|
551
|
+
|
|
552
|
+
For each `invoke_command` call, lazy-mcp evaluates rules in this order. The first level that produces a match wins; within a level, the last matching rule wins.
|
|
553
|
+
|
|
554
|
+
1. Per-server rules (`servers[i].permissions.rules`)
|
|
555
|
+
2. Global rules (top-level `permissions.rules`), gated by the optional `server` glob (defaults to `*`)
|
|
556
|
+
3. Per-server `default` (`servers[i].permissions.default`)
|
|
557
|
+
4. Global `default` (top-level `permissions.default`)
|
|
558
|
+
5. Implicit `"allow"`
|
|
559
|
+
|
|
560
|
+
#### Per-server permissions
|
|
561
|
+
|
|
562
|
+
```jsonc
|
|
563
|
+
{
|
|
564
|
+
"servers": [
|
|
565
|
+
{
|
|
566
|
+
"name": "gitlab",
|
|
567
|
+
"url": "https://gitlab.com/api/v4/mcp",
|
|
568
|
+
"permissions": {
|
|
569
|
+
"default": "allow",
|
|
570
|
+
"rules": [
|
|
571
|
+
{ "pattern": "list_*", "action": "allow" },
|
|
572
|
+
{ "pattern": "get_*", "action": "allow" },
|
|
573
|
+
{ "pattern": "search_*", "action": "allow" },
|
|
574
|
+
{ "pattern": "delete_*", "action": "deny",
|
|
575
|
+
"message": "Destructive GitLab calls are blocked by policy." }
|
|
576
|
+
]
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
]
|
|
580
|
+
}
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
#### Global (cross-server) permissions
|
|
584
|
+
|
|
585
|
+
A top-level `permissions` block applies to every server unless a per-server rule matches first. Global rules can scope themselves to specific servers via the `server` glob:
|
|
586
|
+
|
|
587
|
+
```jsonc
|
|
588
|
+
{
|
|
589
|
+
"permissions": {
|
|
590
|
+
"default": "allow",
|
|
591
|
+
"rules": [
|
|
592
|
+
{ "server": "*", "pattern": "*delete*", "action": "deny" },
|
|
593
|
+
{ "server": "*", "pattern": "*destroy*", "action": "deny" }
|
|
594
|
+
]
|
|
595
|
+
},
|
|
596
|
+
"servers": [/* … */]
|
|
597
|
+
}
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
#### Read-only preset
|
|
601
|
+
|
|
602
|
+
A handy "exploration" preset that denies everything by default but allows discovery-style commands:
|
|
603
|
+
|
|
604
|
+
```jsonc
|
|
605
|
+
{
|
|
606
|
+
"permissions": {
|
|
607
|
+
"default": "deny",
|
|
608
|
+
"rules": [
|
|
609
|
+
{ "server": "*", "pattern": "list_*", "action": "allow" },
|
|
610
|
+
{ "server": "*", "pattern": "get_*", "action": "allow" },
|
|
611
|
+
{ "server": "*", "pattern": "search_*", "action": "allow" }
|
|
612
|
+
]
|
|
613
|
+
},
|
|
614
|
+
"servers": [/* … */]
|
|
615
|
+
}
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
#### Hot reload
|
|
619
|
+
|
|
620
|
+
Permission changes pick up via the existing `SIGHUP` config-reload path — no restart required. Edit `~/.config/lazy-mcp/servers.json`, then `kill -HUP <pid>` (the PID is included in the `list_servers` response).
|
|
621
|
+
|
|
622
|
+
#### Soft-fail validation
|
|
623
|
+
|
|
624
|
+
Invalid `permissions` blocks are soft-failed: per-server errors surface as `_configError` on the offending server (it appears unhealthy in `list_servers`); an invalid top-level block is stripped at load time with a warning on stderr, leaving the rest of the config working.
|
|
625
|
+
|
|
626
|
+
A practical asymmetry to be aware of: a per-server `permissions` typo makes **that server** unreachable until fixed (it shows up unhealthy with a clear `_configError` in `list_servers`), while a global `permissions` typo is stripped and the rest of the config still loads — only the global rules are dropped, with a stderr warning. The reasoning: a per-server typo is most likely localised to the server you were editing, so failing fast there gives you the loudest signal; a global typo shouldn't take the entire proxy offline.
|
|
627
|
+
|
|
628
|
+
#### Error contract
|
|
629
|
+
|
|
630
|
+
Blocked calls return an `isError: true` tool result with a `_meta.lazyMcpPolicy: "blocked"` field that host plugins can intercept without parsing the message:
|
|
631
|
+
|
|
632
|
+
```jsonc
|
|
633
|
+
{
|
|
634
|
+
"content": [{
|
|
635
|
+
"type": "text",
|
|
636
|
+
"text": "🚫 Blocked by lazy-mcp policy: Tool 'gitlab:delete_project' is blocked by lazy-mcp policy\n\nDetails: Destructive GitLab calls are blocked by policy.\n\nTo allow this, remove the matching deny rule from your lazy-mcp config (~/.config/lazy-mcp/servers.json) and reload with: kill -HUP <pid>"
|
|
637
|
+
}],
|
|
638
|
+
"isError": true,
|
|
639
|
+
"_meta": { "lazyMcpPolicy": "blocked" }
|
|
640
|
+
}
|
|
641
|
+
```
|
|
522
642
|
|
|
523
643
|
### OAuth 2.0 Authentication
|
|
524
644
|
|
|
@@ -634,6 +754,32 @@ Only absolute paths and `~/` paths are accepted. Relative paths are left unchang
|
|
|
634
754
|
- Store secret files in a user-specific directory (e.g. `~/.secrets/`)
|
|
635
755
|
- Never commit secret files to version control — add them to `.gitignore`
|
|
636
756
|
|
|
757
|
+
### Embed Server Summaries
|
|
758
|
+
|
|
759
|
+
By default, the AI must call `list_servers` to discover which MCP servers are available.
|
|
760
|
+
You can opt in to embedding server names and descriptions directly in the `list_servers` tool description so the
|
|
761
|
+
AI sees them upfront — useful for routing requests like "check my email" to the correct server without an extra tool call.
|
|
762
|
+
|
|
763
|
+
```json
|
|
764
|
+
{
|
|
765
|
+
"servers": [...],
|
|
766
|
+
"embedServerSummaries": {
|
|
767
|
+
"enabled": true,
|
|
768
|
+
"maxServers": 5
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
```
|
|
772
|
+
|
|
773
|
+
| Field | Type | Default | Description |
|
|
774
|
+
|-------|------|---------|-------------|
|
|
775
|
+
| `embedServerSummaries.enabled` | boolean | — | Enable/disable embedding |
|
|
776
|
+
| `embedServerSummaries.maxServers` | number | `10` | Maximum number of server summaries to embed |
|
|
777
|
+
|
|
778
|
+
> **Note:** Tool descriptions are included in every request context window.
|
|
779
|
+
> If your system prompt already instructs the LLM to call `list_servers`, this adds tokens with no benefit.
|
|
780
|
+
> Per-server descriptions are unbounded, so one verbose description can significantly increase tool description size.
|
|
781
|
+
> Making this opt-in lets you consciously accept that trade-off.
|
|
782
|
+
|
|
637
783
|
### Transport Configuration
|
|
638
784
|
|
|
639
785
|
Configure how lazy-mcp exposes its MCP endpoint. By default, it uses stdio (for subprocess-based clients). Set `type: "http"` to run as an HTTP server.
|
package/dist/cli.js
CHANGED
|
@@ -289,7 +289,7 @@ async function main() {
|
|
|
289
289
|
const logger = (0, logger_1.getLogger)();
|
|
290
290
|
const transportConfig = resolveTransportConfig(flags, config.transport);
|
|
291
291
|
const requestTimeoutMs = resolveRequestTimeout(flags, config.requestTimeout);
|
|
292
|
-
const serverManager = new server_manager_1.ServerManager(config.servers, config.cache, config.healthMonitor, configPath, requestTimeoutMs);
|
|
292
|
+
const serverManager = new server_manager_1.ServerManager(config.servers, config.cache, config.healthMonitor, configPath, requestTimeoutMs, config.embedServerSummaries, config.permissions);
|
|
293
293
|
const lazyServer = new server_1.LazyMCPServer(serverManager);
|
|
294
294
|
let cleaningUp = false;
|
|
295
295
|
let httpShutdown;
|
|
@@ -343,7 +343,7 @@ async function main() {
|
|
|
343
343
|
event: 'config_reload_start',
|
|
344
344
|
});
|
|
345
345
|
const newConfig = config_1.ConfigLoader.load(configPath);
|
|
346
|
-
const result = await serverManager.reload(newConfig.servers, newConfig.cache, newConfig.healthMonitor);
|
|
346
|
+
const result = await serverManager.reload(newConfig.servers, newConfig.cache, newConfig.healthMonitor, newConfig.embedServerSummaries, newConfig.permissions);
|
|
347
347
|
(0, logger_1.configureLogger)(newConfig.logging);
|
|
348
348
|
const enabledCount = newConfig.servers.filter(s => s.enabled !== false).length;
|
|
349
349
|
logger.info(`Config reloaded successfully: ${enabledCount} servers ` +
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,qCAAyC;AACzC,qCAAwC;AACxC,qDAA6E;AAE7E,uCAA6C;AAC7C,mDAAsD;AACtD,qCAAsD;AAEtD,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;AAE3F;;;GAGG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAExJ;;;GAGG;AACH,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,mBAAmB,CAAC,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAC5B,KAA0B,EAC1B,aAAsB;IAEtB,IAAI,QAAQ,GAAG,2CAA0B,CAAC;IAE1C,qDAAqD;IACrD,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,QAAQ,GAAG,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,sEAAsE,OAAO,CAAC,GAAG,CAAC,wBAAwB,qBAAqB,QAAQ,IAAI,CAAC,CAAC;QAC7J,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACrD,QAAQ,GAAG,aAAa,CAAC;IAC3B,CAAC;IAED,yCAAyC;IACzC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAClD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,4EAA4E,UAAU,GAAG,CAAC,CAAC;YACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,GAAG,CAAC,CAAC;IACf,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAC7B,KAA0B,EAC1B,eAAiC;IAEjC,sBAAsB;IACtB,MAAM,QAAQ,GAAoB;QAChC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,MAAM;KACb,CAAC;IAEF,uDAAuD;IACvD,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,OAAO,EAAE,CAAC;YAC5F,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,+DAA+D,OAAO,CAAC,GAAG,CAAC,kBAAkB,sBAAsB,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;QACrJ,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,uEAAuE,OAAO,CAAC,GAAG,CAAC,aAAa,qBAAqB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACtJ,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC5C,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC5C,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QACpC,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACvD,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,+EAA+E,OAAO,CAAC,GAAG,CAAC,yBAAyB,mBAAmB,CAAC,CAAC;QACzJ,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,eAAe,CAAC,IAAI;YAAE,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;QAC/D,IAAI,eAAe,CAAC,IAAI,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;QAC7E,IAAI,eAAe,CAAC,IAAI,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;QAC7E,IAAI,eAAe,CAAC,IAAI,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;QAC7E,IAAI,eAAe,CAAC,SAAS,KAAK,SAAS;YAAE,QAAQ,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC;QAC5F,IAAI,eAAe,CAAC,cAAc,KAAK,SAAS;YAAE,QAAQ,CAAC,cAAc,GAAG,eAAe,CAAC,cAAc,CAAC;QAC3G,IAAI,eAAe,CAAC,YAAY,KAAK,SAAS;YAAE,QAAQ,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;QACrG,IAAI,eAAe,CAAC,cAAc,KAAK,SAAS;YAAE,QAAQ,CAAC,cAAc,GAAG,eAAe,CAAC,cAAc,CAAC;IAC7G,CAAC;IAED,0CAA0C;IAC1C,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;QACxD,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC;IAC/B,CAAC;SAAM,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,sDAAsD,YAAY,GAAG,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,8DAA8D,OAAO,GAAG,CAAC,CAAC;YACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;IAC1B,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,yCAAyC,OAAO,GAAG,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;IAC1B,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC/C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,QAAQ,CAAC,SAAS,GAAG,YAAY,CAAC;IACpC,CAAC;IACD,MAAM,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC1D,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,KAAK,CAAC,sEAAsE,iBAAiB,GAAG,CAAC,CAAC;YAC1G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,iDAAiD,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,oDAAoD;IACpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,0BAAgB,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,gCAAgC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACjF,OAAO,CAAC,KAAK,CAAC,eAAe,mBAAmB,sBAAsB,CAAC,CAAC;QACxE,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,sEAAsE;IACtE,mEAAmE;IACnE,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAClD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,4EAA4E,UAAU,GAAG,CAAC,CAAC;YACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,MAAM,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC1D,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,KAAK,CAAC,sEAAsE,iBAAiB,GAAG,CAAC,CAAC;YAC1G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,IAAI,UAA8B,CAAC;IAEnC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QACvC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC3C,CAAC;SAAM,IAAI,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC9C,UAAU,GAAG,mBAAmB,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,qBAAqB,mBAAmB,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,eAAe,mBAAmB,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,qBAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAA,wBAAe,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,MAAM,eAAe,GAAG,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACxE,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7E,MAAM,aAAa,GAAG,IAAI,8BAAa,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC1H,MAAM,UAAU,GAAG,IAAI,sBAAa,CAAC,aAAa,CAAC,CAAC;QAEpD,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,YAAsC,CAAC;QAC3C,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,UAAU;gBAAE,OAAO;YACvB,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;YACrE,YAAY,EAAE,EAAE,CAAC;YACjB,IAAA,mCAAmB,GAAE,CAAC;YACtB,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE/B,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,+CAA+C;QAC/C,wEAAwE;QACxE,wEAAwE;QACxE,4DAA4D;QAC5D,IAAI,eAAe,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBAC3B,MAAM,CAAC,IAAI,CAAC,qDAAqD,EAAE;oBACjE,KAAK,EAAE,mBAAmB;iBAC3B,CAAC,CAAC;gBACH,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACtB,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE;wBACpC,KAAK,EAAE,wBAAwB;wBAC/B,KAAK,EAAE,GAAG;qBACX,CAAC,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,uDAAuD;QACvD,kDAAkD;QAClD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;gBAC9B,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE;wBAChE,KAAK,EAAE,uBAAuB;qBAC/B,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,SAAS,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE;wBAClD,KAAK,EAAE,qBAAqB;qBAC7B,CAAC,CAAC;oBACH,MAAM,SAAS,GAAG,qBAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAChD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CACvC,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,aAAa,CACxB,CAAC;oBACF,IAAA,wBAAe,EAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBACnC,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC;oBAC/E,MAAM,CAAC,IAAI,CACT,iCAAiC,YAAY,WAAW;wBACtD,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,YAAY,MAAM,CAAC,OAAO,CAAC,MAAM,YAAY;wBACrE,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe,MAAM,CAAC,SAAS,CAAC,MAAM,aAAa,EAC/E;wBACE,KAAK,EAAE,uBAAuB;wBAC9B,cAAc,EAAE,YAAY;wBAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;wBAC1B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;wBAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;wBAChC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;qBACnC,CACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE;wBAC3D,KAAK,EAAE,sBAAsB;wBAC7B,KAAK;qBACN,CAAC,CAAC;gBACL,CAAC;wBAAS,CAAC;oBACT,SAAS,GAAG,KAAK,CAAC;gBACpB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC,gCAAgC,cAAc,CAAC,MAAM,UAAU,EAAE;YAC3E,KAAK,EAAE,eAAe;YACtB,YAAY,EAAE,cAAc,CAAC,MAAM;SACpC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,YAAY,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACpE,KAAK,EAAE,iBAAiB;YACxB,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAC3C,CAAC,CAAC;QAEH,iFAAiF;QACjF,aAAa,CAAC,kBAAkB,EAAE,CAAC;QAEnC,IAAI,eAAe,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBACxC,KAAK,EAAE,gBAAgB;aACxB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACzD,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC/B,uEAAuE;QACzE,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,kBAAS,GAAE,CAAC,KAAK,CAAC,yBAAyB,EAAE;YAC3C,KAAK,EAAE,qBAAqB;YAC5B,KAAK;SACN,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,IAAA,kBAAS,GAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE;YACvC,KAAK,EAAE,yBAAyB;YAChC,KAAK;SACN,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -10,6 +10,22 @@ export declare class ConfigLoader {
|
|
|
10
10
|
private static validateTransport;
|
|
11
11
|
/** Validates the logging config block. Returns an error string if invalid, null if valid. */
|
|
12
12
|
private static validateLogging;
|
|
13
|
+
/** Validates the embedServerSummaries config. Returns an error string if invalid, null if valid. */
|
|
14
|
+
private static validateEmbedServerSummaries;
|
|
15
|
+
/**
|
|
16
|
+
* Validate a per-server `permissions` block. Returns an error string if the
|
|
17
|
+
* block is invalid, or null on success.
|
|
18
|
+
*
|
|
19
|
+
* **Experimental** — only `"allow"` and `"deny"` actions are accepted right
|
|
20
|
+
* now. `"ask"` is reserved for a future release and is rejected here.
|
|
21
|
+
*/
|
|
22
|
+
private static validateServerPermissions;
|
|
23
|
+
/**
|
|
24
|
+
* Validate the top-level (global) permissions block. Returns an error
|
|
25
|
+
* string if invalid, or null on success.
|
|
26
|
+
*/
|
|
27
|
+
private static validateGlobalPermissions;
|
|
28
|
+
private static validatePermissionsCommon;
|
|
13
29
|
/**
|
|
14
30
|
* Resolves a file path used in a `{file:...}` reference to an absolute path.
|
|
15
31
|
*
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,iBAAiB,EAIlB,MAAM,SAAS,CAAC;AAmBjB,qBAAa,YAAY;IACvB,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAmBlD,OAAO,CAAC,MAAM,CAAC,WAAW;IAO1B,OAAO,CAAC,MAAM,CAAC,QAAQ;IA0GvB;+EAC2E;IAC3E,OAAO,CAAC,MAAM,CAAC,cAAc;IAyG7B,+FAA+F;IAC/F,OAAO,CAAC,MAAM,CAAC,iBAAiB;IA0DhC,6FAA6F;IAC7F,OAAO,CAAC,MAAM,CAAC,eAAe;IA0C9B,oGAAoG;IACpG,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAkB3C;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAOxC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAIxC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAyDxC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAqB5C;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAuB3C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAOvE"}
|
package/dist/config.js
CHANGED
|
@@ -37,6 +37,13 @@ exports.ConfigLoader = void 0;
|
|
|
37
37
|
const fs = __importStar(require("fs"));
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
39
|
const os = __importStar(require("os"));
|
|
40
|
+
/**
|
|
41
|
+
* Allowed permission actions. **Experimental.** The `ask` action from the
|
|
42
|
+
* design doc is intentionally not supported yet — it requires host-side
|
|
43
|
+
* integration that isn't ready. Configs using `"action": "ask"` are rejected
|
|
44
|
+
* with a soft-fail config error.
|
|
45
|
+
*/
|
|
46
|
+
const ALLOWED_PERMISSION_ACTIONS = ['allow', 'deny'];
|
|
40
47
|
/** Infer server type from fields when not explicitly set. */
|
|
41
48
|
function inferServerType(server) {
|
|
42
49
|
const hasUrl = !!server.url;
|
|
@@ -113,6 +120,13 @@ class ConfigLoader {
|
|
|
113
120
|
}
|
|
114
121
|
}
|
|
115
122
|
}
|
|
123
|
+
// Validate embedServerSummaries config if present
|
|
124
|
+
if (config.embedServerSummaries !== undefined) {
|
|
125
|
+
const embedError = this.validateEmbedServerSummaries(config.embedServerSummaries);
|
|
126
|
+
if (embedError) {
|
|
127
|
+
throw new Error(`Invalid embedServerSummaries config: ${embedError}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
116
130
|
// Validate logging config if present
|
|
117
131
|
if (config.logging !== undefined) {
|
|
118
132
|
const loggingError = this.validateLogging(config.logging);
|
|
@@ -120,6 +134,18 @@ class ConfigLoader {
|
|
|
120
134
|
throw new Error(`Invalid logging config: ${loggingError}`);
|
|
121
135
|
}
|
|
122
136
|
}
|
|
137
|
+
// Validate global permissions config if present. Soft-fails like other
|
|
138
|
+
// permission validation: invalid global permissions are stripped and a
|
|
139
|
+
// warning is emitted to stderr rather than aborting startup. This keeps
|
|
140
|
+
// a typo in the experimental permissions block from bricking the whole
|
|
141
|
+
// proxy.
|
|
142
|
+
if (config.permissions !== undefined) {
|
|
143
|
+
const permError = this.validateGlobalPermissions(config.permissions);
|
|
144
|
+
if (permError) {
|
|
145
|
+
console.error(`Warning: invalid global permissions config — ignoring. ${permError}`);
|
|
146
|
+
delete config.permissions;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
123
149
|
// Eagerly expand {file:...} and ${VAR} references in all active server
|
|
124
150
|
// configs. This ensures the app exits at startup if any referenced secret
|
|
125
151
|
// file is missing, rather than silently passing the raw token string to
|
|
@@ -218,6 +244,12 @@ class ConfigLoader {
|
|
|
218
244
|
if (server.env && typeof server.env !== 'object') {
|
|
219
245
|
return `${id}: "env" must be an object`;
|
|
220
246
|
}
|
|
247
|
+
if (server.permissions !== undefined) {
|
|
248
|
+
const permError = this.validateServerPermissions(server.permissions, id);
|
|
249
|
+
if (permError) {
|
|
250
|
+
return permError;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
221
253
|
if (server.oauth !== undefined) {
|
|
222
254
|
if (server.type !== 'remote') {
|
|
223
255
|
return `${id}: "oauth" is only supported for remote servers`;
|
|
@@ -327,6 +359,87 @@ class ConfigLoader {
|
|
|
327
359
|
}
|
|
328
360
|
return null;
|
|
329
361
|
}
|
|
362
|
+
/** Validates the embedServerSummaries config. Returns an error string if invalid, null if valid. */
|
|
363
|
+
static validateEmbedServerSummaries(embed) {
|
|
364
|
+
if (typeof embed !== 'object' || embed === null) {
|
|
365
|
+
return '"embedServerSummaries" must be an object';
|
|
366
|
+
}
|
|
367
|
+
if (embed.enabled === undefined) {
|
|
368
|
+
embed.enabled = false;
|
|
369
|
+
}
|
|
370
|
+
if (typeof embed.enabled !== 'boolean') {
|
|
371
|
+
return '"embedServerSummaries.enabled" must be a boolean';
|
|
372
|
+
}
|
|
373
|
+
if (embed.maxServers !== undefined) {
|
|
374
|
+
if (typeof embed.maxServers !== 'number' || !Number.isInteger(embed.maxServers) || embed.maxServers <= 0) {
|
|
375
|
+
return '"embedServerSummaries.maxServers" must be a positive integer';
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
return null;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Validate a per-server `permissions` block. Returns an error string if the
|
|
382
|
+
* block is invalid, or null on success.
|
|
383
|
+
*
|
|
384
|
+
* **Experimental** — only `"allow"` and `"deny"` actions are accepted right
|
|
385
|
+
* now. `"ask"` is reserved for a future release and is rejected here.
|
|
386
|
+
*/
|
|
387
|
+
static validateServerPermissions(perm, id) {
|
|
388
|
+
return this.validatePermissionsCommon(perm, `${id}: permissions`, /* isGlobal */ false);
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Validate the top-level (global) permissions block. Returns an error
|
|
392
|
+
* string if invalid, or null on success.
|
|
393
|
+
*/
|
|
394
|
+
static validateGlobalPermissions(perm) {
|
|
395
|
+
return this.validatePermissionsCommon(perm, 'permissions', /* isGlobal */ true);
|
|
396
|
+
}
|
|
397
|
+
static validatePermissionsCommon(perm, prefix, isGlobal) {
|
|
398
|
+
if (typeof perm !== 'object' || perm === null || Array.isArray(perm)) {
|
|
399
|
+
return `${prefix} must be an object`;
|
|
400
|
+
}
|
|
401
|
+
if (perm.default !== undefined) {
|
|
402
|
+
if (typeof perm.default !== 'string' ||
|
|
403
|
+
!ALLOWED_PERMISSION_ACTIONS.includes(perm.default)) {
|
|
404
|
+
return `${prefix}.default must be one of ${ALLOWED_PERMISSION_ACTIONS
|
|
405
|
+
.map((a) => `"${a}"`)
|
|
406
|
+
.join(', ')} (got "${perm.default}")`;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
if (perm.rules !== undefined) {
|
|
410
|
+
if (!Array.isArray(perm.rules)) {
|
|
411
|
+
return `${prefix}.rules must be an array`;
|
|
412
|
+
}
|
|
413
|
+
for (let i = 0; i < perm.rules.length; i++) {
|
|
414
|
+
const rule = perm.rules[i];
|
|
415
|
+
const rulePrefix = `${prefix}.rules[${i}]`;
|
|
416
|
+
if (typeof rule !== 'object' || rule === null || Array.isArray(rule)) {
|
|
417
|
+
return `${rulePrefix} must be an object`;
|
|
418
|
+
}
|
|
419
|
+
if (typeof rule.pattern !== 'string' || rule.pattern.length === 0) {
|
|
420
|
+
return `${rulePrefix}.pattern is required and must be a non-empty string`;
|
|
421
|
+
}
|
|
422
|
+
if (typeof rule.action !== 'string' ||
|
|
423
|
+
!ALLOWED_PERMISSION_ACTIONS.includes(rule.action)) {
|
|
424
|
+
return `${rulePrefix}.action must be one of ${ALLOWED_PERMISSION_ACTIONS
|
|
425
|
+
.map((a) => `"${a}"`)
|
|
426
|
+
.join(', ')} (got "${rule.action}")`;
|
|
427
|
+
}
|
|
428
|
+
if (rule.message !== undefined && typeof rule.message !== 'string') {
|
|
429
|
+
return `${rulePrefix}.message must be a string when provided`;
|
|
430
|
+
}
|
|
431
|
+
if (isGlobal) {
|
|
432
|
+
if (rule.server !== undefined && typeof rule.server !== 'string') {
|
|
433
|
+
return `${rulePrefix}.server must be a string when provided`;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
else if (rule.server !== undefined) {
|
|
437
|
+
return `${rulePrefix}.server is only allowed on global permission rules`;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
return null;
|
|
442
|
+
}
|
|
330
443
|
/**
|
|
331
444
|
* Resolves a file path used in a `{file:...}` reference to an absolute path.
|
|
332
445
|
*
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-proxy.d.ts","sourceRoot":"","sources":["../src/multi-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"multi-proxy.d.ts","sourceRoot":"","sources":["../src/multi-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,aAAa,EAGb,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,OAAO,CAAC,aAAa,CAAgB;gBAEzB,aAAa,EAAE,aAAa;IAIlC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIxD,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IA4BzG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoBlF,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CA4CxG"}
|
package/dist/multi-proxy.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MultiServerProxyImpl = void 0;
|
|
4
4
|
const types_1 = require("./types");
|
|
5
|
+
const permissions_1 = require("./permissions");
|
|
6
|
+
const logger_1 = require("./logger");
|
|
5
7
|
class MultiServerProxyImpl {
|
|
6
8
|
constructor(serverManager) {
|
|
7
9
|
this.serverManager = serverManager;
|
|
@@ -51,6 +53,25 @@ class MultiServerProxyImpl {
|
|
|
51
53
|
return schemas;
|
|
52
54
|
}
|
|
53
55
|
async invokeCommand(server, commandName, parameters) {
|
|
56
|
+
// Evaluate permission rules before forwarding the call. Permissions are
|
|
57
|
+
// **experimental** — only `allow` and `deny` actions are supported today.
|
|
58
|
+
const serverConfig = this.serverManager.getServerConfig(server);
|
|
59
|
+
const globalPermissions = this.serverManager.getGlobalPermissions();
|
|
60
|
+
const decision = (0, permissions_1.resolveAction)(server, commandName, serverConfig?.permissions, globalPermissions);
|
|
61
|
+
if (decision.action === 'deny') {
|
|
62
|
+
// Emit a structured event so operators can graph policy hits and so
|
|
63
|
+
// `decision.source` is useful outside the test suite.
|
|
64
|
+
(0, logger_1.getLogger)().info('invoke_command blocked by policy', {
|
|
65
|
+
event: 'policy_blocked',
|
|
66
|
+
server,
|
|
67
|
+
command: commandName,
|
|
68
|
+
source: decision.source,
|
|
69
|
+
message: decision.message,
|
|
70
|
+
});
|
|
71
|
+
throw new types_1.MCPException(types_1.MCPErrorCode.POLICY_BLOCKED, `Tool '${server}:${commandName}' is blocked by lazy-mcp policy`, server, decision.message ?? 'No additional details.', `To allow this, remove the matching deny rule from your lazy-mcp config ` +
|
|
72
|
+
`(~/.config/lazy-mcp/servers.json) and reload with: kill -HUP ${process.pid}`);
|
|
73
|
+
}
|
|
74
|
+
// decision.action === 'allow' — original path.
|
|
54
75
|
try {
|
|
55
76
|
const result = await this.serverManager.callTool(server, commandName, parameters);
|
|
56
77
|
return result;
|
package/dist/multi-proxy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-proxy.js","sourceRoot":"","sources":["../src/multi-proxy.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"multi-proxy.js","sourceRoot":"","sources":["../src/multi-proxy.ts"],"names":[],"mappings":";;;AAAA,mCAOiB;AAEjB,+CAA8C;AAC9C,qCAAqC;AAErC,MAAa,oBAAoB;IAG/B,YAAY,aAA4B;QACtC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAe;QAC/B,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAe,EAAE,OAAkB;QACpD,4CAA4C;QAC5C,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,MAAM,MAAM,GAAkC,EAAE,CAAC;YAEjD,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC7D,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACtC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC,CAAC;YACN,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,iCAAiC;QACjC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACzD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC,CAAC;QACN,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,YAAsB;QAC3D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,OAAO,GAAoB,EAAE,CAAC;QAEpC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;YACrD,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,0BAA0B,MAAM,GAAG,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,WAAmB,EAAE,UAA+B;QACtF,wEAAwE;QACxE,0EAA0E;QAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAA,2BAAa,EAC5B,MAAM,EACN,WAAW,EACX,YAAY,EAAE,WAAW,EACzB,iBAAiB,CAClB,CAAC;QAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,oEAAoE;YACpE,sDAAsD;YACtD,IAAA,kBAAS,GAAE,CAAC,IAAI,CAAC,kCAAkC,EAAE;gBACnD,KAAK,EAAE,gBAAgB;gBACvB,MAAM;gBACN,OAAO,EAAE,WAAW;gBACpB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC,CAAC;YACH,MAAM,IAAI,oBAAY,CACpB,oBAAY,CAAC,cAAc,EAC3B,SAAS,MAAM,IAAI,WAAW,iCAAiC,EAC/D,MAAM,EACN,QAAQ,CAAC,OAAO,IAAI,wBAAwB,EAC5C,yEAAyE;gBACvE,gEAAgE,OAAO,CAAC,GAAG,EAAE,CAChF,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YAClF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qFAAqF;YACrF,IAAI,KAAK,YAAY,oBAAY,EAAE,CAAC;gBAClC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,WAAW,gBAAgB,MAAM,MAAM,KAAK,EAAE,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;CACF;AAvGD,oDAuGC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { GlobalPermissions, PermissionAction, ServerPermissions } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Outcome of evaluating permission rules for a `invoke_command` call.
|
|
4
|
+
*
|
|
5
|
+
* **Experimental.** The permissions feature is experimental and may change in
|
|
6
|
+
* future releases.
|
|
7
|
+
*/
|
|
8
|
+
export interface PermissionDecision {
|
|
9
|
+
action: PermissionAction;
|
|
10
|
+
message?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Which level of the resolution algorithm produced this decision. Not part
|
|
13
|
+
* of the user-visible API — it's intended for debug logging and future
|
|
14
|
+
* telemetry (e.g. graphing how often each rule level fires). Stable enough
|
|
15
|
+
* that tests can assert on it.
|
|
16
|
+
*/
|
|
17
|
+
source: 'server-rule' | 'global-rule' | 'server-default' | 'global-default' | 'implicit-default';
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Convert a tiny glob pattern to a case-insensitive RegExp.
|
|
21
|
+
*
|
|
22
|
+
* Supported tokens:
|
|
23
|
+
* - `*` — zero or more characters
|
|
24
|
+
* - `?` — exactly one character
|
|
25
|
+
* - Any other character — literal
|
|
26
|
+
*
|
|
27
|
+
* No regex, alternation, or negation. Predictable and easy to validate.
|
|
28
|
+
*
|
|
29
|
+
* Adjacent `*`s are collapsed first (`**`, `***`, … → `*`). This is the only
|
|
30
|
+
* realistic shape that produces catastrophic backtracking when expanded to
|
|
31
|
+
* `.*.*…` against a long non-matching input — collapsing it to a single `.*`
|
|
32
|
+
* defuses the ReDoS foot-gun without changing match semantics.
|
|
33
|
+
*/
|
|
34
|
+
export declare function globToRegExp(pattern: string): RegExp;
|
|
35
|
+
/** Test whether `value` matches the glob `pattern` (case-insensitive). */
|
|
36
|
+
export declare function matchesGlob(pattern: string, value: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Resolve the permission action for a `invoke_command` call.
|
|
39
|
+
*
|
|
40
|
+
* Resolution order (first non-empty wins; within each level the last matching
|
|
41
|
+
* rule wins):
|
|
42
|
+
* 1. Per-server rules
|
|
43
|
+
* 2. Global rules (with optional `server` glob)
|
|
44
|
+
* 3. Per-server default
|
|
45
|
+
* 4. Global default
|
|
46
|
+
* 5. Implicit `"allow"`
|
|
47
|
+
*/
|
|
48
|
+
export declare function resolveAction(serverName: string, commandName: string, perServer?: ServerPermissions, global?: GlobalPermissions): PermissionDecision;
|
|
49
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjF;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,MAAM,EACF,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,CAAC;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,iBAAiB,EAC7B,MAAM,CAAC,EAAE,iBAAiB,GACzB,kBAAkB,CA2CpB"}
|