@powerhousedao/reactor-mcp 6.0.0-dev.200 → 6.0.0-dev.202
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/dist/index.d.mts +2 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +13 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
package/dist/index.d.mts
CHANGED
|
@@ -10,7 +10,7 @@ import { CallToolResult, Prompt, Resource, ToolAnnotations } from "@modelcontext
|
|
|
10
10
|
//#region src/mcp-routes.d.ts
|
|
11
11
|
/** Minimal interface for an HTTP adapter that supports Node.js-style route handlers. */
|
|
12
12
|
interface NodeRouteAdapter {
|
|
13
|
-
mountNodeRoute(method: "DELETE" | "GET" | "POST", path: string, handler: (req: IncomingMessage, res: ServerResponse, body?: unknown) => void): void;
|
|
13
|
+
mountNodeRoute(method: "DELETE" | "GET" | "POST", path: string, handler: (req: IncomingMessage, res: ServerResponse, body?: unknown) => void | Promise<void>): void;
|
|
14
14
|
}
|
|
15
15
|
interface SetupMcpServerOptions {
|
|
16
16
|
client: IReactorClient;
|
|
@@ -20,7 +20,7 @@ interface SetupMcpServerOptions {
|
|
|
20
20
|
type TransportFactory = (opts: {
|
|
21
21
|
sessionIdGenerator: undefined;
|
|
22
22
|
}) => InstanceType<typeof StreamableHTTPServerTransport>;
|
|
23
|
-
declare function setupMcpServer(options: SetupMcpServerOptions, httpAdapter: NodeRouteAdapter, createTransport?: TransportFactory): Promise<
|
|
23
|
+
declare function setupMcpServer(options: SetupMcpServerOptions, httpAdapter: NodeRouteAdapter, createTransport?: TransportFactory): Promise<void>;
|
|
24
24
|
//#endregion
|
|
25
25
|
//#region src/server.d.ts
|
|
26
26
|
interface CreateServerOptions {
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/mcp-routes.ts","../src/server.ts","../src/tools/types.ts","../src/tools/reactor.ts","../src/tools/utils.ts"],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/mcp-routes.ts","../src/server.ts","../src/tools/types.ts","../src/tools/reactor.ts","../src/tools/utils.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -9,27 +9,28 @@ const METHOD_NOT_ALLOWED = JSON.stringify({
|
|
|
9
9
|
},
|
|
10
10
|
id: null
|
|
11
11
|
});
|
|
12
|
+
const INTERNAL_SERVER_ERROR = JSON.stringify({
|
|
13
|
+
jsonrpc: "2.0",
|
|
14
|
+
error: {
|
|
15
|
+
code: -32603,
|
|
16
|
+
message: "Internal server error"
|
|
17
|
+
},
|
|
18
|
+
id: null
|
|
19
|
+
});
|
|
12
20
|
async function setupMcpServer(options, httpAdapter, createTransport = (opts) => new StreamableHTTPServerTransport(opts)) {
|
|
13
|
-
|
|
14
|
-
httpAdapter.mountNodeRoute("POST", "/mcp", (req, res, body) => {
|
|
21
|
+
httpAdapter.mountNodeRoute("POST", "/mcp", async (req, res, body) => {
|
|
15
22
|
try {
|
|
23
|
+
const server = await createServer(options);
|
|
16
24
|
const transport = createTransport({ sessionIdGenerator: void 0 });
|
|
17
25
|
res.on("close", () => {
|
|
18
26
|
transport.close();
|
|
19
27
|
server.close();
|
|
20
28
|
});
|
|
21
|
-
server.connect(transport);
|
|
22
|
-
transport.handleRequest(req, res, body);
|
|
29
|
+
await server.connect(transport);
|
|
30
|
+
await transport.handleRequest(req, res, body);
|
|
23
31
|
} catch (error) {
|
|
24
32
|
logger.error("Error handling MCP request:", error);
|
|
25
|
-
if (!res.headersSent) res.writeHead(500, { "Content-Type": "application/json" }).end(
|
|
26
|
-
jsonrpc: "2.0",
|
|
27
|
-
error: {
|
|
28
|
-
code: -32603,
|
|
29
|
-
message: "Internal server error"
|
|
30
|
-
},
|
|
31
|
-
id: null
|
|
32
|
-
}));
|
|
33
|
+
if (!res.headersSent) res.writeHead(500, { "Content-Type": "application/json" }).end(INTERNAL_SERVER_ERROR);
|
|
33
34
|
}
|
|
34
35
|
});
|
|
35
36
|
httpAdapter.mountNodeRoute("GET", "/mcp", (_req, res) => {
|
|
@@ -38,7 +39,6 @@ async function setupMcpServer(options, httpAdapter, createTransport = (opts) =>
|
|
|
38
39
|
httpAdapter.mountNodeRoute("DELETE", "/mcp", (_req, res) => {
|
|
39
40
|
res.writeHead(405).end(METHOD_NOT_ALLOWED);
|
|
40
41
|
});
|
|
41
|
-
return server;
|
|
42
42
|
}
|
|
43
43
|
//#endregion
|
|
44
44
|
export { InvalidToolOutputError, addActionsTool, addDriveTool, addRemoteDriveTool, createDocumentTool, createReactorMcpProvider, createServer, deleteDocumentTool, deleteDriveTool, getDocumentModelSchemaTool, getDocumentModelsTool, getDocumentTool, getDocumentsTool, getDriveTool, getDrivesTool, setupMcpServer, toolWithCallback, validateDocumentModelAction };
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../src/mcp-routes.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/mcp-routes.ts"],"sourcesContent":["import { StreamableHTTPServerTransport } from \"@modelcontextprotocol/sdk/server/streamableHttp.js\";\nimport type { IReactorClient, ISyncManager } from \"@powerhousedao/reactor\";\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\n\n/** Minimal interface for an HTTP adapter that supports Node.js-style route handlers. */\ninterface NodeRouteAdapter {\n mountNodeRoute(\n method: \"DELETE\" | \"GET\" | \"POST\",\n path: string,\n handler: (\n req: IncomingMessage,\n res: ServerResponse,\n body?: unknown,\n ) => void | Promise<void>,\n ): void;\n}\nimport { logger } from \"./logger.js\";\nimport { createServer } from \"./server.js\";\n\nexport interface SetupMcpServerOptions {\n client: IReactorClient;\n syncManager?: ISyncManager;\n}\n\nconst METHOD_NOT_ALLOWED = JSON.stringify({\n jsonrpc: \"2.0\",\n error: { code: -32000, message: \"Method not allowed.\" },\n id: null,\n});\n\nconst INTERNAL_SERVER_ERROR = JSON.stringify({\n jsonrpc: \"2.0\",\n error: { code: -32603, message: \"Internal server error\" },\n id: null,\n});\n\n/** @internal Injected in tests to avoid relying on constructor mock semantics. */\ntype TransportFactory = (opts: {\n sessionIdGenerator: undefined;\n}) => InstanceType<typeof StreamableHTTPServerTransport>;\n\nexport async function setupMcpServer(\n options: SetupMcpServerOptions,\n httpAdapter: NodeRouteAdapter,\n // Allow tests to inject a factory function instead of relying on `new vi.fn()`\n // constructor semantics, which differ between macOS and Linux environments.\n createTransport: TransportFactory = (opts) =>\n new StreamableHTTPServerTransport(opts),\n): Promise<void> {\n httpAdapter.mountNodeRoute(\n \"POST\",\n \"/mcp\",\n async (req: IncomingMessage, res: ServerResponse, body?: unknown) => {\n // Stateless mode: every request owns its McpServer + transport so\n // concurrent or slow handlers cannot collide on a shared Protocol\n // instance (which throws \"Already connected to a transport\").\n try {\n const server = await createServer(options);\n const transport = createTransport({ sessionIdGenerator: undefined });\n res.on(\"close\", () => {\n void transport.close();\n void server.close();\n });\n await server.connect(transport);\n await transport.handleRequest(req, res, body);\n } catch (error) {\n logger.error(\"Error handling MCP request:\", error);\n if (!res.headersSent) {\n res\n .writeHead(500, { \"Content-Type\": \"application/json\" })\n .end(INTERNAL_SERVER_ERROR);\n }\n }\n },\n );\n\n // SSE notifications not supported in stateless mode\n httpAdapter.mountNodeRoute(\n \"GET\",\n \"/mcp\",\n (_req: IncomingMessage, res: ServerResponse) => {\n res.writeHead(405).end(METHOD_NOT_ALLOWED);\n },\n );\n\n // Session termination not needed in stateless mode\n httpAdapter.mountNodeRoute(\n \"DELETE\",\n \"/mcp\",\n (_req: IncomingMessage, res: ServerResponse) => {\n res.writeHead(405).end(METHOD_NOT_ALLOWED);\n },\n );\n}\n"],"mappings":";;;AAwBA,MAAM,qBAAqB,KAAK,UAAU;CACxC,SAAS;CACT,OAAO;EAAE,MAAM;EAAQ,SAAS;EAAuB;CACvD,IAAI;CACL,CAAC;AAEF,MAAM,wBAAwB,KAAK,UAAU;CAC3C,SAAS;CACT,OAAO;EAAE,MAAM;EAAQ,SAAS;EAAyB;CACzD,IAAI;CACL,CAAC;AAOF,eAAsB,eACpB,SACA,aAGA,mBAAqC,SACnC,IAAI,8BAA8B,KAAK,EAC1B;AACf,aAAY,eACV,QACA,QACA,OAAO,KAAsB,KAAqB,SAAmB;AAInE,MAAI;GACF,MAAM,SAAS,MAAM,aAAa,QAAQ;GAC1C,MAAM,YAAY,gBAAgB,EAAE,oBAAoB,KAAA,GAAW,CAAC;AACpE,OAAI,GAAG,eAAe;AACf,cAAU,OAAO;AACjB,WAAO,OAAO;KACnB;AACF,SAAM,OAAO,QAAQ,UAAU;AAC/B,SAAM,UAAU,cAAc,KAAK,KAAK,KAAK;WACtC,OAAO;AACd,UAAO,MAAM,+BAA+B,MAAM;AAClD,OAAI,CAAC,IAAI,YACP,KACG,UAAU,KAAK,EAAE,gBAAgB,oBAAoB,CAAC,CACtD,IAAI,sBAAsB;;GAIpC;AAGD,aAAY,eACV,OACA,SACC,MAAuB,QAAwB;AAC9C,MAAI,UAAU,IAAI,CAAC,IAAI,mBAAmB;GAE7C;AAGD,aAAY,eACV,UACA,SACC,MAAuB,QAAwB;AAC9C,MAAI,UAAU,IAAI,CAAC,IAAI,mBAAmB;GAE7C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerhousedao/reactor-mcp",
|
|
3
|
-
"version": "6.0.0-dev.
|
|
3
|
+
"version": "6.0.0-dev.202",
|
|
4
4
|
"description": "MCP server for document model operations in the Powerhouse ecosystem. For document model creation tasks, consider using the document-model-creator agent which provides a more guided experience.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -37,11 +37,11 @@
|
|
|
37
37
|
"change-case": "5.4.4",
|
|
38
38
|
"vite": "8.0.8",
|
|
39
39
|
"zod": "4.3.6",
|
|
40
|
-
"@powerhousedao/codegen": "6.0.0-dev.
|
|
41
|
-
"@powerhousedao/
|
|
42
|
-
"@powerhousedao/config": "6.0.0-dev.
|
|
43
|
-
"@powerhousedao/
|
|
44
|
-
"document-model": "6.0.0-dev.
|
|
40
|
+
"@powerhousedao/codegen": "6.0.0-dev.202",
|
|
41
|
+
"@powerhousedao/reactor": "6.0.0-dev.202",
|
|
42
|
+
"@powerhousedao/config": "6.0.0-dev.202",
|
|
43
|
+
"@powerhousedao/shared": "6.0.0-dev.202",
|
|
44
|
+
"document-model": "6.0.0-dev.202"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@types/node": "25.2.3",
|