@procedures/mcp-dev-tools 0.0.0-stage → 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/CHANGELOG.md ADDED
@@ -0,0 +1,28 @@
1
+ # @procedures/mcp-dev-tools
2
+
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 0cf4bea: **Invocation capabilities** (packages/documentation/CAPABILITIES-2026-10.md, the guide is client/docs/CAPABILITIES.md). Each call operates with a capability: a clearance, permitted effects and a deadline. A nested call gets the same capability or a narrower one.
8
+
9
+ - Procedures declare `metadata.effects` (`reads`, `writes`, `destructive`, `idempotent`). Each procedure of these packages declares them.
10
+ - `hostPolicy({ capability, readOnly, clearanceOrder, resources, admitItem })`, and `new Client({ capability })`. A refused call gives `FORBIDDEN` (HTTP 403) with a reason.
11
+ - `ctx.capability` and `ctx.resources` are new required fields of `ProcedureContext`. A test that makes a context by hand adds `capability: {}` and `resources: {}`.
12
+ - An application gives its clearance and resource types by augmenting `Register`.
13
+ - The timeout interceptor sets the deadline of the capability, and a remote call sends the remaining time.
14
+ - The MCP tools have hints (`readOnlyHint`, `destructiveHint`, `idempotentHint`, `openWorldHint`) from the effects. `mark mcp --read-only` (or `MCP_READ_ONLY=1`) serves only the tools that change nothing.
15
+ - **Breaking:** `git.remote` only reads the URL. `git.remote.set` sets it (before: `git.remote` with `url`).
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies [0cf4bea]
20
+ - Updated dependencies [44d3e30]
21
+ - Updated dependencies [76d0d64]
22
+ - @procedures/client@0.2.0
23
+ - @procedures/bundle-mcp@0.2.0
24
+ - @procedures/mcp-server@0.2.0
25
+
26
+ ## 0.1.0
27
+
28
+ The first release on npm. The packages of the client monorepo have one version together.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025-2026 Mark Russell
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,65 @@
1
- # Temporary Holding Version
1
+ # @procedures/mcp-dev-tools
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ [![npm](https://img.shields.io/npm/v/@procedures/mcp-dev-tools?color=2346c4&label=npm)](https://www.npmjs.com/package/@procedures/mcp-dev-tools)
4
+
5
+ `mcp-dev-tools` is the MCP server that gives procedures to Claude as tools. Its folder in the monorepo is `packages/impl-mcp-dev`. Claude Code (or Claude Desktop) starts it over stdio. By default it loads `bundle-mcp`, which selects 62 tools.
6
+
7
+ ## Set up Claude Code
8
+
9
+ Add the server to the MCP configuration of Claude Code. `npx` gets the package from npm:
10
+
11
+ ```json
12
+ {
13
+ "mcpServers": {
14
+ "dev-tools": { "command": "npx", "args": ["-y", "@procedures/mcp-dev-tools"] }
15
+ }
16
+ }
17
+ ```
18
+
19
+ From a clone of the monorepo, build it first (`pnpm install`, then `pnpm build`). Then give the path of the server file:
20
+
21
+ ```json
22
+ {
23
+ "mcpServers": {
24
+ "dev-tools": {
25
+ "command": "node",
26
+ "args": ["/path/to/client/packages/impl-mcp-dev/dist/server.js"]
27
+ }
28
+ }
29
+ }
30
+ ```
31
+
32
+ The package has the bin `mcp-dev-tools`, which starts the same file.
33
+
34
+ Claude Code starts the server once for each session. After a rebuild, restart the MCP server (or the session) to get the changes.
35
+
36
+ ## Configuration
37
+
38
+ | Environment variable | Default | Function |
39
+ |---|---|---|
40
+ | `MCP_BUNDLES` | `@procedures/bundle-mcp` | The bundles to load, separated by commas. The server imports `<bundle>/register.js` for each one. |
41
+ | `MCP_SERVER_NAME` | `impl-mcp-dev` | The server name in the MCP handshake |
42
+ | `MCP_SERVER_VERSION` | `1.0.0` | The server version in the MCP handshake |
43
+ | `MCP_DEBUG` | `false` | With `true`, the server writes debug lines to stderr |
44
+
45
+ ## How it selects the tools
46
+
47
+ 1. The server loads each bundle. A bundle can export `mcpNamespaces` and `mcpExclude`.
48
+ 2. A procedure is a tool when its namespace is in `mcpNamespaces` of a bundle, and its key is not in `mcpExclude`.
49
+ 3. A `ProcedureServer` serves the registry with that rule as its `expose` rule. A data-driven procedure (`client.chain`, `client.eval`, a procedure of `procedure.define`) can use only exposed procedures.
50
+ 4. `McpServerTransport` gives the exposed procedures as tools over stdio. It tells Claude when the list of tools changes.
51
+
52
+ > [!WARNING]
53
+ > A bundle without `mcpNamespaces` exposes every registered procedure, `shell.exec` too. `bundle-dev` has no `mcpNamespaces`. Thus `MCP_BUNDLES=@procedures/bundle-dev` gives Claude shell access through this server.
54
+
55
+ The server sends `console.log` output to stderr, because stdout carries the MCP protocol.
56
+
57
+ ## The tool list
58
+
59
+ `tools.snapshot.txt` has the names of the 62 tools. `src/tools.test.ts` starts the real server over stdio and compares its tools with the file. It also examines that a `docker.*` tool cannot start a shell command. To change the tools, change `bundle-mcp` and `tools.snapshot.txt` in one commit. The [bundle-mcp README](../bundle-mcp/README.md) lists the tools and the reasons for the procedures that stay out.
60
+
61
+ ## Troubleshooting
62
+
63
+ - **No tools in Claude.** Build the monorepo, and examine the path in the configuration. Start the server with `MCP_DEBUG=true` and read stderr.
64
+ - **Old tools or old behavior.** Restart the MCP server after a rebuild.
65
+ - **A bundle fails to load.** The server stops with the message `Failed to load bundle`. Build the bundle, and examine the name in `MCP_BUNDLES`.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import "../dist/server.js";
@@ -0,0 +1 @@
1
+ {"version":"7.0.2","root":[88,[417,419]],"packageJsons":["../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1_2594e54b241da4d3aba43cc3297a77b8/node_modules/@modelcontextprotocol/sdk/dist/esm/package.json","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1_2594e54b241da4d3aba43cc3297a77b8/node_modules/@modelcontextprotocol/sdk/package.json","../../../node_modules/.pnpm/@types+body-parser@1.19.6/node_modules/@types/body-parser/package.json","../../../node_modules/.pnpm/@types+connect@3.4.38/node_modules/@types/connect/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/@types/express-serve-static-core/package.json","../../../node_modules/.pnpm/@types+express@5.0.6/node_modules/@types/express/package.json","../../../node_modules/.pnpm/@types+http-errors@2.0.5/node_modules/@types/http-errors/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/package.json","../../../node_modules/.pnpm/@types+qs@6.15.1/node_modules/@types/qs/package.json","../../../node_modules/.pnpm/@types+range-parser@1.2.7/node_modules/@types/range-parser/package.json","../../../node_modules/.pnpm/@types+send@1.2.1/node_modules/@types/send/package.json","../../../node_modules/.pnpm/@types+serve-static@2.2.0/node_modules/@types/serve-static/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/ws/package.json","../../../node_modules/.pnpm/express@5.2.1_supports-color@7.2.0/node_modules/express/package.json","../../../node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/package.json","../../../node_modules/.pnpm/ws@8.22.0/node_modules/ws/package.json","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/package.json","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/package.json","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/package.json","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/package.json","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/package.json","../../client-mcp/package.json","../../client/package.json","../package.json","../../mcp/package.json"],"missingPackageJsons":["../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1_2594e54b241da4d3aba43cc3297a77b8/node_modules/@cfworker/json-schema/package.json","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1_2594e54b241da4d3aba43cc3297a77b8/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/package.json","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1_2594e54b241da4d3aba43cc3297a77b8/node_modules/@modelcontextprotocol/sdk/dist/esm/server/package.json","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1_2594e54b241da4d3aba43cc3297a77b8/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/package.json","../../../node_modules/.pnpm/@types+body-parser@1.19.6/node_modules/@types/http/package.json","../../../node_modules/.pnpm/@types+body-parser@1.19.6/node_modules/connect/package.json","../../../node_modules/.pnpm/@types+body-parser@1.19.6/node_modules/http/package.json","../../../node_modules/.pnpm/@types+connect@3.4.38/node_modules/@types/http/package.json","../../../node_modules/.pnpm/@types+connect@3.4.38/node_modules/http/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/@types/events/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/@types/http/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/events/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/http/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/qs/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/range-parser/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/send/package.json","../../../node_modules/.pnpm/@types+express@5.0.6/node_modules/body-parser/package.json","../../../node_modules/.pnpm/@types+express@5.0.6/node_modules/express-serve-static-core/package.json","../../../node_modules/.pnpm/@types+express@5.0.6/node_modules/serve-static/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/assert/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/assert/strict/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/async_hooks/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/buffer/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/child_process/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/cluster/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/console/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/constants/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/crypto/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/dgram/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/diagnostics_channel/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/dns/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/dns/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/domain/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/events/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/fs/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/fs/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/http/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/http2/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/https/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/inspector/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/inspector/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/module/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/net/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/assert/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/dns/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/fs/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/readline/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/timers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/os/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/path/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/path/posix/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/path/win32/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/perf_hooks/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/process/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/punycode/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/querystring/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/readline/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/readline/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/repl/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/stream/consumers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/stream/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/stream/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/stream/web/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/string_decoder/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/timers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/timers/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/tls/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/trace_events/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/tty/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/url/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/util/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/util/types/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/v8/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/vm/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/wasi/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/worker_threads/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/zlib/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/assert/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/assert/strict/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/async_hooks/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/buffer/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/child_process/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/cluster/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/console/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/constants/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/crypto/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/dgram/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/diagnostics_channel/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/dns/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/dns/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/domain/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/events/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/fs/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/fs/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/http/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/http2/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/https/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/inspector/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/inspector/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/module/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/net/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/os/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/path/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/path/posix/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/path/win32/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/perf_hooks/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/process/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/punycode/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/querystring/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/readline/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/readline/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/repl/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/stream/consumers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/stream/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/stream/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/stream/web/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/string_decoder/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/timers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/timers/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/tls/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/trace_events/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/tty/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/url/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/util/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/util/types/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/v8/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/vm/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/wasi/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/worker_threads/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/zlib/package.json","../../../node_modules/.pnpm/@types+send@1.2.1/node_modules/@types/fs/package.json","../../../node_modules/.pnpm/@types+send@1.2.1/node_modules/@types/stream/package.json","../../../node_modules/.pnpm/@types+send@1.2.1/node_modules/fs/package.json","../../../node_modules/.pnpm/@types+send@1.2.1/node_modules/stream/package.json","../../../node_modules/.pnpm/@types+serve-static@2.2.0/node_modules/@types/http/package.json","../../../node_modules/.pnpm/@types+serve-static@2.2.0/node_modules/http-errors/package.json","../../../node_modules/.pnpm/@types+serve-static@2.2.0/node_modules/http/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/events/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/http/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/https/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/net/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/stream/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/tls/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/url/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/zlib/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/events/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/http/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/https/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/net/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/stream/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/tls/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/url/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/zlib/package.json","../../../node_modules/.pnpm/node_modules/@types/assert/package.json","../../../node_modules/.pnpm/node_modules/@types/assert/strict/package.json","../../../node_modules/.pnpm/node_modules/@types/async_hooks/package.json","../../../node_modules/.pnpm/node_modules/@types/buffer/package.json","../../../node_modules/.pnpm/node_modules/@types/child_process/package.json","../../../node_modules/.pnpm/node_modules/@types/cluster/package.json","../../../node_modules/.pnpm/node_modules/@types/console/package.json","../../../node_modules/.pnpm/node_modules/@types/constants/package.json","../../../node_modules/.pnpm/node_modules/@types/crypto/package.json","../../../node_modules/.pnpm/node_modules/@types/dgram/package.json","../../../node_modules/.pnpm/node_modules/@types/diagnostics_channel/package.json","../../../node_modules/.pnpm/node_modules/@types/dns/package.json","../../../node_modules/.pnpm/node_modules/@types/dns/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/domain/package.json","../../../node_modules/.pnpm/node_modules/@types/events/package.json","../../../node_modules/.pnpm/node_modules/@types/fs/package.json","../../../node_modules/.pnpm/node_modules/@types/fs/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/http/package.json","../../../node_modules/.pnpm/node_modules/@types/http2/package.json","../../../node_modules/.pnpm/node_modules/@types/https/package.json","../../../node_modules/.pnpm/node_modules/@types/inspector/package.json","../../../node_modules/.pnpm/node_modules/@types/inspector/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/module/package.json","../../../node_modules/.pnpm/node_modules/@types/net/package.json","../../../node_modules/.pnpm/node_modules/@types/os/package.json","../../../node_modules/.pnpm/node_modules/@types/path/package.json","../../../node_modules/.pnpm/node_modules/@types/path/posix/package.json","../../../node_modules/.pnpm/node_modules/@types/path/win32/package.json","../../../node_modules/.pnpm/node_modules/@types/perf_hooks/package.json","../../../node_modules/.pnpm/node_modules/@types/process/package.json","../../../node_modules/.pnpm/node_modules/@types/punycode/package.json","../../../node_modules/.pnpm/node_modules/@types/querystring/package.json","../../../node_modules/.pnpm/node_modules/@types/readline/package.json","../../../node_modules/.pnpm/node_modules/@types/readline/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/repl/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/consumers/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/web/package.json","../../../node_modules/.pnpm/node_modules/@types/string_decoder/package.json","../../../node_modules/.pnpm/node_modules/@types/timers/package.json","../../../node_modules/.pnpm/node_modules/@types/timers/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/tls/package.json","../../../node_modules/.pnpm/node_modules/@types/trace_events/package.json","../../../node_modules/.pnpm/node_modules/@types/tty/package.json","../../../node_modules/.pnpm/node_modules/@types/url/package.json","../../../node_modules/.pnpm/node_modules/@types/util/package.json","../../../node_modules/.pnpm/node_modules/@types/util/types/package.json","../../../node_modules/.pnpm/node_modules/@types/v8/package.json","../../../node_modules/.pnpm/node_modules/@types/vm/package.json","../../../node_modules/.pnpm/node_modules/@types/wasi/package.json","../../../node_modules/.pnpm/node_modules/@types/worker_threads/package.json","../../../node_modules/.pnpm/node_modules/@types/zlib/package.json","../../../node_modules/.pnpm/node_modules/assert/package.json","../../../node_modules/.pnpm/node_modules/assert/strict/package.json","../../../node_modules/.pnpm/node_modules/async_hooks/package.json","../../../node_modules/.pnpm/node_modules/buffer/package.json","../../../node_modules/.pnpm/node_modules/child_process/package.json","../../../node_modules/.pnpm/node_modules/cluster/package.json","../../../node_modules/.pnpm/node_modules/console/package.json","../../../node_modules/.pnpm/node_modules/constants/package.json","../../../node_modules/.pnpm/node_modules/crypto/package.json","../../../node_modules/.pnpm/node_modules/dgram/package.json","../../../node_modules/.pnpm/node_modules/diagnostics_channel/package.json","../../../node_modules/.pnpm/node_modules/dns/package.json","../../../node_modules/.pnpm/node_modules/dns/promises/package.json","../../../node_modules/.pnpm/node_modules/domain/package.json","../../../node_modules/.pnpm/node_modules/events/package.json","../../../node_modules/.pnpm/node_modules/fs/package.json","../../../node_modules/.pnpm/node_modules/fs/promises/package.json","../../../node_modules/.pnpm/node_modules/http/package.json","../../../node_modules/.pnpm/node_modules/http2/package.json","../../../node_modules/.pnpm/node_modules/https/package.json","../../../node_modules/.pnpm/node_modules/inspector/package.json","../../../node_modules/.pnpm/node_modules/inspector/promises/package.json","../../../node_modules/.pnpm/node_modules/module/package.json","../../../node_modules/.pnpm/node_modules/net/package.json","../../../node_modules/.pnpm/node_modules/os/package.json","../../../node_modules/.pnpm/node_modules/path/package.json","../../../node_modules/.pnpm/node_modules/path/posix/package.json","../../../node_modules/.pnpm/node_modules/path/win32/package.json","../../../node_modules/.pnpm/node_modules/perf_hooks/package.json","../../../node_modules/.pnpm/node_modules/process/package.json","../../../node_modules/.pnpm/node_modules/querystring/package.json","../../../node_modules/.pnpm/node_modules/readline/package.json","../../../node_modules/.pnpm/node_modules/readline/promises/package.json","../../../node_modules/.pnpm/node_modules/repl/package.json","../../../node_modules/.pnpm/node_modules/stream/consumers/package.json","../../../node_modules/.pnpm/node_modules/stream/package.json","../../../node_modules/.pnpm/node_modules/stream/promises/package.json","../../../node_modules/.pnpm/node_modules/stream/web/package.json","../../../node_modules/.pnpm/node_modules/string_decoder/package.json","../../../node_modules/.pnpm/node_modules/timers/package.json","../../../node_modules/.pnpm/node_modules/timers/promises/package.json","../../../node_modules/.pnpm/node_modules/tls/package.json","../../../node_modules/.pnpm/node_modules/trace_events/package.json","../../../node_modules/.pnpm/node_modules/tty/package.json","../../../node_modules/.pnpm/node_modules/url/package.json","../../../node_modules/.pnpm/node_modules/util/package.json","../../../node_modules/.pnpm/node_modules/util/types/package.json","../../../node_modules/.pnpm/node_modules/v8/package.json","../../../node_modules/.pnpm/node_modules/vm/package.json","../../../node_modules/.pnpm/node_modules/wasi/package.json","../../../node_modules/.pnpm/node_modules/worker_threads/package.json","../../../node_modules/.pnpm/node_modules/zlib/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/buffer/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/events/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/net/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/stream/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/stream/web/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/tls/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/url/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/worker_threads/package.json","../../../node_modules/assert/package.json","../../../node_modules/assert/strict/package.json","../../../node_modules/async_hooks/package.json","../../../node_modules/buffer/package.json","../../../node_modules/child_process/package.json","../../../node_modules/cluster/package.json","../../../node_modules/console/package.json","../../../node_modules/constants/package.json","../../../node_modules/crypto/package.json","../../../node_modules/dgram/package.json","../../../node_modules/diagnostics_channel/package.json","../../../node_modules/dns/package.json","../../../node_modules/dns/promises/package.json","../../../node_modules/domain/package.json","../../../node_modules/events/package.json","../../../node_modules/fs/package.json","../../../node_modules/fs/promises/package.json","../../../node_modules/http/package.json","../../../node_modules/http2/package.json","../../../node_modules/https/package.json","../../../node_modules/inspector/package.json","../../../node_modules/inspector/promises/package.json","../../../node_modules/module/package.json","../../../node_modules/net/package.json","../../../node_modules/os/package.json","../../../node_modules/path/package.json","../../../node_modules/path/posix/package.json","../../../node_modules/path/win32/package.json","../../../node_modules/perf_hooks/package.json","../../../node_modules/process/package.json","../../../node_modules/punycode/package.json","../../../node_modules/querystring/package.json","../../../node_modules/readline/package.json","../../../node_modules/readline/promises/package.json","../../../node_modules/repl/package.json","../../../node_modules/stream/consumers/package.json","../../../node_modules/stream/package.json","../../../node_modules/stream/promises/package.json","../../../node_modules/stream/web/package.json","../../../node_modules/string_decoder/package.json","../../../node_modules/timers/package.json","../../../node_modules/timers/promises/package.json","../../../node_modules/tls/package.json","../../../node_modules/trace_events/package.json","../../../node_modules/tslib/package.json","../../../node_modules/tty/package.json","../../../node_modules/url/package.json","../../../node_modules/util/package.json","../../../node_modules/util/types/package.json","../../../node_modules/v8/package.json","../../../node_modules/vm/package.json","../../../node_modules/wasi/package.json","../../../node_modules/worker_threads/package.json","../../../node_modules/zlib/package.json","../../client-mcp/node_modules/@modelcontextprotocol/sdk/server/stdio.js/package.json","../../client-mcp/node_modules/@modelcontextprotocol/sdk/shared/transport.js/package.json","../../client/node_modules/@types/http/package.json","../../client/node_modules/http/package.json","../node_modules/@types/express-serve-static-core/package.json","../node_modules/@types/serve-static/package.json","../node_modules/@types/tslib/package.json","../node_modules/tslib/package.json"],"fileNames":["lib.es5.d.ts","lib.es2015.d.ts","lib.es2016.d.ts","lib.es2017.d.ts","lib.es2018.d.ts","lib.es2019.d.ts","lib.es2020.d.ts","lib.es2021.d.ts","lib.es2022.d.ts","lib.es2023.d.ts","lib.es2024.d.ts","lib.es2025.d.ts","lib.esnext.d.ts","lib.es2015.core.d.ts","lib.es2015.collection.d.ts","lib.es2015.generator.d.ts","lib.es2015.iterable.d.ts","lib.es2015.promise.d.ts","lib.es2015.proxy.d.ts","lib.es2015.reflect.d.ts","lib.es2015.symbol.d.ts","lib.es2015.symbol.wellknown.d.ts","lib.es2016.array.include.d.ts","lib.es2016.intl.d.ts","lib.es2017.arraybuffer.d.ts","lib.es2017.date.d.ts","lib.es2017.object.d.ts","lib.es2017.sharedmemory.d.ts","lib.es2017.string.d.ts","lib.es2017.intl.d.ts","lib.es2017.typedarrays.d.ts","lib.es2018.asyncgenerator.d.ts","lib.es2018.asynciterable.d.ts","lib.es2018.intl.d.ts","lib.es2018.promise.d.ts","lib.es2018.regexp.d.ts","lib.es2019.array.d.ts","lib.es2019.object.d.ts","lib.es2019.string.d.ts","lib.es2019.symbol.d.ts","lib.es2019.intl.d.ts","lib.es2020.bigint.d.ts","lib.es2020.date.d.ts","lib.es2020.promise.d.ts","lib.es2020.sharedmemory.d.ts","lib.es2020.string.d.ts","lib.es2020.symbol.wellknown.d.ts","lib.es2020.intl.d.ts","lib.es2020.number.d.ts","lib.es2021.promise.d.ts","lib.es2021.string.d.ts","lib.es2021.weakref.d.ts","lib.es2021.intl.d.ts","lib.es2022.array.d.ts","lib.es2022.error.d.ts","lib.es2022.intl.d.ts","lib.es2022.object.d.ts","lib.es2022.string.d.ts","lib.es2022.regexp.d.ts","lib.es2023.array.d.ts","lib.es2023.collection.d.ts","lib.es2023.intl.d.ts","lib.es2024.arraybuffer.d.ts","lib.es2024.collection.d.ts","lib.es2024.object.d.ts","lib.es2024.promise.d.ts","lib.es2024.regexp.d.ts","lib.es2024.sharedmemory.d.ts","lib.es2024.string.d.ts","lib.es2025.collection.d.ts","lib.es2025.float16.d.ts","lib.es2025.intl.d.ts","lib.es2025.iterator.d.ts","lib.es2025.promise.d.ts","lib.es2025.regexp.d.ts","lib.esnext.array.d.ts","lib.esnext.collection.d.ts","lib.esnext.date.d.ts","lib.esnext.decorators.d.ts","lib.esnext.disposable.d.ts","lib.esnext.error.d.ts","lib.esnext.intl.d.ts","lib.esnext.sharedmemory.d.ts","lib.esnext.temporal.d.ts","lib.esnext.typedarrays.d.ts","lib.decorators.d.ts","lib.decorators.legacy.d.ts","../src/config.ts","../../client/dist/procedures/schema.d.ts","../../client/dist/client/validation/types.d.ts","../../client/dist/procedures/collection/storage.d.ts","../../client/dist/events/types.d.ts","../../client/dist/procedures/ref.d.ts","../../client/dist/procedures/types.d.ts","../../client/dist/procedures/registry.d.ts","../../client/dist/procedures/capability.d.ts","../../client/dist/procedures/invoke.d.ts","../../client/dist/client/errors/types.d.ts","../../client/dist/client/errors/codes.d.ts","../../client/dist/client/errors/registry.d.ts","../../client/dist/client/errors/factory.d.ts","../../client/dist/client/errors/http-status.d.ts","../../client/dist/client/errors/http-errors.d.ts","../../client/dist/client/errors/index.d.ts","../../client/dist/client/types.d.ts","../../client/dist/client/middleware/contexts.d.ts","../../client/dist/client/context.d.ts","../../client/dist/client/consumption.d.ts","../../client/dist/client/call-types.d.ts","../../client/dist/client/client.d.ts","../../client/dist/adapters/http/shared/constants.d.ts","../../client/dist/adapters/http/shared/status-codes.d.ts","../../client/dist/adapters/http/shared/headers.d.ts","../../client/dist/adapters/http/shared/strategies.d.ts","../../client/dist/adapters/http/shared/errors.d.ts","../../client/dist/adapters/http/shared/index.d.ts","../../client/dist/adapters/http/client/types.d.ts","../../client/dist/adapters/http/client/transport.d.ts","../../client/dist/adapters/http/client/index.d.ts","../../client/dist/adapters/local/client/types.d.ts","../../client/dist/adapters/local/client/transport.d.ts","../../client/dist/adapters/local/client/index.d.ts","../../client/dist/adapters/websocket/client/types.d.ts","../../client/dist/adapters/websocket/client/transport.d.ts","../../client/dist/adapters/websocket/client/index.d.ts","../../client/dist/adapters/mock/client/types.d.ts","../../client/dist/adapters/mock/client/transport.d.ts","../../client/dist/adapters/mock/client/builder.d.ts","../../client/dist/adapters/mock/client/index.d.ts","../../client/dist/client/middleware/retry.d.ts","../../client/dist/client/middleware/cache.d.ts","../../client/dist/client/middleware/timeout.d.ts","../../client/dist/client/middleware/pagination.d.ts","../../client/dist/client/middleware/circuit-breaker.d.ts","../../client/dist/client/middleware/rate-limit.d.ts","../../client/dist/client/middleware/auth.d.ts","../../client/dist/client/middleware/tracing.d.ts","../../client/dist/client/validation/middleware.d.ts","../../client/dist/client/validation/index.d.ts","../../client/dist/client/typed.d.ts","../../client/dist/client/index.d.ts","../../client/dist/server/types.d.ts","../../client/dist/server/server.d.ts","../../client/dist/server/procedure-server.d.ts","../../client/dist/server/method.d.ts","../../client/dist/procedures/effects.d.ts","../../client/dist/procedures/define.d.ts","../../client/dist/procedures/collection/schemas.d.ts","../../client/dist/procedures/collection/procedures.d.ts","../../client/dist/procedures/collection/index.d.ts","../../client/dist/procedures/discovery.d.ts","../../client/dist/procedures/module.d.ts","../../client/dist/procedures/core/schemas.d.ts","../../client/dist/procedures/core/logic.d.ts","../../client/dist/procedures/core/results.d.ts","../../client/dist/procedures/core/math.d.ts","../../client/dist/procedures/core/comparison.d.ts","../../client/dist/procedures/core/string.d.ts","../../client/dist/procedures/core/type.d.ts","../../client/dist/procedures/core/object.d.ts","../../client/dist/procedures/core/array.d.ts","../../client/dist/procedures/core/meta.d.ts","../../client/dist/procedures/core/index.d.ts","../../client/dist/procedures/define-procedure.d.ts","../../client/dist/procedures/index.d.ts","../../client/dist/procedures/policy.d.ts","../../client/dist/procedures/interceptors.d.ts","../../client/dist/server/browser-guard.d.ts","../../client/dist/server/host-policy.d.ts","../../client/dist/client/route-resolver.d.ts","../../client/dist/client/batch-executor.d.ts","../../client/dist/events/bus.d.ts","../../client/dist/events/index.d.ts","../../client/dist/browser.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/@types+send@1.2.1/node_modules/@types/send/index.d.ts","../../../node_modules/.pnpm/@types+qs@6.15.1/node_modules/@types/qs/index.d.ts","../../../node_modules/.pnpm/@types+range-parser@1.2.7/node_modules/@types/range-parser/index.d.ts","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/.pnpm/@types+http-errors@2.0.5/node_modules/@types/http-errors/index.d.ts","../../../node_modules/.pnpm/@types+serve-static@2.2.0/node_modules/@types/serve-static/index.d.ts","../../../node_modules/.pnpm/@types+connect@3.4.38/node_modules/@types/connect/index.d.ts","../../../node_modules/.pnpm/@types+body-parser@1.19.6/node_modules/@types/body-parser/index.d.ts","../../../node_modules/.pnpm/@types+express@5.0.6/node_modules/@types/express/index.d.ts","../../client/dist/adapters/http/server/types.d.ts","../../client/dist/adapters/http/server/strategies.d.ts","../../client/dist/adapters/http/server/transport.d.ts","../../client/dist/adapters/http/server/index.d.ts","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/ws/index.d.mts","../../client/dist/adapters/websocket/server/types.d.ts","../../client/dist/adapters/websocket/server/transport.d.ts","../../client/dist/adapters/websocket/server/index.d.ts","../../client/dist/server/index.d.ts","../../client/dist/index.d.ts","../../client-mcp/dist/module.d.ts","../../mcp/dist/types.d.ts","../../mcp/dist/schema/tool-schema.d.ts","../../mcp/dist/schema/index.d.ts","../../mcp/dist/mapping/path-encoder.d.ts","../../mcp/dist/mapping/procedure-to-tool.d.ts","../../mcp/dist/mapping/index.d.ts","../../mcp/dist/context/mcp-context.d.ts","../../mcp/dist/context/index.d.ts","../../mcp/dist/index.d.ts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/json-schema.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/standard-schema.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/registries.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/to-json-schema.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/util.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/versions.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/schemas.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/checks.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/errors.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/core.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/parse.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/memoizer.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/regexes.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ar.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/az.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/be.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/bg.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/bn.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ca.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ckb.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/cs.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/da.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/de.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/el.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/en.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/eo.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/es.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fa.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fi.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fr.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fr-ca.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/gu.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/he.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hi.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hr.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hu.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hy.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/id.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/is.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/it.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ja.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ka.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/kh.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/km.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/kn.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ko.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/lt.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/mk.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ms.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ne.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/nl.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/nn.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/no.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ota.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ps.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/pl.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/pt.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/pt-br.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ro.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ru.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/sk.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/sl.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/sv.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ta.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/tg.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/th.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/tk.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/tr.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ua.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/uk.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ur.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/uz.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/vi.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/zh-cn.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/zh-tw.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/yo.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/index.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/doc.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/compile.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/api.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/json-schema-processors.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/json-schema-generator.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/index.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/errors.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/parse.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/schemas.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/checks.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/compat.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/from-json-schema.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/deep-partial.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/in-out.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/iso.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/coerce.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/external.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/index.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/index.d.cts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1_2594e54b241da4d3aba43cc3297a77b8/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/types.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1_2594e54b241da4d3aba43cc3297a77b8/node_modules/@modelcontextprotocol/sdk/dist/esm/types.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1_2594e54b241da4d3aba43cc3297a77b8/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts","../../client-mcp/dist/types.d.ts","../../client-mcp/dist/transport/mcp-transport.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1_2594e54b241da4d3aba43cc3297a77b8/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.d.ts","../../client-mcp/dist/transport/stdio.d.ts","../../client-mcp/dist/transport/sse.d.ts","../../client-mcp/dist/procedures/mcp/serve.d.ts","../../client-mcp/dist/surface.d.ts","../../client-mcp/dist/procedures/mcp/list-tools.d.ts","../../client-mcp/dist/index.d.ts","../src/host.ts","../src/index.ts","../src/server.ts"],"fileInfos":[{"version":"16934abaab7026ac114da441aabea1a0","affectsGlobalScope":true,"impliedNodeFormat":1},"d4306fb2e47f74835e8674ffac07d76f","e437c5c1302869326c3bb93da85bbbcf","e4324975a566567b21d350615f1fc6ac","333b1b9a2a9ac3b8497dba5c63b5ba50","6cffacd662b6eb5fa7a36aa2ea366bfa","b4c34f9c23304dbef2d23698637ed638","e5cb86a5fc491796ecd1d2dd348d208f","feb6c6fb19cdb246a5d8acb36a6901c7","9443a7f109277ffaa79d893ed2549995","793cee405385076e27c24f409659dccd","09f69c6610266eaee1ac9e3e30df2c71","62bad718844246b8e17547f37bad6085",{"version":"926204c28cd3d073865348473ae28d2e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f25e42c801b2cb3cf2b39792006a9beb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6344b55f26a4e81d9608777dbfb877dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3c0ed28e53d3695b363e256ec1c023fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4c2761daba7f17141c25baa0821ac5da","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b87656acabd63e69379ff6ffcfe52fc7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"597469522da047a5af5222cc6989f405","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1708ea4d34dc37fadadc63ca01127e80","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"55d97a8c6fbf34a30450a7b1e5f7a298","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0ee05eb59426d33e374226d8dcfa708b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e347c14030993906efcfbb88915b6a05","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b0231263857c9b6a03641acdc9280ceb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3b15c4a83b598cacb4067676e6f0abed","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b417d97b7934cef63b1889abec0bbfbf","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"09a6cf4032ebba60ce22a501e663f881","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2b056277dd138e8f5650fc04e20eaa8d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e22cc07e3f3cc242ba52fa3f8ea1fc58","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2c45da767a1bfbb220848df1bc4029e4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b44c3e0fbaf2130cdcf6ac38b120ffa1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b612fb5cf8e5d964b92063a75207632a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"02705151a5e1551b9162a9ed8ab763f7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"41025e398be9215d32e4337335da8f0b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"52684c2b1f353a5538e4f275182a54cd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6dedb6a4f90d1df3a6fbe5693e44886c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ca3f36fe3562c07e0f0d71c2bebd3f6d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"409974d6129befbb8226ddd1c6558568","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4d9cfde2a1ae1b4925f1f9bc10848e5d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7e1daecc66dd564144e3bb1a0266b5fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a8e1d9bb35fd0637f2f9fd2b2a54f2ec","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4f168501772a6543182765bfd5f2fbfe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a19c80aad1b2162103496f5ba293a732","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b69afa63cd5d059851c78adb2856ee09","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ae2fc5d954e9b0f5feee3d481b953c27","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1cfd3091a071d8b6feec15277643bafe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1da2c1f258970fd3cc91184f69e91a9d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a0d87491913d843139e0c993650a3235","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4ef72aa378127e7b7abba915b0110b1e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3ec74c6a7d4463f0254db3a74cf75646","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"84c2bdfa470d075526cce6322d81b0b6","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0b3844c2b8c73e4e1ab91431411cad11","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4fc71cf4a15b8d99675a31df77f26e07","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d1b49564ddaeca3df5b6dbae925d2242","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6a25be566d60ccfc2d6e8b7bfdeefa83","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8a20e27646985dfd58c57ca6566553dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9969f02ad3cdcbf4f709405cda44167f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9c9be4792a7a4f42c15ae7360bf28779","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8cf777fe00349b71ee9c4b6f3fe7fd19","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"74f96bc192530c9723f572bfff3d3078","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1df91c56b25955c56387426f378173c5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"38856f70edcd2115c355d96ec77cc09e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"de8700156c1275465bcd473c28b359aa","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d47cfdb6ede40518357bb5a4cd7cd9fb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6e5773860cd9e5b15e683113f642ab47","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"30ff5fe1682f7fcd629880476ca3c2e0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"bf23d7d1b40b9015b694ddc2f011752f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2cc585d42e2c548f9f24a30a1989fd33","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"713906ce9d332d2242b7f05ed9304be3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0219894bfe5042c7e1aa2d22e4a91ed0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6009ffff7e43c93318804d2d28e37fe3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"03be89b227587594fbb50509fc1c2e45","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b30df52dc24740c0bad7c55c3511df7d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ab8d3c9b5ed5c2ab8f383607eef439f0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d950ec671d0a8e07f3c1a31e94abed86","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1abef2ace5eccb02d60dd73cd5a5ee4c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f5f0a3044029d1cc081b5887eb4deb07","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d57c697f1446940ec4bfe669c962e2c4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"be41035d7b941482a1e1ae6a5c5dcca5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"10f7d9da7564f27f8ddf4a162b6da6d3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1d0520af549e0c3581f15173cc713ca1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d65083f97fd741cff028472563eddb79","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"da7f24f00653ebac660ac1c0821ed33d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7cb5ae9e65516ea2235f0721f6aac43c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f64453cbf9671f28158677fa5c43967a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"33f317af5428801f944a478d2c1e38e5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7d190179bb11d8bfaadf484df40957f4","signature":"12b6d93c8b15353a80c4c0a0fd4d46de","impliedNodeFormat":99},{"version":"6be57419e9895a547ea6a1adfb55b896","impliedNodeFormat":99},{"version":"006bbe75d9dc7ccf680d5b3118033f1f","impliedNodeFormat":99},{"version":"29435e96a341064b5b9d73baff6ec2a3","impliedNodeFormat":99},{"version":"337b6cdf77b57ce90d09ddac000c74fc","impliedNodeFormat":99},{"version":"c9e5a8b8853281fd2a7490f1150a4593","impliedNodeFormat":99},{"version":"6b256f7daece72658a3906b07bd01020","impliedNodeFormat":99},{"version":"8d9042d3b304792479c25ade194f1bad","impliedNodeFormat":99},{"version":"455e1b38859e9d16c7da8a8eea785606","impliedNodeFormat":99},{"version":"590a565a5413c8210fab3fb73b644e41","impliedNodeFormat":99},{"version":"0868d21131f63c6318ecade7eb7210be","impliedNodeFormat":99},{"version":"8dcbe656772cea64e3bb7ff0b5d59f37","impliedNodeFormat":99},{"version":"a5a0d22c49f369c16e12c1e5813ab6d3","impliedNodeFormat":99},{"version":"c51a9a4153a693d98890ac03ee84c855","impliedNodeFormat":99},{"version":"9ac07717997d43affd1498e85689a1a3","impliedNodeFormat":99},{"version":"a7e8132761007fe6701dbf4326024341","impliedNodeFormat":99},{"version":"f1a5fa6676aa7ac22654446cad9d3d95","impliedNodeFormat":99},{"version":"b507fcebbc2eccd9312def450da51d1b","impliedNodeFormat":99},{"version":"44fd5735760a71d15f14386fd95760ea","impliedNodeFormat":99},{"version":"4a1dc81d4a48c84e39c5573bc6a36181","impliedNodeFormat":99},{"version":"313de785aa7f53811273f58137396514","impliedNodeFormat":99},{"version":"1cc68a9412f980baa97a7589d8106e01","impliedNodeFormat":99},{"version":"44ebe0ba7ccdb5b801cc7d4acae9eade","impliedNodeFormat":99},{"version":"7cf32e882dd594ac59d9e80978aa42ea","impliedNodeFormat":99},{"version":"8b5081e477e7845ac094d6b6cb5e8ec0","impliedNodeFormat":99},{"version":"1b79a5748d1e0bdb505befa70cec0451","impliedNodeFormat":99},{"version":"41e03d403b9e0d632f3af81214cd8345","impliedNodeFormat":99},{"version":"523c21a5413305f17526b5b6cf535179","impliedNodeFormat":99},{"version":"eef5d85571d408190ce31d195bf03ed2","impliedNodeFormat":99},{"version":"df52b1302438503c648de64b1347373b","impliedNodeFormat":99},{"version":"e97d44ee39595a8d8e1e6cdaaf7b4fed","impliedNodeFormat":99},{"version":"265783c002544231a2c57c1b345e1cea","impliedNodeFormat":99},{"version":"0902c83d16ad172abc51ed6bd3990138","impliedNodeFormat":99},{"version":"c95e6ae0fd6dc2979b35d2a5f6cd2427","impliedNodeFormat":99},{"version":"00bc3f83d4845807f8271ab3c745ff67","impliedNodeFormat":99},{"version":"e1441758745ecbe027aadce47894e0ae","impliedNodeFormat":99},{"version":"7cdf4332c3f6f6e70ec549a2cc2e557a","impliedNodeFormat":99},{"version":"bc5e5b20c7d90084a0c1a76f912d8b8f","impliedNodeFormat":99},{"version":"29396b9b81be86cd5988eb81d18c03cf","impliedNodeFormat":99},{"version":"67f953c9fb282b6f7b44b2026d5bec84","impliedNodeFormat":99},{"version":"001090557d1d3df1f2482abcf561af1e","impliedNodeFormat":99},{"version":"bc833b857dd9a2ad2a2cc5b60a309d4e","impliedNodeFormat":99},{"version":"15a04b754ea0a9d401582bdd65f20953","impliedNodeFormat":99},{"version":"942353bf4e3bf80faaf237e3ac2ccc3d","impliedNodeFormat":99},{"version":"5392e1d10c02011ac6b576052e88216d","impliedNodeFormat":99},{"version":"8c4b62b4a00c51da5f8b7caffe0f03ee","impliedNodeFormat":99},{"version":"ecb656dcbbe4090ca785e2508f4e12c0","impliedNodeFormat":99},{"version":"91623a1f4aef0a852c387a07a2c3ab59","impliedNodeFormat":99},{"version":"9d8af42705105f6cfb47f9977e7e284b","impliedNodeFormat":99},{"version":"cafd4971c8d191559ccf3da376bb0fd6","impliedNodeFormat":99},{"version":"a58c141c24aa04a112fc8161e137592d","impliedNodeFormat":99},{"version":"d7ebd2c11fe146421387e883bb5c2ccd","impliedNodeFormat":99},{"version":"c261f3352382743318751612666c0f97","impliedNodeFormat":99},{"version":"d44eff0683fe3e966b43c084ae5c69a4","impliedNodeFormat":99},{"version":"d0038ccd77fee672e2bad600d1b51d3e","impliedNodeFormat":99},{"version":"16a73e4f9e9624e100119801052dc414","impliedNodeFormat":99},{"version":"539cae38e3622a6362c7c690cdcf9503","impliedNodeFormat":99},{"version":"a7be7da3e0ff8a23e075c90fda9b6a33","impliedNodeFormat":99},{"version":"6867611fba4c0509138c670166f1fda4","impliedNodeFormat":99},{"version":"549cdf7be9336865a24bbec9308f85c0","impliedNodeFormat":99},{"version":"8c1a9cbefeac436b7daf273e51e083aa","impliedNodeFormat":99},{"version":"0ba7ff53392a2a3b944cacbcf0b78b07","impliedNodeFormat":99},{"version":"675c7686f9cded03a199e877709b8b23","impliedNodeFormat":99},{"version":"9b4982c4091dd5f18b8c1c81cf137c07","impliedNodeFormat":99},{"version":"5758228826deea77ba36666c076f1c0a","impliedNodeFormat":99},{"version":"4645c760c24932f240081a5688f9e5f4","impliedNodeFormat":99},{"version":"80d6a2ecb0aa22e5ee13b8ab2762cf32","impliedNodeFormat":99},{"version":"8f129880dcb2313f3badfed346ec2581","impliedNodeFormat":99},{"version":"035542f7200f4d22e59ecfa10f94739e","impliedNodeFormat":99},{"version":"2db291ced724b83ae656c59391a00271","impliedNodeFormat":99},{"version":"a9ac721f09236b64e6854577cfc36eaf","impliedNodeFormat":99},{"version":"5c207e5b00d64cd0c543e274e6036525","impliedNodeFormat":99},{"version":"b483fb83736a2f60e7194b82d08fb9c6","impliedNodeFormat":99},{"version":"efd280bdeb72be78b6ea34915ef99611","impliedNodeFormat":99},{"version":"dcdd6487a6e5216fafcf5f65da2cc51c","impliedNodeFormat":99},{"version":"925ec76390339184338710dad0d25956","impliedNodeFormat":99},{"version":"f6e98a47b1ccb0788ce7bc5bd8081cb4","impliedNodeFormat":99},{"version":"681f5018cd9d24fa347e84edf6292359","impliedNodeFormat":99},{"version":"d8897812d9461364c1cd0a7ab2ae3359","impliedNodeFormat":99},{"version":"105ad55396d811516f6fe0fa778d1c7e","impliedNodeFormat":99},{"version":"f2a6f84008e97af5558200cf59b6efb2","impliedNodeFormat":99},{"version":"13cf1b757fe2b99bcc1f1752d76cee9d","impliedNodeFormat":99},{"version":"ef8f19666296edc7210bd61a0bf2a704","impliedNodeFormat":99},{"version":"aa5917b17f32412bc9a80d56b59fd652","impliedNodeFormat":99},{"version":"0932ed4363b078dbdd8c1162783ab9cb","impliedNodeFormat":99},{"version":"9419011376155b09d207e3430d3fee58","impliedNodeFormat":99},{"version":"742068e7bfa485b792631153d9b642cf","impliedNodeFormat":99},{"version":"5fd84cb7055cb580f7698d4a32062548","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"913b52a39743d1c11984e4e124b1f3a8","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3e57a4cd3267159f3772bebd73534451","affectsGlobalScope":true,"impliedNodeFormat":1},"fe51d7a9bcdbcce1e65bbcf39b212298",{"version":"849a1873c4e917b0887368c1be897faa","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"69ee0752d1e70c56ca160360425752a9","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3ddc6139fafd9dfb16bb112a7b74f610","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9af0a7e3ef1c42cd066b9f8d365cc1ba","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9eca652586205dc5b07f9ba57b1c8500","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ec5f75939754ce94652189ec7d0d3058","affectsGlobalScope":true,"impliedNodeFormat":1},"628b774b54637325e286752c79c12432","bb1f9e3091b88e9d0e93b7198c736af3","514fd35e5eb35bb2e5cbb908af0a0aa2","ed57ae88565308729f2327f26d684976","dcd932d6b0038f2e250e30dc10125b22","9508c917bd7e458745e222a82dd24ef0","fabf86f455f96b90538cc26320ab2765","14550b4cd9f433e0addd8b6d67614d23","cf0ac6aebc25cb780674653aaeee688e","35fef7bac8048f583e4ce6eaa0c2a4c0","6752dc653fc7a333027249fd851fdb62","b9ad7e689b46dfba362c1bf174e69018","8b0a2930dfabdf27c69c6bb1eeabcdc8","4513b1ed15523d247040689f37fa9db2","5c0c499eed773a750903d9497beafacd","2377da227d1bac82ff7b3f2081ddf8d3","beef985b474fefeb80d27fb2c8778371","c79fc9d9f09ae598a374ae7c0b5284a4","f2caa3cebb1e6be855519004830a6be0","8ebc9f2a77c900e710801214c5cb994c","ec617a0e0577dd6a3210c3b067ecb325","1db5d06e485bd82d6d5f6e36925a8714","24b864518967840216c779b5e5f00975","8719cd8047700bfb6046798390053823","f2840afb502c94db92dab0fb8d27812f","a7e7d08b372210c203745d3eac61a411","531183cc80535e0e94226d720e5eb038","f627eb958ca52c85e42f04dce4661f86","9a43fc665bce9012a3d5fe1b574ff4dc","13f4b4da6546a34719fd6bde15fb63dd","a589216508844bfc00e62fc2d97fda45","865aea1c3209e31b076cb6fe780e769e","12e64aaf26af0f5c8f1b263dd66e3feb","928971ebbcdf5b093ef37669b33bddf6","b744265d8ad12b7d4d5c5dc35d18d44e","eff32168b8348b822afeed9cbf61afa7","9aafd1f29b4d8861c1c6c34bf83c0721",{"version":"a127795c4dad633990c87aa0b86831e5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d0fd03004a6221614a1eaf764f324f74","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"45df94b3c51b898624bacc2bcd6d9eb2","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7d352f71d1b1bcc12c79dd0e4597537c","affectsGlobalScope":true,"impliedNodeFormat":1},"9a624e1940639eca005bbfa0b0795e0c","bc36d91e82ffa66a49621888701e71dc","f8c976cb12f3420b8cc8d03d579ada06",{"version":"ba7e459f9d165c391370248c1b6d27e6","affectsGlobalScope":true,"impliedNodeFormat":1},"1bd6f05fb97456c25967ff016b829638","10ea0c4d80d7a0333c1e857199853b74",{"version":"9fc8636e70e507ea8d98a7aabd265ee5","affectsGlobalScope":true,"impliedNodeFormat":1},"b2b472cd0bf0f8d5f022e00ca1c401f4",{"version":"2d78fd1079375d411033f64faae0c89b","affectsGlobalScope":true,"impliedNodeFormat":1},"2c854dda7450575791a388d8f0f29e31","61dd307aef9adea6fd307b5364c843da","4eb05de87a87ea4d8a41f4b2229bada4","5c5c7649711b5d982cf39fe9b6744080","958d9865bfe33c94973e3d58ac66b1d0",{"version":"e69aeb78ba4fd8c4493f80e9e81737e5","affectsGlobalScope":true,"impliedNodeFormat":1},"f2c1804a9a9d8f64eb2a67a797f9baef","b857d33151fcd39b213bb7c17cf12969","2e1cff79cd7dfb7d8281322931a687bd","3c217295039c32f3fecd8f7bab2e43e3","9fb3b9387eadc1aa053821d6c96b5769","1690a4da2f50085917cb933f6f2556cb","9d6686cc730682ed548fac9462ac4346",{"version":"f6be7fda5b8729494c54d9983698c290","affectsGlobalScope":true,"impliedNodeFormat":1},"0bb08d83737c91e9ca2c2c3b99ae99a2","a4e9f4bc0d06a3823fff0f55f31eac93","43b4e399ab399cf8ecd47e481abddeeb",{"version":"0769bf84d24c283d5b7d02cba94e7234","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9ffa943f975def71e2b112b28f946caa","affectsGlobalScope":true,"impliedNodeFormat":1},"d1dfd59bf8b7e71f40ee1d3a2f1b5fcf","9292aa21e6668349e0642faa07be7750","8ccb81bc00ea59aa908d31dbe50bb31a","0f80958d77cd6301b43c1d7904e3e4bc","0548d84bf13d6b5d3ef34d9755610be1","65398feea84a451329cd99b26a547514","b7e2bcd9d00432e1792823ed5da41128","739428f35658f9391641b3dfc9433fb2","c8206d568b54e5ea06131963eecd576a","15878f4f50c2e562c0768eb735c2aed5",{"version":"4e6c56c4b055178cfc9edc254d744a5b","affectsGlobalScope":true,"impliedNodeFormat":1},"329e5617fbab8b2de9bffcc41d07bb5d","6b82bee8c1c2c6d1a7f4ae0c8a47a006",{"version":"ea001113f32054398156e39095350f0a","affectsGlobalScope":true,"impliedNodeFormat":1},"7345aabef559e464447357f201cc05f8","0807835722b35673885024d2b10c282a","d63b35c1a5097295f0659f5583c8fb83","3509aa3de97926c2922f378a248ddb48",{"version":"78ce1294fea4c9fccd0600374816a75f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9edcc62fa17b31ebfd8b865c8304a4a3","affectsGlobalScope":true,"impliedNodeFormat":1},"b0cbfb9126a2a747bd567e9b79c65b58","4cfe493c958076cdc2b0609a8f889091","3bb54ead687024118ffeb8d7337370a2",{"version":"90c1b6a898bba7f42c0020815dc93eba","affectsGlobalScope":true,"impliedNodeFormat":1},"aa2008c843fac96764def81cfdf70c58","1852b3a174acea86c49700b15f7d1539","6d6fcab6a7663b8314c5123ae0389e0a","a918e723cfac239d6a8a521275f9e03b","cd5c183c2bad150213a0cccaafe937e2",{"version":"13fc504fe4ab28ad42bce734f31e72e5","affectsGlobalScope":true,"impliedNodeFormat":1},"f8059a9ddf1aeefd103fce9c853541b9","f100181a3e9ff7f5b23eed47dd66a1de","fbb1086d78fad2e81eefa859d53b6ffd","fa614d3a843db2f4f4f804155cf537a6","406d0e50f03efd9f1bf194e636900c24",{"version":"34794242e25b053da9dc388a66c668b3","impliedNodeFormat":99},{"version":"0a5bcd147b373c42da20477b927d3c0a","impliedNodeFormat":99},{"version":"87df68a5de3d6bbfb0f4ad9622c84987","impliedNodeFormat":99},{"version":"65db998bccd72d596c2d1f11202a7667","impliedNodeFormat":99},{"version":"cdfacbac9a70df2daf00f3750400b268","impliedNodeFormat":99},{"version":"fcc7d460d31e7e199c532d3fe8087471","impliedNodeFormat":99},{"version":"2e69fd9c7fe69068756083ebf09f5b55","impliedNodeFormat":99},{"version":"81b30454a6f9767e82f6da79e80e5dd1","impliedNodeFormat":99},{"version":"6bd7550aa03026cf76c0fde761a67bfa","impliedNodeFormat":99},{"version":"f6f103a8172b974a843e4f08f7a1ea90","impliedNodeFormat":99},{"version":"ea952472a029da5acb8de58fdeea9aa0","impliedNodeFormat":99},{"version":"4c8d92fe8bef5bf517b29c75429e8060","impliedNodeFormat":99},{"version":"c9970c1e90f56f2734f93d40208c2cc1","impliedNodeFormat":99},{"version":"5679a4593506862aa3f6936c9d6e483f","impliedNodeFormat":99},{"version":"e2524f84e1fa50b5ba80e663923dc1f3","impliedNodeFormat":99},{"version":"557ffa1c3db70ce8bc855b174f057b73","impliedNodeFormat":99},{"version":"0c9ad434ee1d7c22eb6203cc2b5c27e9","impliedNodeFormat":99},{"version":"669ae15daf838e59c9257a08e2fb1cca","impliedNodeFormat":99},{"version":"85c6666b29840b8095c38061364d0090","impliedNodeFormat":99},{"version":"2b4a2be724c6cc3628f293f5287d9d3c","impliedNodeFormat":99},"46adab8b8b66b08b5e7c0e8fab6a1ca6","a9fe29dcdd4288cacf574947747a4572","daada721cfdc43aa8e7c2e2d14d760de","1875116298cba1325500d3f1eac8bbf9","53a6603f36cd656a1fb80328ec67c2da","5d253feb3ce379964ce328df2e292f33","2ea6f8b0175c6790a666f87545015791","4ef66462d69c6b7504ef14011caac866","2f9112269cc3c45d1fb3d62f3ccb7097","ffb6ed8d47df8ca98044478684c0af40","cbc1f06fbfe43eb20a752fa368855819","2de5baa83f63307a4dd74d7aa2dd5254","3eeffcd208fa163e66f8769b350f0445","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","5175ffa851d494a5195ffdebf8ed7285","89cf60624d459ce663be118a626d5fdc","1d1bc42979730b680201df62a3c1ac22","cb5ffae433c93a1431c0000260c7d0c3","9bb07208f876b5e95d56a3d2e9b9a427","0b02ecd3af1ccccee2f5c605903848f8","7454a3a8b97184f2d9432fa08bea4550","5ec4d3086f21642d2aeae2133b49ceeb","8318e3c39365fe3a3cfb375f5c29ab04","9e29bd130ef2dafefc736f6ab792a301","cde3fe3c0bfe6e037b07e7251fb1c3d3","c5a965bdb35a433f7fb044dcb56d485c","96b06af537c71de0a80e9ed880958afd","3008879c54fc6e5b56c202a9d7b09211","1339976f87e671ebf4b5ff1f36594612","0a95994056ab784c17e3331cd56bff1c","a9356de7c324c6f49c15587032b1f65f","f763a0656991aee48818a73fe218b09c","d083ea090f5d07d1de58562578c4ed46","175dbca70e540d9613ec1d6ab4f09b2e",{"version":"99eecd953fef4936db0f2a893c1fce5c","impliedNodeFormat":99},{"version":"21a076073a1c63966409f42cddee7420","impliedNodeFormat":99},{"version":"eb85976a47a7648228ae9bd3f816fd9e","impliedNodeFormat":99},{"version":"8999db124cd851c1f3ac021c135e680b","impliedNodeFormat":99},{"version":"24e895111e0301ade22074cc9a9385df","impliedNodeFormat":99},{"version":"8f58e3c4878fcb6053d933f1ff44d6cd","impliedNodeFormat":99},{"version":"acb5c30396ef5fdaac14a5816c39ab59","impliedNodeFormat":99},{"version":"26dc8f4bbb5d83bc926a0b457f61decb","impliedNodeFormat":99},{"version":"2d4a02d86315d2dfa63319170e9db6ef","impliedNodeFormat":99},{"version":"5fce735c209fed09f42364347b2ea724","impliedNodeFormat":99},{"version":"25bdbab9641e14e27ddd977acefebdb6","impliedNodeFormat":99},{"version":"f9d2c5cdae9f4890e1a4923cbecc7360","impliedNodeFormat":99},{"version":"964fe0f8246f4c873ba3ae63715ca7b1","signature":"3adb389068997cb967604098666e40f7","impliedNodeFormat":99},{"version":"e44da687c4d429f4cccaed38bfbeda11","signature":"7ff5208352db3e446b55bf1999f65070","impliedNodeFormat":99},{"version":"0dff579aa70ee28c7ea612edabc43a4f","signature":"ec5a640057bd3b4477477dbb61410d54","impliedNodeFormat":99}],"fileIdsList":[[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,406,407],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,406],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,404,405],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,286],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,283,285,287],[180,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[175,176,177,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,221,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[178,179,180,181,182,183,184,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,277,278],[180,221,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,221,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,284],[180,193,197,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,193,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,188,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,190,193,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,188,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279],[180,185,186,189,192,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,193,200,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,185,191,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,193,214,215,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,189,193,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279],[180,214,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279],[180,187,188,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279],[180,187,188,189,190,191,192,193,194,195,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,215,216,217,218,219,220,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,193,208,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,193,200,201,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,191,193,201,202,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,192,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,185,188,193,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,193,197,201,202,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,197,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,191,193,196,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,185,190,193,200,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,188,193,214,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,391],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,391,394],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,313,385,389,391,392,393,394,395,396,397,398,399,400,401],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,309,311,394],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,402],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,391,392],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,310,316,391,393],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,311,313,315,316,317,318],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,313,315,317,318],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,315,318],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,313,315,317],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,310,313,315,316,318],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,309,311,312,313,314,315,316,317,318,319,320,321,385,386,387,388,389,390],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,309,311,312,315],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,311,312,315],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,315],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,309,310,312,313,314,316,317,318],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,309,310,311,315,391],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,315,316,317,318],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,402,403],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,317],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,299,308,408,409,411,412,413,414,415],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,298],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,298,308,408],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,408],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,410],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,298,308,407],[116,117,118,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[105,116,117,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[116,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,289,290,291],[105,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,288],[142,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,289,297],[105,168,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,288],[111,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[105,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[111,112,113,114,115,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[105,111,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[120,121,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[105,120,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[95,105,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[105,126,127,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[126,127,128,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[105,126,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[123,124,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[105,123,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,294,295],[142,143,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,294],[168,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,293],[96,97,109,141,142,143,144,145,146,165,166,167,169,170,171,173,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[94,109,170,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[94,108,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[90,92,93,94,95,105,107,109,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[94,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[105,106,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[98,99,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[98,99,102,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[98,99,100,101,102,103,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[98,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[104,105,107,110,119,122,125,129,130,131,132,133,134,135,136,137,139,140,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[90,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[94,95,108,109,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[107,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[92,94,97,104,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[90,138,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[90,105,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[89,105,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[92,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[92,172,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[168,174,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,297],[91,148,149,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[94,153,154,155,156,157,158,159,160,161,162,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[89,90,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[89,94,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[89,93,94,95,96,146,147,150,151,152,163,164,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[94,97,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[92,93,94,95,96,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[94,95,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[89,90,91,92,93,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[94,95,97,142,144,168,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[142,143,144,145,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,292,296],[94,105,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[91,94,95,97,142,143,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[142,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[88,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,298,416],[88,180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,417],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,417],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,306],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,298,300],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,300,302,305,307],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,303,304],[180,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,301]],"options":{"allowUnreachableCode":false,"allowUnusedLabels":false,"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"isolatedDeclarations":true,"importHelpers":true,"module":199,"newLine":2,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"noUncheckedIndexedAccess":true,"noEmitOnError":true,"noUnusedLocals":true,"noUnusedParameters":true,"noImplicitOverride":true,"noUncheckedSideEffectImports":true,"outDir":"./","removeComments":false,"rootDir":"../src","skipLibCheck":true,"strict":true,"stripInternal":true,"skipDefaultLibCheck":false,"sourceMap":true,"target":99,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":true,"allowSyntheticDefaultImports":true,"esModuleInterop":true},"referencedMap":[[405,1],[410,2],[407,3],[406,4],[287,5],[286,6],[283,7],[288,8],[284,1],[226,9],[227,10],[228,11],[180,12],[229,13],[230,14],[231,15],[175,1],[178,16],[176,1],[177,1],[232,17],[233,18],[234,19],[235,20],[236,21],[237,22],[238,23],[239,24],[240,25],[241,26],[242,27],[181,1],[179,1],[243,28],[244,29],[245,30],[279,31],[246,32],[247,33],[248,34],[249,35],[250,36],[251,37],[252,38],[253,39],[254,40],[255,41],[256,42],[257,43],[258,44],[259,45],[260,46],[261,47],[263,48],[262,49],[264,50],[265,51],[266,52],[267,53],[268,54],[269,55],[270,56],[271,57],[272,58],[273,59],[274,60],[275,61],[276,62],[182,1],[183,1],[184,1],[222,63],[223,1],[224,1],[225,1],[277,64],[278,65],[281,1],[282,1],[280,6],[285,66],[293,6],[86,1],[87,1],[15,1],[14,1],[2,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[3,1],[24,1],[25,1],[4,1],[26,1],[30,1],[27,1],[28,1],[29,1],[31,1],[32,1],[33,1],[5,1],[34,1],[35,1],[36,1],[37,1],[6,1],[41,1],[38,1],[39,1],[40,1],[42,1],[7,1],[43,1],[48,1],[49,1],[44,1],[45,1],[46,1],[47,1],[8,1],[53,1],[50,1],[51,1],[52,1],[54,1],[9,1],[55,1],[56,1],[57,1],[59,1],[58,1],[60,1],[61,1],[10,1],[62,1],[63,1],[64,1],[11,1],[65,1],[66,1],[67,1],[68,1],[69,1],[70,1],[12,1],[71,1],[72,1],[73,1],[74,1],[75,1],[1,1],[76,1],[77,1],[13,1],[78,1],[79,1],[80,1],[81,1],[82,1],[83,1],[84,1],[85,1],[200,67],[210,68],[199,67],[220,69],[191,70],[190,1],[219,6],[213,71],[218,70],[193,72],[207,73],[192,74],[216,75],[188,76],[187,6],[217,77],[189,78],[194,68],[195,1],[198,68],[185,1],[221,79],[211,80],[202,81],[203,82],[205,83],[201,84],[204,85],[214,6],[196,86],[197,87],[206,88],[186,1],[209,80],[208,68],[212,1],[215,89],[395,90],[401,91],[396,91],[398,91],[392,90],[402,92],[397,93],[399,91],[403,94],[400,91],[393,95],[394,96],[388,97],[316,98],[387,99],[318,100],[386,1],[317,101],[391,102],[390,103],[389,104],[309,1],[320,105],[319,98],[321,1],[311,99],[315,106],[310,1],[312,107],[313,108],[314,1],[404,109],[322,110],[323,110],[324,110],[325,110],[326,110],[327,110],[328,110],[329,110],[330,110],[331,110],[332,110],[333,110],[334,110],[335,110],[336,110],[337,110],[339,110],[338,110],[340,110],[341,110],[342,110],[343,110],[344,110],[345,110],[346,110],[385,111],[347,110],[348,110],[349,110],[350,110],[351,110],[352,110],[353,110],[354,110],[355,110],[356,110],[357,110],[358,110],[359,110],[360,110],[361,110],[362,110],[364,110],[363,110],[366,110],[365,110],[367,110],[368,110],[369,110],[370,110],[371,110],[372,110],[373,110],[374,110],[375,110],[376,110],[377,110],[378,110],[379,110],[380,110],[381,110],[384,110],[382,110],[383,110],[416,112],[299,113],[415,113],[413,113],[414,113],[409,114],[412,115],[411,116],[408,117],[119,118],[118,119],[117,120],[292,121],[290,122],[291,123],[289,124],[111,1],[115,125],[113,126],[116,127],[112,125],[114,128],[122,129],[121,130],[120,131],[128,132],[129,133],[127,134],[126,126],[125,135],[124,136],[123,1],[296,137],[295,138],[294,139],[174,140],[171,141],[109,142],[110,143],[108,144],[107,145],[99,1],[101,146],[103,147],[102,1],[104,148],[100,149],[98,1],[141,150],[136,145],[131,145],[134,145],[106,151],[133,145],[135,145],[130,145],[132,145],[137,145],[170,152],[140,153],[105,154],[139,155],[138,156],[90,157],[172,158],[173,159],[92,1],[298,160],[96,144],[150,161],[149,144],[148,151],[91,1],[161,144],[157,144],[163,162],[154,1],[156,144],[162,144],[160,144],[155,1],[153,163],[158,144],[159,144],[164,144],[147,164],[151,144],[146,144],[165,165],[167,166],[97,167],[152,168],[166,144],[93,144],[95,144],[89,151],[94,169],[168,1],[169,170],[297,171],[145,172],[144,173],[143,174],[142,126],[88,1],[417,175],[418,176],[419,177],[307,178],[306,179],[308,180],[305,181],[303,113],[304,179],[302,182],[301,179],[300,113]],"latestChangedDtsFile":"./config.d.ts"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Configuration Loading
3
+ *
4
+ * Loads MCP server configuration from environment variables and CLI arguments.
5
+ */
6
+ export interface McpServerConfig {
7
+ /** Bundles to load (each must export /register.js) */
8
+ bundles: string[];
9
+ /** Server name for MCP protocol */
10
+ serverName: string;
11
+ /** Server version for MCP protocol */
12
+ serverVersion: string;
13
+ /** Enable debug logging */
14
+ debug: boolean;
15
+ /** The time limit of each tool call, in milliseconds. 0: no limit. */
16
+ toolTimeoutMs: number;
17
+ /**
18
+ * True: the tools are only the procedures that change nothing (`effects.writes` is empty), and
19
+ * each call operates with that capability (CAPABILITIES-2026-10).
20
+ */
21
+ readOnly?: boolean;
22
+ }
23
+ /**
24
+ * Load configuration from environment variables.
25
+ *
26
+ * Environment variables:
27
+ * - MCP_BUNDLES: Comma-separated list of bundles (default: "@procedures/bundle-mcp")
28
+ * - MCP_SERVER_NAME: Server name (default: "impl-mcp-dev")
29
+ * - MCP_SERVER_VERSION: Server version (default: "1.0.0")
30
+ * - MCP_DEBUG: Enable debug logging (default: "false")
31
+ * - MCP_TOOL_TIMEOUT_MS: The time limit of each tool call (default: 600000, 10 minutes; 0: no limit)
32
+ * - MCP_READ_ONLY: "true" or "1" gives only the tools that change nothing (default: false)
33
+ */
34
+ /** The default time limit of a tool call: a build or a test run can take minutes. */
35
+ export declare const DEFAULT_TOOL_TIMEOUT_MS = 600000;
36
+ /** The time limit from its environment variable. A value that is not a number gives the default. */
37
+ export declare function parseTimeout(value: string | undefined): number;
38
+ export declare function loadConfig(): McpServerConfig;
39
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,sEAAsE;IACtE,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,SAAU,CAAC;AAE/C,oGAAoG;AACpG,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAI9D;AAED,wBAAgB,UAAU,IAAI,eAAe,CAY5C"}
package/dist/config.js ADDED
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Configuration Loading
3
+ *
4
+ * Loads MCP server configuration from environment variables and CLI arguments.
5
+ */
6
+ /**
7
+ * Load configuration from environment variables.
8
+ *
9
+ * Environment variables:
10
+ * - MCP_BUNDLES: Comma-separated list of bundles (default: "@procedures/bundle-mcp")
11
+ * - MCP_SERVER_NAME: Server name (default: "impl-mcp-dev")
12
+ * - MCP_SERVER_VERSION: Server version (default: "1.0.0")
13
+ * - MCP_DEBUG: Enable debug logging (default: "false")
14
+ * - MCP_TOOL_TIMEOUT_MS: The time limit of each tool call (default: 600000, 10 minutes; 0: no limit)
15
+ * - MCP_READ_ONLY: "true" or "1" gives only the tools that change nothing (default: false)
16
+ */
17
+ /** The default time limit of a tool call: a build or a test run can take minutes. */
18
+ export const DEFAULT_TOOL_TIMEOUT_MS = 600_000;
19
+ /** The time limit from its environment variable. A value that is not a number gives the default. */
20
+ export function parseTimeout(value) {
21
+ if (value === undefined || value.trim() === "")
22
+ return DEFAULT_TOOL_TIMEOUT_MS;
23
+ const ms = Number(value);
24
+ return Number.isFinite(ms) && ms >= 0 ? ms : DEFAULT_TOOL_TIMEOUT_MS;
25
+ }
26
+ export function loadConfig() {
27
+ const bundlesEnv = process.env["MCP_BUNDLES"] ?? "@procedures/bundle-mcp";
28
+ const bundles = bundlesEnv.split(",").map((b) => b.trim()).filter(Boolean);
29
+ return {
30
+ bundles,
31
+ serverName: process.env["MCP_SERVER_NAME"] ?? "impl-mcp-dev",
32
+ serverVersion: process.env["MCP_SERVER_VERSION"] ?? "1.0.0",
33
+ debug: process.env["MCP_DEBUG"] === "true",
34
+ toolTimeoutMs: parseTimeout(process.env["MCP_TOOL_TIMEOUT_MS"]),
35
+ readOnly: process.env["MCP_READ_ONLY"] === "true" || process.env["MCP_READ_ONLY"] === "1",
36
+ };
37
+ }
38
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH;;;;;;;;;;GAUG;AACH,qFAAqF;AACrF,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAC;AAE/C,oGAAoG;AACpG,MAAM,UAAU,YAAY,CAAC,KAAyB;IACpD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,uBAAuB,CAAC;IAC/E,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,wBAAwB,CAAC;IAC1E,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE3E,OAAO;QACL,OAAO;QACP,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,cAAc;QAC5D,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,OAAO;QAC3D,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,MAAM;QAC1C,aAAa,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC/D,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,GAAG;KAC1F,CAAC;AACJ,CAAC"}
package/dist/host.d.ts ADDED
@@ -0,0 +1,42 @@
1
+ /**
2
+ * The dev-tools MCP host: its registry, its policy and its server (roadmap 2.3, 3.1).
3
+ *
4
+ * The host builds a registry of its own from the modules of its bundles (`<bundle>/module`), not
5
+ * from the global registry. Its policy comes from `hostPolicy()` of the core:
6
+ * - only the tool surface of the bundles is exposed (`mcpNamespaces` less `mcpExclude`);
7
+ * - `strictCalls`: a procedure of code that declares no nested calls calls only tools;
8
+ * - each tool call has a time limit.
9
+ *
10
+ * `server.ts` (the file in the MCP configuration of Claude Code) and `mark mcp` both start the
11
+ * server with `startDevToolsServer()`.
12
+ */
13
+ import { ProcedureServer, type HostPolicy, type ProcedureModule, type ProcedureRegistry, type ToolSurface } from "@procedures/client";
14
+ import { type BundleSurfaceModule } from "@procedures/mcp-server";
15
+ import { type McpServerConfig } from "./config.js";
16
+ /** The modules and the tool lists of some bundles. */
17
+ export interface LoadedBundles {
18
+ modules: ProcedureModule[];
19
+ surfaces: BundleSurfaceModule[];
20
+ /**
21
+ * True when a bundle has no `module` entry: the host then imports the `register.js` of each
22
+ * bundle and serves the global registry, as the server did before explicit registries.
23
+ */
24
+ global: boolean;
25
+ }
26
+ /** This function loads the module entry of each bundle (it registers nothing). */
27
+ export declare function loadBundles(bundles: readonly string[]): Promise<LoadedBundles>;
28
+ /** The registry, the surface, the policy and the server of the dev-tools host. */
29
+ export interface DevToolsHost {
30
+ registry: ProcedureRegistry;
31
+ surface: ToolSurface | undefined;
32
+ policy: HostPolicy;
33
+ server: ProcedureServer;
34
+ }
35
+ /** This function builds the host. It starts no transport. */
36
+ export declare function createDevToolsHost(config?: McpServerConfig): Promise<DevToolsHost>;
37
+ /**
38
+ * This function starts the dev-tools MCP server over stdio. stdout carries the protocol, so
39
+ * `console.log` goes to stderr from here on (BUGS-2026-07 Bug5).
40
+ */
41
+ export declare function startDevToolsServer(config?: McpServerConfig): Promise<DevToolsHost>;
42
+ //# sourceMappingURL=host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAEL,eAAe,EAQf,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAqC,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAO/D,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,kFAAkF;AAClF,wBAAsB,WAAW,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAgBpF;AAaD,kFAAkF;AAClF,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,6DAA6D;AAC7D,wBAAsB,kBAAkB,CAAC,MAAM,GAAE,eAA8B,GAAG,OAAO,CAAC,YAAY,CAAC,CAyBtG;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,GAAE,eAA8B,GAAG,OAAO,CAAC,YAAY,CAAC,CA6BvG"}
package/dist/host.js ADDED
@@ -0,0 +1,106 @@
1
+ /**
2
+ * The dev-tools MCP host: its registry, its policy and its server (roadmap 2.3, 3.1).
3
+ *
4
+ * The host builds a registry of its own from the modules of its bundles (`<bundle>/module`), not
5
+ * from the global registry. Its policy comes from `hostPolicy()` of the core:
6
+ * - only the tool surface of the bundles is exposed (`mcpNamespaces` less `mcpExclude`);
7
+ * - `strictCalls`: a procedure of code that declares no nested calls calls only tools;
8
+ * - each tool call has a time limit.
9
+ *
10
+ * `server.ts` (the file in the MCP configuration of Claude Code) and `mark mcp` both start the
11
+ * server with `startDevToolsServer()`.
12
+ */
13
+ import { PROCEDURE_REGISTRY, ProcedureServer, createRegistry, registerClientProcedures, capabilityRefusal, narrowCapability, surfaceRule, hostPolicy, procedureServerOptions, } from "@procedures/client";
14
+ import { McpServerTransport, mergeSurfaces } from "@procedures/mcp-server";
15
+ import { loadConfig } from "./config.js";
16
+ /** This function loads the module entry of each bundle (it registers nothing). */
17
+ export async function loadBundles(bundles) {
18
+ const modules = [];
19
+ const surfaces = [];
20
+ for (const bundle of bundles) {
21
+ let exports;
22
+ try {
23
+ // The import resolves from this package, which depends on its bundles
24
+ exports = (await import(`${bundle}/module`));
25
+ }
26
+ catch {
27
+ return loadBundlesGlobally(bundles);
28
+ }
29
+ if (!exports.default)
30
+ return loadBundlesGlobally(bundles);
31
+ modules.push(exports.default);
32
+ surfaces.push(exports);
33
+ }
34
+ return { modules, surfaces, global: false };
35
+ }
36
+ /** The old way, for a bundle without a module entry: import each `register.js`. */
37
+ async function loadBundlesGlobally(bundles) {
38
+ // The global registry gets the control flow only from this call (ARCHITECTURE-PROPOSALS-2026-10, P9)
39
+ registerClientProcedures();
40
+ const surfaces = [];
41
+ for (const bundle of bundles) {
42
+ surfaces.push((await import(`${bundle}/register.js`)));
43
+ }
44
+ return { modules: [], surfaces, global: true };
45
+ }
46
+ /** This function builds the host. It starts no transport. */
47
+ export async function createDevToolsHost(config = loadConfig()) {
48
+ const loaded = await loadBundles(config.bundles);
49
+ const registry = loaded.global ? PROCEDURE_REGISTRY : createRegistry(...loaded.modules);
50
+ // Bundles without mcpNamespaces say nothing about their tools: then every procedure is a tool
51
+ const surface = mergeSurfaces(loaded.surfaces);
52
+ // Read only: the tools are the procedures that the capability permits, so the list shows only
53
+ // what a call can start (CAPABILITIES-2026-10)
54
+ const readOnly = config.readOnly === true;
55
+ const capability = readOnly ? narrowCapability(undefined, { effects: { writes: [] } }) : undefined;
56
+ const surfaceExpose = surface ? surfaceRule(surface) : undefined;
57
+ const expose = capability
58
+ ? (path) => {
59
+ if (surfaceExpose && !surfaceExpose(path))
60
+ return false;
61
+ const procedure = registry.get(path);
62
+ return procedure !== undefined && capabilityRefusal(procedure, capability) === undefined;
63
+ }
64
+ : surface;
65
+ const policy = hostPolicy({
66
+ ...(expose ? { expose } : {}),
67
+ strictCalls: true,
68
+ timeoutMs: config.toolTimeoutMs,
69
+ ...(readOnly ? { readOnly: true } : {}),
70
+ });
71
+ const server = new ProcedureServer(procedureServerOptions(policy, registry));
72
+ return { registry, surface, policy, server };
73
+ }
74
+ /**
75
+ * This function starts the dev-tools MCP server over stdio. stdout carries the protocol, so
76
+ * `console.log` goes to stderr from here on (BUGS-2026-07 Bug5).
77
+ */
78
+ export async function startDevToolsServer(config = loadConfig()) {
79
+ // Defense-in-depth for the stdio transport: a stray console.log (from a procedure handler or a
80
+ // dependency) would corrupt the protocol. The MCP SDK writes its frames with
81
+ // process.stdout.write, so it is not affected.
82
+ console.log = (...args) => {
83
+ console.error(...args);
84
+ };
85
+ if (config.debug) {
86
+ console.error("[mcp-server] Starting with config:", JSON.stringify(config, null, 2));
87
+ }
88
+ const host = await createDevToolsHost(config);
89
+ const expose = host.policy.expose;
90
+ const transport = new McpServerTransport(host.server, {
91
+ transport: "stdio",
92
+ serverInfo: {
93
+ name: config.serverName,
94
+ version: config.serverVersion,
95
+ },
96
+ debug: config.debug,
97
+ ...(expose ? { toolFilter: { include: expose } } : {}),
98
+ });
99
+ host.server.addTransport(transport);
100
+ await host.server.start();
101
+ if (config.debug) {
102
+ console.error(`[mcp-server] Started with ${transport.getState().toolCount} tools`);
103
+ }
104
+ return host;
105
+ }
106
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,sBAAsB,GAKvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAA4B,MAAM,wBAAwB,CAAC;AACrG,OAAO,EAAE,UAAU,EAAwB,MAAM,aAAa,CAAC;AAkB/D,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA0B;IAC1D,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,OAA4B,CAAC;QACjC,IAAI,CAAC;YACH,sEAAsE;YACtE,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,CAAwB,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC9C,CAAC;AAED,mFAAmF;AACnF,KAAK,UAAU,mBAAmB,CAAC,OAA0B;IAC3D,qGAAqG;IACrG,wBAAwB,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,MAAM,cAAc,CAAC,CAAwB,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACjD,CAAC;AAUD,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAM,GAAoB,UAAU,EAAE;IAC7E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACxF,8FAA8F;IAC9F,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,8FAA8F;IAC9F,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnG,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,MAAM,MAAM,GAAG,UAAU;QACvB,CAAC,CAAC,CAAC,IAAc,EAAW,EAAE;YAC1B,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrC,OAAO,SAAS,KAAK,SAAS,IAAI,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,SAAS,CAAC;QAC3F,CAAC;QACH,CAAC,CAAC,OAAO,CAAC;IACZ,MAAM,MAAM,GAAG,UAAU,CAAC;QACxB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,aAAa;QAC/B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAM,GAAoB,UAAU,EAAE;IAC9E,+FAA+F;IAC/F,6EAA6E;IAC7E,+CAA+C;IAC/C,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAe,EAAQ,EAAE;QACzC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC;IACF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE;QACpD,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE;YACV,IAAI,EAAE,MAAM,CAAC,UAAU;YACvB,OAAO,EAAE,MAAM,CAAC,aAAa;SAC9B;QACD,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAE1B,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,6BAA6B,SAAS,CAAC,QAAQ,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @procedures/mcp-dev-tools (folder packages/impl-mcp-dev)
3
+ *
4
+ * Ready-to-use MCP server exposing the procedure ecosystem to Claude. Importing this entry
5
+ * starts nothing: `startDevToolsServer()` starts the server (as `dist/server.js` and `mark mcp`
6
+ * do), and `createDevToolsHost()` builds the host without a transport.
7
+ */
8
+ export { loadConfig, type McpServerConfig } from "./config.js";
9
+ export { createDevToolsHost, startDevToolsServer, loadBundles, type DevToolsHost, type LoadedBundles, } from "./host.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,WAAW,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @procedures/mcp-dev-tools (folder packages/impl-mcp-dev)
3
+ *
4
+ * Ready-to-use MCP server exposing the procedure ecosystem to Claude. Importing this entry
5
+ * starts nothing: `startDevToolsServer()` starts the server (as `dist/server.js` and `mark mcp`
6
+ * do), and `createDevToolsHost()` builds the host without a transport.
7
+ */
8
+ export { loadConfig } from "./config.js";
9
+ export { createDevToolsHost, startDevToolsServer, loadBundles, } from "./host.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAwB,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,GAGZ,MAAM,WAAW,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * MCP Server Entry Point
3
+ *
4
+ * Starts an MCP server that exposes procedures as tools to Claude Code and Claude Desktop. The
5
+ * MCP configuration of a client runs this file (`node packages/impl-mcp-dev/dist/server.js`).
6
+ * Configurable via environment variables (see `config.ts`). `mark mcp` starts the same server.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
package/dist/server.js ADDED
@@ -0,0 +1,13 @@
1
+ /**
2
+ * MCP Server Entry Point
3
+ *
4
+ * Starts an MCP server that exposes procedures as tools to Claude Code and Claude Desktop. The
5
+ * MCP configuration of a client runs this file (`node packages/impl-mcp-dev/dist/server.js`).
6
+ * Configurable via environment variables (see `config.ts`). `mark mcp` starts the same server.
7
+ */
8
+ import { startDevToolsServer } from "./host.js";
9
+ startDevToolsServer().catch((error) => {
10
+ console.error("[mcp-server] Fatal error:", error);
11
+ process.exit(1);
12
+ });
13
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,mBAAmB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACpC,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,73 @@
1
1
  {
2
+ "$schema": "https://json.schemastore.org/package",
2
3
  "name": "@procedures/mcp-dev-tools",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
4
+ "version": "0.2.0",
5
+ "description": "A ready-to-use MCP server for Claude Code and Claude Desktop: 62 developer tools (docker, mongo, sqlite, cue, vitest, workspace) with a strict call policy.",
6
+ "keywords": [
7
+ "mcp",
8
+ "model-context-protocol",
9
+ "claude",
10
+ "claude-code",
11
+ "mcp-server",
12
+ "developer-tools",
13
+ "ai-tools"
14
+ ],
15
+ "homepage": "https://mark1russell7.github.io/client/",
16
+ "bugs": {
17
+ "url": "https://github.com/mark1russell7/client/issues"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/mark1russell7/client.git",
22
+ "directory": "packages/impl-mcp-dev"
23
+ },
24
+ "license": "MIT",
25
+ "author": "Mark Russell (https://github.com/mark1russell7)",
26
+ "type": "module",
27
+ "main": "./dist/index.js",
28
+ "types": "./dist/index.d.ts",
29
+ "exports": {
30
+ ".": {
31
+ "types": "./dist/index.d.ts",
32
+ "import": "./dist/index.js"
33
+ }
34
+ },
35
+ "bin": {
36
+ "mcp-dev-tools": "./bin/mcp-server.js"
37
+ },
38
+ "files": [
39
+ "dist",
40
+ "src",
41
+ "bin",
42
+ "!src/**/*.test.ts",
43
+ "!src/**/*.test.tsx",
44
+ "!src/**/__tests__",
45
+ "CHANGELOG.md"
46
+ ],
47
+ "sideEffects": false,
48
+ "engines": {
49
+ "node": ">=22"
50
+ },
51
+ "publishConfig": {
52
+ "access": "public",
53
+ "provenance": true
54
+ },
55
+ "dependencies": {
56
+ "@procedures/bundle-mcp": "0.2.0",
57
+ "@procedures/client": "0.2.0",
58
+ "@procedures/mcp-server": "0.2.0"
59
+ },
60
+ "devDependencies": {
61
+ "typescript": "^7.0.2",
62
+ "@types/node": "^22.0.0",
63
+ "@mark1russell7/cue": "^1.0.0",
64
+ "vitest": "^5.0.3"
65
+ },
66
+ "scripts": {
67
+ "build": "tsc -b",
68
+ "typecheck": "tsc --noEmit",
69
+ "clean": "rm -rf dist .tsbuildinfo",
70
+ "test": "vitest run",
71
+ "test:watch": "vitest"
72
+ }
6
73
  }
package/src/config.ts ADDED
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Configuration Loading
3
+ *
4
+ * Loads MCP server configuration from environment variables and CLI arguments.
5
+ */
6
+
7
+ export interface McpServerConfig {
8
+ /** Bundles to load (each must export /register.js) */
9
+ bundles: string[];
10
+ /** Server name for MCP protocol */
11
+ serverName: string;
12
+ /** Server version for MCP protocol */
13
+ serverVersion: string;
14
+ /** Enable debug logging */
15
+ debug: boolean;
16
+ /** The time limit of each tool call, in milliseconds. 0: no limit. */
17
+ toolTimeoutMs: number;
18
+ /**
19
+ * True: the tools are only the procedures that change nothing (`effects.writes` is empty), and
20
+ * each call operates with that capability (CAPABILITIES-2026-10).
21
+ */
22
+ readOnly?: boolean;
23
+ }
24
+
25
+ /**
26
+ * Load configuration from environment variables.
27
+ *
28
+ * Environment variables:
29
+ * - MCP_BUNDLES: Comma-separated list of bundles (default: "@procedures/bundle-mcp")
30
+ * - MCP_SERVER_NAME: Server name (default: "impl-mcp-dev")
31
+ * - MCP_SERVER_VERSION: Server version (default: "1.0.0")
32
+ * - MCP_DEBUG: Enable debug logging (default: "false")
33
+ * - MCP_TOOL_TIMEOUT_MS: The time limit of each tool call (default: 600000, 10 minutes; 0: no limit)
34
+ * - MCP_READ_ONLY: "true" or "1" gives only the tools that change nothing (default: false)
35
+ */
36
+ /** The default time limit of a tool call: a build or a test run can take minutes. */
37
+ export const DEFAULT_TOOL_TIMEOUT_MS = 600_000;
38
+
39
+ /** The time limit from its environment variable. A value that is not a number gives the default. */
40
+ export function parseTimeout(value: string | undefined): number {
41
+ if (value === undefined || value.trim() === "") return DEFAULT_TOOL_TIMEOUT_MS;
42
+ const ms = Number(value);
43
+ return Number.isFinite(ms) && ms >= 0 ? ms : DEFAULT_TOOL_TIMEOUT_MS;
44
+ }
45
+
46
+ export function loadConfig(): McpServerConfig {
47
+ const bundlesEnv = process.env["MCP_BUNDLES"] ?? "@procedures/bundle-mcp";
48
+ const bundles = bundlesEnv.split(",").map((b) => b.trim()).filter(Boolean);
49
+
50
+ return {
51
+ bundles,
52
+ serverName: process.env["MCP_SERVER_NAME"] ?? "impl-mcp-dev",
53
+ serverVersion: process.env["MCP_SERVER_VERSION"] ?? "1.0.0",
54
+ debug: process.env["MCP_DEBUG"] === "true",
55
+ toolTimeoutMs: parseTimeout(process.env["MCP_TOOL_TIMEOUT_MS"]),
56
+ readOnly: process.env["MCP_READ_ONLY"] === "true" || process.env["MCP_READ_ONLY"] === "1",
57
+ };
58
+ }
package/src/host.ts ADDED
@@ -0,0 +1,147 @@
1
+ /**
2
+ * The dev-tools MCP host: its registry, its policy and its server (roadmap 2.3, 3.1).
3
+ *
4
+ * The host builds a registry of its own from the modules of its bundles (`<bundle>/module`), not
5
+ * from the global registry. Its policy comes from `hostPolicy()` of the core:
6
+ * - only the tool surface of the bundles is exposed (`mcpNamespaces` less `mcpExclude`);
7
+ * - `strictCalls`: a procedure of code that declares no nested calls calls only tools;
8
+ * - each tool call has a time limit.
9
+ *
10
+ * `server.ts` (the file in the MCP configuration of Claude Code) and `mark mcp` both start the
11
+ * server with `startDevToolsServer()`.
12
+ */
13
+
14
+ import {
15
+ PROCEDURE_REGISTRY,
16
+ ProcedureServer,
17
+ createRegistry,
18
+ registerClientProcedures,
19
+ capabilityRefusal,
20
+ narrowCapability,
21
+ surfaceRule,
22
+ hostPolicy,
23
+ procedureServerOptions,
24
+ type HostPolicy,
25
+ type ProcedureModule,
26
+ type ProcedureRegistry,
27
+ type ToolSurface,
28
+ } from "@procedures/client";
29
+ import { McpServerTransport, mergeSurfaces, type BundleSurfaceModule } from "@procedures/mcp-server";
30
+ import { loadConfig, type McpServerConfig } from "./config.js";
31
+
32
+ /** The exports of a bundle's `module` entry: its module and the lists of its tools. */
33
+ interface BundleModuleExports extends BundleSurfaceModule {
34
+ default?: ProcedureModule;
35
+ }
36
+
37
+ /** The modules and the tool lists of some bundles. */
38
+ export interface LoadedBundles {
39
+ modules: ProcedureModule[];
40
+ surfaces: BundleSurfaceModule[];
41
+ /**
42
+ * True when a bundle has no `module` entry: the host then imports the `register.js` of each
43
+ * bundle and serves the global registry, as the server did before explicit registries.
44
+ */
45
+ global: boolean;
46
+ }
47
+
48
+ /** This function loads the module entry of each bundle (it registers nothing). */
49
+ export async function loadBundles(bundles: readonly string[]): Promise<LoadedBundles> {
50
+ const modules: ProcedureModule[] = [];
51
+ const surfaces: BundleSurfaceModule[] = [];
52
+ for (const bundle of bundles) {
53
+ let exports: BundleModuleExports;
54
+ try {
55
+ // The import resolves from this package, which depends on its bundles
56
+ exports = (await import(`${bundle}/module`)) as BundleModuleExports;
57
+ } catch {
58
+ return loadBundlesGlobally(bundles);
59
+ }
60
+ if (!exports.default) return loadBundlesGlobally(bundles);
61
+ modules.push(exports.default);
62
+ surfaces.push(exports);
63
+ }
64
+ return { modules, surfaces, global: false };
65
+ }
66
+
67
+ /** The old way, for a bundle without a module entry: import each `register.js`. */
68
+ async function loadBundlesGlobally(bundles: readonly string[]): Promise<LoadedBundles> {
69
+ // The global registry gets the control flow only from this call (ARCHITECTURE-PROPOSALS-2026-10, P9)
70
+ registerClientProcedures();
71
+ const surfaces: BundleSurfaceModule[] = [];
72
+ for (const bundle of bundles) {
73
+ surfaces.push((await import(`${bundle}/register.js`)) as BundleSurfaceModule);
74
+ }
75
+ return { modules: [], surfaces, global: true };
76
+ }
77
+
78
+ /** The registry, the surface, the policy and the server of the dev-tools host. */
79
+ export interface DevToolsHost {
80
+ registry: ProcedureRegistry;
81
+ surface: ToolSurface | undefined;
82
+ policy: HostPolicy;
83
+ server: ProcedureServer;
84
+ }
85
+
86
+ /** This function builds the host. It starts no transport. */
87
+ export async function createDevToolsHost(config: McpServerConfig = loadConfig()): Promise<DevToolsHost> {
88
+ const loaded = await loadBundles(config.bundles);
89
+ const registry = loaded.global ? PROCEDURE_REGISTRY : createRegistry(...loaded.modules);
90
+ // Bundles without mcpNamespaces say nothing about their tools: then every procedure is a tool
91
+ const surface = mergeSurfaces(loaded.surfaces);
92
+ // Read only: the tools are the procedures that the capability permits, so the list shows only
93
+ // what a call can start (CAPABILITIES-2026-10)
94
+ const readOnly = config.readOnly === true;
95
+ const capability = readOnly ? narrowCapability(undefined, { effects: { writes: [] } }) : undefined;
96
+ const surfaceExpose = surface ? surfaceRule(surface) : undefined;
97
+ const expose = capability
98
+ ? (path: string[]): boolean => {
99
+ if (surfaceExpose && !surfaceExpose(path)) return false;
100
+ const procedure = registry.get(path);
101
+ return procedure !== undefined && capabilityRefusal(procedure, capability) === undefined;
102
+ }
103
+ : surface;
104
+ const policy = hostPolicy({
105
+ ...(expose ? { expose } : {}),
106
+ strictCalls: true,
107
+ timeoutMs: config.toolTimeoutMs,
108
+ ...(readOnly ? { readOnly: true } : {}),
109
+ });
110
+ const server = new ProcedureServer(procedureServerOptions(policy, registry));
111
+ return { registry, surface, policy, server };
112
+ }
113
+
114
+ /**
115
+ * This function starts the dev-tools MCP server over stdio. stdout carries the protocol, so
116
+ * `console.log` goes to stderr from here on (BUGS-2026-07 Bug5).
117
+ */
118
+ export async function startDevToolsServer(config: McpServerConfig = loadConfig()): Promise<DevToolsHost> {
119
+ // Defense-in-depth for the stdio transport: a stray console.log (from a procedure handler or a
120
+ // dependency) would corrupt the protocol. The MCP SDK writes its frames with
121
+ // process.stdout.write, so it is not affected.
122
+ console.log = (...args: unknown[]): void => {
123
+ console.error(...args);
124
+ };
125
+ if (config.debug) {
126
+ console.error("[mcp-server] Starting with config:", JSON.stringify(config, null, 2));
127
+ }
128
+
129
+ const host = await createDevToolsHost(config);
130
+ const expose = host.policy.expose;
131
+ const transport = new McpServerTransport(host.server, {
132
+ transport: "stdio",
133
+ serverInfo: {
134
+ name: config.serverName,
135
+ version: config.serverVersion,
136
+ },
137
+ debug: config.debug,
138
+ ...(expose ? { toolFilter: { include: expose } } : {}),
139
+ });
140
+ host.server.addTransport(transport);
141
+ await host.server.start();
142
+
143
+ if (config.debug) {
144
+ console.error(`[mcp-server] Started with ${transport.getState().toolCount} tools`);
145
+ }
146
+ return host;
147
+ }
package/src/index.ts ADDED
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @procedures/mcp-dev-tools (folder packages/impl-mcp-dev)
3
+ *
4
+ * Ready-to-use MCP server exposing the procedure ecosystem to Claude. Importing this entry
5
+ * starts nothing: `startDevToolsServer()` starts the server (as `dist/server.js` and `mark mcp`
6
+ * do), and `createDevToolsHost()` builds the host without a transport.
7
+ */
8
+
9
+ export { loadConfig, type McpServerConfig } from "./config.js";
10
+ export {
11
+ createDevToolsHost,
12
+ startDevToolsServer,
13
+ loadBundles,
14
+ type DevToolsHost,
15
+ type LoadedBundles,
16
+ } from "./host.js";
package/src/server.ts ADDED
@@ -0,0 +1,14 @@
1
+ /**
2
+ * MCP Server Entry Point
3
+ *
4
+ * Starts an MCP server that exposes procedures as tools to Claude Code and Claude Desktop. The
5
+ * MCP configuration of a client runs this file (`node packages/impl-mcp-dev/dist/server.js`).
6
+ * Configurable via environment variables (see `config.ts`). `mark mcp` starts the same server.
7
+ */
8
+
9
+ import { startDevToolsServer } from "./host.js";
10
+
11
+ startDevToolsServer().catch((error) => {
12
+ console.error("[mcp-server] Fatal error:", error);
13
+ process.exit(1);
14
+ });