@specverse/engines 4.1.14 → 4.1.16
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/assets/prompts/core/standard/v9/behavior.prompt.yaml +7 -1
- package/dist/ai/behavior-ai-service.d.ts +2 -0
- package/dist/ai/behavior-ai-service.d.ts.map +1 -1
- package/dist/ai/behavior-ai-service.js +2 -0
- package/dist/ai/behavior-ai-service.js.map +1 -1
- package/dist/ai/prompt-loader.js +2 -2
- package/dist/inference/index.d.ts +2 -1
- package/dist/inference/index.d.ts.map +1 -1
- package/dist/inference/index.js +2 -1
- package/dist/inference/index.js.map +1 -1
- package/dist/inference/quint-transpiler.d.ts +18 -1
- package/dist/inference/quint-transpiler.d.ts.map +1 -1
- package/dist/inference/quint-transpiler.js +501 -21
- package/dist/inference/quint-transpiler.js.map +1 -1
- package/dist/inference/verification.d.ts +78 -0
- package/dist/inference/verification.d.ts.map +1 -0
- package/dist/inference/verification.js +263 -0
- package/dist/inference/verification.js.map +1 -0
- package/dist/libs/instance-factories/applications/templates/generic/backend-package-json-generator.js +4 -1
- package/dist/libs/instance-factories/applications/templates/generic/backend-tsconfig-generator.js +2 -2
- package/dist/libs/instance-factories/applications/templates/react/runtime-package-json-generator.js +1 -0
- package/dist/libs/instance-factories/cli/templates/commander/command-generator.js +111 -27
- package/dist/libs/instance-factories/communication/templates/eventemitter/bus-generator.js +2 -3
- package/dist/libs/instance-factories/controllers/templates/fastify/routes-generator.js +21 -1
- package/dist/libs/instance-factories/scaffolding/templates/generic/tsconfig-generator.js +10 -2
- package/dist/libs/instance-factories/services/templates/prisma/ai-behaviors-generator.js +130 -22
- package/dist/libs/instance-factories/services/templates/prisma/behavior-generator.js +14 -7
- package/dist/libs/instance-factories/services/templates/prisma/controller-generator.js +29 -54
- package/dist/libs/instance-factories/services/templates/prisma/service-generator.js +31 -10
- package/dist/libs/instance-factories/services/templates/prisma/step-conventions.js +1 -1
- package/dist/libs/instance-factories/views/templates/react/components-generator.js +40 -10
- package/dist/realize/index.d.ts.map +1 -1
- package/dist/realize/index.js +123 -25
- package/dist/realize/index.js.map +1 -1
- package/libs/instance-factories/applications/templates/generic/backend-package-json-generator.ts +4 -1
- package/libs/instance-factories/applications/templates/generic/backend-tsconfig-generator.ts +2 -2
- package/libs/instance-factories/applications/templates/react/runtime-package-json-generator.ts +6 -1
- package/libs/instance-factories/cli/templates/commander/command-generator.ts +134 -27
- package/libs/instance-factories/communication/templates/eventemitter/bus-generator.ts +2 -3
- package/libs/instance-factories/controllers/templates/fastify/routes-generator.ts +27 -2
- package/libs/instance-factories/scaffolding/templates/generic/tsconfig-generator.ts +23 -2
- package/libs/instance-factories/services/templates/prisma/ai-behaviors-generator.ts +185 -20
- package/libs/instance-factories/services/templates/prisma/behavior-generator.ts +34 -9
- package/libs/instance-factories/services/templates/prisma/controller-generator.ts +37 -59
- package/libs/instance-factories/services/templates/prisma/service-generator.ts +40 -10
- package/libs/instance-factories/services/templates/prisma/step-conventions.ts +4 -1
- package/libs/instance-factories/views/templates/react/components-generator.ts +50 -10
- package/package.json +1 -1
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/controllers/MCPServerController.js +0 -232
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/events/EventEmitter.js +0 -49
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/index.js +0 -18
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/interfaces/ResourceProvider.js +0 -0
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/models/LibrarySuggestion.js +0 -97
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/models/SpecVerseResource.js +0 -64
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/server/mcp-server.js +0 -182
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/CLIProxyService.js +0 -1210
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/EmbeddedResourcesAdapter.js +0 -172
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/EntityModuleService.js +0 -240
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/HybridResourcesProvider.js +0 -147
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/LibraryToolsService.js +0 -281
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorBridge.js +0 -409
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorToolsService.js +0 -414
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/PromptToolsService.js +0 -467
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/ResourcesProviderService.js +0 -135
- package/dist/libs/instance-factories/tools/templates/mcp/static/src/types/index.js +0 -0
- package/dist/libs/instance-factories/tools/templates/vscode/static/extension.js +0 -965
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
|
-
import { MCPServerController } from "../controllers/MCPServerController.js";
|
|
4
|
-
class SpecVerseCleanMCPServer {
|
|
5
|
-
controller;
|
|
6
|
-
config;
|
|
7
|
-
constructor(config) {
|
|
8
|
-
this.config = config;
|
|
9
|
-
this.controller = new MCPServerController(config);
|
|
10
|
-
this.setupEventHandlers();
|
|
11
|
-
}
|
|
12
|
-
setupEventHandlers() {
|
|
13
|
-
const eventEmitter = this.controller.getEventEmitter();
|
|
14
|
-
if (this.config.logging && this.config.mode !== "local") {
|
|
15
|
-
eventEmitter.on("server-started", (event) => {
|
|
16
|
-
const serverEvent = event;
|
|
17
|
-
console.error(`Clean MCP Server started in ${serverEvent.mode} mode (PID: ${serverEvent.pid})`);
|
|
18
|
-
if (serverEvent.port) {
|
|
19
|
-
console.error(`Server listening on port ${serverEvent.port}`);
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
eventEmitter.on("tool-called", (event) => {
|
|
23
|
-
const toolEvent = event;
|
|
24
|
-
console.error(`Tool executed: ${toolEvent.toolName} (${toolEvent.executionTime}ms)`);
|
|
25
|
-
});
|
|
26
|
-
eventEmitter.on("resource-requested", (event) => {
|
|
27
|
-
const resourceEvent = event;
|
|
28
|
-
console.error(`Resource accessed: ${resourceEvent.uri}`);
|
|
29
|
-
});
|
|
30
|
-
eventEmitter.on("error-occurred", (event) => {
|
|
31
|
-
const errorEvent = event;
|
|
32
|
-
console.error(`Error in ${errorEvent.operation}: ${errorEvent.error}`);
|
|
33
|
-
if (errorEvent.context) {
|
|
34
|
-
console.error("Context:", JSON.stringify(errorEvent.context, null, 2));
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
async start() {
|
|
40
|
-
await this.controller.initialize();
|
|
41
|
-
if (this.config.mode === "local") {
|
|
42
|
-
const transport = new StdioServerTransport(process.stdin, process.stdout);
|
|
43
|
-
try {
|
|
44
|
-
await this.controller.getServer().connect(transport);
|
|
45
|
-
} catch (error) {
|
|
46
|
-
console.error("MCP Server connection failed:", error);
|
|
47
|
-
process.exit(1);
|
|
48
|
-
}
|
|
49
|
-
const gracefulShutdown = () => {
|
|
50
|
-
process.exit(0);
|
|
51
|
-
};
|
|
52
|
-
process.on("SIGINT", gracefulShutdown);
|
|
53
|
-
process.on("SIGTERM", gracefulShutdown);
|
|
54
|
-
process.stdin.resume();
|
|
55
|
-
} else if (this.config.mode === "remote") {
|
|
56
|
-
if (this.config.logging) {
|
|
57
|
-
console.error("Starting Clean MCP Server in remote mode...");
|
|
58
|
-
}
|
|
59
|
-
const { createServer } = await import("http");
|
|
60
|
-
const server = createServer(async (req, res) => {
|
|
61
|
-
if (req.url === "/health") {
|
|
62
|
-
const metrics = this.controller.getMetrics();
|
|
63
|
-
res.writeHead(200, { "Content-Type": "application/json" });
|
|
64
|
-
res.end(JSON.stringify({
|
|
65
|
-
status: "healthy",
|
|
66
|
-
mode: "remote",
|
|
67
|
-
metrics
|
|
68
|
-
}));
|
|
69
|
-
} else if (req.url === "/mcp/resources") {
|
|
70
|
-
try {
|
|
71
|
-
const resources = await this.controller.listResources();
|
|
72
|
-
res.writeHead(200, { "Content-Type": "application/json" });
|
|
73
|
-
res.end(JSON.stringify({
|
|
74
|
-
resources,
|
|
75
|
-
count: resources.length,
|
|
76
|
-
mode: "remote"
|
|
77
|
-
}));
|
|
78
|
-
} catch (error) {
|
|
79
|
-
res.writeHead(500, { "Content-Type": "application/json" });
|
|
80
|
-
res.end(JSON.stringify({
|
|
81
|
-
error: error instanceof Error ? error.message : String(error)
|
|
82
|
-
}));
|
|
83
|
-
}
|
|
84
|
-
} else if (req.url?.startsWith("/mcp/resource/")) {
|
|
85
|
-
try {
|
|
86
|
-
const uri = decodeURIComponent(req.url.replace("/mcp/resource/", ""));
|
|
87
|
-
const resource = await this.controller.readResource(uri);
|
|
88
|
-
res.writeHead(200, { "Content-Type": "application/json" });
|
|
89
|
-
res.end(JSON.stringify(resource));
|
|
90
|
-
} catch (error) {
|
|
91
|
-
res.writeHead(500, { "Content-Type": "application/json" });
|
|
92
|
-
res.end(JSON.stringify({
|
|
93
|
-
error: error instanceof Error ? error.message : String(error)
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
} else if (req.url === "/mcp") {
|
|
97
|
-
res.writeHead(200, { "Content-Type": "application/json" });
|
|
98
|
-
res.end(JSON.stringify({
|
|
99
|
-
message: "MCP over HTTP partially implemented",
|
|
100
|
-
mode: "remote",
|
|
101
|
-
endpoints: [
|
|
102
|
-
"/mcp/resources - List all resources",
|
|
103
|
-
"/mcp/resource/{uri} - Read specific resource"
|
|
104
|
-
]
|
|
105
|
-
}));
|
|
106
|
-
} else {
|
|
107
|
-
res.writeHead(404);
|
|
108
|
-
res.end("Not found");
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
const port = this.config.port || 3e3;
|
|
112
|
-
server.listen(port, () => {
|
|
113
|
-
if (this.config.logging) {
|
|
114
|
-
console.error(`Clean MCP Server listening on port ${port}`);
|
|
115
|
-
console.error("Health check: http://localhost:" + port + "/health");
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
const gracefulShutdown = () => {
|
|
119
|
-
if (this.config.logging) {
|
|
120
|
-
console.error("Clean MCP Server shutting down...");
|
|
121
|
-
}
|
|
122
|
-
server.close(() => {
|
|
123
|
-
process.exit(0);
|
|
124
|
-
});
|
|
125
|
-
};
|
|
126
|
-
process.on("SIGINT", gracefulShutdown);
|
|
127
|
-
process.on("SIGTERM", gracefulShutdown);
|
|
128
|
-
} else {
|
|
129
|
-
throw new Error(`Unsupported mode: ${this.config.mode}`);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
getController() {
|
|
133
|
-
return this.controller;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
async function main() {
|
|
137
|
-
process.on("uncaughtException", (error) => {
|
|
138
|
-
console.error("Uncaught exception in Clean MCP server:", error);
|
|
139
|
-
process.exit(1);
|
|
140
|
-
});
|
|
141
|
-
process.on("unhandledRejection", (reason, promise) => {
|
|
142
|
-
console.error("Unhandled rejection in Clean MCP server:", reason);
|
|
143
|
-
process.exit(1);
|
|
144
|
-
});
|
|
145
|
-
const args = process.argv.slice(2);
|
|
146
|
-
const mode = args.includes("--mode") ? args[args.indexOf("--mode") + 1] : "local";
|
|
147
|
-
const port = args.includes("--port") ? parseInt(args[args.indexOf("--port") + 1]) : 3e3;
|
|
148
|
-
const config = {
|
|
149
|
-
mode,
|
|
150
|
-
port,
|
|
151
|
-
logging: !args.includes("--silent"),
|
|
152
|
-
resources_path: args.includes("--resources-path") ? args[args.indexOf("--resources-path") + 1] : void 0,
|
|
153
|
-
features: {
|
|
154
|
-
orchestrator: args.includes("--enable-orchestrator")
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
if (config.logging && config.mode !== "local") {
|
|
158
|
-
console.error("Starting Clean SpecVerse MCP Server with config:", JSON.stringify(config, null, 2));
|
|
159
|
-
}
|
|
160
|
-
try {
|
|
161
|
-
const server = new SpecVerseCleanMCPServer(config);
|
|
162
|
-
await server.start();
|
|
163
|
-
} catch (error) {
|
|
164
|
-
console.error("Failed to start Clean MCP Server:", error);
|
|
165
|
-
process.exit(1);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
const condition1 = import.meta.url === `file://${process.argv[1]}`;
|
|
169
|
-
const condition2 = process.argv[1]?.includes("mcp-server.js");
|
|
170
|
-
const condition3 = process.argv[0]?.includes("specverse-mcp");
|
|
171
|
-
const condition4 = process.argv[1]?.includes("specverse-mcp");
|
|
172
|
-
const isMainModule = condition1 || condition2 || condition3 || condition4;
|
|
173
|
-
if (isMainModule) {
|
|
174
|
-
main().catch((error) => {
|
|
175
|
-
console.error("Fatal error in Clean MCP Server:", error);
|
|
176
|
-
process.exit(1);
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
export {
|
|
180
|
-
SpecVerseCleanMCPServer,
|
|
181
|
-
main
|
|
182
|
-
};
|