@specverse/engines 4.1.0

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 (817) 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/examples-inference/inference-engine-demo.example.yaml +8 -0
  45. package/assets/examples-inference/inference-engine-demo.md +574 -0
  46. package/assets/examples-inference/inference-engine-demo.specly +216 -0
  47. package/assets/prompts/MOVED.md +35 -0
  48. package/assets/prompts/SUMMARY-v8-PROMOTION.md +445 -0
  49. package/assets/prompts/core/CHANGELOG.md +158 -0
  50. package/assets/prompts/core/MIGRATION-v6-to-v7.md +379 -0
  51. package/assets/prompts/core/README.md +319 -0
  52. package/assets/prompts/core/base-terminal-prompt.md +201 -0
  53. package/assets/prompts/core/examples/example-usage.ts +140 -0
  54. package/assets/prompts/core/schemas/prompt.schema.json +309 -0
  55. package/assets/prompts/core/schemas/prompt.schema.yaml +229 -0
  56. package/assets/prompts/core/standard/archive/v1/analyse.prompt.yaml +259 -0
  57. package/assets/prompts/core/standard/archive/v1/create.prompt.yaml +302 -0
  58. package/assets/prompts/core/standard/archive/v1/materialise.prompt.yaml +328 -0
  59. package/assets/prompts/core/standard/archive/v1/realize.prompt.yaml +606 -0
  60. package/assets/prompts/core/standard/archive/v2/README.md +110 -0
  61. package/assets/prompts/core/standard/archive/v2/analyse.prompt.yaml +151 -0
  62. package/assets/prompts/core/standard/archive/v2/create.prompt.yaml +151 -0
  63. package/assets/prompts/core/standard/archive/v2/materialise.prompt.yaml +132 -0
  64. package/assets/prompts/core/standard/archive/v2/realize.prompt.yaml +147 -0
  65. package/assets/prompts/core/standard/archive/v3/README.md +279 -0
  66. package/assets/prompts/core/standard/archive/v3/analyse.prompt.yaml +309 -0
  67. package/assets/prompts/core/standard/archive/v3/create.prompt.yaml +351 -0
  68. package/assets/prompts/core/standard/archive/v3/materialise.prompt.yaml +247 -0
  69. package/assets/prompts/core/standard/archive/v3/realize.prompt.yaml +344 -0
  70. package/assets/prompts/core/standard/archive/v4/README.md +79 -0
  71. package/assets/prompts/core/standard/archive/v4/analyse.prompt.yaml +204 -0
  72. package/assets/prompts/core/standard/archive/v4/create.prompt.yaml +185 -0
  73. package/assets/prompts/core/standard/archive/v5/README.md +224 -0
  74. package/assets/prompts/core/standard/archive/v5/analyse.prompt.yaml +209 -0
  75. package/assets/prompts/core/standard/archive/v5/create.prompt.yaml +225 -0
  76. package/assets/prompts/core/standard/archive/v5/materialise.prompt.yaml +242 -0
  77. package/assets/prompts/core/standard/archive/v5/realize.prompt.yaml +336 -0
  78. package/assets/prompts/core/standard/archive/v6/README.md +187 -0
  79. package/assets/prompts/core/standard/archive/v6/analyse.prompt.yaml +219 -0
  80. package/assets/prompts/core/standard/archive/v6/create.prompt.yaml +180 -0
  81. package/assets/prompts/core/standard/archive/v6/materialise.prompt.yaml +203 -0
  82. package/assets/prompts/core/standard/archive/v6/realize.prompt.yaml +215 -0
  83. package/assets/prompts/core/standard/archive/v7/analyse.prompt.nick.yaml +144 -0
  84. package/assets/prompts/core/standard/archive/v7/analyse.prompt.old.yaml +146 -0
  85. package/assets/prompts/core/standard/archive/v7/analyse.prompt.yaml +129 -0
  86. package/assets/prompts/core/standard/archive/v7/create.prompt.yaml +146 -0
  87. package/assets/prompts/core/standard/archive/v7/materialise.prompt.yaml +297 -0
  88. package/assets/prompts/core/standard/archive/v7/realize.prompt.yaml +294 -0
  89. package/assets/prompts/core/standard/archive/v8/README.md +400 -0
  90. package/assets/prompts/core/standard/archive/v8/analyse.prompt.yaml +185 -0
  91. package/assets/prompts/core/standard/archive/v8/create.prompt.yaml +203 -0
  92. package/assets/prompts/core/standard/archive/v8/materialise.prompt.yaml +297 -0
  93. package/assets/prompts/core/standard/archive/v8/realize.prompt.yaml +294 -0
  94. package/assets/prompts/core/standard/default/analyse.prompt.yaml +496 -0
  95. package/assets/prompts/core/standard/default/app-demo.prompt.yaml +213 -0
  96. package/assets/prompts/core/standard/default/create.prompt.yaml +418 -0
  97. package/assets/prompts/core/standard/default/materialise.prompt.yaml +814 -0
  98. package/assets/prompts/core/standard/default/realize.prompt.yaml +574 -0
  99. package/assets/prompts/core/standard/v9/analyse.prompt.yaml +496 -0
  100. package/assets/prompts/core/standard/v9/create.prompt.yaml +418 -0
  101. package/assets/prompts/core/standard/v9/materialise.prompt.yaml +814 -0
  102. package/assets/prompts/core/standard/v9/realize.prompt.yaml +574 -0
  103. package/assets/prompts/templates/api-orchestrator-template.yaml +188 -0
  104. package/assets/prompts/templates/claude-integration-template.md +121 -0
  105. package/assets/prompts/templates/terminal-prompt-template.md +97 -0
  106. package/dist/ai/commands/enhance.d.ts +8 -0
  107. package/dist/ai/commands/enhance.d.ts.map +1 -0
  108. package/dist/ai/commands/enhance.js +155 -0
  109. package/dist/ai/commands/enhance.js.map +1 -0
  110. package/dist/ai/commands/fill.d.ts +8 -0
  111. package/dist/ai/commands/fill.d.ts.map +1 -0
  112. package/dist/ai/commands/fill.js +179 -0
  113. package/dist/ai/commands/fill.js.map +1 -0
  114. package/dist/ai/commands/index.d.ts +11 -0
  115. package/dist/ai/commands/index.d.ts.map +1 -0
  116. package/dist/ai/commands/index.js +11 -0
  117. package/dist/ai/commands/index.js.map +1 -0
  118. package/dist/ai/commands/spec-analyser.d.ts +18 -0
  119. package/dist/ai/commands/spec-analyser.d.ts.map +1 -0
  120. package/dist/ai/commands/spec-analyser.js +175 -0
  121. package/dist/ai/commands/spec-analyser.js.map +1 -0
  122. package/dist/ai/commands/suggest.d.ts +8 -0
  123. package/dist/ai/commands/suggest.d.ts.map +1 -0
  124. package/dist/ai/commands/suggest.js +101 -0
  125. package/dist/ai/commands/suggest.js.map +1 -0
  126. package/dist/ai/commands/template.d.ts +8 -0
  127. package/dist/ai/commands/template.d.ts.map +1 -0
  128. package/dist/ai/commands/template.js +136 -0
  129. package/dist/ai/commands/template.js.map +1 -0
  130. package/dist/ai/config/index.d.ts +71 -0
  131. package/dist/ai/config/index.d.ts.map +1 -0
  132. package/dist/ai/config/index.js +193 -0
  133. package/dist/ai/config/index.js.map +1 -0
  134. package/dist/ai/config-loader.d.ts +31 -0
  135. package/dist/ai/config-loader.d.ts.map +1 -0
  136. package/dist/ai/config-loader.js +66 -0
  137. package/dist/ai/config-loader.js.map +1 -0
  138. package/dist/ai/core/ecosystem-prompt-manager.d.ts +107 -0
  139. package/dist/ai/core/ecosystem-prompt-manager.d.ts.map +1 -0
  140. package/dist/ai/core/ecosystem-prompt-manager.js +462 -0
  141. package/dist/ai/core/ecosystem-prompt-manager.js.map +1 -0
  142. package/dist/ai/examples/basic-usage.d.ts +9 -0
  143. package/dist/ai/examples/basic-usage.d.ts.map +1 -0
  144. package/dist/ai/examples/basic-usage.js +94 -0
  145. package/dist/ai/examples/basic-usage.js.map +1 -0
  146. package/dist/ai/index.d.ts +44 -0
  147. package/dist/ai/index.d.ts.map +1 -0
  148. package/dist/ai/index.js +164 -0
  149. package/dist/ai/index.js.map +1 -0
  150. package/dist/ai/orchestrator/index.d.ts +3 -0
  151. package/dist/ai/orchestrator/index.d.ts.map +1 -0
  152. package/dist/ai/orchestrator/index.js +3 -0
  153. package/dist/ai/orchestrator/index.js.map +1 -0
  154. package/dist/ai/orchestrator/interactive-workflow.d.ts +66 -0
  155. package/dist/ai/orchestrator/interactive-workflow.d.ts.map +1 -0
  156. package/dist/ai/orchestrator/interactive-workflow.js +214 -0
  157. package/dist/ai/orchestrator/interactive-workflow.js.map +1 -0
  158. package/dist/ai/orchestrator/specverse-orchestrator.d.ts +217 -0
  159. package/dist/ai/orchestrator/specverse-orchestrator.d.ts.map +1 -0
  160. package/dist/ai/orchestrator/specverse-orchestrator.js +745 -0
  161. package/dist/ai/orchestrator/specverse-orchestrator.js.map +1 -0
  162. package/dist/ai/prompt-loader.d.ts +24 -0
  163. package/dist/ai/prompt-loader.d.ts.map +1 -0
  164. package/dist/ai/prompt-loader.js +159 -0
  165. package/dist/ai/prompt-loader.js.map +1 -0
  166. package/dist/ai/providers/anthropic-provider.d.ts +38 -0
  167. package/dist/ai/providers/anthropic-provider.d.ts.map +1 -0
  168. package/dist/ai/providers/anthropic-provider.js +235 -0
  169. package/dist/ai/providers/anthropic-provider.js.map +1 -0
  170. package/dist/ai/providers/index.d.ts +6 -0
  171. package/dist/ai/providers/index.d.ts.map +1 -0
  172. package/dist/ai/providers/index.js +6 -0
  173. package/dist/ai/providers/index.js.map +1 -0
  174. package/dist/ai/providers/interactive-provider.d.ts +67 -0
  175. package/dist/ai/providers/interactive-provider.d.ts.map +1 -0
  176. package/dist/ai/providers/interactive-provider.js +337 -0
  177. package/dist/ai/providers/interactive-provider.js.map +1 -0
  178. package/dist/ai/providers/llm-provider.d.ts +127 -0
  179. package/dist/ai/providers/llm-provider.d.ts.map +1 -0
  180. package/dist/ai/providers/llm-provider.js +141 -0
  181. package/dist/ai/providers/llm-provider.js.map +1 -0
  182. package/dist/ai/providers/openai-provider.d.ts +39 -0
  183. package/dist/ai/providers/openai-provider.d.ts.map +1 -0
  184. package/dist/ai/providers/openai-provider.js +193 -0
  185. package/dist/ai/providers/openai-provider.js.map +1 -0
  186. package/dist/ai/providers/provider-factory.d.ts +47 -0
  187. package/dist/ai/providers/provider-factory.d.ts.map +1 -0
  188. package/dist/ai/providers/provider-factory.js +159 -0
  189. package/dist/ai/providers/provider-factory.js.map +1 -0
  190. package/dist/ai/session/claude-executor.d.ts +39 -0
  191. package/dist/ai/session/claude-executor.d.ts.map +1 -0
  192. package/dist/ai/session/claude-executor.js +136 -0
  193. package/dist/ai/session/claude-executor.js.map +1 -0
  194. package/dist/ai/session/session-manager.d.ts +72 -0
  195. package/dist/ai/session/session-manager.d.ts.map +1 -0
  196. package/dist/ai/session/session-manager.js +294 -0
  197. package/dist/ai/session/session-manager.js.map +1 -0
  198. package/dist/ai/session/types.d.ts +152 -0
  199. package/dist/ai/session/types.d.ts.map +1 -0
  200. package/dist/ai/session/types.js +6 -0
  201. package/dist/ai/session/types.js.map +1 -0
  202. package/dist/ai/types/index.d.ts +83 -0
  203. package/dist/ai/types/index.d.ts.map +1 -0
  204. package/dist/ai/types/index.js +5 -0
  205. package/dist/ai/types/index.js.map +1 -0
  206. package/dist/generators/UML-generator.d.ts +64 -0
  207. package/dist/generators/UML-generator.d.ts.map +1 -0
  208. package/dist/generators/UML-generator.js +541 -0
  209. package/dist/generators/UML-generator.js.map +1 -0
  210. package/dist/generators/ai-view-generator.d.ts +391 -0
  211. package/dist/generators/ai-view-generator.d.ts.map +1 -0
  212. package/dist/generators/ai-view-generator.js +907 -0
  213. package/dist/generators/ai-view-generator.js.map +1 -0
  214. package/dist/generators/diagram-engine/core/BaseDiagramPlugin.d.ts +41 -0
  215. package/dist/generators/diagram-engine/core/BaseDiagramPlugin.d.ts.map +1 -0
  216. package/dist/generators/diagram-engine/core/BaseDiagramPlugin.js +64 -0
  217. package/dist/generators/diagram-engine/core/BaseDiagramPlugin.js.map +1 -0
  218. package/dist/generators/diagram-engine/core/DiagramContext.d.ts +155 -0
  219. package/dist/generators/diagram-engine/core/DiagramContext.d.ts.map +1 -0
  220. package/dist/generators/diagram-engine/core/DiagramContext.js +481 -0
  221. package/dist/generators/diagram-engine/core/DiagramContext.js.map +1 -0
  222. package/dist/generators/diagram-engine/core/StyleManager.d.ts +51 -0
  223. package/dist/generators/diagram-engine/core/StyleManager.d.ts.map +1 -0
  224. package/dist/generators/diagram-engine/core/StyleManager.js +227 -0
  225. package/dist/generators/diagram-engine/core/StyleManager.js.map +1 -0
  226. package/dist/generators/diagram-engine/core/UnifiedDiagramGenerator.d.ts +83 -0
  227. package/dist/generators/diagram-engine/core/UnifiedDiagramGenerator.d.ts.map +1 -0
  228. package/dist/generators/diagram-engine/core/UnifiedDiagramGenerator.js +200 -0
  229. package/dist/generators/diagram-engine/core/UnifiedDiagramGenerator.js.map +1 -0
  230. package/dist/generators/diagram-engine/index.d.ts +41 -0
  231. package/dist/generators/diagram-engine/index.d.ts.map +1 -0
  232. package/dist/generators/diagram-engine/index.js +74 -0
  233. package/dist/generators/diagram-engine/index.js.map +1 -0
  234. package/dist/generators/diagram-engine/plugins/architecture/ArchitecturePlugin.d.ts +65 -0
  235. package/dist/generators/diagram-engine/plugins/architecture/ArchitecturePlugin.d.ts.map +1 -0
  236. package/dist/generators/diagram-engine/plugins/architecture/ArchitecturePlugin.js +490 -0
  237. package/dist/generators/diagram-engine/plugins/architecture/ArchitecturePlugin.js.map +1 -0
  238. package/dist/generators/diagram-engine/plugins/class-diagram/ClassDiagramPlugin.d.ts +40 -0
  239. package/dist/generators/diagram-engine/plugins/class-diagram/ClassDiagramPlugin.d.ts.map +1 -0
  240. package/dist/generators/diagram-engine/plugins/class-diagram/ClassDiagramPlugin.js +323 -0
  241. package/dist/generators/diagram-engine/plugins/class-diagram/ClassDiagramPlugin.js.map +1 -0
  242. package/dist/generators/diagram-engine/plugins/deployment/DeploymentPlugin.d.ts +46 -0
  243. package/dist/generators/diagram-engine/plugins/deployment/DeploymentPlugin.d.ts.map +1 -0
  244. package/dist/generators/diagram-engine/plugins/deployment/DeploymentPlugin.js +391 -0
  245. package/dist/generators/diagram-engine/plugins/deployment/DeploymentPlugin.js.map +1 -0
  246. package/dist/generators/diagram-engine/plugins/er-diagram/ERDiagramPlugin.d.ts +57 -0
  247. package/dist/generators/diagram-engine/plugins/er-diagram/ERDiagramPlugin.d.ts.map +1 -0
  248. package/dist/generators/diagram-engine/plugins/er-diagram/ERDiagramPlugin.js +300 -0
  249. package/dist/generators/diagram-engine/plugins/er-diagram/ERDiagramPlugin.js.map +1 -0
  250. package/dist/generators/diagram-engine/plugins/event-flow/EventFlowPlugin.d.ts +70 -0
  251. package/dist/generators/diagram-engine/plugins/event-flow/EventFlowPlugin.d.ts.map +1 -0
  252. package/dist/generators/diagram-engine/plugins/event-flow/EventFlowPlugin.js +955 -0
  253. package/dist/generators/diagram-engine/plugins/event-flow/EventFlowPlugin.js.map +1 -0
  254. package/dist/generators/diagram-engine/plugins/lifecycle/LifecyclePlugin.d.ts +40 -0
  255. package/dist/generators/diagram-engine/plugins/lifecycle/LifecyclePlugin.d.ts.map +1 -0
  256. package/dist/generators/diagram-engine/plugins/lifecycle/LifecyclePlugin.js +183 -0
  257. package/dist/generators/diagram-engine/plugins/lifecycle/LifecyclePlugin.js.map +1 -0
  258. package/dist/generators/diagram-engine/plugins/manifest/ManifestPlugin.d.ts +71 -0
  259. package/dist/generators/diagram-engine/plugins/manifest/ManifestPlugin.d.ts.map +1 -0
  260. package/dist/generators/diagram-engine/plugins/manifest/ManifestPlugin.js +396 -0
  261. package/dist/generators/diagram-engine/plugins/manifest/ManifestPlugin.js.map +1 -0
  262. package/dist/generators/diagram-engine/renderers/MermaidRenderer.d.ts +72 -0
  263. package/dist/generators/diagram-engine/renderers/MermaidRenderer.d.ts.map +1 -0
  264. package/dist/generators/diagram-engine/renderers/MermaidRenderer.js +441 -0
  265. package/dist/generators/diagram-engine/renderers/MermaidRenderer.js.map +1 -0
  266. package/dist/generators/diagram-engine/types/index.d.ts +261 -0
  267. package/dist/generators/diagram-engine/types/index.d.ts.map +1 -0
  268. package/dist/generators/diagram-engine/types/index.js +7 -0
  269. package/dist/generators/diagram-engine/types/index.js.map +1 -0
  270. package/dist/generators/documentation-generator.d.ts +54 -0
  271. package/dist/generators/documentation-generator.d.ts.map +1 -0
  272. package/dist/generators/documentation-generator.js +756 -0
  273. package/dist/generators/documentation-generator.js.map +1 -0
  274. package/dist/generators/index.d.ts +47 -0
  275. package/dist/generators/index.d.ts.map +1 -0
  276. package/dist/generators/index.js +51 -0
  277. package/dist/generators/index.js.map +1 -0
  278. package/dist/index.d.ts +13 -0
  279. package/dist/index.d.ts.map +1 -0
  280. package/dist/index.js +14 -0
  281. package/dist/index.js.map +1 -0
  282. package/dist/inference/comprehensive-engine.d.ts +71 -0
  283. package/dist/inference/comprehensive-engine.d.ts.map +1 -0
  284. package/dist/inference/comprehensive-engine.js +271 -0
  285. package/dist/inference/comprehensive-engine.js.map +1 -0
  286. package/dist/inference/core/context.d.ts +60 -0
  287. package/dist/inference/core/context.d.ts.map +1 -0
  288. package/dist/inference/core/context.js +292 -0
  289. package/dist/inference/core/context.js.map +1 -0
  290. package/dist/inference/core/index.d.ts +14 -0
  291. package/dist/inference/core/index.d.ts.map +1 -0
  292. package/dist/inference/core/index.js +18 -0
  293. package/dist/inference/core/index.js.map +1 -0
  294. package/dist/inference/core/rule-engine.d.ts +52 -0
  295. package/dist/inference/core/rule-engine.d.ts.map +1 -0
  296. package/dist/inference/core/rule-engine.js +1329 -0
  297. package/dist/inference/core/rule-engine.js.map +1 -0
  298. package/dist/inference/core/rule-file-types.d.ts +225 -0
  299. package/dist/inference/core/rule-file-types.d.ts.map +1 -0
  300. package/dist/inference/core/rule-file-types.js +79 -0
  301. package/dist/inference/core/rule-file-types.js.map +1 -0
  302. package/dist/inference/core/rule-loader.d.ts +93 -0
  303. package/dist/inference/core/rule-loader.d.ts.map +1 -0
  304. package/dist/inference/core/rule-loader.js +645 -0
  305. package/dist/inference/core/rule-loader.js.map +1 -0
  306. package/dist/inference/core/specly-converter.d.ts +50 -0
  307. package/dist/inference/core/specly-converter.d.ts.map +1 -0
  308. package/dist/inference/core/specly-converter.js +885 -0
  309. package/dist/inference/core/specly-converter.js.map +1 -0
  310. package/dist/inference/core/types.d.ts +395 -0
  311. package/dist/inference/core/types.d.ts.map +1 -0
  312. package/dist/inference/core/types.js +31 -0
  313. package/dist/inference/core/types.js.map +1 -0
  314. package/dist/inference/deployment/deployment-generator.d.ts +48 -0
  315. package/dist/inference/deployment/deployment-generator.d.ts.map +1 -0
  316. package/dist/inference/deployment/deployment-generator.js +343 -0
  317. package/dist/inference/deployment/deployment-generator.js.map +1 -0
  318. package/dist/inference/deployment/index.d.ts +6 -0
  319. package/dist/inference/deployment/index.d.ts.map +1 -0
  320. package/dist/inference/deployment/index.js +5 -0
  321. package/dist/inference/deployment/index.js.map +1 -0
  322. package/dist/inference/dev-specly-generator.d.ts +19 -0
  323. package/dist/inference/dev-specly-generator.d.ts.map +1 -0
  324. package/dist/inference/dev-specly-generator.js +127 -0
  325. package/dist/inference/dev-specly-generator.js.map +1 -0
  326. package/dist/inference/index.d.ts +29 -0
  327. package/dist/inference/index.d.ts.map +1 -0
  328. package/dist/inference/index.js +170 -0
  329. package/dist/inference/index.js.map +1 -0
  330. package/dist/inference/logical/generators/component-type-resolver.d.ts +82 -0
  331. package/dist/inference/logical/generators/component-type-resolver.d.ts.map +1 -0
  332. package/dist/inference/logical/generators/component-type-resolver.js +151 -0
  333. package/dist/inference/logical/generators/component-type-resolver.js.map +1 -0
  334. package/dist/inference/logical/generators/controller-generator.d.ts +43 -0
  335. package/dist/inference/logical/generators/controller-generator.d.ts.map +1 -0
  336. package/dist/inference/logical/generators/controller-generator.js +303 -0
  337. package/dist/inference/logical/generators/controller-generator.js.map +1 -0
  338. package/dist/inference/logical/generators/event-generator.d.ts +67 -0
  339. package/dist/inference/logical/generators/event-generator.d.ts.map +1 -0
  340. package/dist/inference/logical/generators/event-generator.js +466 -0
  341. package/dist/inference/logical/generators/event-generator.js.map +1 -0
  342. package/dist/inference/logical/generators/promotion-generator.d.ts +32 -0
  343. package/dist/inference/logical/generators/promotion-generator.d.ts.map +1 -0
  344. package/dist/inference/logical/generators/promotion-generator.js +133 -0
  345. package/dist/inference/logical/generators/promotion-generator.js.map +1 -0
  346. package/dist/inference/logical/generators/service-generator.d.ts +51 -0
  347. package/dist/inference/logical/generators/service-generator.d.ts.map +1 -0
  348. package/dist/inference/logical/generators/service-generator.js +268 -0
  349. package/dist/inference/logical/generators/service-generator.js.map +1 -0
  350. package/dist/inference/logical/generators/specialist-view-expander.d.ts +75 -0
  351. package/dist/inference/logical/generators/specialist-view-expander.d.ts.map +1 -0
  352. package/dist/inference/logical/generators/specialist-view-expander.js +182 -0
  353. package/dist/inference/logical/generators/specialist-view-expander.js.map +1 -0
  354. package/dist/inference/logical/generators/view-generator.d.ts +131 -0
  355. package/dist/inference/logical/generators/view-generator.d.ts.map +1 -0
  356. package/dist/inference/logical/generators/view-generator.js +1115 -0
  357. package/dist/inference/logical/generators/view-generator.js.map +1 -0
  358. package/dist/inference/logical/index.d.ts +19 -0
  359. package/dist/inference/logical/index.d.ts.map +1 -0
  360. package/dist/inference/logical/index.js +15 -0
  361. package/dist/inference/logical/index.js.map +1 -0
  362. package/dist/inference/logical/logical-engine.d.ts +68 -0
  363. package/dist/inference/logical/logical-engine.d.ts.map +1 -0
  364. package/dist/inference/logical/logical-engine.js +484 -0
  365. package/dist/inference/logical/logical-engine.js.map +1 -0
  366. package/dist/inference/quint-transpiler.d.ts +64 -0
  367. package/dist/inference/quint-transpiler.d.ts.map +1 -0
  368. package/dist/inference/quint-transpiler.js +433 -0
  369. package/dist/inference/quint-transpiler.js.map +1 -0
  370. package/dist/inference/test-harness.d.ts +41 -0
  371. package/dist/inference/test-harness.d.ts.map +1 -0
  372. package/dist/inference/test-harness.js +357 -0
  373. package/dist/inference/test-harness.js.map +1 -0
  374. package/dist/parser/convention-processor.d.ts +66 -0
  375. package/dist/parser/convention-processor.d.ts.map +1 -0
  376. package/dist/parser/convention-processor.js +349 -0
  377. package/dist/parser/convention-processor.js.map +1 -0
  378. package/dist/parser/import-resolver/cache.d.ts +56 -0
  379. package/dist/parser/import-resolver/cache.d.ts.map +1 -0
  380. package/dist/parser/import-resolver/cache.js +191 -0
  381. package/dist/parser/import-resolver/cache.js.map +1 -0
  382. package/dist/parser/import-resolver/index.d.ts +10 -0
  383. package/dist/parser/import-resolver/index.d.ts.map +1 -0
  384. package/dist/parser/import-resolver/index.js +9 -0
  385. package/dist/parser/import-resolver/index.js.map +1 -0
  386. package/dist/parser/import-resolver/resolver.d.ts +102 -0
  387. package/dist/parser/import-resolver/resolver.d.ts.map +1 -0
  388. package/dist/parser/import-resolver/resolver.js +669 -0
  389. package/dist/parser/import-resolver/resolver.js.map +1 -0
  390. package/dist/parser/import-resolver/types.d.ts +55 -0
  391. package/dist/parser/import-resolver/types.d.ts.map +1 -0
  392. package/dist/parser/import-resolver/types.js +5 -0
  393. package/dist/parser/import-resolver/types.js.map +1 -0
  394. package/dist/parser/index.d.ts +38 -0
  395. package/dist/parser/index.d.ts.map +1 -0
  396. package/dist/parser/index.js +61 -0
  397. package/dist/parser/index.js.map +1 -0
  398. package/dist/parser/namespace-utils.d.ts +61 -0
  399. package/dist/parser/namespace-utils.d.ts.map +1 -0
  400. package/dist/parser/namespace-utils.js +191 -0
  401. package/dist/parser/namespace-utils.js.map +1 -0
  402. package/dist/parser/processors/AbstractProcessor.d.ts +10 -0
  403. package/dist/parser/processors/AbstractProcessor.d.ts.map +1 -0
  404. package/dist/parser/processors/AbstractProcessor.js +11 -0
  405. package/dist/parser/processors/AbstractProcessor.js.map +1 -0
  406. package/dist/parser/processors/AttributeProcessor.d.ts +19 -0
  407. package/dist/parser/processors/AttributeProcessor.d.ts.map +1 -0
  408. package/dist/parser/processors/AttributeProcessor.js +154 -0
  409. package/dist/parser/processors/AttributeProcessor.js.map +1 -0
  410. package/dist/parser/processors/ControllerProcessor.d.ts +9 -0
  411. package/dist/parser/processors/ControllerProcessor.d.ts.map +1 -0
  412. package/dist/parser/processors/ControllerProcessor.js +74 -0
  413. package/dist/parser/processors/ControllerProcessor.js.map +1 -0
  414. package/dist/parser/processors/DeploymentProcessor.d.ts +19 -0
  415. package/dist/parser/processors/DeploymentProcessor.d.ts.map +1 -0
  416. package/dist/parser/processors/DeploymentProcessor.js +244 -0
  417. package/dist/parser/processors/DeploymentProcessor.js.map +1 -0
  418. package/dist/parser/processors/EventProcessor.d.ts +8 -0
  419. package/dist/parser/processors/EventProcessor.d.ts.map +1 -0
  420. package/dist/parser/processors/EventProcessor.js +28 -0
  421. package/dist/parser/processors/EventProcessor.js.map +1 -0
  422. package/dist/parser/processors/ExecutableProcessor.d.ts +21 -0
  423. package/dist/parser/processors/ExecutableProcessor.d.ts.map +1 -0
  424. package/dist/parser/processors/ExecutableProcessor.js +135 -0
  425. package/dist/parser/processors/ExecutableProcessor.js.map +1 -0
  426. package/dist/parser/processors/LifecycleProcessor.d.ts +9 -0
  427. package/dist/parser/processors/LifecycleProcessor.d.ts.map +1 -0
  428. package/dist/parser/processors/LifecycleProcessor.js +41 -0
  429. package/dist/parser/processors/LifecycleProcessor.js.map +1 -0
  430. package/dist/parser/processors/ModelProcessor.d.ts +67 -0
  431. package/dist/parser/processors/ModelProcessor.d.ts.map +1 -0
  432. package/dist/parser/processors/ModelProcessor.js +495 -0
  433. package/dist/parser/processors/ModelProcessor.js.map +1 -0
  434. package/dist/parser/processors/RelationshipProcessor.d.ts +10 -0
  435. package/dist/parser/processors/RelationshipProcessor.d.ts.map +1 -0
  436. package/dist/parser/processors/RelationshipProcessor.js +55 -0
  437. package/dist/parser/processors/RelationshipProcessor.js.map +1 -0
  438. package/dist/parser/processors/ServiceProcessor.d.ts +9 -0
  439. package/dist/parser/processors/ServiceProcessor.d.ts.map +1 -0
  440. package/dist/parser/processors/ServiceProcessor.js +59 -0
  441. package/dist/parser/processors/ServiceProcessor.js.map +1 -0
  442. package/dist/parser/processors/ViewProcessor.d.ts +7 -0
  443. package/dist/parser/processors/ViewProcessor.d.ts.map +1 -0
  444. package/dist/parser/processors/ViewProcessor.js +66 -0
  445. package/dist/parser/processors/ViewProcessor.js.map +1 -0
  446. package/dist/parser/types/ast.d.ts +518 -0
  447. package/dist/parser/types/ast.d.ts.map +1 -0
  448. package/dist/parser/types/ast.js +8 -0
  449. package/dist/parser/types/ast.js.map +1 -0
  450. package/dist/parser/types/views.d.ts +186 -0
  451. package/dist/parser/types/views.d.ts.map +1 -0
  452. package/dist/parser/types/views.js +8 -0
  453. package/dist/parser/types/views.js.map +1 -0
  454. package/dist/parser/unified-parser.d.ts +195 -0
  455. package/dist/parser/unified-parser.d.ts.map +1 -0
  456. package/dist/parser/unified-parser.js +1180 -0
  457. package/dist/parser/unified-parser.js.map +1 -0
  458. package/dist/parser/vitest.config.d.ts +3 -0
  459. package/dist/parser/vitest.config.d.ts.map +1 -0
  460. package/dist/parser/vitest.config.js +27 -0
  461. package/dist/parser/vitest.config.js.map +1 -0
  462. package/dist/realize/engines/code-generator.d.ts +86 -0
  463. package/dist/realize/engines/code-generator.d.ts.map +1 -0
  464. package/dist/realize/engines/code-generator.js +159 -0
  465. package/dist/realize/engines/code-generator.js.map +1 -0
  466. package/dist/realize/engines/engine-registry.d.ts +94 -0
  467. package/dist/realize/engines/engine-registry.d.ts.map +1 -0
  468. package/dist/realize/engines/engine-registry.js +163 -0
  469. package/dist/realize/engines/engine-registry.js.map +1 -0
  470. package/dist/realize/engines/index.d.ts +10 -0
  471. package/dist/realize/engines/index.d.ts.map +1 -0
  472. package/dist/realize/engines/index.js +12 -0
  473. package/dist/realize/engines/index.js.map +1 -0
  474. package/dist/realize/engines/typescript-engine.d.ts +74 -0
  475. package/dist/realize/engines/typescript-engine.d.ts.map +1 -0
  476. package/dist/realize/engines/typescript-engine.js +289 -0
  477. package/dist/realize/engines/typescript-engine.js.map +1 -0
  478. package/dist/realize/generators/index.d.ts +11 -0
  479. package/dist/realize/generators/index.d.ts.map +1 -0
  480. package/dist/realize/generators/index.js +11 -0
  481. package/dist/realize/generators/index.js.map +1 -0
  482. package/dist/realize/index.d.ts +48 -0
  483. package/dist/realize/index.d.ts.map +1 -0
  484. package/dist/realize/index.js +529 -0
  485. package/dist/realize/index.js.map +1 -0
  486. package/dist/realize/library/index.d.ts +12 -0
  487. package/dist/realize/library/index.d.ts.map +1 -0
  488. package/dist/realize/library/index.js +15 -0
  489. package/dist/realize/library/index.js.map +1 -0
  490. package/dist/realize/library/library.d.ts +132 -0
  491. package/dist/realize/library/library.d.ts.map +1 -0
  492. package/dist/realize/library/library.js +343 -0
  493. package/dist/realize/library/library.js.map +1 -0
  494. package/dist/realize/library/loader.d.ts +73 -0
  495. package/dist/realize/library/loader.d.ts.map +1 -0
  496. package/dist/realize/library/loader.js +159 -0
  497. package/dist/realize/library/loader.js.map +1 -0
  498. package/dist/realize/library/resolver.d.ts +104 -0
  499. package/dist/realize/library/resolver.d.ts.map +1 -0
  500. package/dist/realize/library/resolver.js +299 -0
  501. package/dist/realize/library/resolver.js.map +1 -0
  502. package/dist/realize/library/validator.d.ts +65 -0
  503. package/dist/realize/library/validator.d.ts.map +1 -0
  504. package/dist/realize/library/validator.js +203 -0
  505. package/dist/realize/library/validator.js.map +1 -0
  506. package/dist/realize/types/index.d.ts +5 -0
  507. package/dist/realize/types/index.d.ts.map +1 -0
  508. package/dist/realize/types/index.js +5 -0
  509. package/dist/realize/types/index.js.map +1 -0
  510. package/dist/realize/types/instance-factory.d.ts +7 -0
  511. package/dist/realize/types/instance-factory.d.ts.map +1 -0
  512. package/dist/realize/types/instance-factory.js +2 -0
  513. package/dist/realize/types/instance-factory.js.map +1 -0
  514. package/dist/realize/types/unified-mappings.d.ts +163 -0
  515. package/dist/realize/types/unified-mappings.d.ts.map +1 -0
  516. package/dist/realize/types/unified-mappings.js +110 -0
  517. package/dist/realize/types/unified-mappings.js.map +1 -0
  518. package/dist/realize/utils/ai-spec-loader.d.ts +77 -0
  519. package/dist/realize/utils/ai-spec-loader.d.ts.map +1 -0
  520. package/dist/realize/utils/ai-spec-loader.js +142 -0
  521. package/dist/realize/utils/ai-spec-loader.js.map +1 -0
  522. package/dist/realize/utils/index.d.ts +9 -0
  523. package/dist/realize/utils/index.d.ts.map +1 -0
  524. package/dist/realize/utils/index.js +9 -0
  525. package/dist/realize/utils/index.js.map +1 -0
  526. package/dist/realize/utils/manifest-loader.d.ts +107 -0
  527. package/dist/realize/utils/manifest-loader.d.ts.map +1 -0
  528. package/dist/realize/utils/manifest-loader.js +168 -0
  529. package/dist/realize/utils/manifest-loader.js.map +1 -0
  530. package/dist/realize/utils/mapping-migration.d.ts +53 -0
  531. package/dist/realize/utils/mapping-migration.d.ts.map +1 -0
  532. package/dist/realize/utils/mapping-migration.js +194 -0
  533. package/dist/realize/utils/mapping-migration.js.map +1 -0
  534. package/dist/registry/cache/cache-manager.d.ts +132 -0
  535. package/dist/registry/cache/cache-manager.d.ts.map +1 -0
  536. package/dist/registry/cache/cache-manager.js +218 -0
  537. package/dist/registry/cache/cache-manager.js.map +1 -0
  538. package/dist/registry/client/registry-client.d.ts +129 -0
  539. package/dist/registry/client/registry-client.d.ts.map +1 -0
  540. package/dist/registry/client/registry-client.js +317 -0
  541. package/dist/registry/client/registry-client.js.map +1 -0
  542. package/dist/registry/formatters/error-formatter.d.ts +100 -0
  543. package/dist/registry/formatters/error-formatter.d.ts.map +1 -0
  544. package/dist/registry/formatters/error-formatter.js +290 -0
  545. package/dist/registry/formatters/error-formatter.js.map +1 -0
  546. package/dist/registry/formatters/index.d.ts +8 -0
  547. package/dist/registry/formatters/index.d.ts.map +1 -0
  548. package/dist/registry/formatters/index.js +7 -0
  549. package/dist/registry/formatters/index.js.map +1 -0
  550. package/dist/registry/index.d.ts +19 -0
  551. package/dist/registry/index.d.ts.map +1 -0
  552. package/dist/registry/index.js +22 -0
  553. package/dist/registry/index.js.map +1 -0
  554. package/dist/registry/offline/offline-handler.d.ts +150 -0
  555. package/dist/registry/offline/offline-handler.d.ts.map +1 -0
  556. package/dist/registry/offline/offline-handler.js +290 -0
  557. package/dist/registry/offline/offline-handler.js.map +1 -0
  558. package/dist/registry/types/index.d.ts +13 -0
  559. package/dist/registry/types/index.d.ts.map +1 -0
  560. package/dist/registry/types/index.js +11 -0
  561. package/dist/registry/types/index.js.map +1 -0
  562. package/dist/registry/types/registry.d.ts +220 -0
  563. package/dist/registry/types/registry.d.ts.map +1 -0
  564. package/dist/registry/types/registry.js +55 -0
  565. package/dist/registry/types/registry.js.map +1 -0
  566. package/dist/registry/types/validation.d.ts +197 -0
  567. package/dist/registry/types/validation.d.ts.map +1 -0
  568. package/dist/registry/types/validation.js +140 -0
  569. package/dist/registry/types/validation.js.map +1 -0
  570. package/dist/registry/utils/manifest-adapter.d.ts +42 -0
  571. package/dist/registry/utils/manifest-adapter.d.ts.map +1 -0
  572. package/dist/registry/utils/manifest-adapter.js +182 -0
  573. package/dist/registry/utils/manifest-adapter.js.map +1 -0
  574. package/dist/registry/validators/index.d.ts +12 -0
  575. package/dist/registry/validators/index.d.ts.map +1 -0
  576. package/dist/registry/validators/index.js +9 -0
  577. package/dist/registry/validators/index.js.map +1 -0
  578. package/dist/registry/validators/installation-validator.d.ts +75 -0
  579. package/dist/registry/validators/installation-validator.d.ts.map +1 -0
  580. package/dist/registry/validators/installation-validator.js +142 -0
  581. package/dist/registry/validators/installation-validator.js.map +1 -0
  582. package/dist/registry/validators/manifest-validator.d.ts +82 -0
  583. package/dist/registry/validators/manifest-validator.d.ts.map +1 -0
  584. package/dist/registry/validators/manifest-validator.js +213 -0
  585. package/dist/registry/validators/manifest-validator.js.map +1 -0
  586. package/dist/registry/validators/validator.d.ts +113 -0
  587. package/dist/registry/validators/validator.d.ts.map +1 -0
  588. package/dist/registry/validators/validator.js +165 -0
  589. package/dist/registry/validators/validator.js.map +1 -0
  590. package/libs/instance-factories/CURVED-INTERFACE.md +278 -0
  591. package/libs/instance-factories/README.md +73 -0
  592. package/libs/instance-factories/applications/README.md +51 -0
  593. package/libs/instance-factories/applications/generic-app.yaml +52 -0
  594. package/libs/instance-factories/applications/react-app-runtime.yaml +139 -0
  595. package/libs/instance-factories/applications/react-app.yaml +186 -0
  596. package/libs/instance-factories/applications/templates/generic/backend-env-generator.ts +31 -0
  597. package/libs/instance-factories/applications/templates/generic/backend-package-json-generator.ts +84 -0
  598. package/libs/instance-factories/applications/templates/generic/backend-tsconfig-generator.ts +69 -0
  599. package/libs/instance-factories/applications/templates/generic/main-generator.ts +308 -0
  600. package/libs/instance-factories/applications/templates/react/_view-components-source.ts +555 -0
  601. package/libs/instance-factories/applications/templates/react/api-client-generator.ts +436 -0
  602. package/libs/instance-factories/applications/templates/react/api-types-generator.ts +153 -0
  603. package/libs/instance-factories/applications/templates/react/app-tsx-generator.ts +94 -0
  604. package/libs/instance-factories/applications/templates/react/env-example-generator.ts +24 -0
  605. package/libs/instance-factories/applications/templates/react/field-helpers-generator.ts +106 -0
  606. package/libs/instance-factories/applications/templates/react/gitignore-generator.ts +38 -0
  607. package/libs/instance-factories/applications/templates/react/index-css-generator.ts +14 -0
  608. package/libs/instance-factories/applications/templates/react/index-html-generator.ts +30 -0
  609. package/libs/instance-factories/applications/templates/react/main-tsx-generator.ts +34 -0
  610. package/libs/instance-factories/applications/templates/react/package-json-generator.ts +57 -0
  611. package/libs/instance-factories/applications/templates/react/pattern-adapter-generator.ts +179 -0
  612. package/libs/instance-factories/applications/templates/react/react-pattern-adapter.tsx +1347 -0
  613. package/libs/instance-factories/applications/templates/react/relationship-field-generator.ts +150 -0
  614. package/libs/instance-factories/applications/templates/react/runtime-app-tsx-generator.ts +90 -0
  615. package/libs/instance-factories/applications/templates/react/runtime-package-json-generator.ts +61 -0
  616. package/libs/instance-factories/applications/templates/react/tailwind-adapter-generator.ts +704 -0
  617. package/libs/instance-factories/applications/templates/react/tailwind-adapter-wrapper-generator.ts +84 -0
  618. package/libs/instance-factories/applications/templates/react/tsconfig-generator.ts +35 -0
  619. package/libs/instance-factories/applications/templates/react/use-api-hooks-generator.ts +121 -0
  620. package/libs/instance-factories/applications/templates/react/view-dashboard-generator.ts +150 -0
  621. package/libs/instance-factories/applications/templates/react/view-detail-generator.ts +150 -0
  622. package/libs/instance-factories/applications/templates/react/view-form-generator.ts +362 -0
  623. package/libs/instance-factories/applications/templates/react/view-list-generator.ts +98 -0
  624. package/libs/instance-factories/applications/templates/react/view-router-generator.ts +89 -0
  625. package/libs/instance-factories/applications/templates/react/vite-config-generator.ts +49 -0
  626. package/libs/instance-factories/archived/fastify-prisma.yaml +104 -0
  627. package/libs/instance-factories/cli/README.md +43 -0
  628. package/libs/instance-factories/cli/commander-js.yaml +55 -0
  629. package/libs/instance-factories/cli/templates/commander/cli-bin-wrapper-generator.ts +20 -0
  630. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.d.ts +12 -0
  631. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.d.ts.map +1 -0
  632. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.js +115 -0
  633. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.js.map +1 -0
  634. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.ts +168 -0
  635. package/libs/instance-factories/cli/templates/commander/command-generator.d.ts +14 -0
  636. package/libs/instance-factories/cli/templates/commander/command-generator.d.ts.map +1 -0
  637. package/libs/instance-factories/cli/templates/commander/command-generator.js +182 -0
  638. package/libs/instance-factories/cli/templates/commander/command-generator.js.map +1 -0
  639. package/libs/instance-factories/cli/templates/commander/command-generator.ts +1036 -0
  640. package/libs/instance-factories/communication/README.md +47 -0
  641. package/libs/instance-factories/communication/event-emitter.yaml +56 -0
  642. package/libs/instance-factories/communication/rabbitmq-events.yaml +87 -0
  643. package/libs/instance-factories/communication/templates/eventemitter/bus-generator.ts +93 -0
  644. package/libs/instance-factories/communication/templates/eventemitter/publisher-generator.ts +117 -0
  645. package/libs/instance-factories/communication/templates/eventemitter/subscriber-generator.ts +101 -0
  646. package/libs/instance-factories/controllers/README.md +42 -0
  647. package/libs/instance-factories/controllers/fastify.yaml +127 -0
  648. package/libs/instance-factories/controllers/templates/fastify/meta-routes-generator.ts +103 -0
  649. package/libs/instance-factories/controllers/templates/fastify/routes-generator.ts +389 -0
  650. package/libs/instance-factories/controllers/templates/fastify/server-generator.ts +76 -0
  651. package/libs/instance-factories/infrastructure/README.md +29 -0
  652. package/libs/instance-factories/infrastructure/docker-k8s.yaml +61 -0
  653. package/libs/instance-factories/infrastructure/templates/docker-k8s/infrastructure-generator.ts +46 -0
  654. package/libs/instance-factories/orms/README.md +54 -0
  655. package/libs/instance-factories/orms/prisma.yaml +89 -0
  656. package/libs/instance-factories/orms/templates/prisma/schema-generator.ts +576 -0
  657. package/libs/instance-factories/orms/templates/prisma/services-generator.ts +408 -0
  658. package/libs/instance-factories/scaffolding/README.md +49 -0
  659. package/libs/instance-factories/scaffolding/generic-scaffold.yaml +65 -0
  660. package/libs/instance-factories/scaffolding/templates/generic/env-example-generator.ts +73 -0
  661. package/libs/instance-factories/scaffolding/templates/generic/env-generator.ts +85 -0
  662. package/libs/instance-factories/scaffolding/templates/generic/gitignore-generator.ts +69 -0
  663. package/libs/instance-factories/scaffolding/templates/generic/package-json-generator.ts +176 -0
  664. package/libs/instance-factories/scaffolding/templates/generic/readme-generator.ts +207 -0
  665. package/libs/instance-factories/scaffolding/templates/generic/tsconfig-generator.ts +78 -0
  666. package/libs/instance-factories/scaffolding/templates/generic/tsconfig-react-generator.ts +41 -0
  667. package/libs/instance-factories/sdks/README.md +28 -0
  668. package/libs/instance-factories/sdks/python-sdk.yaml +66 -0
  669. package/libs/instance-factories/sdks/templates/python/sdk-generator.ts +50 -0
  670. package/libs/instance-factories/sdks/templates/typescript/sdk-generator.ts +49 -0
  671. package/libs/instance-factories/sdks/typescript-sdk.yaml +59 -0
  672. package/libs/instance-factories/services/README.md +55 -0
  673. package/libs/instance-factories/services/prisma-services.yaml +71 -0
  674. package/libs/instance-factories/services/templates/memory/generate-interpreter.ts +25 -0
  675. package/libs/instance-factories/services/templates/memory/step-conventions-memory.ts +465 -0
  676. package/libs/instance-factories/services/templates/prisma/behavior-generator.ts +304 -0
  677. package/libs/instance-factories/services/templates/prisma/controller-generator.ts +532 -0
  678. package/libs/instance-factories/services/templates/prisma/service-generator.ts +334 -0
  679. package/libs/instance-factories/services/templates/prisma/step-conventions.ts +309 -0
  680. package/libs/instance-factories/services/templates/shared-patterns.ts +38 -0
  681. package/libs/instance-factories/shared/path-resolver.ts +111 -0
  682. package/libs/instance-factories/storage/README.md +34 -0
  683. package/libs/instance-factories/storage/mongodb.yaml +79 -0
  684. package/libs/instance-factories/storage/postgresql.yaml +75 -0
  685. package/libs/instance-factories/storage/redis.yaml +79 -0
  686. package/libs/instance-factories/storage/templates/mongodb/config-generator.ts +15 -0
  687. package/libs/instance-factories/storage/templates/mongodb/docker-generator.ts +18 -0
  688. package/libs/instance-factories/storage/templates/postgresql/config-generator.ts +54 -0
  689. package/libs/instance-factories/storage/templates/postgresql/docker-generator.ts +55 -0
  690. package/libs/instance-factories/storage/templates/redis/config-generator.ts +16 -0
  691. package/libs/instance-factories/storage/templates/redis/docker-generator.ts +18 -0
  692. package/libs/instance-factories/test-generation.ts +192 -0
  693. package/libs/instance-factories/testing/README.md +40 -0
  694. package/libs/instance-factories/testing/templates/vitest/tests-generator.ts +51 -0
  695. package/libs/instance-factories/testing/vitest-tests.yaml +63 -0
  696. package/libs/instance-factories/tools/README.md +70 -0
  697. package/libs/instance-factories/tools/mcp.yaml +36 -0
  698. package/libs/instance-factories/tools/templates/mcp/mcp-server-generator.ts +190 -0
  699. package/libs/instance-factories/tools/templates/mcp/static/docs/DEPLOYMENT_GUIDE.md +630 -0
  700. package/libs/instance-factories/tools/templates/mcp/static/docs/HYBRID_RESOURCE_SYSTEM.md +330 -0
  701. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/EXTENSION_DEPLOYMENT.md +552 -0
  702. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/LOCAL_DEPLOYMENT.md +164 -0
  703. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/WEB_DEPLOYMENT.md +247 -0
  704. package/libs/instance-factories/tools/templates/mcp/static/package.json +94 -0
  705. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-enterprise.js +284 -0
  706. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-extension.js +139 -0
  707. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-local.js +74 -0
  708. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-web.js +156 -0
  709. package/libs/instance-factories/tools/templates/mcp/static/scripts/copy-canonical-files.js +41 -0
  710. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-deployments.js +259 -0
  711. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-hybrid-resources.js +231 -0
  712. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-hybrid-simple.js +196 -0
  713. package/libs/instance-factories/tools/templates/mcp/static/src/controllers/MCPServerController.ts +293 -0
  714. package/libs/instance-factories/tools/templates/mcp/static/src/events/EventEmitter.ts +90 -0
  715. package/libs/instance-factories/tools/templates/mcp/static/src/index.ts +24 -0
  716. package/libs/instance-factories/tools/templates/mcp/static/src/interfaces/ResourceProvider.ts +15 -0
  717. package/libs/instance-factories/tools/templates/mcp/static/src/models/LibrarySuggestion.ts +106 -0
  718. package/libs/instance-factories/tools/templates/mcp/static/src/models/SpecVerseResource.ts +75 -0
  719. package/libs/instance-factories/tools/templates/mcp/static/src/server/mcp-server.ts +239 -0
  720. package/libs/instance-factories/tools/templates/mcp/static/src/services/CLIProxyService.ts +1501 -0
  721. package/libs/instance-factories/tools/templates/mcp/static/src/services/EmbeddedResourcesAdapter.ts +211 -0
  722. package/libs/instance-factories/tools/templates/mcp/static/src/services/EntityModuleService.ts +308 -0
  723. package/libs/instance-factories/tools/templates/mcp/static/src/services/HybridResourcesProvider.ts +210 -0
  724. package/libs/instance-factories/tools/templates/mcp/static/src/services/LibraryToolsService.ts +356 -0
  725. package/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorBridge.ts +522 -0
  726. package/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorToolsService.ts +530 -0
  727. package/libs/instance-factories/tools/templates/mcp/static/src/services/PromptToolsService.ts +594 -0
  728. package/libs/instance-factories/tools/templates/mcp/static/src/services/ResourcesProviderService.ts +170 -0
  729. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/CLIProxyService.init.test.ts +544 -0
  730. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/CLIProxyService.test.ts +189 -0
  731. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/ResourcesProviderService.test.ts +89 -0
  732. package/libs/instance-factories/tools/templates/mcp/static/src/types/index.ts +110 -0
  733. package/libs/instance-factories/tools/templates/mcp/static/tsconfig.json +28 -0
  734. package/libs/instance-factories/tools/templates/vscode/static/extension.ts +1195 -0
  735. package/libs/instance-factories/tools/templates/vscode/static/language-configuration.json +34 -0
  736. package/libs/instance-factories/tools/templates/vscode/static/schemas/specverse-v3-schema.json +4279 -0
  737. package/libs/instance-factories/tools/templates/vscode/static/syntaxes/specverse.tmLanguage.json +138 -0
  738. package/libs/instance-factories/tools/templates/vscode/static/themes/README.md +74 -0
  739. package/libs/instance-factories/tools/templates/vscode/static/themes/complete-specverse-colors.json +122 -0
  740. package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-basic-theme.json +65 -0
  741. package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-complete-theme.json +123 -0
  742. package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-theme-colors.json +64 -0
  743. package/libs/instance-factories/tools/templates/vscode/vscode-extension-generator.ts +300 -0
  744. package/libs/instance-factories/tools/vscode.yaml +35 -0
  745. package/libs/instance-factories/validation/README.md +38 -0
  746. package/libs/instance-factories/validation/templates/zod/validation-generator.ts +46 -0
  747. package/libs/instance-factories/validation/zod.yaml +56 -0
  748. package/libs/instance-factories/views/README.md +62 -0
  749. package/libs/instance-factories/views/index.d.ts +13 -0
  750. package/libs/instance-factories/views/index.d.ts.map +1 -0
  751. package/libs/instance-factories/views/index.js +18 -0
  752. package/libs/instance-factories/views/index.js.map +1 -0
  753. package/libs/instance-factories/views/index.ts +45 -0
  754. package/libs/instance-factories/views/react-components.yaml +129 -0
  755. package/libs/instance-factories/views/templates/ARCHITECTURE.md +198 -0
  756. package/libs/instance-factories/views/templates/react/adapters/antd-adapter.ts +869 -0
  757. package/libs/instance-factories/views/templates/react/adapters/mui-adapter.ts +953 -0
  758. package/libs/instance-factories/views/templates/react/adapters/shadcn-adapter.ts +806 -0
  759. package/libs/instance-factories/views/templates/react/app-generator.ts +55 -0
  760. package/libs/instance-factories/views/templates/react/components-generator.ts +887 -0
  761. package/libs/instance-factories/views/templates/react/forms-generator.ts +343 -0
  762. package/libs/instance-factories/views/templates/react/frontend-package-json-generator.ts +57 -0
  763. package/libs/instance-factories/views/templates/react/hooks-generator.ts +122 -0
  764. package/libs/instance-factories/views/templates/react/index-css-generator.ts +14 -0
  765. package/libs/instance-factories/views/templates/react/index-html-generator.ts +34 -0
  766. package/libs/instance-factories/views/templates/react/main-tsx-generator.ts +29 -0
  767. package/libs/instance-factories/views/templates/react/react-component-generator.d.ts +152 -0
  768. package/libs/instance-factories/views/templates/react/react-component-generator.d.ts.map +1 -0
  769. package/libs/instance-factories/views/templates/react/react-component-generator.js +398 -0
  770. package/libs/instance-factories/views/templates/react/react-component-generator.js.map +1 -0
  771. package/libs/instance-factories/views/templates/react/react-component-generator.ts +533 -0
  772. package/libs/instance-factories/views/templates/react/router-generator.ts +197 -0
  773. package/libs/instance-factories/views/templates/react/router-generic-generator.ts +132 -0
  774. package/libs/instance-factories/views/templates/react/shared-utils-generator.ts +188 -0
  775. package/libs/instance-factories/views/templates/react/spec-json-generator.ts +17 -0
  776. package/libs/instance-factories/views/templates/react/types-generator.ts +76 -0
  777. package/libs/instance-factories/views/templates/react/views-metadata-generator.ts +42 -0
  778. package/libs/instance-factories/views/templates/react/vite-config-generator.ts +38 -0
  779. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.d.ts.map +1 -0
  780. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.js.map +1 -0
  781. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.ts +474 -0
  782. package/libs/instance-factories/views/templates/shared/__tests__/composite-patterns.test.ts +242 -0
  783. package/libs/instance-factories/views/templates/shared/adapter-types.d.ts +77 -0
  784. package/libs/instance-factories/views/templates/shared/adapter-types.d.ts.map +1 -0
  785. package/libs/instance-factories/views/templates/shared/adapter-types.js +47 -0
  786. package/libs/instance-factories/views/templates/shared/adapter-types.js.map +1 -0
  787. package/libs/instance-factories/views/templates/shared/adapter-types.ts +142 -0
  788. package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts +63 -0
  789. package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts.map +1 -0
  790. package/libs/instance-factories/views/templates/shared/atomic-components-registry.js +822 -0
  791. package/libs/instance-factories/views/templates/shared/atomic-components-registry.js.map +1 -0
  792. package/libs/instance-factories/views/templates/shared/atomic-components-registry.ts +908 -0
  793. package/libs/instance-factories/views/templates/shared/base-generator.d.ts +247 -0
  794. package/libs/instance-factories/views/templates/shared/base-generator.d.ts.map +1 -0
  795. package/libs/instance-factories/views/templates/shared/base-generator.js +363 -0
  796. package/libs/instance-factories/views/templates/shared/base-generator.js.map +1 -0
  797. package/libs/instance-factories/views/templates/shared/base-generator.ts +608 -0
  798. package/libs/instance-factories/views/templates/shared/component-metadata.d.ts +254 -0
  799. package/libs/instance-factories/views/templates/shared/component-metadata.d.ts.map +1 -0
  800. package/libs/instance-factories/views/templates/shared/component-metadata.js +602 -0
  801. package/libs/instance-factories/views/templates/shared/component-metadata.js.map +1 -0
  802. package/libs/instance-factories/views/templates/shared/component-metadata.ts +803 -0
  803. package/libs/instance-factories/views/templates/shared/composite-pattern-types.ts +250 -0
  804. package/libs/instance-factories/views/templates/shared/composite-patterns.ts +535 -0
  805. package/libs/instance-factories/views/templates/shared/index.ts +68 -0
  806. package/libs/instance-factories/views/templates/shared/pattern-validator.ts +279 -0
  807. package/libs/instance-factories/views/templates/shared/property-mapper.d.ts +149 -0
  808. package/libs/instance-factories/views/templates/shared/property-mapper.d.ts.map +1 -0
  809. package/libs/instance-factories/views/templates/shared/property-mapper.js +580 -0
  810. package/libs/instance-factories/views/templates/shared/property-mapper.js.map +1 -0
  811. package/libs/instance-factories/views/templates/shared/property-mapper.ts +700 -0
  812. package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts +143 -0
  813. package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts.map +1 -0
  814. package/libs/instance-factories/views/templates/shared/syntax-mapper.js +420 -0
  815. package/libs/instance-factories/views/templates/shared/syntax-mapper.js.map +1 -0
  816. package/libs/instance-factories/views/templates/shared/syntax-mapper.ts +539 -0
  817. package/package.json +63 -0
@@ -0,0 +1,704 @@
1
+ /**
2
+ * Universal Tailwind Adapter Generator
3
+ *
4
+ * Programmatically generates Tailwind CSS adapters for all 44 atomic component types
5
+ * using the ATOMIC_COMPONENTS registry from @specverse/lang as the single source of truth.
6
+ *
7
+ * Phase 3.5 - Option A: Quick Universal Adapter
8
+ */
9
+
10
+ import type { ComponentAdapter } from '@specverse/lang';
11
+
12
+ interface RenderContext {
13
+ properties?: Record<string, any>;
14
+ children?: string;
15
+ }
16
+
17
+ /**
18
+ * Generate basic Tailwind HTML markup for a component
19
+ */
20
+ function generateTailwindMarkup(
21
+ type: string,
22
+ properties: Record<string, any> = {},
23
+ children?: string
24
+ ): string {
25
+ const baseClasses = 'rounded border border-gray-200 dark:border-gray-700';
26
+
27
+ switch (type) {
28
+ // ==========================================
29
+ // DATA DISPLAY COMPONENTS
30
+ // ==========================================
31
+
32
+ case 'table':
33
+ return `
34
+ <div class="overflow-x-auto">
35
+ <table class="min-w-full divide-y divide-gray-200 dark:divide-gray-700">
36
+ <thead class="bg-gray-50 dark:bg-gray-800">
37
+ <tr>
38
+ ${(properties.columns || []).map((col: string) =>
39
+ `<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider">${col}</th>`
40
+ ).join('')}
41
+ </tr>
42
+ </thead>
43
+ <tbody class="bg-white dark:bg-gray-900 divide-y divide-gray-200 dark:divide-gray-700">
44
+ ${children || '<tr><td class="px-6 py-4 text-sm text-gray-500 dark:text-gray-400" colspan="99">No data</td></tr>'}
45
+ </tbody>
46
+ </table>
47
+ </div>
48
+ `;
49
+
50
+ case 'list':
51
+ return `
52
+ <ul class="divide-y divide-gray-200 dark:divide-gray-700 ${properties.dense ? 'space-y-0' : 'space-y-2'}">
53
+ ${children || '<li class="p-4 text-gray-500 dark:text-gray-400">No items</li>'}
54
+ </ul>
55
+ `;
56
+
57
+ case 'grid':
58
+ const columns = properties.columns || 3;
59
+ return `
60
+ <div class="grid grid-cols-1 md:grid-cols-${columns} gap-${properties.gap || '4'}">
61
+ ${children || '<div class="p-4 text-gray-500 dark:text-gray-400">No items</div>'}
62
+ </div>
63
+ `;
64
+
65
+ case 'card':
66
+ const title = properties.title;
67
+ const elevation = properties.elevation || 1;
68
+ const shadowClass = elevation > 2 ? 'shadow-lg' : 'shadow-md';
69
+ const variant = properties.variant;
70
+ const metric = properties.metric;
71
+
72
+ // Metric card variant - shows a large number/stat
73
+ if (variant === 'metric') {
74
+ return `
75
+ <div class="bg-white dark:bg-gray-800 ${baseClasses} ${shadowClass} p-6">
76
+ <div class="flex items-center justify-between">
77
+ <div>
78
+ <p class="text-sm font-medium text-gray-600 dark:text-gray-400 uppercase tracking-wide">
79
+ ${metric || title || 'Metric'}
80
+ </p>
81
+ <p class="mt-2 text-3xl font-semibold text-gray-900 dark:text-gray-100">
82
+ ${children || '—'}
83
+ </p>
84
+ ${properties.showTrend ? `
85
+ <p class="mt-2 text-sm text-green-600 dark:text-green-400">
86
+ <svg class="inline h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
87
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6" />
88
+ </svg>
89
+ Trend data unavailable
90
+ </p>
91
+ ` : ''}
92
+ </div>
93
+ </div>
94
+ </div>
95
+ `;
96
+ }
97
+
98
+ // Regular card
99
+ return `
100
+ <div class="bg-white dark:bg-gray-800 ${baseClasses} ${shadowClass} p-4">
101
+ ${title ? `<div class="font-semibold text-lg mb-2 text-gray-900 dark:text-gray-100">${title}</div>` : ''}
102
+ <div class="text-gray-700 dark:text-gray-300">
103
+ ${children || '<p class="text-sm text-gray-500 dark:text-gray-400">No data available</p>'}
104
+ </div>
105
+ </div>
106
+ `;
107
+
108
+ case 'chart':
109
+ return `
110
+ <div class="bg-white dark:bg-gray-800 ${baseClasses} p-4">
111
+ <div class="flex items-center justify-center h-64 text-gray-500 dark:text-gray-400">
112
+ <div class="text-center">
113
+ <svg class="mx-auto h-12 w-12 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
114
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" />
115
+ </svg>
116
+ <p class="mt-2 text-sm">Chart: ${properties.chartType || 'bar'}</p>
117
+ </div>
118
+ </div>
119
+ </div>
120
+ `;
121
+
122
+ case 'tree':
123
+ return `
124
+ <div class="bg-white dark:bg-gray-800 ${baseClasses} p-4">
125
+ <div class="space-y-2">
126
+ ${children || '<div class="text-gray-500 dark:text-gray-400">Tree structure</div>'}
127
+ </div>
128
+ </div>
129
+ `;
130
+
131
+ case 'timeline':
132
+ return `
133
+ <div class="relative pl-8 space-y-4">
134
+ <div class="absolute left-3 top-0 h-full w-0.5 bg-gray-200 dark:bg-gray-700"></div>
135
+ ${children || '<div class="relative"><div class="absolute -left-6 w-3 h-3 rounded-full bg-blue-500"></div><div class="text-gray-700 dark:text-gray-300">Timeline item</div></div>'}
136
+ </div>
137
+ `;
138
+
139
+ case 'avatar':
140
+ const size = properties.size || 'md';
141
+ const sizeClass = size === 'sm' ? 'h-8 w-8' : size === 'lg' ? 'h-16 w-16' : 'h-12 w-12';
142
+ return `
143
+ <div class="${sizeClass} rounded-full bg-gray-300 dark:bg-gray-600 flex items-center justify-center text-gray-700 dark:text-gray-200 font-semibold">
144
+ ${children || properties.initials || '?'}
145
+ </div>
146
+ `;
147
+
148
+ case 'image':
149
+ return `
150
+ <img
151
+ src="${properties.src || '/placeholder.png'}"
152
+ alt="${properties.alt || 'Image'}"
153
+ class="rounded ${properties.responsive ? 'max-w-full h-auto' : ''}"
154
+ />
155
+ `;
156
+
157
+ // ==========================================
158
+ // FORMS & INPUTS
159
+ // ==========================================
160
+
161
+ case 'form':
162
+ return `
163
+ <form class="space-y-4">
164
+ ${children || '<div class="text-gray-500 dark:text-gray-400">Form fields</div>'}
165
+ </form>
166
+ `;
167
+
168
+ case 'input':
169
+ return `
170
+ <input
171
+ type="${properties.type || 'text'}"
172
+ placeholder="${properties.placeholder || ''}"
173
+ ${properties.required ? 'required' : ''}
174
+ class="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-800 dark:text-gray-200"
175
+ />
176
+ `;
177
+
178
+ case 'textarea':
179
+ return `
180
+ <textarea
181
+ rows="${properties.rows || 4}"
182
+ placeholder="${properties.placeholder || ''}"
183
+ class="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-800 dark:text-gray-200"
184
+ >${children || ''}</textarea>
185
+ `;
186
+
187
+ case 'select':
188
+ return `
189
+ <select class="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-800 dark:text-gray-200">
190
+ ${(properties.options || ['Option 1', 'Option 2']).map((opt: string) =>
191
+ `<option value="${opt}">${opt}</option>`
192
+ ).join('')}
193
+ </select>
194
+ `;
195
+
196
+ case 'checkbox':
197
+ return `
198
+ <label class="flex items-center space-x-2">
199
+ <input
200
+ type="checkbox"
201
+ ${properties.checked ? 'checked' : ''}
202
+ class="rounded border-gray-300 dark:border-gray-600 text-blue-600 focus:ring-blue-500"
203
+ />
204
+ <span class="text-gray-700 dark:text-gray-300">${properties.label || children || 'Checkbox'}</span>
205
+ </label>
206
+ `;
207
+
208
+ case 'radio':
209
+ return `
210
+ <label class="flex items-center space-x-2">
211
+ <input
212
+ type="radio"
213
+ name="${properties.name || 'radio'}"
214
+ ${properties.checked ? 'checked' : ''}
215
+ class="border-gray-300 dark:border-gray-600 text-blue-600 focus:ring-blue-500"
216
+ />
217
+ <span class="text-gray-700 dark:text-gray-300">${properties.label || children || 'Radio'}</span>
218
+ </label>
219
+ `;
220
+
221
+ case 'slider':
222
+ return `
223
+ <input
224
+ type="range"
225
+ min="${properties.min || 0}"
226
+ max="${properties.max || 100}"
227
+ value="${properties.value || 50}"
228
+ class="w-full h-2 bg-gray-200 dark:bg-gray-700 rounded-lg appearance-none cursor-pointer"
229
+ />
230
+ `;
231
+
232
+ case 'switch':
233
+ return `
234
+ <label class="relative inline-flex items-center cursor-pointer">
235
+ <input type="checkbox" ${properties.checked ? 'checked' : ''} class="sr-only peer">
236
+ <div class="w-11 h-6 bg-gray-200 dark:bg-gray-700 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-blue-600"></div>
237
+ <span class="ml-3 text-sm font-medium text-gray-700 dark:text-gray-300">${properties.label || children || 'Toggle'}</span>
238
+ </label>
239
+ `;
240
+
241
+ case 'autocomplete':
242
+ return `
243
+ <div class="relative">
244
+ <input
245
+ type="text"
246
+ placeholder="${properties.placeholder || 'Start typing...'}"
247
+ class="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-800 dark:text-gray-200"
248
+ />
249
+ <div class="absolute z-10 w-full mt-1 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-md shadow-lg hidden">
250
+ <div class="p-2 text-sm text-gray-700 dark:text-gray-300">Suggestions will appear here</div>
251
+ </div>
252
+ </div>
253
+ `;
254
+
255
+ case 'datepicker':
256
+ return `
257
+ <input
258
+ type="date"
259
+ value="${properties.value || ''}"
260
+ class="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-800 dark:text-gray-200"
261
+ />
262
+ `;
263
+
264
+ case 'timepicker':
265
+ return `
266
+ <input
267
+ type="time"
268
+ value="${properties.value || ''}"
269
+ class="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-800 dark:text-gray-200"
270
+ />
271
+ `;
272
+
273
+ // ==========================================
274
+ // ACTIONS
275
+ // ==========================================
276
+
277
+ case 'button':
278
+ const btnVariant = properties.variant || 'primary';
279
+ const variantClasses: Record<string, string> = {
280
+ primary: 'bg-blue-600 hover:bg-blue-700 text-white',
281
+ secondary: 'bg-gray-600 hover:bg-gray-700 text-white',
282
+ success: 'bg-green-600 hover:bg-green-700 text-white',
283
+ danger: 'bg-red-600 hover:bg-red-700 text-white',
284
+ outline: 'border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800',
285
+ };
286
+ return `
287
+ <button class="px-4 py-2 rounded font-medium transition-colors ${variantClasses[btnVariant] || variantClasses.primary}">
288
+ ${children || properties.label || 'Button'}
289
+ </button>
290
+ `;
291
+
292
+ case 'button-group':
293
+ const orientation = properties.orientation || 'horizontal';
294
+ const spacing = properties.spacing || 2;
295
+ const buttons = properties.buttons || [];
296
+ return `
297
+ <div class="flex ${orientation === 'horizontal' ? 'flex-row' : 'flex-col'} gap-${spacing}">
298
+ ${buttons.map((btn: any) => {
299
+ const btnVariant = btn.variant || btn.color || 'primary';
300
+ const btnVariantClasses: Record<string, string> = {
301
+ primary: 'bg-blue-600 hover:bg-blue-700 text-white',
302
+ secondary: 'bg-gray-600 hover:bg-gray-700 text-white',
303
+ contained: 'bg-blue-600 hover:bg-blue-700 text-white',
304
+ outlined: 'border border-blue-600 text-blue-600 hover:bg-blue-50 dark:border-blue-400 dark:text-blue-400',
305
+ text: 'text-blue-600 hover:bg-blue-50 dark:text-blue-400 dark:hover:bg-blue-900/30',
306
+ default: 'bg-gray-200 hover:bg-gray-300 text-gray-800 dark:bg-gray-700 dark:hover:bg-gray-600 dark:text-gray-200'
307
+ };
308
+ return `
309
+ <button class="inline-flex items-center justify-center rounded font-medium transition-colors px-4 py-2 ${btnVariantClasses[btnVariant] || btnVariantClasses.primary}">
310
+ ${btn.icon ? `<span class="mr-2">⚡</span>` : ''}${btn.label || 'Button'}
311
+ </button>
312
+ `;
313
+ }).join('')}
314
+ </div>
315
+ `;
316
+
317
+ case 'filterPanel':
318
+ const filters = properties.filters || [];
319
+ return `
320
+ <div class="bg-white dark:bg-gray-800 ${baseClasses} p-4">
321
+ <div class="font-semibold text-sm mb-4 text-gray-900 dark:text-gray-100">Filters</div>
322
+ <div class="space-y-3">
323
+ ${filters.map((filter: any) => {
324
+ return `
325
+ <div>
326
+ <label class="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1">${filter.label}</label>
327
+ ${filter.type === 'select'
328
+ ? `<select class="block w-full rounded border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100">
329
+ ${(filter.options || []).map((opt: string) => `<option>${opt}</option>`).join('')}
330
+ </select>`
331
+ : `<input type="text" placeholder="Filter by ${filter.field}" class="block w-full rounded border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100" />`
332
+ }
333
+ </div>
334
+ `;
335
+ }).join('')}
336
+ </div>
337
+ </div>
338
+ `;
339
+
340
+ case 'link':
341
+ return `
342
+ <a href="${properties.href || '#'}" class="text-blue-600 dark:text-blue-400 hover:underline">
343
+ ${children || properties.label || 'Link'}
344
+ </a>
345
+ `;
346
+
347
+ case 'icon':
348
+ return `
349
+ <svg class="h-${properties.size || 6} w-${properties.size || 6} text-gray-600 dark:text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
350
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6v6m0 0v6m0-6h6m-6 0H6" />
351
+ </svg>
352
+ `;
353
+
354
+ case 'menu':
355
+ return `
356
+ <div class="relative">
357
+ <button class="px-4 py-2 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-md">
358
+ ${properties.label || 'Menu'}
359
+ </button>
360
+ <div class="absolute z-10 mt-2 w-48 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-md shadow-lg hidden">
361
+ ${children || '<div class="p-2 text-sm text-gray-700 dark:text-gray-300">Menu items</div>'}
362
+ </div>
363
+ </div>
364
+ `;
365
+
366
+ // ==========================================
367
+ // OVERLAYS & FEEDBACK
368
+ // ==========================================
369
+
370
+ case 'modal':
371
+ return `
372
+ <div class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden">
373
+ <div class="bg-white dark:bg-gray-800 rounded-lg p-6 max-w-lg w-full">
374
+ ${properties.title ? `<h3 class="text-lg font-semibold mb-4 text-gray-900 dark:text-gray-100">${properties.title}</h3>` : ''}
375
+ <div class="text-gray-700 dark:text-gray-300">
376
+ ${children || 'Modal content'}
377
+ </div>
378
+ </div>
379
+ </div>
380
+ `;
381
+
382
+ case 'dialog':
383
+ return `
384
+ <div class="bg-white dark:bg-gray-800 ${baseClasses} p-6 max-w-md">
385
+ ${properties.title ? `<h3 class="text-lg font-semibold mb-4 text-gray-900 dark:text-gray-100">${properties.title}</h3>` : ''}
386
+ <div class="text-gray-700 dark:text-gray-300 mb-4">
387
+ ${children || 'Dialog content'}
388
+ </div>
389
+ <div class="flex justify-end space-x-2">
390
+ <button class="px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-md text-gray-700 dark:text-gray-300">Cancel</button>
391
+ <button class="px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white rounded-md">OK</button>
392
+ </div>
393
+ </div>
394
+ `;
395
+
396
+ case 'drawer':
397
+ return `
398
+ <div class="fixed inset-y-0 right-0 w-64 bg-white dark:bg-gray-800 border-l border-gray-200 dark:border-gray-700 shadow-xl transform translate-x-full transition-transform">
399
+ ${properties.title ? `<h3 class="text-lg font-semibold p-4 border-b border-gray-200 dark:border-gray-700 text-gray-900 dark:text-gray-100">${properties.title}</h3>` : ''}
400
+ <div class="p-4 text-gray-700 dark:text-gray-300">
401
+ ${children || 'Drawer content'}
402
+ </div>
403
+ </div>
404
+ `;
405
+
406
+ case 'popover':
407
+ return `
408
+ <div class="absolute z-10 bg-white dark:bg-gray-800 ${baseClasses} shadow-lg p-3 hidden">
409
+ ${children || '<div class="text-sm text-gray-700 dark:text-gray-300">Popover content</div>'}
410
+ </div>
411
+ `;
412
+
413
+ case 'tooltip':
414
+ return `
415
+ <span class="relative group">
416
+ <span class="absolute bottom-full mb-2 hidden group-hover:block px-2 py-1 bg-gray-900 dark:bg-gray-700 text-white text-xs rounded whitespace-nowrap">
417
+ ${properties.content || children || 'Tooltip'}
418
+ </span>
419
+ ${properties.trigger || '?'}
420
+ </span>
421
+ `;
422
+
423
+ case 'alert':
424
+ const alertVariant = properties.variant || 'info';
425
+ const alertClasses: Record<string, string> = {
426
+ info: 'bg-blue-50 dark:bg-blue-900/30 border-blue-200 dark:border-blue-700 text-blue-800 dark:text-blue-200',
427
+ success: 'bg-green-50 dark:bg-green-900/30 border-green-200 dark:border-green-700 text-green-800 dark:text-green-200',
428
+ warning: 'bg-yellow-50 dark:bg-yellow-900/30 border-yellow-200 dark:border-yellow-700 text-yellow-800 dark:text-yellow-200',
429
+ error: 'bg-red-50 dark:bg-red-900/30 border-red-200 dark:border-red-700 text-red-800 dark:text-red-200',
430
+ };
431
+ return `
432
+ <div class="p-4 border rounded ${alertClasses[alertVariant] || alertClasses.info}">
433
+ ${children || properties.message || 'Alert message'}
434
+ </div>
435
+ `;
436
+
437
+ case 'snackbar':
438
+ return `
439
+ <div class="fixed bottom-4 right-4 bg-gray-900 dark:bg-gray-700 text-white px-4 py-3 rounded-md shadow-lg hidden">
440
+ ${children || properties.message || 'Notification'}
441
+ </div>
442
+ `;
443
+
444
+ case 'badge':
445
+ const badgeVariant = properties.variant || 'default';
446
+ const badgeClasses: Record<string, string> = {
447
+ default: 'bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-200',
448
+ primary: 'bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200',
449
+ success: 'bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200',
450
+ warning: 'bg-yellow-100 dark:bg-yellow-900 text-yellow-800 dark:text-yellow-200',
451
+ danger: 'bg-red-100 dark:bg-red-900 text-red-800 dark:text-red-200',
452
+ };
453
+ return `
454
+ <span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ${badgeClasses[badgeVariant] || badgeClasses.default}">
455
+ ${children || properties.label || 'Badge'}
456
+ </span>
457
+ `;
458
+
459
+ case 'spinner':
460
+ return `
461
+ <div class="animate-spin rounded-full h-${properties.size || 8} w-${properties.size || 8} border-b-2 border-blue-600 dark:border-blue-400"></div>
462
+ `;
463
+
464
+ // ==========================================
465
+ // NAVIGATION
466
+ // ==========================================
467
+
468
+ case 'tabs':
469
+ return `
470
+ <div>
471
+ <div class="border-b border-gray-200 dark:border-gray-700">
472
+ <nav class="flex space-x-4">
473
+ ${(properties.tabs || ['Tab 1', 'Tab 2']).map((tab: string, i: number) =>
474
+ `<button class="px-4 py-2 ${i === 0 ? 'border-b-2 border-blue-600 text-blue-600' : 'text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200'}">${tab}</button>`
475
+ ).join('')}
476
+ </nav>
477
+ </div>
478
+ <div class="mt-4">
479
+ ${children || 'Tab content'}
480
+ </div>
481
+ </div>
482
+ `;
483
+
484
+ case 'breadcrumb':
485
+ return `
486
+ <nav class="flex" aria-label="Breadcrumb">
487
+ <ol class="inline-flex items-center space-x-1 md:space-x-3">
488
+ ${(properties.items || ['Home', 'Page']).map((item: string, i: number) =>
489
+ `<li class="inline-flex items-center">
490
+ ${i > 0 ? '<svg class="w-3 h-3 text-gray-400 mx-1" fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg>' : ''}
491
+ <span class="text-gray-700 dark:text-gray-300">${item}</span>
492
+ </li>`
493
+ ).join('')}
494
+ </ol>
495
+ </nav>
496
+ `;
497
+
498
+ case 'navbar':
499
+ return `
500
+ <nav class="bg-white dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700">
501
+ <div class="px-4 py-3 flex items-center justify-between">
502
+ <div class="text-lg font-semibold text-gray-900 dark:text-gray-100">${properties.brand || 'Brand'}</div>
503
+ <div class="flex space-x-4">
504
+ ${children || '<a class="text-gray-700 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100">Link</a>'}
505
+ </div>
506
+ </div>
507
+ </nav>
508
+ `;
509
+
510
+ case 'sidebar':
511
+ return `
512
+ <aside class="w-64 bg-white dark:bg-gray-800 border-r border-gray-200 dark:border-gray-700 h-full">
513
+ <div class="p-4">
514
+ ${children || '<div class="text-gray-700 dark:text-gray-300">Sidebar content</div>'}
515
+ </div>
516
+ </aside>
517
+ `;
518
+
519
+ case 'pagination':
520
+ const currentPage = properties.currentPage || 1;
521
+ const totalPages = properties.totalPages || 5;
522
+ return `
523
+ <nav class="flex items-center justify-center space-x-2">
524
+ <button class="px-3 py-1 border border-gray-300 dark:border-gray-600 rounded-md text-gray-700 dark:text-gray-300" ${currentPage === 1 ? 'disabled' : ''}>Previous</button>
525
+ ${Array.from({ length: totalPages }, (_, i) => i + 1).map(page =>
526
+ `<button class="px-3 py-1 ${page === currentPage ? 'bg-blue-600 text-white' : 'border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300'} rounded-md">${page}</button>`
527
+ ).join('')}
528
+ <button class="px-3 py-1 border border-gray-300 dark:border-gray-600 rounded-md text-gray-700 dark:text-gray-300" ${currentPage === totalPages ? 'disabled' : ''}>Next</button>
529
+ </nav>
530
+ `;
531
+
532
+ // ==========================================
533
+ // LAYOUT
534
+ // ==========================================
535
+
536
+ case 'accordion':
537
+ return `
538
+ <div class="space-y-2">
539
+ ${(properties.items || ['Item 1']).map((item: string) =>
540
+ `<div class="border border-gray-200 dark:border-gray-700 rounded-md">
541
+ <button class="w-full px-4 py-3 text-left font-medium text-gray-900 dark:text-gray-100 hover:bg-gray-50 dark:hover:bg-gray-800">
542
+ ${item}
543
+ </button>
544
+ <div class="px-4 py-3 text-gray-700 dark:text-gray-300 hidden">
545
+ Content for ${item}
546
+ </div>
547
+ </div>`
548
+ ).join('')}
549
+ </div>
550
+ `;
551
+
552
+ case 'carousel':
553
+ return `
554
+ <div class="relative">
555
+ <div class="overflow-hidden rounded-lg">
556
+ ${children || '<div class="bg-gray-200 dark:bg-gray-700 h-64 flex items-center justify-center text-gray-500 dark:text-gray-400">Slide 1</div>'}
557
+ </div>
558
+ <button class="absolute left-2 top-1/2 -translate-y-1/2 bg-white dark:bg-gray-800 rounded-full p-2 shadow">←</button>
559
+ <button class="absolute right-2 top-1/2 -translate-y-1/2 bg-white dark:bg-gray-800 rounded-full p-2 shadow">→</button>
560
+ </div>
561
+ `;
562
+
563
+ case 'container':
564
+ return `
565
+ <div class="container mx-auto px-4 ${properties.maxWidth ? `max-w-${properties.maxWidth}` : ''}">
566
+ ${children || 'Container content'}
567
+ </div>
568
+ `;
569
+
570
+ case 'divider':
571
+ return `
572
+ <hr class="border-gray-200 dark:border-gray-700 ${properties.spacing ? `my-${properties.spacing}` : 'my-4'}" />
573
+ `;
574
+
575
+ case 'header':
576
+ return `
577
+ <header class="bg-white dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700 px-4 py-3">
578
+ <h1 class="text-2xl font-bold text-gray-900 dark:text-gray-100">
579
+ ${children || properties.title || 'Header'}
580
+ </h1>
581
+ </header>
582
+ `;
583
+
584
+ case 'footer':
585
+ return `
586
+ <footer class="bg-white dark:bg-gray-800 border-t border-gray-200 dark:border-gray-700 px-4 py-6">
587
+ <div class="text-center text-gray-600 dark:text-gray-400">
588
+ ${children || properties.text || 'Footer content'}
589
+ </div>
590
+ </footer>
591
+ `;
592
+
593
+ // ==========================================
594
+ // COMPOSITE/SEMANTIC TYPES (from inference)
595
+ // ==========================================
596
+
597
+ case 'content':
598
+ // Content is a card-like display of labeled fields (detail view)
599
+ // Fields should be passed in properties.fields array
600
+ const fields = properties.fields || [];
601
+ if (fields.length === 0) {
602
+ return `
603
+ <div class="bg-white dark:bg-gray-800 ${baseClasses} p-6">
604
+ <p class="text-gray-500 dark:text-gray-400">No content defined</p>
605
+ </div>
606
+ `;
607
+ }
608
+
609
+ // Render as card with labeled fields (like a read-only form)
610
+ const fieldRows = fields.map((field: string) => `
611
+ <div class="py-3 border-b border-gray-200 dark:border-gray-700 last:border-0">
612
+ <dt class="text-sm font-medium text-gray-500 dark:text-gray-400 mb-1">${field}</dt>
613
+ <dd class="text-base text-gray-900 dark:text-gray-100">
614
+ <span class="data-field" data-field="${field}">-</span>
615
+ </dd>
616
+ </div>
617
+ `).join('');
618
+
619
+ return `
620
+ <div class="bg-white dark:bg-gray-800 ${baseClasses} p-6">
621
+ <dl class="space-y-0">
622
+ ${fieldRows}
623
+ </dl>
624
+ </div>
625
+ `;
626
+
627
+ case 'profile':
628
+ return `
629
+ <div class="bg-white dark:bg-gray-800 ${baseClasses} p-6">
630
+ <div class="flex items-center space-x-4">
631
+ <div class="flex-shrink-0">
632
+ <div class="h-16 w-16 rounded-full bg-blue-500 flex items-center justify-center text-white text-xl font-bold">
633
+ ${properties.name ? properties.name.charAt(0).toUpperCase() : 'U'}
634
+ </div>
635
+ </div>
636
+ <div class="flex-1 min-w-0">
637
+ <p class="text-lg font-semibold text-gray-900 dark:text-gray-100">
638
+ ${properties.name || 'User Profile'}
639
+ </p>
640
+ ${properties.bio ? `<p class="text-sm text-gray-600 dark:text-gray-400">${properties.bio}</p>` : ''}
641
+ ${properties.email ? `<p class="text-sm text-gray-500 dark:text-gray-500">${properties.email}</p>` : ''}
642
+ </div>
643
+ </div>
644
+ ${children || ''}
645
+ </div>
646
+ `;
647
+
648
+ // ==========================================
649
+ // FALLBACK
650
+ // ==========================================
651
+
652
+ default:
653
+ return `
654
+ <div class="p-4 bg-orange-50 dark:bg-orange-900/30 border border-orange-200 dark:border-orange-700 rounded">
655
+ <p class="text-sm text-orange-800 dark:text-orange-200">
656
+ Component type "${type}" renderer not yet implemented
657
+ </p>
658
+ ${properties ? `<pre class="text-xs text-orange-600 dark:text-orange-400 mt-2">${JSON.stringify(properties, null, 2)}</pre>` : ''}
659
+ </div>
660
+ `;
661
+ }
662
+ }
663
+
664
+ /**
665
+ * Create a universal Tailwind adapter for all 44 atomic component types
666
+ */
667
+ export function createUniversalTailwindAdapter(): ComponentAdapter {
668
+ // List of all 44 atomic component types from ATOMIC_COMPONENTS registry
669
+ // Plus 4 composite/semantic types (button-group, filterPanel, content, profile) from inference
670
+ const componentTypes = [
671
+ // Data Display (9)
672
+ 'table', 'list', 'grid', 'card', 'chart', 'tree', 'timeline', 'avatar', 'image',
673
+ // Forms & Inputs (11)
674
+ 'form', 'input', 'textarea', 'select', 'checkbox', 'radio', 'slider', 'switch', 'autocomplete', 'datepicker', 'timepicker',
675
+ // Actions (4 + 1 composite)
676
+ 'button', 'link', 'icon', 'menu', 'button-group',
677
+ // Overlays & Feedback (9)
678
+ 'modal', 'dialog', 'drawer', 'popover', 'tooltip', 'alert', 'snackbar', 'badge', 'spinner',
679
+ // Navigation (5)
680
+ 'tabs', 'breadcrumb', 'navbar', 'sidebar', 'pagination',
681
+ // Layout (6 + 1 composite)
682
+ 'accordion', 'carousel', 'container', 'divider', 'header', 'footer', 'filterPanel',
683
+ // Semantic/Composite (2 from inference)
684
+ 'content', 'profile'
685
+ ];
686
+
687
+ const components: Record<string, { render: (context: RenderContext) => string }> = {};
688
+
689
+ // Generate render function for each component type
690
+ componentTypes.forEach(type => {
691
+ components[type] = {
692
+ render: ({ properties = {}, children }: RenderContext) => {
693
+ return generateTailwindMarkup(type, properties, children);
694
+ }
695
+ };
696
+ });
697
+
698
+ return {
699
+ name: 'tailwind-universal',
700
+ version: '1.0.0',
701
+ description: 'Universal Tailwind CSS adapter for all 44 atomic component types',
702
+ components
703
+ };
704
+ }