@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,326 @@
1
+ # Docker Compose Implementation Manifest
2
+
3
+ This example demonstrates how to implement the basic web application deployment specification (from `06-01-basic-deployment-intro.specly`) using **Docker Compose** for local development and staging environments.
4
+
5
+ ## Overview
6
+
7
+ The **DockerComposeDeploymentManifest** shows how to translate logical deployment specifications into a **complete Docker Compose stack** with:
8
+ - **Container orchestration** for multi-service applications
9
+ - **Development-friendly** configurations with hot reloading
10
+ - **Production-ready** features like health checks and monitoring
11
+
12
+ ## Key Implementation Mappings
13
+
14
+ ### Components → Docker Services
15
+
16
+ | SpecVerse Component | Docker Service | Technology Stack |
17
+ |-------------------|----------------|-----------------|
18
+ | `WebApplication` | `web` service | nginx + custom app |
19
+ | `Database` | `database` service | PostgreSQL 15 |
20
+ | `Environment` | Network + volumes | Docker Compose |
21
+ | Caching | `cache` service | Redis 7 |
22
+ | Load Balancing | `proxy` service | nginx reverse proxy |
23
+ | Monitoring | `monitoring` service | Prometheus |
24
+
25
+ ### Container Architecture
26
+
27
+ ```
28
+ ┌─────────────────┐ ┌─────────────────┐
29
+ │ Reverse Proxy │────│ Web App │
30
+ │ (nginx:alpine)│ │ (nginx:alpine)│
31
+ │ Port: 80,443 │ │ Port: 8080 │
32
+ └─────────────────┘ └─────────────────┘
33
+
34
+ ┌─────────────────────┼─────────────────────┐
35
+ │ │ │
36
+ ┌───────▼─────────┐ ┌────────▼────────┐ ┌─────────▼─────────┐
37
+ │ Database │ │ Cache │ │ Monitoring │
38
+ │ (postgres:15) │ │ (redis:7) │ │ (prometheus) │
39
+ │ Port: 5432 │ │ Port: 6379 │ │ Port: 9090 │
40
+ └─────────────────┘ └─────────────────┘ └───────────────────┘
41
+ ```
42
+
43
+ ## Implementation Features
44
+
45
+ ### 🔄 **Development Workflow**
46
+ - **Hot Reloading**: Bind mounts for real-time code changes
47
+ - **Database Persistence**: Named volumes for data retention
48
+ - **Environment Variables**: `.env` file for configuration
49
+ - **Log Aggregation**: Centralized logging with Docker logs
50
+
51
+ ### 🏗️ **Production Features**
52
+ - **Health Checks**: All services include proper health monitoring
53
+ - **Restart Policies**: Automatic recovery from failures
54
+ - **Resource Limits**: Memory and CPU constraints (via Docker limits)
55
+ - **Security**: Non-root users and network isolation
56
+
57
+ ### 📊 **Observability Stack**
58
+ - **Prometheus**: Metrics collection from all services
59
+ - **Health Endpoints**: `/health` checks for service status
60
+ - **Centralized Logs**: Docker log drivers for aggregation
61
+ - **Network Monitoring**: Container-to-container communication tracking
62
+
63
+ ## Generated Docker Compose File
64
+
65
+ When implemented, this manifest generates a complete `docker-compose.yml`:
66
+
67
+ ```yaml
68
+ version: '3.8'
69
+
70
+ services:
71
+ web:
72
+ image: nginx:alpine
73
+ build:
74
+ context: ./web
75
+ dockerfile: Dockerfile
76
+ ports:
77
+ - "8080:80"
78
+ environment:
79
+ - NODE_ENV=development
80
+ - DATABASE_URL=postgresql://user:password@database:5432/webapp
81
+ - REDIS_URL=redis://cache:6379
82
+ volumes:
83
+ - ./app:/var/www/html
84
+ - ./logs:/var/log/nginx
85
+ depends_on:
86
+ - database
87
+ - cache
88
+ restart: unless-stopped
89
+ healthcheck:
90
+ test: ["CMD", "curl", "-f", "http://localhost/health"]
91
+ interval: 30s
92
+ timeout: 10s
93
+ retries: 3
94
+ networks:
95
+ - webapp-network
96
+
97
+ database:
98
+ image: postgres:15-alpine
99
+ environment:
100
+ - POSTGRES_DB=webapp
101
+ - POSTGRES_USER=user
102
+ - POSTGRES_PASSWORD=password
103
+ volumes:
104
+ - postgres_data:/var/lib/postgresql/data
105
+ - ./db/init:/docker-entrypoint-initdb.d
106
+ ports:
107
+ - "5432:5432"
108
+ restart: unless-stopped
109
+ healthcheck:
110
+ test: ["CMD-SHELL", "pg_isready -U user -d webapp"]
111
+ interval: 10s
112
+ timeout: 5s
113
+ retries: 5
114
+ networks:
115
+ - webapp-network
116
+
117
+ cache:
118
+ image: redis:7-alpine
119
+ command: redis-server --appendonly yes
120
+ volumes:
121
+ - redis_data:/data
122
+ - ./redis/redis.conf:/usr/local/etc/redis/redis.conf
123
+ ports:
124
+ - "6379:6379"
125
+ restart: unless-stopped
126
+ healthcheck:
127
+ test: ["CMD", "redis-cli", "ping"]
128
+ interval: 30s
129
+ timeout: 3s
130
+ retries: 3
131
+ networks:
132
+ - webapp-network
133
+
134
+ networks:
135
+ webapp-network:
136
+ driver: bridge
137
+ ipam:
138
+ config:
139
+ - subnet: 172.20.0.0/16
140
+
141
+ volumes:
142
+ postgres_data:
143
+ driver: local
144
+ redis_data:
145
+ driver: local
146
+ prometheus_data:
147
+ driver: local
148
+ ```
149
+
150
+ ## Development vs Production Configuration
151
+
152
+ ### Development Mode
153
+ - **Bind Mounts**: Live code editing with `./app:/var/www/html`
154
+ - **Port Exposure**: Direct access to all services for debugging
155
+ - **Environment Files**: Easy configuration with `.env`
156
+ - **Hot Reloading**: Automatic application restarts on code changes
157
+
158
+ ### Production Mode
159
+ - **Multi-Stage Builds**: Optimized container images
160
+ - **Secrets Management**: External secret injection
161
+ - **Reverse Proxy**: nginx for SSL termination and caching
162
+ - **Monitoring**: Prometheus metrics and alerting
163
+
164
+ ## AI Implementation Guidance
165
+
166
+ The manifest includes **specific instructions** for:
167
+ - **Environment Management**: Proper use of .env files and secrets
168
+ - **Volume Strategy**: Named volumes vs bind mounts
169
+ - **Network Security**: Custom networks and service isolation
170
+ - **Health Monitoring**: Comprehensive health check implementation
171
+ - **Backup Procedures**: Database and volume backup strategies
172
+
173
+ ## Usage Workflow
174
+
175
+ 1. **Development Setup**:
176
+ ```bash
177
+ # Clone repository
178
+ git clone <repo>
179
+ cd project
180
+
181
+ # Configure environment
182
+ cp .env.example .env
183
+
184
+ # Start development stack
185
+ docker-compose up -d
186
+
187
+ # View logs
188
+ docker-compose logs -f web
189
+ ```
190
+
191
+ 2. **Production Deployment**:
192
+ ```bash
193
+ # Build production images
194
+ docker-compose -f docker-compose.prod.yml build
195
+
196
+ # Deploy with production config
197
+ docker-compose -f docker-compose.prod.yml up -d
198
+
199
+ # Monitor health
200
+ docker-compose ps
201
+ ```
202
+
203
+ 3. **Scaling Services**:
204
+ ```bash
205
+ # Scale web service
206
+ docker-compose up --scale web=3 -d
207
+
208
+ # Scale with load balancer
209
+ docker-compose up --scale web=3 --scale proxy=1 -d
210
+ ```
211
+
212
+ This implementation shows how SpecVerse **manifests provide practical deployment guidance**, enabling teams to move from logical specifications to working containerized applications with minimal configuration overhead.
213
+
214
+ ## Diagrams
215
+
216
+ <div className="diagram-generated">
217
+
218
+ ### Technology Stack
219
+
220
+ <Mermaid chart={`
221
+ graph TB
222
+ %% Manifest Mapping
223
+
224
+ subgraph database_layer["🗄️ DATABASE"]
225
+ direction LR
226
+ tech_postgresql_docker("postgresql<br>docker<br>vlatest")
227
+ tech_redis_docker("redis<br>docker<br>vlatest")
228
+ end
229
+
230
+ subgraph infrastructure_layer["🏗️ INFRASTRUCTURE"]
231
+ direction LR
232
+ tech_docker_compose("docker<br>compose<br>vlatest")
233
+ end
234
+
235
+ subgraph other_layer["📦 OTHER"]
236
+ direction LR
237
+ tech_nginx_docker("nginx<br>docker<br>vlatest")
238
+ tech_prometheus_docker("prometheus<br>docker<br>vlatest")
239
+ end
240
+
241
+
242
+ style tech_postgresql_docker fill:#e1f5fe,stroke:#01579b,stroke-width:2px,color:#000
243
+ style tech_redis_docker fill:#e1f5fe,stroke:#01579b,stroke-width:2px,color:#000
244
+ style tech_docker_compose fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
245
+ style tech_nginx_docker fill:#F5F5F5,stroke:#333,stroke-width:2px,color:#000
246
+ style tech_prometheus_docker fill:#F5F5F5,stroke:#333,stroke-width:2px,color:#000
247
+ `}/>
248
+
249
+ ### Capability Bindings
250
+
251
+ <Mermaid chart={`
252
+ graph LR
253
+ %% Manifest Mapping
254
+
255
+ subgraph capabilities_layer["🎯 CAPABILITIES"]
256
+ direction TB
257
+ cap_0{{"web.*<br>(1 impl)"}}
258
+ cap_1{{"database.*<br>(1 impl)"}}
259
+ cap_2{{"cache.*<br>(1 impl)"}}
260
+ cap_3{{"proxy.*<br>(1 impl)"}}
261
+ cap_4{{"monitoring.*<br>(1 impl)"}}
262
+ end
263
+
264
+ impl_DockerComposeDeploymentManifest_DockerWebApplication("DockerComposeDeploymentManifest.DockerWebApplication")
265
+ impl_DockerComposeDeploymentManifest_DockerDatabase("DockerComposeDeploymentManifest.DockerDatabase")
266
+ impl_DockerComposeDeploymentManifest_DockerCache("DockerComposeDeploymentManifest.DockerCache")
267
+ impl_DockerComposeDeploymentManifest_DockerReverseProxy("DockerComposeDeploymentManifest.DockerReverseProxy")
268
+ impl_DockerComposeDeploymentManifest_DockerMonitoring("DockerComposeDeploymentManifest.DockerMonitoring")
269
+
270
+
271
+ %% Relationships
272
+ cap_0 -->|"binds to"| impl_DockerComposeDeploymentManifest_DockerWebApplication
273
+ cap_1 -->|"binds to"| impl_DockerComposeDeploymentManifest_DockerDatabase
274
+ cap_2 -->|"binds to"| impl_DockerComposeDeploymentManifest_DockerCache
275
+ cap_3 -->|"binds to"| impl_DockerComposeDeploymentManifest_DockerReverseProxy
276
+ cap_4 -->|"binds to"| impl_DockerComposeDeploymentManifest_DockerMonitoring
277
+
278
+ style cap_0 fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000
279
+ style impl_DockerComposeDeploymentManifest_DockerWebApplication fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
280
+ style cap_1 fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000
281
+ style impl_DockerComposeDeploymentManifest_DockerDatabase fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
282
+ style cap_2 fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000
283
+ style impl_DockerComposeDeploymentManifest_DockerCache fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
284
+ style cap_3 fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000
285
+ style impl_DockerComposeDeploymentManifest_DockerReverseProxy fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
286
+ style cap_4 fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000
287
+ style impl_DockerComposeDeploymentManifest_DockerMonitoring fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
288
+ `}/>
289
+
290
+ ### Manifest Mapping
291
+
292
+ <Mermaid chart={`
293
+ graph LR
294
+ %% Manifest Mapping
295
+
296
+ subgraph manifests_layer["📋 MANIFESTS (Implementation Mapping)"]
297
+ direction TB
298
+ manifest_DockerComposeDeploymentManifest{{"DockerComposeDeploymentManifest<br>v1.0.0<br>Types: 5 | Behaviors: 3"}}
299
+ end
300
+
301
+ subgraph implementation_layer["🔧 IMPLEMENTATION (Technology)"]
302
+ direction TB
303
+ impl_DockerComposeDeploymentManifest_DockerWebApplication("DockerWebApplication<br>docker / compose")
304
+ impl_DockerComposeDeploymentManifest_DockerDatabase("DockerDatabase<br>postgresql / docker")
305
+ impl_DockerComposeDeploymentManifest_DockerCache("DockerCache<br>redis / docker")
306
+ impl_DockerComposeDeploymentManifest_DockerReverseProxy("DockerReverseProxy<br>nginx / docker")
307
+ impl_DockerComposeDeploymentManifest_DockerMonitoring("DockerMonitoring<br>prometheus / docker")
308
+ end
309
+
310
+
311
+ %% Relationships
312
+ manifest_DockerComposeDeploymentManifest -->|"implements"| impl_DockerComposeDeploymentManifest_DockerWebApplication
313
+ manifest_DockerComposeDeploymentManifest -->|"implements"| impl_DockerComposeDeploymentManifest_DockerDatabase
314
+ manifest_DockerComposeDeploymentManifest -->|"implements"| impl_DockerComposeDeploymentManifest_DockerCache
315
+ manifest_DockerComposeDeploymentManifest -->|"implements"| impl_DockerComposeDeploymentManifest_DockerReverseProxy
316
+ manifest_DockerComposeDeploymentManifest -->|"implements"| impl_DockerComposeDeploymentManifest_DockerMonitoring
317
+
318
+ style manifest_DockerComposeDeploymentManifest fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
319
+ style impl_DockerComposeDeploymentManifest_DockerWebApplication fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
320
+ style impl_DockerComposeDeploymentManifest_DockerDatabase fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
321
+ style impl_DockerComposeDeploymentManifest_DockerCache fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
322
+ style impl_DockerComposeDeploymentManifest_DockerReverseProxy fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
323
+ style impl_DockerComposeDeploymentManifest_DockerMonitoring fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
324
+ `}/>
325
+
326
+ </div>
@@ -0,0 +1,40 @@
1
+ manifests:
2
+ DockerComposeDeploymentManifest:
3
+ specVersion: "3.5.0"
4
+ name: "DockerComposeDeploymentManifest"
5
+ description: "Docker Compose implementation manifest for local and staging deployment"
6
+ version: "1.0.0"
7
+
8
+ deployment:
9
+ deploymentSource: "./06-01-basic-deployment.specly"
10
+ deploymentName: "basicWebApplication"
11
+
12
+ defaultMappings:
13
+ controller: "DockerWebApplication"
14
+ storage: "DockerDatabase"
15
+
16
+ capabilityMappings:
17
+ - capability: "web.*"
18
+ instanceFactory: "DockerWebApplication"
19
+
20
+ - capability: "database.*"
21
+ instanceFactory: "DockerDatabase"
22
+
23
+ - capability: "cache.*"
24
+ instanceFactory: "DockerCache"
25
+
26
+ - capability: "proxy.*"
27
+ instanceFactory: "DockerReverseProxy"
28
+
29
+ - capability: "monitoring.*"
30
+ instanceFactory: "DockerMonitoring"
31
+
32
+ instanceMappings:
33
+ - instanceName: "webApplicationController"
34
+ instanceFactory: "DockerWebApplication"
35
+
36
+ - instanceName: "reverseProxyInstance"
37
+ instanceFactory: "DockerReverseProxy"
38
+
39
+ - instanceName: "prometheusInstance"
40
+ instanceFactory: "DockerMonitoring"
@@ -0,0 +1,8 @@
1
+ title: "Kubernetes Deployment Manifest"
2
+ description: "Kubernetes implementation manifest for basic web application deployment"
3
+ difficulty: intermediate
4
+ concepts: [manifests, kubernetes, deployment]
5
+ prerequisites: []
6
+ category: deploy
7
+ order: 3
8
+ companionFiles: [kubernetes-deployment-manifest.md]
@@ -0,0 +1,237 @@
1
+ # Kubernetes Deployment Implementation Manifest
2
+
3
+ This example demonstrates how to implement the basic web application deployment specification (from `06-01-basic-deployment-intro.specly`) using **Kubernetes** as the target platform.
4
+
5
+ ## Overview
6
+
7
+ The **KubernetesDeploymentManifest** shows how to bridge the gap between:
8
+ - **Logical deployment specification** (what you want to deploy)
9
+ - **Concrete Kubernetes implementation** (how to deploy it with specific K8s resources)
10
+
11
+ ## Key Implementation Mappings
12
+
13
+ ### Components → Kubernetes Resources
14
+
15
+ | SpecVerse Component | Kubernetes Resource | Technology Stack |
16
+ |-------------------|-------------------|-----------------|
17
+ | `WebApplication` | `Deployment` + `Service` | nginx + Kubernetes |
18
+ | `Database` | `Cluster` (CloudNativePG) | PostgreSQL + Operator |
19
+ | `Environment` | `Namespace` + `RBAC` | Kubernetes native |
20
+ | Load Balancing | `Ingress` | nginx-ingress + cert-manager |
21
+
22
+ ### Logical Instances → K8s Workloads
23
+
24
+ - **Controllers** → `Deployment` with configurable replicas and resource limits
25
+ - **Storage** → `PostgreSQL Cluster` with persistent volumes and backup
26
+ - **Infrastructure** → `Service` + `Ingress` for networking and external access
27
+ - **Monitoring** → Ready for Prometheus integration
28
+
29
+ ## Implementation Features
30
+
31
+ ### 🚀 **Production-Ready Configuration**
32
+ - **Resource Management**: CPU/memory requests and limits
33
+ - **Health Checks**: Liveness and readiness probes
34
+ - **Auto-Scaling**: HorizontalPodAutoscaler configuration
35
+ - **Security**: NetworkPolicies and PodSecurityStandards
36
+
37
+ ### 🔧 **Operator Integration**
38
+ - **CloudNativePG**: For PostgreSQL cluster management
39
+ - **cert-manager**: For automatic TLS certificate provisioning
40
+ - **nginx-ingress**: For advanced routing and load balancing
41
+
42
+ ### 📊 **Observability**
43
+ - **Prometheus Metrics**: Built-in monitoring endpoints
44
+ - **Health Endpoints**: `/health` and `/ready` for proper lifecycle management
45
+ - **Structured Logging**: Container log aggregation ready
46
+
47
+ ## Generated Kubernetes Manifests
48
+
49
+ When implemented, this manifest generates:
50
+
51
+ ```yaml
52
+ # Web Application Deployment
53
+ apiVersion: apps/v1
54
+ kind: Deployment
55
+ metadata:
56
+ name: web-application
57
+ namespace: web
58
+ spec:
59
+ replicas: 1
60
+ selector:
61
+ matchLabels:
62
+ app: web-application
63
+ template:
64
+ spec:
65
+ containers:
66
+ - name: web
67
+ image: nginx:latest
68
+ ports:
69
+ - containerPort: 8080
70
+ resources:
71
+ requests:
72
+ memory: "64Mi"
73
+ cpu: "250m"
74
+ limits:
75
+ memory: "128Mi"
76
+ cpu: "500m"
77
+ livenessProbe:
78
+ httpGet:
79
+ path: /health
80
+ port: 8080
81
+ initialDelaySeconds: 30
82
+ periodSeconds: 10
83
+ readinessProbe:
84
+ httpGet:
85
+ path: /ready
86
+ port: 8080
87
+ initialDelaySeconds: 5
88
+ periodSeconds: 5
89
+ ```
90
+
91
+ ```yaml
92
+ # PostgreSQL Cluster
93
+ apiVersion: postgresql.cnpg.io/v1
94
+ kind: Cluster
95
+ metadata:
96
+ name: webapp-postgres
97
+ namespace: data
98
+ spec:
99
+ instances: 1
100
+ primaryUpdateStrategy: unsupervised
101
+ postgresql:
102
+ parameters:
103
+ max_connections: "200"
104
+ shared_buffers: "256MB"
105
+ storage:
106
+ size: 1Gi
107
+ storageClass: fast-ssd
108
+ monitoring:
109
+ enabled: true
110
+ ```
111
+
112
+ ## Namespace Organization
113
+
114
+ The manifest implements proper **namespace isolation**:
115
+
116
+ - **`web` namespace**: Frontend applications with resource quotas
117
+ - **`data` namespace**: Databases and persistent storage
118
+ - **Resource Quotas**: CPU and memory limits per namespace
119
+ - **Network Policies**: Secure inter-service communication
120
+
121
+ ## AI Implementation Guidance
122
+
123
+ The manifest includes specific **AI instructions** for:
124
+ - Resource management best practices
125
+ - Security hardening with NetworkPolicies
126
+ - Monitoring and observability setup
127
+ - Scaling strategies for production workloads
128
+ - Configuration management with ConfigMaps/Secrets
129
+
130
+ ## Usage
131
+
132
+ 1. **Apply the specification**: Use SpecVerse CLI to process the logical deployment
133
+ 2. **Generate manifests**: The manifest will produce Kubernetes YAML files
134
+ 3. **Deploy to cluster**: Use `kubectl apply` or GitOps workflow
135
+ 4. **Monitor deployment**: Leverage built-in health checks and metrics
136
+
137
+ This implementation demonstrates how SpecVerse **manifests bridge the architecture gap** between logical specifications and concrete infrastructure, enabling teams to maintain consistency across different deployment targets while leveraging platform-specific capabilities.
138
+
139
+ ## Diagrams
140
+
141
+ <div className="diagram-generated">
142
+
143
+ ### Technology Stack
144
+
145
+ <Mermaid chart={`
146
+ graph TB
147
+ %% Manifest Mapping
148
+
149
+ subgraph database_layer["🗄️ DATABASE"]
150
+ direction LR
151
+ tech_postgresql_kubernetes_operator("postgresql<br>kubernetes-operator<br>vlatest")
152
+ end
153
+
154
+ subgraph infrastructure_layer["🏗️ INFRASTRUCTURE"]
155
+ direction LR
156
+ tech_kubernetes_deployment("kubernetes<br>deployment<br>vlatest")
157
+ tech_kubernetes_service("kubernetes<br>service<br>vlatest")
158
+ tech_kubernetes_ingress_nginx("kubernetes<br>ingress-nginx<br>vlatest")
159
+ end
160
+
161
+
162
+ style tech_postgresql_kubernetes_operator fill:#e1f5fe,stroke:#01579b,stroke-width:2px,color:#000
163
+ style tech_kubernetes_deployment fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
164
+ style tech_kubernetes_service fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
165
+ style tech_kubernetes_ingress_nginx fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
166
+ `}/>
167
+
168
+ ### Capability Bindings
169
+
170
+ <Mermaid chart={`
171
+ graph LR
172
+ %% Manifest Mapping
173
+
174
+ subgraph capabilities_layer["🎯 CAPABILITIES"]
175
+ direction TB
176
+ cap_0{{"web.*<br>(1 impl)"}}
177
+ cap_1{{"database.*<br>(1 impl)"}}
178
+ cap_2{{"networking.*<br>(1 impl)"}}
179
+ cap_3{{"routing.*<br>(1 impl)"}}
180
+ end
181
+
182
+ impl_KubernetesDeploymentManifest_KubernetesWebController("KubernetesDeploymentManifest.KubernetesWebController")
183
+ impl_KubernetesDeploymentManifest_KubernetesDatabase("KubernetesDeploymentManifest.KubernetesDatabase")
184
+ impl_KubernetesDeploymentManifest_KubernetesService("KubernetesDeploymentManifest.KubernetesService")
185
+ impl_KubernetesDeploymentManifest_KubernetesIngress("KubernetesDeploymentManifest.KubernetesIngress")
186
+
187
+
188
+ %% Relationships
189
+ cap_0 -->|"binds to"| impl_KubernetesDeploymentManifest_KubernetesWebController
190
+ cap_1 -->|"binds to"| impl_KubernetesDeploymentManifest_KubernetesDatabase
191
+ cap_2 -->|"binds to"| impl_KubernetesDeploymentManifest_KubernetesService
192
+ cap_3 -->|"binds to"| impl_KubernetesDeploymentManifest_KubernetesIngress
193
+
194
+ style cap_0 fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000
195
+ style impl_KubernetesDeploymentManifest_KubernetesWebController fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
196
+ style cap_1 fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000
197
+ style impl_KubernetesDeploymentManifest_KubernetesDatabase fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
198
+ style cap_2 fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000
199
+ style impl_KubernetesDeploymentManifest_KubernetesService fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
200
+ style cap_3 fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000
201
+ style impl_KubernetesDeploymentManifest_KubernetesIngress fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
202
+ `}/>
203
+
204
+ ### Manifest Mapping
205
+
206
+ <Mermaid chart={`
207
+ graph LR
208
+ %% Manifest Mapping
209
+
210
+ subgraph manifests_layer["📋 MANIFESTS (Implementation Mapping)"]
211
+ direction TB
212
+ manifest_KubernetesDeploymentManifest{{"KubernetesDeploymentManifest<br>v1.0.0<br>Types: 4 | Behaviors: 3"}}
213
+ end
214
+
215
+ subgraph implementation_layer["🔧 IMPLEMENTATION (Technology)"]
216
+ direction TB
217
+ impl_KubernetesDeploymentManifest_KubernetesWebController("KubernetesWebController<br>kubernetes / deployment")
218
+ impl_KubernetesDeploymentManifest_KubernetesDatabase("KubernetesDatabase<br>postgresql / kubernetes-operator")
219
+ impl_KubernetesDeploymentManifest_KubernetesService("KubernetesService<br>kubernetes / service")
220
+ impl_KubernetesDeploymentManifest_KubernetesIngress("KubernetesIngress<br>kubernetes / ingress-nginx")
221
+ end
222
+
223
+
224
+ %% Relationships
225
+ manifest_KubernetesDeploymentManifest -->|"implements"| impl_KubernetesDeploymentManifest_KubernetesWebController
226
+ manifest_KubernetesDeploymentManifest -->|"implements"| impl_KubernetesDeploymentManifest_KubernetesDatabase
227
+ manifest_KubernetesDeploymentManifest -->|"implements"| impl_KubernetesDeploymentManifest_KubernetesService
228
+ manifest_KubernetesDeploymentManifest -->|"implements"| impl_KubernetesDeploymentManifest_KubernetesIngress
229
+
230
+ style manifest_KubernetesDeploymentManifest fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
231
+ style impl_KubernetesDeploymentManifest_KubernetesWebController fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
232
+ style impl_KubernetesDeploymentManifest_KubernetesDatabase fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
233
+ style impl_KubernetesDeploymentManifest_KubernetesService fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
234
+ style impl_KubernetesDeploymentManifest_KubernetesIngress fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
235
+ `}/>
236
+
237
+ </div>
@@ -0,0 +1,41 @@
1
+ manifests:
2
+ KubernetesDeploymentManifest:
3
+ specVersion: "3.5.0"
4
+ name: "KubernetesDeploymentManifest"
5
+ description: "Kubernetes implementation manifest for basic web application deployment"
6
+ version: "1.0.0"
7
+
8
+ deployment:
9
+ deploymentSource: "./06-01-basic-deployment.specly"
10
+ deploymentName: "basicWebApplication"
11
+
12
+ defaultMappings:
13
+ controller: "KubernetesWebController"
14
+ storage: "KubernetesDatabase"
15
+ service: "KubernetesService"
16
+
17
+ capabilityMappings:
18
+ - capability: "web.*"
19
+ instanceFactory: "KubernetesWebController"
20
+
21
+ - capability: "database.*"
22
+ instanceFactory: "KubernetesDatabase"
23
+
24
+ - capability: "networking.*"
25
+ instanceFactory: "KubernetesService"
26
+
27
+ - capability: "routing.*"
28
+ instanceFactory: "KubernetesIngress"
29
+
30
+ instanceMappings:
31
+ - instanceName: "webApplicationController"
32
+ instanceFactory: "KubernetesWebController"
33
+
34
+ - instanceName: "databaseInstance"
35
+ instanceFactory: "KubernetesDatabase"
36
+
37
+ - instanceName: "webService"
38
+ instanceFactory: "KubernetesService"
39
+
40
+ - instanceName: "webIngress"
41
+ instanceFactory: "KubernetesIngress"