@contractspec/bundle.library 3.7.6 → 3.7.7

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 (889) hide show
  1. package/.turbo/turbo-build.log +144 -142
  2. package/AGENTS.md +42 -24
  3. package/README.md +59 -37
  4. package/dist/application/index.d.ts +1 -1
  5. package/dist/application/index.js +842 -840
  6. package/dist/application/mcp/cliMcp.js +30 -30
  7. package/dist/application/mcp/common.d.ts +2 -2
  8. package/dist/application/mcp/common.js +2 -2
  9. package/dist/application/mcp/contractsMcp.d.ts +1 -1
  10. package/dist/application/mcp/contractsMcp.js +163 -163
  11. package/dist/application/mcp/docsMcp.js +31 -31
  12. package/dist/application/mcp/index.d.ts +2 -2
  13. package/dist/application/mcp/index.js +842 -840
  14. package/dist/application/mcp/internalMcp.js +30 -30
  15. package/dist/application/mcp/providerRankingMcp.js +35 -33
  16. package/dist/components/docs/DocsIndexPage.js +859 -212
  17. package/dist/components/docs/advanced/AdvancedMCPPage.js +15 -15
  18. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +4 -4
  19. package/dist/components/docs/advanced/AdvancedRenderersPage.js +7 -7
  20. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +9 -9
  21. package/dist/components/docs/advanced/AdvancedTelemetryPage.js +16 -16
  22. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +6 -6
  23. package/dist/components/docs/advanced/index.d.ts +2 -2
  24. package/dist/components/docs/advanced/index.js +57 -57
  25. package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +10 -10
  26. package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +8 -8
  27. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +14 -14
  28. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +16 -16
  29. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +7 -7
  30. package/dist/components/docs/architecture/ArchitectureOverviewPage.js +90 -411
  31. package/dist/components/docs/architecture/index.d.ts +3 -3
  32. package/dist/components/docs/architecture/index.js +145 -466
  33. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +6 -6
  34. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +7 -7
  35. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +6 -6
  36. package/dist/components/docs/comparison/ComparisonOverviewPage.js +4 -4
  37. package/dist/components/docs/comparison/ComparisonWindmillPage.js +6 -6
  38. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +6 -6
  39. package/dist/components/docs/comparison/index.d.ts +2 -2
  40. package/dist/components/docs/comparison/index.js +35 -35
  41. package/dist/components/docs/docsManifest.d.ts +42 -0
  42. package/dist/components/docs/docsManifest.js +612 -0
  43. package/dist/components/docs/ecosystem/IntegrationsPage.js +5 -5
  44. package/dist/components/docs/ecosystem/PluginsPage.js +7 -7
  45. package/dist/components/docs/ecosystem/RegistryPage.js +4 -4
  46. package/dist/components/docs/ecosystem/TemplatesPage.js +11 -11
  47. package/dist/components/docs/ecosystem/index.d.ts +2 -2
  48. package/dist/components/docs/ecosystem/index.js +27 -27
  49. package/dist/components/docs/examples/DocsExamplesPage.js +4 -4
  50. package/dist/components/docs/examples/index.js +4 -4
  51. package/dist/components/docs/getting-started/CLIPage.js +9 -9
  52. package/dist/components/docs/getting-started/CompatibilityPage.js +12 -12
  53. package/dist/components/docs/getting-started/DataViewTutorialPage.js +7 -7
  54. package/dist/components/docs/getting-started/DeveloperToolsPage.js +10 -10
  55. package/dist/components/docs/getting-started/HelloWorldPage.js +8 -8
  56. package/dist/components/docs/getting-started/InstallationPage.js +10 -10
  57. package/dist/components/docs/getting-started/StartHerePage.js +8 -8
  58. package/dist/components/docs/getting-started/TroubleshootingPage.js +12 -12
  59. package/dist/components/docs/getting-started/VSCodeExtensionPage.js +13 -13
  60. package/dist/components/docs/getting-started/index.d.ts +5 -5
  61. package/dist/components/docs/getting-started/index.js +89 -89
  62. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +13 -13
  63. package/dist/components/docs/guides/GuideContractTypesPage.js +33 -33
  64. package/dist/components/docs/guides/GuideDocsPipelinePage.js +13 -13
  65. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +13 -13
  66. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +35 -35
  67. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +15 -15
  68. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +13 -13
  69. package/dist/components/docs/guides/GuidesIndexPage.js +69 -46
  70. package/dist/components/docs/guides/index.d.ts +4 -4
  71. package/dist/components/docs/guides/index.js +174 -151
  72. package/dist/components/docs/index.d.ts +13 -12
  73. package/dist/components/docs/index.js +14060 -15332
  74. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +4 -4
  75. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +7 -7
  76. package/dist/components/docs/integrations/IntegrationsGithubPage.js +11 -11
  77. package/dist/components/docs/integrations/IntegrationsGmailPage.js +7 -7
  78. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +5 -5
  79. package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +12 -12
  80. package/dist/components/docs/integrations/IntegrationsMistralPage.js +12 -12
  81. package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +11 -11
  82. package/dist/components/docs/integrations/IntegrationsOverviewPage.js +119 -736
  83. package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +12 -12
  84. package/dist/components/docs/integrations/IntegrationsPowensPage.js +24 -24
  85. package/dist/components/docs/integrations/IntegrationsQdrantPage.js +9 -9
  86. package/dist/components/docs/integrations/IntegrationsResendPage.js +7 -7
  87. package/dist/components/docs/integrations/IntegrationsS3Page.js +9 -9
  88. package/dist/components/docs/integrations/IntegrationsSlackPage.js +11 -11
  89. package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +19 -19
  90. package/dist/components/docs/integrations/IntegrationsStripePage.js +25 -25
  91. package/dist/components/docs/integrations/IntegrationsTwilioPage.js +9 -9
  92. package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +12 -12
  93. package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +13 -13
  94. package/dist/components/docs/integrations/index.d.ts +1 -1
  95. package/dist/components/docs/integrations/index.js +614 -1231
  96. package/dist/components/docs/intent/ContractFirstApiPage.js +8 -8
  97. package/dist/components/docs/intent/DeterministicCodegenPage.js +9 -9
  98. package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +13 -13
  99. package/dist/components/docs/intent/OpenapiAlternativePage.js +13 -13
  100. package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +9 -9
  101. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +8 -8
  102. package/dist/components/docs/intent/index.d.ts +3 -3
  103. package/dist/components/docs/intent/index.js +766 -766
  104. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +38 -38
  105. package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +9 -9
  106. package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +91 -439
  107. package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +28 -28
  108. package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +21 -21
  109. package/dist/components/docs/knowledge/index.d.ts +1 -1
  110. package/dist/components/docs/knowledge/index.js +437 -785
  111. package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +16 -16
  112. package/dist/components/docs/libraries/LibrariesAiAgentPage.js +8 -8
  113. package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +6 -6
  114. package/dist/components/docs/libraries/LibrariesContentGenPage.js +6 -6
  115. package/dist/components/docs/libraries/LibrariesContractsPage.js +16 -16
  116. package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +6 -6
  117. package/dist/components/docs/libraries/LibrariesDataBackendPage.js +14 -14
  118. package/dist/components/docs/libraries/LibrariesDataViewsPage.js +7 -7
  119. package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +13 -13
  120. package/dist/components/docs/libraries/LibrariesEvolutionPage.js +7 -7
  121. package/dist/components/docs/libraries/LibrariesGraphQLPage.js +13 -13
  122. package/dist/components/docs/libraries/LibrariesGrowthPage.js +5 -5
  123. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +5 -5
  124. package/dist/components/docs/libraries/LibrariesObservabilityPage.js +7 -7
  125. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +6 -6
  126. package/dist/components/docs/libraries/LibrariesOverviewPage.js +117 -430
  127. package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +6 -6
  128. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +6 -6
  129. package/dist/components/docs/libraries/LibrariesResiliencePage.js +6 -6
  130. package/dist/components/docs/libraries/LibrariesRuntimePage.js +13 -13
  131. package/dist/components/docs/libraries/LibrariesSLOPage.js +6 -6
  132. package/dist/components/docs/libraries/LibrariesSchemaPage.js +16 -16
  133. package/dist/components/docs/libraries/LibrariesSupportBotPage.js +7 -7
  134. package/dist/components/docs/libraries/LibrariesTestingPage.js +7 -7
  135. package/dist/components/docs/libraries/LibrariesUIKitPage.js +10 -10
  136. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +5 -5
  137. package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +8 -8
  138. package/dist/components/docs/libraries/index.d.ts +4 -4
  139. package/dist/components/docs/libraries/index.js +1308 -1621
  140. package/dist/components/docs/manifesto/ManifestoPage.js +33 -138
  141. package/dist/components/docs/ops/AutoEvolutionOpsPage.js +9 -9
  142. package/dist/components/docs/ops/DistributedTracingOpsPage.js +5 -5
  143. package/dist/components/docs/ops/index.js +14 -14
  144. package/dist/components/docs/reference/DocsMarkdownContent.js +1 -1
  145. package/dist/components/docs/reference/DocsReferenceContent.js +2 -2
  146. package/dist/components/docs/reference/DocsReferenceIndexClient.js +8 -8
  147. package/dist/components/docs/reference/DocsReferenceIndexPage.js +8 -8
  148. package/dist/components/docs/reference/DocsReferencePage.js +2 -2
  149. package/dist/components/docs/reference/index.js +10 -10
  150. package/dist/components/docs/safety/SafetyAuditingPage.js +16 -16
  151. package/dist/components/docs/safety/SafetyMigrationsPage.js +15 -15
  152. package/dist/components/docs/safety/SafetyOverviewPage.js +69 -206
  153. package/dist/components/docs/safety/SafetyPDPPage.js +12 -12
  154. package/dist/components/docs/safety/SafetySecurityTrustPage.js +11 -11
  155. package/dist/components/docs/safety/SafetySigningPage.js +7 -7
  156. package/dist/components/docs/safety/SafetyTenantIsolationPage.js +6 -6
  157. package/dist/components/docs/safety/index.d.ts +3 -3
  158. package/dist/components/docs/safety/index.js +616 -753
  159. package/dist/components/docs/shared/StudioPrompt.js +5 -5
  160. package/dist/components/docs/specs/SpecsCapabilitiesPage.js +12 -12
  161. package/dist/components/docs/specs/SpecsDataViewsPage.js +14 -14
  162. package/dist/components/docs/specs/SpecsOverlaysPage.js +14 -14
  163. package/dist/components/docs/specs/SpecsOverviewPage.js +135 -297
  164. package/dist/components/docs/specs/SpecsPolicyPage.js +29 -29
  165. package/dist/components/docs/specs/SpecsWorkflowsPage.js +18 -18
  166. package/dist/components/docs/specs/index.d.ts +3 -3
  167. package/dist/components/docs/specs/index.js +814 -976
  168. package/dist/components/docs/studio/StudioBYOKPage.js +1 -1
  169. package/dist/components/docs/studio/StudioDeploymentsPage.js +1 -1
  170. package/dist/components/docs/studio/StudioGettingStartedPage.js +1 -1
  171. package/dist/components/docs/studio/StudioIntegrationsPage.js +1 -1
  172. package/dist/components/docs/studio/StudioOverviewPage.js +109 -56
  173. package/dist/components/docs/studio/StudioVisualBuilderPage.js +1 -1
  174. package/dist/components/docs/studio/index.d.ts +4 -4
  175. package/dist/components/docs/studio/index.js +170 -117
  176. package/dist/components/integrations/index.js +25 -25
  177. package/dist/components/integrations/molecules/IntegrationCard.js +5 -5
  178. package/dist/components/integrations/organisms/IntegrationMarketplace.js +12 -12
  179. package/dist/components/integrations/organisms/IntegrationSettings.js +7 -7
  180. package/dist/components/integrations/organisms/KnowledgeSourceList.js +6 -6
  181. package/dist/components/legal/PrivacyTemplate.js +67 -67
  182. package/dist/components/legal/TermsTemplate.js +54 -54
  183. package/dist/components/legal/index.js +121 -121
  184. package/dist/components/shared/FeatureGateNotice.js +4 -4
  185. package/dist/components/shared/index.js +4 -4
  186. package/dist/components/shell/WorkspaceHeader.js +4 -4
  187. package/dist/components/shell/WorkspaceProjectShellLayout.d.ts +3 -3
  188. package/dist/components/shell/WorkspaceProjectShellLayout.js +10 -10
  189. package/dist/components/shell/WorkspaceShellRenderer.d.ts +4 -4
  190. package/dist/components/shell/WorkspaceShellRenderer.js +8 -8
  191. package/dist/components/shell/WorkspaceSidebar.js +2 -2
  192. package/dist/components/shell/index.d.ts +1 -1
  193. package/dist/components/shell/index.js +12 -12
  194. package/dist/components/templates/engine/index.d.ts +1 -1
  195. package/dist/components/templates/index.d.ts +1 -1
  196. package/dist/components/templates/index.js +835 -835
  197. package/dist/components/templates/messaging/ConversationList.js +11 -11
  198. package/dist/components/templates/messaging/MessageComposer.js +11 -11
  199. package/dist/components/templates/messaging/MessageThread.js +6 -6
  200. package/dist/components/templates/messaging/MessagingWorkspace.js +23 -23
  201. package/dist/components/templates/messaging/index.d.ts +1 -1
  202. package/dist/components/templates/messaging/index.js +23 -23
  203. package/dist/components/templates/recipes/LanguageSwitcher.js +1 -1
  204. package/dist/components/templates/recipes/RecipeCard.js +5 -5
  205. package/dist/components/templates/recipes/RecipeDetail.js +8 -8
  206. package/dist/components/templates/recipes/RecipeList.js +17 -17
  207. package/dist/components/templates/recipes/index.d.ts +2 -2
  208. package/dist/components/templates/recipes/index.js +17 -17
  209. package/dist/components/templates/todos/FilterBar.d.ts +1 -1
  210. package/dist/components/templates/todos/FilterBar.js +9 -9
  211. package/dist/components/templates/todos/TaskForm.js +14 -14
  212. package/dist/components/templates/todos/TaskItem.js +4 -4
  213. package/dist/components/templates/todos/TaskList.js +30 -30
  214. package/dist/components/templates/todos/index.d.ts +2 -2
  215. package/dist/components/templates/todos/index.js +30 -30
  216. package/dist/config/index.d.ts +2 -2
  217. package/dist/features/contracts-registry.d.ts +3 -3
  218. package/dist/features/contracts-registry.js +15 -15
  219. package/dist/features/docs/docs.contracts.d.ts +1 -1
  220. package/dist/features/docs/docs.contracts.js +2 -2
  221. package/dist/features/docs/index.d.ts +1 -1
  222. package/dist/features/docs/index.js +2 -2
  223. package/dist/features/index.d.ts +4 -4
  224. package/dist/features/index.js +18 -18
  225. package/dist/features/registry.js +1 -1
  226. package/dist/index.d.ts +2 -2
  227. package/dist/index.js +14982 -16254
  228. package/dist/libs/email/client.js +1 -1
  229. package/dist/libs/email/contact.js +1 -1
  230. package/dist/libs/email/newsletter.js +1 -1
  231. package/dist/libs/email/waitlist-application.js +1 -1
  232. package/dist/libs/email/waitlist.js +1 -1
  233. package/dist/libs/email.d.ts +1 -1
  234. package/dist/libs/email.js +1 -1
  235. package/dist/node/application/index.js +842 -840
  236. package/dist/node/application/mcp/cliMcp.js +30 -30
  237. package/dist/node/application/mcp/common.js +2 -2
  238. package/dist/node/application/mcp/contractsMcp.js +163 -163
  239. package/dist/node/application/mcp/docsMcp.js +31 -31
  240. package/dist/node/application/mcp/index.js +842 -840
  241. package/dist/node/application/mcp/internalMcp.js +30 -30
  242. package/dist/node/application/mcp/providerRankingMcp.js +35 -33
  243. package/dist/node/components/docs/DocsIndexPage.js +859 -212
  244. package/dist/node/components/docs/advanced/AdvancedMCPPage.js +15 -15
  245. package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +4 -4
  246. package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +7 -7
  247. package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +9 -9
  248. package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +16 -16
  249. package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +6 -6
  250. package/dist/node/components/docs/advanced/index.js +57 -57
  251. package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +10 -10
  252. package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +8 -8
  253. package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +14 -14
  254. package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +16 -16
  255. package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +7 -7
  256. package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +90 -411
  257. package/dist/node/components/docs/architecture/index.js +145 -466
  258. package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +6 -6
  259. package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +7 -7
  260. package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +6 -6
  261. package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +4 -4
  262. package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +6 -6
  263. package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +6 -6
  264. package/dist/node/components/docs/comparison/index.js +35 -35
  265. package/dist/node/components/docs/docsManifest.js +611 -0
  266. package/dist/node/components/docs/ecosystem/IntegrationsPage.js +5 -5
  267. package/dist/node/components/docs/ecosystem/PluginsPage.js +7 -7
  268. package/dist/node/components/docs/ecosystem/RegistryPage.js +4 -4
  269. package/dist/node/components/docs/ecosystem/TemplatesPage.js +11 -11
  270. package/dist/node/components/docs/ecosystem/index.js +27 -27
  271. package/dist/node/components/docs/examples/DocsExamplesPage.js +4 -4
  272. package/dist/node/components/docs/examples/index.js +4 -4
  273. package/dist/node/components/docs/getting-started/CLIPage.js +9 -9
  274. package/dist/node/components/docs/getting-started/CompatibilityPage.js +12 -12
  275. package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +7 -7
  276. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +10 -10
  277. package/dist/node/components/docs/getting-started/HelloWorldPage.js +8 -8
  278. package/dist/node/components/docs/getting-started/InstallationPage.js +10 -10
  279. package/dist/node/components/docs/getting-started/StartHerePage.js +8 -8
  280. package/dist/node/components/docs/getting-started/TroubleshootingPage.js +12 -12
  281. package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +13 -13
  282. package/dist/node/components/docs/getting-started/index.js +89 -89
  283. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +13 -13
  284. package/dist/node/components/docs/guides/GuideContractTypesPage.js +33 -33
  285. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +13 -13
  286. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +13 -13
  287. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +35 -35
  288. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +15 -15
  289. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +13 -13
  290. package/dist/node/components/docs/guides/GuidesIndexPage.js +69 -46
  291. package/dist/node/components/docs/guides/index.js +174 -151
  292. package/dist/node/components/docs/index.js +14060 -15332
  293. package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +4 -4
  294. package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +7 -7
  295. package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +11 -11
  296. package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +7 -7
  297. package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +5 -5
  298. package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +12 -12
  299. package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +12 -12
  300. package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +11 -11
  301. package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +119 -736
  302. package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +12 -12
  303. package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +24 -24
  304. package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +9 -9
  305. package/dist/node/components/docs/integrations/IntegrationsResendPage.js +7 -7
  306. package/dist/node/components/docs/integrations/IntegrationsS3Page.js +9 -9
  307. package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +11 -11
  308. package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +19 -19
  309. package/dist/node/components/docs/integrations/IntegrationsStripePage.js +25 -25
  310. package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +9 -9
  311. package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +12 -12
  312. package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +13 -13
  313. package/dist/node/components/docs/integrations/index.js +614 -1231
  314. package/dist/node/components/docs/intent/ContractFirstApiPage.js +8 -8
  315. package/dist/node/components/docs/intent/DeterministicCodegenPage.js +9 -9
  316. package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +13 -13
  317. package/dist/node/components/docs/intent/OpenapiAlternativePage.js +13 -13
  318. package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +9 -9
  319. package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +8 -8
  320. package/dist/node/components/docs/intent/index.js +766 -766
  321. package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +38 -38
  322. package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +9 -9
  323. package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +91 -439
  324. package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +28 -28
  325. package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +21 -21
  326. package/dist/node/components/docs/knowledge/index.js +437 -785
  327. package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +16 -16
  328. package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +8 -8
  329. package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +6 -6
  330. package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +6 -6
  331. package/dist/node/components/docs/libraries/LibrariesContractsPage.js +16 -16
  332. package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +6 -6
  333. package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +14 -14
  334. package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +7 -7
  335. package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +13 -13
  336. package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +7 -7
  337. package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +13 -13
  338. package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +5 -5
  339. package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +5 -5
  340. package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +7 -7
  341. package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +6 -6
  342. package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +117 -430
  343. package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +6 -6
  344. package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +6 -6
  345. package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +6 -6
  346. package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +13 -13
  347. package/dist/node/components/docs/libraries/LibrariesSLOPage.js +6 -6
  348. package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +16 -16
  349. package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +7 -7
  350. package/dist/node/components/docs/libraries/LibrariesTestingPage.js +7 -7
  351. package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +10 -10
  352. package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +5 -5
  353. package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +8 -8
  354. package/dist/node/components/docs/libraries/index.js +1308 -1621
  355. package/dist/node/components/docs/manifesto/ManifestoPage.js +33 -138
  356. package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +9 -9
  357. package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +5 -5
  358. package/dist/node/components/docs/ops/index.js +14 -14
  359. package/dist/node/components/docs/reference/DocsMarkdownContent.js +1 -1
  360. package/dist/node/components/docs/reference/DocsReferenceContent.js +2 -2
  361. package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +8 -8
  362. package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +8 -8
  363. package/dist/node/components/docs/reference/DocsReferencePage.js +2 -2
  364. package/dist/node/components/docs/reference/index.js +10 -10
  365. package/dist/node/components/docs/safety/SafetyAuditingPage.js +16 -16
  366. package/dist/node/components/docs/safety/SafetyMigrationsPage.js +15 -15
  367. package/dist/node/components/docs/safety/SafetyOverviewPage.js +69 -206
  368. package/dist/node/components/docs/safety/SafetyPDPPage.js +12 -12
  369. package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +11 -11
  370. package/dist/node/components/docs/safety/SafetySigningPage.js +7 -7
  371. package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +6 -6
  372. package/dist/node/components/docs/safety/index.js +616 -753
  373. package/dist/node/components/docs/shared/StudioPrompt.js +5 -5
  374. package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +12 -12
  375. package/dist/node/components/docs/specs/SpecsDataViewsPage.js +14 -14
  376. package/dist/node/components/docs/specs/SpecsOverlaysPage.js +14 -14
  377. package/dist/node/components/docs/specs/SpecsOverviewPage.js +135 -297
  378. package/dist/node/components/docs/specs/SpecsPolicyPage.js +29 -29
  379. package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +18 -18
  380. package/dist/node/components/docs/specs/index.js +814 -976
  381. package/dist/node/components/docs/studio/StudioBYOKPage.js +1 -1
  382. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +1 -1
  383. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +1 -1
  384. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +1 -1
  385. package/dist/node/components/docs/studio/StudioOverviewPage.js +109 -56
  386. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +1 -1
  387. package/dist/node/components/docs/studio/index.js +170 -117
  388. package/dist/node/components/integrations/index.js +25 -25
  389. package/dist/node/components/integrations/molecules/IntegrationCard.js +5 -5
  390. package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +12 -12
  391. package/dist/node/components/integrations/organisms/IntegrationSettings.js +7 -7
  392. package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +6 -6
  393. package/dist/node/components/legal/PrivacyTemplate.js +67 -67
  394. package/dist/node/components/legal/TermsTemplate.js +54 -54
  395. package/dist/node/components/legal/index.js +121 -121
  396. package/dist/node/components/shared/FeatureGateNotice.js +4 -4
  397. package/dist/node/components/shared/index.js +4 -4
  398. package/dist/node/components/shell/WorkspaceHeader.js +4 -4
  399. package/dist/node/components/shell/WorkspaceProjectShellLayout.js +10 -10
  400. package/dist/node/components/shell/WorkspaceShellRenderer.js +8 -8
  401. package/dist/node/components/shell/WorkspaceSidebar.js +2 -2
  402. package/dist/node/components/shell/index.js +12 -12
  403. package/dist/node/components/templates/index.js +835 -835
  404. package/dist/node/components/templates/messaging/ConversationList.js +11 -11
  405. package/dist/node/components/templates/messaging/MessageComposer.js +11 -11
  406. package/dist/node/components/templates/messaging/MessageThread.js +6 -6
  407. package/dist/node/components/templates/messaging/MessagingWorkspace.js +23 -23
  408. package/dist/node/components/templates/messaging/index.js +23 -23
  409. package/dist/node/components/templates/recipes/LanguageSwitcher.js +1 -1
  410. package/dist/node/components/templates/recipes/RecipeCard.js +5 -5
  411. package/dist/node/components/templates/recipes/RecipeDetail.js +8 -8
  412. package/dist/node/components/templates/recipes/RecipeList.js +17 -17
  413. package/dist/node/components/templates/recipes/index.js +17 -17
  414. package/dist/node/components/templates/todos/FilterBar.js +9 -9
  415. package/dist/node/components/templates/todos/TaskForm.js +14 -14
  416. package/dist/node/components/templates/todos/TaskItem.js +4 -4
  417. package/dist/node/components/templates/todos/TaskList.js +30 -30
  418. package/dist/node/components/templates/todos/index.js +30 -30
  419. package/dist/node/features/contracts-registry.js +15 -15
  420. package/dist/node/features/docs/docs.contracts.js +2 -2
  421. package/dist/node/features/docs/index.js +2 -2
  422. package/dist/node/features/index.js +18 -18
  423. package/dist/node/features/registry.js +1 -1
  424. package/dist/node/index.js +14982 -16254
  425. package/dist/node/libs/email/client.js +1 -1
  426. package/dist/node/libs/email/contact.js +1 -1
  427. package/dist/node/libs/email/newsletter.js +1 -1
  428. package/dist/node/libs/email/waitlist-application.js +1 -1
  429. package/dist/node/libs/email/waitlist.js +1 -1
  430. package/dist/node/libs/email.js +1 -1
  431. package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +7 -7
  432. package/dist/node/presentation/features/atoms/FeatureIcon/index.js +7 -7
  433. package/dist/node/presentation/features/atoms/index.js +7 -7
  434. package/dist/node/presentation/features/hooks/index.js +56 -56
  435. package/dist/node/presentation/features/hooks/useContractsRegistry.js +18 -18
  436. package/dist/node/presentation/features/hooks/useFeatureFilters.js +1 -1
  437. package/dist/node/presentation/features/hooks/useFeatureRegistry.js +1 -1
  438. package/dist/node/presentation/features/hooks/useRelatedDocs.js +1 -1
  439. package/dist/node/presentation/features/index.js +1364 -1364
  440. package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +15 -15
  441. package/dist/node/presentation/features/molecules/FeatureCard/index.js +15 -15
  442. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +7 -7
  443. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +7 -7
  444. package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -1
  445. package/dist/node/presentation/features/molecules/FeatureFilters/index.js +1 -1
  446. package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +5 -5
  447. package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +5 -5
  448. package/dist/node/presentation/features/molecules/index.js +77 -77
  449. package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +18 -18
  450. package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +121 -121
  451. package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +121 -121
  452. package/dist/node/presentation/features/organisms/FeatureEventsList.js +18 -18
  453. package/dist/node/presentation/features/organisms/FeatureFormsList.js +18 -18
  454. package/dist/node/presentation/features/organisms/FeatureOperationsList.js +15 -15
  455. package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +18 -18
  456. package/dist/node/presentation/features/organisms/index.js +401 -401
  457. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +13 -13
  458. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +13 -13
  459. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +20 -20
  460. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +20 -20
  461. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +12 -12
  462. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +12 -12
  463. package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +18 -18
  464. package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +18 -18
  465. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +13 -13
  466. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +13 -13
  467. package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +20 -20
  468. package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +20 -20
  469. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +8 -8
  470. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +8 -8
  471. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +15 -15
  472. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +15 -15
  473. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +2 -2
  474. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +2 -2
  475. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +12 -12
  476. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +12 -12
  477. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +18 -18
  478. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +18 -18
  479. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +7 -7
  480. package/dist/presentation/features/atoms/FeatureIcon/index.d.ts +1 -1
  481. package/dist/presentation/features/atoms/FeatureIcon/index.js +7 -7
  482. package/dist/presentation/features/atoms/index.js +7 -7
  483. package/dist/presentation/features/hooks/index.d.ts +3 -3
  484. package/dist/presentation/features/hooks/index.js +56 -56
  485. package/dist/presentation/features/hooks/useContractsRegistry.js +18 -18
  486. package/dist/presentation/features/hooks/useFeatureFilters.js +1 -1
  487. package/dist/presentation/features/hooks/useFeatureRegistry.js +1 -1
  488. package/dist/presentation/features/hooks/useRelatedDocs.js +1 -1
  489. package/dist/presentation/features/index.d.ts +14 -14
  490. package/dist/presentation/features/index.js +1364 -1364
  491. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +15 -15
  492. package/dist/presentation/features/molecules/FeatureCard/index.js +15 -15
  493. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +7 -7
  494. package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +7 -7
  495. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -1
  496. package/dist/presentation/features/molecules/FeatureFilters/index.js +1 -1
  497. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +5 -5
  498. package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +5 -5
  499. package/dist/presentation/features/molecules/index.d.ts +1 -1
  500. package/dist/presentation/features/molecules/index.js +77 -77
  501. package/dist/presentation/features/organisms/FeatureDataViewsList.js +18 -18
  502. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +121 -121
  503. package/dist/presentation/features/organisms/FeatureDiscovery/index.d.ts +1 -1
  504. package/dist/presentation/features/organisms/FeatureDiscovery/index.js +121 -121
  505. package/dist/presentation/features/organisms/FeatureEventsList.js +18 -18
  506. package/dist/presentation/features/organisms/FeatureFormsList.js +18 -18
  507. package/dist/presentation/features/organisms/FeatureOperationsList.js +15 -15
  508. package/dist/presentation/features/organisms/FeaturePresentationsList.js +18 -18
  509. package/dist/presentation/features/organisms/index.d.ts +4 -4
  510. package/dist/presentation/features/organisms/index.js +401 -401
  511. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +13 -13
  512. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +13 -13
  513. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/types.d.ts +1 -1
  514. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +20 -20
  515. package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +20 -20
  516. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +12 -12
  517. package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +12 -12
  518. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +18 -18
  519. package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +18 -18
  520. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +13 -13
  521. package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +13 -13
  522. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +20 -20
  523. package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +20 -20
  524. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +8 -8
  525. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +8 -8
  526. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +15 -15
  527. package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +15 -15
  528. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +2 -2
  529. package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +2 -2
  530. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +12 -12
  531. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +12 -12
  532. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +18 -18
  533. package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +18 -18
  534. package/package.json +38 -24
  535. package/src/__tests__/env-setup.ts +1 -1
  536. package/src/__tests__/mocks/prisma.ts +78 -78
  537. package/src/__tests__/setup.ts +2 -2
  538. package/src/application/context-storage/index.ts +42 -42
  539. package/src/application/index.ts +1 -1
  540. package/src/application/mcp/cliMcp.ts +221 -221
  541. package/src/application/mcp/common.ts +210 -210
  542. package/src/application/mcp/contractsMcp.ts +15 -15
  543. package/src/application/mcp/contractsMcpResources.ts +119 -119
  544. package/src/application/mcp/contractsMcpTools.ts +218 -218
  545. package/src/application/mcp/contractsMcpTypes.ts +35 -35
  546. package/src/application/mcp/docsMcp.ts +173 -173
  547. package/src/application/mcp/index.ts +2 -2
  548. package/src/application/mcp/internalMcp.ts +204 -204
  549. package/src/application/mcp/providerRankingMcp.ts +346 -344
  550. package/src/bundles/LibraryBundle.ts +136 -136
  551. package/src/components/docs/DocsIndexPage.tsx +189 -241
  552. package/src/components/docs/advanced/AdvancedMCPPage.tsx +168 -168
  553. package/src/components/docs/advanced/AdvancedOverlayEditorPage.tsx +52 -52
  554. package/src/components/docs/advanced/AdvancedRenderersPage.tsx +53 -53
  555. package/src/components/docs/advanced/AdvancedSpecExperimentsPage.tsx +48 -48
  556. package/src/components/docs/advanced/AdvancedTelemetryPage.tsx +205 -205
  557. package/src/components/docs/advanced/AdvancedWorkflowMonitoringPage.tsx +42 -42
  558. package/src/components/docs/advanced/index.ts +2 -2
  559. package/src/components/docs/architecture/ArchitectureAppConfigPage.tsx +127 -127
  560. package/src/components/docs/architecture/ArchitectureControlPlanePage.tsx +79 -79
  561. package/src/components/docs/architecture/ArchitectureIntegrationBindingPage.tsx +147 -147
  562. package/src/components/docs/architecture/ArchitectureKnowledgeBindingPage.tsx +193 -193
  563. package/src/components/docs/architecture/ArchitectureMultiTenancyPage.tsx +73 -73
  564. package/src/components/docs/architecture/ArchitectureOverviewPage.tsx +98 -273
  565. package/src/components/docs/architecture/index.ts +3 -3
  566. package/src/components/docs/comparison/ComparisonAutomationPlatformsPage.tsx +137 -137
  567. package/src/components/docs/comparison/ComparisonEnterprisePlatformsPage.tsx +138 -138
  568. package/src/components/docs/comparison/ComparisonInternalToolBuildersPage.tsx +147 -147
  569. package/src/components/docs/comparison/ComparisonOverviewPage.tsx +106 -106
  570. package/src/components/docs/comparison/ComparisonWindmillPage.tsx +143 -143
  571. package/src/components/docs/comparison/ComparisonWorkflowEnginesPage.tsx +168 -168
  572. package/src/components/docs/comparison/index.ts +2 -2
  573. package/src/components/docs/docsManifest.ts +720 -0
  574. package/src/components/docs/ecosystem/IntegrationsPage.tsx +45 -45
  575. package/src/components/docs/ecosystem/PluginsPage.tsx +77 -77
  576. package/src/components/docs/ecosystem/RegistryPage.tsx +48 -48
  577. package/src/components/docs/ecosystem/TemplatesPage.tsx +52 -52
  578. package/src/components/docs/ecosystem/ecosystem.docblocks.ts +42 -42
  579. package/src/components/docs/ecosystem/index.ts +2 -2
  580. package/src/components/docs/examples/DocsExamplesPage.tsx +67 -66
  581. package/src/components/docs/generated/docs-index._common.json +1757 -1757
  582. package/src/components/docs/generated/docs-index.agent-console.json +376 -376
  583. package/src/components/docs/generated/docs-index.ai-chat-assistant.json +8 -8
  584. package/src/components/docs/generated/docs-index.ai-chat.json +104 -104
  585. package/src/components/docs/generated/docs-index.ai-support-bot.json +8 -8
  586. package/src/components/docs/generated/docs-index.analytics-dashboard.json +168 -168
  587. package/src/components/docs/generated/docs-index.app-config.json +136 -136
  588. package/src/components/docs/generated/docs-index.audit-trail.json +48 -48
  589. package/src/components/docs/generated/docs-index.calendar-google.json +8 -8
  590. package/src/components/docs/generated/docs-index.content-generation.json +8 -8
  591. package/src/components/docs/generated/docs-index.crm-pipeline.json +160 -160
  592. package/src/components/docs/generated/docs-index.email-gmail.json +8 -8
  593. package/src/components/docs/generated/docs-index.feature-flags.json +216 -216
  594. package/src/components/docs/generated/docs-index.files.json +176 -176
  595. package/src/components/docs/generated/docs-index.generated.ts +19 -19
  596. package/src/components/docs/generated/docs-index.health.json +96 -96
  597. package/src/components/docs/generated/docs-index.identity-rbac.json +312 -312
  598. package/src/components/docs/generated/docs-index.in-app-docs.json +8 -8
  599. package/src/components/docs/generated/docs-index.integration-hub.json +264 -264
  600. package/src/components/docs/generated/docs-index.integration-posthog.json +8 -8
  601. package/src/components/docs/generated/docs-index.integration-stripe.json +8 -8
  602. package/src/components/docs/generated/docs-index.integration-supabase.json +8 -8
  603. package/src/components/docs/generated/docs-index.jobs.json +136 -136
  604. package/src/components/docs/generated/docs-index.kb-update-pipeline.json +128 -128
  605. package/src/components/docs/generated/docs-index.knowledge-canon.json +8 -8
  606. package/src/components/docs/generated/docs-index.learning-journey-ambient-coach.json +8 -8
  607. package/src/components/docs/generated/docs-index.learning-journey-crm-onboarding.json +48 -48
  608. package/src/components/docs/generated/docs-index.learning-journey-duo-drills.json +8 -8
  609. package/src/components/docs/generated/docs-index.learning-journey-platform-tour.json +48 -48
  610. package/src/components/docs/generated/docs-index.learning-journey-quest-challenges.json +8 -8
  611. package/src/components/docs/generated/docs-index.learning-journey-registry.json +32 -32
  612. package/src/components/docs/generated/docs-index.learning-journey-studio-onboarding.json +48 -48
  613. package/src/components/docs/generated/docs-index.learning-journey-ui-coaching.json +8 -8
  614. package/src/components/docs/generated/docs-index.learning-journey-ui-gamified.json +8 -8
  615. package/src/components/docs/generated/docs-index.learning-journey-ui-onboarding.json +8 -8
  616. package/src/components/docs/generated/docs-index.learning-journey-ui-shared.json +8 -8
  617. package/src/components/docs/generated/docs-index.learning-journey.json +216 -216
  618. package/src/components/docs/generated/docs-index.learning-patterns.json +8 -8
  619. package/src/components/docs/generated/docs-index.lifecycle-cli.json +8 -8
  620. package/src/components/docs/generated/docs-index.lifecycle-dashboard.json +8 -8
  621. package/src/components/docs/generated/docs-index.locale-jurisdiction-gate.json +48 -48
  622. package/src/components/docs/generated/docs-index.manifest.json +376 -376
  623. package/src/components/docs/generated/docs-index.marketplace.json +336 -336
  624. package/src/components/docs/generated/docs-index.meeting-recorder-providers.json +8 -8
  625. package/src/components/docs/generated/docs-index.meeting-recorder.json +48 -48
  626. package/src/components/docs/generated/docs-index.metrics.json +200 -200
  627. package/src/components/docs/generated/docs-index.minimal.json +16 -16
  628. package/src/components/docs/generated/docs-index.notifications.json +64 -64
  629. package/src/components/docs/generated/docs-index.openbanking-powens.json +8 -8
  630. package/src/components/docs/generated/docs-index.openbanking.json +64 -64
  631. package/src/components/docs/generated/docs-index.opencode-cli.json +16 -16
  632. package/src/components/docs/generated/docs-index.personalization.json +8 -8
  633. package/src/components/docs/generated/docs-index.platform-acp.json +72 -72
  634. package/src/components/docs/generated/docs-index.platform-agent.json +96 -96
  635. package/src/components/docs/generated/docs-index.platform-context.json +56 -56
  636. package/src/components/docs/generated/docs-index.platform-database.json +48 -48
  637. package/src/components/docs/generated/docs-index.platform-docs.json +88 -88
  638. package/src/components/docs/generated/docs-index.platform-integrations.json +320 -320
  639. package/src/components/docs/generated/docs-index.platform-knowledge.json +56 -56
  640. package/src/components/docs/generated/docs-index.platform-provider-ranking.json +96 -96
  641. package/src/components/docs/generated/docs-index.pocket-family-office.json +120 -120
  642. package/src/components/docs/generated/docs-index.policy-safe-knowledge-assistant.json +8 -8
  643. package/src/components/docs/generated/docs-index.product-intent.json +8 -8
  644. package/src/components/docs/generated/docs-index.project-management-sync.json +8 -8
  645. package/src/components/docs/generated/docs-index.saas-boilerplate.json +208 -208
  646. package/src/components/docs/generated/docs-index.service-business-os.json +192 -192
  647. package/src/components/docs/generated/docs-index.team-hub.json +184 -184
  648. package/src/components/docs/generated/docs-index.unknown.json +512 -512
  649. package/src/components/docs/generated/docs-index.versioned-knowledge-base.json +80 -80
  650. package/src/components/docs/generated/docs-index.video-api-showcase.json +32 -32
  651. package/src/components/docs/generated/docs-index.video-docs-terminal.json +8 -8
  652. package/src/components/docs/generated/docs-index.video-marketing-clip.json +8 -8
  653. package/src/components/docs/generated/docs-index.voice-providers.json +8 -8
  654. package/src/components/docs/generated/docs-index.wealth-snapshot.json +152 -152
  655. package/src/components/docs/generated/docs-index.workflow-system.json +432 -432
  656. package/src/components/docs/generated/docs-index.workspace-cli.json +8 -8
  657. package/src/components/docs/generated/index.ts +6 -6
  658. package/src/components/docs/generated/loader.ts +49 -49
  659. package/src/components/docs/getting-started/CLIPage.tsx +157 -157
  660. package/src/components/docs/getting-started/CompatibilityPage.tsx +69 -69
  661. package/src/components/docs/getting-started/DataViewTutorialPage.tsx +63 -63
  662. package/src/components/docs/getting-started/DeveloperToolsPage.tsx +141 -140
  663. package/src/components/docs/getting-started/HelloWorldPage.tsx +88 -88
  664. package/src/components/docs/getting-started/InstallationPage.tsx +78 -78
  665. package/src/components/docs/getting-started/StartHerePage.tsx +64 -64
  666. package/src/components/docs/getting-started/TroubleshootingPage.tsx +68 -68
  667. package/src/components/docs/getting-started/VSCodeExtensionPage.tsx +233 -233
  668. package/src/components/docs/getting-started/getting-started.docblocks.ts +30 -30
  669. package/src/components/docs/getting-started/index.ts +6 -5
  670. package/src/components/docs/guides/GuideCIDiffGatingPage.tsx +88 -88
  671. package/src/components/docs/guides/GuideContractTypesPage.tsx +266 -266
  672. package/src/components/docs/guides/GuideDocsPipelinePage.tsx +78 -78
  673. package/src/components/docs/guides/GuideGenerateDocsClientsSchemasPage.tsx +89 -89
  674. package/src/components/docs/guides/GuideImportExistingCodebasesPage.tsx +360 -360
  675. package/src/components/docs/guides/GuideNextjsOneEndpointPage.tsx +117 -117
  676. package/src/components/docs/guides/GuideSpecValidationTypingPage.tsx +82 -82
  677. package/src/components/docs/guides/GuidesIndexPage.tsx +109 -99
  678. package/src/components/docs/guides/guides.docblocks.ts +60 -60
  679. package/src/components/docs/guides/index.ts +4 -4
  680. package/src/components/docs/index.ts +26 -40
  681. package/src/components/docs/integrations/IntegrationsCircuitBreakersPage.tsx +22 -22
  682. package/src/components/docs/integrations/IntegrationsElevenLabsPage.tsx +41 -41
  683. package/src/components/docs/integrations/IntegrationsGithubPage.tsx +66 -66
  684. package/src/components/docs/integrations/IntegrationsGmailPage.tsx +44 -44
  685. package/src/components/docs/integrations/IntegrationsGoogleCalendarPage.tsx +31 -31
  686. package/src/components/docs/integrations/IntegrationsHealthRoutingPage.tsx +80 -80
  687. package/src/components/docs/integrations/IntegrationsMistralPage.tsx +65 -65
  688. package/src/components/docs/integrations/IntegrationsOpenAIPage.tsx +54 -54
  689. package/src/components/docs/integrations/IntegrationsOverviewPage.tsx +124 -529
  690. package/src/components/docs/integrations/IntegrationsPostmarkPage.tsx +97 -97
  691. package/src/components/docs/integrations/IntegrationsPowensPage.tsx +165 -165
  692. package/src/components/docs/integrations/IntegrationsQdrantPage.tsx +44 -44
  693. package/src/components/docs/integrations/IntegrationsResendPage.tsx +40 -40
  694. package/src/components/docs/integrations/IntegrationsS3Page.tsx +48 -48
  695. package/src/components/docs/integrations/IntegrationsSlackPage.tsx +70 -70
  696. package/src/components/docs/integrations/IntegrationsSpecModelPage.tsx +139 -139
  697. package/src/components/docs/integrations/IntegrationsStripePage.tsx +153 -153
  698. package/src/components/docs/integrations/IntegrationsTwilioPage.tsx +50 -50
  699. package/src/components/docs/integrations/IntegrationsWhatsappMetaPage.tsx +69 -69
  700. package/src/components/docs/integrations/IntegrationsWhatsappTwilioPage.tsx +73 -73
  701. package/src/components/docs/integrations/index.ts +1 -1
  702. package/src/components/docs/intent/ContractFirstApiPage.tsx +61 -61
  703. package/src/components/docs/intent/DeterministicCodegenPage.tsx +81 -80
  704. package/src/components/docs/intent/GenerateClientFromSchemaPage.tsx +108 -108
  705. package/src/components/docs/intent/OpenapiAlternativePage.tsx +98 -98
  706. package/src/components/docs/intent/SchemaValidationTypescriptPage.tsx +79 -79
  707. package/src/components/docs/intent/SpecDrivenDevelopmentPage.tsx +67 -67
  708. package/src/components/docs/intent/index.ts +3 -3
  709. package/src/components/docs/intent/intent-pages.docblocks.ts +186 -186
  710. package/src/components/docs/knowledge/KnowledgeCategoriesPage.tsx +304 -304
  711. package/src/components/docs/knowledge/KnowledgeExamplesPage.tsx +84 -84
  712. package/src/components/docs/knowledge/KnowledgeOverviewPage.tsx +76 -285
  713. package/src/components/docs/knowledge/KnowledgeSourcesPage.tsx +171 -171
  714. package/src/components/docs/knowledge/KnowledgeSpacesPage.tsx +132 -132
  715. package/src/components/docs/knowledge/index.ts +1 -1
  716. package/src/components/docs/libraries/LibrariesAccessibilityPage.tsx +95 -95
  717. package/src/components/docs/libraries/LibrariesAiAgentPage.tsx +58 -58
  718. package/src/components/docs/libraries/LibrariesAnalyticsPage.tsx +39 -39
  719. package/src/components/docs/libraries/LibrariesContentGenPage.tsx +41 -41
  720. package/src/components/docs/libraries/LibrariesContractsPage.tsx +132 -132
  721. package/src/components/docs/libraries/LibrariesCostTrackingPage.tsx +47 -47
  722. package/src/components/docs/libraries/LibrariesDataBackendPage.tsx +73 -73
  723. package/src/components/docs/libraries/LibrariesDataViewsPage.tsx +76 -76
  724. package/src/components/docs/libraries/LibrariesDesignSystemPage.tsx +115 -115
  725. package/src/components/docs/libraries/LibrariesEvolutionPage.tsx +64 -64
  726. package/src/components/docs/libraries/LibrariesGraphQLPage.tsx +92 -92
  727. package/src/components/docs/libraries/LibrariesGrowthPage.tsx +37 -37
  728. package/src/components/docs/libraries/LibrariesMultiTenancyPage.tsx +47 -47
  729. package/src/components/docs/libraries/LibrariesObservabilityPage.tsx +58 -58
  730. package/src/components/docs/libraries/LibrariesOverlayEnginePage.tsx +51 -51
  731. package/src/components/docs/libraries/LibrariesOverviewPage.tsx +137 -301
  732. package/src/components/docs/libraries/LibrariesPersonalizationPage.tsx +57 -57
  733. package/src/components/docs/libraries/LibrariesProgressiveDeliveryPage.tsx +51 -51
  734. package/src/components/docs/libraries/LibrariesResiliencePage.tsx +54 -54
  735. package/src/components/docs/libraries/LibrariesRuntimePage.tsx +96 -96
  736. package/src/components/docs/libraries/LibrariesSLOPage.tsx +52 -52
  737. package/src/components/docs/libraries/LibrariesSchemaPage.tsx +131 -131
  738. package/src/components/docs/libraries/LibrariesSupportBotPage.tsx +59 -59
  739. package/src/components/docs/libraries/LibrariesTestingPage.tsx +64 -64
  740. package/src/components/docs/libraries/LibrariesUIKitPage.tsx +85 -85
  741. package/src/components/docs/libraries/LibrariesWorkflowComposerPage.tsx +38 -38
  742. package/src/components/docs/libraries/LibrariesWorkflowsPage.tsx +79 -79
  743. package/src/components/docs/libraries/index.ts +4 -4
  744. package/src/components/docs/manifesto/ManifestoPage.tsx +61 -132
  745. package/src/components/docs/ops/AutoEvolutionOpsPage.tsx +81 -81
  746. package/src/components/docs/ops/DistributedTracingOpsPage.tsx +28 -28
  747. package/src/components/docs/ops/ops-lifecycle.docblocks.ts +32 -32
  748. package/src/components/docs/ops/ops-runbooks-a.docblocks.ts +60 -60
  749. package/src/components/docs/ops/ops-runbooks-b.docblocks.ts +60 -60
  750. package/src/components/docs/ops/ops-slo-tenant.docblocks.ts +61 -61
  751. package/src/components/docs/ops/ops-top.docs.ts +10 -10
  752. package/src/components/docs/ops/ops.docs.ts +6 -6
  753. package/src/components/docs/product/product.docblocks.ts +60 -60
  754. package/src/components/docs/reference/DocsMarkdownContent.tsx +74 -74
  755. package/src/components/docs/reference/DocsReferenceContent.tsx +51 -51
  756. package/src/components/docs/reference/DocsReferenceIndexClient.tsx +106 -105
  757. package/src/components/docs/reference/DocsReferenceIndexPage.tsx +2 -2
  758. package/src/components/docs/reference/DocsReferencePage.tsx +3 -3
  759. package/src/components/docs/reference/docsMarkdownParser.ts +90 -90
  760. package/src/components/docs/safety/SafetyAuditingPage.tsx +189 -189
  761. package/src/components/docs/safety/SafetyMigrationsPage.tsx +189 -189
  762. package/src/components/docs/safety/SafetyOverviewPage.tsx +70 -157
  763. package/src/components/docs/safety/SafetyPDPPage.tsx +163 -163
  764. package/src/components/docs/safety/SafetySecurityTrustPage.tsx +89 -89
  765. package/src/components/docs/safety/SafetySigningPage.tsx +38 -38
  766. package/src/components/docs/safety/SafetyTenantIsolationPage.tsx +39 -39
  767. package/src/components/docs/safety/index.ts +3 -3
  768. package/src/components/docs/shared/StudioPrompt.tsx +17 -17
  769. package/src/components/docs/specs/SpecsCapabilitiesPage.tsx +79 -79
  770. package/src/components/docs/specs/SpecsDataViewsPage.tsx +142 -142
  771. package/src/components/docs/specs/SpecsOverlaysPage.tsx +202 -202
  772. package/src/components/docs/specs/SpecsOverviewPage.tsx +118 -193
  773. package/src/components/docs/specs/SpecsPolicyPage.tsx +233 -233
  774. package/src/components/docs/specs/SpecsWorkflowsPage.tsx +156 -156
  775. package/src/components/docs/specs/index.ts +3 -3
  776. package/src/components/docs/studio/StudioBYOKPage.tsx +11 -11
  777. package/src/components/docs/studio/StudioDeploymentsPage.tsx +11 -11
  778. package/src/components/docs/studio/StudioGettingStartedPage.tsx +11 -11
  779. package/src/components/docs/studio/StudioIntegrationsPage.tsx +11 -11
  780. package/src/components/docs/studio/StudioOverviewPage.tsx +94 -73
  781. package/src/components/docs/studio/StudioVisualBuilderPage.tsx +11 -11
  782. package/src/components/docs/studio/index.ts +4 -4
  783. package/src/components/docs/tech/contracts/tech-docs.docblocks.ts +10 -10
  784. package/src/components/integrations/molecules/IntegrationCard.tsx +71 -72
  785. package/src/components/integrations/organisms/IntegrationMarketplace.tsx +116 -116
  786. package/src/components/integrations/organisms/IntegrationSettings.tsx +201 -201
  787. package/src/components/integrations/organisms/KnowledgeSourceList.tsx +93 -94
  788. package/src/components/legal/PrivacyTemplate.tsx +611 -611
  789. package/src/components/legal/TermsTemplate.tsx +675 -675
  790. package/src/components/shared/FeatureGateNotice.tsx +26 -27
  791. package/src/components/shell/WorkspaceHeader.tsx +80 -80
  792. package/src/components/shell/WorkspaceProjectShellLayout.tsx +59 -58
  793. package/src/components/shell/WorkspaceShellRenderer.tsx +69 -68
  794. package/src/components/shell/WorkspaceSidebar.tsx +58 -58
  795. package/src/components/shell/index.ts +1 -1
  796. package/src/components/templates/engine/index.ts +29 -28
  797. package/src/components/templates/index.ts +1 -1
  798. package/src/components/templates/messaging/ConversationList.tsx +68 -69
  799. package/src/components/templates/messaging/MessageComposer.tsx +59 -59
  800. package/src/components/templates/messaging/MessageThread.tsx +73 -74
  801. package/src/components/templates/messaging/MessagingWorkspace.tsx +18 -19
  802. package/src/components/templates/messaging/index.ts +1 -1
  803. package/src/components/templates/messaging/types.ts +17 -17
  804. package/src/components/templates/recipes/LanguageSwitcher.tsx +20 -20
  805. package/src/components/templates/recipes/RecipeCard.tsx +56 -56
  806. package/src/components/templates/recipes/RecipeDetail.tsx +43 -43
  807. package/src/components/templates/recipes/RecipeList.tsx +62 -63
  808. package/src/components/templates/recipes/index.ts +2 -2
  809. package/src/components/templates/recipes/types.ts +24 -24
  810. package/src/components/templates/todos/FilterBar.tsx +84 -84
  811. package/src/components/templates/todos/TaskForm.tsx +118 -119
  812. package/src/components/templates/todos/TaskItem.tsx +78 -78
  813. package/src/components/templates/todos/TaskList.tsx +106 -107
  814. package/src/components/templates/todos/index.ts +2 -2
  815. package/src/components/templates/todos/types.ts +11 -11
  816. package/src/config/contractspec-blueprint.ts +55 -55
  817. package/src/config/contractspec-branding.ts +37 -37
  818. package/src/config/contractspec-routes.ts +22 -22
  819. package/src/config/index.ts +14 -15
  820. package/src/features/contracts-registry.ts +118 -118
  821. package/src/features/docs/docs.contracts.ts +6 -6
  822. package/src/features/docs/index.ts +6 -6
  823. package/src/features/docs.feature.ts +27 -27
  824. package/src/features/index.ts +59 -63
  825. package/src/features/mcp.feature.ts +24 -24
  826. package/src/features/presentations.feature.ts +27 -27
  827. package/src/features/registry.ts +14 -14
  828. package/src/index.ts +2 -2
  829. package/src/infrastructure/elysia/logger.ts +21 -21
  830. package/src/libs/email/client.test.ts +81 -81
  831. package/src/libs/email/client.ts +111 -111
  832. package/src/libs/email/contact.ts +35 -35
  833. package/src/libs/email/newsletter.ts +46 -46
  834. package/src/libs/email/types.ts +29 -29
  835. package/src/libs/email/utils.ts +5 -5
  836. package/src/libs/email/waitlist-application.ts +69 -69
  837. package/src/libs/email/waitlist.ts +46 -46
  838. package/src/libs/email.ts +7 -7
  839. package/src/libs/posthog/client.ts +44 -44
  840. package/src/libs/posthog/native.ts +23 -22
  841. package/src/libs/posthog/server.ts +7 -7
  842. package/src/libs/pricing-examples.ts +12 -12
  843. package/src/presentation/features/atoms/FeatureIcon/FeatureIcon.tsx +90 -90
  844. package/src/presentation/features/atoms/FeatureIcon/index.ts +3 -3
  845. package/src/presentation/features/hooks/index.ts +9 -9
  846. package/src/presentation/features/hooks/useContractsRegistry.ts +23 -23
  847. package/src/presentation/features/hooks/useFeatureFilters.ts +117 -117
  848. package/src/presentation/features/hooks/useFeatureRegistry.ts +40 -40
  849. package/src/presentation/features/hooks/useRelatedDocs.ts +28 -28
  850. package/src/presentation/features/index.ts +50 -52
  851. package/src/presentation/features/molecules/FeatureCard/FeatureCard.tsx +80 -80
  852. package/src/presentation/features/molecules/FeatureCard/types.ts +6 -6
  853. package/src/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.tsx +54 -54
  854. package/src/presentation/features/molecules/FeatureCategoryHeader/index.ts +2 -2
  855. package/src/presentation/features/molecules/FeatureFilters/FeatureFilters.tsx +67 -67
  856. package/src/presentation/features/molecules/FeatureFilters/types.ts +20 -20
  857. package/src/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.tsx +120 -121
  858. package/src/presentation/features/molecules/FeatureHoverPreview/index.ts +2 -2
  859. package/src/presentation/features/molecules/index.ts +8 -8
  860. package/src/presentation/features/organisms/FeatureDataViewsList.tsx +21 -21
  861. package/src/presentation/features/organisms/FeatureDetail/FeatureDetail.tsx +86 -86
  862. package/src/presentation/features/organisms/FeatureDetail/types.ts +4 -4
  863. package/src/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.tsx +210 -210
  864. package/src/presentation/features/organisms/FeatureDiscovery/index.ts +3 -3
  865. package/src/presentation/features/organisms/FeatureDiscovery/types.ts +10 -10
  866. package/src/presentation/features/organisms/FeatureEventsList.tsx +19 -19
  867. package/src/presentation/features/organisms/FeatureFormsList.tsx +19 -19
  868. package/src/presentation/features/organisms/FeatureOperationsList.tsx +21 -21
  869. package/src/presentation/features/organisms/FeaturePresentationsList.tsx +21 -21
  870. package/src/presentation/features/organisms/index.ts +6 -6
  871. package/src/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.tsx +219 -219
  872. package/src/presentation/features/templates/FeatureDataViewDetailTemplate/types.ts +7 -7
  873. package/src/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.tsx +26 -26
  874. package/src/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.tsx +195 -195
  875. package/src/presentation/features/templates/FeatureEventDetailTemplate/types.ts +7 -7
  876. package/src/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.tsx +26 -26
  877. package/src/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.tsx +216 -216
  878. package/src/presentation/features/templates/FeatureFormDetailTemplate/types.ts +7 -7
  879. package/src/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.tsx +26 -26
  880. package/src/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.tsx +228 -228
  881. package/src/presentation/features/templates/FeatureOperationDetailTemplate/types.ts +7 -7
  882. package/src/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.tsx +26 -26
  883. package/src/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.tsx +24 -24
  884. package/src/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.tsx +201 -201
  885. package/src/presentation/features/templates/FeaturePresentationDetailTemplate/types.ts +8 -8
  886. package/src/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.tsx +26 -26
  887. package/src/presentation/features/templates/types.ts +2 -2
  888. package/tsconfig.json +12 -12
  889. package/tsdown.config.js +5 -5
@@ -209,11 +209,11 @@ function ContractFirstApiPage() {
209
209
  className: "space-y-3",
210
210
  children: [
211
211
  /* @__PURE__ */ jsx("h1", {
212
- className: "text-4xl font-bold",
212
+ className: "font-bold text-4xl",
213
213
  children: contractFirstApiBrief2.title
214
214
  }),
215
215
  /* @__PURE__ */ jsx("p", {
216
- className: "text-muted-foreground text-lg",
216
+ className: "text-lg text-muted-foreground",
217
217
  children: contractFirstApiBrief2.summary
218
218
  })
219
219
  ]
@@ -222,11 +222,11 @@ function ContractFirstApiPage() {
222
222
  className: "card-subtle space-y-4 p-6",
223
223
  children: [
224
224
  /* @__PURE__ */ jsx("h2", {
225
- className: "text-2xl font-bold",
225
+ className: "font-bold text-2xl",
226
226
  children: "Problems Solved"
227
227
  }),
228
228
  /* @__PURE__ */ jsx("ul", {
229
- className: "text-muted-foreground space-y-2 text-sm",
229
+ className: "space-y-2 text-muted-foreground text-sm",
230
230
  children: contractFirstApiBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx("li", {
231
231
  children: problem
232
232
  }, index))
@@ -237,11 +237,11 @@ function ContractFirstApiPage() {
237
237
  className: "card-subtle space-y-4 p-6",
238
238
  children: [
239
239
  /* @__PURE__ */ jsx("h2", {
240
- className: "text-2xl font-bold",
240
+ className: "font-bold text-2xl",
241
241
  children: "Solutions"
242
242
  }),
243
243
  /* @__PURE__ */ jsx("ul", {
244
- className: "text-muted-foreground space-y-2 text-sm",
244
+ className: "space-y-2 text-muted-foreground text-sm",
245
245
  children: contractFirstApiBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx("li", {
246
246
  children: solution
247
247
  }, index))
@@ -255,7 +255,7 @@ function ContractFirstApiPage() {
255
255
  className: "space-y-3",
256
256
  children: [
257
257
  /* @__PURE__ */ jsx("h2", {
258
- className: "text-2xl font-bold",
258
+ className: "font-bold text-2xl",
259
259
  children: "Quick Start"
260
260
  }),
261
261
  /* @__PURE__ */ jsx("p", {
@@ -307,7 +307,7 @@ export const CreateUserOperation = defineOperation({
307
307
  className: "space-y-3",
308
308
  children: [
309
309
  /* @__PURE__ */ jsx("h2", {
310
- className: "text-2xl font-bold",
310
+ className: "font-bold text-2xl",
311
311
  children: "Generate OpenAPI"
312
312
  }),
313
313
  /* @__PURE__ */ jsx("p", {
@@ -349,15 +349,15 @@ export const CreateUserOperation = defineOperation({
349
349
  });
350
350
  }
351
351
 
352
- // src/components/docs/intent/SpecDrivenDevelopmentPage.tsx
353
- import { specDrivenDevelopmentBrief as specDrivenDevelopmentBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
352
+ // src/components/docs/intent/DeterministicCodegenPage.tsx
353
+ import { deterministicCodegenBrief as deterministicCodegenBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
354
354
  import { SeoOptimizer as SeoOptimizer2 } from "@contractspec/lib.content-gen/seo";
355
355
  import { CodeBlock as CodeBlock2 } from "@contractspec/lib.design-system";
356
356
  import Link2 from "@contractspec/lib.ui-link";
357
357
  import { ChevronRight as ChevronRight2 } from "lucide-react";
358
358
  import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
359
- var metadata2 = new SeoOptimizer2().optimize(specDrivenDevelopmentBrief2);
360
- function SpecDrivenDevelopmentPage() {
359
+ var metadata2 = new SeoOptimizer2().optimize(deterministicCodegenBrief2);
360
+ function DeterministicCodegenPage() {
361
361
  return /* @__PURE__ */ jsxs2("div", {
362
362
  className: "space-y-8",
363
363
  children: [
@@ -365,12 +365,12 @@ function SpecDrivenDevelopmentPage() {
365
365
  className: "space-y-3",
366
366
  children: [
367
367
  /* @__PURE__ */ jsx2("h1", {
368
- className: "text-4xl font-bold",
369
- children: specDrivenDevelopmentBrief2.title
368
+ className: "font-bold text-4xl",
369
+ children: deterministicCodegenBrief2.title
370
370
  }),
371
371
  /* @__PURE__ */ jsx2("p", {
372
- className: "text-muted-foreground text-lg",
373
- children: specDrivenDevelopmentBrief2.summary
372
+ className: "text-lg text-muted-foreground",
373
+ children: deterministicCodegenBrief2.summary
374
374
  })
375
375
  ]
376
376
  }),
@@ -378,12 +378,12 @@ function SpecDrivenDevelopmentPage() {
378
378
  className: "card-subtle space-y-4 p-6",
379
379
  children: [
380
380
  /* @__PURE__ */ jsx2("h2", {
381
- className: "text-2xl font-bold",
382
- children: "Why Spec-driven?"
381
+ className: "font-bold text-2xl",
382
+ children: "Regeneration Challenges"
383
383
  }),
384
384
  /* @__PURE__ */ jsx2("ul", {
385
- className: "text-muted-foreground space-y-2 text-sm",
386
- children: specDrivenDevelopmentBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx2("li", {
385
+ className: "space-y-2 text-muted-foreground text-sm",
386
+ children: deterministicCodegenBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx2("li", {
387
387
  children: problem
388
388
  }, index))
389
389
  })
@@ -393,12 +393,12 @@ function SpecDrivenDevelopmentPage() {
393
393
  className: "card-subtle space-y-4 p-6",
394
394
  children: [
395
395
  /* @__PURE__ */ jsx2("h2", {
396
- className: "text-2xl font-bold",
397
- children: "Benefits"
396
+ className: "font-bold text-2xl",
397
+ children: "Deterministic Solutions"
398
398
  }),
399
399
  /* @__PURE__ */ jsx2("ul", {
400
- className: "text-muted-foreground space-y-2 text-sm",
401
- children: specDrivenDevelopmentBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx2("li", {
400
+ className: "space-y-2 text-muted-foreground text-sm",
401
+ children: deterministicCodegenBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx2("li", {
402
402
  children: solution
403
403
  }, index))
404
404
  })
@@ -411,208 +411,14 @@ function SpecDrivenDevelopmentPage() {
411
411
  className: "space-y-3",
412
412
  children: [
413
413
  /* @__PURE__ */ jsx2("h2", {
414
- className: "text-2xl font-bold",
415
- children: "Feature Specification Example"
416
- }),
417
- /* @__PURE__ */ jsx2("p", {
418
- className: "text-muted-foreground text-sm",
419
- children: "Define a complete feature with operations, events, and data models."
420
- }),
421
- /* @__PURE__ */ jsx2(CodeBlock2, {
422
- language: "typescript",
423
- filename: "src/contracts/user-management.feature.ts",
424
- code: `import { defineFeature } from '@contractspec/lib.contracts-spec/features';
425
- import { defineOperation } from '@contractspec/lib.contracts-spec/operations';
426
- import { defineEvent } from '@contractspec/lib.contracts-spec/events';
427
- import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
428
-
429
- export const UserManagementFeature = defineFeature({
430
- goal: 'Complete user management system with CRUD operations',
431
- context: 'Handles user lifecycle from creation to deletion with proper authorization',
432
- operations: {
433
- createUser: defineOperation({
434
- goal: 'Create a new user account',
435
- input: new SchemaModel({
436
- type: 'object',
437
- properties: {
438
- email: { type: 'string', format: 'email', required: true },
439
- name: { type: 'string', minLength: 1, required: true },
440
- },
441
- }),
442
- output: new SchemaModel({
443
- type: 'object',
444
- properties: {
445
- id: { type: 'string', required: true },
446
- email: { type: 'string', required: true },
447
- name: { type: 'string', required: true },
448
- },
449
- }),
450
- }),
451
- updateUser: defineOperation({
452
- goal: 'Update existing user information',
453
- input: new SchemaModel({
454
- type: 'object',
455
- properties: {
456
- name: { type: 'string', minLength: 1 },
457
- },
458
- }),
459
- output: new SchemaModel({
460
- type: 'object',
461
- properties: {
462
- id: { type: 'string', required: true },
463
- email: { type: 'string', required: true },
464
- name: { type: 'string', required: true },
465
- },
466
- }),
467
- }),
468
- },
469
- events: {
470
- userCreated: defineEvent({
471
- goal: 'Emit when a new user is created',
472
- payload: new SchemaModel({
473
- type: 'object',
474
- properties: {
475
- userId: { type: 'string', required: true },
476
- email: { type: 'string', required: true },
477
- },
478
- }),
479
- }),
480
- userUpdated: defineEvent({
481
- goal: 'Emit when user information changes',
482
- payload: new SchemaModel({
483
- type: 'object',
484
- properties: {
485
- userId: { type: 'string', required: true },
486
- changes: { type: 'array', items: { type: 'string' }, required: true },
487
- },
488
- }),
489
- }),
490
- },
491
- metadata: {
492
- name: 'user-management',
493
- version: '1.0.0',
494
- description: 'Complete user management with operations and events',
495
- },
496
- });`
497
- })
498
- ]
499
- }),
500
- /* @__PURE__ */ jsxs2("div", {
501
- className: "space-y-3",
502
- children: [
503
- /* @__PURE__ */ jsx2("h2", {
504
- className: "text-2xl font-bold",
505
- children: "Generate Type-safe Implementations"
506
- }),
507
- /* @__PURE__ */ jsx2("p", {
508
- className: "text-muted-foreground text-sm",
509
- children: "Generate validation, types, and API handlers from your feature."
510
- }),
511
- /* @__PURE__ */ jsx2(CodeBlock2, {
512
- language: "bash",
513
- filename: "generate-from-feature",
514
- code: `contractspec generate \\
515
- --input ./src/contracts/user-management.feature.ts \\
516
- --output ./generated/user-management`
517
- })
518
- ]
519
- })
520
- ]
521
- }),
522
- /* @__PURE__ */ jsxs2("div", {
523
- className: "flex items-center gap-4 pt-4",
524
- children: [
525
- /* @__PURE__ */ jsxs2(Link2, {
526
- href: "/docs/guides/spec-validation-and-typing",
527
- className: "btn-primary",
528
- children: [
529
- "Type Safety Guide ",
530
- /* @__PURE__ */ jsx2(ChevronRight2, {
531
- size: 16
532
- })
533
- ]
534
- }),
535
- /* @__PURE__ */ jsx2(Link2, {
536
- href: "/docs/intent/deterministic-codegen",
537
- className: "btn-ghost",
538
- children: "Deterministic Codegen"
539
- })
540
- ]
541
- })
542
- ]
543
- });
544
- }
545
-
546
- // src/components/docs/intent/DeterministicCodegenPage.tsx
547
- import { deterministicCodegenBrief as deterministicCodegenBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
548
- import { SeoOptimizer as SeoOptimizer3 } from "@contractspec/lib.content-gen/seo";
549
- import { CodeBlock as CodeBlock3 } from "@contractspec/lib.design-system";
550
- import Link3 from "@contractspec/lib.ui-link";
551
- import { ChevronRight as ChevronRight3 } from "lucide-react";
552
- import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
553
- var metadata3 = new SeoOptimizer3().optimize(deterministicCodegenBrief2);
554
- function DeterministicCodegenPage() {
555
- return /* @__PURE__ */ jsxs3("div", {
556
- className: "space-y-8",
557
- children: [
558
- /* @__PURE__ */ jsxs3("div", {
559
- className: "space-y-3",
560
- children: [
561
- /* @__PURE__ */ jsx3("h1", {
562
- className: "text-4xl font-bold",
563
- children: deterministicCodegenBrief2.title
564
- }),
565
- /* @__PURE__ */ jsx3("p", {
566
- className: "text-muted-foreground text-lg",
567
- children: deterministicCodegenBrief2.summary
568
- })
569
- ]
570
- }),
571
- /* @__PURE__ */ jsxs3("div", {
572
- className: "card-subtle space-y-4 p-6",
573
- children: [
574
- /* @__PURE__ */ jsx3("h2", {
575
- className: "text-2xl font-bold",
576
- children: "Regeneration Challenges"
577
- }),
578
- /* @__PURE__ */ jsx3("ul", {
579
- className: "text-muted-foreground space-y-2 text-sm",
580
- children: deterministicCodegenBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx3("li", {
581
- children: problem
582
- }, index))
583
- })
584
- ]
585
- }),
586
- /* @__PURE__ */ jsxs3("div", {
587
- className: "card-subtle space-y-4 p-6",
588
- children: [
589
- /* @__PURE__ */ jsx3("h2", {
590
- className: "text-2xl font-bold",
591
- children: "Deterministic Solutions"
592
- }),
593
- /* @__PURE__ */ jsx3("ul", {
594
- className: "text-muted-foreground space-y-2 text-sm",
595
- children: deterministicCodegenBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx3("li", {
596
- children: solution
597
- }, index))
598
- })
599
- ]
600
- }),
601
- /* @__PURE__ */ jsxs3("div", {
602
- className: "space-y-6",
603
- children: [
604
- /* @__PURE__ */ jsxs3("div", {
605
- className: "space-y-3",
606
- children: [
607
- /* @__PURE__ */ jsx3("h2", {
608
- className: "text-2xl font-bold",
414
+ className: "font-bold text-2xl",
609
415
  children: "Protected Zones"
610
416
  }),
611
- /* @__PURE__ */ jsx3("p", {
417
+ /* @__PURE__ */ jsx2("p", {
612
418
  className: "text-muted-foreground text-sm",
613
419
  children: "Separate generated code from hand-written business logic with clear boundaries."
614
420
  }),
615
- /* @__PURE__ */ jsx3(CodeBlock3, {
421
+ /* @__PURE__ */ jsx2(CodeBlock2, {
616
422
  language: "typescript",
617
423
  filename: "src/handlers/user-handlers.ts",
618
424
  code: `// Hand-written business logic (protected from regeneration)
@@ -656,18 +462,18 @@ export const createUserHandler = wrapOperationHandler(
656
462
  })
657
463
  ]
658
464
  }),
659
- /* @__PURE__ */ jsxs3("div", {
465
+ /* @__PURE__ */ jsxs2("div", {
660
466
  className: "space-y-3",
661
467
  children: [
662
- /* @__PURE__ */ jsx3("h2", {
663
- className: "text-2xl font-bold",
468
+ /* @__PURE__ */ jsx2("h2", {
469
+ className: "font-bold text-2xl",
664
470
  children: "Incremental Regeneration"
665
471
  }),
666
- /* @__PURE__ */ jsx3("p", {
472
+ /* @__PURE__ */ jsx2("p", {
667
473
  className: "text-muted-foreground text-sm",
668
474
  children: "Regenerate only what changed while preserving custom logic."
669
475
  }),
670
- /* @__PURE__ */ jsx3(CodeBlock3, {
476
+ /* @__PURE__ */ jsx2(CodeBlock2, {
671
477
  language: "bash",
672
478
  filename: "incremental-regen",
673
479
  code: `contractspec generate \\
@@ -678,18 +484,18 @@ export const createUserHandler = wrapOperationHandler(
678
484
  })
679
485
  ]
680
486
  }),
681
- /* @__PURE__ */ jsxs3("div", {
487
+ /* @__PURE__ */ jsxs2("div", {
682
488
  className: "space-y-3",
683
489
  children: [
684
- /* @__PURE__ */ jsx3("h2", {
685
- className: "text-2xl font-bold",
490
+ /* @__PURE__ */ jsx2("h2", {
491
+ className: "font-bold text-2xl",
686
492
  children: "Conflict Detection"
687
493
  }),
688
- /* @__PURE__ */ jsx3("p", {
494
+ /* @__PURE__ */ jsx2("p", {
689
495
  className: "text-muted-foreground text-sm",
690
496
  children: "Automatically detect and report conflicts during regeneration."
691
497
  }),
692
- /* @__PURE__ */ jsx3(CodeBlock3, {
498
+ /* @__PURE__ */ jsx2(CodeBlock2, {
693
499
  language: "bash",
694
500
  filename: "check-conflicts",
695
501
  code: `contractspec generate \\
@@ -700,20 +506,20 @@ export const createUserHandler = wrapOperationHandler(
700
506
  })
701
507
  ]
702
508
  }),
703
- /* @__PURE__ */ jsxs3("div", {
509
+ /* @__PURE__ */ jsxs2("div", {
704
510
  className: "flex items-center gap-4 pt-4",
705
511
  children: [
706
- /* @__PURE__ */ jsxs3(Link3, {
512
+ /* @__PURE__ */ jsxs2(Link2, {
707
513
  href: "/docs/guides/generate-docs-clients-schemas",
708
514
  className: "btn-primary",
709
515
  children: [
710
516
  "Client Generation ",
711
- /* @__PURE__ */ jsx3(ChevronRight3, {
517
+ /* @__PURE__ */ jsx2(ChevronRight2, {
712
518
  size: 16
713
519
  })
714
520
  ]
715
521
  }),
716
- /* @__PURE__ */ jsx3(Link3, {
522
+ /* @__PURE__ */ jsx2(Link2, {
717
523
  href: "/docs/intent/schema-validation-typescript",
718
524
  className: "btn-ghost",
719
525
  children: "Type Safety"
@@ -724,232 +530,394 @@ export const createUserHandler = wrapOperationHandler(
724
530
  });
725
531
  }
726
532
 
727
- // src/components/docs/intent/SchemaValidationTypescriptPage.tsx
728
- import { schemaValidationTypescriptBrief as schemaValidationTypescriptBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
729
- import { SeoOptimizer as SeoOptimizer4 } from "@contractspec/lib.content-gen/seo";
730
- import { CodeBlock as CodeBlock4 } from "@contractspec/lib.design-system";
731
- import Link4 from "@contractspec/lib.ui-link";
732
- import { ChevronRight as ChevronRight4 } from "lucide-react";
733
- import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
734
- var metadata4 = new SeoOptimizer4().optimize(schemaValidationTypescriptBrief2);
735
- function SchemaValidationTypescriptPage() {
736
- return /* @__PURE__ */ jsxs4("div", {
533
+ // src/components/docs/intent/GenerateClientFromSchemaPage.tsx
534
+ import { generateClientFromSchemaBrief as generateClientFromSchemaBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
535
+ import { SeoOptimizer as SeoOptimizer3 } from "@contractspec/lib.content-gen/seo";
536
+ import { CodeBlock as CodeBlock3 } from "@contractspec/lib.design-system";
537
+ import Link3 from "@contractspec/lib.ui-link";
538
+ import { ChevronRight as ChevronRight3 } from "lucide-react";
539
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
540
+ var metadata3 = new SeoOptimizer3().optimize(generateClientFromSchemaBrief2);
541
+ function GenerateClientFromSchemaPage() {
542
+ return /* @__PURE__ */ jsxs3("div", {
737
543
  className: "space-y-8",
738
544
  children: [
739
- /* @__PURE__ */ jsxs4("div", {
545
+ /* @__PURE__ */ jsxs3("div", {
740
546
  className: "space-y-3",
741
547
  children: [
742
- /* @__PURE__ */ jsx4("h1", {
743
- className: "text-4xl font-bold",
744
- children: schemaValidationTypescriptBrief2.title
548
+ /* @__PURE__ */ jsx3("h1", {
549
+ className: "font-bold text-4xl",
550
+ children: generateClientFromSchemaBrief2.title
745
551
  }),
746
- /* @__PURE__ */ jsx4("p", {
747
- className: "text-muted-foreground text-lg",
748
- children: schemaValidationTypescriptBrief2.summary
552
+ /* @__PURE__ */ jsx3("p", {
553
+ className: "text-lg text-muted-foreground",
554
+ children: generateClientFromSchemaBrief2.summary
749
555
  })
750
556
  ]
751
557
  }),
752
- /* @__PURE__ */ jsxs4("div", {
558
+ /* @__PURE__ */ jsxs3("div", {
753
559
  className: "card-subtle space-y-4 p-6",
754
560
  children: [
755
- /* @__PURE__ */ jsx4("h2", {
756
- className: "text-2xl font-bold",
757
- children: "Validation Pain Points"
561
+ /* @__PURE__ */ jsx3("h2", {
562
+ className: "font-bold text-2xl",
563
+ children: "Client Development Problems"
758
564
  }),
759
- /* @__PURE__ */ jsx4("ul", {
760
- className: "text-muted-foreground space-y-2 text-sm",
761
- children: schemaValidationTypescriptBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx4("li", {
565
+ /* @__PURE__ */ jsx3("ul", {
566
+ className: "space-y-2 text-muted-foreground text-sm",
567
+ children: generateClientFromSchemaBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx3("li", {
762
568
  children: problem
763
569
  }, index))
764
570
  })
765
571
  ]
766
572
  }),
767
- /* @__PURE__ */ jsxs4("div", {
573
+ /* @__PURE__ */ jsxs3("div", {
768
574
  className: "card-subtle space-y-4 p-6",
769
575
  children: [
770
- /* @__PURE__ */ jsx4("h2", {
771
- className: "text-2xl font-bold",
772
- children: "Type-safe Solutions"
576
+ /* @__PURE__ */ jsx3("h2", {
577
+ className: "font-bold text-2xl",
578
+ children: "Automated Solutions"
773
579
  }),
774
- /* @__PURE__ */ jsx4("ul", {
775
- className: "text-muted-foreground space-y-2 text-sm",
776
- children: schemaValidationTypescriptBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx4("li", {
580
+ /* @__PURE__ */ jsx3("ul", {
581
+ className: "space-y-2 text-muted-foreground text-sm",
582
+ children: generateClientFromSchemaBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx3("li", {
777
583
  children: solution
778
584
  }, index))
779
585
  })
780
586
  ]
781
587
  }),
782
- /* @__PURE__ */ jsxs4("div", {
588
+ /* @__PURE__ */ jsxs3("div", {
783
589
  className: "space-y-6",
784
590
  children: [
785
- /* @__PURE__ */ jsxs4("div", {
591
+ /* @__PURE__ */ jsxs3("div", {
786
592
  className: "space-y-3",
787
593
  children: [
788
- /* @__PURE__ */ jsx4("h2", {
789
- className: "text-2xl font-bold",
790
- children: "Contract Schema"
594
+ /* @__PURE__ */ jsx3("h2", {
595
+ className: "font-bold text-2xl",
596
+ children: "Contract Definition"
791
597
  }),
792
- /* @__PURE__ */ jsx4("p", {
598
+ /* @__PURE__ */ jsx3("p", {
793
599
  className: "text-muted-foreground text-sm",
794
- children: "Define data models with automatic TypeScript generation."
600
+ children: "Define your API contract once, generate clients for any language."
795
601
  }),
796
- /* @__PURE__ */ jsx4(CodeBlock4, {
602
+ /* @__PURE__ */ jsx3(CodeBlock3, {
797
603
  language: "typescript",
798
- filename: "src/contracts/user.schema.ts",
799
- code: `import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
604
+ filename: "src/contracts/api.contract.ts",
605
+ code: `import { defineContract } from '@contractspec/lib.contracts-spec';
606
+ import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
800
607
 
801
- export const UserSchema = new SchemaModel({
802
- type: 'object',
803
- properties: {
804
- id: {
805
- type: 'string',
806
- format: 'uuid',
807
- required: true,
808
- description: 'Unique user identifier',
809
- },
810
- email: {
811
- type: 'string',
812
- format: 'email',
813
- required: true,
814
- description: 'User email address',
815
- },
816
- name: {
817
- type: 'string',
818
- minLength: 1,
819
- maxLength: 100,
820
- required: true,
821
- description: 'Display name for the user',
822
- },
823
- role: {
824
- type: 'string',
825
- enum: ['user', 'admin', 'moderator'],
826
- default: 'user',
827
- description: 'User role in the system',
608
+ export const ApiContract = defineContract({
609
+ name: 'MyAPI',
610
+ version: '1.0.0',
611
+ baseUrl: 'https://api.example.com',
612
+ operations: {
613
+ getUsers: {
614
+ goal: 'Retrieve paginated list of users',
615
+ method: 'GET',
616
+ path: '/users',
617
+ input: new SchemaModel({
618
+ type: 'object',
619
+ properties: {
620
+ page: { type: 'integer', minimum: 1, default: 1 },
621
+ limit: { type: 'integer', minimum: 1, maximum: 100, default: 20 },
622
+ },
623
+ }),
624
+ output: new SchemaModel({
625
+ type: 'object',
626
+ properties: {
627
+ users: {
628
+ type: 'array',
629
+ items: {
630
+ type: 'object',
631
+ properties: {
632
+ id: { type: 'string', required: true },
633
+ email: { type: 'string', required: true },
634
+ name: { type: 'string', required: true },
635
+ },
636
+ },
637
+ },
638
+ pagination: {
639
+ type: 'object',
640
+ properties: {
641
+ page: { type: 'integer', required: true },
642
+ limit: { type: 'integer', required: true },
643
+ total: { type: 'integer', required: true },
644
+ },
645
+ },
646
+ },
647
+ }),
828
648
  },
829
- createdAt: {
830
- type: 'string',
831
- format: 'date-time',
832
- required: true,
833
- description: 'Account creation timestamp',
649
+ createUser: {
650
+ goal: 'Create a new user account',
651
+ method: 'POST',
652
+ path: '/users',
653
+ input: new SchemaModel({
654
+ type: 'object',
655
+ properties: {
656
+ email: { type: 'string', format: 'email', required: true },
657
+ name: { type: 'string', minLength: 1, required: true },
658
+ },
659
+ }),
660
+ output: new SchemaModel({
661
+ type: 'object',
662
+ properties: {
663
+ id: { type: 'string', required: true },
664
+ email: { type: 'string', required: true },
665
+ name: { type: 'string', required: true },
666
+ createdAt: { type: 'string', format: 'date-time', required: true },
667
+ },
668
+ }),
834
669
  },
835
670
  },
836
- required: ['id', 'email', 'name', 'createdAt'],
837
671
  metadata: {
838
- name: 'User',
839
- description: 'User account information',
672
+ description: 'User management API with authentication',
673
+ tags: ['users', 'authentication'],
840
674
  },
841
675
  });`
842
676
  })
843
677
  ]
844
678
  }),
845
- /* @__PURE__ */ jsxs4("div", {
679
+ /* @__PURE__ */ jsxs3("div", {
846
680
  className: "space-y-3",
847
681
  children: [
848
- /* @__PURE__ */ jsx4("h2", {
849
- className: "text-2xl font-bold",
850
- children: "Generated Types"
682
+ /* @__PURE__ */ jsx3("h2", {
683
+ className: "font-bold text-2xl",
684
+ children: "Generate Multiple Clients"
851
685
  }),
852
- /* @__PURE__ */ jsx4("p", {
686
+ /* @__PURE__ */ jsx3("p", {
853
687
  className: "text-muted-foreground text-sm",
854
- children: "TypeScript types are automatically generated with proper validation."
688
+ children: "Generate type-safe clients for any language from the same contract."
855
689
  }),
856
- /* @__PURE__ */ jsx4(CodeBlock4, {
857
- language: "typescript",
858
- filename: "generated/types/user.ts",
859
- code: `// Auto-generated from UserSchema
860
- export interface User {
861
- id: string;
862
- email: string;
863
- name: string;
864
- role: 'user' | 'admin' | 'moderator';
865
- createdAt: string;
866
- }
690
+ /* @__PURE__ */ jsx3(CodeBlock3, {
691
+ language: "bash",
692
+ filename: "generate-clients",
693
+ code: `# Generate all supported language clients
694
+ contractspec generate clients \\
695
+ --contract ./src/contracts/api.contract.ts \\
696
+ --output ./generated/clients \\
697
+ --languages typescript,python,go,java,csharp
867
698
 
868
- // Auto-generated Zod schema for runtime validation
869
- export const UserSchemaZod = z.object({
870
- id: z.string().uuid(),
871
- email: z.string().email(),
872
- name: z.string().min(1).max(100),
873
- role: z.enum(['user', 'admin', 'moderator']).default('user'),
874
- createdAt: z.string().datetime(),
699
+ # Generate specific language client
700
+ contractspec generate clients \\
701
+ --contract ./src/contracts/api.contract.ts \\
702
+ --output ./generated/clients \\
703
+ --languages typescript \\
704
+ --format npm-package
705
+
706
+ # Options
707
+ # --with-types: Include TypeScript definitions
708
+ # --with-tests: Generate client test suites
709
+ # --with-docs: Include client documentation
710
+ # --framework: Use specific HTTP client framework`
711
+ })
712
+ ]
713
+ }),
714
+ /* @__PURE__ */ jsxs3("div", {
715
+ className: "space-y-3",
716
+ children: [
717
+ /* @__PURE__ */ jsx3("h2", {
718
+ className: "font-bold text-2xl",
719
+ children: "Generated Client Examples"
720
+ }),
721
+ /* @__PURE__ */ jsx3("p", {
722
+ className: "text-muted-foreground text-sm",
723
+ children: "Each generated client is fully type-safe and idiomatic."
724
+ }),
725
+ /* @__PURE__ */ jsxs3("div", {
726
+ className: "space-y-4",
727
+ children: [
728
+ /* @__PURE__ */ jsxs3("div", {
729
+ className: "card-subtle p-4",
730
+ children: [
731
+ /* @__PURE__ */ jsx3("h4", {
732
+ className: "font-semibold text-lg",
733
+ children: "TypeScript Client"
734
+ }),
735
+ /* @__PURE__ */ jsx3(CodeBlock3, {
736
+ language: "typescript",
737
+ filename: "generated/clients/typescript/index.ts",
738
+ code: `import { MyAPIClient } from './client';
739
+
740
+ const client = new MyAPIClient({
741
+ baseUrl: 'https://api.example.com',
742
+ apiKey: process.env.API_KEY,
875
743
  });
876
744
 
877
- // Generated validation utilities
878
- export function validateUser(data: unknown): User {
879
- return UserSchemaZod.parse(data);
880
- }
745
+ // Type-safe method calls
746
+ const users = await client.getUsers({
747
+ page: 1,
748
+ limit: 10,
749
+ });
881
750
 
882
- export function isUser(data: unknown): data is User {
883
- return UserSchemaZod.safeParse(data).success;
751
+ const newUser = await client.createUser({
752
+ email: 'user@example.com',
753
+ name: 'John Doe',
754
+ });
755
+
756
+ // Full type inference
757
+ // users: GetUsersResponse
758
+ // newUser: CreateUserResponse`
759
+ })
760
+ ]
761
+ }),
762
+ /* @__PURE__ */ jsxs3("div", {
763
+ className: "card-subtle p-4",
764
+ children: [
765
+ /* @__PURE__ */ jsx3("h4", {
766
+ className: "font-semibold text-lg",
767
+ children: "Python Client"
768
+ }),
769
+ /* @__PURE__ */ jsx3(CodeBlock3, {
770
+ language: "python",
771
+ filename: "generated/clients/python/index.py",
772
+ code: `from myapi_client import MyAPIClient
773
+
774
+ client = MyAPIClient(
775
+ base_url='https://api.example.com',
776
+ api_key=os.getenv('API_KEY')
777
+ )
778
+
779
+ # Type-safe method calls
780
+ users = await client.get_users(
781
+ page=1,
782
+ limit=10
783
+ )
784
+
785
+ new_user = await client.create_user(
786
+ email='user@example.com',
787
+ name='John Doe'
788
+ )
789
+
790
+ # Full type hints
791
+ # users: GetUsersResponse
792
+ # new_user: CreateUserResponse`
793
+ })
794
+ ]
795
+ }),
796
+ /* @__PURE__ */ jsxs3("div", {
797
+ className: "card-subtle p-4",
798
+ children: [
799
+ /* @__PURE__ */ jsx3("h4", {
800
+ className: "font-semibold text-lg",
801
+ children: "Go Client"
802
+ }),
803
+ /* @__PURE__ */ jsx3(CodeBlock3, {
804
+ language: "go",
805
+ filename: "generated/clients/go/client.go",
806
+ code: `package main
807
+
808
+ import (
809
+ "context"
810
+ "myapi_client"
811
+ )
812
+
813
+ func main() {
814
+ client := myapi_client.NewMyAPIClient(
815
+ myapi_client.WithBaseURL("https://api.example.com"),
816
+ myapi_client.WithAPIKey(os.Getenv("API_KEY")),
817
+ )
818
+
819
+ // Type-safe method calls
820
+ users, err := client.GetUsers(&myapi_client.GetUsersParams{
821
+ Page: 1,
822
+ Limit: 10,
823
+ })
824
+
825
+ newUser, err := client.CreateUser(&myapi_client.CreateUserParams{
826
+ Email: "user@example.com",
827
+ Name: "John Doe",
828
+ })
829
+
830
+ // Full type checking at compile time
831
+ // users: *GetUsersResponse
832
+ // newUser: *CreateUserResponse
884
833
  }`
834
+ })
835
+ ]
836
+ })
837
+ ]
885
838
  })
886
839
  ]
887
840
  }),
888
- /* @__PURE__ */ jsxs4("div", {
841
+ /* @__PURE__ */ jsxs3("div", {
889
842
  className: "space-y-3",
890
843
  children: [
891
- /* @__PURE__ */ jsx4("h2", {
892
- className: "text-2xl font-bold",
893
- children: "Runtime Validation"
844
+ /* @__PURE__ */ jsx3("h2", {
845
+ className: "font-bold text-2xl",
846
+ children: "Advanced Features"
894
847
  }),
895
- /* @__PURE__ */ jsx4("p", {
848
+ /* @__PURE__ */ jsx3("p", {
896
849
  className: "text-muted-foreground text-sm",
897
- children: "Use generated validation in your API handlers with zero boilerplate."
850
+ children: "Generated clients include enterprise-grade features out of the box."
898
851
  }),
899
- /* @__PURE__ */ jsx4(CodeBlock4, {
852
+ /* @__PURE__ */ jsx3(CodeBlock3, {
900
853
  language: "typescript",
901
- filename: "src/handlers/user-handler.ts",
902
- code: `import { validateUser } from '../generated/types/user';
903
-
904
- export async function createUserHandler(request: Request) {
905
- try {
906
- const input = validateUser(await request.json());
907
-
908
- // input is now fully typed as User
909
- const user = await db.users.create({
910
- data: {
911
- ...input,
912
- createdAt: new Date().toISOString(),
913
- },
914
- });
915
-
916
- return Response.json({ user });
917
- } catch (error) {
918
- if (error instanceof z.ZodError) {
919
- return Response.json(
920
- {
921
- error: 'Validation failed',
922
- details: error.errors
923
- },
924
- { status: 400 }
925
- );
854
+ filename: "client-features.ts",
855
+ code: `// Advanced client features
856
+ const client = new MyAPIClient({
857
+ baseUrl: 'https://api.example.com',
858
+ apiKey: 'your-api-key',
859
+
860
+ // Retry configuration
861
+ retryConfig: {
862
+ maxRetries: 3,
863
+ backoffMultiplier: 2,
864
+ maxDelay: 30000,
865
+ },
866
+
867
+ // Request/Response interceptors
868
+ interceptors: {
869
+ request: [(config) => {
870
+ // Add authentication headers
871
+ config.headers.Authorization = \`Bearer \${await getAuthToken()}\`;
872
+ return config;
873
+ }],
874
+ response: [(response) => {
875
+ // Log API calls
876
+ console.log(\`API Call: \${response.config.method} \${response.config.url}\`);
877
+ return response;
878
+ }],
879
+ },
880
+
881
+ // Error handling
882
+ errorHandler: (error) => {
883
+ if (error.status === 401) {
884
+ // Refresh token and retry
885
+ return refreshTokenAndRetry(error.originalRequest);
926
886
  }
927
-
928
887
  throw error;
929
- }
930
- }`
888
+ },
889
+ });
890
+
891
+ // Automatic request deduplication
892
+ const user1 = client.getUser({ id: '123' });
893
+ const user2 = client.getUser({ id: '123' }); // Uses cached result
894
+
895
+ // Request cancellation
896
+ const controller = new AbortController();
897
+ const promise = client.getUsers({ page: 1, signal: controller.signal });
898
+ controller.abort(); // Cancels the request`
931
899
  })
932
900
  ]
933
901
  })
934
902
  ]
935
903
  }),
936
- /* @__PURE__ */ jsxs4("div", {
904
+ /* @__PURE__ */ jsxs3("div", {
937
905
  className: "flex items-center gap-4 pt-4",
938
906
  children: [
939
- /* @__PURE__ */ jsxs4(Link4, {
940
- href: "/docs/guides/spec-validation-and-typing",
907
+ /* @__PURE__ */ jsxs3(Link3, {
908
+ href: "/docs/guides/generate-docs-clients-schemas",
941
909
  className: "btn-primary",
942
910
  children: [
943
- "Type Safety Guide ",
944
- /* @__PURE__ */ jsx4(ChevronRight4, {
911
+ "Client Generation Guide ",
912
+ /* @__PURE__ */ jsx3(ChevronRight3, {
945
913
  size: 16
946
914
  })
947
915
  ]
948
916
  }),
949
- /* @__PURE__ */ jsx4(Link4, {
950
- href: "/docs/intent/generate-client-from-schema",
917
+ /* @__PURE__ */ jsx3(Link3, {
918
+ href: "/docs/intent/contract-first-api",
951
919
  className: "btn-ghost",
952
- children: "Client Generation"
920
+ children: "Contract-first API"
953
921
  })
954
922
  ]
955
923
  })
@@ -959,128 +927,128 @@ export async function createUserHandler(request: Request) {
959
927
 
960
928
  // src/components/docs/intent/OpenapiAlternativePage.tsx
961
929
  import { openapiAlternativeBrief as openapiAlternativeBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
962
- import { SeoOptimizer as SeoOptimizer5 } from "@contractspec/lib.content-gen/seo";
963
- import { CodeBlock as CodeBlock5 } from "@contractspec/lib.design-system";
964
- import Link5 from "@contractspec/lib.ui-link";
965
- import { ChevronRight as ChevronRight5 } from "lucide-react";
966
- import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
967
- var metadata5 = new SeoOptimizer5().optimize(openapiAlternativeBrief2);
930
+ import { SeoOptimizer as SeoOptimizer4 } from "@contractspec/lib.content-gen/seo";
931
+ import { CodeBlock as CodeBlock4 } from "@contractspec/lib.design-system";
932
+ import Link4 from "@contractspec/lib.ui-link";
933
+ import { ChevronRight as ChevronRight4 } from "lucide-react";
934
+ import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
935
+ var metadata4 = new SeoOptimizer4().optimize(openapiAlternativeBrief2);
968
936
  function OpenapiAlternativePage() {
969
- return /* @__PURE__ */ jsxs5("div", {
937
+ return /* @__PURE__ */ jsxs4("div", {
970
938
  className: "space-y-8",
971
939
  children: [
972
- /* @__PURE__ */ jsxs5("div", {
940
+ /* @__PURE__ */ jsxs4("div", {
973
941
  className: "space-y-3",
974
942
  children: [
975
- /* @__PURE__ */ jsx5("h1", {
976
- className: "text-4xl font-bold",
943
+ /* @__PURE__ */ jsx4("h1", {
944
+ className: "font-bold text-4xl",
977
945
  children: openapiAlternativeBrief2.title
978
946
  }),
979
- /* @__PURE__ */ jsx5("p", {
980
- className: "text-muted-foreground text-lg",
947
+ /* @__PURE__ */ jsx4("p", {
948
+ className: "text-lg text-muted-foreground",
981
949
  children: openapiAlternativeBrief2.summary
982
950
  })
983
951
  ]
984
952
  }),
985
- /* @__PURE__ */ jsxs5("div", {
953
+ /* @__PURE__ */ jsxs4("div", {
986
954
  className: "card-subtle space-y-4 p-6",
987
955
  children: [
988
- /* @__PURE__ */ jsx5("h2", {
989
- className: "text-2xl font-bold",
956
+ /* @__PURE__ */ jsx4("h2", {
957
+ className: "font-bold text-2xl",
990
958
  children: "OpenAPI Limitations"
991
959
  }),
992
- /* @__PURE__ */ jsx5("ul", {
993
- className: "text-muted-foreground space-y-2 text-sm",
994
- children: openapiAlternativeBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx5("li", {
960
+ /* @__PURE__ */ jsx4("ul", {
961
+ className: "space-y-2 text-muted-foreground text-sm",
962
+ children: openapiAlternativeBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx4("li", {
995
963
  children: problem
996
964
  }, index))
997
965
  })
998
966
  ]
999
967
  }),
1000
- /* @__PURE__ */ jsxs5("div", {
968
+ /* @__PURE__ */ jsxs4("div", {
1001
969
  className: "card-subtle space-y-4 p-6",
1002
970
  children: [
1003
- /* @__PURE__ */ jsx5("h2", {
1004
- className: "text-2xl font-bold",
971
+ /* @__PURE__ */ jsx4("h2", {
972
+ className: "font-bold text-2xl",
1005
973
  children: "ContractSpec Advantages"
1006
974
  }),
1007
- /* @__PURE__ */ jsx5("ul", {
1008
- className: "text-muted-foreground space-y-2 text-sm",
1009
- children: openapiAlternativeBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx5("li", {
975
+ /* @__PURE__ */ jsx4("ul", {
976
+ className: "space-y-2 text-muted-foreground text-sm",
977
+ children: openapiAlternativeBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx4("li", {
1010
978
  children: solution
1011
979
  }, index))
1012
980
  })
1013
981
  ]
1014
982
  }),
1015
- /* @__PURE__ */ jsxs5("div", {
983
+ /* @__PURE__ */ jsxs4("div", {
1016
984
  className: "space-y-6",
1017
985
  children: [
1018
- /* @__PURE__ */ jsxs5("div", {
986
+ /* @__PURE__ */ jsxs4("div", {
1019
987
  className: "space-y-3",
1020
988
  children: [
1021
- /* @__PURE__ */ jsx5("h2", {
1022
- className: "text-2xl font-bold",
989
+ /* @__PURE__ */ jsx4("h2", {
990
+ className: "font-bold text-2xl",
1023
991
  children: "Comparison: OpenAPI vs ContractSpec"
1024
992
  }),
1025
- /* @__PURE__ */ jsx5("p", {
993
+ /* @__PURE__ */ jsx4("p", {
1026
994
  className: "text-muted-foreground text-sm",
1027
995
  children: "Key differences between OpenAPI documentation and ContractSpec executable contracts."
1028
996
  }),
1029
- /* @__PURE__ */ jsxs5("div", {
997
+ /* @__PURE__ */ jsxs4("div", {
1030
998
  className: "grid gap-6 md:grid-cols-2",
1031
999
  children: [
1032
- /* @__PURE__ */ jsxs5("div", {
1000
+ /* @__PURE__ */ jsxs4("div", {
1033
1001
  className: "card-subtle space-y-3 p-4",
1034
1002
  children: [
1035
- /* @__PURE__ */ jsx5("h3", {
1036
- className: "text-lg font-semibold",
1003
+ /* @__PURE__ */ jsx4("h3", {
1004
+ className: "font-semibold text-lg",
1037
1005
  children: "OpenAPI"
1038
1006
  }),
1039
- /* @__PURE__ */ jsxs5("ul", {
1040
- className: "text-muted-foreground space-y-1 text-sm",
1007
+ /* @__PURE__ */ jsxs4("ul", {
1008
+ className: "space-y-1 text-muted-foreground text-sm",
1041
1009
  children: [
1042
- /* @__PURE__ */ jsx5("li", {
1010
+ /* @__PURE__ */ jsx4("li", {
1043
1011
  children: "\u2022 Documentation specification only"
1044
1012
  }),
1045
- /* @__PURE__ */ jsx5("li", {
1013
+ /* @__PURE__ */ jsx4("li", {
1046
1014
  children: "\u2022 No runtime validation"
1047
1015
  }),
1048
- /* @__PURE__ */ jsx5("li", {
1016
+ /* @__PURE__ */ jsx4("li", {
1049
1017
  children: "\u2022 Manual code generation"
1050
1018
  }),
1051
- /* @__PURE__ */ jsx5("li", {
1019
+ /* @__PURE__ */ jsx4("li", {
1052
1020
  children: "\u2022 Type safety requires tools"
1053
1021
  }),
1054
- /* @__PURE__ */ jsx5("li", {
1022
+ /* @__PURE__ */ jsx4("li", {
1055
1023
  children: "\u2022 Separate schemas from documentation"
1056
1024
  })
1057
1025
  ]
1058
1026
  })
1059
1027
  ]
1060
1028
  }),
1061
- /* @__PURE__ */ jsxs5("div", {
1029
+ /* @__PURE__ */ jsxs4("div", {
1062
1030
  className: "card-subtle space-y-3 p-4",
1063
1031
  children: [
1064
- /* @__PURE__ */ jsx5("h3", {
1065
- className: "text-lg font-semibold",
1032
+ /* @__PURE__ */ jsx4("h3", {
1033
+ className: "font-semibold text-lg",
1066
1034
  children: "ContractSpec"
1067
1035
  }),
1068
- /* @__PURE__ */ jsxs5("ul", {
1069
- className: "text-muted-foreground space-y-1 text-sm",
1036
+ /* @__PURE__ */ jsxs4("ul", {
1037
+ className: "space-y-1 text-muted-foreground text-sm",
1070
1038
  children: [
1071
- /* @__PURE__ */ jsx5("li", {
1039
+ /* @__PURE__ */ jsx4("li", {
1072
1040
  children: "\u2022 Executable contracts"
1073
1041
  }),
1074
- /* @__PURE__ */ jsx5("li", {
1042
+ /* @__PURE__ */ jsx4("li", {
1075
1043
  children: "\u2022 Built-in runtime validation"
1076
1044
  }),
1077
- /* @__PURE__ */ jsx5("li", {
1045
+ /* @__PURE__ */ jsx4("li", {
1078
1046
  children: "\u2022 Automatic code generation"
1079
1047
  }),
1080
- /* @__PURE__ */ jsx5("li", {
1048
+ /* @__PURE__ */ jsx4("li", {
1081
1049
  children: "\u2022 Type-safe by default"
1082
1050
  }),
1083
- /* @__PURE__ */ jsx5("li", {
1051
+ /* @__PURE__ */ jsx4("li", {
1084
1052
  children: "\u2022 Unified spec and implementation"
1085
1053
  })
1086
1054
  ]
@@ -1091,29 +1059,264 @@ function OpenapiAlternativePage() {
1091
1059
  })
1092
1060
  ]
1093
1061
  }),
1062
+ /* @__PURE__ */ jsxs4("div", {
1063
+ className: "space-y-3",
1064
+ children: [
1065
+ /* @__PURE__ */ jsx4("h2", {
1066
+ className: "font-bold text-2xl",
1067
+ children: "Export from Contracts"
1068
+ }),
1069
+ /* @__PURE__ */ jsx4("p", {
1070
+ className: "text-muted-foreground text-sm",
1071
+ children: "Generate OpenAPI documentation from ContractSpec for existing tooling."
1072
+ }),
1073
+ /* @__PURE__ */ jsx4(CodeBlock4, {
1074
+ language: "bash",
1075
+ filename: "export-openapi",
1076
+ code: `# From ContractSpec contracts
1077
+ contractspec openapi export \\
1078
+ --registry ./src/contracts/registry.ts \\
1079
+ --format yaml \\
1080
+ --out ./openapi.yaml
1081
+
1082
+ # Compare: Manual OpenAPI vs Generated
1083
+ # Manual: Write OpenAPI by hand, maintain separately
1084
+ # Generated: Single source of truth, always in sync`
1085
+ })
1086
+ ]
1087
+ }),
1088
+ /* @__PURE__ */ jsxs4("div", {
1089
+ className: "space-y-3",
1090
+ children: [
1091
+ /* @__PURE__ */ jsx4("h2", {
1092
+ className: "font-bold text-2xl",
1093
+ children: "Beyond Documentation"
1094
+ }),
1095
+ /* @__PURE__ */ jsx4("p", {
1096
+ className: "text-muted-foreground text-sm",
1097
+ children: "ContractSpec provides more than just API documentation."
1098
+ }),
1099
+ /* @__PURE__ */ jsx4(CodeBlock4, {
1100
+ language: "typescript",
1101
+ filename: "multi-output-example.ts",
1102
+ code: `// One contract, multiple outputs
1103
+ import { UserApiContract } from './contracts/user-api.contract';
1104
+
1105
+ // Generated outputs
1106
+ export const outputs = {
1107
+ // API documentation (OpenAPI)
1108
+ openapi: UserApiContract.toOpenAPI(),
1109
+
1110
+ // Client SDKs (TypeScript, Python, etc.)
1111
+ clients: UserApiContract.generateClients({
1112
+ languages: ['typescript', 'python', 'go'],
1113
+ }),
1114
+
1115
+ // Database schemas (Prisma, Drizzle)
1116
+ database: UserApiContract.toDatabase({
1117
+ adapter: 'prisma',
1118
+ }),
1119
+
1120
+ // API handlers (Express, Fastify, Next.js)
1121
+ handlers: UserApiContract.toHandlers({
1122
+ framework: 'express',
1123
+ }),
1124
+
1125
+ // Validation middleware
1126
+ validation: UserApiContract.toValidation({
1127
+ library: 'zod',
1128
+ }),
1129
+
1130
+ // Type definitions
1131
+ types: UserApiContract.toTypescript(),
1132
+ };`
1133
+ })
1134
+ ]
1135
+ })
1136
+ ]
1137
+ }),
1138
+ /* @__PURE__ */ jsxs4("div", {
1139
+ className: "flex items-center gap-4 pt-4",
1140
+ children: [
1141
+ /* @__PURE__ */ jsxs4(Link4, {
1142
+ href: "/docs/guides/generate-docs-clients-schemas",
1143
+ className: "btn-primary",
1144
+ children: [
1145
+ "Generate from Contracts ",
1146
+ /* @__PURE__ */ jsx4(ChevronRight4, {
1147
+ size: 16
1148
+ })
1149
+ ]
1150
+ }),
1151
+ /* @__PURE__ */ jsx4(Link4, {
1152
+ href: "/docs/intent/generate-client-from-schema",
1153
+ className: "btn-ghost",
1154
+ children: "Client Generation"
1155
+ })
1156
+ ]
1157
+ })
1158
+ ]
1159
+ });
1160
+ }
1161
+
1162
+ // src/components/docs/intent/SchemaValidationTypescriptPage.tsx
1163
+ import { schemaValidationTypescriptBrief as schemaValidationTypescriptBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
1164
+ import { SeoOptimizer as SeoOptimizer5 } from "@contractspec/lib.content-gen/seo";
1165
+ import { CodeBlock as CodeBlock5 } from "@contractspec/lib.design-system";
1166
+ import Link5 from "@contractspec/lib.ui-link";
1167
+ import { ChevronRight as ChevronRight5 } from "lucide-react";
1168
+ import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
1169
+ var metadata5 = new SeoOptimizer5().optimize(schemaValidationTypescriptBrief2);
1170
+ function SchemaValidationTypescriptPage() {
1171
+ return /* @__PURE__ */ jsxs5("div", {
1172
+ className: "space-y-8",
1173
+ children: [
1174
+ /* @__PURE__ */ jsxs5("div", {
1175
+ className: "space-y-3",
1176
+ children: [
1177
+ /* @__PURE__ */ jsx5("h1", {
1178
+ className: "font-bold text-4xl",
1179
+ children: schemaValidationTypescriptBrief2.title
1180
+ }),
1181
+ /* @__PURE__ */ jsx5("p", {
1182
+ className: "text-lg text-muted-foreground",
1183
+ children: schemaValidationTypescriptBrief2.summary
1184
+ })
1185
+ ]
1186
+ }),
1187
+ /* @__PURE__ */ jsxs5("div", {
1188
+ className: "card-subtle space-y-4 p-6",
1189
+ children: [
1190
+ /* @__PURE__ */ jsx5("h2", {
1191
+ className: "font-bold text-2xl",
1192
+ children: "Validation Pain Points"
1193
+ }),
1194
+ /* @__PURE__ */ jsx5("ul", {
1195
+ className: "space-y-2 text-muted-foreground text-sm",
1196
+ children: schemaValidationTypescriptBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx5("li", {
1197
+ children: problem
1198
+ }, index))
1199
+ })
1200
+ ]
1201
+ }),
1202
+ /* @__PURE__ */ jsxs5("div", {
1203
+ className: "card-subtle space-y-4 p-6",
1204
+ children: [
1205
+ /* @__PURE__ */ jsx5("h2", {
1206
+ className: "font-bold text-2xl",
1207
+ children: "Type-safe Solutions"
1208
+ }),
1209
+ /* @__PURE__ */ jsx5("ul", {
1210
+ className: "space-y-2 text-muted-foreground text-sm",
1211
+ children: schemaValidationTypescriptBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx5("li", {
1212
+ children: solution
1213
+ }, index))
1214
+ })
1215
+ ]
1216
+ }),
1217
+ /* @__PURE__ */ jsxs5("div", {
1218
+ className: "space-y-6",
1219
+ children: [
1220
+ /* @__PURE__ */ jsxs5("div", {
1221
+ className: "space-y-3",
1222
+ children: [
1223
+ /* @__PURE__ */ jsx5("h2", {
1224
+ className: "font-bold text-2xl",
1225
+ children: "Contract Schema"
1226
+ }),
1227
+ /* @__PURE__ */ jsx5("p", {
1228
+ className: "text-muted-foreground text-sm",
1229
+ children: "Define data models with automatic TypeScript generation."
1230
+ }),
1231
+ /* @__PURE__ */ jsx5(CodeBlock5, {
1232
+ language: "typescript",
1233
+ filename: "src/contracts/user.schema.ts",
1234
+ code: `import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
1235
+
1236
+ export const UserSchema = new SchemaModel({
1237
+ type: 'object',
1238
+ properties: {
1239
+ id: {
1240
+ type: 'string',
1241
+ format: 'uuid',
1242
+ required: true,
1243
+ description: 'Unique user identifier',
1244
+ },
1245
+ email: {
1246
+ type: 'string',
1247
+ format: 'email',
1248
+ required: true,
1249
+ description: 'User email address',
1250
+ },
1251
+ name: {
1252
+ type: 'string',
1253
+ minLength: 1,
1254
+ maxLength: 100,
1255
+ required: true,
1256
+ description: 'Display name for the user',
1257
+ },
1258
+ role: {
1259
+ type: 'string',
1260
+ enum: ['user', 'admin', 'moderator'],
1261
+ default: 'user',
1262
+ description: 'User role in the system',
1263
+ },
1264
+ createdAt: {
1265
+ type: 'string',
1266
+ format: 'date-time',
1267
+ required: true,
1268
+ description: 'Account creation timestamp',
1269
+ },
1270
+ },
1271
+ required: ['id', 'email', 'name', 'createdAt'],
1272
+ metadata: {
1273
+ name: 'User',
1274
+ description: 'User account information',
1275
+ },
1276
+ });`
1277
+ })
1278
+ ]
1279
+ }),
1094
1280
  /* @__PURE__ */ jsxs5("div", {
1095
1281
  className: "space-y-3",
1096
1282
  children: [
1097
1283
  /* @__PURE__ */ jsx5("h2", {
1098
- className: "text-2xl font-bold",
1099
- children: "Export from Contracts"
1284
+ className: "font-bold text-2xl",
1285
+ children: "Generated Types"
1100
1286
  }),
1101
1287
  /* @__PURE__ */ jsx5("p", {
1102
1288
  className: "text-muted-foreground text-sm",
1103
- children: "Generate OpenAPI documentation from ContractSpec for existing tooling."
1289
+ children: "TypeScript types are automatically generated with proper validation."
1104
1290
  }),
1105
1291
  /* @__PURE__ */ jsx5(CodeBlock5, {
1106
- language: "bash",
1107
- filename: "export-openapi",
1108
- code: `# From ContractSpec contracts
1109
- contractspec openapi export \\
1110
- --registry ./src/contracts/registry.ts \\
1111
- --format yaml \\
1112
- --out ./openapi.yaml
1292
+ language: "typescript",
1293
+ filename: "generated/types/user.ts",
1294
+ code: `// Auto-generated from UserSchema
1295
+ export interface User {
1296
+ id: string;
1297
+ email: string;
1298
+ name: string;
1299
+ role: 'user' | 'admin' | 'moderator';
1300
+ createdAt: string;
1301
+ }
1113
1302
 
1114
- # Compare: Manual OpenAPI vs Generated
1115
- # Manual: Write OpenAPI by hand, maintain separately
1116
- # Generated: Single source of truth, always in sync`
1303
+ // Auto-generated Zod schema for runtime validation
1304
+ export const UserSchemaZod = z.object({
1305
+ id: z.string().uuid(),
1306
+ email: z.string().email(),
1307
+ name: z.string().min(1).max(100),
1308
+ role: z.enum(['user', 'admin', 'moderator']).default('user'),
1309
+ createdAt: z.string().datetime(),
1310
+ });
1311
+
1312
+ // Generated validation utilities
1313
+ export function validateUser(data: unknown): User {
1314
+ return UserSchemaZod.parse(data);
1315
+ }
1316
+
1317
+ export function isUser(data: unknown): data is User {
1318
+ return UserSchemaZod.safeParse(data).success;
1319
+ }`
1117
1320
  })
1118
1321
  ]
1119
1322
  }),
@@ -1121,47 +1324,45 @@ contractspec openapi export \\
1121
1324
  className: "space-y-3",
1122
1325
  children: [
1123
1326
  /* @__PURE__ */ jsx5("h2", {
1124
- className: "text-2xl font-bold",
1125
- children: "Beyond Documentation"
1327
+ className: "font-bold text-2xl",
1328
+ children: "Runtime Validation"
1126
1329
  }),
1127
1330
  /* @__PURE__ */ jsx5("p", {
1128
1331
  className: "text-muted-foreground text-sm",
1129
- children: "ContractSpec provides more than just API documentation."
1332
+ children: "Use generated validation in your API handlers with zero boilerplate."
1130
1333
  }),
1131
1334
  /* @__PURE__ */ jsx5(CodeBlock5, {
1132
1335
  language: "typescript",
1133
- filename: "multi-output-example.ts",
1134
- code: `// One contract, multiple outputs
1135
- import { UserApiContract } from './contracts/user-api.contract';
1336
+ filename: "src/handlers/user-handler.ts",
1337
+ code: `import { validateUser } from '../generated/types/user';
1136
1338
 
1137
- // Generated outputs
1138
- export const outputs = {
1139
- // API documentation (OpenAPI)
1140
- openapi: UserApiContract.toOpenAPI(),
1141
-
1142
- // Client SDKs (TypeScript, Python, etc.)
1143
- clients: UserApiContract.generateClients({
1144
- languages: ['typescript', 'python', 'go'],
1145
- }),
1146
-
1147
- // Database schemas (Prisma, Drizzle)
1148
- database: UserApiContract.toDatabase({
1149
- adapter: 'prisma',
1150
- }),
1151
-
1152
- // API handlers (Express, Fastify, Next.js)
1153
- handlers: UserApiContract.toHandlers({
1154
- framework: 'express',
1155
- }),
1156
-
1157
- // Validation middleware
1158
- validation: UserApiContract.toValidation({
1159
- library: 'zod',
1160
- }),
1161
-
1162
- // Type definitions
1163
- types: UserApiContract.toTypescript(),
1164
- };`
1339
+ export async function createUserHandler(request: Request) {
1340
+ try {
1341
+ const input = validateUser(await request.json());
1342
+
1343
+ // input is now fully typed as User
1344
+ const user = await db.users.create({
1345
+ data: {
1346
+ ...input,
1347
+ createdAt: new Date().toISOString(),
1348
+ },
1349
+ });
1350
+
1351
+ return Response.json({ user });
1352
+ } catch (error) {
1353
+ if (error instanceof z.ZodError) {
1354
+ return Response.json(
1355
+ {
1356
+ error: 'Validation failed',
1357
+ details: error.errors
1358
+ },
1359
+ { status: 400 }
1360
+ );
1361
+ }
1362
+
1363
+ throw error;
1364
+ }
1365
+ }`
1165
1366
  })
1166
1367
  ]
1167
1368
  })
@@ -1171,10 +1372,10 @@ export const outputs = {
1171
1372
  className: "flex items-center gap-4 pt-4",
1172
1373
  children: [
1173
1374
  /* @__PURE__ */ jsxs5(Link5, {
1174
- href: "/docs/guides/generate-docs-clients-schemas",
1375
+ href: "/docs/guides/spec-validation-and-typing",
1175
1376
  className: "btn-primary",
1176
1377
  children: [
1177
- "Generate from Contracts ",
1378
+ "Type Safety Guide ",
1178
1379
  /* @__PURE__ */ jsx5(ChevronRight5, {
1179
1380
  size: 16
1180
1381
  })
@@ -1191,15 +1392,15 @@ export const outputs = {
1191
1392
  });
1192
1393
  }
1193
1394
 
1194
- // src/components/docs/intent/GenerateClientFromSchemaPage.tsx
1195
- import { generateClientFromSchemaBrief as generateClientFromSchemaBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
1395
+ // src/components/docs/intent/SpecDrivenDevelopmentPage.tsx
1396
+ import { specDrivenDevelopmentBrief as specDrivenDevelopmentBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
1196
1397
  import { SeoOptimizer as SeoOptimizer6 } from "@contractspec/lib.content-gen/seo";
1197
1398
  import { CodeBlock as CodeBlock6 } from "@contractspec/lib.design-system";
1198
1399
  import Link6 from "@contractspec/lib.ui-link";
1199
1400
  import { ChevronRight as ChevronRight6 } from "lucide-react";
1200
1401
  import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
1201
- var metadata6 = new SeoOptimizer6().optimize(generateClientFromSchemaBrief2);
1202
- function GenerateClientFromSchemaPage() {
1402
+ var metadata6 = new SeoOptimizer6().optimize(specDrivenDevelopmentBrief2);
1403
+ function SpecDrivenDevelopmentPage() {
1203
1404
  return /* @__PURE__ */ jsxs6("div", {
1204
1405
  className: "space-y-8",
1205
1406
  children: [
@@ -1207,12 +1408,12 @@ function GenerateClientFromSchemaPage() {
1207
1408
  className: "space-y-3",
1208
1409
  children: [
1209
1410
  /* @__PURE__ */ jsx6("h1", {
1210
- className: "text-4xl font-bold",
1211
- children: generateClientFromSchemaBrief2.title
1411
+ className: "font-bold text-4xl",
1412
+ children: specDrivenDevelopmentBrief2.title
1212
1413
  }),
1213
1414
  /* @__PURE__ */ jsx6("p", {
1214
- className: "text-muted-foreground text-lg",
1215
- children: generateClientFromSchemaBrief2.summary
1415
+ className: "text-lg text-muted-foreground",
1416
+ children: specDrivenDevelopmentBrief2.summary
1216
1417
  })
1217
1418
  ]
1218
1419
  }),
@@ -1220,12 +1421,12 @@ function GenerateClientFromSchemaPage() {
1220
1421
  className: "card-subtle space-y-4 p-6",
1221
1422
  children: [
1222
1423
  /* @__PURE__ */ jsx6("h2", {
1223
- className: "text-2xl font-bold",
1224
- children: "Client Development Problems"
1424
+ className: "font-bold text-2xl",
1425
+ children: "Why Spec-driven?"
1225
1426
  }),
1226
1427
  /* @__PURE__ */ jsx6("ul", {
1227
- className: "text-muted-foreground space-y-2 text-sm",
1228
- children: generateClientFromSchemaBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx6("li", {
1428
+ className: "space-y-2 text-muted-foreground text-sm",
1429
+ children: specDrivenDevelopmentBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx6("li", {
1229
1430
  children: problem
1230
1431
  }, index))
1231
1432
  })
@@ -1235,12 +1436,12 @@ function GenerateClientFromSchemaPage() {
1235
1436
  className: "card-subtle space-y-4 p-6",
1236
1437
  children: [
1237
1438
  /* @__PURE__ */ jsx6("h2", {
1238
- className: "text-2xl font-bold",
1239
- children: "Automated Solutions"
1439
+ className: "font-bold text-2xl",
1440
+ children: "Benefits"
1240
1441
  }),
1241
1442
  /* @__PURE__ */ jsx6("ul", {
1242
- className: "text-muted-foreground space-y-2 text-sm",
1243
- children: generateClientFromSchemaBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx6("li", {
1443
+ className: "space-y-2 text-muted-foreground text-sm",
1444
+ children: specDrivenDevelopmentBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx6("li", {
1244
1445
  children: solution
1245
1446
  }, index))
1246
1447
  })
@@ -1253,64 +1454,27 @@ function GenerateClientFromSchemaPage() {
1253
1454
  className: "space-y-3",
1254
1455
  children: [
1255
1456
  /* @__PURE__ */ jsx6("h2", {
1256
- className: "text-2xl font-bold",
1257
- children: "Contract Definition"
1457
+ className: "font-bold text-2xl",
1458
+ children: "Feature Specification Example"
1258
1459
  }),
1259
1460
  /* @__PURE__ */ jsx6("p", {
1260
1461
  className: "text-muted-foreground text-sm",
1261
- children: "Define your API contract once, generate clients for any language."
1462
+ children: "Define a complete feature with operations, events, and data models."
1262
1463
  }),
1263
1464
  /* @__PURE__ */ jsx6(CodeBlock6, {
1264
1465
  language: "typescript",
1265
- filename: "src/contracts/api.contract.ts",
1266
- code: `import { defineContract } from '@contractspec/lib.contracts-spec';
1466
+ filename: "src/contracts/user-management.feature.ts",
1467
+ code: `import { defineFeature } from '@contractspec/lib.contracts-spec/features';
1468
+ import { defineOperation } from '@contractspec/lib.contracts-spec/operations';
1469
+ import { defineEvent } from '@contractspec/lib.contracts-spec/events';
1267
1470
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
1268
1471
 
1269
- export const ApiContract = defineContract({
1270
- name: 'MyAPI',
1271
- version: '1.0.0',
1272
- baseUrl: 'https://api.example.com',
1472
+ export const UserManagementFeature = defineFeature({
1473
+ goal: 'Complete user management system with CRUD operations',
1474
+ context: 'Handles user lifecycle from creation to deletion with proper authorization',
1273
1475
  operations: {
1274
- getUsers: {
1275
- goal: 'Retrieve paginated list of users',
1276
- method: 'GET',
1277
- path: '/users',
1278
- input: new SchemaModel({
1279
- type: 'object',
1280
- properties: {
1281
- page: { type: 'integer', minimum: 1, default: 1 },
1282
- limit: { type: 'integer', minimum: 1, maximum: 100, default: 20 },
1283
- },
1284
- }),
1285
- output: new SchemaModel({
1286
- type: 'object',
1287
- properties: {
1288
- users: {
1289
- type: 'array',
1290
- items: {
1291
- type: 'object',
1292
- properties: {
1293
- id: { type: 'string', required: true },
1294
- email: { type: 'string', required: true },
1295
- name: { type: 'string', required: true },
1296
- },
1297
- },
1298
- },
1299
- pagination: {
1300
- type: 'object',
1301
- properties: {
1302
- page: { type: 'integer', required: true },
1303
- limit: { type: 'integer', required: true },
1304
- total: { type: 'integer', required: true },
1305
- },
1306
- },
1307
- },
1308
- }),
1309
- },
1310
- createUser: {
1311
- goal: 'Create a new user account',
1312
- method: 'POST',
1313
- path: '/users',
1476
+ createUser: defineOperation({
1477
+ goal: 'Create a new user account',
1314
1478
  input: new SchemaModel({
1315
1479
  type: 'object',
1316
1480
  properties: {
@@ -1324,14 +1488,53 @@ export const ApiContract = defineContract({
1324
1488
  id: { type: 'string', required: true },
1325
1489
  email: { type: 'string', required: true },
1326
1490
  name: { type: 'string', required: true },
1327
- createdAt: { type: 'string', format: 'date-time', required: true },
1328
1491
  },
1329
1492
  }),
1330
- },
1493
+ }),
1494
+ updateUser: defineOperation({
1495
+ goal: 'Update existing user information',
1496
+ input: new SchemaModel({
1497
+ type: 'object',
1498
+ properties: {
1499
+ name: { type: 'string', minLength: 1 },
1500
+ },
1501
+ }),
1502
+ output: new SchemaModel({
1503
+ type: 'object',
1504
+ properties: {
1505
+ id: { type: 'string', required: true },
1506
+ email: { type: 'string', required: true },
1507
+ name: { type: 'string', required: true },
1508
+ },
1509
+ }),
1510
+ }),
1511
+ },
1512
+ events: {
1513
+ userCreated: defineEvent({
1514
+ goal: 'Emit when a new user is created',
1515
+ payload: new SchemaModel({
1516
+ type: 'object',
1517
+ properties: {
1518
+ userId: { type: 'string', required: true },
1519
+ email: { type: 'string', required: true },
1520
+ },
1521
+ }),
1522
+ }),
1523
+ userUpdated: defineEvent({
1524
+ goal: 'Emit when user information changes',
1525
+ payload: new SchemaModel({
1526
+ type: 'object',
1527
+ properties: {
1528
+ userId: { type: 'string', required: true },
1529
+ changes: { type: 'array', items: { type: 'string' }, required: true },
1530
+ },
1531
+ }),
1532
+ }),
1331
1533
  },
1332
1534
  metadata: {
1333
- description: 'User management API with authentication',
1334
- tags: ['users', 'authentication'],
1535
+ name: 'user-management',
1536
+ version: '1.0.0',
1537
+ description: 'Complete user management with operations and events',
1335
1538
  },
1336
1539
  });`
1337
1540
  })
@@ -1341,222 +1544,19 @@ export const ApiContract = defineContract({
1341
1544
  className: "space-y-3",
1342
1545
  children: [
1343
1546
  /* @__PURE__ */ jsx6("h2", {
1344
- className: "text-2xl font-bold",
1345
- children: "Generate Multiple Clients"
1547
+ className: "font-bold text-2xl",
1548
+ children: "Generate Type-safe Implementations"
1346
1549
  }),
1347
1550
  /* @__PURE__ */ jsx6("p", {
1348
1551
  className: "text-muted-foreground text-sm",
1349
- children: "Generate type-safe clients for any language from the same contract."
1552
+ children: "Generate validation, types, and API handlers from your feature."
1350
1553
  }),
1351
1554
  /* @__PURE__ */ jsx6(CodeBlock6, {
1352
1555
  language: "bash",
1353
- filename: "generate-clients",
1354
- code: `# Generate all supported language clients
1355
- contractspec generate clients \\
1356
- --contract ./src/contracts/api.contract.ts \\
1357
- --output ./generated/clients \\
1358
- --languages typescript,python,go,java,csharp
1359
-
1360
- # Generate specific language client
1361
- contractspec generate clients \\
1362
- --contract ./src/contracts/api.contract.ts \\
1363
- --output ./generated/clients \\
1364
- --languages typescript \\
1365
- --format npm-package
1366
-
1367
- # Options
1368
- # --with-types: Include TypeScript definitions
1369
- # --with-tests: Generate client test suites
1370
- # --with-docs: Include client documentation
1371
- # --framework: Use specific HTTP client framework`
1372
- })
1373
- ]
1374
- }),
1375
- /* @__PURE__ */ jsxs6("div", {
1376
- className: "space-y-3",
1377
- children: [
1378
- /* @__PURE__ */ jsx6("h2", {
1379
- className: "text-2xl font-bold",
1380
- children: "Generated Client Examples"
1381
- }),
1382
- /* @__PURE__ */ jsx6("p", {
1383
- className: "text-muted-foreground text-sm",
1384
- children: "Each generated client is fully type-safe and idiomatic."
1385
- }),
1386
- /* @__PURE__ */ jsxs6("div", {
1387
- className: "space-y-4",
1388
- children: [
1389
- /* @__PURE__ */ jsxs6("div", {
1390
- className: "card-subtle p-4",
1391
- children: [
1392
- /* @__PURE__ */ jsx6("h4", {
1393
- className: "text-lg font-semibold",
1394
- children: "TypeScript Client"
1395
- }),
1396
- /* @__PURE__ */ jsx6(CodeBlock6, {
1397
- language: "typescript",
1398
- filename: "generated/clients/typescript/index.ts",
1399
- code: `import { MyAPIClient } from './client';
1400
-
1401
- const client = new MyAPIClient({
1402
- baseUrl: 'https://api.example.com',
1403
- apiKey: process.env.API_KEY,
1404
- });
1405
-
1406
- // Type-safe method calls
1407
- const users = await client.getUsers({
1408
- page: 1,
1409
- limit: 10,
1410
- });
1411
-
1412
- const newUser = await client.createUser({
1413
- email: 'user@example.com',
1414
- name: 'John Doe',
1415
- });
1416
-
1417
- // Full type inference
1418
- // users: GetUsersResponse
1419
- // newUser: CreateUserResponse`
1420
- })
1421
- ]
1422
- }),
1423
- /* @__PURE__ */ jsxs6("div", {
1424
- className: "card-subtle p-4",
1425
- children: [
1426
- /* @__PURE__ */ jsx6("h4", {
1427
- className: "text-lg font-semibold",
1428
- children: "Python Client"
1429
- }),
1430
- /* @__PURE__ */ jsx6(CodeBlock6, {
1431
- language: "python",
1432
- filename: "generated/clients/python/index.py",
1433
- code: `from myapi_client import MyAPIClient
1434
-
1435
- client = MyAPIClient(
1436
- base_url='https://api.example.com',
1437
- api_key=os.getenv('API_KEY')
1438
- )
1439
-
1440
- # Type-safe method calls
1441
- users = await client.get_users(
1442
- page=1,
1443
- limit=10
1444
- )
1445
-
1446
- new_user = await client.create_user(
1447
- email='user@example.com',
1448
- name='John Doe'
1449
- )
1450
-
1451
- # Full type hints
1452
- # users: GetUsersResponse
1453
- # new_user: CreateUserResponse`
1454
- })
1455
- ]
1456
- }),
1457
- /* @__PURE__ */ jsxs6("div", {
1458
- className: "card-subtle p-4",
1459
- children: [
1460
- /* @__PURE__ */ jsx6("h4", {
1461
- className: "text-lg font-semibold",
1462
- children: "Go Client"
1463
- }),
1464
- /* @__PURE__ */ jsx6(CodeBlock6, {
1465
- language: "go",
1466
- filename: "generated/clients/go/client.go",
1467
- code: `package main
1468
-
1469
- import (
1470
- "context"
1471
- "myapi_client"
1472
- )
1473
-
1474
- func main() {
1475
- client := myapi_client.NewMyAPIClient(
1476
- myapi_client.WithBaseURL("https://api.example.com"),
1477
- myapi_client.WithAPIKey(os.Getenv("API_KEY")),
1478
- )
1479
-
1480
- // Type-safe method calls
1481
- users, err := client.GetUsers(&myapi_client.GetUsersParams{
1482
- Page: 1,
1483
- Limit: 10,
1484
- })
1485
-
1486
- newUser, err := client.CreateUser(&myapi_client.CreateUserParams{
1487
- Email: "user@example.com",
1488
- Name: "John Doe",
1489
- })
1490
-
1491
- // Full type checking at compile time
1492
- // users: *GetUsersResponse
1493
- // newUser: *CreateUserResponse
1494
- }`
1495
- })
1496
- ]
1497
- })
1498
- ]
1499
- })
1500
- ]
1501
- }),
1502
- /* @__PURE__ */ jsxs6("div", {
1503
- className: "space-y-3",
1504
- children: [
1505
- /* @__PURE__ */ jsx6("h2", {
1506
- className: "text-2xl font-bold",
1507
- children: "Advanced Features"
1508
- }),
1509
- /* @__PURE__ */ jsx6("p", {
1510
- className: "text-muted-foreground text-sm",
1511
- children: "Generated clients include enterprise-grade features out of the box."
1512
- }),
1513
- /* @__PURE__ */ jsx6(CodeBlock6, {
1514
- language: "typescript",
1515
- filename: "client-features.ts",
1516
- code: `// Advanced client features
1517
- const client = new MyAPIClient({
1518
- baseUrl: 'https://api.example.com',
1519
- apiKey: 'your-api-key',
1520
-
1521
- // Retry configuration
1522
- retryConfig: {
1523
- maxRetries: 3,
1524
- backoffMultiplier: 2,
1525
- maxDelay: 30000,
1526
- },
1527
-
1528
- // Request/Response interceptors
1529
- interceptors: {
1530
- request: [(config) => {
1531
- // Add authentication headers
1532
- config.headers.Authorization = \`Bearer \${await getAuthToken()}\`;
1533
- return config;
1534
- }],
1535
- response: [(response) => {
1536
- // Log API calls
1537
- console.log(\`API Call: \${response.config.method} \${response.config.url}\`);
1538
- return response;
1539
- }],
1540
- },
1541
-
1542
- // Error handling
1543
- errorHandler: (error) => {
1544
- if (error.status === 401) {
1545
- // Refresh token and retry
1546
- return refreshTokenAndRetry(error.originalRequest);
1547
- }
1548
- throw error;
1549
- },
1550
- });
1551
-
1552
- // Automatic request deduplication
1553
- const user1 = client.getUser({ id: '123' });
1554
- const user2 = client.getUser({ id: '123' }); // Uses cached result
1555
-
1556
- // Request cancellation
1557
- const controller = new AbortController();
1558
- const promise = client.getUsers({ page: 1, signal: controller.signal });
1559
- controller.abort(); // Cancels the request`
1556
+ filename: "generate-from-feature",
1557
+ code: `contractspec generate \\
1558
+ --input ./src/contracts/user-management.feature.ts \\
1559
+ --output ./generated/user-management`
1560
1560
  })
1561
1561
  ]
1562
1562
  })
@@ -1566,19 +1566,19 @@ controller.abort(); // Cancels the request`
1566
1566
  className: "flex items-center gap-4 pt-4",
1567
1567
  children: [
1568
1568
  /* @__PURE__ */ jsxs6(Link6, {
1569
- href: "/docs/guides/generate-docs-clients-schemas",
1569
+ href: "/docs/guides/spec-validation-and-typing",
1570
1570
  className: "btn-primary",
1571
1571
  children: [
1572
- "Client Generation Guide ",
1572
+ "Type Safety Guide ",
1573
1573
  /* @__PURE__ */ jsx6(ChevronRight6, {
1574
1574
  size: 16
1575
1575
  })
1576
1576
  ]
1577
1577
  }),
1578
1578
  /* @__PURE__ */ jsx6(Link6, {
1579
- href: "/docs/intent/contract-first-api",
1579
+ href: "/docs/intent/deterministic-codegen",
1580
1580
  className: "btn-ghost",
1581
- children: "Contract-first API"
1581
+ children: "Deterministic Codegen"
1582
1582
  })
1583
1583
  ]
1584
1584
  })