@contractspec/bundle.library 3.8.9 → 3.8.11

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 (644) hide show
  1. package/.turbo/turbo-build.log +606 -594
  2. package/CHANGELOG.md +68 -0
  3. package/dist/application/context-storage/index.js +1 -28
  4. package/dist/application/index.js +13 -2133
  5. package/dist/application/mcp/cliMcp.js +4 -452
  6. package/dist/application/mcp/common.js +1 -193
  7. package/dist/application/mcp/contractsMcp.js +2 -549
  8. package/dist/application/mcp/contractsMcpResources.js +2 -123
  9. package/dist/application/mcp/contractsMcpTools.js +1 -199
  10. package/dist/application/mcp/docsMcp.catalog.js +3 -381
  11. package/dist/application/mcp/docsMcp.data.js +1 -147
  12. package/dist/application/mcp/docsMcp.js +6 -1039
  13. package/dist/application/mcp/docsMcp.prompts.js +6 -521
  14. package/dist/application/mcp/docsMcp.reference.js +3 -235
  15. package/dist/application/mcp/docsMcp.resources.js +3 -519
  16. package/dist/application/mcp/docsMcp.tools.js +3 -518
  17. package/dist/application/mcp/index.js +13 -2106
  18. package/dist/application/mcp/internalMcp.js +2 -410
  19. package/dist/application/mcp/normalizeMcpRequest.js +1 -21
  20. package/dist/application/mcp/providerRankingMcp.js +1 -530
  21. package/dist/bundles/LibraryBundle.js +1 -138
  22. package/dist/bundles/index.js +1 -138
  23. package/dist/components/docs/DocsIndexPage.js +2 -912
  24. package/dist/components/docs/advanced/AdvancedMCPPage.js +4 -271
  25. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -107
  26. package/dist/components/docs/advanced/AdvancedRenderersPage.js +2 -118
  27. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -92
  28. package/dist/components/docs/advanced/AdvancedTelemetryPage.js +2 -373
  29. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -99
  30. package/dist/components/docs/advanced/index.js +10 -1055
  31. package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +6 -243
  32. package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +3 -160
  33. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -259
  34. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -374
  35. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -166
  36. package/dist/components/docs/architecture/ArchitectureOverviewPage.js +1 -143
  37. package/dist/components/docs/architecture/index.js +20 -1340
  38. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -245
  39. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -230
  40. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -245
  41. package/dist/components/docs/comparison/ComparisonOverviewPage.js +1 -202
  42. package/dist/components/docs/comparison/ComparisonWindmillPage.js +1 -254
  43. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -339
  44. package/dist/components/docs/comparison/index.js +1 -1510
  45. package/dist/components/docs/docsManifest.js +1 -611
  46. package/dist/components/docs/docsManifest.test.d.ts +1 -0
  47. package/dist/components/docs/ecosystem/IntegrationsPage.js +2 -103
  48. package/dist/components/docs/ecosystem/PluginsPage.js +13 -179
  49. package/dist/components/docs/ecosystem/RegistryPage.js +7 -100
  50. package/dist/components/docs/ecosystem/TemplatesPage.js +3 -141
  51. package/dist/components/docs/ecosystem/ecosystem.docblocks.js +2 -48
  52. package/dist/components/docs/ecosystem/index.js +23 -569
  53. package/dist/components/docs/examples/DocsExamplesPage.js +4 -124
  54. package/dist/components/docs/examples/ExampleShowcasePage.js +4 -244
  55. package/dist/components/docs/examples/exampleShowcaseData.js +4 -39
  56. package/dist/components/docs/examples/index.js +4 -330
  57. package/dist/components/docs/generated/docs-index.generated.js +1 -5
  58. package/dist/components/docs/generated/index.js +1 -74
  59. package/dist/components/docs/generated/loader.js +1 -74
  60. package/dist/components/docs/getting-started/CLIPage.js +4 -271
  61. package/dist/components/docs/getting-started/CompatibilityPage.js +1 -173
  62. package/dist/components/docs/getting-started/DataViewTutorialPage.js +4 -134
  63. package/dist/components/docs/getting-started/DeveloperToolsPage.js +1 -194
  64. package/dist/components/docs/getting-started/HelloWorldPage.js +5 -183
  65. package/dist/components/docs/getting-started/InstallationPage.js +3 -154
  66. package/dist/components/docs/getting-started/StartHerePage.js +2 -129
  67. package/dist/components/docs/getting-started/TroubleshootingPage.js +2 -168
  68. package/dist/components/docs/getting-started/VSCodeExtensionPage.js +1 -432
  69. package/dist/components/docs/getting-started/getting-started.docblocks.js +4 -41
  70. package/dist/components/docs/getting-started/index.js +18 -1869
  71. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +2 -196
  72. package/dist/components/docs/guides/GuideConnectInRepoPage.d.ts +1 -0
  73. package/dist/components/docs/guides/GuideConnectInRepoPage.js +44 -0
  74. package/dist/components/docs/guides/GuideContractTypesPage.js +6 -541
  75. package/dist/components/docs/guides/GuideDocsPipelinePage.js +3 -207
  76. package/dist/components/docs/guides/GuideFirstModuleBundlePage.d.ts +1 -0
  77. package/dist/components/docs/guides/GuideFirstModuleBundlePage.js +76 -0
  78. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -209
  79. package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.d.ts +1 -0
  80. package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.js +70 -0
  81. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -754
  82. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -268
  83. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +4 -196
  84. package/dist/components/docs/guides/GuidesIndexPage.js +2 -169
  85. package/dist/components/docs/guides/guides.docblocks.js +11 -75
  86. package/dist/components/docs/guides/index.d.ts +3 -0
  87. package/dist/components/docs/guides/index.js +213 -2428
  88. package/dist/components/docs/index.js +542 -24297
  89. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -42
  90. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -105
  91. package/dist/components/docs/integrations/IntegrationsGithubPage.js +3 -142
  92. package/dist/components/docs/integrations/IntegrationsGmailPage.js +3 -109
  93. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -79
  94. package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +3 -146
  95. package/dist/components/docs/integrations/IntegrationsMistralPage.js +5 -150
  96. package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +5 -140
  97. package/dist/components/docs/integrations/IntegrationsOverviewPage.js +1 -160
  98. package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +4 -218
  99. package/dist/components/docs/integrations/IntegrationsPowensPage.js +4 -300
  100. package/dist/components/docs/integrations/IntegrationsQdrantPage.js +5 -111
  101. package/dist/components/docs/integrations/IntegrationsResendPage.js +3 -102
  102. package/dist/components/docs/integrations/IntegrationsS3Page.js +4 -124
  103. package/dist/components/docs/integrations/IntegrationsSlackPage.js +3 -144
  104. package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +7 -290
  105. package/dist/components/docs/integrations/IntegrationsStripePage.js +6 -327
  106. package/dist/components/docs/integrations/IntegrationsTwilioPage.js +3 -128
  107. package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -146
  108. package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -156
  109. package/dist/components/docs/integrations/index.js +52 -3100
  110. package/dist/components/docs/intent/ContractFirstApiPage.js +2 -126
  111. package/dist/components/docs/intent/DeterministicCodegenPage.js +2 -148
  112. package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +7 -207
  113. package/dist/components/docs/intent/OpenapiAlternativePage.js +3 -201
  114. package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +4 -144
  115. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -126
  116. package/dist/components/docs/intent/index.js +15 -1135
  117. package/dist/components/docs/intent/intent-pages.docblocks.js +1 -201
  118. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +6 -750
  119. package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +4 -175
  120. package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +1 -116
  121. package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +8 -391
  122. package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +6 -302
  123. package/dist/components/docs/knowledge/index.js +21 -1730
  124. package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +3 -198
  125. package/dist/components/docs/libraries/LibrariesAiAgentPage.js +3 -141
  126. package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +4 -80
  127. package/dist/components/docs/libraries/LibrariesContentGenPage.js +2 -100
  128. package/dist/components/docs/libraries/LibrariesContractsPage.js +2 -284
  129. package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +3 -112
  130. package/dist/components/docs/libraries/LibrariesDataBackendPage.js +2 -166
  131. package/dist/components/docs/libraries/LibrariesDataViewsPage.js +3 -186
  132. package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +4 -279
  133. package/dist/components/docs/libraries/LibrariesEvolutionPage.js +4 -127
  134. package/dist/components/docs/libraries/LibrariesGraphQLPage.js +2 -173
  135. package/dist/components/docs/libraries/LibrariesGrowthPage.js +3 -88
  136. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -108
  137. package/dist/components/docs/libraries/LibrariesObservabilityPage.js +5 -130
  138. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -110
  139. package/dist/components/docs/libraries/LibrariesOverviewPage.js +1 -170
  140. package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +4 -114
  141. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -132
  142. package/dist/components/docs/libraries/LibrariesResiliencePage.js +4 -120
  143. package/dist/components/docs/libraries/LibrariesRuntimePage.js +2 -200
  144. package/dist/components/docs/libraries/LibrariesSLOPage.js +3 -116
  145. package/dist/components/docs/libraries/LibrariesSchemaPage.js +3 -273
  146. package/dist/components/docs/libraries/LibrariesSupportBotPage.js +3 -134
  147. package/dist/components/docs/libraries/LibrariesTestingPage.js +3 -133
  148. package/dist/components/docs/libraries/LibrariesUIKitPage.js +2 -230
  149. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -88
  150. package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +2 -181
  151. package/dist/components/docs/libraries/index.js +54 -4147
  152. package/dist/components/docs/manifesto/ManifestoPage.js +1 -86
  153. package/dist/components/docs/ops/AutoEvolutionOpsPage.js +2 -132
  154. package/dist/components/docs/ops/DistributedTracingOpsPage.js +2 -71
  155. package/dist/components/docs/ops/index.js +3 -202
  156. package/dist/components/docs/ops/ops-lifecycle.docblocks.js +3 -38
  157. package/dist/components/docs/ops/ops-runbooks-a.docblocks.js +3 -94
  158. package/dist/components/docs/ops/ops-runbooks-b.docblocks.js +3 -76
  159. package/dist/components/docs/ops/ops-slo-tenant.docblocks.js +3 -76
  160. package/dist/components/docs/ops/ops-top.docs.js +2 -17
  161. package/dist/components/docs/ops/ops.docs.js +10 -302
  162. package/dist/components/docs/product/product.docblocks.js +5 -72
  163. package/dist/components/docs/reference/DocsMarkdownContent.js +2 -196
  164. package/dist/components/docs/reference/DocsReferenceContent.js +3 -256
  165. package/dist/components/docs/reference/DocsReferenceIndexClient.js +2 -127
  166. package/dist/components/docs/reference/DocsReferenceIndexPage.js +2 -206
  167. package/dist/components/docs/reference/DocsReferencePage.js +3 -265
  168. package/dist/components/docs/reference/docsMarkdownParser.js +2 -92
  169. package/dist/components/docs/reference/index.js +4 -470
  170. package/dist/components/docs/safety/SafetyAuditingPage.js +2 -350
  171. package/dist/components/docs/safety/SafetyMigrationsPage.js +2 -359
  172. package/dist/components/docs/safety/SafetyOverviewPage.js +1 -101
  173. package/dist/components/docs/safety/SafetyPDPPage.js +2 -301
  174. package/dist/components/docs/safety/SafetySecurityTrustPage.js +1 -206
  175. package/dist/components/docs/safety/SafetySigningPage.js +3 -90
  176. package/dist/components/docs/safety/SafetyTenantIsolationPage.js +2 -79
  177. package/dist/components/docs/safety/index.js +7 -1480
  178. package/dist/components/docs/shared/StudioPrompt.js +1 -31
  179. package/dist/components/docs/specs/SpecsBuilderControlPlanePage.d.ts +1 -0
  180. package/dist/components/docs/specs/SpecsBuilderControlPlanePage.js +34 -0
  181. package/dist/components/docs/specs/SpecsCapabilitiesPage.js +2 -158
  182. package/dist/components/docs/specs/SpecsConnectPage.d.ts +1 -0
  183. package/dist/components/docs/specs/SpecsConnectPage.js +8 -0
  184. package/dist/components/docs/specs/SpecsDataViewsPage.js +2 -260
  185. package/dist/components/docs/specs/SpecsModuleBundlesPage.d.ts +1 -0
  186. package/dist/components/docs/specs/SpecsModuleBundlesPage.js +67 -0
  187. package/dist/components/docs/specs/SpecsOverlaysPage.js +2 -372
  188. package/dist/components/docs/specs/SpecsOverviewPage.js +1 -186
  189. package/dist/components/docs/specs/SpecsPolicyPage.js +3 -420
  190. package/dist/components/docs/specs/SpecsWorkflowsPage.js +2 -312
  191. package/dist/components/docs/specs/index.d.ts +3 -0
  192. package/dist/components/docs/specs/index.js +109 -1702
  193. package/dist/components/docs/studio/StudioBYOKPage.js +1 -26
  194. package/dist/components/docs/studio/StudioDeploymentsPage.js +1 -26
  195. package/dist/components/docs/studio/StudioGettingStartedPage.js +1 -26
  196. package/dist/components/docs/studio/StudioIntegrationsPage.js +1 -26
  197. package/dist/components/docs/studio/StudioOverviewPage.js +1 -157
  198. package/dist/components/docs/studio/StudioVisualBuilderPage.js +1 -26
  199. package/dist/components/docs/studio/index.js +1 -282
  200. package/dist/components/docs/tech/contracts/tech-docs.docblocks.js +2 -19
  201. package/dist/components/integrations/index.js +2 -600
  202. package/dist/components/integrations/molecules/IntegrationCard.js +1 -100
  203. package/dist/components/integrations/organisms/IntegrationMarketplace.js +1 -214
  204. package/dist/components/integrations/organisms/IntegrationSettings.js +2 -284
  205. package/dist/components/integrations/organisms/KnowledgeSourceList.js +1 -103
  206. package/dist/components/legal/PrivacyTemplate.js +1 -1025
  207. package/dist/components/legal/TermsTemplate.js +1 -941
  208. package/dist/components/legal/index.js +1 -1963
  209. package/dist/components/shared/FeatureGateNotice.js +1 -38
  210. package/dist/components/shared/index.js +1 -38
  211. package/dist/components/shell/WorkspaceHeader.js +1 -100
  212. package/dist/components/shell/WorkspaceProjectShellLayout.js +1 -222
  213. package/dist/components/shell/WorkspaceShellRenderer.js +1 -228
  214. package/dist/components/shell/WorkspaceSidebar.js +1 -68
  215. package/dist/components/shell/index.js +1 -287
  216. package/dist/components/templates/engine/index.js +1 -39
  217. package/dist/components/templates/index.js +11 -965
  218. package/dist/components/templates/messaging/ConversationList.js +2 -83
  219. package/dist/components/templates/messaging/MessageComposer.js +4 -150
  220. package/dist/components/templates/messaging/MessageThread.js +3 -83
  221. package/dist/components/templates/messaging/MessagingWorkspace.js +5 -265
  222. package/dist/components/templates/messaging/index.js +5 -269
  223. package/dist/components/templates/recipes/LanguageSwitcher.js +1 -16
  224. package/dist/components/templates/recipes/RecipeCard.js +1 -80
  225. package/dist/components/templates/recipes/RecipeDetail.js +1 -74
  226. package/dist/components/templates/recipes/RecipeList.js +3 -245
  227. package/dist/components/templates/recipes/index.js +3 -248
  228. package/dist/components/templates/todos/FilterBar.js +1 -107
  229. package/dist/components/templates/todos/TaskForm.js +2 -158
  230. package/dist/components/templates/todos/TaskItem.js +1 -77
  231. package/dist/components/templates/todos/TaskList.js +5 -449
  232. package/dist/components/templates/todos/index.js +5 -452
  233. package/dist/config/contractspec-blueprint.js +1 -123
  234. package/dist/config/contractspec-branding.js +1 -44
  235. package/dist/config/contractspec-routes.js +1 -24
  236. package/dist/config/index.js +1 -126
  237. package/dist/features/contracts-registry.js +1 -178
  238. package/dist/features/docs/docs.contracts.js +1 -17
  239. package/dist/features/docs/index.js +1 -17
  240. package/dist/features/docs.feature.js +1 -33
  241. package/dist/features/index.js +1 -315
  242. package/dist/features/mcp.feature.js +1 -30
  243. package/dist/features/presentations.feature.js +1 -33
  244. package/dist/features/registry.js +1 -116
  245. package/dist/index.js +556 -28580
  246. package/dist/infrastructure/elysia/index.js +1 -35
  247. package/dist/infrastructure/elysia/logger.js +1 -35
  248. package/dist/infrastructure/index.js +1 -35
  249. package/dist/libs/email/client.js +1 -114
  250. package/dist/libs/email/contact.js +12 -165
  251. package/dist/libs/email/newsletter.js +6 -167
  252. package/dist/libs/email/types.js +0 -2
  253. package/dist/libs/email/utils.js +2 -8
  254. package/dist/libs/email/waitlist-application.js +28 -209
  255. package/dist/libs/email/waitlist.js +6 -167
  256. package/dist/libs/email.js +46 -363
  257. package/dist/libs/posthog/client.js +1 -63
  258. package/dist/libs/posthog/native.js +1 -23
  259. package/dist/libs/posthog/server.js +1 -13
  260. package/dist/libs/pricing-examples.js +1 -18
  261. package/dist/node/application/context-storage/index.js +1 -28
  262. package/dist/node/application/index.js +13 -2133
  263. package/dist/node/application/mcp/cliMcp.js +4 -452
  264. package/dist/node/application/mcp/common.js +1 -193
  265. package/dist/node/application/mcp/contractsMcp.js +2 -549
  266. package/dist/node/application/mcp/contractsMcpResources.js +2 -123
  267. package/dist/node/application/mcp/contractsMcpTools.js +1 -199
  268. package/dist/node/application/mcp/docsMcp.catalog.js +3 -381
  269. package/dist/node/application/mcp/docsMcp.data.js +1 -147
  270. package/dist/node/application/mcp/docsMcp.js +6 -1039
  271. package/dist/node/application/mcp/docsMcp.prompts.js +6 -521
  272. package/dist/node/application/mcp/docsMcp.reference.js +3 -235
  273. package/dist/node/application/mcp/docsMcp.resources.js +3 -519
  274. package/dist/node/application/mcp/docsMcp.tools.js +3 -518
  275. package/dist/node/application/mcp/index.js +13 -2106
  276. package/dist/node/application/mcp/internalMcp.js +2 -410
  277. package/dist/node/application/mcp/normalizeMcpRequest.js +1 -21
  278. package/dist/node/application/mcp/providerRankingMcp.js +1 -530
  279. package/dist/node/bundles/LibraryBundle.js +1 -138
  280. package/dist/node/bundles/index.js +1 -138
  281. package/dist/node/components/docs/DocsIndexPage.js +2 -912
  282. package/dist/node/components/docs/advanced/AdvancedMCPPage.js +4 -271
  283. package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -107
  284. package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +2 -118
  285. package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -92
  286. package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +2 -373
  287. package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -99
  288. package/dist/node/components/docs/advanced/index.js +10 -1055
  289. package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +6 -243
  290. package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +3 -160
  291. package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -259
  292. package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -374
  293. package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -166
  294. package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +1 -143
  295. package/dist/node/components/docs/architecture/index.js +20 -1340
  296. package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -245
  297. package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -230
  298. package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -245
  299. package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +1 -202
  300. package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +1 -254
  301. package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -339
  302. package/dist/node/components/docs/comparison/index.js +1 -1510
  303. package/dist/node/components/docs/docsManifest.js +1 -611
  304. package/dist/node/components/docs/ecosystem/IntegrationsPage.js +2 -103
  305. package/dist/node/components/docs/ecosystem/PluginsPage.js +13 -179
  306. package/dist/node/components/docs/ecosystem/RegistryPage.js +7 -100
  307. package/dist/node/components/docs/ecosystem/TemplatesPage.js +3 -141
  308. package/dist/node/components/docs/ecosystem/ecosystem.docblocks.js +2 -48
  309. package/dist/node/components/docs/ecosystem/index.js +23 -569
  310. package/dist/node/components/docs/examples/DocsExamplesPage.js +4 -124
  311. package/dist/node/components/docs/examples/ExampleShowcasePage.js +4 -244
  312. package/dist/node/components/docs/examples/exampleShowcaseData.js +4 -39
  313. package/dist/node/components/docs/examples/index.js +4 -330
  314. package/dist/node/components/docs/generated/docs-index.generated.js +1 -5
  315. package/dist/node/components/docs/generated/index.js +1 -74
  316. package/dist/node/components/docs/generated/loader.js +1 -74
  317. package/dist/node/components/docs/getting-started/CLIPage.js +4 -271
  318. package/dist/node/components/docs/getting-started/CompatibilityPage.js +1 -173
  319. package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +4 -134
  320. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +1 -194
  321. package/dist/node/components/docs/getting-started/HelloWorldPage.js +5 -183
  322. package/dist/node/components/docs/getting-started/InstallationPage.js +3 -154
  323. package/dist/node/components/docs/getting-started/StartHerePage.js +2 -129
  324. package/dist/node/components/docs/getting-started/TroubleshootingPage.js +2 -168
  325. package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +1 -432
  326. package/dist/node/components/docs/getting-started/getting-started.docblocks.js +4 -41
  327. package/dist/node/components/docs/getting-started/index.js +18 -1869
  328. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +2 -196
  329. package/dist/node/components/docs/guides/GuideConnectInRepoPage.js +43 -0
  330. package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -541
  331. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +3 -207
  332. package/dist/node/components/docs/guides/GuideFirstModuleBundlePage.js +75 -0
  333. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -209
  334. package/dist/node/components/docs/guides/GuideHostBuilderWorkbenchPage.js +69 -0
  335. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -754
  336. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -268
  337. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +4 -196
  338. package/dist/node/components/docs/guides/GuidesIndexPage.js +2 -169
  339. package/dist/node/components/docs/guides/guides.docblocks.js +11 -75
  340. package/dist/node/components/docs/guides/index.js +213 -2428
  341. package/dist/node/components/docs/index.js +542 -24297
  342. package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -42
  343. package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -105
  344. package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +3 -142
  345. package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +3 -109
  346. package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -79
  347. package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +3 -146
  348. package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +5 -150
  349. package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +5 -140
  350. package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +1 -160
  351. package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +4 -218
  352. package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +4 -300
  353. package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +5 -111
  354. package/dist/node/components/docs/integrations/IntegrationsResendPage.js +3 -102
  355. package/dist/node/components/docs/integrations/IntegrationsS3Page.js +4 -124
  356. package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +3 -144
  357. package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +7 -290
  358. package/dist/node/components/docs/integrations/IntegrationsStripePage.js +6 -327
  359. package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +3 -128
  360. package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -146
  361. package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -156
  362. package/dist/node/components/docs/integrations/index.js +52 -3100
  363. package/dist/node/components/docs/intent/ContractFirstApiPage.js +2 -126
  364. package/dist/node/components/docs/intent/DeterministicCodegenPage.js +2 -148
  365. package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +7 -207
  366. package/dist/node/components/docs/intent/OpenapiAlternativePage.js +3 -201
  367. package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +4 -144
  368. package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -126
  369. package/dist/node/components/docs/intent/index.js +15 -1135
  370. package/dist/node/components/docs/intent/intent-pages.docblocks.js +1 -201
  371. package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +6 -750
  372. package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +4 -175
  373. package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +1 -116
  374. package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +8 -391
  375. package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +6 -302
  376. package/dist/node/components/docs/knowledge/index.js +21 -1730
  377. package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +3 -198
  378. package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +3 -141
  379. package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +4 -80
  380. package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +2 -100
  381. package/dist/node/components/docs/libraries/LibrariesContractsPage.js +2 -284
  382. package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +3 -112
  383. package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +2 -166
  384. package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +3 -186
  385. package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +4 -279
  386. package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +4 -127
  387. package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +2 -173
  388. package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +3 -88
  389. package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -108
  390. package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +5 -130
  391. package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -110
  392. package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +1 -170
  393. package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +4 -114
  394. package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -132
  395. package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +4 -120
  396. package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +2 -200
  397. package/dist/node/components/docs/libraries/LibrariesSLOPage.js +3 -116
  398. package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +3 -273
  399. package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +3 -134
  400. package/dist/node/components/docs/libraries/LibrariesTestingPage.js +3 -133
  401. package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +2 -230
  402. package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -88
  403. package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +2 -181
  404. package/dist/node/components/docs/libraries/index.js +54 -4147
  405. package/dist/node/components/docs/manifesto/ManifestoPage.js +1 -86
  406. package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +2 -132
  407. package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +2 -71
  408. package/dist/node/components/docs/ops/index.js +3 -202
  409. package/dist/node/components/docs/ops/ops-lifecycle.docblocks.js +3 -38
  410. package/dist/node/components/docs/ops/ops-runbooks-a.docblocks.js +3 -94
  411. package/dist/node/components/docs/ops/ops-runbooks-b.docblocks.js +3 -76
  412. package/dist/node/components/docs/ops/ops-slo-tenant.docblocks.js +3 -76
  413. package/dist/node/components/docs/ops/ops-top.docs.js +2 -17
  414. package/dist/node/components/docs/ops/ops.docs.js +10 -302
  415. package/dist/node/components/docs/product/product.docblocks.js +5 -72
  416. package/dist/node/components/docs/reference/DocsMarkdownContent.js +2 -196
  417. package/dist/node/components/docs/reference/DocsReferenceContent.js +3 -256
  418. package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +2 -127
  419. package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +2 -206
  420. package/dist/node/components/docs/reference/DocsReferencePage.js +3 -265
  421. package/dist/node/components/docs/reference/docsMarkdownParser.js +2 -92
  422. package/dist/node/components/docs/reference/index.js +4 -470
  423. package/dist/node/components/docs/safety/SafetyAuditingPage.js +2 -350
  424. package/dist/node/components/docs/safety/SafetyMigrationsPage.js +2 -359
  425. package/dist/node/components/docs/safety/SafetyOverviewPage.js +1 -101
  426. package/dist/node/components/docs/safety/SafetyPDPPage.js +2 -301
  427. package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +1 -206
  428. package/dist/node/components/docs/safety/SafetySigningPage.js +3 -90
  429. package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +2 -79
  430. package/dist/node/components/docs/safety/index.js +7 -1480
  431. package/dist/node/components/docs/shared/StudioPrompt.js +1 -31
  432. package/dist/node/components/docs/specs/SpecsBuilderControlPlanePage.js +33 -0
  433. package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +2 -158
  434. package/dist/node/components/docs/specs/SpecsConnectPage.js +7 -0
  435. package/dist/node/components/docs/specs/SpecsDataViewsPage.js +2 -260
  436. package/dist/node/components/docs/specs/SpecsModuleBundlesPage.js +66 -0
  437. package/dist/node/components/docs/specs/SpecsOverlaysPage.js +2 -372
  438. package/dist/node/components/docs/specs/SpecsOverviewPage.js +1 -186
  439. package/dist/node/components/docs/specs/SpecsPolicyPage.js +3 -420
  440. package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +2 -312
  441. package/dist/node/components/docs/specs/index.js +109 -1702
  442. package/dist/node/components/docs/studio/StudioBYOKPage.js +1 -26
  443. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +1 -26
  444. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +1 -26
  445. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +1 -26
  446. package/dist/node/components/docs/studio/StudioOverviewPage.js +1 -157
  447. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +1 -26
  448. package/dist/node/components/docs/studio/index.js +1 -282
  449. package/dist/node/components/docs/tech/contracts/tech-docs.docblocks.js +2 -19
  450. package/dist/node/components/integrations/index.js +2 -600
  451. package/dist/node/components/integrations/molecules/IntegrationCard.js +1 -100
  452. package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +1 -214
  453. package/dist/node/components/integrations/organisms/IntegrationSettings.js +2 -284
  454. package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +1 -103
  455. package/dist/node/components/legal/PrivacyTemplate.js +1 -1025
  456. package/dist/node/components/legal/TermsTemplate.js +1 -941
  457. package/dist/node/components/legal/index.js +1 -1963
  458. package/dist/node/components/shared/FeatureGateNotice.js +1 -38
  459. package/dist/node/components/shared/index.js +1 -38
  460. package/dist/node/components/shell/WorkspaceHeader.js +1 -100
  461. package/dist/node/components/shell/WorkspaceProjectShellLayout.js +1 -222
  462. package/dist/node/components/shell/WorkspaceShellRenderer.js +1 -228
  463. package/dist/node/components/shell/WorkspaceSidebar.js +1 -68
  464. package/dist/node/components/shell/index.js +1 -287
  465. package/dist/node/components/templates/engine/index.js +1 -39
  466. package/dist/node/components/templates/index.js +11 -965
  467. package/dist/node/components/templates/messaging/ConversationList.js +2 -83
  468. package/dist/node/components/templates/messaging/MessageComposer.js +4 -150
  469. package/dist/node/components/templates/messaging/MessageThread.js +3 -83
  470. package/dist/node/components/templates/messaging/MessagingWorkspace.js +5 -265
  471. package/dist/node/components/templates/messaging/index.js +5 -269
  472. package/dist/node/components/templates/recipes/LanguageSwitcher.js +1 -16
  473. package/dist/node/components/templates/recipes/RecipeCard.js +1 -80
  474. package/dist/node/components/templates/recipes/RecipeDetail.js +1 -74
  475. package/dist/node/components/templates/recipes/RecipeList.js +3 -245
  476. package/dist/node/components/templates/recipes/index.js +3 -248
  477. package/dist/node/components/templates/todos/FilterBar.js +1 -107
  478. package/dist/node/components/templates/todos/TaskForm.js +2 -158
  479. package/dist/node/components/templates/todos/TaskItem.js +1 -77
  480. package/dist/node/components/templates/todos/TaskList.js +5 -449
  481. package/dist/node/components/templates/todos/index.js +5 -452
  482. package/dist/node/config/contractspec-blueprint.js +1 -123
  483. package/dist/node/config/contractspec-branding.js +1 -44
  484. package/dist/node/config/contractspec-routes.js +1 -24
  485. package/dist/node/config/index.js +1 -126
  486. package/dist/node/features/contracts-registry.js +1 -178
  487. package/dist/node/features/docs/docs.contracts.js +1 -17
  488. package/dist/node/features/docs/index.js +1 -17
  489. package/dist/node/features/docs.feature.js +1 -33
  490. package/dist/node/features/index.js +1 -315
  491. package/dist/node/features/mcp.feature.js +1 -30
  492. package/dist/node/features/presentations.feature.js +1 -33
  493. package/dist/node/features/registry.js +1 -116
  494. package/dist/node/index.js +556 -28580
  495. package/dist/node/infrastructure/elysia/index.js +1 -35
  496. package/dist/node/infrastructure/elysia/logger.js +1 -35
  497. package/dist/node/infrastructure/index.js +1 -35
  498. package/dist/node/libs/email/client.js +1 -114
  499. package/dist/node/libs/email/contact.js +12 -165
  500. package/dist/node/libs/email/newsletter.js +6 -167
  501. package/dist/node/libs/email/types.js +0 -2
  502. package/dist/node/libs/email/utils.js +2 -8
  503. package/dist/node/libs/email/waitlist-application.js +28 -209
  504. package/dist/node/libs/email/waitlist.js +6 -167
  505. package/dist/node/libs/email.js +46 -363
  506. package/dist/node/libs/posthog/client.js +1 -63
  507. package/dist/node/libs/posthog/native.js +1 -23
  508. package/dist/node/libs/posthog/server.js +1 -13
  509. package/dist/node/libs/pricing-examples.js +1 -18
  510. package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -97
  511. package/dist/node/presentation/features/atoms/FeatureIcon/index.js +1 -97
  512. package/dist/node/presentation/features/atoms/index.js +1 -97
  513. package/dist/node/presentation/features/hooks/index.js +1 -397
  514. package/dist/node/presentation/features/hooks/useContractsRegistry.js +1 -289
  515. package/dist/node/presentation/features/hooks/useFeatureFilters.js +1 -75
  516. package/dist/node/presentation/features/hooks/useFeatureRegistry.js +1 -147
  517. package/dist/node/presentation/features/hooks/useRelatedDocs.js +1 -28
  518. package/dist/node/presentation/features/index.js +1 -3063
  519. package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -366
  520. package/dist/node/presentation/features/molecules/FeatureCard/index.js +1 -366
  521. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -50
  522. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -50
  523. package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -92
  524. package/dist/node/presentation/features/molecules/FeatureFilters/index.js +1 -92
  525. package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -176
  526. package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +1 -176
  527. package/dist/node/presentation/features/molecules/index.js +1 -505
  528. package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +1 -304
  529. package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -154
  530. package/dist/node/presentation/features/organisms/FeatureDetail/index.js +1 -154
  531. package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -909
  532. package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +1 -909
  533. package/dist/node/presentation/features/organisms/FeatureEventsList.js +1 -302
  534. package/dist/node/presentation/features/organisms/FeatureFormsList.js +1 -302
  535. package/dist/node/presentation/features/organisms/FeatureOperationsList.js +1 -180
  536. package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +1 -304
  537. package/dist/node/presentation/features/organisms/index.js +1 -1359
  538. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -332
  539. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -332
  540. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -342
  541. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -342
  542. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -303
  543. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -303
  544. package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -340
  545. package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +1 -340
  546. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -329
  547. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -329
  548. package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -340
  549. package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +1 -340
  550. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -302
  551. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -302
  552. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -218
  553. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -218
  554. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -187
  555. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -187
  556. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -306
  557. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -306
  558. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -342
  559. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -342
  560. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -97
  561. package/dist/presentation/features/atoms/FeatureIcon/index.js +1 -97
  562. package/dist/presentation/features/atoms/index.js +1 -97
  563. package/dist/presentation/features/hooks/index.js +1 -397
  564. package/dist/presentation/features/hooks/useContractsRegistry.js +1 -289
  565. package/dist/presentation/features/hooks/useFeatureFilters.js +1 -75
  566. package/dist/presentation/features/hooks/useFeatureRegistry.js +1 -147
  567. package/dist/presentation/features/hooks/useRelatedDocs.js +1 -28
  568. package/dist/presentation/features/index.js +1 -3063
  569. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -366
  570. package/dist/presentation/features/molecules/FeatureCard/index.js +1 -366
  571. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -50
  572. package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -50
  573. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -92
  574. package/dist/presentation/features/molecules/FeatureFilters/index.js +1 -92
  575. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -176
  576. package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +1 -176
  577. package/dist/presentation/features/molecules/index.js +1 -505
  578. package/dist/presentation/features/organisms/FeatureDataViewsList.js +1 -304
  579. package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -154
  580. package/dist/presentation/features/organisms/FeatureDetail/index.js +1 -154
  581. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -909
  582. package/dist/presentation/features/organisms/FeatureDiscovery/index.js +1 -909
  583. package/dist/presentation/features/organisms/FeatureEventsList.js +1 -302
  584. package/dist/presentation/features/organisms/FeatureFormsList.js +1 -302
  585. package/dist/presentation/features/organisms/FeatureOperationsList.js +1 -180
  586. package/dist/presentation/features/organisms/FeaturePresentationsList.js +1 -304
  587. package/dist/presentation/features/organisms/index.js +1 -1359
  588. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -332
  589. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -332
  590. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -342
  591. package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -342
  592. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -303
  593. package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -303
  594. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -340
  595. package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +1 -340
  596. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -329
  597. package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -329
  598. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -340
  599. package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +1 -340
  600. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -302
  601. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -302
  602. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -218
  603. package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -218
  604. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -187
  605. package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -187
  606. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -306
  607. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -306
  608. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -342
  609. package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -342
  610. package/package.json +109 -37
  611. package/src/components/docs/DocsIndexPage.tsx +55 -0
  612. package/src/components/docs/architecture/ArchitectureControlPlanePage.tsx +19 -0
  613. package/src/components/docs/architecture/ArchitectureOverviewPage.tsx +34 -0
  614. package/src/components/docs/docsManifest.test.ts +70 -0
  615. package/src/components/docs/docsManifest.ts +71 -1
  616. package/src/components/docs/ecosystem/PluginsPage.tsx +24 -10
  617. package/src/components/docs/ecosystem/RegistryPage.tsx +11 -6
  618. package/src/components/docs/generated/docs-index._common.json +206 -273
  619. package/src/components/docs/generated/docs-index.control-plane.json +18 -0
  620. package/src/components/docs/generated/docs-index.defineExample.json +10 -0
  621. package/src/components/docs/generated/docs-index.manifest.json +22 -12
  622. package/src/components/docs/generated/docs-index.platform-acp.json +64 -0
  623. package/src/components/docs/generated/docs-index.platform-agent.json +89 -1
  624. package/src/components/docs/generated/docs-index.platform-context.json +48 -0
  625. package/src/components/docs/generated/docs-index.platform-control-plane.json +72 -0
  626. package/src/components/docs/generated/docs-index.platform-database.json +40 -0
  627. package/src/components/docs/generated/docs-index.platform-docs.json +64 -0
  628. package/src/components/docs/generated/docs-index.platform-provider-ranking.json +89 -1
  629. package/src/components/docs/generated/docs-index.pocket-family-office.json +8 -0
  630. package/src/components/docs/generated/docs-index.unknown.json +8 -0
  631. package/src/components/docs/guides/GuideConnectInRepoPage.tsx +184 -0
  632. package/src/components/docs/guides/GuideFirstModuleBundlePage.tsx +182 -0
  633. package/src/components/docs/guides/GuideHostBuilderWorkbenchPage.tsx +230 -0
  634. package/src/components/docs/guides/GuidesIndexPage.tsx +21 -0
  635. package/src/components/docs/guides/index.ts +3 -0
  636. package/src/components/docs/specs/SpecsBuilderControlPlanePage.tsx +210 -0
  637. package/src/components/docs/specs/SpecsConnectPage.tsx +162 -0
  638. package/src/components/docs/specs/SpecsModuleBundlesPage.tsx +223 -0
  639. package/src/components/docs/specs/SpecsOverlaysPage.tsx +20 -0
  640. package/src/components/docs/specs/SpecsOverviewPage.tsx +44 -0
  641. package/src/components/docs/specs/SpecsWorkflowsPage.tsx +9 -1
  642. package/src/components/docs/specs/index.ts +3 -0
  643. package/src/components/docs/studio/StudioOverviewPage.tsx +26 -0
  644. package/src/infrastructure/elysia/logger.ts +11 -3
@@ -1,1511 +1,2 @@
1
1
  // @bun
2
- // src/components/docs/comparison/ComparisonAutomationPlatformsPage.tsx
3
- import { jsx, jsxs } from "react/jsx-runtime";
4
- function ComparisonAutomationPlatformsPage() {
5
- return /* @__PURE__ */ jsxs("div", {
6
- className: "space-y-8",
7
- children: [
8
- /* @__PURE__ */ jsxs("div", {
9
- className: "space-y-4",
10
- children: [
11
- /* @__PURE__ */ jsx("h1", {
12
- className: "font-bold text-4xl",
13
- children: "Automation platforms"
14
- }),
15
- /* @__PURE__ */ jsx("p", {
16
- className: "text-muted-foreground",
17
- children: "Automation platforms connect apps and automate tasks through triggers and actions. They serve operations and non-technical users well but stop short of generating full applications or enforcing fine-grained policies."
18
- })
19
- ]
20
- }),
21
- /* @__PURE__ */ jsxs("div", {
22
- className: "space-y-4",
23
- children: [
24
- /* @__PURE__ */ jsx("h2", {
25
- className: "font-bold text-2xl",
26
- children: "Feature comparison"
27
- }),
28
- /* @__PURE__ */ jsx("div", {
29
- className: "overflow-x-auto rounded-lg border border-border/50",
30
- children: /* @__PURE__ */ jsxs("table", {
31
- className: "w-full text-left text-sm",
32
- children: [
33
- /* @__PURE__ */ jsx("thead", {
34
- className: "bg-card/50",
35
- children: /* @__PURE__ */ jsxs("tr", {
36
- className: "border-border/50 border-b",
37
- children: [
38
- /* @__PURE__ */ jsx("th", {
39
- className: "px-4 py-3 font-semibold",
40
- children: "Feature"
41
- }),
42
- /* @__PURE__ */ jsx("th", {
43
- className: "px-4 py-3 font-semibold",
44
- children: "Zapier"
45
- }),
46
- /* @__PURE__ */ jsx("th", {
47
- className: "px-4 py-3 font-semibold",
48
- children: "Make (Integromat)"
49
- }),
50
- /* @__PURE__ */ jsx("th", {
51
- className: "px-4 py-3 font-semibold",
52
- children: "n8n"
53
- }),
54
- /* @__PURE__ */ jsx("th", {
55
- className: "px-4 py-3 font-semibold",
56
- children: "Pipedream"
57
- })
58
- ]
59
- })
60
- }),
61
- /* @__PURE__ */ jsxs("tbody", {
62
- className: "divide-y divide-border/50",
63
- children: [
64
- /* @__PURE__ */ jsxs("tr", {
65
- children: [
66
- /* @__PURE__ */ jsx("td", {
67
- className: "px-4 py-3 align-top font-semibold",
68
- children: "Workflow model"
69
- }),
70
- /* @__PURE__ */ jsx("td", {
71
- className: "px-4 py-3 align-top",
72
- children: "Zaps: trigger + one or more actions"
73
- }),
74
- /* @__PURE__ */ jsx("td", {
75
- className: "px-4 py-3 align-top",
76
- children: "Real-time visual orchestration for AI agents and automations"
77
- }),
78
- /* @__PURE__ */ jsx("td", {
79
- className: "px-4 py-3 align-top",
80
- children: "Node-based workflow builder with drag-and-drop and code; build multi-step AI agents"
81
- }),
82
- /* @__PURE__ */ jsx("td", {
83
- className: "px-4 py-3 align-top",
84
- children: "Workflows connect any API; Pipedream Connect SDK adds integrations quickly"
85
- })
86
- ]
87
- }),
88
- /* @__PURE__ */ jsxs("tr", {
89
- children: [
90
- /* @__PURE__ */ jsx("td", {
91
- className: "px-4 py-3 align-top font-semibold",
92
- children: "Visual builder?"
93
- }),
94
- /* @__PURE__ */ jsx("td", {
95
- className: "px-4 py-3 align-top",
96
- children: "Yes (simple; web-based)."
97
- }),
98
- /* @__PURE__ */ jsx("td", {
99
- className: "px-4 py-3 align-top",
100
- children: "Yes; AI-assisted editor"
101
- }),
102
- /* @__PURE__ */ jsx("td", {
103
- className: "px-4 py-3 align-top",
104
- children: "Yes; visual canvas."
105
- }),
106
- /* @__PURE__ */ jsx("td", {
107
- className: "px-4 py-3 align-top",
108
- children: "Code-centric editor; no visual UI builder"
109
- })
110
- ]
111
- }),
112
- /* @__PURE__ */ jsxs("tr", {
113
- children: [
114
- /* @__PURE__ */ jsx("td", {
115
- className: "px-4 py-3 align-top font-semibold",
116
- children: "Self-host?"
117
- }),
118
- /* @__PURE__ */ jsx("td", {
119
- className: "px-4 py-3 align-top",
120
- children: "No (cloud only)."
121
- }),
122
- /* @__PURE__ */ jsx("td", {
123
- className: "px-4 py-3 align-top",
124
- children: "Cloud only."
125
- }),
126
- /* @__PURE__ */ jsx("td", {
127
- className: "px-4 py-3 align-top",
128
- children: "Yes (Docker, self-host)"
129
- }),
130
- /* @__PURE__ */ jsx("td", {
131
- className: "px-4 py-3 align-top",
132
- children: "Cloud only (hosted)."
133
- })
134
- ]
135
- }),
136
- /* @__PURE__ */ jsxs("tr", {
137
- children: [
138
- /* @__PURE__ */ jsx("td", {
139
- className: "px-4 py-3 align-top font-semibold",
140
- children: "Integrations & AI"
141
- }),
142
- /* @__PURE__ */ jsx("td", {
143
- className: "px-4 py-3 align-top",
144
- children: "Connects almost 8 000 apps; limited AI features."
145
- }),
146
- /* @__PURE__ */ jsx("td", {
147
- className: "px-4 py-3 align-top",
148
- children: "3 000+ pre-built apps; supports GenAI tools; GDPR/SOC2 and SSO"
149
- }),
150
- /* @__PURE__ */ jsx("td", {
151
- className: "px-4 py-3 align-top",
152
- children: "Integrates LLMs; allows JS or Python code and library imports; chatbots with Slack/Teams"
153
- }),
154
- /* @__PURE__ */ jsx("td", {
155
- className: "px-4 py-3 align-top",
156
- children: "MCP servers add 3 000+ APIs and 10 000+ tools to agents; AI agent builder prompts and deploys agents; SOC 2/ HIPAA/GDPR compliant"
157
- })
158
- ]
159
- }),
160
- /* @__PURE__ */ jsxs("tr", {
161
- children: [
162
- /* @__PURE__ */ jsx("td", {
163
- className: "px-4 py-3 align-top font-semibold",
164
- children: "Policy & UI generation"
165
- }),
166
- /* @__PURE__ */ jsx("td", {
167
- className: "px-4 py-3 align-top",
168
- children: "No policy engine; does not generate user interfaces."
169
- }),
170
- /* @__PURE__ */ jsx("td", {
171
- className: "px-4 py-3 align-top",
172
- children: "No policy engine; does not generate UIs beyond a workflow dashboard."
173
- }),
174
- /* @__PURE__ */ jsx("td", {
175
- className: "px-4 py-3 align-top",
176
- children: "No policy engine; no UI builder"
177
- }),
178
- /* @__PURE__ */ jsx("td", {
179
- className: "px-4 py-3 align-top",
180
- children: "No policy engine; does not generate UI."
181
- })
182
- ]
183
- })
184
- ]
185
- })
186
- ]
187
- })
188
- })
189
- ]
190
- }),
191
- /* @__PURE__ */ jsxs("div", {
192
- className: "space-y-3",
193
- children: [
194
- /* @__PURE__ */ jsx("h2", {
195
- className: "font-bold text-2xl",
196
- children: "Why ContractSpec differs"
197
- }),
198
- /* @__PURE__ */ jsxs("ul", {
199
- className: "space-y-2 text-muted-foreground",
200
- children: [
201
- /* @__PURE__ */ jsxs("li", {
202
- children: [
203
- /* @__PURE__ */ jsx("strong", {
204
- children: "Full application generation"
205
- }),
206
- " \u2013 ContractSpec compiles specs into back-end, events and user interfaces for both web and mobile."
207
- ]
208
- }),
209
- /* @__PURE__ */ jsxs("li", {
210
- children: [
211
- /* @__PURE__ */ jsx("strong", {
212
- children: "Policy enforcement"
213
- }),
214
- " \u2013 A built-in policy engine governs PII access and mutations across the UI."
215
- ]
216
- }),
217
- /* @__PURE__ */ jsxs("li", {
218
- children: [
219
- /* @__PURE__ */ jsx("strong", {
220
- children: "Customisation via overlays"
221
- }),
222
- " \u2013 Non-technical users can safely personalise layouts while respecting policies."
223
- ]
224
- }),
225
- /* @__PURE__ */ jsxs("li", {
226
- children: [
227
- /* @__PURE__ */ jsx("strong", {
228
- children: "Extensible capabilities"
229
- }),
230
- " \u2013 Connect to external APIs and services via capability providers while maintaining type safety."
231
- ]
232
- })
233
- ]
234
- }),
235
- /* @__PURE__ */ jsx("p", {
236
- className: "text-muted-foreground",
237
- children: "Automation tools simplify integrations and tasks; ContractSpec goes further by generating a complete, policy-safe application around your data and processes."
238
- })
239
- ]
240
- })
241
- ]
242
- });
243
- }
244
-
245
- // src/components/docs/comparison/ComparisonEnterprisePlatformsPage.tsx
246
- import Link from "@contractspec/lib.ui-link";
247
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
248
- function ComparisonEnterprisePlatformsPage() {
249
- return /* @__PURE__ */ jsxs2("div", {
250
- className: "space-y-8",
251
- children: [
252
- /* @__PURE__ */ jsxs2("div", {
253
- className: "space-y-4",
254
- children: [
255
- /* @__PURE__ */ jsx2("h1", {
256
- className: "font-bold text-4xl",
257
- children: "Enterprise orchestration platforms"
258
- }),
259
- /* @__PURE__ */ jsx2("p", {
260
- className: "text-muted-foreground",
261
- children: "Enterprise orchestration platforms manage mission-critical workloads and integrate deeply with ERP systems. They prioritise governance, reliability and compliance, but they do not provide spec-driven app generation or per-user customisation."
262
- })
263
- ]
264
- }),
265
- /* @__PURE__ */ jsxs2("div", {
266
- className: "space-y-4",
267
- children: [
268
- /* @__PURE__ */ jsx2("h2", {
269
- className: "font-bold text-2xl",
270
- children: "Redwood RunMyJobs"
271
- }),
272
- /* @__PURE__ */ jsxs2("p", {
273
- className: "text-muted-foreground",
274
- children: [
275
- /* @__PURE__ */ jsx2(Link, {
276
- href: "https://www.redwood.com/workload-automation/",
277
- className: "underline decoration-dotted underline-offset-4 hover:text-foreground",
278
- target: "_blank",
279
- rel: "noreferrer",
280
- children: "RunMyJobs by Redwood"
281
- }),
282
- " ",
283
- "is a cloud-native service orchestration and automation platform. Key attributes include:"
284
- ]
285
- }),
286
- /* @__PURE__ */ jsxs2("ul", {
287
- className: "space-y-2 text-muted-foreground",
288
- children: [
289
- /* @__PURE__ */ jsxs2("li", {
290
- children: [
291
- /* @__PURE__ */ jsx2("strong", {
292
- children: "Self-service portal."
293
- }),
294
- " Business users can run and customise workloads while IT ensures governance and compliance"
295
- ]
296
- }),
297
- /* @__PURE__ */ jsxs2("li", {
298
- children: [
299
- /* @__PURE__ */ jsx2("strong", {
300
- children: "Full-stack orchestration."
301
- }),
302
- " Integrates with both SAP and non-SAP systems; Redwood is recognised as a Leader in Gartner\u2019s Magic Quadrant for service orchestration"
303
- ]
304
- }),
305
- /* @__PURE__ */ jsxs2("li", {
306
- children: [
307
- /* @__PURE__ */ jsx2("strong", {
308
- children: "Observability and AI insights."
309
- }),
310
- " Dashboards and AI-enhanced analytics identify bottlenecks and forecast issues"
311
- ]
312
- }),
313
- /* @__PURE__ */ jsxs2("li", {
314
- children: [
315
- /* @__PURE__ */ jsx2("strong", {
316
- children: "Deep SAP integration."
317
- }),
318
- " Supports SAP\u2019s latest technologies and orchestrates mission-critical business processes"
319
- ]
320
- }),
321
- /* @__PURE__ */ jsxs2("li", {
322
- children: [
323
- /* @__PURE__ */ jsx2("strong", {
324
- children: "Connectors & wizard."
325
- }),
326
- " Provides pre-built connectors and a wizard to link on-prem and cloud systems"
327
- ]
328
- })
329
- ]
330
- })
331
- ]
332
- }),
333
- /* @__PURE__ */ jsxs2("div", {
334
- className: "space-y-4",
335
- children: [
336
- /* @__PURE__ */ jsx2("h3", {
337
- className: "font-semibold text-xl",
338
- children: "Comparison with ContractSpec"
339
- }),
340
- /* @__PURE__ */ jsx2("div", {
341
- className: "overflow-x-auto rounded-lg border border-border/50",
342
- children: /* @__PURE__ */ jsxs2("table", {
343
- className: "w-full text-left text-sm",
344
- children: [
345
- /* @__PURE__ */ jsx2("thead", {
346
- className: "bg-card/50",
347
- children: /* @__PURE__ */ jsxs2("tr", {
348
- className: "border-border/50 border-b",
349
- children: [
350
- /* @__PURE__ */ jsx2("th", {
351
- className: "px-4 py-3 font-semibold",
352
- children: "Aspect"
353
- }),
354
- /* @__PURE__ */ jsx2("th", {
355
- className: "px-4 py-3 font-semibold",
356
- children: "RunMyJobs"
357
- }),
358
- /* @__PURE__ */ jsx2("th", {
359
- className: "px-4 py-3 font-semibold",
360
- children: "ContractSpec"
361
- })
362
- ]
363
- })
364
- }),
365
- /* @__PURE__ */ jsxs2("tbody", {
366
- className: "divide-y divide-border/50",
367
- children: [
368
- /* @__PURE__ */ jsxs2("tr", {
369
- children: [
370
- /* @__PURE__ */ jsx2("td", {
371
- className: "px-4 py-3 align-top",
372
- children: /* @__PURE__ */ jsx2("strong", {
373
- children: "Target user"
374
- })
375
- }),
376
- /* @__PURE__ */ jsx2("td", {
377
- className: "px-4 py-3 align-top",
378
- children: "Enterprise IT and operations teams automating SAP and mission-critical workflows."
379
- }),
380
- /* @__PURE__ */ jsx2("td", {
381
- className: "px-4 py-3 align-top",
382
- children: "Developers, product teams and SMBs wanting to generate policy-safe apps with customisable UIs."
383
- })
384
- ]
385
- }),
386
- /* @__PURE__ */ jsxs2("tr", {
387
- children: [
388
- /* @__PURE__ */ jsx2("td", {
389
- className: "px-4 py-3 align-top",
390
- children: /* @__PURE__ */ jsx2("strong", {
391
- children: "Workload focus"
392
- })
393
- }),
394
- /* @__PURE__ */ jsx2("td", {
395
- className: "px-4 py-3 align-top",
396
- children: "Service orchestration and job scheduling across ERP/legacy systems"
397
- }),
398
- /* @__PURE__ */ jsx2("td", {
399
- className: "px-4 py-3 align-top",
400
- children: "End-to-end application generation with back-end, UI and policies."
401
- })
402
- ]
403
- }),
404
- /* @__PURE__ */ jsxs2("tr", {
405
- children: [
406
- /* @__PURE__ */ jsx2("td", {
407
- className: "px-4 py-3 align-top",
408
- children: /* @__PURE__ */ jsx2("strong", {
409
- children: "User interface"
410
- })
411
- }),
412
- /* @__PURE__ */ jsx2("td", {
413
- className: "px-4 py-3 align-top",
414
- children: "Self-service portal to run/monitor jobs; no custom UI generation for new apps."
415
- }),
416
- /* @__PURE__ */ jsx2("td", {
417
- className: "px-4 py-3 align-top",
418
- children: "Generates React/React-Native UIs from specs; users can personalise layout via overlays."
419
- })
420
- ]
421
- }),
422
- /* @__PURE__ */ jsxs2("tr", {
423
- children: [
424
- /* @__PURE__ */ jsx2("td", {
425
- className: "px-4 py-3 align-top",
426
- children: /* @__PURE__ */ jsx2("strong", {
427
- children: "Open source"
428
- })
429
- }),
430
- /* @__PURE__ */ jsx2("td", {
431
- className: "px-4 py-3 align-top",
432
- children: "Proprietary SaaS; enterprise agreements."
433
- }),
434
- /* @__PURE__ */ jsx2("td", {
435
- className: "px-4 py-3 align-top",
436
- children: "Core compiler is proprietary; SDK and certain modules may be open-source; offers hosted and on-prem options."
437
- })
438
- ]
439
- }),
440
- /* @__PURE__ */ jsxs2("tr", {
441
- children: [
442
- /* @__PURE__ */ jsx2("td", {
443
- className: "px-4 py-3 align-top",
444
- children: /* @__PURE__ */ jsx2("strong", {
445
- children: "Policy & personalisation"
446
- })
447
- }),
448
- /* @__PURE__ */ jsx2("td", {
449
- className: "px-4 py-3 align-top",
450
- children: "IT controls governance; no per-user overlay concept."
451
- }),
452
- /* @__PURE__ */ jsx2("td", {
453
- className: "px-4 py-3 align-top",
454
- children: "Built-in policy engine and per-user overlays for safe personalisation."
455
- })
456
- ]
457
- })
458
- ]
459
- })
460
- ]
461
- })
462
- }),
463
- /* @__PURE__ */ jsx2("p", {
464
- className: "text-muted-foreground",
465
- children: "Redwood RunMyJobs is designed for orchestrating enterprise workloads and SAP processes. ContractSpec targets a different problem: generating complete applications from typed specs and letting end users adapt them safely."
466
- })
467
- ]
468
- })
469
- ]
470
- });
471
- }
472
-
473
- // src/components/docs/comparison/ComparisonInternalToolBuildersPage.tsx
474
- import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
475
- function ComparisonInternalToolBuildersPage() {
476
- return /* @__PURE__ */ jsxs3("div", {
477
- className: "space-y-8",
478
- children: [
479
- /* @__PURE__ */ jsxs3("div", {
480
- className: "space-y-4",
481
- children: [
482
- /* @__PURE__ */ jsx3("h1", {
483
- className: "font-bold text-4xl",
484
- children: "Internal-tool builders"
485
- }),
486
- /* @__PURE__ */ jsx3("p", {
487
- className: "text-muted-foreground",
488
- children: "Internal-tool builders let teams quickly assemble dashboards and admin panels. These platforms often provide drag-and-drop UIs and connectors to databases and APIs, but they rely on developers to write custom code for business logic and seldom enforce policies across surfaces."
489
- })
490
- ]
491
- }),
492
- /* @__PURE__ */ jsxs3("div", {
493
- className: "space-y-4",
494
- children: [
495
- /* @__PURE__ */ jsx3("h2", {
496
- className: "font-bold text-2xl",
497
- children: "Feature comparison"
498
- }),
499
- /* @__PURE__ */ jsx3("div", {
500
- className: "overflow-x-auto rounded-lg border border-border/50",
501
- children: /* @__PURE__ */ jsxs3("table", {
502
- className: "w-full text-left text-sm",
503
- children: [
504
- /* @__PURE__ */ jsx3("thead", {
505
- className: "bg-card/50",
506
- children: /* @__PURE__ */ jsxs3("tr", {
507
- className: "border-border/50 border-b",
508
- children: [
509
- /* @__PURE__ */ jsx3("th", {
510
- className: "px-4 py-3 font-semibold",
511
- children: "Feature"
512
- }),
513
- /* @__PURE__ */ jsx3("th", {
514
- className: "px-4 py-3 font-semibold",
515
- children: "Retool"
516
- }),
517
- /* @__PURE__ */ jsx3("th", {
518
- className: "px-4 py-3 font-semibold",
519
- children: "Appsmith"
520
- }),
521
- /* @__PURE__ */ jsx3("th", {
522
- className: "px-4 py-3 font-semibold",
523
- children: "ToolJet"
524
- }),
525
- /* @__PURE__ */ jsx3("th", {
526
- className: "px-4 py-3 font-semibold",
527
- children: "Budibase"
528
- })
529
- ]
530
- })
531
- }),
532
- /* @__PURE__ */ jsxs3("tbody", {
533
- className: "divide-y divide-border/50",
534
- children: [
535
- /* @__PURE__ */ jsxs3("tr", {
536
- children: [
537
- /* @__PURE__ */ jsx3("td", {
538
- className: "px-4 py-3 align-top font-semibold",
539
- children: "UI builder"
540
- }),
541
- /* @__PURE__ */ jsx3("td", {
542
- className: "px-4 py-3 align-top",
543
- children: "Drag-and-drop canvas; shape UI components easily"
544
- }),
545
- /* @__PURE__ */ jsx3("td", {
546
- className: "px-4 py-3 align-top",
547
- children: "Visual builder with drag-and-drop widgets"
548
- }),
549
- /* @__PURE__ */ jsx3("td", {
550
- className: "px-4 py-3 align-top",
551
- children: "Drag-and-drop UI widgets (tables, charts, forms)"
552
- }),
553
- /* @__PURE__ */ jsx3("td", {
554
- className: "px-4 py-3 align-top",
555
- children: "Pre-built components and templates for mobile/desktop"
556
- })
557
- ]
558
- }),
559
- /* @__PURE__ */ jsxs3("tr", {
560
- children: [
561
- /* @__PURE__ */ jsx3("td", {
562
- className: "px-4 py-3 align-top font-semibold",
563
- children: "Custom code & logic"
564
- }),
565
- /* @__PURE__ */ jsx3("td", {
566
- className: "px-4 py-3 align-top",
567
- children: "Full code insertion anywhere via IDE"
568
- }),
569
- /* @__PURE__ */ jsx3("td", {
570
- className: "px-4 py-3 align-top",
571
- children: "Logic via JavaScript or natural-language prompts in a central IDE"
572
- }),
573
- /* @__PURE__ */ jsx3("td", {
574
- className: "px-4 py-3 align-top",
575
- children: "Supports business logic in JavaScript or Python queries"
576
- }),
577
- /* @__PURE__ */ jsx3("td", {
578
- className: "px-4 py-3 align-top",
579
- children: "Custom logic via JavaScript; plugins and external embeds"
580
- })
581
- ]
582
- }),
583
- /* @__PURE__ */ jsxs3("tr", {
584
- children: [
585
- /* @__PURE__ */ jsx3("td", {
586
- className: "px-4 py-3 align-top font-semibold",
587
- children: "Data connectors"
588
- }),
589
- /* @__PURE__ */ jsx3("td", {
590
- className: "px-4 py-3 align-top",
591
- children: "Wide support for databases and APIs (PostgreSQL, MongoDB, GraphQL, etc.)."
592
- }),
593
- /* @__PURE__ */ jsx3("td", {
594
- className: "px-4 py-3 align-top",
595
- children: "Connects to LLMs and databases"
596
- }),
597
- /* @__PURE__ */ jsx3("td", {
598
- className: "px-4 py-3 align-top",
599
- children: "Built-in database; connects to PostgreSQL, MongoDB, APIs, GraphQL, SaaS"
600
- }),
601
- /* @__PURE__ */ jsx3("td", {
602
- className: "px-4 py-3 align-top",
603
- children: "Connects to external databases, REST, CSV or built-in DB"
604
- })
605
- ]
606
- }),
607
- /* @__PURE__ */ jsxs3("tr", {
608
- children: [
609
- /* @__PURE__ */ jsx3("td", {
610
- className: "px-4 py-3 align-top font-semibold",
611
- children: "Open source & self-host"
612
- }),
613
- /* @__PURE__ */ jsx3("td", {
614
- className: "px-4 py-3 align-top",
615
- children: "Proprietary; cloud or on-prem subscription."
616
- }),
617
- /* @__PURE__ */ jsx3("td", {
618
- className: "px-4 py-3 align-top",
619
- children: "Open source (Apache-2.0); self-host or cloud."
620
- }),
621
- /* @__PURE__ */ jsx3("td", {
622
- className: "px-4 py-3 align-top",
623
- children: "Open source; self-host via Docker or cloud."
624
- }),
625
- /* @__PURE__ */ jsx3("td", {
626
- className: "px-4 py-3 align-top",
627
- children: "Open source; self-host via Docker/Kubernetes"
628
- })
629
- ]
630
- }),
631
- /* @__PURE__ */ jsxs3("tr", {
632
- children: [
633
- /* @__PURE__ */ jsx3("td", {
634
- className: "px-4 py-3 align-top font-semibold",
635
- children: "Policy & personalisation"
636
- }),
637
- /* @__PURE__ */ jsx3("td", {
638
- className: "px-4 py-3 align-top",
639
- children: "No built-in policy engine; personalisation limited to user roles."
640
- }),
641
- /* @__PURE__ */ jsx3("td", {
642
- className: "px-4 py-3 align-top",
643
- children: "No typed policy engine; customisation depends on user roles."
644
- }),
645
- /* @__PURE__ */ jsx3("td", {
646
- className: "px-4 py-3 align-top",
647
- children: "No policy engine; personalisation via user roles."
648
- }),
649
- /* @__PURE__ */ jsx3("td", {
650
- className: "px-4 py-3 align-top",
651
- children: "No policy engine; personalisation via RBAC & SSO"
652
- })
653
- ]
654
- })
655
- ]
656
- })
657
- ]
658
- })
659
- })
660
- ]
661
- }),
662
- /* @__PURE__ */ jsxs3("div", {
663
- className: "space-y-3",
664
- children: [
665
- /* @__PURE__ */ jsx3("h2", {
666
- className: "font-bold text-2xl",
667
- children: "ContractSpec\u2019s differences"
668
- }),
669
- /* @__PURE__ */ jsxs3("ul", {
670
- className: "space-y-2 text-muted-foreground",
671
- children: [
672
- /* @__PURE__ */ jsxs3("li", {
673
- children: [
674
- /* @__PURE__ */ jsx3("strong", {
675
- children: "Typed specifications"
676
- }),
677
- " produce both the API and UI. You define capabilities, data views and workflows, and the compiler generates code, forms and screens\u2014no manual widget wiring."
678
- ]
679
- }),
680
- /* @__PURE__ */ jsxs3("li", {
681
- children: [
682
- /* @__PURE__ */ jsx3("strong", {
683
- children: "Policy enforcement"
684
- }),
685
- " at run time ensures PII and ABAC rules across the entire app."
686
- ]
687
- }),
688
- /* @__PURE__ */ jsxs3("li", {
689
- children: [
690
- /* @__PURE__ */ jsx3("strong", {
691
- children: "Overlay personalisation"
692
- }),
693
- " allows tenants and users to change layouts safely without code."
694
- ]
695
- }),
696
- /* @__PURE__ */ jsxs3("li", {
697
- children: [
698
- /* @__PURE__ */ jsx3("strong", {
699
- children: "Unified mobile/web runtime"
700
- }),
701
- " means you don\u2019t need separate builders for React Native vs web."
702
- ]
703
- })
704
- ]
705
- }),
706
- /* @__PURE__ */ jsx3("p", {
707
- className: "text-muted-foreground",
708
- children: "Internal-tool builders are useful for quick dashboards. ContractSpec extends this by generating the whole stack from specs and enforcing policies throughout."
709
- })
710
- ]
711
- })
712
- ]
713
- });
714
- }
715
-
716
- // src/components/docs/comparison/ComparisonOverviewPage.tsx
717
- import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
718
- function ComparisonOverviewPage() {
719
- return /* @__PURE__ */ jsxs4("div", {
720
- className: "space-y-8",
721
- children: [
722
- /* @__PURE__ */ jsxs4("div", {
723
- className: "space-y-4",
724
- children: [
725
- /* @__PURE__ */ jsx4("h1", {
726
- className: "font-bold text-4xl",
727
- children: "Comparison overview"
728
- }),
729
- /* @__PURE__ */ jsx4("p", {
730
- className: "text-muted-foreground",
731
- children: "ContractSpec sits at the intersection of several tool categories. To appreciate its unique offering\u2014typed specifications for back-end, front-end, workflows and policies with a unified web/mobile runtime\u2014this section compares it to related products."
732
- }),
733
- /* @__PURE__ */ jsxs4("p", {
734
- className: "text-muted-foreground",
735
- children: [
736
- "ContractSpec uses ",
737
- /* @__PURE__ */ jsx4("strong", {
738
- children: "runtime adapters"
739
- }),
740
- " to serve typed",
741
- " ",
742
- /* @__PURE__ */ jsx4("strong", {
743
- children: "Operations"
744
- }),
745
- " (Commands/Queries),",
746
- " ",
747
- /* @__PURE__ */ jsx4("strong", {
748
- children: "DataViews"
749
- }),
750
- ", ",
751
- /* @__PURE__ */ jsx4("strong", {
752
- children: "Workflows"
753
- }),
754
- ", and",
755
- " ",
756
- /* @__PURE__ */ jsx4("strong", {
757
- children: "Policies"
758
- }),
759
- " as REST/GraphQL/MCP endpoints. A",
760
- " ",
761
- /* @__PURE__ */ jsx4("strong", {
762
- children: "policy decision point"
763
- }),
764
- " governs every operation, and",
765
- " ",
766
- /* @__PURE__ */ jsx4("strong", {
767
- children: "OverlaySpecs"
768
- }),
769
- " allow non-technical users to personalise screens safely. Few competitors offer this combination of runtime type safety, policy enforcement, and end-user customisation."
770
- ]
771
- })
772
- ]
773
- }),
774
- /* @__PURE__ */ jsxs4("div", {
775
- className: "space-y-4",
776
- children: [
777
- /* @__PURE__ */ jsx4("h2", {
778
- className: "font-bold text-2xl",
779
- children: "Tool categories"
780
- }),
781
- /* @__PURE__ */ jsx4("div", {
782
- className: "overflow-x-auto rounded-lg border border-border/50",
783
- children: /* @__PURE__ */ jsxs4("table", {
784
- className: "w-full text-left text-sm",
785
- children: [
786
- /* @__PURE__ */ jsx4("thead", {
787
- className: "bg-card/50",
788
- children: /* @__PURE__ */ jsxs4("tr", {
789
- className: "border-border/50 border-b",
790
- children: [
791
- /* @__PURE__ */ jsx4("th", {
792
- className: "px-4 py-3 font-semibold",
793
- children: "Category"
794
- }),
795
- /* @__PURE__ */ jsx4("th", {
796
- className: "px-4 py-3 font-semibold",
797
- children: "Examples"
798
- }),
799
- /* @__PURE__ */ jsx4("th", {
800
- className: "px-4 py-3 font-semibold",
801
- children: "What they do"
802
- }),
803
- /* @__PURE__ */ jsx4("th", {
804
- className: "px-4 py-3 font-semibold",
805
- children: "Limitations"
806
- })
807
- ]
808
- })
809
- }),
810
- /* @__PURE__ */ jsxs4("tbody", {
811
- className: "divide-y divide-border/50",
812
- children: [
813
- /* @__PURE__ */ jsxs4("tr", {
814
- children: [
815
- /* @__PURE__ */ jsx4("td", {
816
- className: "px-4 py-3 align-top",
817
- children: /* @__PURE__ */ jsx4("strong", {
818
- children: "Workflow engines"
819
- })
820
- }),
821
- /* @__PURE__ */ jsx4("td", {
822
- className: "px-4 py-3 align-top",
823
- children: "Prefect, Kestra, Temporal, Airflow, Dagster, Hatchet, Windmill"
824
- }),
825
- /* @__PURE__ */ jsx4("td", {
826
- className: "px-4 py-3 align-top",
827
- children: "Orchestrate code or data pipelines; handle retries, scheduling and observability"
828
- }),
829
- /* @__PURE__ */ jsx4("td", {
830
- className: "px-4 py-3 align-top",
831
- children: "Require writing code; no automatic UI generation or policy enforcement."
832
- })
833
- ]
834
- }),
835
- /* @__PURE__ */ jsxs4("tr", {
836
- children: [
837
- /* @__PURE__ */ jsx4("td", {
838
- className: "px-4 py-3 align-top",
839
- children: /* @__PURE__ */ jsx4("strong", {
840
- children: "Internal-tool builders"
841
- })
842
- }),
843
- /* @__PURE__ */ jsx4("td", {
844
- className: "px-4 py-3 align-top",
845
- children: "Retool, Appsmith, ToolJet, Budibase"
846
- }),
847
- /* @__PURE__ */ jsx4("td", {
848
- className: "px-4 py-3 align-top",
849
- children: "Drag-and-drop dashboards and admin panels; connect to databases/APIs"
850
- }),
851
- /* @__PURE__ */ jsx4("td", {
852
- className: "px-4 py-3 align-top",
853
- children: "No typed back-end spec; limited enforcement of policies; custom code glues logic."
854
- })
855
- ]
856
- }),
857
- /* @__PURE__ */ jsxs4("tr", {
858
- children: [
859
- /* @__PURE__ */ jsx4("td", {
860
- className: "px-4 py-3 align-top",
861
- children: /* @__PURE__ */ jsx4("strong", {
862
- children: "Automation platforms"
863
- })
864
- }),
865
- /* @__PURE__ */ jsx4("td", {
866
- className: "px-4 py-3 align-top",
867
- children: "Zapier, Make, n8n, Pipedream"
868
- }),
869
- /* @__PURE__ */ jsx4("td", {
870
- className: "px-4 py-3 align-top",
871
- children: "Connect apps via triggers and actions; visual or low-code interfaces"
872
- }),
873
- /* @__PURE__ */ jsx4("td", {
874
- className: "px-4 py-3 align-top",
875
- children: "Automate tasks but do not generate full apps or enforce per-field policies."
876
- })
877
- ]
878
- }),
879
- /* @__PURE__ */ jsxs4("tr", {
880
- children: [
881
- /* @__PURE__ */ jsx4("td", {
882
- className: "px-4 py-3 align-top",
883
- children: /* @__PURE__ */ jsx4("strong", {
884
- children: "Enterprise orchestrators"
885
- })
886
- }),
887
- /* @__PURE__ */ jsx4("td", {
888
- className: "px-4 py-3 align-top",
889
- children: "Redwood RunMyJobs"
890
- }),
891
- /* @__PURE__ */ jsx4("td", {
892
- className: "px-4 py-3 align-top",
893
- children: "Automate mission-critical workloads with self-service portals and SAP integrations"
894
- }),
895
- /* @__PURE__ */ jsx4("td", {
896
- className: "px-4 py-3 align-top",
897
- children: "Focus on IT workloads; not built for custom app creation or per-user customisation."
898
- })
899
- ]
900
- })
901
- ]
902
- })
903
- ]
904
- })
905
- }),
906
- /* @__PURE__ */ jsx4("p", {
907
- className: "text-muted-foreground",
908
- children: "Use the pages below to explore each group in detail and see how ContractSpec compares."
909
- })
910
- ]
911
- })
912
- ]
913
- });
914
- }
915
-
916
- // src/components/docs/comparison/ComparisonWindmillPage.tsx
917
- import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
918
- function ComparisonWindmillPage() {
919
- return /* @__PURE__ */ jsxs5("div", {
920
- className: "space-y-8",
921
- children: [
922
- /* @__PURE__ */ jsxs5("div", {
923
- className: "space-y-4",
924
- children: [
925
- /* @__PURE__ */ jsx5("h1", {
926
- className: "font-bold text-4xl",
927
- children: "Windmill"
928
- }),
929
- /* @__PURE__ */ jsxs5("p", {
930
- className: "text-muted-foreground",
931
- children: [
932
- "Windmill is an open-source platform that turns",
933
- " ",
934
- /* @__PURE__ */ jsx5("strong", {
935
- children: "scripts"
936
- }),
937
- " into endpoints, workflows and UIs. It seeks to remove boilerplate by generating interfaces and workflows around existing code"
938
- ]
939
- })
940
- ]
941
- }),
942
- /* @__PURE__ */ jsxs5("div", {
943
- className: "space-y-4",
944
- children: [
945
- /* @__PURE__ */ jsx5("h2", {
946
- className: "font-bold text-2xl",
947
- children: "Platform features"
948
- }),
949
- /* @__PURE__ */ jsxs5("ul", {
950
- className: "space-y-3 text-muted-foreground",
951
- children: [
952
- /* @__PURE__ */ jsxs5("li", {
953
- children: [
954
- /* @__PURE__ */ jsx5("strong", {
955
- children: "Script-driven model."
956
- }),
957
- " Write scripts in TypeScript, Python, Go, PHP, Bash, C#, SQL or Rust; Windmill infers dependencies, creates lockfiles and JSON schemas, then serves minimal UIs automatically"
958
- ]
959
- }),
960
- /* @__PURE__ */ jsxs5("li", {
961
- children: [
962
- /* @__PURE__ */ jsx5("strong", {
963
- children: "Visual flow editor."
964
- }),
965
- " Compose scripts into workflows with retries, error handling, loops, branching, suspending flows and approval steps"
966
- ]
967
- }),
968
- /* @__PURE__ */ jsxs5("li", {
969
- children: [
970
- /* @__PURE__ */ jsx5("strong", {
971
- children: "Low-code UI builder."
972
- }),
973
- " Build dashboards and admin panels using inline scripts and trigger flows from the UI"
974
- ]
975
- }),
976
- /* @__PURE__ */ jsxs5("li", {
977
- children: [
978
- /* @__PURE__ */ jsx5("strong", {
979
- children: "Enterprise readiness."
980
- }),
981
- " Features include RBAC permissions, secret management, OAuth handling, CLI/git sync, scheduling and webhooks"
982
- ]
983
- }),
984
- /* @__PURE__ */ jsxs5("li", {
985
- children: [
986
- /* @__PURE__ */ jsx5("strong", {
987
- children: "Use cases."
988
- }),
989
- " Deploy scripts as webhooks or cron jobs; create \u201Capplicative workflows\u201D combining external APIs; build ETLs and interactive dashboards"
990
- ]
991
- }),
992
- /* @__PURE__ */ jsxs5("li", {
993
- children: [
994
- /* @__PURE__ */ jsx5("strong", {
995
- children: "Open source & self-hosting."
996
- }),
997
- " Windmill emphasises an open-source codebase and self-hosting options"
998
- ]
999
- })
1000
- ]
1001
- })
1002
- ]
1003
- }),
1004
- /* @__PURE__ */ jsxs5("div", {
1005
- className: "space-y-4",
1006
- children: [
1007
- /* @__PURE__ */ jsx5("h2", {
1008
- className: "font-bold text-2xl",
1009
- children: "Comparison with ContractSpec"
1010
- }),
1011
- /* @__PURE__ */ jsx5("div", {
1012
- className: "overflow-x-auto rounded-lg border border-border/50",
1013
- children: /* @__PURE__ */ jsxs5("table", {
1014
- className: "w-full text-left text-sm",
1015
- children: [
1016
- /* @__PURE__ */ jsx5("thead", {
1017
- className: "bg-card/50",
1018
- children: /* @__PURE__ */ jsxs5("tr", {
1019
- className: "border-border/50 border-b",
1020
- children: [
1021
- /* @__PURE__ */ jsx5("th", {
1022
- className: "px-4 py-3 font-semibold",
1023
- children: "Feature"
1024
- }),
1025
- /* @__PURE__ */ jsx5("th", {
1026
- className: "px-4 py-3 font-semibold",
1027
- children: "Windmill"
1028
- }),
1029
- /* @__PURE__ */ jsx5("th", {
1030
- className: "px-4 py-3 font-semibold",
1031
- children: "ContractSpec"
1032
- })
1033
- ]
1034
- })
1035
- }),
1036
- /* @__PURE__ */ jsxs5("tbody", {
1037
- className: "divide-y divide-border/50",
1038
- children: [
1039
- /* @__PURE__ */ jsxs5("tr", {
1040
- children: [
1041
- /* @__PURE__ */ jsx5("td", {
1042
- className: "px-4 py-3 align-top",
1043
- children: /* @__PURE__ */ jsx5("strong", {
1044
- children: "Entry model"
1045
- })
1046
- }),
1047
- /* @__PURE__ */ jsx5("td", {
1048
- className: "px-4 py-3 align-top",
1049
- children: "Write scripts; platform auto-generates UI and workflows"
1050
- }),
1051
- /* @__PURE__ */ jsx5("td", {
1052
- className: "px-4 py-3 align-top",
1053
- children: "Define typed specs (Capabilities, DataViews, Workflows, Policies); compiler outputs back-end, front-end and forms."
1054
- })
1055
- ]
1056
- }),
1057
- /* @__PURE__ */ jsxs5("tr", {
1058
- children: [
1059
- /* @__PURE__ */ jsx5("td", {
1060
- className: "px-4 py-3 align-top",
1061
- children: /* @__PURE__ */ jsx5("strong", {
1062
- children: "Language support"
1063
- })
1064
- }),
1065
- /* @__PURE__ */ jsx5("td", {
1066
- className: "px-4 py-3 align-top",
1067
- children: "20+ languages via embedded runtimes"
1068
- }),
1069
- /* @__PURE__ */ jsx5("td", {
1070
- className: "px-4 py-3 align-top",
1071
- children: "Uses TypeScript/JavaScript for providers; supports other back-ends through capability providers."
1072
- })
1073
- ]
1074
- }),
1075
- /* @__PURE__ */ jsxs5("tr", {
1076
- children: [
1077
- /* @__PURE__ */ jsx5("td", {
1078
- className: "px-4 py-3 align-top",
1079
- children: /* @__PURE__ */ jsx5("strong", {
1080
- children: "UI generation"
1081
- })
1082
- }),
1083
- /* @__PURE__ */ jsx5("td", {
1084
- className: "px-4 py-3 align-top",
1085
- children: "Minimal UI forms from script parameters; low-code app builder"
1086
- }),
1087
- /* @__PURE__ */ jsx5("td", {
1088
- className: "px-4 py-3 align-top",
1089
- children: "Generates full web and mobile UIs from specs; user layouts can be customised via signed overlays."
1090
- })
1091
- ]
1092
- }),
1093
- /* @__PURE__ */ jsxs5("tr", {
1094
- children: [
1095
- /* @__PURE__ */ jsx5("td", {
1096
- className: "px-4 py-3 align-top",
1097
- children: /* @__PURE__ */ jsx5("strong", {
1098
- children: "Policy & personalization"
1099
- })
1100
- }),
1101
- /* @__PURE__ */ jsx5("td", {
1102
- className: "px-4 py-3 align-top",
1103
- children: "RBAC and secret management; no per-user overlay concept"
1104
- }),
1105
- /* @__PURE__ */ jsx5("td", {
1106
- className: "px-4 py-3 align-top",
1107
- children: "Built-in policy engine enforcing ABAC/PII on every render/mutate; overlays allow safe per-user customisation."
1108
- })
1109
- ]
1110
- }),
1111
- /* @__PURE__ */ jsxs5("tr", {
1112
- children: [
1113
- /* @__PURE__ */ jsx5("td", {
1114
- className: "px-4 py-3 align-top",
1115
- children: /* @__PURE__ */ jsx5("strong", {
1116
- children: "Open source"
1117
- })
1118
- }),
1119
- /* @__PURE__ */ jsx5("td", {
1120
- className: "px-4 py-3 align-top",
1121
- children: "Fully open source and self-hostable"
1122
- }),
1123
- /* @__PURE__ */ jsx5("td", {
1124
- className: "px-4 py-3 align-top",
1125
- children: "Closed-source core (SDK is open); offers hosted and on-prem modes."
1126
- })
1127
- ]
1128
- }),
1129
- /* @__PURE__ */ jsxs5("tr", {
1130
- children: [
1131
- /* @__PURE__ */ jsx5("td", {
1132
- className: "px-4 py-3 align-top",
1133
- children: /* @__PURE__ */ jsx5("strong", {
1134
- children: "Ideal for"
1135
- })
1136
- }),
1137
- /* @__PURE__ */ jsx5("td", {
1138
- className: "px-4 py-3 align-top",
1139
- children: "Teams wanting to expose scripts as APIs, workflows or dashboards without heavy infrastructure."
1140
- }),
1141
- /* @__PURE__ */ jsx5("td", {
1142
- className: "px-4 py-3 align-top",
1143
- children: "Teams needing a spec-driven platform that generates code and UI, enforces policies and lets non-technical users tailor the experience."
1144
- })
1145
- ]
1146
- })
1147
- ]
1148
- })
1149
- ]
1150
- })
1151
- }),
1152
- /* @__PURE__ */ jsxs5("p", {
1153
- className: "text-muted-foreground",
1154
- children: [
1155
- "Windmill excels at converting scripts into workflows and admin panels. ContractSpec takes a ",
1156
- /* @__PURE__ */ jsx5("strong", {
1157
- children: "spec-first"
1158
- }),
1159
- " approach, generating the entire stack and enforcing policies, making it suitable for long-lived applications that must evolve safely."
1160
- ]
1161
- })
1162
- ]
1163
- })
1164
- ]
1165
- });
1166
- }
1167
-
1168
- // src/components/docs/comparison/ComparisonWorkflowEnginesPage.tsx
1169
- import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
1170
- function ComparisonWorkflowEnginesPage() {
1171
- return /* @__PURE__ */ jsxs6("div", {
1172
- className: "space-y-8",
1173
- children: [
1174
- /* @__PURE__ */ jsxs6("div", {
1175
- className: "space-y-4",
1176
- children: [
1177
- /* @__PURE__ */ jsx6("h1", {
1178
- className: "font-bold text-4xl",
1179
- children: "Workflow engines"
1180
- }),
1181
- /* @__PURE__ */ jsx6("p", {
1182
- className: "text-muted-foreground",
1183
- children: "Workflow engines orchestrate long-running tasks and data pipelines. They provide retries, scheduling and visibility, but most expect developers to write code and do not generate user interfaces. Here\u2019s how the major engines compare to ContractSpec."
1184
- })
1185
- ]
1186
- }),
1187
- /* @__PURE__ */ jsxs6("div", {
1188
- className: "space-y-4",
1189
- children: [
1190
- /* @__PURE__ */ jsx6("h2", {
1191
- className: "font-bold text-2xl",
1192
- children: "Key differences summary"
1193
- }),
1194
- /* @__PURE__ */ jsx6("div", {
1195
- className: "overflow-x-auto rounded-lg border border-border/50",
1196
- children: /* @__PURE__ */ jsxs6("table", {
1197
- className: "w-full text-left text-sm",
1198
- children: [
1199
- /* @__PURE__ */ jsx6("thead", {
1200
- className: "bg-card/50",
1201
- children: /* @__PURE__ */ jsxs6("tr", {
1202
- className: "border-border/50 border-b",
1203
- children: [
1204
- /* @__PURE__ */ jsx6("th", {
1205
- className: "px-4 py-3 font-semibold",
1206
- children: "Engine"
1207
- }),
1208
- /* @__PURE__ */ jsx6("th", {
1209
- className: "px-4 py-3 font-semibold",
1210
- children: "Core strengths"
1211
- }),
1212
- /* @__PURE__ */ jsx6("th", {
1213
- className: "px-4 py-3 font-semibold",
1214
- children: "UI generation?"
1215
- }),
1216
- /* @__PURE__ */ jsx6("th", {
1217
- className: "px-4 py-3 font-semibold",
1218
- children: "Policy/PII enforcement?"
1219
- }),
1220
- /* @__PURE__ */ jsx6("th", {
1221
- className: "px-4 py-3 font-semibold",
1222
- children: "Self-host?"
1223
- }),
1224
- /* @__PURE__ */ jsx6("th", {
1225
- className: "px-4 py-3 font-semibold",
1226
- children: "Primary use"
1227
- })
1228
- ]
1229
- })
1230
- }),
1231
- /* @__PURE__ */ jsxs6("tbody", {
1232
- className: "divide-y divide-border/50",
1233
- children: [
1234
- /* @__PURE__ */ jsxs6("tr", {
1235
- children: [
1236
- /* @__PURE__ */ jsx6("td", {
1237
- className: "px-4 py-3 align-top",
1238
- children: /* @__PURE__ */ jsx6("strong", {
1239
- children: "Prefect"
1240
- })
1241
- }),
1242
- /* @__PURE__ */ jsx6("td", {
1243
- className: "px-4 py-3 align-top",
1244
- children: "Python-native; dynamic DAGs adapt to change; annotate code without rewriting; strong observability and audit logs"
1245
- }),
1246
- /* @__PURE__ */ jsx6("td", {
1247
- className: "px-4 py-3 align-top",
1248
- children: "No"
1249
- }),
1250
- /* @__PURE__ */ jsx6("td", {
1251
- className: "px-4 py-3 align-top",
1252
- children: "No"
1253
- }),
1254
- /* @__PURE__ */ jsx6("td", {
1255
- className: "px-4 py-3 align-top",
1256
- children: "Yes"
1257
- }),
1258
- /* @__PURE__ */ jsx6("td", {
1259
- className: "px-4 py-3 align-top",
1260
- children: "Data pipelines and dynamic workflows."
1261
- })
1262
- ]
1263
- }),
1264
- /* @__PURE__ */ jsxs6("tr", {
1265
- children: [
1266
- /* @__PURE__ */ jsx6("td", {
1267
- className: "px-4 py-3 align-top",
1268
- children: /* @__PURE__ */ jsx6("strong", {
1269
- children: "Kestra"
1270
- })
1271
- }),
1272
- /* @__PURE__ */ jsx6("td", {
1273
- className: "px-4 py-3 align-top",
1274
- children: "Declarative YAML; event-driven triggers; mix of code and no-code; write logic in Python/R/Java/Julia/Ruby; deploy anywhere"
1275
- }),
1276
- /* @__PURE__ */ jsx6("td", {
1277
- className: "px-4 py-3 align-top",
1278
- children: "No"
1279
- }),
1280
- /* @__PURE__ */ jsx6("td", {
1281
- className: "px-4 py-3 align-top",
1282
- children: "No"
1283
- }),
1284
- /* @__PURE__ */ jsx6("td", {
1285
- className: "px-4 py-3 align-top",
1286
- children: "Yes"
1287
- }),
1288
- /* @__PURE__ */ jsx6("td", {
1289
- className: "px-4 py-3 align-top",
1290
- children: "Data pipelines and hybrid orchestration."
1291
- })
1292
- ]
1293
- }),
1294
- /* @__PURE__ */ jsxs6("tr", {
1295
- children: [
1296
- /* @__PURE__ */ jsx6("td", {
1297
- className: "px-4 py-3 align-top",
1298
- children: /* @__PURE__ */ jsx6("strong", {
1299
- children: "Temporal"
1300
- })
1301
- }),
1302
- /* @__PURE__ */ jsx6("td", {
1303
- className: "px-4 py-3 align-top",
1304
- children: "Durable execution; workflows never lose state; multi-language SDKs; automatic retries"
1305
- }),
1306
- /* @__PURE__ */ jsx6("td", {
1307
- className: "px-4 py-3 align-top",
1308
- children: "No"
1309
- }),
1310
- /* @__PURE__ */ jsx6("td", {
1311
- className: "px-4 py-3 align-top",
1312
- children: "No"
1313
- }),
1314
- /* @__PURE__ */ jsx6("td", {
1315
- className: "px-4 py-3 align-top",
1316
- children: "Yes"
1317
- }),
1318
- /* @__PURE__ */ jsx6("td", {
1319
- className: "px-4 py-3 align-top",
1320
- children: "Durable microservice and business workflows."
1321
- })
1322
- ]
1323
- }),
1324
- /* @__PURE__ */ jsxs6("tr", {
1325
- children: [
1326
- /* @__PURE__ */ jsx6("td", {
1327
- className: "px-4 py-3 align-top",
1328
- children: /* @__PURE__ */ jsx6("strong", {
1329
- children: "Airflow"
1330
- })
1331
- }),
1332
- /* @__PURE__ */ jsx6("td", {
1333
- className: "px-4 py-3 align-top",
1334
- children: "Open-source; define workflows as Python code; schedule and monitor via UI; extensible via custom operators"
1335
- }),
1336
- /* @__PURE__ */ jsx6("td", {
1337
- className: "px-4 py-3 align-top",
1338
- children: "No"
1339
- }),
1340
- /* @__PURE__ */ jsx6("td", {
1341
- className: "px-4 py-3 align-top",
1342
- children: "No"
1343
- }),
1344
- /* @__PURE__ */ jsx6("td", {
1345
- className: "px-4 py-3 align-top",
1346
- children: "Yes"
1347
- }),
1348
- /* @__PURE__ */ jsx6("td", {
1349
- className: "px-4 py-3 align-top",
1350
- children: "Data ETL pipelines."
1351
- })
1352
- ]
1353
- }),
1354
- /* @__PURE__ */ jsxs6("tr", {
1355
- children: [
1356
- /* @__PURE__ */ jsx6("td", {
1357
- className: "px-4 py-3 align-top",
1358
- children: /* @__PURE__ */ jsx6("strong", {
1359
- children: "Dagster"
1360
- })
1361
- }),
1362
- /* @__PURE__ */ jsx6("td", {
1363
- className: "px-4 py-3 align-top",
1364
- children: "Data-asset model; local testing and reusable components; built-in data quality and catalog; orchestrates AI/data pipelines across multiple tools"
1365
- }),
1366
- /* @__PURE__ */ jsx6("td", {
1367
- className: "px-4 py-3 align-top",
1368
- children: "No"
1369
- }),
1370
- /* @__PURE__ */ jsx6("td", {
1371
- className: "px-4 py-3 align-top",
1372
- children: "No"
1373
- }),
1374
- /* @__PURE__ */ jsx6("td", {
1375
- className: "px-4 py-3 align-top",
1376
- children: "Yes"
1377
- }),
1378
- /* @__PURE__ */ jsx6("td", {
1379
- className: "px-4 py-3 align-top",
1380
- children: "Data/AI pipelines with strong observability."
1381
- })
1382
- ]
1383
- }),
1384
- /* @__PURE__ */ jsxs6("tr", {
1385
- children: [
1386
- /* @__PURE__ */ jsx6("td", {
1387
- className: "px-4 py-3 align-top",
1388
- children: /* @__PURE__ */ jsx6("strong", {
1389
- children: "Hatchet"
1390
- })
1391
- }),
1392
- /* @__PURE__ */ jsx6("td", {
1393
- className: "px-4 py-3 align-top",
1394
- children: "Modern engine focused on performance and durability; tasks and workflows as code; durable functions with guardrails and retries"
1395
- }),
1396
- /* @__PURE__ */ jsx6("td", {
1397
- className: "px-4 py-3 align-top",
1398
- children: "No"
1399
- }),
1400
- /* @__PURE__ */ jsx6("td", {
1401
- className: "px-4 py-3 align-top",
1402
- children: "No"
1403
- }),
1404
- /* @__PURE__ */ jsx6("td", {
1405
- className: "px-4 py-3 align-top",
1406
- children: "Yes"
1407
- }),
1408
- /* @__PURE__ */ jsx6("td", {
1409
- className: "px-4 py-3 align-top",
1410
- children: "High-throughput background jobs and microservices."
1411
- })
1412
- ]
1413
- }),
1414
- /* @__PURE__ */ jsxs6("tr", {
1415
- children: [
1416
- /* @__PURE__ */ jsx6("td", {
1417
- className: "px-4 py-3 align-top",
1418
- children: /* @__PURE__ */ jsx6("strong", {
1419
- children: "Windmill"
1420
- })
1421
- }),
1422
- /* @__PURE__ */ jsx6("td", {
1423
- className: "px-4 py-3 align-top",
1424
- children: "Multi-language scripts; auto-generates UI; integrated flow editor"
1425
- }),
1426
- /* @__PURE__ */ jsx6("td", {
1427
- className: "px-4 py-3 align-top",
1428
- children: "Yes (basic)"
1429
- }),
1430
- /* @__PURE__ */ jsx6("td", {
1431
- className: "px-4 py-3 align-top",
1432
- children: "RBAC & secrets only"
1433
- }),
1434
- /* @__PURE__ */ jsx6("td", {
1435
- className: "px-4 py-3 align-top",
1436
- children: "Yes"
1437
- }),
1438
- /* @__PURE__ */ jsx6("td", {
1439
- className: "px-4 py-3 align-top",
1440
- children: "Scripts into workflows and dashboards."
1441
- })
1442
- ]
1443
- })
1444
- ]
1445
- })
1446
- ]
1447
- })
1448
- })
1449
- ]
1450
- }),
1451
- /* @__PURE__ */ jsxs6("div", {
1452
- className: "space-y-3",
1453
- children: [
1454
- /* @__PURE__ */ jsx6("h2", {
1455
- className: "font-bold text-2xl",
1456
- children: "Why ContractSpec differs"
1457
- }),
1458
- /* @__PURE__ */ jsxs6("ul", {
1459
- className: "space-y-2 text-muted-foreground",
1460
- children: [
1461
- /* @__PURE__ */ jsxs6("li", {
1462
- children: [
1463
- /* @__PURE__ */ jsx6("strong", {
1464
- children: "Spec-first generation"
1465
- }),
1466
- " \u2013 Instead of writing code, you define typed specs for capabilities, data views and workflows; the compiler outputs both back-end and front-end."
1467
- ]
1468
- }),
1469
- /* @__PURE__ */ jsxs6("li", {
1470
- children: [
1471
- /* @__PURE__ */ jsx6("strong", {
1472
- children: "Policy engine"
1473
- }),
1474
- " \u2013 Every render and mutate passes through an ABAC/PII policy decision point."
1475
- ]
1476
- }),
1477
- /* @__PURE__ */ jsxs6("li", {
1478
- children: [
1479
- /* @__PURE__ */ jsx6("strong", {
1480
- children: "Personalisation"
1481
- }),
1482
- " \u2013 Signed OverlaySpecs allow tenant/user-specific UI changes without touching code."
1483
- ]
1484
- }),
1485
- /* @__PURE__ */ jsxs6("li", {
1486
- children: [
1487
- /* @__PURE__ */ jsx6("strong", {
1488
- children: "Unified runtime"
1489
- }),
1490
- " \u2013 React/React-Native rendering ensures consistent experiences across web and mobile."
1491
- ]
1492
- })
1493
- ]
1494
- }),
1495
- /* @__PURE__ */ jsx6("p", {
1496
- className: "text-muted-foreground",
1497
- children: "Workflow engines are excellent for orchestrating back-end tasks. ContractSpec builds on this by serving complete applications with runtime policy enforcement and user personalisation via TypeScript specs."
1498
- })
1499
- ]
1500
- })
1501
- ]
1502
- });
1503
- }
1504
- export {
1505
- ComparisonWorkflowEnginesPage,
1506
- ComparisonWindmillPage,
1507
- ComparisonOverviewPage,
1508
- ComparisonInternalToolBuildersPage,
1509
- ComparisonEnterprisePlatformsPage,
1510
- ComparisonAutomationPlatformsPage
1511
- };
2
+ import{jsx as e,jsxs as p}from"react/jsx-runtime";function m(){return p("div",{className:"space-y-8",children:[p("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"Automation platforms"}),e("p",{className:"text-muted-foreground",children:"Automation platforms connect apps and automate tasks through triggers and actions. They serve operations and non-technical users well but stop short of generating full applications or enforcing fine-grained policies."})]}),p("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Feature comparison"}),e("div",{className:"overflow-x-auto rounded-lg border border-border/50",children:p("table",{className:"w-full text-left text-sm",children:[e("thead",{className:"bg-card/50",children:p("tr",{className:"border-border/50 border-b",children:[e("th",{className:"px-4 py-3 font-semibold",children:"Feature"}),e("th",{className:"px-4 py-3 font-semibold",children:"Zapier"}),e("th",{className:"px-4 py-3 font-semibold",children:"Make (Integromat)"}),e("th",{className:"px-4 py-3 font-semibold",children:"n8n"}),e("th",{className:"px-4 py-3 font-semibold",children:"Pipedream"})]})}),p("tbody",{className:"divide-y divide-border/50",children:[p("tr",{children:[e("td",{className:"px-4 py-3 align-top font-semibold",children:"Workflow model"}),e("td",{className:"px-4 py-3 align-top",children:"Zaps: trigger + one or more actions"}),e("td",{className:"px-4 py-3 align-top",children:"Real-time visual orchestration for AI agents and automations"}),e("td",{className:"px-4 py-3 align-top",children:"Node-based workflow builder with drag-and-drop and code; build multi-step AI agents"}),e("td",{className:"px-4 py-3 align-top",children:"Workflows connect any API; Pipedream Connect SDK adds integrations quickly"})]}),p("tr",{children:[e("td",{className:"px-4 py-3 align-top font-semibold",children:"Visual builder?"}),e("td",{className:"px-4 py-3 align-top",children:"Yes (simple; web-based)."}),e("td",{className:"px-4 py-3 align-top",children:"Yes; AI-assisted editor"}),e("td",{className:"px-4 py-3 align-top",children:"Yes; visual canvas."}),e("td",{className:"px-4 py-3 align-top",children:"Code-centric editor; no visual UI builder"})]}),p("tr",{children:[e("td",{className:"px-4 py-3 align-top font-semibold",children:"Self-host?"}),e("td",{className:"px-4 py-3 align-top",children:"No (cloud only)."}),e("td",{className:"px-4 py-3 align-top",children:"Cloud only."}),e("td",{className:"px-4 py-3 align-top",children:"Yes (Docker, self-host)"}),e("td",{className:"px-4 py-3 align-top",children:"Cloud only (hosted)."})]}),p("tr",{children:[e("td",{className:"px-4 py-3 align-top font-semibold",children:"Integrations & AI"}),e("td",{className:"px-4 py-3 align-top",children:"Connects almost 8 000 apps; limited AI features."}),e("td",{className:"px-4 py-3 align-top",children:"3 000+ pre-built apps; supports GenAI tools; GDPR/SOC2 and SSO"}),e("td",{className:"px-4 py-3 align-top",children:"Integrates LLMs; allows JS or Python code and library imports; chatbots with Slack/Teams"}),e("td",{className:"px-4 py-3 align-top",children:"MCP servers add 3 000+ APIs and 10 000+ tools to agents; AI agent builder prompts and deploys agents; SOC 2/ HIPAA/GDPR compliant"})]}),p("tr",{children:[e("td",{className:"px-4 py-3 align-top font-semibold",children:"Policy & UI generation"}),e("td",{className:"px-4 py-3 align-top",children:"No policy engine; does not generate user interfaces."}),e("td",{className:"px-4 py-3 align-top",children:"No policy engine; does not generate UIs beyond a workflow dashboard."}),e("td",{className:"px-4 py-3 align-top",children:"No policy engine; no UI builder"}),e("td",{className:"px-4 py-3 align-top",children:"No policy engine; does not generate UI."})]})]})]})})]}),p("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Why ContractSpec differs"}),p("ul",{className:"space-y-2 text-muted-foreground",children:[p("li",{children:[e("strong",{children:"Full application generation"})," \u2013 ContractSpec compiles specs into back-end, events and user interfaces for both web and mobile."]}),p("li",{children:[e("strong",{children:"Policy enforcement"})," \u2013 A built-in policy engine governs PII access and mutations across the UI."]}),p("li",{children:[e("strong",{children:"Customisation via overlays"})," \u2013 Non-technical users can safely personalise layouts while respecting policies."]}),p("li",{children:[e("strong",{children:"Extensible capabilities"})," \u2013 Connect to external APIs and services via capability providers while maintaining type safety."]})]}),e("p",{className:"text-muted-foreground",children:"Automation tools simplify integrations and tasks; ContractSpec goes further by generating a complete, policy-safe application around your data and processes."})]})]})}import g from"@contractspec/lib.ui-link";import{jsx as l,jsxs as r}from"react/jsx-runtime";function y(){return r("div",{className:"space-y-8",children:[r("div",{className:"space-y-4",children:[l("h1",{className:"font-bold text-4xl",children:"Enterprise orchestration platforms"}),l("p",{className:"text-muted-foreground",children:"Enterprise orchestration platforms manage mission-critical workloads and integrate deeply with ERP systems. They prioritise governance, reliability and compliance, but they do not provide spec-driven app generation or per-user customisation."})]}),r("div",{className:"space-y-4",children:[l("h2",{className:"font-bold text-2xl",children:"Redwood RunMyJobs"}),r("p",{className:"text-muted-foreground",children:[l(g,{href:"https://www.redwood.com/workload-automation/",className:"underline decoration-dotted underline-offset-4 hover:text-foreground",target:"_blank",rel:"noreferrer",children:"RunMyJobs by Redwood"})," ","is a cloud-native service orchestration and automation platform. Key attributes include:"]}),r("ul",{className:"space-y-2 text-muted-foreground",children:[r("li",{children:[l("strong",{children:"Self-service portal."})," Business users can run and customise workloads while IT ensures governance and compliance"]}),r("li",{children:[l("strong",{children:"Full-stack orchestration."})," Integrates with both SAP and non-SAP systems; Redwood is recognised as a Leader in Gartner\u2019s Magic Quadrant for service orchestration"]}),r("li",{children:[l("strong",{children:"Observability and AI insights."})," Dashboards and AI-enhanced analytics identify bottlenecks and forecast issues"]}),r("li",{children:[l("strong",{children:"Deep SAP integration."})," Supports SAP\u2019s latest technologies and orchestrates mission-critical business processes"]}),r("li",{children:[l("strong",{children:"Connectors & wizard."})," Provides pre-built connectors and a wizard to link on-prem and cloud systems"]})]})]}),r("div",{className:"space-y-4",children:[l("h3",{className:"font-semibold text-xl",children:"Comparison with ContractSpec"}),l("div",{className:"overflow-x-auto rounded-lg border border-border/50",children:r("table",{className:"w-full text-left text-sm",children:[l("thead",{className:"bg-card/50",children:r("tr",{className:"border-border/50 border-b",children:[l("th",{className:"px-4 py-3 font-semibold",children:"Aspect"}),l("th",{className:"px-4 py-3 font-semibold",children:"RunMyJobs"}),l("th",{className:"px-4 py-3 font-semibold",children:"ContractSpec"})]})}),r("tbody",{className:"divide-y divide-border/50",children:[r("tr",{children:[l("td",{className:"px-4 py-3 align-top",children:l("strong",{children:"Target user"})}),l("td",{className:"px-4 py-3 align-top",children:"Enterprise IT and operations teams automating SAP and mission-critical workflows."}),l("td",{className:"px-4 py-3 align-top",children:"Developers, product teams and SMBs wanting to generate policy-safe apps with customisable UIs."})]}),r("tr",{children:[l("td",{className:"px-4 py-3 align-top",children:l("strong",{children:"Workload focus"})}),l("td",{className:"px-4 py-3 align-top",children:"Service orchestration and job scheduling across ERP/legacy systems"}),l("td",{className:"px-4 py-3 align-top",children:"End-to-end application generation with back-end, UI and policies."})]}),r("tr",{children:[l("td",{className:"px-4 py-3 align-top",children:l("strong",{children:"User interface"})}),l("td",{className:"px-4 py-3 align-top",children:"Self-service portal to run/monitor jobs; no custom UI generation for new apps."}),l("td",{className:"px-4 py-3 align-top",children:"Generates React/React-Native UIs from specs; users can personalise layout via overlays."})]}),r("tr",{children:[l("td",{className:"px-4 py-3 align-top",children:l("strong",{children:"Open source"})}),l("td",{className:"px-4 py-3 align-top",children:"Proprietary SaaS; enterprise agreements."}),l("td",{className:"px-4 py-3 align-top",children:"Core compiler is proprietary; SDK and certain modules may be open-source; offers hosted and on-prem options."})]}),r("tr",{children:[l("td",{className:"px-4 py-3 align-top",children:l("strong",{children:"Policy & personalisation"})}),l("td",{className:"px-4 py-3 align-top",children:"IT controls governance; no per-user overlay concept."}),l("td",{className:"px-4 py-3 align-top",children:"Built-in policy engine and per-user overlays for safe personalisation."})]})]})]})}),l("p",{className:"text-muted-foreground",children:"Redwood RunMyJobs is designed for orchestrating enterprise workloads and SAP processes. ContractSpec targets a different problem: generating complete applications from typed specs and letting end users adapt them safely."})]})]})}import{jsx as a,jsxs as s}from"react/jsx-runtime";function u(){return s("div",{className:"space-y-8",children:[s("div",{className:"space-y-4",children:[a("h1",{className:"font-bold text-4xl",children:"Internal-tool builders"}),a("p",{className:"text-muted-foreground",children:"Internal-tool builders let teams quickly assemble dashboards and admin panels. These platforms often provide drag-and-drop UIs and connectors to databases and APIs, but they rely on developers to write custom code for business logic and seldom enforce policies across surfaces."})]}),s("div",{className:"space-y-4",children:[a("h2",{className:"font-bold text-2xl",children:"Feature comparison"}),a("div",{className:"overflow-x-auto rounded-lg border border-border/50",children:s("table",{className:"w-full text-left text-sm",children:[a("thead",{className:"bg-card/50",children:s("tr",{className:"border-border/50 border-b",children:[a("th",{className:"px-4 py-3 font-semibold",children:"Feature"}),a("th",{className:"px-4 py-3 font-semibold",children:"Retool"}),a("th",{className:"px-4 py-3 font-semibold",children:"Appsmith"}),a("th",{className:"px-4 py-3 font-semibold",children:"ToolJet"}),a("th",{className:"px-4 py-3 font-semibold",children:"Budibase"})]})}),s("tbody",{className:"divide-y divide-border/50",children:[s("tr",{children:[a("td",{className:"px-4 py-3 align-top font-semibold",children:"UI builder"}),a("td",{className:"px-4 py-3 align-top",children:"Drag-and-drop canvas; shape UI components easily"}),a("td",{className:"px-4 py-3 align-top",children:"Visual builder with drag-and-drop widgets"}),a("td",{className:"px-4 py-3 align-top",children:"Drag-and-drop UI widgets (tables, charts, forms)"}),a("td",{className:"px-4 py-3 align-top",children:"Pre-built components and templates for mobile/desktop"})]}),s("tr",{children:[a("td",{className:"px-4 py-3 align-top font-semibold",children:"Custom code & logic"}),a("td",{className:"px-4 py-3 align-top",children:"Full code insertion anywhere via IDE"}),a("td",{className:"px-4 py-3 align-top",children:"Logic via JavaScript or natural-language prompts in a central IDE"}),a("td",{className:"px-4 py-3 align-top",children:"Supports business logic in JavaScript or Python queries"}),a("td",{className:"px-4 py-3 align-top",children:"Custom logic via JavaScript; plugins and external embeds"})]}),s("tr",{children:[a("td",{className:"px-4 py-3 align-top font-semibold",children:"Data connectors"}),a("td",{className:"px-4 py-3 align-top",children:"Wide support for databases and APIs (PostgreSQL, MongoDB, GraphQL, etc.)."}),a("td",{className:"px-4 py-3 align-top",children:"Connects to LLMs and databases"}),a("td",{className:"px-4 py-3 align-top",children:"Built-in database; connects to PostgreSQL, MongoDB, APIs, GraphQL, SaaS"}),a("td",{className:"px-4 py-3 align-top",children:"Connects to external databases, REST, CSV or built-in DB"})]}),s("tr",{children:[a("td",{className:"px-4 py-3 align-top font-semibold",children:"Open source & self-host"}),a("td",{className:"px-4 py-3 align-top",children:"Proprietary; cloud or on-prem subscription."}),a("td",{className:"px-4 py-3 align-top",children:"Open source (Apache-2.0); self-host or cloud."}),a("td",{className:"px-4 py-3 align-top",children:"Open source; self-host via Docker or cloud."}),a("td",{className:"px-4 py-3 align-top",children:"Open source; self-host via Docker/Kubernetes"})]}),s("tr",{children:[a("td",{className:"px-4 py-3 align-top font-semibold",children:"Policy & personalisation"}),a("td",{className:"px-4 py-3 align-top",children:"No built-in policy engine; personalisation limited to user roles."}),a("td",{className:"px-4 py-3 align-top",children:"No typed policy engine; customisation depends on user roles."}),a("td",{className:"px-4 py-3 align-top",children:"No policy engine; personalisation via user roles."}),a("td",{className:"px-4 py-3 align-top",children:"No policy engine; personalisation via RBAC & SSO"})]})]})]})})]}),s("div",{className:"space-y-3",children:[a("h2",{className:"font-bold text-2xl",children:"ContractSpec\u2019s differences"}),s("ul",{className:"space-y-2 text-muted-foreground",children:[s("li",{children:[a("strong",{children:"Typed specifications"})," produce both the API and UI. You define capabilities, data views and workflows, and the compiler generates code, forms and screens\u2014no manual widget wiring."]}),s("li",{children:[a("strong",{children:"Policy enforcement"})," at run time ensures PII and ABAC rules across the entire app."]}),s("li",{children:[a("strong",{children:"Overlay personalisation"})," allows tenants and users to change layouts safely without code."]}),s("li",{children:[a("strong",{children:"Unified mobile/web runtime"})," means you don\u2019t need separate builders for React Native vs web."]})]}),a("p",{className:"text-muted-foreground",children:"Internal-tool builders are useful for quick dashboards. ContractSpec extends this by generating the whole stack from specs and enforcing policies throughout."})]})]})}import{jsx as n,jsxs as c}from"react/jsx-runtime";function N(){return c("div",{className:"space-y-8",children:[c("div",{className:"space-y-4",children:[n("h1",{className:"font-bold text-4xl",children:"Comparison overview"}),n("p",{className:"text-muted-foreground",children:"ContractSpec sits at the intersection of several tool categories. To appreciate its unique offering\u2014typed specifications for back-end, front-end, workflows and policies with a unified web/mobile runtime\u2014this section compares it to related products."}),c("p",{className:"text-muted-foreground",children:["ContractSpec uses ",n("strong",{children:"runtime adapters"})," to serve typed"," ",n("strong",{children:"Operations"})," (Commands/Queries),"," ",n("strong",{children:"DataViews"}),", ",n("strong",{children:"Workflows"}),", and"," ",n("strong",{children:"Policies"})," as REST/GraphQL/MCP endpoints. A"," ",n("strong",{children:"policy decision point"})," governs every operation, and"," ",n("strong",{children:"OverlaySpecs"})," allow non-technical users to personalise screens safely. Few competitors offer this combination of runtime type safety, policy enforcement, and end-user customisation."]})]}),c("div",{className:"space-y-4",children:[n("h2",{className:"font-bold text-2xl",children:"Tool categories"}),n("div",{className:"overflow-x-auto rounded-lg border border-border/50",children:c("table",{className:"w-full text-left text-sm",children:[n("thead",{className:"bg-card/50",children:c("tr",{className:"border-border/50 border-b",children:[n("th",{className:"px-4 py-3 font-semibold",children:"Category"}),n("th",{className:"px-4 py-3 font-semibold",children:"Examples"}),n("th",{className:"px-4 py-3 font-semibold",children:"What they do"}),n("th",{className:"px-4 py-3 font-semibold",children:"Limitations"})]})}),c("tbody",{className:"divide-y divide-border/50",children:[c("tr",{children:[n("td",{className:"px-4 py-3 align-top",children:n("strong",{children:"Workflow engines"})}),n("td",{className:"px-4 py-3 align-top",children:"Prefect, Kestra, Temporal, Airflow, Dagster, Hatchet, Windmill"}),n("td",{className:"px-4 py-3 align-top",children:"Orchestrate code or data pipelines; handle retries, scheduling and observability"}),n("td",{className:"px-4 py-3 align-top",children:"Require writing code; no automatic UI generation or policy enforcement."})]}),c("tr",{children:[n("td",{className:"px-4 py-3 align-top",children:n("strong",{children:"Internal-tool builders"})}),n("td",{className:"px-4 py-3 align-top",children:"Retool, Appsmith, ToolJet, Budibase"}),n("td",{className:"px-4 py-3 align-top",children:"Drag-and-drop dashboards and admin panels; connect to databases/APIs"}),n("td",{className:"px-4 py-3 align-top",children:"No typed back-end spec; limited enforcement of policies; custom code glues logic."})]}),c("tr",{children:[n("td",{className:"px-4 py-3 align-top",children:n("strong",{children:"Automation platforms"})}),n("td",{className:"px-4 py-3 align-top",children:"Zapier, Make, n8n, Pipedream"}),n("td",{className:"px-4 py-3 align-top",children:"Connect apps via triggers and actions; visual or low-code interfaces"}),n("td",{className:"px-4 py-3 align-top",children:"Automate tasks but do not generate full apps or enforce per-field policies."})]}),c("tr",{children:[n("td",{className:"px-4 py-3 align-top",children:n("strong",{children:"Enterprise orchestrators"})}),n("td",{className:"px-4 py-3 align-top",children:"Redwood RunMyJobs"}),n("td",{className:"px-4 py-3 align-top",children:"Automate mission-critical workloads with self-service portals and SAP integrations"}),n("td",{className:"px-4 py-3 align-top",children:"Focus on IT workloads; not built for custom app creation or per-user customisation."})]})]})]})}),n("p",{className:"text-muted-foreground",children:"Use the pages below to explore each group in detail and see how ContractSpec compares."})]})]})}import{jsx as o,jsxs as i}from"react/jsx-runtime";function f(){return i("div",{className:"space-y-8",children:[i("div",{className:"space-y-4",children:[o("h1",{className:"font-bold text-4xl",children:"Windmill"}),i("p",{className:"text-muted-foreground",children:["Windmill is an open-source platform that turns"," ",o("strong",{children:"scripts"})," into endpoints, workflows and UIs. It seeks to remove boilerplate by generating interfaces and workflows around existing code"]})]}),i("div",{className:"space-y-4",children:[o("h2",{className:"font-bold text-2xl",children:"Platform features"}),i("ul",{className:"space-y-3 text-muted-foreground",children:[i("li",{children:[o("strong",{children:"Script-driven model."})," Write scripts in TypeScript, Python, Go, PHP, Bash, C#, SQL or Rust; Windmill infers dependencies, creates lockfiles and JSON schemas, then serves minimal UIs automatically"]}),i("li",{children:[o("strong",{children:"Visual flow editor."})," Compose scripts into workflows with retries, error handling, loops, branching, suspending flows and approval steps"]}),i("li",{children:[o("strong",{children:"Low-code UI builder."})," Build dashboards and admin panels using inline scripts and trigger flows from the UI"]}),i("li",{children:[o("strong",{children:"Enterprise readiness."})," Features include RBAC permissions, secret management, OAuth handling, CLI/git sync, scheduling and webhooks"]}),i("li",{children:[o("strong",{children:"Use cases."})," Deploy scripts as webhooks or cron jobs; create \u201Capplicative workflows\u201D combining external APIs; build ETLs and interactive dashboards"]}),i("li",{children:[o("strong",{children:"Open source & self-hosting."})," Windmill emphasises an open-source codebase and self-hosting options"]})]})]}),i("div",{className:"space-y-4",children:[o("h2",{className:"font-bold text-2xl",children:"Comparison with ContractSpec"}),o("div",{className:"overflow-x-auto rounded-lg border border-border/50",children:i("table",{className:"w-full text-left text-sm",children:[o("thead",{className:"bg-card/50",children:i("tr",{className:"border-border/50 border-b",children:[o("th",{className:"px-4 py-3 font-semibold",children:"Feature"}),o("th",{className:"px-4 py-3 font-semibold",children:"Windmill"}),o("th",{className:"px-4 py-3 font-semibold",children:"ContractSpec"})]})}),i("tbody",{className:"divide-y divide-border/50",children:[i("tr",{children:[o("td",{className:"px-4 py-3 align-top",children:o("strong",{children:"Entry model"})}),o("td",{className:"px-4 py-3 align-top",children:"Write scripts; platform auto-generates UI and workflows"}),o("td",{className:"px-4 py-3 align-top",children:"Define typed specs (Capabilities, DataViews, Workflows, Policies); compiler outputs back-end, front-end and forms."})]}),i("tr",{children:[o("td",{className:"px-4 py-3 align-top",children:o("strong",{children:"Language support"})}),o("td",{className:"px-4 py-3 align-top",children:"20+ languages via embedded runtimes"}),o("td",{className:"px-4 py-3 align-top",children:"Uses TypeScript/JavaScript for providers; supports other back-ends through capability providers."})]}),i("tr",{children:[o("td",{className:"px-4 py-3 align-top",children:o("strong",{children:"UI generation"})}),o("td",{className:"px-4 py-3 align-top",children:"Minimal UI forms from script parameters; low-code app builder"}),o("td",{className:"px-4 py-3 align-top",children:"Generates full web and mobile UIs from specs; user layouts can be customised via signed overlays."})]}),i("tr",{children:[o("td",{className:"px-4 py-3 align-top",children:o("strong",{children:"Policy & personalization"})}),o("td",{className:"px-4 py-3 align-top",children:"RBAC and secret management; no per-user overlay concept"}),o("td",{className:"px-4 py-3 align-top",children:"Built-in policy engine enforcing ABAC/PII on every render/mutate; overlays allow safe per-user customisation."})]}),i("tr",{children:[o("td",{className:"px-4 py-3 align-top",children:o("strong",{children:"Open source"})}),o("td",{className:"px-4 py-3 align-top",children:"Fully open source and self-hostable"}),o("td",{className:"px-4 py-3 align-top",children:"Closed-source core (SDK is open); offers hosted and on-prem modes."})]}),i("tr",{children:[o("td",{className:"px-4 py-3 align-top",children:o("strong",{children:"Ideal for"})}),o("td",{className:"px-4 py-3 align-top",children:"Teams wanting to expose scripts as APIs, workflows or dashboards without heavy infrastructure."}),o("td",{className:"px-4 py-3 align-top",children:"Teams needing a spec-driven platform that generates code and UI, enforces policies and lets non-technical users tailor the experience."})]})]})]})}),i("p",{className:"text-muted-foreground",children:["Windmill excels at converting scripts into workflows and admin panels. ContractSpec takes a ",o("strong",{children:"spec-first"})," approach, generating the entire stack and enforcing policies, making it suitable for long-lived applications that must evolve safely."]})]})]})}import{jsx as t,jsxs as d}from"react/jsx-runtime";function b(){return d("div",{className:"space-y-8",children:[d("div",{className:"space-y-4",children:[t("h1",{className:"font-bold text-4xl",children:"Workflow engines"}),t("p",{className:"text-muted-foreground",children:"Workflow engines orchestrate long-running tasks and data pipelines. They provide retries, scheduling and visibility, but most expect developers to write code and do not generate user interfaces. Here\u2019s how the major engines compare to ContractSpec."})]}),d("div",{className:"space-y-4",children:[t("h2",{className:"font-bold text-2xl",children:"Key differences summary"}),t("div",{className:"overflow-x-auto rounded-lg border border-border/50",children:d("table",{className:"w-full text-left text-sm",children:[t("thead",{className:"bg-card/50",children:d("tr",{className:"border-border/50 border-b",children:[t("th",{className:"px-4 py-3 font-semibold",children:"Engine"}),t("th",{className:"px-4 py-3 font-semibold",children:"Core strengths"}),t("th",{className:"px-4 py-3 font-semibold",children:"UI generation?"}),t("th",{className:"px-4 py-3 font-semibold",children:"Policy/PII enforcement?"}),t("th",{className:"px-4 py-3 font-semibold",children:"Self-host?"}),t("th",{className:"px-4 py-3 font-semibold",children:"Primary use"})]})}),d("tbody",{className:"divide-y divide-border/50",children:[d("tr",{children:[t("td",{className:"px-4 py-3 align-top",children:t("strong",{children:"Prefect"})}),t("td",{className:"px-4 py-3 align-top",children:"Python-native; dynamic DAGs adapt to change; annotate code without rewriting; strong observability and audit logs"}),t("td",{className:"px-4 py-3 align-top",children:"No"}),t("td",{className:"px-4 py-3 align-top",children:"No"}),t("td",{className:"px-4 py-3 align-top",children:"Yes"}),t("td",{className:"px-4 py-3 align-top",children:"Data pipelines and dynamic workflows."})]}),d("tr",{children:[t("td",{className:"px-4 py-3 align-top",children:t("strong",{children:"Kestra"})}),t("td",{className:"px-4 py-3 align-top",children:"Declarative YAML; event-driven triggers; mix of code and no-code; write logic in Python/R/Java/Julia/Ruby; deploy anywhere"}),t("td",{className:"px-4 py-3 align-top",children:"No"}),t("td",{className:"px-4 py-3 align-top",children:"No"}),t("td",{className:"px-4 py-3 align-top",children:"Yes"}),t("td",{className:"px-4 py-3 align-top",children:"Data pipelines and hybrid orchestration."})]}),d("tr",{children:[t("td",{className:"px-4 py-3 align-top",children:t("strong",{children:"Temporal"})}),t("td",{className:"px-4 py-3 align-top",children:"Durable execution; workflows never lose state; multi-language SDKs; automatic retries"}),t("td",{className:"px-4 py-3 align-top",children:"No"}),t("td",{className:"px-4 py-3 align-top",children:"No"}),t("td",{className:"px-4 py-3 align-top",children:"Yes"}),t("td",{className:"px-4 py-3 align-top",children:"Durable microservice and business workflows."})]}),d("tr",{children:[t("td",{className:"px-4 py-3 align-top",children:t("strong",{children:"Airflow"})}),t("td",{className:"px-4 py-3 align-top",children:"Open-source; define workflows as Python code; schedule and monitor via UI; extensible via custom operators"}),t("td",{className:"px-4 py-3 align-top",children:"No"}),t("td",{className:"px-4 py-3 align-top",children:"No"}),t("td",{className:"px-4 py-3 align-top",children:"Yes"}),t("td",{className:"px-4 py-3 align-top",children:"Data ETL pipelines."})]}),d("tr",{children:[t("td",{className:"px-4 py-3 align-top",children:t("strong",{children:"Dagster"})}),t("td",{className:"px-4 py-3 align-top",children:"Data-asset model; local testing and reusable components; built-in data quality and catalog; orchestrates AI/data pipelines across multiple tools"}),t("td",{className:"px-4 py-3 align-top",children:"No"}),t("td",{className:"px-4 py-3 align-top",children:"No"}),t("td",{className:"px-4 py-3 align-top",children:"Yes"}),t("td",{className:"px-4 py-3 align-top",children:"Data/AI pipelines with strong observability."})]}),d("tr",{children:[t("td",{className:"px-4 py-3 align-top",children:t("strong",{children:"Hatchet"})}),t("td",{className:"px-4 py-3 align-top",children:"Modern engine focused on performance and durability; tasks and workflows as code; durable functions with guardrails and retries"}),t("td",{className:"px-4 py-3 align-top",children:"No"}),t("td",{className:"px-4 py-3 align-top",children:"No"}),t("td",{className:"px-4 py-3 align-top",children:"Yes"}),t("td",{className:"px-4 py-3 align-top",children:"High-throughput background jobs and microservices."})]}),d("tr",{children:[t("td",{className:"px-4 py-3 align-top",children:t("strong",{children:"Windmill"})}),t("td",{className:"px-4 py-3 align-top",children:"Multi-language scripts; auto-generates UI; integrated flow editor"}),t("td",{className:"px-4 py-3 align-top",children:"Yes (basic)"}),t("td",{className:"px-4 py-3 align-top",children:"RBAC & secrets only"}),t("td",{className:"px-4 py-3 align-top",children:"Yes"}),t("td",{className:"px-4 py-3 align-top",children:"Scripts into workflows and dashboards."})]})]})]})})]}),d("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"Why ContractSpec differs"}),d("ul",{className:"space-y-2 text-muted-foreground",children:[d("li",{children:[t("strong",{children:"Spec-first generation"})," \u2013 Instead of writing code, you define typed specs for capabilities, data views and workflows; the compiler outputs both back-end and front-end."]}),d("li",{children:[t("strong",{children:"Policy engine"})," \u2013 Every render and mutate passes through an ABAC/PII policy decision point."]}),d("li",{children:[t("strong",{children:"Personalisation"})," \u2013 Signed OverlaySpecs allow tenant/user-specific UI changes without touching code."]}),d("li",{children:[t("strong",{children:"Unified runtime"})," \u2013 React/React-Native rendering ensures consistent experiences across web and mobile."]})]}),t("p",{className:"text-muted-foreground",children:"Workflow engines are excellent for orchestrating back-end tasks. ContractSpec builds on this by serving complete applications with runtime policy enforcement and user personalisation via TypeScript specs."})]})]})}export{b as ComparisonWorkflowEnginesPage,f as ComparisonWindmillPage,N as ComparisonOverviewPage,u as ComparisonInternalToolBuildersPage,y as ComparisonEnterprisePlatformsPage,m as ComparisonAutomationPlatformsPage};