@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,320 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Integration Test for Generated Code
5
+ *
6
+ * Tests that generated services and routes actually execute correctly:
7
+ * - Service methods can be called
8
+ * - Validation works
9
+ * - Database operations execute (with mock)
10
+ * - Event publishing happens
11
+ */
12
+
13
+ import { fileURLToPath } from 'url';
14
+ import { dirname, join } from 'path';
15
+ import { existsSync } from 'fs';
16
+
17
+ const __filename = fileURLToPath(import.meta.url);
18
+ const __dirname = dirname(__filename);
19
+
20
+ // ANSI color codes
21
+ const GREEN = '\x1b[32m';
22
+ const RED = '\x1b[31m';
23
+ const YELLOW = '\x1b[33m';
24
+ const BLUE = '\x1b[34m';
25
+ const RESET = '\x1b[0m';
26
+
27
+ let testsPassed = 0;
28
+ let testsFailed = 0;
29
+
30
+ function log(message, color = RESET) {
31
+ console.log(`${color}${message}${RESET}`);
32
+ }
33
+
34
+ function assert(condition, message) {
35
+ if (condition) {
36
+ log(` ✅ ${message}`, GREEN);
37
+ testsPassed++;
38
+ return true;
39
+ } else {
40
+ log(` ❌ ${message}`, RED);
41
+ testsFailed++;
42
+ return false;
43
+ }
44
+ }
45
+
46
+ // Mock database and event bus
47
+ class MockDatabase {
48
+ constructor() {
49
+ this.data = new Map();
50
+ this.operations = [];
51
+ }
52
+
53
+ create(model, data) {
54
+ const id = data.id || Math.random().toString(36);
55
+ const record = { ...data, id, createdAt: new Date(), version: 0 };
56
+ this.data.set(id, record);
57
+ this.operations.push({ type: 'create', model, data: record });
58
+ return record;
59
+ }
60
+
61
+ findOne(model, where) {
62
+ for (const [id, record] of this.data.entries()) {
63
+ if (where.id === id && (!where.deletedAt || record.deletedAt === where.deletedAt)) {
64
+ return record;
65
+ }
66
+ }
67
+ return null;
68
+ }
69
+
70
+ update(model, id, data) {
71
+ const record = this.data.get(id);
72
+ if (!record) return null;
73
+
74
+ const updated = { ...record, ...data, updatedAt: new Date(), version: record.version + 1 };
75
+ this.data.set(id, updated);
76
+ this.operations.push({ type: 'update', model, id, data: updated });
77
+ return updated;
78
+ }
79
+
80
+ delete(model, id) {
81
+ const record = this.data.get(id);
82
+ if (!record) return null;
83
+
84
+ // Soft delete
85
+ record.deletedAt = new Date();
86
+ this.data.set(id, record);
87
+ this.operations.push({ type: 'delete', model, id });
88
+ return record;
89
+ }
90
+ }
91
+
92
+ class MockEventBus {
93
+ constructor() {
94
+ this.events = [];
95
+ }
96
+
97
+ async publish(eventName, payload) {
98
+ this.events.push({ eventName, payload, timestamp: new Date() });
99
+ }
100
+
101
+ getEvents() {
102
+ return this.events;
103
+ }
104
+ }
105
+
106
+ async function runTests() {
107
+ log('\n🧪 Running Integration Tests for Generated Code\n', BLUE);
108
+
109
+ // Test 1: Check file structure
110
+ log('Test Suite 1: File Structure', BLUE);
111
+ assert(existsSync(join(__dirname, 'services')), 'Services directory exists');
112
+ assert(existsSync(join(__dirname, 'routes')), 'Routes directory exists');
113
+
114
+ // Test 2: Load and instantiate service
115
+ log('\nTest Suite 2: Service Instantiation', BLUE);
116
+
117
+ const db = new MockDatabase();
118
+ const eventBus = new MockEventBus();
119
+
120
+ let ServiceClass;
121
+ let serviceName;
122
+
123
+ // Try to find a service file
124
+ const { readdirSync } = await import('fs');
125
+ const serviceFiles = readdirSync(join(__dirname, 'services')).filter(f => f.endsWith('.service.ts'));
126
+
127
+ if (serviceFiles.length === 0) {
128
+ log(' ⚠️ No service files found to test', YELLOW);
129
+ return;
130
+ }
131
+
132
+ serviceName = serviceFiles[0].replace('.service.ts', '');
133
+ log(` 📝 Testing service: ${serviceName}`, BLUE);
134
+
135
+ try {
136
+ // Note: This requires tsx or ts-node to run TypeScript directly
137
+ // For production testing, compile to JS first
138
+ const servicePath = join(__dirname, 'services', serviceFiles[0]);
139
+
140
+ log(` → Attempting to load service from: ${servicePath}`);
141
+
142
+ // This is a demonstration - actual loading would need proper TS support
143
+ assert(existsSync(servicePath), `Service file exists: ${serviceFiles[0]}`);
144
+
145
+ } catch (error) {
146
+ log(` ⚠️ Service loading requires TypeScript compilation: ${error.message}`, YELLOW);
147
+ }
148
+
149
+ // Test 3: Validate method structure (by reading source)
150
+ log('\nTest Suite 3: v3.3 Feature Detection', BLUE);
151
+
152
+ const { readFileSync } = await import('fs');
153
+ const serviceContent = readFileSync(join(__dirname, 'services', serviceFiles[0]), 'utf-8');
154
+
155
+ // Check for v3.3 features
156
+ assert(
157
+ serviceContent.includes('validate(data'),
158
+ 'Service has unified validate() method'
159
+ );
160
+
161
+ assert(
162
+ serviceContent.includes("operation: 'create' | 'update' | 'evolve'"),
163
+ 'Validate method accepts operation context'
164
+ );
165
+
166
+ assert(
167
+ serviceContent.includes('this.validate(data,'),
168
+ 'CURED operations call validate() internally'
169
+ );
170
+
171
+ assert(
172
+ serviceContent.includes('version mismatch') || serviceContent.includes('version'),
173
+ 'Optimistic locking (version checking) present'
174
+ );
175
+
176
+ assert(
177
+ serviceContent.includes('deletedAt: null') || serviceContent.includes('isDeleted:'),
178
+ 'Soft delete filtering present'
179
+ );
180
+
181
+ assert(
182
+ serviceContent.includes('eventBus.publish'),
183
+ 'Event publishing present'
184
+ );
185
+
186
+ // Test 4: Route structure
187
+ log('\nTest Suite 4: Route Structure', BLUE);
188
+
189
+ const routeDirs = readdirSync(join(__dirname, 'routes')).filter(f => {
190
+ const stat = require('fs').statSync(join(__dirname, 'routes', f));
191
+ return stat.isDirectory();
192
+ });
193
+
194
+ assert(routeDirs.length > 0, `Found ${routeDirs.length} route directory(ies)`);
195
+
196
+ for (const routeDir of routeDirs) {
197
+ const routeFiles = readdirSync(join(__dirname, 'routes', routeDir));
198
+
199
+ // Check for CURED operations
200
+ const hasCRUD = routeFiles.some(f => ['create', 'retrieve', 'update', 'destroy'].some(op => f.includes(op)));
201
+ assert(hasCRUD, `${routeDir}: Has CURED operation files`);
202
+
203
+ // Check for validate endpoint
204
+ const hasValidate = routeFiles.some(f => f.includes('validate'));
205
+ assert(hasValidate, `${routeDir}: Has unified validate endpoint`);
206
+
207
+ // Should NOT have validate-create or validate-update
208
+ const hasWrongValidate = routeFiles.some(f =>
209
+ f.includes('validate-create') || f.includes('validate-update')
210
+ );
211
+ assert(!hasWrongValidate, `${routeDir}: No separate validate-create/update endpoints`);
212
+ }
213
+
214
+ // Test 5: Mock service execution
215
+ log('\nTest Suite 5: Mock Service Execution', BLUE);
216
+
217
+ // Create a simple mock service to demonstrate functionality
218
+ class MockTaskService {
219
+ constructor(db, eventBus) {
220
+ this.db = db;
221
+ this.eventBus = eventBus;
222
+ }
223
+
224
+ validate(data, context) {
225
+ const errors = [];
226
+
227
+ if (context.operation === 'create') {
228
+ if (!data.title) {
229
+ errors.push('Title is required');
230
+ }
231
+ }
232
+
233
+ return { valid: errors.length === 0, errors };
234
+ }
235
+
236
+ async create(data) {
237
+ const validationResult = this.validate(data, { operation: 'create' });
238
+ if (!validationResult.valid) {
239
+ throw new Error(`Validation failed: ${validationResult.errors.join(', ')}`);
240
+ }
241
+
242
+ const task = this.db.create('Task', data);
243
+ await this.eventBus.publish('TaskCreated', { taskId: task.id });
244
+ return task;
245
+ }
246
+
247
+ async update(id, data) {
248
+ const validationResult = this.validate(data, { operation: 'update' });
249
+ if (!validationResult.valid) {
250
+ throw new Error(`Validation failed: ${validationResult.errors.join(', ')}`);
251
+ }
252
+
253
+ // Version checking
254
+ if (data.version !== undefined) {
255
+ const existing = this.db.findOne('Task', { id });
256
+ if (existing && existing.version !== data.version) {
257
+ throw new Error('Version mismatch: record has been modified');
258
+ }
259
+ }
260
+
261
+ const task = this.db.update('Task', id, data);
262
+ await this.eventBus.publish('TaskUpdated', { taskId: id });
263
+ return task;
264
+ }
265
+ }
266
+
267
+ const mockService = new MockTaskService(db, eventBus);
268
+
269
+ // Test create with validation
270
+ try {
271
+ await mockService.create({ title: 'Test Task' });
272
+ assert(true, 'Service.create() executed successfully');
273
+ } catch (error) {
274
+ assert(false, `Service.create() failed: ${error.message}`);
275
+ }
276
+
277
+ assert(db.operations.length > 0, 'Database operations were performed');
278
+ assert(eventBus.events.length > 0, 'Events were published');
279
+
280
+ // Test validation failure
281
+ try {
282
+ await mockService.create({});
283
+ assert(false, 'Validation should have failed for empty data');
284
+ } catch (error) {
285
+ assert(error.message.includes('Validation failed'), 'Validation correctly rejected invalid data');
286
+ }
287
+
288
+ // Test optimistic locking
289
+ const task = db.data.values().next().value;
290
+ try {
291
+ await mockService.update(task.id, { title: 'Updated', version: 999 });
292
+ assert(false, 'Version mismatch should have been detected');
293
+ } catch (error) {
294
+ assert(error.message.includes('Version mismatch'), 'Optimistic locking works correctly');
295
+ }
296
+
297
+ // Summary
298
+ log('\n═══════════════════════════════════════', BLUE);
299
+ log(`Integration Test Summary:`, BLUE);
300
+ log(` ✅ Passed: ${testsPassed}`, GREEN);
301
+ if (testsFailed > 0) {
302
+ log(` ❌ Failed: ${testsFailed}`, RED);
303
+ }
304
+ log(` 📊 Total: ${testsPassed + testsFailed}`, BLUE);
305
+
306
+ if (testsFailed === 0) {
307
+ log('\n🎉 All integration tests passed!', GREEN);
308
+ process.exit(0);
309
+ } else {
310
+ log('\n⚠️ Some tests failed', YELLOW);
311
+ process.exit(1);
312
+ }
313
+ }
314
+
315
+ // Run tests
316
+ runTests().catch(error => {
317
+ log(`\n❌ Test suite failed: ${error.message}`, RED);
318
+ console.error(error);
319
+ process.exit(1);
320
+ });
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "{{projectNameKebab}}-generated-code",
3
+ "version": "0.1.0",
4
+ "description": "Generated code for {{projectName}} - v3.3 runtime",
5
+ "type": "module",
6
+ "scripts": {
7
+ "build": "tsc",
8
+ "test": "node test-runner.js",
9
+ "test:integration": "node integration-tests.js",
10
+ "start:dev": "tsx services/index.ts",
11
+ "prisma:generate": "prisma generate",
12
+ "prisma:migrate": "prisma migrate dev",
13
+ "db:setup": "node setup-database.js"
14
+ },
15
+ "dependencies": {
16
+ "@prisma/client": "^5.0.0",
17
+ "typeorm": "^0.3.17",
18
+ "reflect-metadata": "^0.1.13",
19
+ "fastify": "^4.23.0",
20
+ "express": "^4.18.2",
21
+ "@nestjs/common": "^10.2.0",
22
+ "@nestjs/core": "^10.2.0",
23
+ "@nestjs/platform-express": "^10.2.0",
24
+ "zod": "^3.22.0",
25
+ "better-sqlite3": "^9.0.0"
26
+ },
27
+ "devDependencies": {
28
+ "@types/node": "^20.0.0",
29
+ "@types/express": "^4.17.17",
30
+ "typescript": "^5.2.0",
31
+ "tsx": "^3.12.0",
32
+ "vitest": "^0.34.0"
33
+ }
34
+ }
@@ -0,0 +1,49 @@
1
+ # Generated Documentation
2
+
3
+ This directory contains documentation and diagrams automatically generated from inferred SpecVerse specifications.
4
+
5
+ ## Content Types
6
+
7
+ ### Documentation Files
8
+ - **`*-complete-docs.md`**: Complete documentation from AI-inferred specifications
9
+ - **`*-deployed-docs.md`**: Documentation for deployment specifications
10
+ - **`*-deployed-prod-docs.md`**: Production deployment documentation
11
+
12
+ ### Diagram Files
13
+ - **`*-complete-diagrams.md`**: UML diagrams (ER, sequence, class) for complete specifications
14
+ - **`*-deployed-diagrams.md`**: Deployment diagrams for development environment
15
+ - **`*-deployed-prod-diagrams.md`**: Deployment diagrams for production environment
16
+
17
+ ## Auto-Generation
18
+
19
+ These files are automatically generated when you run:
20
+
21
+ ```bash
22
+ # Generates both specification and documentation
23
+ npm run infer # → creates complete docs + diagrams
24
+ npm run infer:deployment # → creates development deployment docs + diagrams
25
+ npm run infer:deployment:prod # → creates production deployment docs + diagrams
26
+ ```
27
+
28
+ ## Manual Generation
29
+
30
+ You can also generate documentation for existing specifications:
31
+
32
+ ```bash
33
+ # Generate docs for specific files
34
+ npm run infer:docs # docs for complete specification
35
+ npm run infer:deployment:docs # docs for development deployment
36
+ npm run infer:deployment:prod:docs # docs for production deployment
37
+ ```
38
+
39
+ ## File Organization
40
+
41
+ Files follow this naming pattern:
42
+ - `{project-name}-complete-docs.md` - Documentation for AI-inferred complete specification
43
+ - `{project-name}-complete-diagrams.md` - UML diagrams for complete specification
44
+ - `{project-name}-deployed-docs.md` - Documentation for development deployment
45
+ - `{project-name}-deployed-diagrams.md` - Deployment diagrams for development
46
+ - `{project-name}-deployed-prod-docs.md` - Documentation for production deployment
47
+ - `{project-name}-deployed-prod-diagrams.md` - Deployment diagrams for production
48
+
49
+ All files are automatically regenerated when you run infer commands.
@@ -0,0 +1,54 @@
1
+ # Dependencies
2
+ node_modules/
3
+ package-lock.json
4
+ yarn.lock
5
+ #pnpm-lock.yaml
6
+
7
+ # Generated files
8
+ generated/
9
+ dist/
10
+ build/
11
+
12
+ # IDE files
13
+ .vscode/
14
+ .idea/
15
+ *.swp
16
+ *.swo
17
+ *~
18
+
19
+ # OS files
20
+ .DS_Store
21
+ Thumbs.db
22
+
23
+ # Logs
24
+ *.log
25
+ logs/
26
+
27
+ # Environment
28
+ .env
29
+ .env.local
30
+ .env.*.local
31
+
32
+ # Temporary files
33
+ tmp/
34
+ temp/
35
+ *.tmp
36
+
37
+ # SpecVerse generated files
38
+ specs/*-complete.specly
39
+ specs/*-enhanced.specly
40
+ specs/*-deployed.specly
41
+ specs/*-deployed-prod.specly
42
+ specs/*-processed.yaml
43
+ docs/diagrams/
44
+ docs/generated/
45
+
46
+ # Database files (for development)
47
+ *.db
48
+ *.sqlite
49
+ *.sqlite3
50
+ dev.db
51
+
52
+ # Test coverage
53
+ coverage/
54
+ .nyc_output/
@@ -0,0 +1,72 @@
1
+ # Implementation Manifests
2
+
3
+ This directory contains **SpecVerse v3.3 Implementation Manifests** that show how to deploy your component specifications to real infrastructure.
4
+
5
+ ## What are Manifests?
6
+
7
+ Manifests bridge the gap between your logical SpecVerse specifications and concrete technology implementations. They define:
8
+
9
+ - **Implementation Types**: How logical components map to specific technologies
10
+ - **Behavior Mappings**: How model behaviors translate to actual code/API calls
11
+ - **Capability Mappings**: How logical capabilities map to implementation types
12
+ - **Communication Channels**: How components communicate in the real deployment
13
+ - **Technology Configuration**: Framework-specific settings and parameters
14
+
15
+ ## Available Manifests
16
+
17
+ ### `implementation.yaml` ⭐ NEW - v3.3 Code Generation
18
+ - **Purpose**: Technology stack configuration for code generation
19
+ - **Features**: ORM selection, server framework, metadata strategies
20
+ - **Use Case**: Generate production-ready code (services, routes, ORM schemas)
21
+ - **Commands**:
22
+ ```bash
23
+ npm run generate:code # Generate all code
24
+ npm run test:generators # Generate and verify
25
+ ```
26
+
27
+ ### `docker-compose.specly`
28
+ - **Target**: Local development and staging
29
+ - **Technology**: Docker Compose
30
+ - **Database**: SQLite (development-friendly)
31
+ - **Use Case**: Quick local testing and development
32
+
33
+ ### `kubernetes.specly`
34
+ - **Target**: Production deployment
35
+ - **Technology**: Kubernetes with operators
36
+ - **Database**: PostgreSQL with high availability
37
+ - **Use Case**: Scalable production deployments
38
+
39
+ ## How to Use
40
+
41
+ 1. **Choose a manifest** that matches your deployment target
42
+ 2. **Customize the configuration** section for your specific needs
43
+ 3. **Reference your component** by updating the component source
44
+ 4. **Deploy using the specified tools** (docker-compose, kubectl, etc.)
45
+
46
+ ## Extending Manifests
47
+
48
+ You can create additional manifests for other technologies:
49
+
50
+ - **Cloud Providers**: AWS EKS, GCP GKE, Azure AKS
51
+ - **Serverless**: AWS Lambda, Vercel, Netlify
52
+ - **Traditional**: VM-based deployments, bare metal
53
+ - **Container Platforms**: OpenShift, Rancher, Docker Swarm
54
+
55
+ ## Commands
56
+
57
+ ```bash
58
+ # Validate a manifest
59
+ specverse validate manifests/docker-compose.specly
60
+
61
+ # Process a manifest with component context
62
+ specverse gen yaml manifests/kubernetes.specly
63
+
64
+ # Generate deployment documentation
65
+ specverse gen docs manifests/kubernetes.specly
66
+ ```
67
+
68
+ ## Learn More
69
+
70
+ - **SpecVerse Manifests Documentation**: See the main docs for comprehensive manifest features
71
+ - **Examples**: Check `examples/06-deploy/` for more complex manifest patterns
72
+ - **Best Practices**: Review the `aiInstructions` in each manifest for implementation guidance
@@ -0,0 +1,91 @@
1
+ # Docker Compose Implementation Manifest
2
+ # SpecVerse v3.3 manifest specification for Docker Compose deployment
3
+
4
+ manifests:
5
+ DockerComposeManifest:
6
+ specVersion: "3.3.0"
7
+ name: "{{componentName}}DockerComposeManifest"
8
+ version: "1.0.0"
9
+ description: "Docker Compose implementation manifest for {{projectName}}"
10
+
11
+ # v3.3: Deployment reference (REQUIRED)
12
+ deployment:
13
+ deploymentSource: "./specs/main.specly"
14
+ deploymentName: "development"
15
+
16
+ # v3.3: Default technology mappings
17
+ defaultMappings:
18
+ storage: "SQLite"
19
+ controller: "DockerNodeApp"
20
+
21
+ # v3.3: Capability to implementation factory mappings
22
+ capabilityMappings:
23
+ - capability: "api.*"
24
+ instanceFactory: "DockerWebApp"
25
+
26
+ - capability: "database.*"
27
+ instanceFactory: "DockerDatabase"
28
+
29
+ # v3.3: Platform-specific configuration
30
+ configuration:
31
+ # Docker Compose specific settings
32
+ composeVersion: "3.8"
33
+
34
+ networks:
35
+ default:
36
+ driver: "bridge"
37
+
38
+ volumes:
39
+ app_data:
40
+ driver: "local"
41
+
42
+ # Implementation type definitions
43
+ implementationFactories:
44
+ DockerWebApp:
45
+ type: "controller"
46
+ technology: "docker"
47
+ framework: "compose"
48
+ config:
49
+ image: "node:18-alpine"
50
+ build:
51
+ context: "."
52
+ dockerfile: "Dockerfile"
53
+ ports:
54
+ - "3000:3000"
55
+ environment:
56
+ NODE_ENV: "development"
57
+ DATABASE_URL: "sqlite:./data/app.db"
58
+ volumes:
59
+ - "./src:/app/src"
60
+ - "./data:/app/data"
61
+ restart: "unless-stopped"
62
+
63
+ DockerDatabase:
64
+ type: "database"
65
+ technology: "sqlite"
66
+ framework: "docker"
67
+ config:
68
+ image: "alpine:latest"
69
+ volumes:
70
+ - "./data:/data"
71
+ command: "tail -f /dev/null"
72
+
73
+ # Namespace configuration
74
+ namespace:
75
+ strategy: "single"
76
+ name: "{{projectNameKebab}}"
77
+ description: "Main application namespace"
78
+ isolation: "permissive"
79
+
80
+ # AI implementation instructions
81
+ aiInstructions: |
82
+ When implementing this Docker Compose deployment:
83
+
84
+ 1. **Development Focus**: This manifest is optimized for local development
85
+ 2. **Live Reload**: Source code is mounted for immediate changes
86
+ 3. **Data Persistence**: SQLite database with volume mounting
87
+ 4. **Port Mapping**: Application accessible on localhost:3000
88
+ 5. **Environment**: Configure environment variables in docker-compose.yml
89
+ 6. **Networking**: Uses default bridge network for container communication
90
+ 7. **Database**: Simple SQLite setup for development (upgrade to PostgreSQL for production)
91
+ 8. **Restart Policy**: Containers restart unless manually stopped
@@ -0,0 +1,58 @@
1
+ # SpecVerse v3.3 Implementation Manifest - Frontend Only
2
+ # Generates standalone React frontend that connects to external API
3
+
4
+ manifests:
5
+ {{projectNameKebab}}Implementation:
6
+ specVersion: "3.3.0"
7
+ name: "{{projectNameKebab}}-frontend"
8
+ version: "1.0.0"
9
+ description: "Frontend application for {{projectName}}"
10
+
11
+ # v3.3: Deployment reference
12
+ deployment:
13
+ deploymentSource: "../specs/main.specly"
14
+ deploymentName: "development"
15
+
16
+ # v3.3: Configuration for standalone frontend
17
+ configuration:
18
+ outputStructure: "standalone"
19
+ frontendDir: "."
20
+
21
+ # External API connection (configured at runtime)
22
+ apiBaseUrl: "${VITE_API_BASE_URL}"
23
+ apiPrefix: "/api"
24
+
25
+ # Development server
26
+ vitePort: 5173
27
+ viteHost: "localhost"
28
+
29
+ # v3.3: Frontend-only capability mappings
30
+ capabilityMappings:
31
+ # React Application
32
+ - capability: "app.frontend"
33
+ instanceFactory: "ReactApp"
34
+ configuration:
35
+ outputStructure: "standalone"
36
+ frontendDir: "."
37
+ apiBaseUrl: "${VITE_API_BASE_URL}"
38
+
39
+ # UI Components
40
+ - capability: "ui.components"
41
+ instanceFactory: "ReactComponents"
42
+ configuration:
43
+ outputStructure: "standalone"
44
+ frontendDir: "."
45
+
46
+ # UI Views
47
+ - capability: "ui.views"
48
+ instanceFactory: "ReactComponents"
49
+ configuration:
50
+ outputStructure: "standalone"
51
+ frontendDir: "."
52
+
53
+ # Project Scaffolding
54
+ - capability: "project.scaffold"
55
+ instanceFactory: "GenericScaffold"
56
+ configuration:
57
+ outputStructure: "standalone"
58
+ includeReadme: true