swallowkit 1.0.0-beta.27 → 1.0.0-beta.28
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/mcp/index.d.ts +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +4 -4
- package/dist/mcp/index.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/mcp.test.ts +61 -0
- package/src/mcp/index.ts +2 -2
package/dist/mcp/index.d.ts
CHANGED
package/dist/mcp/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAS5B,KAAK,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC1G,KAAK,iBAAiB,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AAC5E,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACrD,CAAC;AAkDF,wBAAgB,8BAA8B,CAC5C,aAAa,GAAE,gBAA0C,GACxD,cAAc,EAAE,CA8ElB;AAED,wBAAgB,yBAAyB,CAAC,aAAa,GAAE,gBAA0C,GAAG,SAAS,CAkB9G;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAIlD"}
|
package/dist/mcp/index.js
CHANGED
|
@@ -38,8 +38,8 @@ exports.buildSwallowKitToolDefinitions = buildSwallowKitToolDefinitions;
|
|
|
38
38
|
exports.createSwallowKitMcpServer = createSwallowKitMcpServer;
|
|
39
39
|
exports.runMcpServer = runMcpServer;
|
|
40
40
|
const path = __importStar(require("path"));
|
|
41
|
-
const
|
|
42
|
-
const
|
|
41
|
+
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
42
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
43
43
|
const z = __importStar(require("zod/v4"));
|
|
44
44
|
function resolveMachineCliEntrypoint() {
|
|
45
45
|
return path.resolve(__dirname, "..", "cli", "index.js");
|
|
@@ -158,7 +158,7 @@ function buildSwallowKitToolDefinitions(runMachineCli = defaultMachineCliRunner)
|
|
|
158
158
|
];
|
|
159
159
|
}
|
|
160
160
|
function createSwallowKitMcpServer(runMachineCli = defaultMachineCliRunner) {
|
|
161
|
-
const server = new
|
|
161
|
+
const server = new mcp_js_1.McpServer({
|
|
162
162
|
name: "swallowkit-mcp",
|
|
163
163
|
version: process.env.npm_package_version || "0.0.0",
|
|
164
164
|
});
|
|
@@ -172,7 +172,7 @@ function createSwallowKitMcpServer(runMachineCli = defaultMachineCliRunner) {
|
|
|
172
172
|
}
|
|
173
173
|
async function runMcpServer() {
|
|
174
174
|
const server = createSwallowKitMcpServer();
|
|
175
|
-
const transport = new
|
|
175
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
176
176
|
await server.connect(transport);
|
|
177
177
|
}
|
|
178
178
|
if (require.main === module) {
|
package/dist/mcp/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuEA,wEAgFC;AAED,8DAkBC;AAED,oCAIC;AA/KD,2CAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { spawn } from "child_process";
|
|
2
|
+
import * as fs from "fs";
|
|
3
|
+
import * as path from "path";
|
|
1
4
|
import { buildSwallowKitToolDefinitions } from "../mcp";
|
|
2
5
|
|
|
3
6
|
describe("SwallowKit MCP tool definitions", () => {
|
|
@@ -53,4 +56,62 @@ describe("SwallowKit MCP tool definitions", () => {
|
|
|
53
56
|
]);
|
|
54
57
|
expect(JSON.parse(result.content[0].text)).toEqual({ createdFiles: ["functions/src/todo.ts"] });
|
|
55
58
|
});
|
|
59
|
+
|
|
60
|
+
it("keeps the built MCP entrypoint alive long enough to complete the handshake", async () => {
|
|
61
|
+
const entrypoint = path.resolve(__dirname, "..", "..", "dist", "mcp", "index.js");
|
|
62
|
+
expect(fs.existsSync(entrypoint)).toBe(true);
|
|
63
|
+
|
|
64
|
+
await new Promise<void>((resolve, reject) => {
|
|
65
|
+
const child = spawn(process.execPath, [entrypoint], {
|
|
66
|
+
cwd: path.resolve(__dirname, "..", ".."),
|
|
67
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
68
|
+
});
|
|
69
|
+
let settled = false;
|
|
70
|
+
let expectedShutdown = false;
|
|
71
|
+
let stderr = "";
|
|
72
|
+
|
|
73
|
+
const finishResolve = () => {
|
|
74
|
+
if (!settled) {
|
|
75
|
+
settled = true;
|
|
76
|
+
resolve();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const finishReject = (error: Error) => {
|
|
81
|
+
if (!settled) {
|
|
82
|
+
settled = true;
|
|
83
|
+
reject(error);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const timer = setTimeout(() => {
|
|
88
|
+
expectedShutdown = true;
|
|
89
|
+
child.kill();
|
|
90
|
+
}, 1000);
|
|
91
|
+
|
|
92
|
+
child.stderr.on("data", (chunk) => {
|
|
93
|
+
stderr += chunk.toString();
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
child.on("error", (error) => {
|
|
97
|
+
clearTimeout(timer);
|
|
98
|
+
finishReject(error);
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
child.on("close", (code, signal) => {
|
|
102
|
+
clearTimeout(timer);
|
|
103
|
+
|
|
104
|
+
if (expectedShutdown) {
|
|
105
|
+
finishResolve();
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
finishReject(
|
|
110
|
+
new Error(
|
|
111
|
+
`Built MCP entrypoint exited early with code ${code ?? "null"} and signal ${signal ?? "null"}${stderr ? `: ${stderr}` : ""}`
|
|
112
|
+
)
|
|
113
|
+
);
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
});
|
|
56
117
|
});
|
package/src/mcp/index.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import * as path from "path";
|
|
4
|
-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp";
|
|
5
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio";
|
|
4
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
6
6
|
import * as z from "zod/v4";
|
|
7
7
|
import type { MachineResponse } from "../machine/contracts";
|
|
8
8
|
|