@specverse/engine-realize 3.5.3

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 (420) hide show
  1. package/assets/examples/09-api/ai-spec.yaml +194 -0
  2. package/assets/examples/09-api/converted.yaml +95 -0
  3. package/assets/examples/09-api/diagram-architecture.mmd +10 -0
  4. package/assets/examples/09-api/diagram-er.mmd +10 -0
  5. package/assets/examples/09-api/documentation.html +104 -0
  6. package/assets/examples/09-api/documentation.md +95 -0
  7. package/assets/examples/09-api/inferred-spec.yaml +420 -0
  8. package/assets/examples/09-api/openapi.json +61 -0
  9. package/assets/examples/10-api/README.md +216 -0
  10. package/assets/examples/10-api/ai-spec.yaml +194 -0
  11. package/assets/examples/10-api/converted.yaml +96 -0
  12. package/assets/examples/10-api/diagram-architecture.mmd +10 -0
  13. package/assets/examples/10-api/diagram-er.mmd +10 -0
  14. package/assets/examples/10-api/documentation.html +104 -0
  15. package/assets/examples/10-api/documentation.md +95 -0
  16. package/assets/examples/10-api/inferred-spec.yaml +7 -0
  17. package/assets/examples/10-api/metadata.yaml +89 -0
  18. package/assets/examples/10-api/openapi.json +61 -0
  19. package/assets/examples/10-api/package-integration-test.js +177 -0
  20. package/assets/examples/10-api/usage-example.js +323 -0
  21. package/assets/examples/10-api/usage-example.ts +363 -0
  22. package/assets/examples/10-api/workflow-test.js +113 -0
  23. package/assets/examples/manifests/01-simple-default-mappings.yaml +36 -0
  24. package/assets/examples/manifests/02-capability-mappings.yaml +55 -0
  25. package/assets/examples/manifests/03-hybrid-mappings.yaml +109 -0
  26. package/assets/examples/manifests/README.md +245 -0
  27. package/assets/examples/manifests/backend-only.yaml +43 -0
  28. package/assets/examples/manifests/blog-api.md +78 -0
  29. package/assets/examples/manifests/blog-api.specly +79 -0
  30. package/assets/examples/manifests/frontend-only.yaml +27 -0
  31. package/assets/examples/manifests/fullstack-app.yaml +44 -0
  32. package/assets/examples/manifests/fullstack-monorepo.yaml +62 -0
  33. package/assets/examples/validate-examples-with-expected-failures.cjs +328 -0
  34. package/assets/examples/validate-examples.cjs +225 -0
  35. package/assets/examples-decomposed/cloud-native-manifest.example.yaml +8 -0
  36. package/assets/examples-decomposed/cloud-native-manifest.md +379 -0
  37. package/assets/examples-decomposed/cloud-native-manifest.specly +60 -0
  38. package/assets/examples-decomposed/docker-compose-manifest.example.yaml +8 -0
  39. package/assets/examples-decomposed/docker-compose-manifest.md +326 -0
  40. package/assets/examples-decomposed/docker-compose-manifest.specly +40 -0
  41. package/assets/examples-decomposed/kubernetes-deployment-manifest.example.yaml +8 -0
  42. package/assets/examples-decomposed/kubernetes-deployment-manifest.md +237 -0
  43. package/assets/examples-decomposed/kubernetes-deployment-manifest.specly +41 -0
  44. package/assets/templates/README.md +559 -0
  45. package/assets/templates/TEMPLATE-ENHANCEMENTS-V33.md +462 -0
  46. package/assets/templates/backend-only/CLAUDE.md +73 -0
  47. package/assets/templates/backend-only/README.md +197 -0
  48. package/assets/templates/backend-only/deployments/README.md +149 -0
  49. package/assets/templates/backend-only/deployments/development.specly +53 -0
  50. package/assets/templates/backend-only/deployments/production.specly +87 -0
  51. package/assets/templates/backend-only/docs/README.md +50 -0
  52. package/assets/templates/backend-only/docs/api/README.md +7 -0
  53. package/assets/templates/backend-only/docs/diagrams/README.md +85 -0
  54. package/assets/templates/backend-only/docs/example-documentation-template.md +269 -0
  55. package/assets/templates/backend-only/docs/guides/README.md +15 -0
  56. package/assets/templates/backend-only/dot.env.example +18 -0
  57. package/assets/templates/backend-only/generated/README.md +56 -0
  58. package/assets/templates/backend-only/generated/code/integration-test.template.js +320 -0
  59. package/assets/templates/backend-only/generated/code/package.json.template +34 -0
  60. package/assets/templates/backend-only/generated/docs/README.md +49 -0
  61. package/assets/templates/backend-only/gitignore +54 -0
  62. package/assets/templates/backend-only/manifests/README.md +72 -0
  63. package/assets/templates/backend-only/manifests/docker-compose.specly +91 -0
  64. package/assets/templates/backend-only/manifests/implementation.yaml +100 -0
  65. package/assets/templates/backend-only/manifests/kubernetes.specly +140 -0
  66. package/assets/templates/backend-only/package.json +59 -0
  67. package/assets/templates/backend-only/scripts/test-all.sh +160 -0
  68. package/assets/templates/backend-only/scripts/test-generated-code.sh +165 -0
  69. package/assets/templates/backend-only/specs/main.specly +67 -0
  70. package/assets/templates/default/CLAUDE.md +141 -0
  71. package/assets/templates/default/README.md +404 -0
  72. package/assets/templates/default/deployments/README.md +149 -0
  73. package/assets/templates/default/deployments/development.specly +53 -0
  74. package/assets/templates/default/deployments/production.specly +87 -0
  75. package/assets/templates/default/docs/README.md +50 -0
  76. package/assets/templates/default/docs/api/README.md +7 -0
  77. package/assets/templates/default/docs/diagrams/README.md +85 -0
  78. package/assets/templates/default/docs/example-documentation-template.md +269 -0
  79. package/assets/templates/default/docs/guides/README.md +15 -0
  80. package/assets/templates/default/dot.env.example +18 -0
  81. package/assets/templates/default/generated/README.md +56 -0
  82. package/assets/templates/default/generated/code/integration-test.template.js +320 -0
  83. package/assets/templates/default/generated/code/package.json.template +34 -0
  84. package/assets/templates/default/generated/docs/README.md +49 -0
  85. package/assets/templates/default/gitignore +54 -0
  86. package/assets/templates/default/manifests/README.md +72 -0
  87. package/assets/templates/default/manifests/docker-compose.specly +91 -0
  88. package/assets/templates/default/manifests/implementation.yaml +176 -0
  89. package/assets/templates/default/manifests/kubernetes.specly +140 -0
  90. package/assets/templates/default/package.json +61 -0
  91. package/assets/templates/default/scripts/test-all.sh +160 -0
  92. package/assets/templates/default/scripts/test-generated-code.sh +165 -0
  93. package/assets/templates/default/specs/main.specly +67 -0
  94. package/assets/templates/frontend-only/CLAUDE.md +75 -0
  95. package/assets/templates/frontend-only/README.md +231 -0
  96. package/assets/templates/frontend-only/deployments/README.md +149 -0
  97. package/assets/templates/frontend-only/deployments/development.specly +53 -0
  98. package/assets/templates/frontend-only/deployments/production.specly +87 -0
  99. package/assets/templates/frontend-only/docs/README.md +50 -0
  100. package/assets/templates/frontend-only/docs/api/README.md +7 -0
  101. package/assets/templates/frontend-only/docs/diagrams/README.md +85 -0
  102. package/assets/templates/frontend-only/docs/example-documentation-template.md +269 -0
  103. package/assets/templates/frontend-only/docs/guides/README.md +15 -0
  104. package/assets/templates/frontend-only/dot.env.example +18 -0
  105. package/assets/templates/frontend-only/generated/README.md +56 -0
  106. package/assets/templates/frontend-only/generated/code/integration-test.template.js +320 -0
  107. package/assets/templates/frontend-only/generated/code/package.json.template +34 -0
  108. package/assets/templates/frontend-only/generated/docs/README.md +49 -0
  109. package/assets/templates/frontend-only/gitignore +54 -0
  110. package/assets/templates/frontend-only/manifests/README.md +72 -0
  111. package/assets/templates/frontend-only/manifests/docker-compose.specly +91 -0
  112. package/assets/templates/frontend-only/manifests/implementation.yaml +58 -0
  113. package/assets/templates/frontend-only/manifests/kubernetes.specly +140 -0
  114. package/assets/templates/frontend-only/package.json +59 -0
  115. package/assets/templates/frontend-only/scripts/test-all.sh +160 -0
  116. package/assets/templates/frontend-only/scripts/test-generated-code.sh +165 -0
  117. package/assets/templates/frontend-only/specs/main.specly +57 -0
  118. package/assets/templates/full-stack/AI-GUIDE.md +60 -0
  119. package/assets/templates/full-stack/CLAUDE.md +141 -0
  120. package/assets/templates/full-stack/README.md +382 -0
  121. package/assets/templates/full-stack/archive/AI-GUIDE-legacy.md +392 -0
  122. package/assets/templates/full-stack/deployments/README.md +149 -0
  123. package/assets/templates/full-stack/deployments/development.specly +53 -0
  124. package/assets/templates/full-stack/deployments/production.specly +87 -0
  125. package/assets/templates/full-stack/docs/README.md +51 -0
  126. package/assets/templates/full-stack/docs/api/README.md +7 -0
  127. package/assets/templates/full-stack/docs/diagrams/README.md +85 -0
  128. package/assets/templates/full-stack/docs/example-documentation-template.md +269 -0
  129. package/assets/templates/full-stack/docs/guides/README.md +15 -0
  130. package/assets/templates/full-stack/generated/README.md +56 -0
  131. package/assets/templates/full-stack/generated/code/integration-test.template.js +320 -0
  132. package/assets/templates/full-stack/generated/code/package.json.template +34 -0
  133. package/assets/templates/full-stack/generated/docs/README.md +49 -0
  134. package/assets/templates/full-stack/gitignore +54 -0
  135. package/assets/templates/full-stack/manifests/README.md +72 -0
  136. package/assets/templates/full-stack/manifests/docker-compose.specly +91 -0
  137. package/assets/templates/full-stack/manifests/implementation.yaml +155 -0
  138. package/assets/templates/full-stack/manifests/kubernetes.specly +140 -0
  139. package/assets/templates/full-stack/package.json +45 -0
  140. package/assets/templates/full-stack/scripts/test-all.sh +160 -0
  141. package/assets/templates/full-stack/scripts/test-generated-code.sh +165 -0
  142. package/assets/templates/full-stack/specs/example-v33.specly +297 -0
  143. package/assets/templates/full-stack/specs/main-simple.specly +73 -0
  144. package/assets/templates/full-stack/specs/main.specly +408 -0
  145. package/dist/engines/code-generator.d.ts +86 -0
  146. package/dist/engines/code-generator.d.ts.map +1 -0
  147. package/dist/engines/code-generator.js +159 -0
  148. package/dist/engines/code-generator.js.map +1 -0
  149. package/dist/engines/engine-registry.d.ts +94 -0
  150. package/dist/engines/engine-registry.d.ts.map +1 -0
  151. package/dist/engines/engine-registry.js +163 -0
  152. package/dist/engines/engine-registry.js.map +1 -0
  153. package/dist/engines/index.d.ts +10 -0
  154. package/dist/engines/index.d.ts.map +1 -0
  155. package/dist/engines/index.js +12 -0
  156. package/dist/engines/index.js.map +1 -0
  157. package/dist/engines/typescript-engine.d.ts +74 -0
  158. package/dist/engines/typescript-engine.d.ts.map +1 -0
  159. package/dist/engines/typescript-engine.js +288 -0
  160. package/dist/engines/typescript-engine.js.map +1 -0
  161. package/dist/generators/index.d.ts +11 -0
  162. package/dist/generators/index.d.ts.map +1 -0
  163. package/dist/generators/index.js +11 -0
  164. package/dist/generators/index.js.map +1 -0
  165. package/dist/index.d.ts +48 -0
  166. package/dist/index.d.ts.map +1 -0
  167. package/dist/index.js +434 -0
  168. package/dist/index.js.map +1 -0
  169. package/dist/library/index.d.ts +12 -0
  170. package/dist/library/index.d.ts.map +1 -0
  171. package/dist/library/index.js +15 -0
  172. package/dist/library/index.js.map +1 -0
  173. package/dist/library/library.d.ts +132 -0
  174. package/dist/library/library.d.ts.map +1 -0
  175. package/dist/library/library.js +343 -0
  176. package/dist/library/library.js.map +1 -0
  177. package/dist/library/loader.d.ts +73 -0
  178. package/dist/library/loader.d.ts.map +1 -0
  179. package/dist/library/loader.js +150 -0
  180. package/dist/library/loader.js.map +1 -0
  181. package/dist/library/resolver.d.ts +104 -0
  182. package/dist/library/resolver.d.ts.map +1 -0
  183. package/dist/library/resolver.js +299 -0
  184. package/dist/library/resolver.js.map +1 -0
  185. package/dist/library/validator.d.ts +65 -0
  186. package/dist/library/validator.d.ts.map +1 -0
  187. package/dist/library/validator.js +203 -0
  188. package/dist/library/validator.js.map +1 -0
  189. package/dist/types/index.d.ts +7 -0
  190. package/dist/types/index.d.ts.map +1 -0
  191. package/dist/types/index.js +7 -0
  192. package/dist/types/index.js.map +1 -0
  193. package/dist/types/instance-factory.d.ts +289 -0
  194. package/dist/types/instance-factory.d.ts.map +1 -0
  195. package/dist/types/instance-factory.js +8 -0
  196. package/dist/types/instance-factory.js.map +1 -0
  197. package/dist/types/unified-mappings.d.ts +163 -0
  198. package/dist/types/unified-mappings.d.ts.map +1 -0
  199. package/dist/types/unified-mappings.js +110 -0
  200. package/dist/types/unified-mappings.js.map +1 -0
  201. package/dist/utils/ai-spec-loader.d.ts +77 -0
  202. package/dist/utils/ai-spec-loader.d.ts.map +1 -0
  203. package/dist/utils/ai-spec-loader.js +138 -0
  204. package/dist/utils/ai-spec-loader.js.map +1 -0
  205. package/dist/utils/index.d.ts +9 -0
  206. package/dist/utils/index.d.ts.map +1 -0
  207. package/dist/utils/index.js +9 -0
  208. package/dist/utils/index.js.map +1 -0
  209. package/dist/utils/manifest-loader.d.ts +107 -0
  210. package/dist/utils/manifest-loader.d.ts.map +1 -0
  211. package/dist/utils/manifest-loader.js +168 -0
  212. package/dist/utils/manifest-loader.js.map +1 -0
  213. package/dist/utils/mapping-migration.d.ts +53 -0
  214. package/dist/utils/mapping-migration.d.ts.map +1 -0
  215. package/dist/utils/mapping-migration.js +194 -0
  216. package/dist/utils/mapping-migration.js.map +1 -0
  217. package/libs/instance-factories/CURVED-INTERFACE.md +278 -0
  218. package/libs/instance-factories/README.md +433 -0
  219. package/libs/instance-factories/applications/generic-app.yaml +52 -0
  220. package/libs/instance-factories/applications/react-app.yaml +186 -0
  221. package/libs/instance-factories/applications/templates/generic/backend-env-generator.ts +31 -0
  222. package/libs/instance-factories/applications/templates/generic/backend-package-json-generator.ts +80 -0
  223. package/libs/instance-factories/applications/templates/generic/backend-tsconfig-generator.ts +69 -0
  224. package/libs/instance-factories/applications/templates/generic/main-generator.ts +308 -0
  225. package/libs/instance-factories/applications/templates/react/_view-components-source.ts +555 -0
  226. package/libs/instance-factories/applications/templates/react/api-client-generator.ts +436 -0
  227. package/libs/instance-factories/applications/templates/react/api-types-generator.ts +153 -0
  228. package/libs/instance-factories/applications/templates/react/app-tsx-generator.ts +94 -0
  229. package/libs/instance-factories/applications/templates/react/env-example-generator.ts +24 -0
  230. package/libs/instance-factories/applications/templates/react/field-helpers-generator.ts +106 -0
  231. package/libs/instance-factories/applications/templates/react/gitignore-generator.ts +38 -0
  232. package/libs/instance-factories/applications/templates/react/index-css-generator.ts +85 -0
  233. package/libs/instance-factories/applications/templates/react/index-html-generator.ts +30 -0
  234. package/libs/instance-factories/applications/templates/react/main-tsx-generator.ts +34 -0
  235. package/libs/instance-factories/applications/templates/react/package-json-generator.ts +54 -0
  236. package/libs/instance-factories/applications/templates/react/pattern-adapter-generator.ts +179 -0
  237. package/libs/instance-factories/applications/templates/react/react-pattern-adapter.tsx +1347 -0
  238. package/libs/instance-factories/applications/templates/react/relationship-field-generator.ts +150 -0
  239. package/libs/instance-factories/applications/templates/react/tailwind-adapter-generator.ts +704 -0
  240. package/libs/instance-factories/applications/templates/react/tailwind-adapter-wrapper-generator.ts +84 -0
  241. package/libs/instance-factories/applications/templates/react/tsconfig-generator.ts +35 -0
  242. package/libs/instance-factories/applications/templates/react/use-api-hooks-generator.ts +121 -0
  243. package/libs/instance-factories/applications/templates/react/view-dashboard-generator.ts +150 -0
  244. package/libs/instance-factories/applications/templates/react/view-detail-generator.ts +150 -0
  245. package/libs/instance-factories/applications/templates/react/view-form-generator.ts +362 -0
  246. package/libs/instance-factories/applications/templates/react/view-list-generator.ts +98 -0
  247. package/libs/instance-factories/applications/templates/react/view-router-generator.ts +89 -0
  248. package/libs/instance-factories/applications/templates/react/vite-config-generator.ts +49 -0
  249. package/libs/instance-factories/archived/fastify-prisma.yaml +104 -0
  250. package/libs/instance-factories/cli/commander-js.yaml +55 -0
  251. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.d.ts +12 -0
  252. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.d.ts.map +1 -0
  253. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.js +115 -0
  254. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.js.map +1 -0
  255. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.ts +145 -0
  256. package/libs/instance-factories/cli/templates/commander/command-generator.d.ts +14 -0
  257. package/libs/instance-factories/cli/templates/commander/command-generator.d.ts.map +1 -0
  258. package/libs/instance-factories/cli/templates/commander/command-generator.js +182 -0
  259. package/libs/instance-factories/cli/templates/commander/command-generator.js.map +1 -0
  260. package/libs/instance-factories/cli/templates/commander/command-generator.ts +992 -0
  261. package/libs/instance-factories/communication/event-emitter.yaml +56 -0
  262. package/libs/instance-factories/communication/rabbitmq-events.yaml +87 -0
  263. package/libs/instance-factories/communication/templates/eventemitter/bus-generator.ts +93 -0
  264. package/libs/instance-factories/communication/templates/eventemitter/publisher-generator.ts +117 -0
  265. package/libs/instance-factories/communication/templates/eventemitter/subscriber-generator.ts +101 -0
  266. package/libs/instance-factories/controllers/fastify.yaml +127 -0
  267. package/libs/instance-factories/controllers/templates/fastify/meta-routes-generator.ts +103 -0
  268. package/libs/instance-factories/controllers/templates/fastify/routes-generator.ts +389 -0
  269. package/libs/instance-factories/controllers/templates/fastify/server-generator.ts +76 -0
  270. package/libs/instance-factories/infrastructure/docker-k8s.yaml +61 -0
  271. package/libs/instance-factories/infrastructure/templates/docker-k8s/infrastructure-generator.ts +46 -0
  272. package/libs/instance-factories/orms/prisma.yaml +89 -0
  273. package/libs/instance-factories/orms/templates/prisma/schema-generator.ts +563 -0
  274. package/libs/instance-factories/orms/templates/prisma/services-generator.ts +408 -0
  275. package/libs/instance-factories/scaffolding/generic-scaffold.yaml +65 -0
  276. package/libs/instance-factories/scaffolding/templates/generic/env-example-generator.ts +73 -0
  277. package/libs/instance-factories/scaffolding/templates/generic/env-generator.ts +85 -0
  278. package/libs/instance-factories/scaffolding/templates/generic/gitignore-generator.ts +69 -0
  279. package/libs/instance-factories/scaffolding/templates/generic/package-json-generator.ts +176 -0
  280. package/libs/instance-factories/scaffolding/templates/generic/readme-generator.ts +207 -0
  281. package/libs/instance-factories/scaffolding/templates/generic/tsconfig-generator.ts +78 -0
  282. package/libs/instance-factories/scaffolding/templates/generic/tsconfig-react-generator.ts +41 -0
  283. package/libs/instance-factories/sdks/python-sdk.yaml +66 -0
  284. package/libs/instance-factories/sdks/templates/python/sdk-generator.ts +50 -0
  285. package/libs/instance-factories/sdks/templates/typescript/sdk-generator.ts +49 -0
  286. package/libs/instance-factories/sdks/typescript-sdk.yaml +59 -0
  287. package/libs/instance-factories/services/prisma-services.yaml +71 -0
  288. package/libs/instance-factories/services/templates/prisma/behavior-generator.ts +303 -0
  289. package/libs/instance-factories/services/templates/prisma/controller-generator.ts +532 -0
  290. package/libs/instance-factories/services/templates/prisma/service-generator.ts +315 -0
  291. package/libs/instance-factories/shared/path-resolver.ts +111 -0
  292. package/libs/instance-factories/storage/mongodb.yaml +79 -0
  293. package/libs/instance-factories/storage/postgresql.yaml +75 -0
  294. package/libs/instance-factories/storage/redis.yaml +79 -0
  295. package/libs/instance-factories/storage/templates/mongodb/config-generator.ts +15 -0
  296. package/libs/instance-factories/storage/templates/mongodb/docker-generator.ts +18 -0
  297. package/libs/instance-factories/storage/templates/postgresql/config-generator.ts +54 -0
  298. package/libs/instance-factories/storage/templates/postgresql/docker-generator.ts +55 -0
  299. package/libs/instance-factories/storage/templates/redis/config-generator.ts +16 -0
  300. package/libs/instance-factories/storage/templates/redis/docker-generator.ts +18 -0
  301. package/libs/instance-factories/test-generation.ts +192 -0
  302. package/libs/instance-factories/testing/templates/vitest/tests-generator.ts +51 -0
  303. package/libs/instance-factories/testing/vitest-tests.yaml +63 -0
  304. package/libs/instance-factories/tools/templates/mcp/mcp-server-generator.ts +136 -0
  305. package/libs/instance-factories/tools/templates/mcp/static/docs/DEPLOYMENT_GUIDE.md +630 -0
  306. package/libs/instance-factories/tools/templates/mcp/static/docs/HYBRID_RESOURCE_SYSTEM.md +330 -0
  307. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/EXTENSION_DEPLOYMENT.md +552 -0
  308. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/LOCAL_DEPLOYMENT.md +164 -0
  309. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/WEB_DEPLOYMENT.md +247 -0
  310. package/libs/instance-factories/tools/templates/mcp/static/package.json +92 -0
  311. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-enterprise.js +284 -0
  312. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-extension.js +139 -0
  313. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-local.js +74 -0
  314. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-web.js +156 -0
  315. package/libs/instance-factories/tools/templates/mcp/static/scripts/copy-canonical-files.js +41 -0
  316. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-deployments.js +259 -0
  317. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-hybrid-resources.js +231 -0
  318. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-hybrid-simple.js +196 -0
  319. package/libs/instance-factories/tools/templates/mcp/static/src/controllers/MCPServerController.ts +293 -0
  320. package/libs/instance-factories/tools/templates/mcp/static/src/events/EventEmitter.ts +90 -0
  321. package/libs/instance-factories/tools/templates/mcp/static/src/index.ts +24 -0
  322. package/libs/instance-factories/tools/templates/mcp/static/src/interfaces/ResourceProvider.ts +15 -0
  323. package/libs/instance-factories/tools/templates/mcp/static/src/models/LibrarySuggestion.ts +106 -0
  324. package/libs/instance-factories/tools/templates/mcp/static/src/models/SpecVerseResource.ts +75 -0
  325. package/libs/instance-factories/tools/templates/mcp/static/src/server/mcp-server.ts +239 -0
  326. package/libs/instance-factories/tools/templates/mcp/static/src/services/CLIProxyService.ts +1501 -0
  327. package/libs/instance-factories/tools/templates/mcp/static/src/services/EmbeddedResourcesAdapter.ts +211 -0
  328. package/libs/instance-factories/tools/templates/mcp/static/src/services/EntityModuleService.ts +308 -0
  329. package/libs/instance-factories/tools/templates/mcp/static/src/services/HybridResourcesProvider.ts +210 -0
  330. package/libs/instance-factories/tools/templates/mcp/static/src/services/LibraryToolsService.ts +356 -0
  331. package/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorBridge.ts +524 -0
  332. package/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorToolsService.ts +530 -0
  333. package/libs/instance-factories/tools/templates/mcp/static/src/services/PromptToolsService.ts +594 -0
  334. package/libs/instance-factories/tools/templates/mcp/static/src/services/ResourcesProviderService.ts +170 -0
  335. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/CLIProxyService.init.test.ts +544 -0
  336. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/CLIProxyService.test.ts +189 -0
  337. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/ResourcesProviderService.test.ts +89 -0
  338. package/libs/instance-factories/tools/templates/mcp/static/src/types/index.ts +110 -0
  339. package/libs/instance-factories/tools/templates/mcp/static/tsconfig.json +28 -0
  340. package/libs/instance-factories/tools/templates/vscode/static/extension.ts +1195 -0
  341. package/libs/instance-factories/tools/templates/vscode/static/language-configuration.json +34 -0
  342. package/libs/instance-factories/tools/templates/vscode/static/schemas/specverse-v3-schema.json +4279 -0
  343. package/libs/instance-factories/tools/templates/vscode/static/syntaxes/specverse.tmLanguage.json +138 -0
  344. package/libs/instance-factories/tools/templates/vscode/static/themes/README.md +74 -0
  345. package/libs/instance-factories/tools/templates/vscode/static/themes/complete-specverse-colors.json +122 -0
  346. package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-basic-theme.json +65 -0
  347. package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-complete-theme.json +123 -0
  348. package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-theme-colors.json +64 -0
  349. package/libs/instance-factories/tools/templates/vscode/vscode-extension-generator.ts +214 -0
  350. package/libs/instance-factories/validation/templates/zod/validation-generator.ts +46 -0
  351. package/libs/instance-factories/validation/zod.yaml +56 -0
  352. package/libs/instance-factories/views/index.d.ts +13 -0
  353. package/libs/instance-factories/views/index.d.ts.map +1 -0
  354. package/libs/instance-factories/views/index.js +18 -0
  355. package/libs/instance-factories/views/index.js.map +1 -0
  356. package/libs/instance-factories/views/index.ts +45 -0
  357. package/libs/instance-factories/views/react-components.yaml +129 -0
  358. package/libs/instance-factories/views/templates/ARCHITECTURE.md +198 -0
  359. package/libs/instance-factories/views/templates/react/adapters/antd-adapter.ts +869 -0
  360. package/libs/instance-factories/views/templates/react/adapters/mui-adapter.ts +953 -0
  361. package/libs/instance-factories/views/templates/react/adapters/shadcn-adapter.ts +806 -0
  362. package/libs/instance-factories/views/templates/react/app-generator.ts +55 -0
  363. package/libs/instance-factories/views/templates/react/components-generator.ts +391 -0
  364. package/libs/instance-factories/views/templates/react/forms-generator.ts +343 -0
  365. package/libs/instance-factories/views/templates/react/frontend-package-json-generator.ts +54 -0
  366. package/libs/instance-factories/views/templates/react/hooks-generator.ts +122 -0
  367. package/libs/instance-factories/views/templates/react/index-css-generator.ts +209 -0
  368. package/libs/instance-factories/views/templates/react/index-html-generator.ts +34 -0
  369. package/libs/instance-factories/views/templates/react/main-tsx-generator.ts +29 -0
  370. package/libs/instance-factories/views/templates/react/react-component-generator.d.ts +152 -0
  371. package/libs/instance-factories/views/templates/react/react-component-generator.d.ts.map +1 -0
  372. package/libs/instance-factories/views/templates/react/react-component-generator.js +398 -0
  373. package/libs/instance-factories/views/templates/react/react-component-generator.js.map +1 -0
  374. package/libs/instance-factories/views/templates/react/react-component-generator.ts +533 -0
  375. package/libs/instance-factories/views/templates/react/router-generator.ts +197 -0
  376. package/libs/instance-factories/views/templates/react/router-generic-generator.ts +103 -0
  377. package/libs/instance-factories/views/templates/react/spec-json-generator.ts +17 -0
  378. package/libs/instance-factories/views/templates/react/types-generator.ts +76 -0
  379. package/libs/instance-factories/views/templates/react/views-metadata-generator.ts +42 -0
  380. package/libs/instance-factories/views/templates/react/vite-config-generator.ts +38 -0
  381. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.d.ts.map +1 -0
  382. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.js.map +1 -0
  383. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.ts +474 -0
  384. package/libs/instance-factories/views/templates/shared/__tests__/composite-patterns.test.ts +242 -0
  385. package/libs/instance-factories/views/templates/shared/adapter-types.d.ts +77 -0
  386. package/libs/instance-factories/views/templates/shared/adapter-types.d.ts.map +1 -0
  387. package/libs/instance-factories/views/templates/shared/adapter-types.js +47 -0
  388. package/libs/instance-factories/views/templates/shared/adapter-types.js.map +1 -0
  389. package/libs/instance-factories/views/templates/shared/adapter-types.ts +142 -0
  390. package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts +63 -0
  391. package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts.map +1 -0
  392. package/libs/instance-factories/views/templates/shared/atomic-components-registry.js +822 -0
  393. package/libs/instance-factories/views/templates/shared/atomic-components-registry.js.map +1 -0
  394. package/libs/instance-factories/views/templates/shared/atomic-components-registry.ts +908 -0
  395. package/libs/instance-factories/views/templates/shared/base-generator.d.ts +247 -0
  396. package/libs/instance-factories/views/templates/shared/base-generator.d.ts.map +1 -0
  397. package/libs/instance-factories/views/templates/shared/base-generator.js +363 -0
  398. package/libs/instance-factories/views/templates/shared/base-generator.js.map +1 -0
  399. package/libs/instance-factories/views/templates/shared/base-generator.ts +608 -0
  400. package/libs/instance-factories/views/templates/shared/component-metadata.d.ts +254 -0
  401. package/libs/instance-factories/views/templates/shared/component-metadata.d.ts.map +1 -0
  402. package/libs/instance-factories/views/templates/shared/component-metadata.js +602 -0
  403. package/libs/instance-factories/views/templates/shared/component-metadata.js.map +1 -0
  404. package/libs/instance-factories/views/templates/shared/component-metadata.ts +803 -0
  405. package/libs/instance-factories/views/templates/shared/composite-pattern-types.ts +250 -0
  406. package/libs/instance-factories/views/templates/shared/composite-patterns.ts +535 -0
  407. package/libs/instance-factories/views/templates/shared/index.ts +68 -0
  408. package/libs/instance-factories/views/templates/shared/pattern-validator.ts +279 -0
  409. package/libs/instance-factories/views/templates/shared/property-mapper.d.ts +149 -0
  410. package/libs/instance-factories/views/templates/shared/property-mapper.d.ts.map +1 -0
  411. package/libs/instance-factories/views/templates/shared/property-mapper.js +580 -0
  412. package/libs/instance-factories/views/templates/shared/property-mapper.js.map +1 -0
  413. package/libs/instance-factories/views/templates/shared/property-mapper.ts +700 -0
  414. package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts +143 -0
  415. package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts.map +1 -0
  416. package/libs/instance-factories/views/templates/shared/syntax-mapper.js +420 -0
  417. package/libs/instance-factories/views/templates/shared/syntax-mapper.js.map +1 -0
  418. package/libs/instance-factories/views/templates/shared/syntax-mapper.ts +539 -0
  419. package/package.json +42 -0
  420. package/schema/SPECVERSE-SCHEMA.json +4274 -0
@@ -0,0 +1,247 @@
1
+ # Web Deployment Guide
2
+
3
+ ## Overview
4
+
5
+ Web deployment is optimized for web-based LLM environments (Claude.ai, ChatGPT, etc.) where users cannot run local processes but need access to SpecVerse AI assistance via HTTP APIs.
6
+
7
+ ## Features (Phase 3 Updated)
8
+
9
+ - ✅ **AI API Integration**: All tools powered by @specverse/lang AI API
10
+ - ✅ **Embedded Examples**: Essential examples bundled (~71KB total)
11
+ - ✅ **HTTP API**: RESTful endpoints for resource access
12
+ - ✅ **Serverless Ready**: Works on Vercel, Railway, Render
13
+ - ✅ **Zero Dependencies**: No file system access required
14
+ - ✅ **Fast Startup**: ~50ms startup time
15
+ - ✅ **Lightweight**: ~200KB deployment size (96KB smaller than before!)
16
+ - ✅ **CORS Support**: Web-browser compatible
17
+
18
+ ## Quick Start
19
+
20
+ ```bash
21
+ # Build web deployment
22
+ npm run build:web
23
+
24
+ # Test locally
25
+ npm run start:web
26
+
27
+ # Deploy to Vercel (recommended)
28
+ npm run deploy:vercel
29
+ ```
30
+
31
+ **Live Demo**: https://specverse-crezbwpnl-specverse.vercel.app
32
+
33
+ ## Architecture
34
+
35
+ ```
36
+ Web Browser (LLM Terminal)
37
+ ↓ HTTP Requests
38
+ Cloud Platform (Vercel/Railway/Render)
39
+
40
+ SpecVerse MCP Web Server
41
+ ↓ AI API Integration
42
+ @specverse/lang AI API (Contextual Responses)
43
+ ```
44
+
45
+ ## Directory Structure (Phase 3 Optimized)
46
+
47
+ ```
48
+ dist/web/
49
+ ├── server/
50
+ │ └── mcp-server.js # HTTP server (entry point)
51
+ ├── embedded-resources.js # Examples only (~71KB - was 167KB!)
52
+ ├── deployment-manifest.json # Deployment metadata
53
+ ├── config.json # Web configuration
54
+ ├── controllers/ # Request handlers
55
+ ├── services/ # AI-powered services
56
+ └── vercel.json # Vercel deployment config
57
+ ```
58
+
59
+ ## Available Endpoints
60
+
61
+ ### Health Check
62
+ ```bash
63
+ GET /health
64
+ ```
65
+
66
+ ### MCP Resource Access
67
+ ```bash
68
+ # List all resources
69
+ GET /mcp/resources
70
+
71
+ # Get specific resource
72
+ GET /mcp/resource/{uri}
73
+
74
+ # Example
75
+ GET /mcp/resource/specverse%3A%2F%2Fexamples%2Fchat-prompts
76
+ ```
77
+
78
+ ### Available Resources (Phase 3 Streamlined)
79
+ - `specverse://examples/chat-prompts` - Chat integration examples
80
+ - `specverse://examples/api-calls` - API integration examples
81
+
82
+ **Note**: Schemas and library information now provided through AI tools for better contextual responses.
83
+
84
+ ## MCP Tools Available
85
+
86
+ All 8 AI-powered tools work in web deployment:
87
+
88
+ ### Core AI Tools
89
+ 1. `get_creation_prompt` - AI-powered creation prompts
90
+ 2. `get_analysis_prompt` - AI-powered analysis prompts
91
+ 3. `get_implementation_prompt` - AI-powered implementation prompts
92
+ 4. `get_realization_prompt` - AI-powered realization prompts
93
+ 5. `create_spec_prompt` - Alternative creation prompt name
94
+ 6. `mcp_ai_enhance` - Enhanced prompts with library context ⭐ NEW
95
+ 7. `mcp_library_suggest` - Intelligent library suggestions ⭐ NEW
96
+ 8. `mcp_cost_estimate` - Cost estimates for operations ⭐ NEW
97
+
98
+ **Note**: Orchestrator tools are disabled in web deployment for security and performance.
99
+
100
+ ## Deployment Platforms
101
+
102
+ ### Vercel (Recommended)
103
+
104
+ 1. **Setup**:
105
+ ```bash
106
+ npm install -g vercel
107
+ ```
108
+
109
+ 2. **Deploy**:
110
+ ```bash
111
+ # Build for web
112
+ npm run build:web
113
+
114
+ # Deploy to Vercel
115
+ cd dist/web && vercel
116
+ ```
117
+
118
+ 3. **Environment Variables**: None required (uses embedded resources)
119
+
120
+ ### Railway
121
+
122
+ 1. **Setup**: Connect GitHub repository to Railway
123
+ 2. **Build Command**: `npm run build:web`
124
+ 3. **Start Command**: `node dist/web/server/mcp-server.js --mode web`
125
+
126
+ ### Render
127
+
128
+ 1. **Setup**: Connect GitHub repository to Render
129
+ 2. **Build Command**: `npm run build:web`
130
+ 3. **Start Command**: `node dist/web/server/mcp-server.js --mode web --port $PORT`
131
+
132
+ ## Configuration
133
+
134
+ ### Web Config (dist/web/config.json)
135
+ ```json
136
+ {
137
+ "mode": "web",
138
+ "features": {
139
+ "orchestrator": false,
140
+ "fileSystemResources": false,
141
+ "embeddedResources": true
142
+ },
143
+ "resourcesStrategy": "embedded",
144
+ "embeddedResourcesCount": 2,
145
+ "aiApiIntegration": true
146
+ }
147
+ ```
148
+
149
+ ### Vercel Config (vercel.json)
150
+ ```json
151
+ {
152
+ "version": 2,
153
+ "builds": [
154
+ {
155
+ "src": "dist/web/server/mcp-server.js",
156
+ "use": "@vercel/node"
157
+ }
158
+ ],
159
+ "routes": [
160
+ {
161
+ "src": "/(.*)",
162
+ "dest": "dist/web/server/mcp-server.js"
163
+ }
164
+ ]
165
+ }
166
+ ```
167
+
168
+ ## Phase 3 Improvements
169
+
170
+ ✅ **AI API Integration**: All responses are now contextual and intelligent
171
+ ✅ **Smaller Package**: 96KB reduction (71KB vs 167KB previously)
172
+ ✅ **Better Performance**: AI-generated responses vs static file serving
173
+ ✅ **Simplified Architecture**: No need to serve schemas/prompts as resources
174
+
175
+ ## Performance
176
+
177
+ - **Cold Start**: ~50ms (serverless)
178
+ - **Warm Response**: ~10ms (cached)
179
+ - **AI Tool Execution**: 200-2000ms (@specverse/lang API calls)
180
+ - **Resource Loading**: <1ms (embedded)
181
+ - **Memory Usage**: ~30MB
182
+
183
+ ## Monitoring
184
+
185
+ ### Health Endpoint Response
186
+ ```json
187
+ {
188
+ "status": "healthy",
189
+ "version": "1.1.7",
190
+ "mode": "web",
191
+ "features": {
192
+ "orchestrator": false,
193
+ "embeddedResources": true
194
+ },
195
+ "resourcesCount": 2,
196
+ "uptime": "00:15:32",
197
+ "memoryUsage": {
198
+ "used": "28.5 MB",
199
+ "total": "512 MB"
200
+ }
201
+ }
202
+ ```
203
+
204
+ ## Integration Examples
205
+
206
+ ### Web Browser LLM
207
+ ```javascript
208
+ // Example: Fetch creation prompt
209
+ const response = await fetch('https://your-domain.com/mcp/resource/specverse%3A%2F%2Fexamples%2Fchat-prompts');
210
+ const examples = await response.text();
211
+ ```
212
+
213
+ ### Curl Testing
214
+ ```bash
215
+ # Health check
216
+ curl https://your-domain.com/health
217
+
218
+ # List resources
219
+ curl https://your-domain.com/mcp/resources
220
+
221
+ # Get chat examples
222
+ curl "https://your-domain.com/mcp/resource/specverse%3A%2F%2Fexamples%2Fchat-prompts"
223
+ ```
224
+
225
+ ## Troubleshooting
226
+
227
+ ### Common Issues
228
+
229
+ 1. **Build fails**: Ensure all dependencies installed with `npm install`
230
+ 2. **404 errors**: Check route configuration in platform settings
231
+ 3. **CORS errors**: Ensure CORS headers are enabled (default: yes)
232
+ 4. **Slow AI responses**: Normal - AI API calls take 200-2000ms
233
+
234
+ ### Debug Logs
235
+
236
+ ```bash
237
+ # Local testing with verbose logging
238
+ npm run start:web -- --verbose
239
+ ```
240
+
241
+ ## Security
242
+
243
+ - ✅ **No file system access** - Uses embedded resources only
244
+ - ✅ **No sensitive data** - All resources are public examples
245
+ - ✅ **CORS enabled** - Web browser compatible
246
+ - ✅ **Rate limiting** - Built into AI API calls
247
+ - ⚠️ **No authentication** - Consider adding auth for production use
@@ -0,0 +1,92 @@
1
+ {
2
+ "name": "@specverse/mcp",
3
+ "version": "3.5.2",
4
+ "description": "SpecVerse MCP Server - Universal AI assistance for all environments",
5
+ "type": "module",
6
+ "main": "dist/server/mcp-server.js",
7
+ "types": "dist/server/mcp-server.d.ts",
8
+ "bin": {
9
+ "specverse-mcp": "dist/local/server/mcp-server.js"
10
+ },
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "prebuild": "node scripts/copy-canonical-files.js",
14
+ "build:all": "npm run clean && npm run build:local && npm run build:web && npm run build:extension && npm run build:enterprise",
15
+ "build:local": "node scripts/build-local.js",
16
+ "build:web": "node scripts/build-web.js",
17
+ "build:extension": "node scripts/build-extension.js",
18
+ "build:enterprise": "node scripts/build-enterprise.js",
19
+ "dev": "tsc --watch",
20
+ "start": "node dist/server/mcp-server.js",
21
+ "start:local": "node dist/local/server/mcp-server.js --mode local",
22
+ "start:web": "node dist/web/server/mcp-server.js --mode remote --port 3000",
23
+ "start:enterprise": "node dist/enterprise/server/mcp-server.js --mode enterprise --port 3000",
24
+ "docker:build": "cd dist/enterprise && docker build -t specverse-mcp-enterprise .",
25
+ "docker:run": "docker run -p 3000:3000 specverse-mcp-enterprise",
26
+ "docker:compose": "cd dist/enterprise && docker-compose up -d",
27
+ "test": "vitest run",
28
+ "test:unit": "vitest src/tests/unit",
29
+ "test:integration": "vitest src/tests/integration",
30
+ "test:coverage": "vitest --coverage",
31
+ "lint": "eslint src/**/*.ts",
32
+ "lint:fix": "eslint src/**/*.ts --fix",
33
+ "clean": "rm -rf dist/",
34
+ "prepublishOnly": "npm run clean && npm run build:local"
35
+ },
36
+ "keywords": [
37
+ "mcp",
38
+ "model-context-protocol",
39
+ "specverse",
40
+ "ai-support",
41
+ "prompt-templates",
42
+ "clean-implementation"
43
+ ],
44
+ "author": "SpecVerse Team",
45
+ "license": "MIT",
46
+ "dependencies": {
47
+ "@modelcontextprotocol/sdk": "^1.17.4",
48
+ "@specverse/lang": "^3.3.1",
49
+ "yaml": "^2.8.1",
50
+ "zod": "^3.25.76"
51
+ },
52
+ "peerDependencies": {
53
+ "@specverse/lang": "^3.2.0"
54
+ },
55
+ "devDependencies": {
56
+ "@types/node": "^20.19.11",
57
+ "@typescript-eslint/eslint-plugin": "^7.0.0",
58
+ "@typescript-eslint/parser": "^7.0.0",
59
+ "@vitest/coverage-v8": "^1.6.1",
60
+ "eslint": "^8.57.0",
61
+ "typescript": "^5.9.2",
62
+ "vitest": "^1.6.1"
63
+ },
64
+ "files": [
65
+ "dist/local/",
66
+ "resources/",
67
+ "README.md"
68
+ ],
69
+ "repository": {
70
+ "type": "git",
71
+ "url": "https://github.com/specverse/specverse-lang.git",
72
+ "directory": "tools/specverse-mcp"
73
+ },
74
+ "engines": {
75
+ "node": ">=18.0.0"
76
+ },
77
+ "publishConfig": {
78
+ "access": "public"
79
+ },
80
+ "mcp": {
81
+ "server": {
82
+ "name": "specverse-ai-support-clean",
83
+ "version": "1.0.0",
84
+ "capabilities": {
85
+ "resources": true,
86
+ "tools": true,
87
+ "prompts": false,
88
+ "logging": true
89
+ }
90
+ }
91
+ }
92
+ }
@@ -0,0 +1,284 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Build Script for Enterprise Deployment
4
+ * Builds containerized version with full capabilities and monitoring
5
+ */
6
+
7
+ import { execSync } from 'child_process';
8
+ import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs';
9
+ import { join, dirname } from 'path';
10
+ import { fileURLToPath } from 'url';
11
+
12
+ const __dirname = dirname(fileURLToPath(import.meta.url));
13
+ const rootDir = join(__dirname, '..');
14
+
15
+ const verbose = process.env.VERBOSE === 'true';
16
+ if (verbose) console.log('🔨 Building for ENTERPRISE deployment...');
17
+
18
+ // Clean and create directories
19
+ const distDir = join(rootDir, 'dist', 'enterprise');
20
+ if (!existsSync(distDir)) {
21
+ mkdirSync(distDir, { recursive: true });
22
+ }
23
+
24
+ // Build TypeScript
25
+ if (verbose) console.log('📦 Compiling TypeScript...');
26
+ execSync('npx tsc --outDir dist/enterprise', {
27
+ cwd: rootDir,
28
+ stdio: 'inherit'
29
+ });
30
+
31
+ // Copy resources
32
+ if (verbose) console.log('📁 Copying resources...');
33
+ const resourcesDir = join(rootDir, 'resources');
34
+ if (existsSync(resourcesDir)) {
35
+ execSync(`cp -r resources dist/enterprise/`, { cwd: rootDir, stdio: 'inherit' });
36
+ }
37
+
38
+ // Create Dockerfile
39
+ if (verbose) console.log('🐳 Creating Dockerfile...');
40
+ const dockerfile = `# Multi-stage build for Enterprise SpecVerse MCP Server
41
+ FROM node:18-alpine AS builder
42
+
43
+ WORKDIR /app
44
+ COPY package*.json ./
45
+ RUN npm ci --only=production
46
+
47
+ FROM node:18-alpine AS runtime
48
+
49
+ # Install system dependencies
50
+ RUN apk add --no-cache \
51
+ tini \
52
+ curl \
53
+ && addgroup -g 1001 -S nodejs \
54
+ && adduser -S specverse -u 1001
55
+
56
+ WORKDIR /app
57
+
58
+ # Copy built application
59
+ COPY --from=builder /app/node_modules ./node_modules
60
+ COPY --chown=specverse:nodejs dist/enterprise ./
61
+ COPY --chown=specverse:nodejs resources ./resources
62
+
63
+ # Create data and logs directories
64
+ RUN mkdir -p /app/data /app/logs \
65
+ && chown -R specverse:nodejs /app/data /app/logs
66
+
67
+ # Health check
68
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
69
+ CMD curl -f http://localhost:3000/health || exit 1
70
+
71
+ # Security settings
72
+ USER specverse
73
+ EXPOSE 3000
74
+
75
+ # Use tini for proper signal handling
76
+ ENTRYPOINT ["/sbin/tini", "--"]
77
+ CMD ["node", "server/mcp-server.js", "--mode", "enterprise", "--port", "3000"]
78
+ `;
79
+
80
+ writeFileSync(join(distDir, 'Dockerfile'), dockerfile);
81
+
82
+ // Create docker-compose.yml for full stack
83
+ const dockerCompose = `version: '3.8'
84
+
85
+ services:
86
+ specverse-mcp:
87
+ build: .
88
+ ports:
89
+ - "3000:3000"
90
+ environment:
91
+ - NODE_ENV=production
92
+ - MCP_MODE=enterprise
93
+ - RESOURCES_STRATEGY=hybrid
94
+ - PROMETHEUS_ENABLED=true
95
+ - LOG_LEVEL=info
96
+ volumes:
97
+ - specverse-data:/app/data
98
+ - specverse-logs:/app/logs
99
+ restart: unless-stopped
100
+ healthcheck:
101
+ test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
102
+ interval: 30s
103
+ timeout: 10s
104
+ retries: 3
105
+ start_period: 30s
106
+ deploy:
107
+ resources:
108
+ limits:
109
+ memory: 512M
110
+ cpus: '1.0'
111
+ reservations:
112
+ memory: 256M
113
+ cpus: '0.5'
114
+
115
+ prometheus:
116
+ image: prom/prometheus:latest
117
+ ports:
118
+ - "9090:9090"
119
+ volumes:
120
+ - ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml
121
+ - prometheus-data:/prometheus
122
+ command:
123
+ - '--config.file=/etc/prometheus/prometheus.yml'
124
+ - '--storage.tsdb.path=/prometheus'
125
+ - '--web.console.libraries=/etc/prometheus/console_libraries'
126
+ - '--web.console.templates=/etc/prometheus/consoles'
127
+ - '--storage.tsdb.retention.time=15d'
128
+ - '--web.enable-lifecycle'
129
+ restart: unless-stopped
130
+
131
+ grafana:
132
+ image: grafana/grafana:latest
133
+ ports:
134
+ - "3001:3000"
135
+ environment:
136
+ - GF_SECURITY_ADMIN_PASSWORD=specverse
137
+ volumes:
138
+ - grafana-data:/var/lib/grafana
139
+ - ./monitoring/grafana/dashboards:/etc/grafana/provisioning/dashboards
140
+ - ./monitoring/grafana/datasources:/etc/grafana/provisioning/datasources
141
+ restart: unless-stopped
142
+
143
+ volumes:
144
+ specverse-data:
145
+ specverse-logs:
146
+ prometheus-data:
147
+ grafana-data:
148
+
149
+ networks:
150
+ default:
151
+ name: specverse-network
152
+ `;
153
+
154
+ writeFileSync(join(distDir, 'docker-compose.yml'), dockerCompose);
155
+
156
+ // Create monitoring configuration
157
+ if (verbose) console.log('📊 Creating monitoring configuration...');
158
+ const monitoringDir = join(distDir, 'monitoring');
159
+ mkdirSync(monitoringDir, { recursive: true });
160
+
161
+ const prometheusConfig = `global:
162
+ scrape_interval: 15s
163
+ evaluation_interval: 15s
164
+
165
+ rule_files:
166
+ - "rules/*.yml"
167
+
168
+ scrape_configs:
169
+ - job_name: 'specverse-mcp'
170
+ static_configs:
171
+ - targets: ['specverse-mcp:3000']
172
+ scrape_interval: 10s
173
+ metrics_path: '/metrics'
174
+
175
+ - job_name: 'node-exporter'
176
+ static_configs:
177
+ - targets: ['node-exporter:9100']
178
+ `;
179
+
180
+ writeFileSync(join(monitoringDir, 'prometheus.yml'), prometheusConfig);
181
+
182
+ // Create enterprise-specific configuration
183
+ if (verbose) console.log('⚙️ Creating enterprise configuration...');
184
+ const enterpriseConfig = `{
185
+ "mode": "enterprise",
186
+ "features": {
187
+ "orchestrator": true,
188
+ "fileSystemResources": true,
189
+ "embeddedResources": true,
190
+ "monitoring": true,
191
+ "clustering": true,
192
+ "healthCheck": true
193
+ },
194
+ "resourcesPath": "./resources",
195
+ "monitoring": {
196
+ "prometheus": {
197
+ "enabled": true,
198
+ "port": 9090,
199
+ "endpoint": "/metrics"
200
+ },
201
+ "healthCheck": {
202
+ "enabled": true,
203
+ "endpoint": "/health",
204
+ "interval": 30
205
+ }
206
+ },
207
+ "clustering": {
208
+ "enabled": false,
209
+ "nodes": 1,
210
+ "loadBalancer": "round-robin"
211
+ },
212
+ "security": {
213
+ "cors": {
214
+ "enabled": true,
215
+ "origins": ["https://*.enterprise.com"]
216
+ },
217
+ "rateLimit": {
218
+ "enabled": true,
219
+ "windowMs": 60000,
220
+ "maxRequests": 1000
221
+ }
222
+ }
223
+ }`;
224
+
225
+ writeFileSync(join(distDir, 'config.json'), enterpriseConfig);
226
+
227
+ // Create deployment documentation
228
+ const deploymentDocs = `# Enterprise Deployment Guide
229
+
230
+ ## Quick Start
231
+
232
+ 1. Build the container:
233
+ \`\`\`bash
234
+ docker build -t specverse-mcp-enterprise .
235
+ \`\`\`
236
+
237
+ 2. Start the full stack:
238
+ \`\`\`bash
239
+ docker-compose up -d
240
+ \`\`\`
241
+
242
+ 3. Access services:
243
+ - MCP Server: http://localhost:3000
244
+ - Prometheus: http://localhost:9090
245
+ - Grafana: http://localhost:3001 (admin/specverse)
246
+
247
+ ## Configuration
248
+
249
+ Enterprise configuration supports:
250
+ - Multi-node clustering
251
+ - Prometheus metrics
252
+ - Health checks
253
+ - CORS and rate limiting
254
+ - Volume persistence
255
+
256
+ ## Monitoring
257
+
258
+ - Prometheus metrics at /metrics
259
+ - Health check at /health
260
+ - Grafana dashboards pre-configured
261
+ - Alert rules for service availability
262
+
263
+ ## Security
264
+
265
+ - Runs as non-root user
266
+ - Resource limits configured
267
+ - Security contexts applied
268
+ - Network policies supported
269
+
270
+ ## Scaling
271
+
272
+ Use Docker Swarm or Kubernetes for production scaling:
273
+ \`\`\`bash
274
+ docker service create --replicas 3 specverse-mcp-enterprise
275
+ \`\`\`
276
+ `;
277
+
278
+ writeFileSync(join(distDir, 'README.md'), deploymentDocs);
279
+
280
+ if (verbose) console.log('✅ Enterprise build complete!');
281
+ if (verbose) console.log('📍 Output: dist/enterprise/');
282
+ if (verbose) console.log('🐳 Docker configuration ready');
283
+ if (verbose) console.log('📊 Monitoring stack included');
284
+ if (verbose) console.log('🚀 Deploy with: docker-compose up -d');