@specverse/engines 4.1.5 → 4.1.6

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.
Files changed (120) hide show
  1. package/dist/libs/instance-factories/applications/templates/generic/backend-env-generator.js +22 -0
  2. package/dist/libs/instance-factories/applications/templates/generic/backend-package-json-generator.js +66 -0
  3. package/dist/libs/instance-factories/applications/templates/generic/backend-tsconfig-generator.js +54 -0
  4. package/dist/libs/instance-factories/applications/templates/generic/main-generator.js +290 -0
  5. package/dist/libs/instance-factories/applications/templates/react/_view-components-source.js +530 -0
  6. package/dist/libs/instance-factories/applications/templates/react/api-client-generator.js +437 -0
  7. package/dist/libs/instance-factories/applications/templates/react/api-types-generator.js +146 -0
  8. package/dist/libs/instance-factories/applications/templates/react/app-tsx-generator.js +73 -0
  9. package/dist/libs/instance-factories/applications/templates/react/env-example-generator.js +18 -0
  10. package/dist/libs/instance-factories/applications/templates/react/field-helpers-generator.js +99 -0
  11. package/dist/libs/instance-factories/applications/templates/react/gitignore-generator.js +35 -0
  12. package/dist/libs/instance-factories/applications/templates/react/index-css-generator.js +9 -0
  13. package/dist/libs/instance-factories/applications/templates/react/index-html-generator.js +23 -0
  14. package/dist/libs/instance-factories/applications/templates/react/main-tsx-generator.js +29 -0
  15. package/dist/libs/instance-factories/applications/templates/react/package-json-generator.js +49 -0
  16. package/dist/libs/instance-factories/applications/templates/react/pattern-adapter-generator.js +156 -0
  17. package/dist/libs/instance-factories/applications/templates/react/react-pattern-adapter.js +935 -0
  18. package/dist/libs/instance-factories/applications/templates/react/relationship-field-generator.js +143 -0
  19. package/dist/libs/instance-factories/applications/templates/react/runtime-app-tsx-generator.js +101 -0
  20. package/dist/libs/instance-factories/applications/templates/react/runtime-package-json-generator.js +50 -0
  21. package/dist/libs/instance-factories/applications/templates/react/tailwind-adapter-generator.js +646 -0
  22. package/dist/libs/instance-factories/applications/templates/react/tailwind-adapter-wrapper-generator.js +65 -0
  23. package/dist/libs/instance-factories/applications/templates/react/tsconfig-generator.js +28 -0
  24. package/dist/libs/instance-factories/applications/templates/react/use-api-hooks-generator.js +132 -0
  25. package/dist/libs/instance-factories/applications/templates/react/view-dashboard-generator.js +143 -0
  26. package/dist/libs/instance-factories/applications/templates/react/view-detail-generator.js +143 -0
  27. package/dist/libs/instance-factories/applications/templates/react/view-form-generator.js +355 -0
  28. package/dist/libs/instance-factories/applications/templates/react/view-list-generator.js +91 -0
  29. package/dist/libs/instance-factories/applications/templates/react/view-router-generator.js +79 -0
  30. package/dist/libs/instance-factories/applications/templates/react/vite-config-generator.js +42 -0
  31. package/dist/libs/instance-factories/cli/templates/commander/cli-bin-wrapper-generator.js +11 -0
  32. package/dist/libs/instance-factories/cli/templates/commander/cli-entry-generator.js +111 -0
  33. package/dist/libs/instance-factories/cli/templates/commander/command-generator.js +928 -0
  34. package/dist/libs/instance-factories/communication/templates/eventemitter/bus-generator.js +83 -0
  35. package/dist/libs/instance-factories/communication/templates/eventemitter/publisher-generator.js +91 -0
  36. package/dist/libs/instance-factories/communication/templates/eventemitter/subscriber-generator.js +86 -0
  37. package/dist/libs/instance-factories/controllers/templates/fastify/meta-routes-generator.js +93 -0
  38. package/dist/libs/instance-factories/controllers/templates/fastify/routes-generator.js +280 -0
  39. package/dist/libs/instance-factories/controllers/templates/fastify/server-generator.js +125 -0
  40. package/dist/libs/instance-factories/infrastructure/templates/docker-k8s/infrastructure-generator.js +25 -0
  41. package/dist/libs/instance-factories/orms/templates/prisma/schema-generator.js +371 -0
  42. package/dist/libs/instance-factories/orms/templates/prisma/services-generator.js +266 -0
  43. package/dist/libs/instance-factories/scaffolding/templates/generic/env-example-generator.js +51 -0
  44. package/dist/libs/instance-factories/scaffolding/templates/generic/env-generator.js +61 -0
  45. package/dist/libs/instance-factories/scaffolding/templates/generic/gitignore-generator.js +59 -0
  46. package/dist/libs/instance-factories/scaffolding/templates/generic/package-json-generator.js +126 -0
  47. package/dist/libs/instance-factories/scaffolding/templates/generic/readme-generator.js +159 -0
  48. package/dist/libs/instance-factories/scaffolding/templates/generic/tsconfig-generator.js +56 -0
  49. package/dist/libs/instance-factories/scaffolding/templates/generic/tsconfig-react-generator.js +37 -0
  50. package/dist/libs/instance-factories/sdks/templates/python/sdk-generator.js +29 -0
  51. package/dist/libs/instance-factories/sdks/templates/typescript/sdk-generator.js +28 -0
  52. package/dist/libs/instance-factories/services/templates/memory/generate-interpreter.js +14 -0
  53. package/dist/libs/instance-factories/services/templates/memory/step-conventions-memory.js +415 -0
  54. package/dist/libs/instance-factories/services/templates/prisma/behavior-generator.js +177 -0
  55. package/dist/libs/instance-factories/services/templates/prisma/controller-generator.js +413 -0
  56. package/dist/libs/instance-factories/services/templates/prisma/service-generator.js +243 -0
  57. package/dist/libs/instance-factories/services/templates/prisma/step-conventions.js +264 -0
  58. package/dist/libs/instance-factories/services/templates/shared-patterns.js +24 -0
  59. package/dist/libs/instance-factories/shared/path-resolver.js +59 -0
  60. package/dist/libs/instance-factories/storage/templates/mongodb/config-generator.js +13 -0
  61. package/dist/libs/instance-factories/storage/templates/mongodb/docker-generator.js +16 -0
  62. package/dist/libs/instance-factories/storage/templates/postgresql/config-generator.js +45 -0
  63. package/dist/libs/instance-factories/storage/templates/postgresql/docker-generator.js +46 -0
  64. package/dist/libs/instance-factories/storage/templates/redis/config-generator.js +14 -0
  65. package/dist/libs/instance-factories/storage/templates/redis/docker-generator.js +16 -0
  66. package/dist/libs/instance-factories/test-generation.js +145 -0
  67. package/dist/libs/instance-factories/testing/templates/vitest/tests-generator.js +30 -0
  68. package/dist/libs/instance-factories/tools/templates/mcp/mcp-server-generator.js +149 -0
  69. package/dist/libs/instance-factories/tools/templates/mcp/static/src/controllers/MCPServerController.js +232 -0
  70. package/dist/libs/instance-factories/tools/templates/mcp/static/src/events/EventEmitter.js +49 -0
  71. package/dist/libs/instance-factories/tools/templates/mcp/static/src/index.js +18 -0
  72. package/dist/libs/instance-factories/tools/templates/mcp/static/src/interfaces/ResourceProvider.js +0 -0
  73. package/dist/libs/instance-factories/tools/templates/mcp/static/src/models/LibrarySuggestion.js +97 -0
  74. package/dist/libs/instance-factories/tools/templates/mcp/static/src/models/SpecVerseResource.js +64 -0
  75. package/dist/libs/instance-factories/tools/templates/mcp/static/src/server/mcp-server.js +182 -0
  76. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/CLIProxyService.js +1210 -0
  77. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/EmbeddedResourcesAdapter.js +172 -0
  78. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/EntityModuleService.js +240 -0
  79. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/HybridResourcesProvider.js +147 -0
  80. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/LibraryToolsService.js +281 -0
  81. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorBridge.js +409 -0
  82. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorToolsService.js +414 -0
  83. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/PromptToolsService.js +467 -0
  84. package/dist/libs/instance-factories/tools/templates/mcp/static/src/services/ResourcesProviderService.js +135 -0
  85. package/dist/libs/instance-factories/tools/templates/mcp/static/src/types/index.js +0 -0
  86. package/dist/libs/instance-factories/tools/templates/vscode/static/extension.js +965 -0
  87. package/dist/libs/instance-factories/tools/templates/vscode/vscode-extension-generator.js +238 -0
  88. package/dist/libs/instance-factories/validation/templates/zod/validation-generator.js +25 -0
  89. package/dist/libs/instance-factories/views/index.js +48 -0
  90. package/dist/libs/instance-factories/views/templates/react/adapters/antd-adapter.js +742 -0
  91. package/dist/libs/instance-factories/views/templates/react/adapters/mui-adapter.js +824 -0
  92. package/dist/libs/instance-factories/views/templates/react/adapters/shadcn-adapter.js +719 -0
  93. package/dist/libs/instance-factories/views/templates/react/app-generator.js +45 -0
  94. package/dist/libs/instance-factories/views/templates/react/components-generator.js +779 -0
  95. package/dist/libs/instance-factories/views/templates/react/forms-generator.js +285 -0
  96. package/dist/libs/instance-factories/views/templates/react/frontend-package-json-generator.js +46 -0
  97. package/dist/libs/instance-factories/views/templates/react/hooks-generator.js +111 -0
  98. package/dist/libs/instance-factories/views/templates/react/index-css-generator.js +9 -0
  99. package/dist/libs/instance-factories/views/templates/react/index-html-generator.js +23 -0
  100. package/dist/libs/instance-factories/views/templates/react/main-tsx-generator.js +21 -0
  101. package/dist/libs/instance-factories/views/templates/react/react-component-generator.js +299 -0
  102. package/dist/libs/instance-factories/views/templates/react/router-generator.js +136 -0
  103. package/dist/libs/instance-factories/views/templates/react/router-generic-generator.js +107 -0
  104. package/dist/libs/instance-factories/views/templates/react/shared-utils-generator.js +179 -0
  105. package/dist/libs/instance-factories/views/templates/react/spec-json-generator.js +7 -0
  106. package/dist/libs/instance-factories/views/templates/react/types-generator.js +56 -0
  107. package/dist/libs/instance-factories/views/templates/react/views-metadata-generator.js +27 -0
  108. package/dist/libs/instance-factories/views/templates/react/vite-config-generator.js +29 -0
  109. package/dist/libs/instance-factories/views/templates/runtime/runtime-view-renderer.js +261 -0
  110. package/dist/libs/instance-factories/views/templates/shared/adapter-types.js +34 -0
  111. package/dist/libs/instance-factories/views/templates/shared/atomic-components-registry.js +800 -0
  112. package/dist/libs/instance-factories/views/templates/shared/base-generator.js +305 -0
  113. package/dist/libs/instance-factories/views/templates/shared/component-metadata.js +517 -0
  114. package/dist/libs/instance-factories/views/templates/shared/composite-pattern-types.js +0 -0
  115. package/dist/libs/instance-factories/views/templates/shared/composite-patterns.js +445 -0
  116. package/dist/libs/instance-factories/views/templates/shared/index.js +80 -0
  117. package/dist/libs/instance-factories/views/templates/shared/pattern-validator.js +210 -0
  118. package/dist/libs/instance-factories/views/templates/shared/property-mapper.js +492 -0
  119. package/dist/libs/instance-factories/views/templates/shared/syntax-mapper.js +321 -0
  120. package/package.json +3 -2
@@ -0,0 +1,182 @@
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
+ };