@darkiceinteractive/mcp-conductor 3.0.0-beta.1 → 3.1.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -307
- package/dist/bridge/http-server.d.ts +9 -0
- package/dist/bridge/http-server.d.ts.map +1 -1
- package/dist/bridge/http-server.js +32 -5
- package/dist/bridge/http-server.js.map +1 -1
- package/dist/cache/cache.d.ts +21 -0
- package/dist/cache/cache.d.ts.map +1 -1
- package/dist/cache/cache.js +44 -2
- package/dist/cache/cache.js.map +1 -1
- package/dist/cache/disk.d.ts.map +1 -1
- package/dist/cache/disk.js +36 -3
- package/dist/cache/disk.js.map +1 -1
- package/dist/cli/commands/import-servers.d.ts +12 -1
- package/dist/cli/commands/import-servers.d.ts.map +1 -1
- package/dist/cli/commands/import-servers.js +40 -3
- package/dist/cli/commands/import-servers.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +1 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/schema.d.ts +7 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/daemon/client.d.ts +2 -0
- package/dist/daemon/client.d.ts.map +1 -1
- package/dist/daemon/client.js +30 -9
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/server.d.ts +9 -0
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +109 -16
- package/dist/daemon/server.js.map +1 -1
- package/dist/metrics/index.d.ts +1 -1
- package/dist/metrics/index.d.ts.map +1 -1
- package/dist/metrics/index.js +1 -1
- package/dist/metrics/index.js.map +1 -1
- package/dist/metrics/metrics-collector.d.ts +120 -0
- package/dist/metrics/metrics-collector.d.ts.map +1 -1
- package/dist/metrics/metrics-collector.js +136 -0
- package/dist/metrics/metrics-collector.js.map +1 -1
- package/dist/runtime/executor.d.ts.map +1 -1
- package/dist/runtime/executor.js +45 -2
- package/dist/runtime/executor.js.map +1 -1
- package/dist/runtime/pool/recycle.d.ts +8 -2
- package/dist/runtime/pool/recycle.d.ts.map +1 -1
- package/dist/runtime/pool/recycle.js.map +1 -1
- package/dist/runtime/pool/worker-pool.d.ts.map +1 -1
- package/dist/runtime/pool/worker-pool.js +17 -10
- package/dist/runtime/pool/worker-pool.js.map +1 -1
- package/dist/runtime/pool/worker.d.ts +7 -1
- package/dist/runtime/pool/worker.d.ts.map +1 -1
- package/dist/runtime/pool/worker.js +9 -1
- package/dist/runtime/pool/worker.js.map +1 -1
- package/dist/server/mcp-server.d.ts +17 -3
- package/dist/server/mcp-server.d.ts.map +1 -1
- package/dist/server/mcp-server.js +133 -26
- package/dist/server/mcp-server.js.map +1 -1
- package/dist/server/passthrough-registrar.d.ts +55 -5
- package/dist/server/passthrough-registrar.d.ts.map +1 -1
- package/dist/server/passthrough-registrar.js +104 -15
- package/dist/server/passthrough-registrar.js.map +1 -1
- package/dist/utils/tokenize.d.ts +8 -0
- package/dist/utils/tokenize.d.ts.map +1 -1
- package/dist/utils/tokenize.js +8 -0
- package/dist/utils/tokenize.js.map +1 -1
- package/dist/version.d.ts +3 -3
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +3 -3
- package/dist/version.js.map +1 -1
- package/package.json +22 -3
|
@@ -55,6 +55,53 @@ export interface McpHubLike {
|
|
|
55
55
|
* Format: `<server>__<tool>` (double underscore separator).
|
|
56
56
|
*/
|
|
57
57
|
export declare function buildPassthroughToolName(server: string, tool: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Heuristic infer of MCP ToolAnnotations from a tool's name (HIGH-4 fix).
|
|
60
|
+
*
|
|
61
|
+
* MCP tool names overwhelmingly put verbs as prefixes (`delete_repository`,
|
|
62
|
+
* `read_file`, `list_issues`). The matcher is therefore prefix-based with a
|
|
63
|
+
* small suffix safety net for less-common name styles.
|
|
64
|
+
*
|
|
65
|
+
* Pattern groups (case-insensitive):
|
|
66
|
+
* - **destructive** verbs that mutate or remove state. Prefix:
|
|
67
|
+
* `delete_`, `remove_`, `create_`, `update_`, `send_`, `post_`, `put_`,
|
|
68
|
+
* `patch_`, `drop_`, `kill_`, `terminate_`, `revoke_`, `destroy_`,
|
|
69
|
+
* `set_`, `activate_`, `deactivate_`, `enable_`, `disable_`, `cancel_`.
|
|
70
|
+
* Suffix safety net: `_delete`, `_remove`, `_destroy`.
|
|
71
|
+
* → `{ readOnlyHint: false, destructiveHint: true, idempotentHint: false }`
|
|
72
|
+
* - **mutating but recoverable** verbs (write/save/upload):
|
|
73
|
+
* Prefix `save_`, `write_`, `upload_`; suffix `_save`, `_write`, `_upload`.
|
|
74
|
+
* → `{ readOnlyHint: false, destructiveHint: false, idempotentHint: false }`
|
|
75
|
+
* - **read-safe** (default): `get_`, `list_`, `search_`, `query_`, `read_`,
|
|
76
|
+
* `fetch_`, `find_`, `count_`, `check_`, plus everything that doesn't
|
|
77
|
+
* match the above.
|
|
78
|
+
* → `{ readOnlyHint: true, destructiveHint: false, idempotentHint: true }`
|
|
79
|
+
*
|
|
80
|
+
* `openWorldHint` defaults to `false` for all (passthrough tools are bounded
|
|
81
|
+
* by the upstream MCP server's tool surface).
|
|
82
|
+
*
|
|
83
|
+
* False negatives (a non-obvious destructive name marked safe) require an
|
|
84
|
+
* explicit upstream annotation; the deferred Phase-1 typegen extension will
|
|
85
|
+
* close that gap by carrying upstream annotations through `ToolDefinition`.
|
|
86
|
+
*/
|
|
87
|
+
export declare function inferAnnotationsFromName(toolName: string): {
|
|
88
|
+
readOnlyHint: boolean;
|
|
89
|
+
destructiveHint: boolean;
|
|
90
|
+
idempotentHint: boolean;
|
|
91
|
+
openWorldHint: boolean;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Conductor built-in tool names that are always registered by
|
|
95
|
+
* `MCPExecutorServer.registerTools()`. Any passthrough tool whose composed
|
|
96
|
+
* name matches one of these entries will be skipped to prevent duplicate-
|
|
97
|
+
* registration errors at the SDK level (CODE-LOW-4).
|
|
98
|
+
*
|
|
99
|
+
* Keep this set in sync with the `this.server.registerTool(name, ...)` calls
|
|
100
|
+
* in `mcp-server.ts`. The check uses the raw composed name (`server__tool`
|
|
101
|
+
* form) so a plain backend tool named `brave_web_search` registered under any
|
|
102
|
+
* server would collide with the conductor built-in of the same name.
|
|
103
|
+
*/
|
|
104
|
+
export declare const STATIC_TOOL_NAMES: ReadonlySet<string>;
|
|
58
105
|
/**
|
|
59
106
|
* Register all `routing: "passthrough"` tools from the registry as
|
|
60
107
|
* first-class MCP tools on `mcpServer`.
|
|
@@ -64,10 +111,13 @@ export declare function buildPassthroughToolName(server: string, tool: string):
|
|
|
64
111
|
* same server instance the SDK will throw a duplicate-name error, so callers
|
|
65
112
|
* must ensure it runs only once per server lifecycle.
|
|
66
113
|
*
|
|
67
|
-
* @param registry
|
|
68
|
-
* @param mcpServer
|
|
69
|
-
* @param mcpHub
|
|
70
|
-
* @
|
|
114
|
+
* @param registry Populated ToolRegistry (after `refresh()` has been called).
|
|
115
|
+
* @param mcpServer The McpServer instance to register tools on.
|
|
116
|
+
* @param mcpHub The MCPHub used to forward tool calls to backends.
|
|
117
|
+
* @param excludeNames Additional composed names to skip beyond the built-in
|
|
118
|
+
* {@link STATIC_TOOL_NAMES} set (e.g. names already
|
|
119
|
+
* registered by a previous call).
|
|
120
|
+
* @returns The number of passthrough tools registered.
|
|
71
121
|
*/
|
|
72
|
-
export declare function registerPassthroughTools(registry: ToolRegistry, mcpServer: McpServerLike, mcpHub: McpHubLike): number;
|
|
122
|
+
export declare function registerPassthroughTools(registry: ToolRegistry, mcpServer: McpServerLike, mcpHub: McpHubLike, excludeNames?: ReadonlySet<string>): number;
|
|
73
123
|
//# sourceMappingURL=passthrough-registrar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passthrough-registrar.d.ts","sourceRoot":"","sources":["../../src/server/passthrough-registrar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE;YACZ,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,eAAe,CAAC,EAAE,OAAO,CAAC;YAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,aAAa,CAAC,EAAE,OAAO,CAAC;SACzB,CAAC;QACF,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC,EACD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QACpD,OAAO,EAAE,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC7C,CAAC,GACD,IAAI,CAAC;CACT;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAWD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED
|
|
1
|
+
{"version":3,"file":"passthrough-registrar.d.ts","sourceRoot":"","sources":["../../src/server/passthrough-registrar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE;YACZ,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,eAAe,CAAC,EAAE,OAAO,CAAC;YAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,aAAa,CAAC,EAAE,OAAO,CAAC;SACzB,CAAC;QACF,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC,EACD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QACpD,OAAO,EAAE,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC7C,CAAC,GACD,IAAI,CAAC;CACT;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAWD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAC1D,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;CACxB,CAoBA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAyBhD,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,UAAU,EAClB,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GACjC,MAAM,CAqFR"}
|
|
@@ -36,6 +36,89 @@ function sanitiseSegment(segment) {
|
|
|
36
36
|
export function buildPassthroughToolName(server, tool) {
|
|
37
37
|
return `${sanitiseSegment(server)}__${sanitiseSegment(tool)}`;
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Heuristic infer of MCP ToolAnnotations from a tool's name (HIGH-4 fix).
|
|
41
|
+
*
|
|
42
|
+
* MCP tool names overwhelmingly put verbs as prefixes (`delete_repository`,
|
|
43
|
+
* `read_file`, `list_issues`). The matcher is therefore prefix-based with a
|
|
44
|
+
* small suffix safety net for less-common name styles.
|
|
45
|
+
*
|
|
46
|
+
* Pattern groups (case-insensitive):
|
|
47
|
+
* - **destructive** verbs that mutate or remove state. Prefix:
|
|
48
|
+
* `delete_`, `remove_`, `create_`, `update_`, `send_`, `post_`, `put_`,
|
|
49
|
+
* `patch_`, `drop_`, `kill_`, `terminate_`, `revoke_`, `destroy_`,
|
|
50
|
+
* `set_`, `activate_`, `deactivate_`, `enable_`, `disable_`, `cancel_`.
|
|
51
|
+
* Suffix safety net: `_delete`, `_remove`, `_destroy`.
|
|
52
|
+
* → `{ readOnlyHint: false, destructiveHint: true, idempotentHint: false }`
|
|
53
|
+
* - **mutating but recoverable** verbs (write/save/upload):
|
|
54
|
+
* Prefix `save_`, `write_`, `upload_`; suffix `_save`, `_write`, `_upload`.
|
|
55
|
+
* → `{ readOnlyHint: false, destructiveHint: false, idempotentHint: false }`
|
|
56
|
+
* - **read-safe** (default): `get_`, `list_`, `search_`, `query_`, `read_`,
|
|
57
|
+
* `fetch_`, `find_`, `count_`, `check_`, plus everything that doesn't
|
|
58
|
+
* match the above.
|
|
59
|
+
* → `{ readOnlyHint: true, destructiveHint: false, idempotentHint: true }`
|
|
60
|
+
*
|
|
61
|
+
* `openWorldHint` defaults to `false` for all (passthrough tools are bounded
|
|
62
|
+
* by the upstream MCP server's tool surface).
|
|
63
|
+
*
|
|
64
|
+
* False negatives (a non-obvious destructive name marked safe) require an
|
|
65
|
+
* explicit upstream annotation; the deferred Phase-1 typegen extension will
|
|
66
|
+
* close that gap by carrying upstream annotations through `ToolDefinition`.
|
|
67
|
+
*/
|
|
68
|
+
export function inferAnnotationsFromName(toolName) {
|
|
69
|
+
const name = toolName.toLowerCase();
|
|
70
|
+
// Destructive: mutate or remove
|
|
71
|
+
const destructivePrefix = /^(delete_|remove_|create_|update_|send_|post_|put_|patch_|drop_|kill_|terminate_|revoke_|destroy_|set_|activate_|deactivate_|enable_|disable_|cancel_)/;
|
|
72
|
+
const destructiveSuffix = /(_delete|_remove|_destroy)$/;
|
|
73
|
+
if (destructivePrefix.test(name) || destructiveSuffix.test(name)) {
|
|
74
|
+
return { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: false };
|
|
75
|
+
}
|
|
76
|
+
// Mutating but not destructive
|
|
77
|
+
const mutatingPrefix = /^(save_|write_|upload_)/;
|
|
78
|
+
const mutatingSuffix = /(_save|_write|_upload)$/;
|
|
79
|
+
if (mutatingPrefix.test(name) || mutatingSuffix.test(name)) {
|
|
80
|
+
return { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false };
|
|
81
|
+
}
|
|
82
|
+
// Default: read-safe
|
|
83
|
+
return { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Conductor built-in tool names that are always registered by
|
|
87
|
+
* `MCPExecutorServer.registerTools()`. Any passthrough tool whose composed
|
|
88
|
+
* name matches one of these entries will be skipped to prevent duplicate-
|
|
89
|
+
* registration errors at the SDK level (CODE-LOW-4).
|
|
90
|
+
*
|
|
91
|
+
* Keep this set in sync with the `this.server.registerTool(name, ...)` calls
|
|
92
|
+
* in `mcp-server.ts`. The check uses the raw composed name (`server__tool`
|
|
93
|
+
* form) so a plain backend tool named `brave_web_search` registered under any
|
|
94
|
+
* server would collide with the conductor built-in of the same name.
|
|
95
|
+
*/
|
|
96
|
+
export const STATIC_TOOL_NAMES = new Set([
|
|
97
|
+
'execute_code',
|
|
98
|
+
'list_servers',
|
|
99
|
+
'discover_tools',
|
|
100
|
+
'get_metrics',
|
|
101
|
+
'set_mode',
|
|
102
|
+
'reload_servers',
|
|
103
|
+
'get_capabilities',
|
|
104
|
+
'compare_modes',
|
|
105
|
+
'passthrough_call',
|
|
106
|
+
'brave_web_search',
|
|
107
|
+
'add_server',
|
|
108
|
+
'remove_server',
|
|
109
|
+
'update_server',
|
|
110
|
+
'get_memory_stats',
|
|
111
|
+
'predict_cost',
|
|
112
|
+
'get_hot_paths',
|
|
113
|
+
'record_session',
|
|
114
|
+
'stop_recording',
|
|
115
|
+
'replay_session',
|
|
116
|
+
'import_servers_from_claude',
|
|
117
|
+
'test_server',
|
|
118
|
+
'diagnose_server',
|
|
119
|
+
'recommend_routing',
|
|
120
|
+
'export_to_claude',
|
|
121
|
+
]);
|
|
39
122
|
/**
|
|
40
123
|
* Register all `routing: "passthrough"` tools from the registry as
|
|
41
124
|
* first-class MCP tools on `mcpServer`.
|
|
@@ -45,12 +128,15 @@ export function buildPassthroughToolName(server, tool) {
|
|
|
45
128
|
* same server instance the SDK will throw a duplicate-name error, so callers
|
|
46
129
|
* must ensure it runs only once per server lifecycle.
|
|
47
130
|
*
|
|
48
|
-
* @param registry
|
|
49
|
-
* @param mcpServer
|
|
50
|
-
* @param mcpHub
|
|
51
|
-
* @
|
|
131
|
+
* @param registry Populated ToolRegistry (after `refresh()` has been called).
|
|
132
|
+
* @param mcpServer The McpServer instance to register tools on.
|
|
133
|
+
* @param mcpHub The MCPHub used to forward tool calls to backends.
|
|
134
|
+
* @param excludeNames Additional composed names to skip beyond the built-in
|
|
135
|
+
* {@link STATIC_TOOL_NAMES} set (e.g. names already
|
|
136
|
+
* registered by a previous call).
|
|
137
|
+
* @returns The number of passthrough tools registered.
|
|
52
138
|
*/
|
|
53
|
-
export function registerPassthroughTools(registry, mcpServer, mcpHub) {
|
|
139
|
+
export function registerPassthroughTools(registry, mcpServer, mcpHub, excludeNames) {
|
|
54
140
|
const tools = registry.getAllTools();
|
|
55
141
|
let registered = 0;
|
|
56
142
|
for (const tool of tools) {
|
|
@@ -58,6 +144,11 @@ export function registerPassthroughTools(registry, mcpServer, mcpHub) {
|
|
|
58
144
|
continue;
|
|
59
145
|
}
|
|
60
146
|
const composedName = buildPassthroughToolName(tool.server, tool.name);
|
|
147
|
+
// Skip names that collide with conductor built-ins or caller exclusions (CODE-LOW-4).
|
|
148
|
+
if (STATIC_TOOL_NAMES.has(composedName) || excludeNames?.has(composedName)) {
|
|
149
|
+
logger.warn(`Passthrough registrar: skipping '${composedName}' — name conflicts with a statically-registered tool`, { server: tool.server, tool: tool.name });
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
61
152
|
// Build an inputSchema for the SDK from the tool's JSON Schema properties.
|
|
62
153
|
// Each property is typed as z.unknown() (required) or z.unknown().optional()
|
|
63
154
|
// so the SDK validates presence of required fields while accepting any value.
|
|
@@ -71,16 +162,14 @@ export function registerPassthroughTools(registry, mcpServer, mcpHub) {
|
|
|
71
162
|
: z.unknown().optional();
|
|
72
163
|
}
|
|
73
164
|
}
|
|
74
|
-
//
|
|
75
|
-
// The registry does not yet carry upstream MCP ToolAnnotations (
|
|
76
|
-
// Phase 1 typegen
|
|
77
|
-
//
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
openWorldHint: false,
|
|
83
|
-
};
|
|
165
|
+
// Derive annotations from tool name pattern (HIGH-4 safety fix).
|
|
166
|
+
// The registry does not yet carry upstream MCP ToolAnnotations (deferred to
|
|
167
|
+
// a Phase 1 typegen extension), so name-pattern heuristics are the conservative
|
|
168
|
+
// middle ground: destructive-looking names are flagged so Claude can reason
|
|
169
|
+
// about safety. False negatives (a non-obvious destructive name registered as
|
|
170
|
+
// safe) require an explicit upstream annotation; the deferred typegen will
|
|
171
|
+
// close that gap.
|
|
172
|
+
const annotations = inferAnnotationsFromName(tool.name);
|
|
84
173
|
// Capture loop variables for the async handler closure.
|
|
85
174
|
const toolServer = tool.server;
|
|
86
175
|
const toolName = tool.name;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passthrough-registrar.js","sourceRoot":"","sources":["../../src/server/passthrough-registrar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAyC3C;;;;GAIG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,OAAO,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAc,EAAE,IAAY;IACnE,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;AAChE,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"passthrough-registrar.js","sourceRoot":"","sources":["../../src/server/passthrough-registrar.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/tokenize.d.ts
CHANGED
|
@@ -39,6 +39,14 @@ export interface TokenizeResult {
|
|
|
39
39
|
* - If the same literal appears twice it receives the same token
|
|
40
40
|
* (idempotent within one call).
|
|
41
41
|
*
|
|
42
|
+
* **Token stability — IMPORTANT (B12):** Tokens are scoped to a single call
|
|
43
|
+
* and are NOT stable across calls. `[EMAIL_1]` produced in call A may refer
|
|
44
|
+
* to a completely different email address than `[EMAIL_1]` produced in call B,
|
|
45
|
+
* because the per-label counter resets on every invocation and matching order
|
|
46
|
+
* can differ. Never store, compare, or cache tokens across `execute_code`
|
|
47
|
+
* invocations. Use the `reverseMap` returned from the same call to detokenize
|
|
48
|
+
* within that call only.
|
|
49
|
+
*
|
|
42
50
|
* @param value The data returned by an MCP tool.
|
|
43
51
|
* @param matchers Array of built-in matcher names (e.g. `['email','phone']`).
|
|
44
52
|
* Unknown names are silently ignored (future-proof for inline-regex extension).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../src/utils/tokenize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,OAAO,GACP,KAAK,GACL,aAAa,GACb,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,MAAM,CAAC;AAwIxD,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED
|
|
1
|
+
{"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../src/utils/tokenize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,OAAO,GACP,KAAK,GACL,aAAa,GACb,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,MAAM,CAAC;AAwIxD,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,GACrC,cAAc,CA+DhB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC3C,MAAM,GAAG,SAAS,CAEpB"}
|
package/dist/utils/tokenize.js
CHANGED
|
@@ -129,6 +129,14 @@ const BUILTIN_MATCHERS = {
|
|
|
129
129
|
* - If the same literal appears twice it receives the same token
|
|
130
130
|
* (idempotent within one call).
|
|
131
131
|
*
|
|
132
|
+
* **Token stability — IMPORTANT (B12):** Tokens are scoped to a single call
|
|
133
|
+
* and are NOT stable across calls. `[EMAIL_1]` produced in call A may refer
|
|
134
|
+
* to a completely different email address than `[EMAIL_1]` produced in call B,
|
|
135
|
+
* because the per-label counter resets on every invocation and matching order
|
|
136
|
+
* can differ. Never store, compare, or cache tokens across `execute_code`
|
|
137
|
+
* invocations. Use the `reverseMap` returned from the same call to detokenize
|
|
138
|
+
* within that call only.
|
|
139
|
+
*
|
|
132
140
|
* @param value The data returned by an MCP tool.
|
|
133
141
|
* @param matchers Array of built-in matcher names (e.g. `['email','phone']`).
|
|
134
142
|
* Unknown names are silently ignored (future-proof for inline-regex extension).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../../src/utils/tokenize.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../../src/utils/tokenize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAiBH,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,MAAM,YAAY,GAAuC;IACvD,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;IACV,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,gFAAgF;AAChF,0CAA0C;AAC1C,gFAAgF;AAEhF,SAAS,SAAS,CAAC,MAAc;IAC/B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,SAAS,EAAE,CAAC;YACd,CAAC,IAAI,CAAC,CAAC;YACP,IAAI,CAAC,GAAG,CAAC;gBAAE,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,GAAG,IAAI,CAAC,CAAC;QACT,SAAS,GAAG,CAAC,SAAS,CAAC;IACzB,CAAC;IACD,OAAO,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,gFAAgF;AAChF,mCAAmC;AACnC,gFAAgF;AAEhF,SAAS,SAAS,CAAC,GAAW;IAC5B,0DAA0D;IAC1D,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAClE,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IACD,gDAAgD;IAChD,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,SAAS,GAAG,CAAC,SAAS,GAAG,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;IACnD,CAAC;IACD,OAAO,SAAS,KAAK,EAAE,CAAC;AAC1B,CAAC;AAoBD,MAAM,gBAAgB,GAA4C;IAChE,yCAAyC;IACzC,KAAK,EAAE;QACL,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,OAAO,EAAE,qIAAqI;KAC/I;IAED,oEAAoE;IACpE,oEAAoE;IACpE,2EAA2E;IAC3E,8BAA8B;IAC9B,KAAK,EAAE;QACL,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,OAAO,EAAE,oEAAoE;KAC9E;IAED,mEAAmE;IACnE,4EAA4E;IAC5E,GAAG,EAAE;QACH,KAAK,EAAE,YAAY,CAAC,GAAG;QACvB,OAAO,EAAE,kCAAkC;KAC5C;IAED,yEAAyE;IACzE,WAAW,EAAE;QACX,KAAK,EAAE,YAAY,CAAC,WAAW;QAC/B,OAAO,EAAE,yBAAyB;QAClC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC;KACtF;IAED,oEAAoE;IACpE,oDAAoD;IACpD,IAAI,EAAE;QACJ,KAAK,EAAE,YAAY,CAAC,IAAI;QACxB,OAAO,EAAE,mEAAmE;QAC5E,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAC1C,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;YAChB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC,MAAM,IAAI,EAAE,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC/E,CAAC;KACF;IAED,uDAAuD;IACvD,IAAI,EAAE;QACJ,KAAK,EAAE,YAAY,CAAC,IAAI;QACxB,OAAO,EAAE,sGAAsG;KAChH;IAED,uDAAuD;IACvD,IAAI,EAAE;QACJ,KAAK,EAAE,YAAY,CAAC,IAAI;QACxB,OAAO,EAAE,4KAA4K;KACtL;CACF,CAAC;AAgBF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,QAAQ,CACtB,KAAc,EACd,QAAsC;IAEtC,2CAA2C;IAC3C,MAAM,WAAW,GAAkB,EAAE,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,IAAI,gBAAgB,EAAE,CAAC;YAC7B,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAA0B,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,4DAA4D;IAC9D,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAC,wBAAwB;IACrE,MAAM,UAAU,GAA2B,EAAE,CAAC;IAE9C,SAAS,SAAS,CAAC,KAAa;QAC9B,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7C,OAAO,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;IACzC,CAAC;IAED,SAAS,YAAY,CAAC,KAAa;QACjC,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,8BAA8B;YAC1D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9C,2CAA2C;gBAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACtE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAAE,OAAO,KAAK,CAAC,CAAC,kCAAkC;gBAC9E,CAAC;gBAED,sCAAsC;gBACtC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;gBAC1B,CAAC;gBAED,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACvB,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,IAAI,CAAC,IAAa;QACzB,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,MAAM,GAAG,GAA4B,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAA+B,CAAC,EAAE,CAAC;gBACrE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,kDAAkD;IACjE,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,UAA4C;IAE5C,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const VERSION = "3.
|
|
2
|
-
export declare const BUILD_NUMBER =
|
|
3
|
-
export declare const BUILD_STRING = "3.
|
|
1
|
+
export declare const VERSION = "3.1.0-rc.2";
|
|
2
|
+
export declare const BUILD_NUMBER = 7;
|
|
3
|
+
export declare const BUILD_STRING = "3.1.0-rc.2 (build 7)";
|
|
4
4
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,eAAe,CAAC;AACpC,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,YAAY,yBAAyB,CAAC"}
|
package/dist/version.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const VERSION = '3.
|
|
2
|
-
export const BUILD_NUMBER =
|
|
3
|
-
export const BUILD_STRING = '3.
|
|
1
|
+
export const VERSION = '3.1.0-rc.2';
|
|
2
|
+
export const BUILD_NUMBER = 7;
|
|
3
|
+
export const BUILD_STRING = '3.1.0-rc.2 (build 7)';
|
|
4
4
|
//# sourceMappingURL=version.js.map
|
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;AACpC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,MAAM,YAAY,GAAG,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@darkiceinteractive/mcp-conductor",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.0-rc.2",
|
|
4
4
|
"description": "MCP server that orchestrates code execution in a sandboxed Deno environment with access to all MCP servers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,11 +29,23 @@
|
|
|
29
29
|
"test:coverage": "vitest run --coverage",
|
|
30
30
|
"test:all": "vitest run",
|
|
31
31
|
"benchmark:scale": "tsx scripts/run-benchmarks.ts",
|
|
32
|
+
"build:articles": "tsx scripts/build-articles.ts",
|
|
33
|
+
"build:articles:watch": "tsx watch scripts/build-articles.ts",
|
|
32
34
|
"lint": "eslint src --ext .ts",
|
|
33
35
|
"lint:fix": "eslint src --ext .ts --fix",
|
|
34
36
|
"format": "prettier --write \"src/**/*.ts\"",
|
|
35
37
|
"clean": "rm -rf dist",
|
|
36
|
-
"prepublishOnly": "npm run build"
|
|
38
|
+
"prepublishOnly": "npm run build",
|
|
39
|
+
"test:perf": "vitest run test/perf",
|
|
40
|
+
"test:perf:bench": "vitest bench test/perf",
|
|
41
|
+
"test:coverage:check": "vitest run --coverage",
|
|
42
|
+
"test:popular-mcps": "vitest run test/popular-mcps",
|
|
43
|
+
"test:memory-leak": "vitest run test/memory-leak",
|
|
44
|
+
"test:security": "vitest run test/security",
|
|
45
|
+
"record:fixtures": "tsx scripts/record-fixtures.ts",
|
|
46
|
+
"benchmark:token-savings": "vitest run test/popular-mcps/token-savings",
|
|
47
|
+
"test:stress": "vitest run --config vitest.stress.config.ts",
|
|
48
|
+
"test:stress:full": "STRESS=1 vitest run --config vitest.stress.config.ts"
|
|
37
49
|
},
|
|
38
50
|
"keywords": [
|
|
39
51
|
"mcp",
|
|
@@ -60,7 +72,7 @@
|
|
|
60
72
|
}
|
|
61
73
|
},
|
|
62
74
|
"engines": {
|
|
63
|
-
"node": ">=
|
|
75
|
+
"node": ">=20.0.0"
|
|
64
76
|
},
|
|
65
77
|
"dependencies": {
|
|
66
78
|
"@inquirer/prompts": "^7.10.1",
|
|
@@ -81,6 +93,7 @@
|
|
|
81
93
|
"zod": "^3.23.8"
|
|
82
94
|
},
|
|
83
95
|
"devDependencies": {
|
|
96
|
+
"@mermaid-js/mermaid-cli": "^11.14.0",
|
|
84
97
|
"@types/node": "^22.10.2",
|
|
85
98
|
"@types/uuid": "^10.0.0",
|
|
86
99
|
"@typescript-eslint/eslint-plugin": "^8.18.0",
|
|
@@ -88,8 +101,14 @@
|
|
|
88
101
|
"@vitest/coverage-v8": "^2.1.8",
|
|
89
102
|
"eslint": "^9.17.0",
|
|
90
103
|
"prettier": "^3.4.2",
|
|
104
|
+
"rehype-stringify": "^10.0.1",
|
|
105
|
+
"remark-parse": "^11.0.0",
|
|
106
|
+
"remark-rehype": "^11.1.2",
|
|
107
|
+
"remark-stringify": "^11.0.0",
|
|
108
|
+
"sharp": "^0.33.5",
|
|
91
109
|
"tsx": "^4.19.2",
|
|
92
110
|
"typescript": "^5.7.2",
|
|
111
|
+
"unified": "^11.0.5",
|
|
93
112
|
"vitest": "^2.1.8"
|
|
94
113
|
}
|
|
95
114
|
}
|