@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
@@ -1,8 +1,9 @@
1
- // src/components/docs/libraries/LibrariesOverviewPage.tsx
1
+ // src/components/docs/libraries/LibrariesAccessibilityPage.tsx
2
+ import { CodeBlock, InstallCommand } from "@contractspec/lib.design-system";
2
3
  import Link from "@contractspec/lib.ui-link";
3
4
  import { ChevronRight } from "lucide-react";
4
5
  import { jsx, jsxs } from "react/jsx-runtime";
5
- function LibrariesOverviewPage() {
6
+ function LibrariesAccessibilityPage() {
6
7
  return /* @__PURE__ */ jsxs("div", {
7
8
  className: "space-y-8",
8
9
  children: [
@@ -10,12 +11,12 @@ function LibrariesOverviewPage() {
10
11
  className: "space-y-4",
11
12
  children: [
12
13
  /* @__PURE__ */ jsx("h1", {
13
- className: "text-4xl font-bold",
14
- children: "Libraries Overview"
14
+ className: "font-bold text-4xl",
15
+ children: "@contractspec/lib.accessibility"
15
16
  }),
16
17
  /* @__PURE__ */ jsx("p", {
17
18
  className: "text-muted-foreground",
18
- children: "The LSSM ecosystem provides a comprehensive set of TypeScript libraries for building modern web and mobile applications. All libraries are designed to work together seamlessly while remaining modular and independently useful."
19
+ children: "Stable exports of accessibility primitives for LSSM web apps, ensuring WCAG compliance and inclusive design."
19
20
  })
20
21
  ]
21
22
  }),
@@ -23,188 +24,11 @@ function LibrariesOverviewPage() {
23
24
  className: "space-y-4",
24
25
  children: [
25
26
  /* @__PURE__ */ jsx("h2", {
26
- className: "text-2xl font-bold",
27
- children: "Core Libraries"
28
- }),
29
- /* @__PURE__ */ jsxs("div", {
30
- className: "grid gap-4 md:grid-cols-2",
31
- children: [
32
- /* @__PURE__ */ jsxs(Link, {
33
- href: "/docs/libraries/contracts",
34
- className: "card-subtle group p-6 transition-colors hover:border-violet-500/50",
35
- children: [
36
- /* @__PURE__ */ jsx("h3", {
37
- className: "text-lg font-bold transition-colors group-hover:text-violet-400",
38
- children: "@contractspec/lib.contracts-spec"
39
- }),
40
- /* @__PURE__ */ jsx("p", {
41
- className: "text-muted-foreground mt-2 text-sm",
42
- children: "Define operations, events, and policies in pure TypeScript. Runtime adapters serve them as REST/GraphQL/MCP endpoints."
43
- }),
44
- /* @__PURE__ */ jsxs("div", {
45
- className: "mt-3 flex items-center gap-2 text-sm text-violet-400",
46
- children: [
47
- "Learn more ",
48
- /* @__PURE__ */ jsx(ChevronRight, {
49
- size: 14
50
- })
51
- ]
52
- })
53
- ]
54
- }),
55
- /* @__PURE__ */ jsxs(Link, {
56
- href: "/docs/libraries/schema",
57
- className: "card-subtle group p-6 transition-colors hover:border-violet-500/50",
58
- children: [
59
- /* @__PURE__ */ jsx("h3", {
60
- className: "text-lg font-bold transition-colors group-hover:text-violet-400",
61
- children: "@contractspec/lib.schema"
62
- }),
63
- /* @__PURE__ */ jsx("p", {
64
- className: "text-muted-foreground mt-2 text-sm",
65
- children: "Type-safe schema models that export to Zod, Pothos GraphQL, and JSON Schema from a single source."
66
- }),
67
- /* @__PURE__ */ jsxs("div", {
68
- className: "mt-3 flex items-center gap-2 text-sm text-violet-400",
69
- children: [
70
- "Learn more ",
71
- /* @__PURE__ */ jsx(ChevronRight, {
72
- size: 14
73
- })
74
- ]
75
- })
76
- ]
77
- })
78
- ]
79
- })
80
- ]
81
- }),
82
- /* @__PURE__ */ jsxs("div", {
83
- className: "space-y-4",
84
- children: [
85
- /* @__PURE__ */ jsxs("h2", {
86
- className: "flex items-center gap-2 text-2xl font-bold",
87
- children: [
88
- "AI-Native Operations",
89
- /* @__PURE__ */ jsx("span", {
90
- className: "badge badge-secondary text-xs",
91
- children: "Featured"
92
- })
93
- ]
94
- }),
95
- /* @__PURE__ */ jsx("div", {
96
- className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3",
97
- children: [
98
- {
99
- title: "@contractspec/lib.ai-agent",
100
- description: "Agent specs, runner, memory, and approval workflow for safe AI copilots.",
101
- href: "/docs/libraries/ai-agent"
102
- },
103
- {
104
- title: "@contractspec/lib.support-bot",
105
- description: "Classification, RAG resolver, auto-responder, and performance loop for L1 automation.",
106
- href: "/docs/libraries/support-bot"
107
- },
108
- {
109
- title: "@contractspec/lib.content-gen",
110
- description: "Blog, landing, email, social, and SEO generators powered by ContentBriefs.",
111
- href: "/docs/libraries/content-gen"
112
- },
113
- {
114
- title: "@contractspec/lib.analytics",
115
- description: "Funnels, cohorts, churn scoring, and hypothesis generation without a warehouse.",
116
- href: "/docs/libraries/analytics"
117
- },
118
- {
119
- title: "@contractspec/lib.growth",
120
- description: "Experiment registry, runner, tracker, and stats engine for deterministic A/B tests.",
121
- href: "/docs/libraries/growth"
122
- },
123
- {
124
- title: "@contractspec/lib.design-system",
125
- description: "Now includes ApprovalQueue + AgentMonitor for human-in-the-loop decisions.",
126
- href: "/docs/libraries/design-system"
127
- }
128
- ].map((lib) => /* @__PURE__ */ jsxs(Link, {
129
- href: lib.href,
130
- className: "card-subtle group p-6 transition-colors hover:border-violet-500/50",
131
- children: [
132
- /* @__PURE__ */ jsx("h3", {
133
- className: "text-lg font-bold transition-colors group-hover:text-violet-400",
134
- children: lib.title
135
- }),
136
- /* @__PURE__ */ jsx("p", {
137
- className: "text-muted-foreground mt-2 text-sm",
138
- children: lib.description
139
- }),
140
- /* @__PURE__ */ jsxs("div", {
141
- className: "mt-3 flex items-center gap-2 text-sm text-violet-400",
142
- children: [
143
- "Learn more ",
144
- /* @__PURE__ */ jsx(ChevronRight, {
145
- size: 14
146
- })
147
- ]
148
- })
149
- ]
150
- }, lib.title))
151
- })
152
- ]
153
- }),
154
- /* @__PURE__ */ jsxs("div", {
155
- className: "space-y-4",
156
- children: [
157
- /* @__PURE__ */ jsxs("h2", {
158
- className: "flex items-center gap-2 text-2xl font-bold",
159
- children: [
160
- "Personalization & Customization",
161
- /* @__PURE__ */ jsx("span", {
162
- className: "badge badge-primary text-xs",
163
- children: "Featured"
164
- })
165
- ]
27
+ className: "font-bold text-2xl",
28
+ children: "Installation"
166
29
  }),
167
- /* @__PURE__ */ jsx("div", {
168
- className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3",
169
- children: [
170
- {
171
- title: "@contractspec/lib.personalization",
172
- description: "Track behavior, analyze unused UI, and feed overlay/workflow adapters.",
173
- href: "/docs/libraries/personalization"
174
- },
175
- {
176
- title: "@contractspec/lib.overlay-engine",
177
- description: "Signed overlays with validator, registry, runtime engine, and React hooks.",
178
- href: "/docs/libraries/overlay-engine"
179
- },
180
- {
181
- title: "@contractspec/lib.workflow-composer",
182
- description: "Tenant-aware workflow extensions with step injection helpers.",
183
- href: "/docs/libraries/workflow-composer"
184
- }
185
- ].map((lib) => /* @__PURE__ */ jsxs(Link, {
186
- href: lib.href,
187
- className: "card-subtle group p-6 transition-colors hover:border-violet-500/50",
188
- children: [
189
- /* @__PURE__ */ jsx("h3", {
190
- className: "text-lg font-bold transition-colors group-hover:text-violet-400",
191
- children: lib.title
192
- }),
193
- /* @__PURE__ */ jsx("p", {
194
- className: "text-muted-foreground mt-2 text-sm",
195
- children: lib.description
196
- }),
197
- /* @__PURE__ */ jsxs("div", {
198
- className: "mt-3 flex items-center gap-2 text-sm text-violet-400",
199
- children: [
200
- "Learn more ",
201
- /* @__PURE__ */ jsx(ChevronRight, {
202
- size: 14
203
- })
204
- ]
205
- })
206
- ]
207
- }, lib.title))
30
+ /* @__PURE__ */ jsx(InstallCommand, {
31
+ package: "@contractspec/lib.accessibility"
208
32
  })
209
33
  ]
210
34
  }),
@@ -212,132 +36,70 @@ function LibrariesOverviewPage() {
212
36
  className: "space-y-4",
213
37
  children: [
214
38
  /* @__PURE__ */ jsx("h2", {
215
- className: "text-2xl font-bold",
216
- children: "UI Libraries"
39
+ className: "font-bold text-2xl",
40
+ children: "Exports"
217
41
  }),
218
- /* @__PURE__ */ jsxs("div", {
219
- className: "grid gap-4 md:grid-cols-2",
42
+ /* @__PURE__ */ jsxs("ul", {
43
+ className: "space-y-2 text-muted-foreground",
220
44
  children: [
221
- /* @__PURE__ */ jsxs(Link, {
222
- href: "/docs/libraries/ui-kit",
223
- className: "card-subtle group p-6 transition-colors hover:border-violet-500/50",
45
+ /* @__PURE__ */ jsxs("li", {
224
46
  children: [
225
- /* @__PURE__ */ jsx("h3", {
226
- className: "text-lg font-bold transition-colors group-hover:text-violet-400",
227
- children: "@contractspec/lib.ui-kit"
228
- }),
229
- /* @__PURE__ */ jsx("p", {
230
- className: "text-muted-foreground mt-2 text-sm",
231
- children: "Universal UI components for React Native and Web, built on NativeWind and @rn-primitives."
47
+ /* @__PURE__ */ jsx("code", {
48
+ className: "rounded bg-background/50 px-2 py-1",
49
+ children: "SkipLink"
232
50
  }),
233
- /* @__PURE__ */ jsxs("div", {
234
- className: "mt-3 flex items-center gap-2 text-sm text-violet-400",
235
- children: [
236
- "Learn more ",
237
- /* @__PURE__ */ jsx(ChevronRight, {
238
- size: 14
239
- })
240
- ]
241
- })
51
+ ": A link to skip navigation, visible on focus"
242
52
  ]
243
53
  }),
244
- /* @__PURE__ */ jsxs(Link, {
245
- href: "/docs/libraries/design-system",
246
- className: "card-subtle group p-6 transition-colors hover:border-violet-500/50",
54
+ /* @__PURE__ */ jsxs("li", {
247
55
  children: [
248
- /* @__PURE__ */ jsx("h3", {
249
- className: "text-lg font-bold transition-colors group-hover:text-violet-400",
250
- children: "@contractspec/lib.design-system"
251
- }),
252
- /* @__PURE__ */ jsx("p", {
253
- className: "text-muted-foreground mt-2 text-sm",
254
- children: "High-level design system components, patterns, and layouts. Built on top of ui-kit."
56
+ /* @__PURE__ */ jsx("code", {
57
+ className: "rounded bg-background/50 px-2 py-1",
58
+ children: "VisuallyHidden"
255
59
  }),
256
- /* @__PURE__ */ jsxs("div", {
257
- className: "mt-3 flex items-center gap-2 text-sm text-violet-400",
258
- children: [
259
- "Learn more ",
260
- /* @__PURE__ */ jsx(ChevronRight, {
261
- size: 14
262
- })
263
- ]
264
- })
60
+ ": Hide content visually but keep it for screen readers"
265
61
  ]
266
62
  }),
267
- /* @__PURE__ */ jsxs(Link, {
268
- href: "/docs/libraries/accessibility",
269
- className: "card-subtle group p-6 transition-colors hover:border-violet-500/50",
63
+ /* @__PURE__ */ jsxs("li", {
270
64
  children: [
271
- /* @__PURE__ */ jsx("h3", {
272
- className: "text-lg font-bold transition-colors group-hover:text-violet-400",
273
- children: "@contractspec/lib.accessibility"
65
+ /* @__PURE__ */ jsx("code", {
66
+ className: "rounded bg-background/50 px-2 py-1",
67
+ children: "SRLiveRegionProvider"
274
68
  }),
275
- /* @__PURE__ */ jsx("p", {
276
- className: "text-muted-foreground mt-2 text-sm",
277
- children: "Accessibility primitives for WCAG compliance: skip links, live regions, focus management, and more."
69
+ ",",
70
+ " ",
71
+ /* @__PURE__ */ jsx("code", {
72
+ className: "rounded bg-background/50 px-2 py-1",
73
+ children: "useSRLiveRegion"
278
74
  }),
279
- /* @__PURE__ */ jsxs("div", {
280
- className: "mt-3 flex items-center gap-2 text-sm text-violet-400",
281
- children: [
282
- "Learn more ",
283
- /* @__PURE__ */ jsx(ChevronRight, {
284
- size: 14
285
- })
286
- ]
287
- })
75
+ ": Manage live region announcements"
288
76
  ]
289
- })
290
- ]
291
- })
292
- ]
293
- }),
294
- /* @__PURE__ */ jsxs("div", {
295
- className: "space-y-4",
296
- children: [
297
- /* @__PURE__ */ jsx("h2", {
298
- className: "text-2xl font-bold",
299
- children: "Data & Backend"
300
- }),
301
- /* @__PURE__ */ jsxs("div", {
302
- className: "grid gap-4 md:grid-cols-3",
303
- children: [
304
- /* @__PURE__ */ jsxs("div", {
305
- className: "card-subtle p-4",
77
+ }),
78
+ /* @__PURE__ */ jsxs("li", {
306
79
  children: [
307
- /* @__PURE__ */ jsx("h3", {
308
- className: "font-semibold",
309
- children: "@contractspec/app.cli-database"
80
+ /* @__PURE__ */ jsx("code", {
81
+ className: "rounded bg-background/50 px-2 py-1",
82
+ children: "RouteAnnouncer"
310
83
  }),
311
- /* @__PURE__ */ jsx("p", {
312
- className: "text-muted-foreground mt-2 text-sm",
313
- children: "Prisma wrapper and CLI for schema management"
314
- })
84
+ ": Announce page title/path changes on navigation"
315
85
  ]
316
86
  }),
317
- /* @__PURE__ */ jsxs("div", {
318
- className: "card-subtle p-4",
87
+ /* @__PURE__ */ jsxs("li", {
319
88
  children: [
320
- /* @__PURE__ */ jsx("h3", {
321
- className: "font-semibold",
322
- children: "@contractspec/lib.bus"
89
+ /* @__PURE__ */ jsx("code", {
90
+ className: "rounded bg-background/50 px-2 py-1",
91
+ children: "FocusOnRouteChange"
323
92
  }),
324
- /* @__PURE__ */ jsx("p", {
325
- className: "text-muted-foreground mt-2 text-sm",
326
- children: "Type-safe event bus for in-memory and distributed events"
327
- })
93
+ ": Reset focus to body or main content on navigation"
328
94
  ]
329
95
  }),
330
- /* @__PURE__ */ jsxs("div", {
331
- className: "card-subtle p-4",
96
+ /* @__PURE__ */ jsxs("li", {
332
97
  children: [
333
- /* @__PURE__ */ jsx("h3", {
334
- className: "font-semibold",
335
- children: "@contractspec/lib.logger"
98
+ /* @__PURE__ */ jsx("code", {
99
+ className: "rounded bg-background/50 px-2 py-1",
100
+ children: "useReducedMotion"
336
101
  }),
337
- /* @__PURE__ */ jsx("p", {
338
- className: "text-muted-foreground mt-2 text-sm",
339
- children: "Structured logging optimized for Bun with Elysia integration"
340
- })
102
+ ": Detect if the user prefers reduced motion"
341
103
  ]
342
104
  })
343
105
  ]
@@ -348,52 +110,32 @@ function LibrariesOverviewPage() {
348
110
  className: "space-y-4",
349
111
  children: [
350
112
  /* @__PURE__ */ jsx("h2", {
351
- className: "text-2xl font-bold",
352
- children: "GraphQL"
113
+ className: "font-bold text-2xl",
114
+ children: "Example: App Setup"
353
115
  }),
354
- /* @__PURE__ */ jsxs("div", {
355
- className: "grid gap-4 md:grid-cols-3",
356
- children: [
357
- /* @__PURE__ */ jsxs("div", {
358
- className: "card-subtle p-4",
359
- children: [
360
- /* @__PURE__ */ jsx("h3", {
361
- className: "font-semibold",
362
- children: "@contractspec/lib.graphql-core"
363
- }),
364
- /* @__PURE__ */ jsx("p", {
365
- className: "text-muted-foreground mt-2 text-sm",
366
- children: "Shared Pothos builder with plugins"
367
- })
368
- ]
369
- }),
370
- /* @__PURE__ */ jsxs("div", {
371
- className: "card-subtle p-4",
372
- children: [
373
- /* @__PURE__ */ jsx("h3", {
374
- className: "font-semibold",
375
- children: "@contractspec/lib.graphql-prisma"
376
- }),
377
- /* @__PURE__ */ jsx("p", {
378
- className: "text-muted-foreground mt-2 text-sm",
379
- children: "Prisma integration for Pothos schemas"
380
- })
381
- ]
382
- }),
383
- /* @__PURE__ */ jsxs("div", {
384
- className: "card-subtle p-4",
385
- children: [
386
- /* @__PURE__ */ jsx("h3", {
387
- className: "font-semibold",
388
- children: "@contractspec/lib.graphql-federation"
389
- }),
390
- /* @__PURE__ */ jsx("p", {
391
- className: "text-muted-foreground mt-2 text-sm",
392
- children: "Apollo Federation support for Pothos"
393
- })
394
- ]
395
- })
396
- ]
116
+ /* @__PURE__ */ jsx(CodeBlock, {
117
+ language: "tsx",
118
+ code: `import {
119
+ SRLiveRegionProvider,
120
+ RouteAnnouncer,
121
+ SkipLink
122
+ } from '@contractspec/lib.accessibility';
123
+
124
+ export function RootLayout({ children }) {
125
+ return (
126
+ <html lang="en">
127
+ <body>
128
+ <SRLiveRegionProvider>
129
+ <SkipLink />
130
+ <RouteAnnouncer />
131
+ <main id="main-content">
132
+ {children}
133
+ </main>
134
+ </SRLiveRegionProvider>
135
+ </body>
136
+ </html>
137
+ );
138
+ }`
397
139
  })
398
140
  ]
399
141
  }),
@@ -401,55 +143,57 @@ function LibrariesOverviewPage() {
401
143
  className: "space-y-4",
402
144
  children: [
403
145
  /* @__PURE__ */ jsx("h2", {
404
- className: "text-2xl font-bold",
405
- children: "Philosophy"
146
+ className: "font-bold text-2xl",
147
+ children: "Example: Live Announcements"
406
148
  }),
407
- /* @__PURE__ */ jsx("p", {
149
+ /* @__PURE__ */ jsx(CodeBlock, {
150
+ language: "tsx",
151
+ code: `import { useSRLiveRegion } from '@contractspec/lib.accessibility';
152
+
153
+ export function TodoList() {
154
+ const { announce } = useSRLiveRegion();
155
+
156
+ const addTodo = () => {
157
+ // ... add logic
158
+ announce('Todo added successfully', 'polite');
159
+ };
160
+
161
+ return <button onClick={addTodo}>Add Todo</button>;
162
+ }`
163
+ })
164
+ ]
165
+ }),
166
+ /* @__PURE__ */ jsxs("div", {
167
+ className: "space-y-4",
168
+ children: [
169
+ /* @__PURE__ */ jsx("h2", {
170
+ className: "font-bold text-2xl",
171
+ children: "WCAG Compliance"
172
+ }),
173
+ /* @__PURE__ */ jsxs("p", {
408
174
  className: "text-muted-foreground",
409
- children: "All LSSM libraries follow these principles:"
175
+ children: [
176
+ "These components map directly to WCAG 2.1 Level AA requirements documented in ",
177
+ /* @__PURE__ */ jsx("code", {
178
+ children: "docs/accessibility_wcag_compliance_specs.md"
179
+ }),
180
+ ":"
181
+ ]
410
182
  }),
411
183
  /* @__PURE__ */ jsxs("ul", {
412
- className: "text-muted-foreground list-inside list-disc space-y-2",
184
+ className: "list-inside list-disc space-y-2 text-muted-foreground",
413
185
  children: [
414
- /* @__PURE__ */ jsxs("li", {
415
- children: [
416
- /* @__PURE__ */ jsx("strong", {
417
- children: "Type Safety First"
418
- }),
419
- ": Full TypeScript support with strict types."
420
- ]
421
- }),
422
- /* @__PURE__ */ jsxs("li", {
423
- children: [
424
- /* @__PURE__ */ jsx("strong", {
425
- children: "Modular"
426
- }),
427
- ": Use only what you need, tree-shake the rest."
428
- ]
186
+ /* @__PURE__ */ jsx("li", {
187
+ children: "2.4.1 Bypass Blocks (SkipLink)"
429
188
  }),
430
- /* @__PURE__ */ jsxs("li", {
431
- children: [
432
- /* @__PURE__ */ jsx("strong", {
433
- children: "Platform Aware"
434
- }),
435
- ": Optimized for both Web and Native where applicable."
436
- ]
189
+ /* @__PURE__ */ jsx("li", {
190
+ children: "4.1.3 Status Messages (LiveRegion)"
437
191
  }),
438
- /* @__PURE__ */ jsxs("li", {
439
- children: [
440
- /* @__PURE__ */ jsx("strong", {
441
- children: "Single Source of Truth"
442
- }),
443
- ": Avoid duplication between layers (REST, GraphQL, Zod)."
444
- ]
192
+ /* @__PURE__ */ jsx("li", {
193
+ children: "2.4.3 Focus Order (FocusOnRouteChange)"
445
194
  }),
446
- /* @__PURE__ */ jsxs("li", {
447
- children: [
448
- /* @__PURE__ */ jsx("strong", {
449
- children: "Developer Experience"
450
- }),
451
- ": Clear APIs, comprehensive docs, and helpful error messages."
452
- ]
195
+ /* @__PURE__ */ jsx("li", {
196
+ children: "2.3.3 Animation from Interactions (useReducedMotion)"
453
197
  })
454
198
  ]
455
199
  })
@@ -458,20 +202,20 @@ function LibrariesOverviewPage() {
458
202
  /* @__PURE__ */ jsxs("div", {
459
203
  className: "flex items-center gap-4 pt-4",
460
204
  children: [
205
+ /* @__PURE__ */ jsx(Link, {
206
+ href: "/docs/libraries/design-system",
207
+ className: "btn-ghost",
208
+ children: "Previous: Design System"
209
+ }),
461
210
  /* @__PURE__ */ jsxs(Link, {
462
- href: "/docs/libraries/contracts",
211
+ href: "/docs/libraries",
463
212
  className: "btn-primary",
464
213
  children: [
465
- "Explore Contracts ",
214
+ "Back to Libraries ",
466
215
  /* @__PURE__ */ jsx(ChevronRight, {
467
216
  size: 16
468
217
  })
469
218
  ]
470
- }),
471
- /* @__PURE__ */ jsx(Link, {
472
- href: "/docs/getting-started",
473
- className: "btn-ghost",
474
- children: "Getting Started"
475
219
  })
476
220
  ]
477
221
  })
@@ -479,12 +223,12 @@ function LibrariesOverviewPage() {
479
223
  });
480
224
  }
481
225
 
482
- // src/components/docs/libraries/LibrariesContractsPage.tsx
226
+ // src/components/docs/libraries/LibrariesAiAgentPage.tsx
227
+ import { CodeBlock as CodeBlock2, InstallCommand as InstallCommand2 } from "@contractspec/lib.design-system";
483
228
  import Link2 from "@contractspec/lib.ui-link";
484
229
  import { ChevronRight as ChevronRight2 } from "lucide-react";
485
- import { CodeBlock, InstallCommand } from "@contractspec/lib.design-system";
486
230
  import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
487
- function LibrariesContractsPage() {
231
+ function LibrariesAiAgentPage() {
488
232
  return /* @__PURE__ */ jsxs2("div", {
489
233
  className: "space-y-8",
490
234
  children: [
@@ -492,12 +236,12 @@ function LibrariesContractsPage() {
492
236
  className: "space-y-4",
493
237
  children: [
494
238
  /* @__PURE__ */ jsx2("h1", {
495
- className: "text-4xl font-bold",
496
- children: "@contractspec/lib.contracts-spec"
239
+ className: "font-bold text-4xl",
240
+ children: "@contractspec/lib.ai-agent"
497
241
  }),
498
242
  /* @__PURE__ */ jsx2("p", {
499
- className: "text-muted-foreground text-lg",
500
- children: "The core library for defining what your application can do. Unified specifications for Operations, Events, Presentations, and Features."
243
+ className: "text-lg text-muted-foreground",
244
+ children: "Define AI agents in TypeScript, run them with deterministic tool calling, capture working memory, and route low-confidence decisions to human reviewers."
501
245
  })
502
246
  ]
503
247
  }),
@@ -505,253 +249,116 @@ function LibrariesContractsPage() {
505
249
  className: "space-y-4",
506
250
  children: [
507
251
  /* @__PURE__ */ jsx2("h2", {
508
- className: "text-2xl font-bold",
252
+ className: "font-bold text-2xl",
509
253
  children: "Installation"
510
254
  }),
511
- /* @__PURE__ */ jsx2(InstallCommand, {
512
- package: [
513
- "@contractspec/lib.contracts-spec",
514
- "@contractspec/lib.schema"
515
- ]
255
+ /* @__PURE__ */ jsx2(InstallCommand2, {
256
+ package: "@contractspec/lib.ai-agent"
516
257
  })
517
258
  ]
518
259
  }),
519
260
  /* @__PURE__ */ jsxs2("div", {
520
- className: "space-y-4",
261
+ className: "space-y-3",
521
262
  children: [
522
263
  /* @__PURE__ */ jsx2("h2", {
523
- className: "text-2xl font-bold",
524
- children: "What lives where"
264
+ className: "font-bold text-2xl",
265
+ children: "Define & register"
525
266
  }),
526
- /* @__PURE__ */ jsxs2("ul", {
527
- className: "text-muted-foreground list-inside list-disc space-y-2",
528
- children: [
529
- /* @__PURE__ */ jsxs2("li", {
530
- children: [
531
- /* @__PURE__ */ jsx2("strong", {
532
- children: "@contractspec/lib.contracts-spec"
533
- }),
534
- " (root): The core contracts definitions (OperationSpec, PresentationSpec, Registry)."
535
- ]
536
- }),
537
- /* @__PURE__ */ jsxs2("li", {
538
- children: [
539
- /* @__PURE__ */ jsx2("strong", {
540
- children: "@contractspec/lib.contracts-runtime-client-react"
541
- }),
542
- ": Browser-safe helpers (React renderers, client SDK). Import this for web/React Native."
543
- ]
544
- }),
545
- /* @__PURE__ */ jsxs2("li", {
546
- children: [
547
- /* @__PURE__ */ jsx2("strong", {
548
- children: "@contractspec/lib.contracts-runtime-server-rest"
549
- }),
550
- ": HTTP/MCP adapters, registries, integrations (Node-only)."
551
- ]
552
- }),
553
- /* @__PURE__ */ jsxs2("li", {
554
- children: [
555
- /* @__PURE__ */ jsx2("strong", {
556
- children: "@contractspec/lib.schema"
557
- }),
558
- ": Schema dictionary (SchemaModel, FieldType) for I/O definitions."
559
- ]
560
- })
561
- ]
267
+ /* @__PURE__ */ jsx2(CodeBlock2, {
268
+ language: "typescript",
269
+ code: `import { defineAgent, AgentRegistry } from '@contractspec/lib.ai-agent';
270
+
271
+ const SupportBot = defineAgent({
272
+ meta: { name: 'support.bot', version: '1.0.0' },
273
+ instructions: 'Resolve tickets. Escalate when confidence < 0.75.',
274
+ tools: [{ name: 'support_resolve_ticket' }],
275
+ policy: {
276
+ confidence: { min: 0.7, default: 0.6 },
277
+ escalation: { confidenceThreshold: 0.75 },
278
+ },
279
+ });
280
+
281
+ const registry = new AgentRegistry().register(SupportBot);`
562
282
  })
563
283
  ]
564
284
  }),
565
285
  /* @__PURE__ */ jsxs2("div", {
566
- className: "space-y-4",
286
+ className: "space-y-3",
567
287
  children: [
568
288
  /* @__PURE__ */ jsx2("h2", {
569
- className: "text-2xl font-bold",
570
- children: "Quick Example"
289
+ className: "font-bold text-2xl",
290
+ children: "Run with approvals"
571
291
  }),
572
- /* @__PURE__ */ jsx2(CodeBlock, {
292
+ /* @__PURE__ */ jsx2(CodeBlock2, {
573
293
  language: "typescript",
574
- code: `import { defineCommand } from '@contractspec/lib.contracts-spec';
575
- import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
294
+ code: `import { AgentRunner, ToolExecutor, ApprovalWorkflow } from '@contractspec/lib.ai-agent';
576
295
 
577
- const CreateUserInput = new SchemaModel({
578
- name: 'CreateUserInput',
579
- fields: {
580
- email: { type: ScalarTypeEnum.Email(), isOptional: false },
581
- name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
582
- },
296
+ const runner = new AgentRunner({
297
+ registry,
298
+ llm: mistralProvider,
299
+ toolExecutor: new ToolExecutor({ tools: supportTools }),
300
+ approvalWorkflow: new ApprovalWorkflow(),
583
301
  });
584
302
 
585
- export const CreateUser = defineCommand({
586
- meta: {
587
- key: 'users.createUser',
588
- version: '1.0.0',
589
- description: 'Create a new user account',
590
- },
591
- io: {
592
- input: CreateUserInput,
593
- output: /* ... */,
594
- },
595
- policy: { auth: 'admin' },
596
- });`
303
+ const result = await runner.run({ agent: 'support.bot', input: ticket.body });
304
+ if (result.approvalRequestId) {
305
+ // show in ApprovalQueue UI
306
+ }`
597
307
  })
598
308
  ]
599
309
  }),
600
310
  /* @__PURE__ */ jsxs2("div", {
601
- className: "space-y-4",
311
+ className: "space-y-3",
602
312
  children: [
603
313
  /* @__PURE__ */ jsx2("h2", {
604
- className: "text-2xl font-bold",
605
- children: "Core Concepts"
314
+ className: "font-bold text-2xl",
315
+ children: "What's inside"
606
316
  }),
607
317
  /* @__PURE__ */ jsxs2("ul", {
608
- className: "text-muted-foreground list-inside list-disc space-y-2",
318
+ className: "list-inside list-disc space-y-2 text-muted-foreground",
609
319
  children: [
610
320
  /* @__PURE__ */ jsxs2("li", {
611
321
  children: [
612
- /* @__PURE__ */ jsx2("strong", {
613
- children: "OperationSpec"
614
- }),
615
- ": Immutable description of an operation (Command or Query). Defines I/O, policy, and metadata."
616
- ]
617
- }),
618
- /* @__PURE__ */ jsxs2("li", {
619
- children: [
620
- /* @__PURE__ */ jsx2("strong", {
621
- children: "OperationSpecRegistry"
622
- }),
623
- ": Registry of specs + handlers. Use ",
624
322
  /* @__PURE__ */ jsx2("code", {
625
- className: "font-mono text-xs",
626
- children: "installOp"
627
- }),
628
- " ",
629
- "to attach a handler."
630
- ]
631
- }),
632
- /* @__PURE__ */ jsxs2("li", {
633
- children: [
634
- /* @__PURE__ */ jsx2("strong", {
635
- children: "CapabilitySpec"
636
- }),
637
- ": Canonical capability declaration (requires/provides)."
638
- ]
639
- }),
640
- /* @__PURE__ */ jsxs2("li", {
641
- children: [
642
- /* @__PURE__ */ jsx2("strong", {
643
- children: "PolicySpec"
644
- }),
645
- ": Declarative policy rules (ABAC/ReBAC, rate limits)."
646
- ]
647
- }),
648
- /* @__PURE__ */ jsxs2("li", {
649
- children: [
650
- /* @__PURE__ */ jsx2("strong", {
651
- children: "TelemetrySpec"
652
- }),
653
- ": Analytics definitions and privacy levels."
654
- ]
655
- }),
656
- /* @__PURE__ */ jsxs2("li", {
657
- children: [
658
- /* @__PURE__ */ jsx2("strong", {
659
- children: "PresentationSpec (V2)"
660
- }),
661
- ": Describes how data is rendered (Web Components, Markdown, Data)."
662
- ]
663
- })
664
- ]
665
- })
666
- ]
667
- }),
668
- /* @__PURE__ */ jsxs2("div", {
669
- className: "space-y-4",
670
- children: [
671
- /* @__PURE__ */ jsx2("h2", {
672
- className: "text-2xl font-bold",
673
- children: "Lifecycle"
674
- }),
675
- /* @__PURE__ */ jsxs2("ol", {
676
- className: "text-muted-foreground list-inside list-decimal space-y-2",
677
- children: [
678
- /* @__PURE__ */ jsxs2("li", {
679
- children: [
680
- /* @__PURE__ */ jsx2("strong", {
681
- children: "Define"
323
+ children: "defineAgent"
682
324
  }),
683
- " the spec (I/O via SchemaModel or Zod)."
684
- ]
685
- }),
686
- /* @__PURE__ */ jsxs2("li", {
687
- children: [
688
- /* @__PURE__ */ jsx2("strong", {
689
- children: "Register"
325
+ ", ",
326
+ /* @__PURE__ */ jsx2("code", {
327
+ children: "AgentRegistry"
690
328
  }),
691
- " it:",
329
+ ",",
692
330
  " ",
693
331
  /* @__PURE__ */ jsx2("code", {
694
- className: "font-mono text-xs",
695
- children: "installOp(registry, spec, handler)"
696
- }),
697
- "."
332
+ children: "AgentRunner"
333
+ })
698
334
  ]
699
335
  }),
700
336
  /* @__PURE__ */ jsxs2("li", {
701
337
  children: [
702
- /* @__PURE__ */ jsx2("strong", {
703
- children: "Expose"
338
+ /* @__PURE__ */ jsx2("code", {
339
+ children: "ToolExecutor"
704
340
  }),
705
- " it via an adapter (REST, GraphQL, MCP)."
341
+ " with schema-enforced tool definitions"
706
342
  ]
707
343
  }),
708
- /* @__PURE__ */ jsxs2("li", {
709
- children: [
710
- /* @__PURE__ */ jsx2("strong", {
711
- children: "Validate"
712
- }),
713
- " at runtime automatically."
714
- ]
715
- })
716
- ]
717
- })
718
- ]
719
- }),
720
- /* @__PURE__ */ jsxs2("div", {
721
- className: "space-y-4",
722
- children: [
723
- /* @__PURE__ */ jsx2("h2", {
724
- className: "text-2xl font-bold",
725
- children: "Adapters"
726
- }),
727
- /* @__PURE__ */ jsxs2("ul", {
728
- className: "text-muted-foreground space-y-2",
729
- children: [
730
344
  /* @__PURE__ */ jsxs2("li", {
731
345
  children: [
732
346
  /* @__PURE__ */ jsx2("code", {
733
- className: "bg-background/50 rounded px-2 py-1",
734
- children: "server/rest-next-app"
347
+ children: "InMemoryAgentMemory"
735
348
  }),
736
- ": Next.js App Router adapter"
349
+ " plus interfaces for custom stores"
737
350
  ]
738
351
  }),
739
352
  /* @__PURE__ */ jsxs2("li", {
740
353
  children: [
741
354
  /* @__PURE__ */ jsx2("code", {
742
- className: "bg-background/50 rounded px-2 py-1",
743
- children: "server/provider-mcp"
355
+ children: "ApprovalWorkflow"
744
356
  }),
745
- ": Model Context Protocol (MCP) for AI agents"
746
- ]
747
- }),
748
- /* @__PURE__ */ jsxs2("li", {
749
- children: [
357
+ " + ",
750
358
  /* @__PURE__ */ jsx2("code", {
751
- className: "bg-background/50 rounded px-2 py-1",
752
- children: "server/graphql-pothos"
359
+ children: "ApprovalStore"
753
360
  }),
754
- ": GraphQL schema generator"
361
+ " for human-in-the-loop reviews"
755
362
  ]
756
363
  })
757
364
  ]
@@ -761,20 +368,20 @@ export const CreateUser = defineCommand({
761
368
  /* @__PURE__ */ jsxs2("div", {
762
369
  className: "flex items-center gap-4 pt-4",
763
370
  children: [
371
+ /* @__PURE__ */ jsx2(Link2, {
372
+ href: "/docs/libraries",
373
+ className: "btn-ghost",
374
+ children: "Back to Libraries"
375
+ }),
764
376
  /* @__PURE__ */ jsxs2(Link2, {
765
- href: "/docs/libraries/schema",
377
+ href: "/docs/libraries/support-bot",
766
378
  className: "btn-primary",
767
379
  children: [
768
- "Next: Schema ",
380
+ "Next: Support Bot ",
769
381
  /* @__PURE__ */ jsx2(ChevronRight2, {
770
382
  size: 16
771
383
  })
772
384
  ]
773
- }),
774
- /* @__PURE__ */ jsx2(Link2, {
775
- href: "/docs/specs/capabilities",
776
- className: "btn-ghost",
777
- children: "Core Concepts"
778
385
  })
779
386
  ]
780
387
  })
@@ -782,12 +389,10 @@ export const CreateUser = defineCommand({
782
389
  });
783
390
  }
784
391
 
785
- // src/components/docs/libraries/LibrariesAiAgentPage.tsx
786
- import Link3 from "@contractspec/lib.ui-link";
787
- import { ChevronRight as ChevronRight3 } from "lucide-react";
788
- import { CodeBlock as CodeBlock2, InstallCommand as InstallCommand2 } from "@contractspec/lib.design-system";
392
+ // src/components/docs/libraries/LibrariesAnalyticsPage.tsx
393
+ import { CodeBlock as CodeBlock3, InstallCommand as InstallCommand3 } from "@contractspec/lib.design-system";
789
394
  import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
790
- function LibrariesAiAgentPage() {
395
+ function LibrariesAnalyticsPage() {
791
396
  return /* @__PURE__ */ jsxs3("div", {
792
397
  className: "space-y-8",
793
398
  children: [
@@ -795,12 +400,12 @@ function LibrariesAiAgentPage() {
795
400
  className: "space-y-4",
796
401
  children: [
797
402
  /* @__PURE__ */ jsx3("h1", {
798
- className: "text-4xl font-bold",
799
- children: "@contractspec/lib.ai-agent"
403
+ className: "font-bold text-4xl",
404
+ children: "@contractspec/lib.analytics"
800
405
  }),
801
406
  /* @__PURE__ */ jsx3("p", {
802
- className: "text-muted-foreground text-lg",
803
- children: "Define AI agents in TypeScript, run them with deterministic tool calling, capture working memory, and route low-confidence decisions to human reviewers."
407
+ className: "text-lg text-muted-foreground",
408
+ children: "Work directly with telemetry events to understand conversion, retention, churn, and growth opportunities."
804
409
  })
805
410
  ]
806
411
  }),
@@ -808,11 +413,11 @@ function LibrariesAiAgentPage() {
808
413
  className: "space-y-4",
809
414
  children: [
810
415
  /* @__PURE__ */ jsx3("h2", {
811
- className: "text-2xl font-bold",
416
+ className: "font-bold text-2xl",
812
417
  children: "Installation"
813
418
  }),
814
- /* @__PURE__ */ jsx3(InstallCommand2, {
815
- package: "@contractspec/lib.ai-agent"
419
+ /* @__PURE__ */ jsx3(InstallCommand3, {
420
+ package: "@contractspec/lib.analytics"
816
421
  })
817
422
  ]
818
423
  }),
@@ -820,24 +425,22 @@ function LibrariesAiAgentPage() {
820
425
  className: "space-y-3",
821
426
  children: [
822
427
  /* @__PURE__ */ jsx3("h2", {
823
- className: "text-2xl font-bold",
824
- children: "Define & register"
428
+ className: "font-bold text-2xl",
429
+ children: "Funnels in memory"
825
430
  }),
826
- /* @__PURE__ */ jsx3(CodeBlock2, {
431
+ /* @__PURE__ */ jsx3(CodeBlock3, {
827
432
  language: "typescript",
828
- code: `import { defineAgent, AgentRegistry } from '@contractspec/lib.ai-agent';
829
-
830
- const SupportBot = defineAgent({
831
- meta: { name: 'support.bot', version: '1.0.0' },
832
- instructions: 'Resolve tickets. Escalate when confidence < 0.75.',
833
- tools: [{ name: 'support_resolve_ticket' }],
834
- policy: {
835
- confidence: { min: 0.7, default: 0.6 },
836
- escalation: { confidenceThreshold: 0.75 },
837
- },
838
- });
433
+ code: `import { FunnelAnalyzer } from '@contractspec/lib.analytics/funnel';
839
434
 
840
- const registry = new AgentRegistry().register(SupportBot);`
435
+ const analyzer = new FunnelAnalyzer();
436
+ const report = analyzer.analyze(events, {
437
+ name: 'signup',
438
+ steps: [
439
+ { id: 'view', eventName: 'page.view', match: (e) => e.properties?.slug === '/signup' },
440
+ { id: 'submit', eventName: 'signup.submit' },
441
+ { id: 'verified', eventName: 'account.verified' },
442
+ ],
443
+ });`
841
444
  })
842
445
  ]
843
446
  }),
@@ -845,24 +448,16 @@ const registry = new AgentRegistry().register(SupportBot);`
845
448
  className: "space-y-3",
846
449
  children: [
847
450
  /* @__PURE__ */ jsx3("h2", {
848
- className: "text-2xl font-bold",
849
- children: "Run with approvals"
451
+ className: "font-bold text-2xl",
452
+ children: "Cohorts & churn"
850
453
  }),
851
- /* @__PURE__ */ jsx3(CodeBlock2, {
454
+ /* @__PURE__ */ jsx3(CodeBlock3, {
852
455
  language: "typescript",
853
- code: `import { AgentRunner, ToolExecutor, ApprovalWorkflow } from '@contractspec/lib.ai-agent';
854
-
855
- const runner = new AgentRunner({
856
- registry,
857
- llm: mistralProvider,
858
- toolExecutor: new ToolExecutor({ tools: supportTools }),
859
- approvalWorkflow: new ApprovalWorkflow(),
860
- });
456
+ code: `import { CohortTracker } from '@contractspec/lib.analytics/cohort';
457
+ import { ChurnPredictor } from '@contractspec/lib.analytics/churn';
861
458
 
862
- const result = await runner.run({ agent: 'support.bot', input: ticket.body });
863
- if (result.approvalRequestId) {
864
- // show in ApprovalQueue UI
865
- }`
459
+ const cohorts = new CohortTracker().analyze(events, { bucket: 'week', periods: 8 });
460
+ const churn = new ChurnPredictor().score(events);`
866
461
  })
867
462
  ]
868
463
  }),
@@ -870,77 +465,17 @@ if (result.approvalRequestId) {
870
465
  className: "space-y-3",
871
466
  children: [
872
467
  /* @__PURE__ */ jsx3("h2", {
873
- className: "text-2xl font-bold",
874
- children: "What's inside"
875
- }),
876
- /* @__PURE__ */ jsxs3("ul", {
877
- className: "text-muted-foreground list-inside list-disc space-y-2",
878
- children: [
879
- /* @__PURE__ */ jsxs3("li", {
880
- children: [
881
- /* @__PURE__ */ jsx3("code", {
882
- children: "defineAgent"
883
- }),
884
- ", ",
885
- /* @__PURE__ */ jsx3("code", {
886
- children: "AgentRegistry"
887
- }),
888
- ",",
889
- " ",
890
- /* @__PURE__ */ jsx3("code", {
891
- children: "AgentRunner"
892
- })
893
- ]
894
- }),
895
- /* @__PURE__ */ jsxs3("li", {
896
- children: [
897
- /* @__PURE__ */ jsx3("code", {
898
- children: "ToolExecutor"
899
- }),
900
- " with schema-enforced tool definitions"
901
- ]
902
- }),
903
- /* @__PURE__ */ jsxs3("li", {
904
- children: [
905
- /* @__PURE__ */ jsx3("code", {
906
- children: "InMemoryAgentMemory"
907
- }),
908
- " plus interfaces for custom stores"
909
- ]
910
- }),
911
- /* @__PURE__ */ jsxs3("li", {
912
- children: [
913
- /* @__PURE__ */ jsx3("code", {
914
- children: "ApprovalWorkflow"
915
- }),
916
- " + ",
917
- /* @__PURE__ */ jsx3("code", {
918
- children: "ApprovalStore"
919
- }),
920
- " for human-in-the-loop reviews"
921
- ]
922
- })
923
- ]
924
- })
925
- ]
926
- }),
927
- /* @__PURE__ */ jsxs3("div", {
928
- className: "flex items-center gap-4 pt-4",
929
- children: [
930
- /* @__PURE__ */ jsx3(Link3, {
931
- href: "/docs/libraries",
932
- className: "btn-ghost",
933
- children: "Back to Libraries"
468
+ className: "font-bold text-2xl",
469
+ children: "Growth hypotheses"
934
470
  }),
935
- /* @__PURE__ */ jsxs3(Link3, {
936
- href: "/docs/libraries/support-bot",
937
- className: "btn-primary",
938
- children: [
939
- "Next: Support Bot ",
940
- /* @__PURE__ */ jsx3(ChevronRight3, {
941
- size: 16
942
- })
943
- ]
471
+ /* @__PURE__ */ jsx3(CodeBlock3, {
472
+ language: "typescript",
473
+ code: `import { GrowthHypothesisGenerator } from '@contractspec/lib.analytics/growth';
474
+
475
+ const ideas = new GrowthHypothesisGenerator().generate([
476
+ { name: 'Activation rate', current: 0.42, previous: 0.55, target: 0.6 },
477
+ { name: 'Expansion ARPU', current: 1.2, previous: 0.9 },
478
+ ]);`
944
479
  })
945
480
  ]
946
481
  })
@@ -948,10 +483,12 @@ if (result.approvalRequestId) {
948
483
  });
949
484
  }
950
485
 
951
- // src/components/docs/libraries/LibrariesAnalyticsPage.tsx
952
- import { CodeBlock as CodeBlock3, InstallCommand as InstallCommand3 } from "@contractspec/lib.design-system";
486
+ // src/components/docs/libraries/LibrariesContentGenPage.tsx
487
+ import { CodeBlock as CodeBlock4, InstallCommand as InstallCommand4 } from "@contractspec/lib.design-system";
488
+ import Link3 from "@contractspec/lib.ui-link";
489
+ import { ChevronRight as ChevronRight3 } from "lucide-react";
953
490
  import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
954
- function LibrariesAnalyticsPage() {
491
+ function LibrariesContentGenPage() {
955
492
  return /* @__PURE__ */ jsxs4("div", {
956
493
  className: "space-y-8",
957
494
  children: [
@@ -959,12 +496,12 @@ function LibrariesAnalyticsPage() {
959
496
  className: "space-y-4",
960
497
  children: [
961
498
  /* @__PURE__ */ jsx4("h1", {
962
- className: "text-4xl font-bold",
963
- children: "@contractspec/lib.analytics"
499
+ className: "font-bold text-4xl",
500
+ children: "@contractspec/lib.content-gen"
964
501
  }),
965
502
  /* @__PURE__ */ jsx4("p", {
966
- className: "text-muted-foreground text-lg",
967
- children: "Work directly with telemetry events to understand conversion, retention, churn, and growth opportunities."
503
+ className: "text-lg text-muted-foreground",
504
+ children: "Feed a single ContentBrief and produce cohesive marketing assets without touching a CMS."
968
505
  })
969
506
  ]
970
507
  }),
@@ -972,11 +509,11 @@ function LibrariesAnalyticsPage() {
972
509
  className: "space-y-4",
973
510
  children: [
974
511
  /* @__PURE__ */ jsx4("h2", {
975
- className: "text-2xl font-bold",
512
+ className: "font-bold text-2xl",
976
513
  children: "Installation"
977
514
  }),
978
- /* @__PURE__ */ jsx4(InstallCommand3, {
979
- package: "@contractspec/lib.analytics"
515
+ /* @__PURE__ */ jsx4(InstallCommand4, {
516
+ package: "@contractspec/lib.content-gen"
980
517
  })
981
518
  ]
982
519
  }),
@@ -984,22 +521,32 @@ function LibrariesAnalyticsPage() {
984
521
  className: "space-y-3",
985
522
  children: [
986
523
  /* @__PURE__ */ jsx4("h2", {
987
- className: "text-2xl font-bold",
988
- children: "Funnels in memory"
524
+ className: "font-bold text-2xl",
525
+ children: "One brief, many assets"
989
526
  }),
990
- /* @__PURE__ */ jsx4(CodeBlock3, {
527
+ /* @__PURE__ */ jsx4(CodeBlock4, {
991
528
  language: "typescript",
992
- code: `import { FunnelAnalyzer } from '@contractspec/lib.analytics/funnel';
529
+ code: `import {
530
+ BlogGenerator,
531
+ LandingPageGenerator,
532
+ EmailCampaignGenerator,
533
+ SocialPostGenerator,
534
+ } from '@contractspec/lib.content-gen/generators';
535
+ import { SeoOptimizer } from '@contractspec/lib.content-gen/seo';
993
536
 
994
- const analyzer = new FunnelAnalyzer();
995
- const report = analyzer.analyze(events, {
996
- name: 'signup',
997
- steps: [
998
- { id: 'view', eventName: 'page.view', match: (e) => e.properties?.slug === '/signup' },
999
- { id: 'submit', eventName: 'signup.submit' },
1000
- { id: 'verified', eventName: 'account.verified' },
1001
- ],
1002
- });`
537
+ const brief = {
538
+ title: 'AI Ops Copilot',
539
+ summary: 'Automates support + growth.',
540
+ problems: ['Support queues pile up', 'Growth teams lack experiments'],
541
+ solutions: ['AI agents', 'Approval queue', 'Analytics'],
542
+ audience: { role: 'COO', industry: 'Fintech' },
543
+ };
544
+
545
+ const blog = await new BlogGenerator().generate(brief);
546
+ const landing = await new LandingPageGenerator().generate(brief);
547
+ const email = await new EmailCampaignGenerator().generate({ brief, variant: 'announcement' });
548
+ const social = await new SocialPostGenerator().generate(brief);
549
+ const seo = new SeoOptimizer().optimize(brief);`
1003
550
  })
1004
551
  ]
1005
552
  }),
@@ -1007,34 +554,45 @@ const report = analyzer.analyze(events, {
1007
554
  className: "space-y-3",
1008
555
  children: [
1009
556
  /* @__PURE__ */ jsx4("h2", {
1010
- className: "text-2xl font-bold",
1011
- children: "Cohorts & churn"
557
+ className: "font-bold text-2xl",
558
+ children: "When to use"
1012
559
  }),
1013
- /* @__PURE__ */ jsx4(CodeBlock3, {
1014
- language: "typescript",
1015
- code: `import { CohortTracker } from '@contractspec/lib.analytics/cohort';
1016
- import { ChurnPredictor } from '@contractspec/lib.analytics/churn';
1017
-
1018
- const cohorts = new CohortTracker().analyze(events, { bucket: 'week', periods: 8 });
1019
- const churn = new ChurnPredictor().score(events);`
560
+ /* @__PURE__ */ jsxs4("ul", {
561
+ className: "list-inside list-disc space-y-2 text-muted-foreground",
562
+ children: [
563
+ /* @__PURE__ */ jsx4("li", {
564
+ children: "Ship landing page refreshes whenever specs change."
565
+ }),
566
+ /* @__PURE__ */ jsx4("li", {
567
+ children: "Automate release emails + nurture sequences per vertical."
568
+ }),
569
+ /* @__PURE__ */ jsx4("li", {
570
+ children: "Create social snippets that stay on-message with the same brief."
571
+ }),
572
+ /* @__PURE__ */ jsx4("li", {
573
+ children: "Generate SEO metadata + Schema.org markup alongside content."
574
+ })
575
+ ]
1020
576
  })
1021
577
  ]
1022
578
  }),
1023
579
  /* @__PURE__ */ jsxs4("div", {
1024
- className: "space-y-3",
580
+ className: "flex items-center gap-4 pt-4",
1025
581
  children: [
1026
- /* @__PURE__ */ jsx4("h2", {
1027
- className: "text-2xl font-bold",
1028
- children: "Growth hypotheses"
582
+ /* @__PURE__ */ jsx4(Link3, {
583
+ href: "/docs/libraries",
584
+ className: "btn-ghost",
585
+ children: "Back to Libraries"
1029
586
  }),
1030
- /* @__PURE__ */ jsx4(CodeBlock3, {
1031
- language: "typescript",
1032
- code: `import { GrowthHypothesisGenerator } from '@contractspec/lib.analytics/growth';
1033
-
1034
- const ideas = new GrowthHypothesisGenerator().generate([
1035
- { name: 'Activation rate', current: 0.42, previous: 0.55, target: 0.6 },
1036
- { name: 'Expansion ARPU', current: 1.2, previous: 0.9 },
1037
- ]);`
587
+ /* @__PURE__ */ jsxs4(Link3, {
588
+ href: "/docs/libraries/support-bot",
589
+ className: "btn-primary",
590
+ children: [
591
+ "Next: Support Bot ",
592
+ /* @__PURE__ */ jsx4(ChevronRight3, {
593
+ size: 16
594
+ })
595
+ ]
1038
596
  })
1039
597
  ]
1040
598
  })
@@ -1042,12 +600,12 @@ const ideas = new GrowthHypothesisGenerator().generate([
1042
600
  });
1043
601
  }
1044
602
 
1045
- // src/components/docs/libraries/LibrariesAccessibilityPage.tsx
603
+ // src/components/docs/libraries/LibrariesContractsPage.tsx
604
+ import { CodeBlock as CodeBlock5, InstallCommand as InstallCommand5 } from "@contractspec/lib.design-system";
1046
605
  import Link4 from "@contractspec/lib.ui-link";
1047
606
  import { ChevronRight as ChevronRight4 } from "lucide-react";
1048
- import { CodeBlock as CodeBlock4, InstallCommand as InstallCommand4 } from "@contractspec/lib.design-system";
1049
607
  import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
1050
- function LibrariesAccessibilityPage() {
608
+ function LibrariesContractsPage() {
1051
609
  return /* @__PURE__ */ jsxs5("div", {
1052
610
  className: "space-y-8",
1053
611
  children: [
@@ -1055,12 +613,12 @@ function LibrariesAccessibilityPage() {
1055
613
  className: "space-y-4",
1056
614
  children: [
1057
615
  /* @__PURE__ */ jsx5("h1", {
1058
- className: "text-4xl font-bold",
1059
- children: "@contractspec/lib.accessibility"
616
+ className: "font-bold text-4xl",
617
+ children: "@contractspec/lib.contracts-spec"
1060
618
  }),
1061
619
  /* @__PURE__ */ jsx5("p", {
1062
- className: "text-muted-foreground",
1063
- children: "Stable exports of accessibility primitives for LSSM web apps, ensuring WCAG compliance and inclusive design."
620
+ className: "text-lg text-muted-foreground",
621
+ children: "The core library for defining what your application can do. Unified specifications for Operations, Events, Presentations, and Features."
1064
622
  })
1065
623
  ]
1066
624
  }),
@@ -1068,11 +626,14 @@ function LibrariesAccessibilityPage() {
1068
626
  className: "space-y-4",
1069
627
  children: [
1070
628
  /* @__PURE__ */ jsx5("h2", {
1071
- className: "text-2xl font-bold",
629
+ className: "font-bold text-2xl",
1072
630
  children: "Installation"
1073
631
  }),
1074
- /* @__PURE__ */ jsx5(InstallCommand4, {
1075
- package: "@contractspec/lib.accessibility"
632
+ /* @__PURE__ */ jsx5(InstallCommand5, {
633
+ package: [
634
+ "@contractspec/lib.contracts-spec",
635
+ "@contractspec/lib.schema"
636
+ ]
1076
637
  })
1077
638
  ]
1078
639
  }),
@@ -1080,70 +641,42 @@ function LibrariesAccessibilityPage() {
1080
641
  className: "space-y-4",
1081
642
  children: [
1082
643
  /* @__PURE__ */ jsx5("h2", {
1083
- className: "text-2xl font-bold",
1084
- children: "Exports"
644
+ className: "font-bold text-2xl",
645
+ children: "What lives where"
1085
646
  }),
1086
647
  /* @__PURE__ */ jsxs5("ul", {
1087
- className: "text-muted-foreground space-y-2",
648
+ className: "list-inside list-disc space-y-2 text-muted-foreground",
1088
649
  children: [
1089
650
  /* @__PURE__ */ jsxs5("li", {
1090
651
  children: [
1091
- /* @__PURE__ */ jsx5("code", {
1092
- className: "bg-background/50 rounded px-2 py-1",
1093
- children: "SkipLink"
1094
- }),
1095
- ": A link to skip navigation, visible on focus"
1096
- ]
1097
- }),
1098
- /* @__PURE__ */ jsxs5("li", {
1099
- children: [
1100
- /* @__PURE__ */ jsx5("code", {
1101
- className: "bg-background/50 rounded px-2 py-1",
1102
- children: "VisuallyHidden"
1103
- }),
1104
- ": Hide content visually but keep it for screen readers"
1105
- ]
1106
- }),
1107
- /* @__PURE__ */ jsxs5("li", {
1108
- children: [
1109
- /* @__PURE__ */ jsx5("code", {
1110
- className: "bg-background/50 rounded px-2 py-1",
1111
- children: "SRLiveRegionProvider"
1112
- }),
1113
- ",",
1114
- " ",
1115
- /* @__PURE__ */ jsx5("code", {
1116
- className: "bg-background/50 rounded px-2 py-1",
1117
- children: "useSRLiveRegion"
652
+ /* @__PURE__ */ jsx5("strong", {
653
+ children: "@contractspec/lib.contracts-spec"
1118
654
  }),
1119
- ": Manage live region announcements"
655
+ " (root): The core contracts definitions (OperationSpec, PresentationSpec, Registry)."
1120
656
  ]
1121
657
  }),
1122
658
  /* @__PURE__ */ jsxs5("li", {
1123
659
  children: [
1124
- /* @__PURE__ */ jsx5("code", {
1125
- className: "bg-background/50 rounded px-2 py-1",
1126
- children: "RouteAnnouncer"
660
+ /* @__PURE__ */ jsx5("strong", {
661
+ children: "@contractspec/lib.contracts-runtime-client-react"
1127
662
  }),
1128
- ": Announce page title/path changes on navigation"
663
+ ": Browser-safe helpers (React renderers, client SDK). Import this for web/React Native."
1129
664
  ]
1130
665
  }),
1131
666
  /* @__PURE__ */ jsxs5("li", {
1132
667
  children: [
1133
- /* @__PURE__ */ jsx5("code", {
1134
- className: "bg-background/50 rounded px-2 py-1",
1135
- children: "FocusOnRouteChange"
668
+ /* @__PURE__ */ jsx5("strong", {
669
+ children: "@contractspec/lib.contracts-runtime-server-rest"
1136
670
  }),
1137
- ": Reset focus to body or main content on navigation"
671
+ ": HTTP/MCP adapters, registries, integrations (Node-only)."
1138
672
  ]
1139
673
  }),
1140
674
  /* @__PURE__ */ jsxs5("li", {
1141
675
  children: [
1142
- /* @__PURE__ */ jsx5("code", {
1143
- className: "bg-background/50 rounded px-2 py-1",
1144
- children: "useReducedMotion"
676
+ /* @__PURE__ */ jsx5("strong", {
677
+ children: "@contractspec/lib.schema"
1145
678
  }),
1146
- ": Detect if the user prefers reduced motion"
679
+ ": Schema dictionary (SchemaModel, FieldType) for I/O definitions."
1147
680
  ]
1148
681
  })
1149
682
  ]
@@ -1154,56 +687,34 @@ function LibrariesAccessibilityPage() {
1154
687
  className: "space-y-4",
1155
688
  children: [
1156
689
  /* @__PURE__ */ jsx5("h2", {
1157
- className: "text-2xl font-bold",
1158
- children: "Example: App Setup"
1159
- }),
1160
- /* @__PURE__ */ jsx5(CodeBlock4, {
1161
- language: "tsx",
1162
- code: `import {
1163
- SRLiveRegionProvider,
1164
- RouteAnnouncer,
1165
- SkipLink
1166
- } from '@contractspec/lib.accessibility';
1167
-
1168
- export function RootLayout({ children }) {
1169
- return (
1170
- <html lang="en">
1171
- <body>
1172
- <SRLiveRegionProvider>
1173
- <SkipLink />
1174
- <RouteAnnouncer />
1175
- <main id="main-content">
1176
- {children}
1177
- </main>
1178
- </SRLiveRegionProvider>
1179
- </body>
1180
- </html>
1181
- );
1182
- }`
1183
- })
1184
- ]
1185
- }),
1186
- /* @__PURE__ */ jsxs5("div", {
1187
- className: "space-y-4",
1188
- children: [
1189
- /* @__PURE__ */ jsx5("h2", {
1190
- className: "text-2xl font-bold",
1191
- children: "Example: Live Announcements"
690
+ className: "font-bold text-2xl",
691
+ children: "Quick Example"
1192
692
  }),
1193
- /* @__PURE__ */ jsx5(CodeBlock4, {
1194
- language: "tsx",
1195
- code: `import { useSRLiveRegion } from '@contractspec/lib.accessibility';
1196
-
1197
- export function TodoList() {
1198
- const { announce } = useSRLiveRegion();
693
+ /* @__PURE__ */ jsx5(CodeBlock5, {
694
+ language: "typescript",
695
+ code: `import { defineCommand } from '@contractspec/lib.contracts-spec';
696
+ import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
1199
697
 
1200
- const addTodo = () => {
1201
- // ... add logic
1202
- announce('Todo added successfully', 'polite');
1203
- };
698
+ const CreateUserInput = new SchemaModel({
699
+ name: 'CreateUserInput',
700
+ fields: {
701
+ email: { type: ScalarTypeEnum.Email(), isOptional: false },
702
+ name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
703
+ },
704
+ });
1204
705
 
1205
- return <button onClick={addTodo}>Add Todo</button>;
1206
- }`
706
+ export const CreateUser = defineCommand({
707
+ meta: {
708
+ key: 'users.createUser',
709
+ version: '1.0.0',
710
+ description: 'Create a new user account',
711
+ },
712
+ io: {
713
+ input: CreateUserInput,
714
+ output: /* ... */,
715
+ },
716
+ policy: { auth: 'admin' },
717
+ });`
1207
718
  })
1208
719
  ]
1209
720
  }),
@@ -1211,172 +722,180 @@ export function TodoList() {
1211
722
  className: "space-y-4",
1212
723
  children: [
1213
724
  /* @__PURE__ */ jsx5("h2", {
1214
- className: "text-2xl font-bold",
1215
- children: "WCAG Compliance"
1216
- }),
1217
- /* @__PURE__ */ jsxs5("p", {
1218
- className: "text-muted-foreground",
1219
- children: [
1220
- "These components map directly to WCAG 2.1 Level AA requirements documented in ",
1221
- /* @__PURE__ */ jsx5("code", {
1222
- children: "docs/accessibility_wcag_compliance_specs.md"
1223
- }),
1224
- ":"
1225
- ]
725
+ className: "font-bold text-2xl",
726
+ children: "Core Concepts"
1226
727
  }),
1227
728
  /* @__PURE__ */ jsxs5("ul", {
1228
- className: "text-muted-foreground list-inside list-disc space-y-2",
729
+ className: "list-inside list-disc space-y-2 text-muted-foreground",
1229
730
  children: [
1230
- /* @__PURE__ */ jsx5("li", {
1231
- children: "2.4.1 Bypass Blocks (SkipLink)"
731
+ /* @__PURE__ */ jsxs5("li", {
732
+ children: [
733
+ /* @__PURE__ */ jsx5("strong", {
734
+ children: "OperationSpec"
735
+ }),
736
+ ": Immutable description of an operation (Command or Query). Defines I/O, policy, and metadata."
737
+ ]
1232
738
  }),
1233
- /* @__PURE__ */ jsx5("li", {
1234
- children: "4.1.3 Status Messages (LiveRegion)"
739
+ /* @__PURE__ */ jsxs5("li", {
740
+ children: [
741
+ /* @__PURE__ */ jsx5("strong", {
742
+ children: "OperationSpecRegistry"
743
+ }),
744
+ ": Registry of specs + handlers. Use ",
745
+ /* @__PURE__ */ jsx5("code", {
746
+ className: "font-mono text-xs",
747
+ children: "installOp"
748
+ }),
749
+ " ",
750
+ "to attach a handler."
751
+ ]
1235
752
  }),
1236
- /* @__PURE__ */ jsx5("li", {
1237
- children: "2.4.3 Focus Order (FocusOnRouteChange)"
753
+ /* @__PURE__ */ jsxs5("li", {
754
+ children: [
755
+ /* @__PURE__ */ jsx5("strong", {
756
+ children: "CapabilitySpec"
757
+ }),
758
+ ": Canonical capability declaration (requires/provides)."
759
+ ]
1238
760
  }),
1239
- /* @__PURE__ */ jsx5("li", {
1240
- children: "2.3.3 Animation from Interactions (useReducedMotion)"
761
+ /* @__PURE__ */ jsxs5("li", {
762
+ children: [
763
+ /* @__PURE__ */ jsx5("strong", {
764
+ children: "PolicySpec"
765
+ }),
766
+ ": Declarative policy rules (ABAC/ReBAC, rate limits)."
767
+ ]
768
+ }),
769
+ /* @__PURE__ */ jsxs5("li", {
770
+ children: [
771
+ /* @__PURE__ */ jsx5("strong", {
772
+ children: "TelemetrySpec"
773
+ }),
774
+ ": Analytics definitions and privacy levels."
775
+ ]
776
+ }),
777
+ /* @__PURE__ */ jsxs5("li", {
778
+ children: [
779
+ /* @__PURE__ */ jsx5("strong", {
780
+ children: "PresentationSpec (V2)"
781
+ }),
782
+ ": Describes how data is rendered (Web Components, Markdown, Data)."
783
+ ]
1241
784
  })
1242
785
  ]
1243
786
  })
1244
787
  ]
1245
788
  }),
1246
789
  /* @__PURE__ */ jsxs5("div", {
1247
- className: "flex items-center gap-4 pt-4",
1248
- children: [
1249
- /* @__PURE__ */ jsx5(Link4, {
1250
- href: "/docs/libraries/design-system",
1251
- className: "btn-ghost",
1252
- children: "Previous: Design System"
1253
- }),
1254
- /* @__PURE__ */ jsxs5(Link4, {
1255
- href: "/docs/libraries",
1256
- className: "btn-primary",
1257
- children: [
1258
- "Back to Libraries ",
1259
- /* @__PURE__ */ jsx5(ChevronRight4, {
1260
- size: 16
1261
- })
1262
- ]
1263
- })
1264
- ]
1265
- })
1266
- ]
1267
- });
1268
- }
1269
-
1270
- // src/components/docs/libraries/LibrariesContentGenPage.tsx
1271
- import { CodeBlock as CodeBlock5, InstallCommand as InstallCommand5 } from "@contractspec/lib.design-system";
1272
- import Link5 from "@contractspec/lib.ui-link";
1273
- import { ChevronRight as ChevronRight5 } from "lucide-react";
1274
- import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
1275
- function LibrariesContentGenPage() {
1276
- return /* @__PURE__ */ jsxs6("div", {
1277
- className: "space-y-8",
1278
- children: [
1279
- /* @__PURE__ */ jsxs6("div", {
1280
- className: "space-y-4",
1281
- children: [
1282
- /* @__PURE__ */ jsx6("h1", {
1283
- className: "text-4xl font-bold",
1284
- children: "@contractspec/lib.content-gen"
1285
- }),
1286
- /* @__PURE__ */ jsx6("p", {
1287
- className: "text-muted-foreground text-lg",
1288
- children: "Feed a single ContentBrief and produce cohesive marketing assets without touching a CMS."
1289
- })
1290
- ]
1291
- }),
1292
- /* @__PURE__ */ jsxs6("div", {
1293
790
  className: "space-y-4",
1294
791
  children: [
1295
- /* @__PURE__ */ jsx6("h2", {
1296
- className: "text-2xl font-bold",
1297
- children: "Installation"
1298
- }),
1299
- /* @__PURE__ */ jsx6(InstallCommand5, {
1300
- package: "@contractspec/lib.content-gen"
1301
- })
1302
- ]
1303
- }),
1304
- /* @__PURE__ */ jsxs6("div", {
1305
- className: "space-y-3",
1306
- children: [
1307
- /* @__PURE__ */ jsx6("h2", {
1308
- className: "text-2xl font-bold",
1309
- children: "One brief, many assets"
792
+ /* @__PURE__ */ jsx5("h2", {
793
+ className: "font-bold text-2xl",
794
+ children: "Lifecycle"
1310
795
  }),
1311
- /* @__PURE__ */ jsx6(CodeBlock5, {
1312
- language: "typescript",
1313
- code: `import {
1314
- BlogGenerator,
1315
- LandingPageGenerator,
1316
- EmailCampaignGenerator,
1317
- SocialPostGenerator,
1318
- } from '@contractspec/lib.content-gen/generators';
1319
- import { SeoOptimizer } from '@contractspec/lib.content-gen/seo';
1320
-
1321
- const brief = {
1322
- title: 'AI Ops Copilot',
1323
- summary: 'Automates support + growth.',
1324
- problems: ['Support queues pile up', 'Growth teams lack experiments'],
1325
- solutions: ['AI agents', 'Approval queue', 'Analytics'],
1326
- audience: { role: 'COO', industry: 'Fintech' },
1327
- };
1328
-
1329
- const blog = await new BlogGenerator().generate(brief);
1330
- const landing = await new LandingPageGenerator().generate(brief);
1331
- const email = await new EmailCampaignGenerator().generate({ brief, variant: 'announcement' });
1332
- const social = await new SocialPostGenerator().generate(brief);
1333
- const seo = new SeoOptimizer().optimize(brief);`
796
+ /* @__PURE__ */ jsxs5("ol", {
797
+ className: "list-inside list-decimal space-y-2 text-muted-foreground",
798
+ children: [
799
+ /* @__PURE__ */ jsxs5("li", {
800
+ children: [
801
+ /* @__PURE__ */ jsx5("strong", {
802
+ children: "Define"
803
+ }),
804
+ " the spec (I/O via SchemaModel or Zod)."
805
+ ]
806
+ }),
807
+ /* @__PURE__ */ jsxs5("li", {
808
+ children: [
809
+ /* @__PURE__ */ jsx5("strong", {
810
+ children: "Register"
811
+ }),
812
+ " it:",
813
+ " ",
814
+ /* @__PURE__ */ jsx5("code", {
815
+ className: "font-mono text-xs",
816
+ children: "installOp(registry, spec, handler)"
817
+ }),
818
+ "."
819
+ ]
820
+ }),
821
+ /* @__PURE__ */ jsxs5("li", {
822
+ children: [
823
+ /* @__PURE__ */ jsx5("strong", {
824
+ children: "Expose"
825
+ }),
826
+ " it via an adapter (REST, GraphQL, MCP)."
827
+ ]
828
+ }),
829
+ /* @__PURE__ */ jsxs5("li", {
830
+ children: [
831
+ /* @__PURE__ */ jsx5("strong", {
832
+ children: "Validate"
833
+ }),
834
+ " at runtime automatically."
835
+ ]
836
+ })
837
+ ]
1334
838
  })
1335
839
  ]
1336
840
  }),
1337
- /* @__PURE__ */ jsxs6("div", {
1338
- className: "space-y-3",
841
+ /* @__PURE__ */ jsxs5("div", {
842
+ className: "space-y-4",
1339
843
  children: [
1340
- /* @__PURE__ */ jsx6("h2", {
1341
- className: "text-2xl font-bold",
1342
- children: "When to use"
844
+ /* @__PURE__ */ jsx5("h2", {
845
+ className: "font-bold text-2xl",
846
+ children: "Adapters"
1343
847
  }),
1344
- /* @__PURE__ */ jsxs6("ul", {
1345
- className: "text-muted-foreground list-inside list-disc space-y-2",
848
+ /* @__PURE__ */ jsxs5("ul", {
849
+ className: "space-y-2 text-muted-foreground",
1346
850
  children: [
1347
- /* @__PURE__ */ jsx6("li", {
1348
- children: "Ship landing page refreshes whenever specs change."
1349
- }),
1350
- /* @__PURE__ */ jsx6("li", {
1351
- children: "Automate release emails + nurture sequences per vertical."
851
+ /* @__PURE__ */ jsxs5("li", {
852
+ children: [
853
+ /* @__PURE__ */ jsx5("code", {
854
+ className: "rounded bg-background/50 px-2 py-1",
855
+ children: "server/rest-next-app"
856
+ }),
857
+ ": Next.js App Router adapter"
858
+ ]
1352
859
  }),
1353
- /* @__PURE__ */ jsx6("li", {
1354
- children: "Create social snippets that stay on-message with the same brief."
860
+ /* @__PURE__ */ jsxs5("li", {
861
+ children: [
862
+ /* @__PURE__ */ jsx5("code", {
863
+ className: "rounded bg-background/50 px-2 py-1",
864
+ children: "server/provider-mcp"
865
+ }),
866
+ ": Model Context Protocol (MCP) for AI agents"
867
+ ]
1355
868
  }),
1356
- /* @__PURE__ */ jsx6("li", {
1357
- children: "Generate SEO metadata + Schema.org markup alongside content."
869
+ /* @__PURE__ */ jsxs5("li", {
870
+ children: [
871
+ /* @__PURE__ */ jsx5("code", {
872
+ className: "rounded bg-background/50 px-2 py-1",
873
+ children: "server/graphql-pothos"
874
+ }),
875
+ ": GraphQL schema generator"
876
+ ]
1358
877
  })
1359
878
  ]
1360
879
  })
1361
880
  ]
1362
881
  }),
1363
- /* @__PURE__ */ jsxs6("div", {
882
+ /* @__PURE__ */ jsxs5("div", {
1364
883
  className: "flex items-center gap-4 pt-4",
1365
884
  children: [
1366
- /* @__PURE__ */ jsx6(Link5, {
1367
- href: "/docs/libraries",
1368
- className: "btn-ghost",
1369
- children: "Back to Libraries"
1370
- }),
1371
- /* @__PURE__ */ jsxs6(Link5, {
1372
- href: "/docs/libraries/support-bot",
885
+ /* @__PURE__ */ jsxs5(Link4, {
886
+ href: "/docs/libraries/schema",
1373
887
  className: "btn-primary",
1374
888
  children: [
1375
- "Next: Support Bot ",
1376
- /* @__PURE__ */ jsx6(ChevronRight5, {
889
+ "Next: Schema ",
890
+ /* @__PURE__ */ jsx5(ChevronRight4, {
1377
891
  size: 16
1378
892
  })
1379
893
  ]
894
+ }),
895
+ /* @__PURE__ */ jsx5(Link4, {
896
+ href: "/docs/specs/capabilities",
897
+ className: "btn-ghost",
898
+ children: "Core Concepts"
1380
899
  })
1381
900
  ]
1382
901
  })
@@ -1386,24 +905,24 @@ const seo = new SeoOptimizer().optimize(brief);`
1386
905
 
1387
906
  // src/components/docs/libraries/LibrariesCostTrackingPage.tsx
1388
907
  import { CodeBlock as CodeBlock6, InstallCommand as InstallCommand6 } from "@contractspec/lib.design-system";
1389
- import Link6 from "@contractspec/lib.ui-link";
1390
- import { ChevronRight as ChevronRight6 } from "lucide-react";
1391
- import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
908
+ import Link5 from "@contractspec/lib.ui-link";
909
+ import { ChevronRight as ChevronRight5 } from "lucide-react";
910
+ import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
1392
911
  function LibrariesCostTrackingPage() {
1393
- return /* @__PURE__ */ jsxs7("div", {
912
+ return /* @__PURE__ */ jsxs6("div", {
1394
913
  className: "space-y-8",
1395
914
  children: [
1396
- /* @__PURE__ */ jsxs7("div", {
915
+ /* @__PURE__ */ jsxs6("div", {
1397
916
  className: "space-y-4",
1398
917
  children: [
1399
- /* @__PURE__ */ jsx7("h1", {
1400
- className: "text-4xl font-bold",
918
+ /* @__PURE__ */ jsx6("h1", {
919
+ className: "font-bold text-4xl",
1401
920
  children: "Cost Tracking Library"
1402
921
  }),
1403
- /* @__PURE__ */ jsxs7("p", {
1404
- className: "text-muted-foreground text-lg",
922
+ /* @__PURE__ */ jsxs6("p", {
923
+ className: "text-lg text-muted-foreground",
1405
924
  children: [
1406
- /* @__PURE__ */ jsx7("code", {
925
+ /* @__PURE__ */ jsx6("code", {
1407
926
  children: "@contractspec/lib.cost-tracking"
1408
927
  }),
1409
928
  " transforms raw telemetry into dollars: DB/API/compute costs per operation, budget alerts per tenant, and actionable optimization tips."
@@ -1411,26 +930,26 @@ function LibrariesCostTrackingPage() {
1411
930
  })
1412
931
  ]
1413
932
  }),
1414
- /* @__PURE__ */ jsxs7("div", {
933
+ /* @__PURE__ */ jsxs6("div", {
1415
934
  className: "space-y-4",
1416
935
  children: [
1417
- /* @__PURE__ */ jsx7("h2", {
1418
- className: "text-2xl font-bold",
936
+ /* @__PURE__ */ jsx6("h2", {
937
+ className: "font-bold text-2xl",
1419
938
  children: "Installation"
1420
939
  }),
1421
- /* @__PURE__ */ jsx7(InstallCommand6, {
940
+ /* @__PURE__ */ jsx6(InstallCommand6, {
1422
941
  package: "@contractspec/lib.cost-tracking"
1423
942
  })
1424
943
  ]
1425
944
  }),
1426
- /* @__PURE__ */ jsxs7("div", {
945
+ /* @__PURE__ */ jsxs6("div", {
1427
946
  className: "space-y-4",
1428
947
  children: [
1429
- /* @__PURE__ */ jsx7("h2", {
1430
- className: "text-2xl font-bold",
948
+ /* @__PURE__ */ jsx6("h2", {
949
+ className: "font-bold text-2xl",
1431
950
  children: "Record Samples"
1432
951
  }),
1433
- /* @__PURE__ */ jsx7(CodeBlock6, {
952
+ /* @__PURE__ */ jsx6(CodeBlock6, {
1434
953
  language: "typescript",
1435
954
  code: `const tracker = new CostTracker();
1436
955
  tracker.recordSample({
@@ -1444,14 +963,14 @@ tracker.recordSample({
1444
963
  })
1445
964
  ]
1446
965
  }),
1447
- /* @__PURE__ */ jsxs7("div", {
966
+ /* @__PURE__ */ jsxs6("div", {
1448
967
  className: "space-y-4",
1449
968
  children: [
1450
- /* @__PURE__ */ jsx7("h2", {
1451
- className: "text-2xl font-bold",
969
+ /* @__PURE__ */ jsx6("h2", {
970
+ className: "font-bold text-2xl",
1452
971
  children: "Budget Alerts"
1453
972
  }),
1454
- /* @__PURE__ */ jsx7(CodeBlock6, {
973
+ /* @__PURE__ */ jsx6(CodeBlock6, {
1455
974
  language: "typescript",
1456
975
  code: `const budgets = new BudgetAlertManager({
1457
976
  budgets: [{ tenantId: 'acme', monthlyLimit: 150 }],
@@ -1462,18 +981,18 @@ tracker.getTotals({ tenantId: 'acme' }).forEach((summary) => budgets.track(summa
1462
981
  })
1463
982
  ]
1464
983
  }),
1465
- /* @__PURE__ */ jsxs7("div", {
984
+ /* @__PURE__ */ jsxs6("div", {
1466
985
  className: "space-y-4",
1467
986
  children: [
1468
- /* @__PURE__ */ jsx7("h2", {
1469
- className: "text-2xl font-bold",
987
+ /* @__PURE__ */ jsx6("h2", {
988
+ className: "font-bold text-2xl",
1470
989
  children: "Optimization Suggestions"
1471
990
  }),
1472
- /* @__PURE__ */ jsxs7("p", {
991
+ /* @__PURE__ */ jsxs6("p", {
1473
992
  className: "text-muted-foreground text-sm",
1474
993
  children: [
1475
994
  "Feed summaries into ",
1476
- /* @__PURE__ */ jsx7("code", {
995
+ /* @__PURE__ */ jsx6("code", {
1477
996
  children: "OptimizationRecommender"
1478
997
  }),
1479
998
  " to surface N+1 queries, compute-heavy steps, or expensive external calls. Store the generated suggestions in the new Prisma model to power Ops playbooks."
@@ -1481,20 +1000,20 @@ tracker.getTotals({ tenantId: 'acme' }).forEach((summary) => budgets.track(summa
1481
1000
  })
1482
1001
  ]
1483
1002
  }),
1484
- /* @__PURE__ */ jsxs7("div", {
1003
+ /* @__PURE__ */ jsxs6("div", {
1485
1004
  className: "flex items-center gap-4 pt-4",
1486
1005
  children: [
1487
- /* @__PURE__ */ jsx7(Link6, {
1006
+ /* @__PURE__ */ jsx6(Link5, {
1488
1007
  href: "/docs/libraries",
1489
1008
  className: "btn-ghost",
1490
1009
  children: "Back to Libraries"
1491
1010
  }),
1492
- /* @__PURE__ */ jsxs7(Link6, {
1011
+ /* @__PURE__ */ jsxs6(Link5, {
1493
1012
  href: "/docs/libraries/slo",
1494
1013
  className: "btn-primary",
1495
1014
  children: [
1496
1015
  "Next: SLO ",
1497
- /* @__PURE__ */ jsx7(ChevronRight6, {
1016
+ /* @__PURE__ */ jsx6(ChevronRight5, {
1498
1017
  size: 16
1499
1018
  })
1500
1019
  ]
@@ -1506,48 +1025,48 @@ tracker.getTotals({ tenantId: 'acme' }).forEach((summary) => budgets.track(summa
1506
1025
  }
1507
1026
 
1508
1027
  // src/components/docs/libraries/LibrariesDataBackendPage.tsx
1509
- import Link7 from "@contractspec/lib.ui-link";
1510
- import { ChevronRight as ChevronRight7 } from "lucide-react";
1511
1028
  import { CodeBlock as CodeBlock7 } from "@contractspec/lib.design-system";
1512
- import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
1029
+ import Link6 from "@contractspec/lib.ui-link";
1030
+ import { ChevronRight as ChevronRight6 } from "lucide-react";
1031
+ import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
1513
1032
  function LibrariesDataBackendPage() {
1514
- return /* @__PURE__ */ jsxs8("div", {
1033
+ return /* @__PURE__ */ jsxs7("div", {
1515
1034
  className: "space-y-8",
1516
1035
  children: [
1517
- /* @__PURE__ */ jsxs8("div", {
1036
+ /* @__PURE__ */ jsxs7("div", {
1518
1037
  className: "space-y-4",
1519
1038
  children: [
1520
- /* @__PURE__ */ jsx8("h1", {
1521
- className: "text-4xl font-bold",
1039
+ /* @__PURE__ */ jsx7("h1", {
1040
+ className: "font-bold text-4xl",
1522
1041
  children: "Data & Backend"
1523
1042
  }),
1524
- /* @__PURE__ */ jsx8("p", {
1043
+ /* @__PURE__ */ jsx7("p", {
1525
1044
  className: "text-muted-foreground",
1526
1045
  children: "A collection of robust, platform-agnostic libraries for building the backend infrastructure of your LSSM applications."
1527
1046
  })
1528
1047
  ]
1529
1048
  }),
1530
- /* @__PURE__ */ jsxs8("div", {
1049
+ /* @__PURE__ */ jsxs7("div", {
1531
1050
  className: "space-y-4",
1532
1051
  children: [
1533
- /* @__PURE__ */ jsx8("h2", {
1534
- className: "text-2xl font-bold",
1052
+ /* @__PURE__ */ jsx7("h2", {
1053
+ className: "font-bold text-2xl",
1535
1054
  children: "Libraries"
1536
1055
  }),
1537
- /* @__PURE__ */ jsxs8("div", {
1056
+ /* @__PURE__ */ jsxs7("div", {
1538
1057
  className: "space-y-6",
1539
1058
  children: [
1540
- /* @__PURE__ */ jsxs8("div", {
1059
+ /* @__PURE__ */ jsxs7("div", {
1541
1060
  className: "card-subtle p-6",
1542
1061
  children: [
1543
- /* @__PURE__ */ jsx8("h3", {
1544
- className: "text-lg font-bold",
1062
+ /* @__PURE__ */ jsx7("h3", {
1063
+ className: "font-bold text-lg",
1545
1064
  children: "@contractspec/app.cli-database"
1546
1065
  }),
1547
- /* @__PURE__ */ jsxs8("p", {
1548
- className: "text-muted-foreground mt-2 text-sm",
1066
+ /* @__PURE__ */ jsxs7("p", {
1067
+ className: "mt-2 text-muted-foreground text-sm",
1549
1068
  children: [
1550
- /* @__PURE__ */ jsx8("strong", {
1069
+ /* @__PURE__ */ jsx7("strong", {
1551
1070
  children: "Prisma Wrapper & CLI"
1552
1071
  }),
1553
1072
  ". Provides a unified way to manage database schemas, migrations, and clients. Includes seeders and factory patterns for testing."
@@ -1555,17 +1074,17 @@ function LibrariesDataBackendPage() {
1555
1074
  })
1556
1075
  ]
1557
1076
  }),
1558
- /* @__PURE__ */ jsxs8("div", {
1077
+ /* @__PURE__ */ jsxs7("div", {
1559
1078
  className: "card-subtle p-6",
1560
1079
  children: [
1561
- /* @__PURE__ */ jsx8("h3", {
1562
- className: "text-lg font-bold",
1080
+ /* @__PURE__ */ jsx7("h3", {
1081
+ className: "font-bold text-lg",
1563
1082
  children: "@contractspec/lib.bus"
1564
1083
  }),
1565
- /* @__PURE__ */ jsxs8("p", {
1566
- className: "text-muted-foreground mt-2 text-sm",
1084
+ /* @__PURE__ */ jsxs7("p", {
1085
+ className: "mt-2 text-muted-foreground text-sm",
1567
1086
  children: [
1568
- /* @__PURE__ */ jsx8("strong", {
1087
+ /* @__PURE__ */ jsx7("strong", {
1569
1088
  children: "Type-Safe Event Bus"
1570
1089
  }),
1571
1090
  ". Decouple your architecture with typed events. Supports in-memory dispatch for monoliths and can be extended for distributed message queues (Redis, SQS)."
@@ -1573,17 +1092,17 @@ function LibrariesDataBackendPage() {
1573
1092
  })
1574
1093
  ]
1575
1094
  }),
1576
- /* @__PURE__ */ jsxs8("div", {
1095
+ /* @__PURE__ */ jsxs7("div", {
1577
1096
  className: "card-subtle p-6",
1578
1097
  children: [
1579
- /* @__PURE__ */ jsx8("h3", {
1580
- className: "text-lg font-bold",
1098
+ /* @__PURE__ */ jsx7("h3", {
1099
+ className: "font-bold text-lg",
1581
1100
  children: "@contractspec/lib.logger"
1582
1101
  }),
1583
- /* @__PURE__ */ jsxs8("p", {
1584
- className: "text-muted-foreground mt-2 text-sm",
1102
+ /* @__PURE__ */ jsxs7("p", {
1103
+ className: "mt-2 text-muted-foreground text-sm",
1585
1104
  children: [
1586
- /* @__PURE__ */ jsx8("strong", {
1105
+ /* @__PURE__ */ jsx7("strong", {
1587
1106
  children: "High-Performance Logging"
1588
1107
  }),
1589
1108
  ". Optimized for Bun and structured JSON output. Includes plugins for ElysiaJS to log HTTP requests automatically."
@@ -1591,17 +1110,17 @@ function LibrariesDataBackendPage() {
1591
1110
  })
1592
1111
  ]
1593
1112
  }),
1594
- /* @__PURE__ */ jsxs8("div", {
1113
+ /* @__PURE__ */ jsxs7("div", {
1595
1114
  className: "card-subtle p-6",
1596
1115
  children: [
1597
- /* @__PURE__ */ jsx8("h3", {
1598
- className: "text-lg font-bold",
1116
+ /* @__PURE__ */ jsx7("h3", {
1117
+ className: "font-bold text-lg",
1599
1118
  children: "@contractspec/lib.error"
1600
1119
  }),
1601
- /* @__PURE__ */ jsxs8("p", {
1602
- className: "text-muted-foreground mt-2 text-sm",
1120
+ /* @__PURE__ */ jsxs7("p", {
1121
+ className: "mt-2 text-muted-foreground text-sm",
1603
1122
  children: [
1604
- /* @__PURE__ */ jsx8("strong", {
1123
+ /* @__PURE__ */ jsx7("strong", {
1605
1124
  children: "Standardized Errors"
1606
1125
  }),
1607
1126
  ". Use `AppError` with standard codes (NOT_FOUND, UNAUTHORIZED) to ensure consistent HTTP responses and error handling across services."
@@ -1609,17 +1128,17 @@ function LibrariesDataBackendPage() {
1609
1128
  })
1610
1129
  ]
1611
1130
  }),
1612
- /* @__PURE__ */ jsxs8("div", {
1131
+ /* @__PURE__ */ jsxs7("div", {
1613
1132
  className: "card-subtle p-6",
1614
1133
  children: [
1615
- /* @__PURE__ */ jsx8("h3", {
1616
- className: "text-lg font-bold",
1134
+ /* @__PURE__ */ jsx7("h3", {
1135
+ className: "font-bold text-lg",
1617
1136
  children: "@contractspec/lib.exporter"
1618
1137
  }),
1619
- /* @__PURE__ */ jsxs8("p", {
1620
- className: "text-muted-foreground mt-2 text-sm",
1138
+ /* @__PURE__ */ jsxs7("p", {
1139
+ className: "mt-2 text-muted-foreground text-sm",
1621
1140
  children: [
1622
- /* @__PURE__ */ jsx8("strong", {
1141
+ /* @__PURE__ */ jsx7("strong", {
1623
1142
  children: "Data Export"
1624
1143
  }),
1625
1144
  ". Generate CSV and XML files from your data. Platform-agnostic and streaming-friendly."
@@ -1631,14 +1150,14 @@ function LibrariesDataBackendPage() {
1631
1150
  })
1632
1151
  ]
1633
1152
  }),
1634
- /* @__PURE__ */ jsxs8("div", {
1153
+ /* @__PURE__ */ jsxs7("div", {
1635
1154
  className: "space-y-4",
1636
1155
  children: [
1637
- /* @__PURE__ */ jsx8("h2", {
1638
- className: "text-2xl font-bold",
1156
+ /* @__PURE__ */ jsx7("h2", {
1157
+ className: "font-bold text-2xl",
1639
1158
  children: "Example: Unified Backend Flow"
1640
1159
  }),
1641
- /* @__PURE__ */ jsx8(CodeBlock7, {
1160
+ /* @__PURE__ */ jsx7(CodeBlock7, {
1642
1161
  language: "typescript",
1643
1162
  code: `import { logger } from '@contractspec/lib.logger';
1644
1163
  import { AppError } from '@contractspec/lib.error';
@@ -1662,20 +1181,20 @@ export async function createUser(email: string) {
1662
1181
  })
1663
1182
  ]
1664
1183
  }),
1665
- /* @__PURE__ */ jsxs8("div", {
1184
+ /* @__PURE__ */ jsxs7("div", {
1666
1185
  className: "flex items-center gap-4 pt-4",
1667
1186
  children: [
1668
- /* @__PURE__ */ jsxs8(Link7, {
1187
+ /* @__PURE__ */ jsxs7(Link6, {
1669
1188
  href: "/docs/libraries/runtime",
1670
1189
  className: "btn-primary",
1671
1190
  children: [
1672
1191
  "Next: Runtime ",
1673
- /* @__PURE__ */ jsx8(ChevronRight7, {
1192
+ /* @__PURE__ */ jsx7(ChevronRight6, {
1674
1193
  size: 16
1675
1194
  })
1676
1195
  ]
1677
1196
  }),
1678
- /* @__PURE__ */ jsx8(Link7, {
1197
+ /* @__PURE__ */ jsx7(Link6, {
1679
1198
  href: "/docs/libraries",
1680
1199
  className: "btn-ghost",
1681
1200
  children: "Back to Libraries"
@@ -1688,30 +1207,30 @@ export async function createUser(email: string) {
1688
1207
 
1689
1208
  // src/components/docs/libraries/LibrariesDataViewsPage.tsx
1690
1209
  import { CodeBlock as CodeBlock8, InstallCommand as InstallCommand7 } from "@contractspec/lib.design-system";
1691
- import Link8 from "@contractspec/lib.ui-link";
1692
- import { ChevronRight as ChevronRight8 } from "lucide-react";
1693
- import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
1210
+ import Link7 from "@contractspec/lib.ui-link";
1211
+ import { ChevronRight as ChevronRight7 } from "lucide-react";
1212
+ import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
1694
1213
  function LibrariesDataViewsPage() {
1695
- return /* @__PURE__ */ jsxs9("div", {
1214
+ return /* @__PURE__ */ jsxs8("div", {
1696
1215
  className: "space-y-8",
1697
1216
  children: [
1698
- /* @__PURE__ */ jsxs9("div", {
1217
+ /* @__PURE__ */ jsxs8("div", {
1699
1218
  className: "space-y-4",
1700
1219
  children: [
1701
- /* @__PURE__ */ jsx9("h1", {
1702
- className: "text-4xl font-bold",
1220
+ /* @__PURE__ */ jsx8("h1", {
1221
+ className: "font-bold text-4xl",
1703
1222
  children: "DataViews Runtime Library"
1704
1223
  }),
1705
- /* @__PURE__ */ jsxs9("p", {
1706
- className: "text-muted-foreground text-lg",
1224
+ /* @__PURE__ */ jsxs8("p", {
1225
+ className: "text-lg text-muted-foreground",
1707
1226
  children: [
1708
1227
  "The ",
1709
- /* @__PURE__ */ jsx9("code", {
1228
+ /* @__PURE__ */ jsx8("code", {
1710
1229
  children: "@contractspec/lib.contracts-spec/data-views"
1711
1230
  }),
1712
1231
  " and",
1713
1232
  " ",
1714
- /* @__PURE__ */ jsx9("code", {
1233
+ /* @__PURE__ */ jsx8("code", {
1715
1234
  children: "@contractspec/lib.design-system"
1716
1235
  }),
1717
1236
  " libraries provide the runtime logic and UI components to render DataViews in your application."
@@ -1719,14 +1238,14 @@ function LibrariesDataViewsPage() {
1719
1238
  })
1720
1239
  ]
1721
1240
  }),
1722
- /* @__PURE__ */ jsxs9("div", {
1241
+ /* @__PURE__ */ jsxs8("div", {
1723
1242
  className: "space-y-4",
1724
1243
  children: [
1725
- /* @__PURE__ */ jsx9("h2", {
1726
- className: "text-2xl font-bold",
1244
+ /* @__PURE__ */ jsx8("h2", {
1245
+ className: "font-bold text-2xl",
1727
1246
  children: "Installation"
1728
1247
  }),
1729
- /* @__PURE__ */ jsx9(InstallCommand7, {
1248
+ /* @__PURE__ */ jsx8(InstallCommand7, {
1730
1249
  package: [
1731
1250
  "@contractspec/lib.contracts-spec",
1732
1251
  "@contractspec/lib.design-system"
@@ -1734,18 +1253,18 @@ function LibrariesDataViewsPage() {
1734
1253
  })
1735
1254
  ]
1736
1255
  }),
1737
- /* @__PURE__ */ jsxs9("div", {
1256
+ /* @__PURE__ */ jsxs8("div", {
1738
1257
  className: "space-y-4",
1739
1258
  children: [
1740
- /* @__PURE__ */ jsx9("h2", {
1741
- className: "text-2xl font-bold",
1259
+ /* @__PURE__ */ jsx8("h2", {
1260
+ className: "font-bold text-2xl",
1742
1261
  children: "DataViewRenderer"
1743
1262
  }),
1744
- /* @__PURE__ */ jsx9("p", {
1263
+ /* @__PURE__ */ jsx8("p", {
1745
1264
  className: "text-muted-foreground",
1746
1265
  children: "The primary component for rendering any DataView. It automatically selects the correct layout (List, Table, Grid, Detail) based on the spec."
1747
1266
  }),
1748
- /* @__PURE__ */ jsx9(CodeBlock8, {
1267
+ /* @__PURE__ */ jsx8(CodeBlock8, {
1749
1268
  language: "tsx",
1750
1269
  code: `import { DataViewRenderer } from '@contractspec/lib.design-system';
1751
1270
  import { MyUserList } from './specs/users.data-view';
@@ -1761,69 +1280,69 @@ export function UserPage() {
1761
1280
  );
1762
1281
  }`
1763
1282
  }),
1764
- /* @__PURE__ */ jsx9("h3", {
1765
- className: "text-xl font-semibold",
1283
+ /* @__PURE__ */ jsx8("h3", {
1284
+ className: "font-semibold text-xl",
1766
1285
  children: "Props"
1767
1286
  }),
1768
- /* @__PURE__ */ jsxs9("ul", {
1769
- className: "text-muted-foreground list-disc space-y-2 pl-6",
1287
+ /* @__PURE__ */ jsxs8("ul", {
1288
+ className: "list-disc space-y-2 pl-6 text-muted-foreground",
1770
1289
  children: [
1771
- /* @__PURE__ */ jsxs9("li", {
1290
+ /* @__PURE__ */ jsxs8("li", {
1772
1291
  children: [
1773
- /* @__PURE__ */ jsx9("code", {
1292
+ /* @__PURE__ */ jsx8("code", {
1774
1293
  children: "spec"
1775
1294
  }),
1776
1295
  ": The DataViewSpec definition."
1777
1296
  ]
1778
1297
  }),
1779
- /* @__PURE__ */ jsxs9("li", {
1298
+ /* @__PURE__ */ jsxs8("li", {
1780
1299
  children: [
1781
- /* @__PURE__ */ jsx9("code", {
1300
+ /* @__PURE__ */ jsx8("code", {
1782
1301
  children: "items"
1783
1302
  }),
1784
1303
  ": Array of data items to render."
1785
1304
  ]
1786
1305
  }),
1787
- /* @__PURE__ */ jsxs9("li", {
1306
+ /* @__PURE__ */ jsxs8("li", {
1788
1307
  children: [
1789
- /* @__PURE__ */ jsx9("code", {
1308
+ /* @__PURE__ */ jsx8("code", {
1790
1309
  children: "filters"
1791
1310
  }),
1792
1311
  ": Current filter state object."
1793
1312
  ]
1794
1313
  }),
1795
- /* @__PURE__ */ jsxs9("li", {
1314
+ /* @__PURE__ */ jsxs8("li", {
1796
1315
  children: [
1797
- /* @__PURE__ */ jsx9("code", {
1316
+ /* @__PURE__ */ jsx8("code", {
1798
1317
  children: "onFilterChange"
1799
1318
  }),
1800
1319
  ": Callback when filters change."
1801
1320
  ]
1802
1321
  }),
1803
- /* @__PURE__ */ jsxs9("li", {
1322
+ /* @__PURE__ */ jsxs8("li", {
1804
1323
  children: [
1805
- /* @__PURE__ */ jsx9("code", {
1324
+ /* @__PURE__ */ jsx8("code", {
1806
1325
  children: "pagination"
1807
1326
  }),
1808
1327
  ": Object with ",
1809
- /* @__PURE__ */ jsx9("code", {
1328
+ /* @__PURE__ */ jsx8("code", {
1810
1329
  children: "page"
1811
1330
  }),
1812
1331
  ",",
1813
1332
  " ",
1814
- /* @__PURE__ */ jsx9("code", {
1333
+ /* @__PURE__ */ jsx8("code", {
1815
1334
  children: "pageSize"
1816
1335
  }),
1817
1336
  ", ",
1818
- /* @__PURE__ */ jsx9("code", {
1337
+ /* @__PURE__ */ jsx8("code", {
1819
1338
  children: "total"
1820
1339
  }),
1821
1340
  "."
1822
1341
  ]
1823
1342
  }),
1824
- /* @__PURE__ */ jsxs9("li", {
1343
+ /* @__PURE__ */ jsxs8("li", {
1825
1344
  children: [
1826
- /* @__PURE__ */ jsx9("code", {
1345
+ /* @__PURE__ */ jsx8("code", {
1827
1346
  children: "onPageChange"
1828
1347
  }),
1829
1348
  ": Callback when page changes."
@@ -1833,24 +1352,24 @@ export function UserPage() {
1833
1352
  })
1834
1353
  ]
1835
1354
  }),
1836
- /* @__PURE__ */ jsxs9("div", {
1355
+ /* @__PURE__ */ jsxs8("div", {
1837
1356
  className: "space-y-4",
1838
1357
  children: [
1839
- /* @__PURE__ */ jsx9("h2", {
1840
- className: "text-2xl font-bold",
1358
+ /* @__PURE__ */ jsx8("h2", {
1359
+ className: "font-bold text-2xl",
1841
1360
  children: "Query Generation"
1842
1361
  }),
1843
- /* @__PURE__ */ jsxs9("p", {
1362
+ /* @__PURE__ */ jsxs8("p", {
1844
1363
  className: "text-muted-foreground",
1845
1364
  children: [
1846
1365
  "The ",
1847
- /* @__PURE__ */ jsx9("code", {
1366
+ /* @__PURE__ */ jsx8("code", {
1848
1367
  children: "DataViewQueryGenerator"
1849
1368
  }),
1850
1369
  " utility helps translate DataView parameters (filters, sorting, pagination) into query arguments for your backend."
1851
1370
  ]
1852
1371
  }),
1853
- /* @__PURE__ */ jsx9(CodeBlock8, {
1372
+ /* @__PURE__ */ jsx8(CodeBlock8, {
1854
1373
  language: "typescript",
1855
1374
  code: `import { DataViewQueryGenerator } from '@contractspec/lib.contracts-spec/data-views/query-generator';
1856
1375
 
@@ -1864,20 +1383,20 @@ const query = generator.generate({
1864
1383
  })
1865
1384
  ]
1866
1385
  }),
1867
- /* @__PURE__ */ jsxs9("div", {
1386
+ /* @__PURE__ */ jsxs8("div", {
1868
1387
  className: "flex items-center gap-4 pt-4",
1869
1388
  children: [
1870
- /* @__PURE__ */ jsx9(Link8, {
1389
+ /* @__PURE__ */ jsx8(Link7, {
1871
1390
  href: "/docs/libraries",
1872
1391
  className: "btn-ghost",
1873
1392
  children: "Back to Libraries"
1874
1393
  }),
1875
- /* @__PURE__ */ jsxs9(Link8, {
1394
+ /* @__PURE__ */ jsxs8(Link7, {
1876
1395
  href: "/docs/libraries/data-backend",
1877
1396
  className: "btn-primary",
1878
1397
  children: [
1879
1398
  "Next: Data & Backend ",
1880
- /* @__PURE__ */ jsx9(ChevronRight8, {
1399
+ /* @__PURE__ */ jsx8(ChevronRight7, {
1881
1400
  size: 16
1882
1401
  })
1883
1402
  ]
@@ -1889,26 +1408,26 @@ const query = generator.generate({
1889
1408
  }
1890
1409
 
1891
1410
  // src/components/docs/libraries/LibrariesDesignSystemPage.tsx
1892
- import Link9 from "@contractspec/lib.ui-link";
1893
- import { ChevronRight as ChevronRight9 } from "lucide-react";
1894
1411
  import { CodeBlock as CodeBlock9, InstallCommand as InstallCommand8 } from "@contractspec/lib.design-system";
1895
- import { jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
1412
+ import Link8 from "@contractspec/lib.ui-link";
1413
+ import { ChevronRight as ChevronRight8 } from "lucide-react";
1414
+ import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
1896
1415
  function LibrariesDesignSystemPage() {
1897
- return /* @__PURE__ */ jsxs10("div", {
1416
+ return /* @__PURE__ */ jsxs9("div", {
1898
1417
  className: "space-y-8",
1899
1418
  children: [
1900
- /* @__PURE__ */ jsxs10("div", {
1419
+ /* @__PURE__ */ jsxs9("div", {
1901
1420
  className: "space-y-4",
1902
1421
  children: [
1903
- /* @__PURE__ */ jsx10("h1", {
1904
- className: "text-4xl font-bold",
1422
+ /* @__PURE__ */ jsx9("h1", {
1423
+ className: "font-bold text-4xl",
1905
1424
  children: "@contractspec/lib.design-system"
1906
1425
  }),
1907
- /* @__PURE__ */ jsxs10("p", {
1426
+ /* @__PURE__ */ jsxs9("p", {
1908
1427
  className: "text-muted-foreground",
1909
1428
  children: [
1910
1429
  "High-level design system components, patterns, and layouts for LSSM applications. Built on top of ",
1911
- /* @__PURE__ */ jsx10("code", {
1430
+ /* @__PURE__ */ jsx9("code", {
1912
1431
  children: "@contractspec/lib.ui-kit"
1913
1432
  }),
1914
1433
  "."
@@ -1916,79 +1435,79 @@ function LibrariesDesignSystemPage() {
1916
1435
  })
1917
1436
  ]
1918
1437
  }),
1919
- /* @__PURE__ */ jsxs10("div", {
1438
+ /* @__PURE__ */ jsxs9("div", {
1920
1439
  className: "space-y-4",
1921
1440
  children: [
1922
- /* @__PURE__ */ jsx10("h2", {
1923
- className: "text-2xl font-bold",
1441
+ /* @__PURE__ */ jsx9("h2", {
1442
+ className: "font-bold text-2xl",
1924
1443
  children: "Installation"
1925
1444
  }),
1926
- /* @__PURE__ */ jsx10(InstallCommand8, {
1445
+ /* @__PURE__ */ jsx9(InstallCommand8, {
1927
1446
  package: "@contractspec/lib.design-system"
1928
1447
  })
1929
1448
  ]
1930
1449
  }),
1931
- /* @__PURE__ */ jsxs10("div", {
1450
+ /* @__PURE__ */ jsxs9("div", {
1932
1451
  className: "space-y-4",
1933
1452
  children: [
1934
- /* @__PURE__ */ jsx10("h2", {
1935
- className: "text-2xl font-bold",
1453
+ /* @__PURE__ */ jsx9("h2", {
1454
+ className: "font-bold text-2xl",
1936
1455
  children: "What It Provides"
1937
1456
  }),
1938
- /* @__PURE__ */ jsxs10("ul", {
1939
- className: "text-muted-foreground list-inside list-disc space-y-2",
1457
+ /* @__PURE__ */ jsxs9("ul", {
1458
+ className: "list-inside list-disc space-y-2 text-muted-foreground",
1940
1459
  children: [
1941
- /* @__PURE__ */ jsxs10("li", {
1460
+ /* @__PURE__ */ jsxs9("li", {
1942
1461
  children: [
1943
- /* @__PURE__ */ jsx10("strong", {
1462
+ /* @__PURE__ */ jsx9("strong", {
1944
1463
  children: "Composite Components"
1945
1464
  }),
1946
1465
  ": Molecules and Organisms that solve common UI problems"
1947
1466
  ]
1948
1467
  }),
1949
- /* @__PURE__ */ jsxs10("li", {
1468
+ /* @__PURE__ */ jsxs9("li", {
1950
1469
  children: [
1951
- /* @__PURE__ */ jsx10("strong", {
1470
+ /* @__PURE__ */ jsx9("strong", {
1952
1471
  children: "Layouts"
1953
1472
  }),
1954
1473
  ": Ready-to-use page structures for dashboards, marketing sites, and lists"
1955
1474
  ]
1956
1475
  }),
1957
- /* @__PURE__ */ jsxs10("li", {
1476
+ /* @__PURE__ */ jsxs9("li", {
1958
1477
  children: [
1959
- /* @__PURE__ */ jsx10("strong", {
1478
+ /* @__PURE__ */ jsx9("strong", {
1960
1479
  children: "Data Views"
1961
1480
  }),
1962
1481
  ": Standardized renderers for lists, tables, and detail views"
1963
1482
  ]
1964
1483
  }),
1965
- /* @__PURE__ */ jsxs10("li", {
1484
+ /* @__PURE__ */ jsxs9("li", {
1966
1485
  children: [
1967
- /* @__PURE__ */ jsx10("strong", {
1486
+ /* @__PURE__ */ jsx9("strong", {
1968
1487
  children: "Forms"
1969
1488
  }),
1970
1489
  ": Zod-integrated form layouts and components"
1971
1490
  ]
1972
1491
  }),
1973
- /* @__PURE__ */ jsxs10("li", {
1492
+ /* @__PURE__ */ jsxs9("li", {
1974
1493
  children: [
1975
- /* @__PURE__ */ jsx10("strong", {
1494
+ /* @__PURE__ */ jsx9("strong", {
1976
1495
  children: "Code Display"
1977
1496
  }),
1978
1497
  ": Syntax-highlighted code blocks with package manager tabs"
1979
1498
  ]
1980
1499
  }),
1981
- /* @__PURE__ */ jsxs10("li", {
1500
+ /* @__PURE__ */ jsxs9("li", {
1982
1501
  children: [
1983
- /* @__PURE__ */ jsx10("strong", {
1502
+ /* @__PURE__ */ jsx9("strong", {
1984
1503
  children: "Platform Utilities"
1985
1504
  }),
1986
1505
  ": Hooks for responsive and adaptive design"
1987
1506
  ]
1988
1507
  }),
1989
- /* @__PURE__ */ jsxs10("li", {
1508
+ /* @__PURE__ */ jsxs9("li", {
1990
1509
  children: [
1991
- /* @__PURE__ */ jsx10("strong", {
1510
+ /* @__PURE__ */ jsx9("strong", {
1992
1511
  children: "Legal Templates"
1993
1512
  }),
1994
1513
  ": Compliant templates for Terms, Privacy, and GDPR"
@@ -1998,14 +1517,14 @@ function LibrariesDesignSystemPage() {
1998
1517
  })
1999
1518
  ]
2000
1519
  }),
2001
- /* @__PURE__ */ jsxs10("div", {
1520
+ /* @__PURE__ */ jsxs9("div", {
2002
1521
  className: "space-y-4",
2003
1522
  children: [
2004
- /* @__PURE__ */ jsx10("h2", {
2005
- className: "text-2xl font-bold",
1523
+ /* @__PURE__ */ jsx9("h2", {
1524
+ className: "font-bold text-2xl",
2006
1525
  children: "Example: App Layout"
2007
1526
  }),
2008
- /* @__PURE__ */ jsx10(CodeBlock9, {
1527
+ /* @__PURE__ */ jsx9(CodeBlock9, {
2009
1528
  language: "tsx",
2010
1529
  code: `import { AppLayout } from '@contractspec/lib.design-system';
2011
1530
  import { AppSidebar } from '@contractspec/lib.design-system';
@@ -2020,14 +1539,14 @@ export function Layout({ children }) {
2020
1539
  })
2021
1540
  ]
2022
1541
  }),
2023
- /* @__PURE__ */ jsxs10("div", {
1542
+ /* @__PURE__ */ jsxs9("div", {
2024
1543
  className: "space-y-4",
2025
1544
  children: [
2026
- /* @__PURE__ */ jsx10("h2", {
2027
- className: "text-2xl font-bold",
1545
+ /* @__PURE__ */ jsx9("h2", {
1546
+ className: "font-bold text-2xl",
2028
1547
  children: "Example: Zod Form"
2029
1548
  }),
2030
- /* @__PURE__ */ jsx10(CodeBlock9, {
1549
+ /* @__PURE__ */ jsx9(CodeBlock9, {
2031
1550
  language: "tsx",
2032
1551
  code: `import { ZodForm } from '@contractspec/lib.design-system';
2033
1552
  import * as z from "zod";
@@ -2049,14 +1568,14 @@ export function SignupForm() {
2049
1568
  })
2050
1569
  ]
2051
1570
  }),
2052
- /* @__PURE__ */ jsxs10("div", {
1571
+ /* @__PURE__ */ jsxs9("div", {
2053
1572
  className: "space-y-4",
2054
1573
  children: [
2055
- /* @__PURE__ */ jsx10("h2", {
2056
- className: "text-2xl font-bold",
1574
+ /* @__PURE__ */ jsx9("h2", {
1575
+ className: "font-bold text-2xl",
2057
1576
  children: "Example: Code Block with Package Manager Tabs"
2058
1577
  }),
2059
- /* @__PURE__ */ jsx10(CodeBlock9, {
1578
+ /* @__PURE__ */ jsx9(CodeBlock9, {
2060
1579
  language: "tsx",
2061
1580
  code: `import { CodeBlock, InstallCommand } from '@contractspec/lib.design-system';
2062
1581
 
@@ -2073,98 +1592,98 @@ export function SignupForm() {
2073
1592
  })
2074
1593
  ]
2075
1594
  }),
2076
- /* @__PURE__ */ jsxs10("div", {
1595
+ /* @__PURE__ */ jsxs9("div", {
2077
1596
  className: "space-y-4",
2078
1597
  children: [
2079
- /* @__PURE__ */ jsx10("h2", {
2080
- className: "text-2xl font-bold",
1598
+ /* @__PURE__ */ jsx9("h2", {
1599
+ className: "font-bold text-2xl",
2081
1600
  children: "Key Exports"
2082
1601
  }),
2083
- /* @__PURE__ */ jsxs10("div", {
1602
+ /* @__PURE__ */ jsxs9("div", {
2084
1603
  className: "grid gap-4 md:grid-cols-2",
2085
1604
  children: [
2086
- /* @__PURE__ */ jsxs10("div", {
1605
+ /* @__PURE__ */ jsxs9("div", {
2087
1606
  className: "card-subtle p-4",
2088
1607
  children: [
2089
- /* @__PURE__ */ jsx10("h3", {
1608
+ /* @__PURE__ */ jsx9("h3", {
2090
1609
  className: "mb-2 font-semibold",
2091
1610
  children: "Organisms"
2092
1611
  }),
2093
- /* @__PURE__ */ jsxs10("ul", {
2094
- className: "text-muted-foreground space-y-1 text-sm",
1612
+ /* @__PURE__ */ jsxs9("ul", {
1613
+ className: "space-y-1 text-muted-foreground text-sm",
2095
1614
  children: [
2096
- /* @__PURE__ */ jsx10("li", {
1615
+ /* @__PURE__ */ jsx9("li", {
2097
1616
  children: "AppLayout, AppHeader, AppSidebar"
2098
1617
  }),
2099
- /* @__PURE__ */ jsx10("li", {
1618
+ /* @__PURE__ */ jsx9("li", {
2100
1619
  children: "MarketingLayout, HeroSection"
2101
1620
  }),
2102
- /* @__PURE__ */ jsx10("li", {
1621
+ /* @__PURE__ */ jsx9("li", {
2103
1622
  children: "ListCardPage, ListTablePage"
2104
1623
  })
2105
1624
  ]
2106
1625
  })
2107
1626
  ]
2108
1627
  }),
2109
- /* @__PURE__ */ jsxs10("div", {
1628
+ /* @__PURE__ */ jsxs9("div", {
2110
1629
  className: "card-subtle p-4",
2111
1630
  children: [
2112
- /* @__PURE__ */ jsx10("h3", {
1631
+ /* @__PURE__ */ jsx9("h3", {
2113
1632
  className: "mb-2 font-semibold",
2114
1633
  children: "Data & Forms"
2115
1634
  }),
2116
- /* @__PURE__ */ jsxs10("ul", {
2117
- className: "text-muted-foreground space-y-1 text-sm",
1635
+ /* @__PURE__ */ jsxs9("ul", {
1636
+ className: "space-y-1 text-muted-foreground text-sm",
2118
1637
  children: [
2119
- /* @__PURE__ */ jsx10("li", {
1638
+ /* @__PURE__ */ jsx9("li", {
2120
1639
  children: "DataViewRenderer"
2121
1640
  }),
2122
- /* @__PURE__ */ jsx10("li", {
1641
+ /* @__PURE__ */ jsx9("li", {
2123
1642
  children: "ZodForm"
2124
1643
  }),
2125
- /* @__PURE__ */ jsx10("li", {
1644
+ /* @__PURE__ */ jsx9("li", {
2126
1645
  children: "FormLayout, FormDialog"
2127
1646
  })
2128
1647
  ]
2129
1648
  })
2130
1649
  ]
2131
1650
  }),
2132
- /* @__PURE__ */ jsxs10("div", {
1651
+ /* @__PURE__ */ jsxs9("div", {
2133
1652
  className: "card-subtle p-4",
2134
1653
  children: [
2135
- /* @__PURE__ */ jsx10("h3", {
1654
+ /* @__PURE__ */ jsx9("h3", {
2136
1655
  className: "mb-2 font-semibold",
2137
1656
  children: "Code Display"
2138
1657
  }),
2139
- /* @__PURE__ */ jsxs10("ul", {
2140
- className: "text-muted-foreground space-y-1 text-sm",
1658
+ /* @__PURE__ */ jsxs9("ul", {
1659
+ className: "space-y-1 text-muted-foreground text-sm",
2141
1660
  children: [
2142
- /* @__PURE__ */ jsx10("li", {
1661
+ /* @__PURE__ */ jsx9("li", {
2143
1662
  children: "CodeBlock (syntax highlighting)"
2144
1663
  }),
2145
- /* @__PURE__ */ jsx10("li", {
1664
+ /* @__PURE__ */ jsx9("li", {
2146
1665
  children: "CommandTabs (package manager tabs)"
2147
1666
  }),
2148
- /* @__PURE__ */ jsx10("li", {
1667
+ /* @__PURE__ */ jsx9("li", {
2149
1668
  children: "InstallCommand (convenience wrapper)"
2150
1669
  }),
2151
- /* @__PURE__ */ jsx10("li", {
1670
+ /* @__PURE__ */ jsx9("li", {
2152
1671
  children: "CopyButton"
2153
1672
  })
2154
1673
  ]
2155
1674
  })
2156
1675
  ]
2157
1676
  }),
2158
- /* @__PURE__ */ jsxs10("div", {
1677
+ /* @__PURE__ */ jsxs9("div", {
2159
1678
  className: "card-subtle p-4",
2160
1679
  children: [
2161
- /* @__PURE__ */ jsx10("h3", {
1680
+ /* @__PURE__ */ jsx9("h3", {
2162
1681
  className: "mb-2 font-semibold",
2163
1682
  children: "Providers"
2164
1683
  }),
2165
- /* @__PURE__ */ jsx10("ul", {
2166
- className: "text-muted-foreground space-y-1 text-sm",
2167
- children: /* @__PURE__ */ jsx10("li", {
1684
+ /* @__PURE__ */ jsx9("ul", {
1685
+ className: "space-y-1 text-muted-foreground text-sm",
1686
+ children: /* @__PURE__ */ jsx9("li", {
2168
1687
  children: "PackageManagerProvider"
2169
1688
  })
2170
1689
  })
@@ -2174,20 +1693,20 @@ export function SignupForm() {
2174
1693
  })
2175
1694
  ]
2176
1695
  }),
2177
- /* @__PURE__ */ jsxs10("div", {
1696
+ /* @__PURE__ */ jsxs9("div", {
2178
1697
  className: "flex items-center gap-4 pt-4",
2179
1698
  children: [
2180
- /* @__PURE__ */ jsx10(Link9, {
1699
+ /* @__PURE__ */ jsx9(Link8, {
2181
1700
  href: "/docs/libraries/ui-kit",
2182
1701
  className: "btn-ghost",
2183
1702
  children: "Previous: UI Kit"
2184
1703
  }),
2185
- /* @__PURE__ */ jsxs10(Link9, {
1704
+ /* @__PURE__ */ jsxs9(Link8, {
2186
1705
  href: "/docs/libraries/accessibility",
2187
1706
  className: "btn-primary",
2188
1707
  children: [
2189
1708
  "Next: Accessibility ",
2190
- /* @__PURE__ */ jsx10(ChevronRight9, {
1709
+ /* @__PURE__ */ jsx9(ChevronRight8, {
2191
1710
  size: 16
2192
1711
  })
2193
1712
  ]
@@ -2200,46 +1719,46 @@ export function SignupForm() {
2200
1719
 
2201
1720
  // src/components/docs/libraries/LibrariesEvolutionPage.tsx
2202
1721
  import { CodeBlock as CodeBlock10, InstallCommand as InstallCommand9 } from "@contractspec/lib.design-system";
2203
- import Link10 from "@contractspec/lib.ui-link";
2204
- import { ChevronRight as ChevronRight10 } from "lucide-react";
2205
- import { jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
1722
+ import Link9 from "@contractspec/lib.ui-link";
1723
+ import { ChevronRight as ChevronRight9 } from "lucide-react";
1724
+ import { jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
2206
1725
  function LibrariesEvolutionPage() {
2207
- return /* @__PURE__ */ jsxs11("div", {
1726
+ return /* @__PURE__ */ jsxs10("div", {
2208
1727
  className: "space-y-8",
2209
1728
  children: [
2210
- /* @__PURE__ */ jsxs11("div", {
1729
+ /* @__PURE__ */ jsxs10("div", {
2211
1730
  className: "space-y-4",
2212
1731
  children: [
2213
- /* @__PURE__ */ jsx11("h1", {
2214
- className: "text-4xl font-bold",
1732
+ /* @__PURE__ */ jsx10("h1", {
1733
+ className: "font-bold text-4xl",
2215
1734
  children: "@contractspec/lib.evolution"
2216
1735
  }),
2217
- /* @__PURE__ */ jsx11("p", {
2218
- className: "text-muted-foreground text-lg",
1736
+ /* @__PURE__ */ jsx10("p", {
1737
+ className: "text-lg text-muted-foreground",
2219
1738
  children: "Analyze production telemetry, surface anomalies, and turn them into AI-reviewed spec proposals that can be approved, rolled out, or reverted."
2220
1739
  })
2221
1740
  ]
2222
1741
  }),
2223
- /* @__PURE__ */ jsxs11("div", {
1742
+ /* @__PURE__ */ jsxs10("div", {
2224
1743
  className: "space-y-4",
2225
1744
  children: [
2226
- /* @__PURE__ */ jsx11("h2", {
2227
- className: "text-2xl font-bold",
1745
+ /* @__PURE__ */ jsx10("h2", {
1746
+ className: "font-bold text-2xl",
2228
1747
  children: "Installation"
2229
1748
  }),
2230
- /* @__PURE__ */ jsx11(InstallCommand9, {
1749
+ /* @__PURE__ */ jsx10(InstallCommand9, {
2231
1750
  package: "@contractspec/lib.evolution"
2232
1751
  })
2233
1752
  ]
2234
1753
  }),
2235
- /* @__PURE__ */ jsxs11("div", {
1754
+ /* @__PURE__ */ jsxs10("div", {
2236
1755
  className: "space-y-3",
2237
1756
  children: [
2238
- /* @__PURE__ */ jsx11("h2", {
2239
- className: "text-2xl font-bold",
1757
+ /* @__PURE__ */ jsx10("h2", {
1758
+ className: "font-bold text-2xl",
2240
1759
  children: "From telemetry to intent"
2241
1760
  }),
2242
- /* @__PURE__ */ jsx11(CodeBlock10, {
1761
+ /* @__PURE__ */ jsx10(CodeBlock10, {
2243
1762
  language: "typescript",
2244
1763
  code: `import { SpecAnalyzer } from '@contractspec/lib.evolution/analyzer';
2245
1764
  import { EvolutionPipeline } from '@contractspec/lib.observability';
@@ -2260,14 +1779,14 @@ pipeline.ingest({
2260
1779
  })
2261
1780
  ]
2262
1781
  }),
2263
- /* @__PURE__ */ jsxs11("div", {
1782
+ /* @__PURE__ */ jsxs10("div", {
2264
1783
  className: "space-y-3",
2265
1784
  children: [
2266
- /* @__PURE__ */ jsx11("h2", {
2267
- className: "text-2xl font-bold",
1785
+ /* @__PURE__ */ jsx10("h2", {
1786
+ className: "font-bold text-2xl",
2268
1787
  children: "Generate & approve suggestions"
2269
1788
  }),
2270
- /* @__PURE__ */ jsx11(CodeBlock10, {
1789
+ /* @__PURE__ */ jsx10(CodeBlock10, {
2271
1790
  language: "typescript",
2272
1791
  code: `import {
2273
1792
  SpecGenerator,
@@ -2287,14 +1806,14 @@ await orchestrator.submit(suggestion, sessionState);`
2287
1806
  })
2288
1807
  ]
2289
1808
  }),
2290
- /* @__PURE__ */ jsxs11("div", {
1809
+ /* @__PURE__ */ jsxs10("div", {
2291
1810
  className: "space-y-3",
2292
1811
  children: [
2293
- /* @__PURE__ */ jsx11("h2", {
2294
- className: "text-2xl font-bold",
1812
+ /* @__PURE__ */ jsx10("h2", {
1813
+ className: "font-bold text-2xl",
2295
1814
  children: "Write approved specs back to git"
2296
1815
  }),
2297
- /* @__PURE__ */ jsx11(CodeBlock10, {
1816
+ /* @__PURE__ */ jsx10(CodeBlock10, {
2298
1817
  language: "typescript",
2299
1818
  code: `import { FileSystemSuggestionWriter } from '@contractspec/lib.evolution/approval';
2300
1819
 
@@ -2311,7 +1830,7 @@ await writer.write({
2311
1830
  })
2312
1831
  ]
2313
1832
  }),
2314
- /* @__PURE__ */ jsx11("div", {
1833
+ /* @__PURE__ */ jsx10("div", {
2315
1834
  className: "grid gap-4 md:grid-cols-2",
2316
1835
  children: [
2317
1836
  {
@@ -2322,34 +1841,34 @@ await writer.write({
2322
1841
  title: "Pluggable storage",
2323
1842
  description: "Use the Prisma repository in production, in-memory for tests, or stream serialized suggestions into your own queue."
2324
1843
  }
2325
- ].map((card) => /* @__PURE__ */ jsxs11("div", {
1844
+ ].map((card) => /* @__PURE__ */ jsxs10("div", {
2326
1845
  className: "card-subtle space-y-2 p-4",
2327
1846
  children: [
2328
- /* @__PURE__ */ jsx11("h3", {
2329
- className: "text-lg font-semibold",
1847
+ /* @__PURE__ */ jsx10("h3", {
1848
+ className: "font-semibold text-lg",
2330
1849
  children: card.title
2331
1850
  }),
2332
- /* @__PURE__ */ jsx11("p", {
1851
+ /* @__PURE__ */ jsx10("p", {
2333
1852
  className: "text-muted-foreground text-sm",
2334
1853
  children: card.description
2335
1854
  })
2336
1855
  ]
2337
1856
  }, card.title))
2338
1857
  }),
2339
- /* @__PURE__ */ jsxs11("div", {
1858
+ /* @__PURE__ */ jsxs10("div", {
2340
1859
  className: "flex items-center gap-4 pt-4",
2341
1860
  children: [
2342
- /* @__PURE__ */ jsx11(Link10, {
1861
+ /* @__PURE__ */ jsx10(Link9, {
2343
1862
  href: "/docs/libraries",
2344
1863
  className: "btn-ghost",
2345
1864
  children: "Back to Libraries"
2346
1865
  }),
2347
- /* @__PURE__ */ jsxs11(Link10, {
1866
+ /* @__PURE__ */ jsxs10(Link9, {
2348
1867
  href: "/docs/libraries/observability",
2349
1868
  className: "btn-primary",
2350
1869
  children: [
2351
1870
  "Next: Observability ",
2352
- /* @__PURE__ */ jsx11(ChevronRight10, {
1871
+ /* @__PURE__ */ jsx10(ChevronRight9, {
2353
1872
  size: 16
2354
1873
  })
2355
1874
  ]
@@ -2361,72 +1880,72 @@ await writer.write({
2361
1880
  }
2362
1881
 
2363
1882
  // src/components/docs/libraries/LibrariesGraphQLPage.tsx
2364
- import Link11 from "@contractspec/lib.ui-link";
2365
- import { ChevronRight as ChevronRight11 } from "lucide-react";
2366
1883
  import { CodeBlock as CodeBlock11, InstallCommand as InstallCommand10 } from "@contractspec/lib.design-system";
2367
- import { jsx as jsx12, jsxs as jsxs12 } from "react/jsx-runtime";
1884
+ import Link10 from "@contractspec/lib.ui-link";
1885
+ import { ChevronRight as ChevronRight10 } from "lucide-react";
1886
+ import { jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
2368
1887
  function LibrariesGraphQLPage() {
2369
- return /* @__PURE__ */ jsxs12("div", {
1888
+ return /* @__PURE__ */ jsxs11("div", {
2370
1889
  className: "space-y-8",
2371
1890
  children: [
2372
- /* @__PURE__ */ jsxs12("div", {
1891
+ /* @__PURE__ */ jsxs11("div", {
2373
1892
  className: "space-y-4",
2374
1893
  children: [
2375
- /* @__PURE__ */ jsx12("h1", {
2376
- className: "text-4xl font-bold",
1894
+ /* @__PURE__ */ jsx11("h1", {
1895
+ className: "font-bold text-4xl",
2377
1896
  children: "GraphQL Libraries"
2378
1897
  }),
2379
- /* @__PURE__ */ jsx12("p", {
1898
+ /* @__PURE__ */ jsx11("p", {
2380
1899
  className: "text-muted-foreground",
2381
1900
  children: "This suite of libraries enables seamless GraphQL integration, transforming your ContractSpecs into a type-safe Pothos schema, connecting with Prisma, and enabling Apollo Federation."
2382
1901
  })
2383
1902
  ]
2384
1903
  }),
2385
- /* @__PURE__ */ jsxs12("div", {
1904
+ /* @__PURE__ */ jsxs11("div", {
2386
1905
  className: "space-y-4",
2387
1906
  children: [
2388
- /* @__PURE__ */ jsx12("h2", {
2389
- className: "text-2xl font-bold",
1907
+ /* @__PURE__ */ jsx11("h2", {
1908
+ className: "font-bold text-2xl",
2390
1909
  children: "Libraries"
2391
1910
  }),
2392
- /* @__PURE__ */ jsxs12("div", {
1911
+ /* @__PURE__ */ jsxs11("div", {
2393
1912
  className: "grid gap-4 md:grid-cols-1",
2394
1913
  children: [
2395
- /* @__PURE__ */ jsxs12("div", {
1914
+ /* @__PURE__ */ jsxs11("div", {
2396
1915
  className: "card-subtle p-6",
2397
1916
  children: [
2398
- /* @__PURE__ */ jsx12("h3", {
2399
- className: "text-lg font-bold",
1917
+ /* @__PURE__ */ jsx11("h3", {
1918
+ className: "font-bold text-lg",
2400
1919
  children: "@contractspec/lib.graphql-core"
2401
1920
  }),
2402
- /* @__PURE__ */ jsx12("p", {
2403
- className: "text-muted-foreground mt-2 text-sm",
1921
+ /* @__PURE__ */ jsx11("p", {
1922
+ className: "mt-2 text-muted-foreground text-sm",
2404
1923
  children: "The foundation. Provides a configured Pothos builder, common scalars (JSON, DateTime), and utilities for mapping ContractSpec I/O to Pothos types."
2405
1924
  })
2406
1925
  ]
2407
1926
  }),
2408
- /* @__PURE__ */ jsxs12("div", {
1927
+ /* @__PURE__ */ jsxs11("div", {
2409
1928
  className: "card-subtle p-6",
2410
1929
  children: [
2411
- /* @__PURE__ */ jsx12("h3", {
2412
- className: "text-lg font-bold",
1930
+ /* @__PURE__ */ jsx11("h3", {
1931
+ className: "font-bold text-lg",
2413
1932
  children: "@contractspec/lib.graphql-prisma"
2414
1933
  }),
2415
- /* @__PURE__ */ jsx12("p", {
2416
- className: "text-muted-foreground mt-2 text-sm",
1934
+ /* @__PURE__ */ jsx11("p", {
1935
+ className: "mt-2 text-muted-foreground text-sm",
2417
1936
  children: "Connects Pothos to Prisma. Automatically generates GraphQL types from your Prisma schema and optimizes queries to prevent N+1 issues."
2418
1937
  })
2419
1938
  ]
2420
1939
  }),
2421
- /* @__PURE__ */ jsxs12("div", {
1940
+ /* @__PURE__ */ jsxs11("div", {
2422
1941
  className: "card-subtle p-6",
2423
1942
  children: [
2424
- /* @__PURE__ */ jsx12("h3", {
2425
- className: "text-lg font-bold",
1943
+ /* @__PURE__ */ jsx11("h3", {
1944
+ className: "font-bold text-lg",
2426
1945
  children: "@contractspec/lib.graphql-federation"
2427
1946
  }),
2428
- /* @__PURE__ */ jsx12("p", {
2429
- className: "text-muted-foreground mt-2 text-sm",
1947
+ /* @__PURE__ */ jsx11("p", {
1948
+ className: "mt-2 text-muted-foreground text-sm",
2430
1949
  children: "Adds Apollo Federation V2 support. Allows your subgraph to define keys and entities, making it ready for a supergraph."
2431
1950
  })
2432
1951
  ]
@@ -2435,14 +1954,14 @@ function LibrariesGraphQLPage() {
2435
1954
  })
2436
1955
  ]
2437
1956
  }),
2438
- /* @__PURE__ */ jsxs12("div", {
1957
+ /* @__PURE__ */ jsxs11("div", {
2439
1958
  className: "space-y-4",
2440
1959
  children: [
2441
- /* @__PURE__ */ jsx12("h2", {
2442
- className: "text-2xl font-bold",
1960
+ /* @__PURE__ */ jsx11("h2", {
1961
+ className: "font-bold text-2xl",
2443
1962
  children: "Installation"
2444
1963
  }),
2445
- /* @__PURE__ */ jsx12(InstallCommand10, {
1964
+ /* @__PURE__ */ jsx11(InstallCommand10, {
2446
1965
  package: [
2447
1966
  "@contractspec/lib.graphql-core",
2448
1967
  "@contractspec/lib.graphql-prisma",
@@ -2451,18 +1970,18 @@ function LibrariesGraphQLPage() {
2451
1970
  })
2452
1971
  ]
2453
1972
  }),
2454
- /* @__PURE__ */ jsxs12("div", {
1973
+ /* @__PURE__ */ jsxs11("div", {
2455
1974
  className: "space-y-4",
2456
1975
  children: [
2457
- /* @__PURE__ */ jsx12("h2", {
2458
- className: "text-2xl font-bold",
1976
+ /* @__PURE__ */ jsx11("h2", {
1977
+ className: "font-bold text-2xl",
2459
1978
  children: "Usage: Building a Schema"
2460
1979
  }),
2461
- /* @__PURE__ */ jsx12("p", {
1980
+ /* @__PURE__ */ jsx11("p", {
2462
1981
  className: "text-muted-foreground",
2463
1982
  children: "Here's how to assemble a federated GraphQL schema from your specs:"
2464
1983
  }),
2465
- /* @__PURE__ */ jsx12(CodeBlock11, {
1984
+ /* @__PURE__ */ jsx11(CodeBlock11, {
2466
1985
  language: "typescript",
2467
1986
  code: `import { builder } from '@contractspec/lib.graphql-core';
2468
1987
  import { registerContractsOnBuilder } from '@contractspec/lib.contracts-runtime-server-graphql/graphql-pothos';
@@ -2482,35 +2001,35 @@ console.log(printSchema(schema));`
2482
2001
  })
2483
2002
  ]
2484
2003
  }),
2485
- /* @__PURE__ */ jsxs12("div", {
2004
+ /* @__PURE__ */ jsxs11("div", {
2486
2005
  className: "space-y-4",
2487
2006
  children: [
2488
- /* @__PURE__ */ jsx12("h2", {
2489
- className: "text-2xl font-bold",
2007
+ /* @__PURE__ */ jsx11("h2", {
2008
+ className: "font-bold text-2xl",
2490
2009
  children: "Features"
2491
2010
  }),
2492
- /* @__PURE__ */ jsxs12("ul", {
2493
- className: "text-muted-foreground list-inside list-disc space-y-2",
2011
+ /* @__PURE__ */ jsxs11("ul", {
2012
+ className: "list-inside list-disc space-y-2 text-muted-foreground",
2494
2013
  children: [
2495
- /* @__PURE__ */ jsxs12("li", {
2014
+ /* @__PURE__ */ jsxs11("li", {
2496
2015
  children: [
2497
- /* @__PURE__ */ jsx12("strong", {
2016
+ /* @__PURE__ */ jsx11("strong", {
2498
2017
  children: "Code-First"
2499
2018
  }),
2500
2019
  ": Define schema in TypeScript (Pothos), get SDL as artifact."
2501
2020
  ]
2502
2021
  }),
2503
- /* @__PURE__ */ jsxs12("li", {
2022
+ /* @__PURE__ */ jsxs11("li", {
2504
2023
  children: [
2505
- /* @__PURE__ */ jsx12("strong", {
2024
+ /* @__PURE__ */ jsx11("strong", {
2506
2025
  children: "Spec Integration"
2507
2026
  }),
2508
2027
  ": `registerContractsOnBuilder` automatically converts Command/Query specs into Mutations/Queries."
2509
2028
  ]
2510
2029
  }),
2511
- /* @__PURE__ */ jsxs12("li", {
2030
+ /* @__PURE__ */ jsxs11("li", {
2512
2031
  children: [
2513
- /* @__PURE__ */ jsx12("strong", {
2032
+ /* @__PURE__ */ jsx11("strong", {
2514
2033
  children: "Federation Ready"
2515
2034
  }),
2516
2035
  ": Just add `provider: 'federation'` to your config."
@@ -2520,20 +2039,20 @@ console.log(printSchema(schema));`
2520
2039
  })
2521
2040
  ]
2522
2041
  }),
2523
- /* @__PURE__ */ jsxs12("div", {
2042
+ /* @__PURE__ */ jsxs11("div", {
2524
2043
  className: "flex items-center gap-4 pt-4",
2525
2044
  children: [
2526
- /* @__PURE__ */ jsxs12(Link11, {
2045
+ /* @__PURE__ */ jsxs11(Link10, {
2527
2046
  href: "/docs/libraries/data-backend",
2528
2047
  className: "btn-primary",
2529
2048
  children: [
2530
2049
  "Next: Data & Backend ",
2531
- /* @__PURE__ */ jsx12(ChevronRight11, {
2050
+ /* @__PURE__ */ jsx11(ChevronRight10, {
2532
2051
  size: 16
2533
2052
  })
2534
2053
  ]
2535
2054
  }),
2536
- /* @__PURE__ */ jsx12(Link11, {
2055
+ /* @__PURE__ */ jsx11(Link10, {
2537
2056
  href: "/docs/libraries",
2538
2057
  className: "btn-ghost",
2539
2058
  children: "Back to Libraries"
@@ -2546,46 +2065,46 @@ console.log(printSchema(schema));`
2546
2065
 
2547
2066
  // src/components/docs/libraries/LibrariesGrowthPage.tsx
2548
2067
  import { CodeBlock as CodeBlock12, InstallCommand as InstallCommand11 } from "@contractspec/lib.design-system";
2549
- import Link12 from "@contractspec/lib.ui-link";
2550
- import { ChevronRight as ChevronRight12 } from "lucide-react";
2551
- import { jsx as jsx13, jsxs as jsxs13 } from "react/jsx-runtime";
2068
+ import Link11 from "@contractspec/lib.ui-link";
2069
+ import { ChevronRight as ChevronRight11 } from "lucide-react";
2070
+ import { jsx as jsx12, jsxs as jsxs12 } from "react/jsx-runtime";
2552
2071
  function LibrariesGrowthPage() {
2553
- return /* @__PURE__ */ jsxs13("div", {
2072
+ return /* @__PURE__ */ jsxs12("div", {
2554
2073
  className: "space-y-8",
2555
2074
  children: [
2556
- /* @__PURE__ */ jsxs13("div", {
2075
+ /* @__PURE__ */ jsxs12("div", {
2557
2076
  className: "space-y-4",
2558
2077
  children: [
2559
- /* @__PURE__ */ jsx13("h1", {
2560
- className: "text-4xl font-bold",
2078
+ /* @__PURE__ */ jsx12("h1", {
2079
+ className: "font-bold text-4xl",
2561
2080
  children: "@contractspec/lib.growth"
2562
2081
  }),
2563
- /* @__PURE__ */ jsx13("p", {
2564
- className: "text-muted-foreground text-lg",
2082
+ /* @__PURE__ */ jsx12("p", {
2083
+ className: "text-lg text-muted-foreground",
2565
2084
  children: "Launch experiments without third-party SDKs. Register variants, assign users deterministically, track exposures, and compute significance."
2566
2085
  })
2567
2086
  ]
2568
2087
  }),
2569
- /* @__PURE__ */ jsxs13("div", {
2088
+ /* @__PURE__ */ jsxs12("div", {
2570
2089
  className: "space-y-4",
2571
2090
  children: [
2572
- /* @__PURE__ */ jsx13("h2", {
2573
- className: "text-2xl font-bold",
2091
+ /* @__PURE__ */ jsx12("h2", {
2092
+ className: "font-bold text-2xl",
2574
2093
  children: "Installation"
2575
2094
  }),
2576
- /* @__PURE__ */ jsx13(InstallCommand11, {
2095
+ /* @__PURE__ */ jsx12(InstallCommand11, {
2577
2096
  package: "@contractspec/lib.growth"
2578
2097
  })
2579
2098
  ]
2580
2099
  }),
2581
- /* @__PURE__ */ jsxs13("div", {
2100
+ /* @__PURE__ */ jsxs12("div", {
2582
2101
  className: "space-y-3",
2583
2102
  children: [
2584
- /* @__PURE__ */ jsx13("h2", {
2585
- className: "text-2xl font-bold",
2103
+ /* @__PURE__ */ jsx12("h2", {
2104
+ className: "font-bold text-2xl",
2586
2105
  children: "Register + assign"
2587
2106
  }),
2588
- /* @__PURE__ */ jsx13(CodeBlock12, {
2107
+ /* @__PURE__ */ jsx12(CodeBlock12, {
2589
2108
  language: "typescript",
2590
2109
  code: `import { ExperimentRegistry, ExperimentRunner } from '@contractspec/lib.growth/experiments';
2591
2110
 
@@ -2605,14 +2124,14 @@ const assignment = runner.assign(registry.get('pricing.cta')!, 'user_123');`
2605
2124
  })
2606
2125
  ]
2607
2126
  }),
2608
- /* @__PURE__ */ jsxs13("div", {
2127
+ /* @__PURE__ */ jsxs12("div", {
2609
2128
  className: "space-y-3",
2610
2129
  children: [
2611
- /* @__PURE__ */ jsx13("h2", {
2612
- className: "text-2xl font-bold",
2130
+ /* @__PURE__ */ jsx12("h2", {
2131
+ className: "font-bold text-2xl",
2613
2132
  children: "Track + analyze"
2614
2133
  }),
2615
- /* @__PURE__ */ jsx13(CodeBlock12, {
2134
+ /* @__PURE__ */ jsx12(CodeBlock12, {
2616
2135
  language: "typescript",
2617
2136
  code: `import { ExperimentTracker } from '@contractspec/lib.growth/tracker';
2618
2137
  import { StatsEngine } from '@contractspec/lib.growth/stats';
@@ -2634,20 +2153,20 @@ const stats = new StatsEngine().summarize(
2634
2153
  })
2635
2154
  ]
2636
2155
  }),
2637
- /* @__PURE__ */ jsxs13("div", {
2156
+ /* @__PURE__ */ jsxs12("div", {
2638
2157
  className: "flex items-center gap-4 pt-4",
2639
2158
  children: [
2640
- /* @__PURE__ */ jsx13(Link12, {
2159
+ /* @__PURE__ */ jsx12(Link11, {
2641
2160
  href: "/docs/libraries",
2642
2161
  className: "btn-ghost",
2643
2162
  children: "Back to Libraries"
2644
2163
  }),
2645
- /* @__PURE__ */ jsxs13(Link12, {
2164
+ /* @__PURE__ */ jsxs12(Link11, {
2646
2165
  href: "/docs/libraries/analytics",
2647
2166
  className: "btn-primary",
2648
2167
  children: [
2649
2168
  "Next: Analytics ",
2650
- /* @__PURE__ */ jsx13(ChevronRight12, {
2169
+ /* @__PURE__ */ jsx12(ChevronRight11, {
2651
2170
  size: 16
2652
2171
  })
2653
2172
  ]
@@ -2660,25 +2179,25 @@ const stats = new StatsEngine().summarize(
2660
2179
 
2661
2180
  // src/components/docs/libraries/LibrariesMultiTenancyPage.tsx
2662
2181
  import { CodeBlock as CodeBlock13, InstallCommand as InstallCommand12 } from "@contractspec/lib.design-system";
2663
- import Link13 from "@contractspec/lib.ui-link";
2664
- import { ChevronRight as ChevronRight13 } from "lucide-react";
2665
- import { jsx as jsx14, jsxs as jsxs14 } from "react/jsx-runtime";
2182
+ import Link12 from "@contractspec/lib.ui-link";
2183
+ import { ChevronRight as ChevronRight12 } from "lucide-react";
2184
+ import { jsx as jsx13, jsxs as jsxs13 } from "react/jsx-runtime";
2666
2185
  function LibrariesMultiTenancyPage() {
2667
- return /* @__PURE__ */ jsxs14("div", {
2186
+ return /* @__PURE__ */ jsxs13("div", {
2668
2187
  className: "space-y-8",
2669
2188
  children: [
2670
- /* @__PURE__ */ jsxs14("div", {
2189
+ /* @__PURE__ */ jsxs13("div", {
2671
2190
  className: "space-y-4",
2672
2191
  children: [
2673
- /* @__PURE__ */ jsx14("h1", {
2674
- className: "text-4xl font-bold",
2192
+ /* @__PURE__ */ jsx13("h1", {
2193
+ className: "font-bold text-4xl",
2675
2194
  children: "Multi-Tenancy Library"
2676
2195
  }),
2677
- /* @__PURE__ */ jsxs14("p", {
2678
- className: "text-muted-foreground text-lg",
2196
+ /* @__PURE__ */ jsxs13("p", {
2197
+ className: "text-lg text-muted-foreground",
2679
2198
  children: [
2680
2199
  "The ",
2681
- /* @__PURE__ */ jsx14("code", {
2200
+ /* @__PURE__ */ jsx13("code", {
2682
2201
  children: "@contractspec/lib.multi-tenancy"
2683
2202
  }),
2684
2203
  " library provides the core building blocks for secure SaaS applications."
@@ -2686,36 +2205,36 @@ function LibrariesMultiTenancyPage() {
2686
2205
  })
2687
2206
  ]
2688
2207
  }),
2689
- /* @__PURE__ */ jsxs14("div", {
2208
+ /* @__PURE__ */ jsxs13("div", {
2690
2209
  className: "space-y-4",
2691
2210
  children: [
2692
- /* @__PURE__ */ jsx14("h2", {
2693
- className: "text-2xl font-bold",
2211
+ /* @__PURE__ */ jsx13("h2", {
2212
+ className: "font-bold text-2xl",
2694
2213
  children: "Installation"
2695
2214
  }),
2696
- /* @__PURE__ */ jsx14(InstallCommand12, {
2215
+ /* @__PURE__ */ jsx13(InstallCommand12, {
2697
2216
  package: "@contractspec/lib.multi-tenancy"
2698
2217
  })
2699
2218
  ]
2700
2219
  }),
2701
- /* @__PURE__ */ jsxs14("div", {
2220
+ /* @__PURE__ */ jsxs13("div", {
2702
2221
  className: "space-y-4",
2703
2222
  children: [
2704
- /* @__PURE__ */ jsx14("h2", {
2705
- className: "text-2xl font-bold",
2223
+ /* @__PURE__ */ jsx13("h2", {
2224
+ className: "font-bold text-2xl",
2706
2225
  children: "Prisma RLS Middleware"
2707
2226
  }),
2708
- /* @__PURE__ */ jsxs14("p", {
2227
+ /* @__PURE__ */ jsxs13("p", {
2709
2228
  className: "text-muted-foreground",
2710
2229
  children: [
2711
2230
  "Automatically injects ",
2712
- /* @__PURE__ */ jsx14("code", {
2231
+ /* @__PURE__ */ jsx13("code", {
2713
2232
  children: "tenantId"
2714
2233
  }),
2715
2234
  " into all queries."
2716
2235
  ]
2717
2236
  }),
2718
- /* @__PURE__ */ jsx14(CodeBlock13, {
2237
+ /* @__PURE__ */ jsx13(CodeBlock13, {
2719
2238
  language: "typescript",
2720
2239
  code: `import { createRlsMiddleware } from '@contractspec/lib.multi-tenancy/rls';
2721
2240
  import { prisma } from './db';
@@ -2725,18 +2244,18 @@ prisma.$use(createRlsMiddleware(() => getTenantId()));`
2725
2244
  })
2726
2245
  ]
2727
2246
  }),
2728
- /* @__PURE__ */ jsxs14("div", {
2247
+ /* @__PURE__ */ jsxs13("div", {
2729
2248
  className: "space-y-4",
2730
2249
  children: [
2731
- /* @__PURE__ */ jsx14("h2", {
2732
- className: "text-2xl font-bold",
2250
+ /* @__PURE__ */ jsx13("h2", {
2251
+ className: "font-bold text-2xl",
2733
2252
  children: "Provisioning Service"
2734
2253
  }),
2735
- /* @__PURE__ */ jsx14("p", {
2254
+ /* @__PURE__ */ jsx13("p", {
2736
2255
  className: "text-muted-foreground",
2737
2256
  children: "Automates the creation of new tenants, including database setup and default user creation."
2738
2257
  }),
2739
- /* @__PURE__ */ jsx14(CodeBlock13, {
2258
+ /* @__PURE__ */ jsx13(CodeBlock13, {
2740
2259
  language: "typescript",
2741
2260
  code: `import { TenantProvisioningService } from '@contractspec/lib.multi-tenancy/provisioning';
2742
2261
 
@@ -2750,20 +2269,20 @@ await service.provision({
2750
2269
  })
2751
2270
  ]
2752
2271
  }),
2753
- /* @__PURE__ */ jsxs14("div", {
2272
+ /* @__PURE__ */ jsxs13("div", {
2754
2273
  className: "flex items-center gap-4 pt-4",
2755
2274
  children: [
2756
- /* @__PURE__ */ jsx14(Link13, {
2275
+ /* @__PURE__ */ jsx13(Link12, {
2757
2276
  href: "/docs/libraries",
2758
2277
  className: "btn-ghost",
2759
2278
  children: "Back to Libraries"
2760
2279
  }),
2761
- /* @__PURE__ */ jsxs14(Link13, {
2280
+ /* @__PURE__ */ jsxs13(Link12, {
2762
2281
  href: "/docs/libraries/progressive-delivery",
2763
2282
  className: "btn-primary",
2764
2283
  children: [
2765
2284
  "Next: Progressive Delivery ",
2766
- /* @__PURE__ */ jsx14(ChevronRight13, {
2285
+ /* @__PURE__ */ jsx13(ChevronRight12, {
2767
2286
  size: 16
2768
2287
  })
2769
2288
  ]
@@ -2776,25 +2295,25 @@ await service.provision({
2776
2295
 
2777
2296
  // src/components/docs/libraries/LibrariesObservabilityPage.tsx
2778
2297
  import { CodeBlock as CodeBlock14, InstallCommand as InstallCommand13 } from "@contractspec/lib.design-system";
2779
- import Link14 from "@contractspec/lib.ui-link";
2780
- import { ChevronRight as ChevronRight14 } from "lucide-react";
2781
- import { jsx as jsx15, jsxs as jsxs15 } from "react/jsx-runtime";
2298
+ import Link13 from "@contractspec/lib.ui-link";
2299
+ import { ChevronRight as ChevronRight13 } from "lucide-react";
2300
+ import { jsx as jsx14, jsxs as jsxs14 } from "react/jsx-runtime";
2782
2301
  function LibrariesObservabilityPage() {
2783
- return /* @__PURE__ */ jsxs15("div", {
2302
+ return /* @__PURE__ */ jsxs14("div", {
2784
2303
  className: "space-y-8",
2785
2304
  children: [
2786
- /* @__PURE__ */ jsxs15("div", {
2305
+ /* @__PURE__ */ jsxs14("div", {
2787
2306
  className: "space-y-4",
2788
2307
  children: [
2789
- /* @__PURE__ */ jsx15("h1", {
2790
- className: "text-4xl font-bold",
2308
+ /* @__PURE__ */ jsx14("h1", {
2309
+ className: "font-bold text-4xl",
2791
2310
  children: "Observability Library"
2792
2311
  }),
2793
- /* @__PURE__ */ jsxs15("p", {
2794
- className: "text-muted-foreground text-lg",
2312
+ /* @__PURE__ */ jsxs14("p", {
2313
+ className: "text-lg text-muted-foreground",
2795
2314
  children: [
2796
2315
  "The ",
2797
- /* @__PURE__ */ jsx15("code", {
2316
+ /* @__PURE__ */ jsx14("code", {
2798
2317
  children: "@contractspec/lib.observability"
2799
2318
  }),
2800
2319
  " library provides a thin wrapper around OpenTelemetry to simplify instrumentation."
@@ -2802,26 +2321,26 @@ function LibrariesObservabilityPage() {
2802
2321
  })
2803
2322
  ]
2804
2323
  }),
2805
- /* @__PURE__ */ jsxs15("div", {
2324
+ /* @__PURE__ */ jsxs14("div", {
2806
2325
  className: "space-y-4",
2807
2326
  children: [
2808
- /* @__PURE__ */ jsx15("h2", {
2809
- className: "text-2xl font-bold",
2327
+ /* @__PURE__ */ jsx14("h2", {
2328
+ className: "font-bold text-2xl",
2810
2329
  children: "Installation"
2811
2330
  }),
2812
- /* @__PURE__ */ jsx15(InstallCommand13, {
2331
+ /* @__PURE__ */ jsx14(InstallCommand13, {
2813
2332
  package: "@contractspec/lib.observability"
2814
2333
  })
2815
2334
  ]
2816
2335
  }),
2817
- /* @__PURE__ */ jsxs15("div", {
2336
+ /* @__PURE__ */ jsxs14("div", {
2818
2337
  className: "space-y-4",
2819
2338
  children: [
2820
- /* @__PURE__ */ jsx15("h2", {
2821
- className: "text-2xl font-bold",
2339
+ /* @__PURE__ */ jsx14("h2", {
2340
+ className: "font-bold text-2xl",
2822
2341
  children: "Tracing"
2823
2342
  }),
2824
- /* @__PURE__ */ jsx15(CodeBlock14, {
2343
+ /* @__PURE__ */ jsx14(CodeBlock14, {
2825
2344
  language: "typescript",
2826
2345
  code: `import { traceAsync, traceSync } from '@contractspec/lib.observability/tracing';
2827
2346
 
@@ -2832,14 +2351,14 @@ await traceAsync('process_order', async (span) => {
2832
2351
  })
2833
2352
  ]
2834
2353
  }),
2835
- /* @__PURE__ */ jsxs15("div", {
2354
+ /* @__PURE__ */ jsxs14("div", {
2836
2355
  className: "space-y-4",
2837
2356
  children: [
2838
- /* @__PURE__ */ jsx15("h2", {
2839
- className: "text-2xl font-bold",
2357
+ /* @__PURE__ */ jsx14("h2", {
2358
+ className: "font-bold text-2xl",
2840
2359
  children: "Metrics"
2841
2360
  }),
2842
- /* @__PURE__ */ jsx15(CodeBlock14, {
2361
+ /* @__PURE__ */ jsx14(CodeBlock14, {
2843
2362
  language: "typescript",
2844
2363
  code: `import { createCounter, createHistogram } from '@contractspec/lib.observability/metrics';
2845
2364
 
@@ -2851,18 +2370,18 @@ latencyHistogram.record(0.123);`
2851
2370
  })
2852
2371
  ]
2853
2372
  }),
2854
- /* @__PURE__ */ jsxs15("div", {
2373
+ /* @__PURE__ */ jsxs14("div", {
2855
2374
  className: "space-y-4",
2856
2375
  children: [
2857
- /* @__PURE__ */ jsx15("h2", {
2858
- className: "text-2xl font-bold",
2376
+ /* @__PURE__ */ jsx14("h2", {
2377
+ className: "font-bold text-2xl",
2859
2378
  children: "Middleware"
2860
2379
  }),
2861
- /* @__PURE__ */ jsx15("p", {
2380
+ /* @__PURE__ */ jsx14("p", {
2862
2381
  className: "text-muted-foreground",
2863
2382
  children: "Automatically instrument your HTTP handlers:"
2864
2383
  }),
2865
- /* @__PURE__ */ jsx15(CodeBlock14, {
2384
+ /* @__PURE__ */ jsx14(CodeBlock14, {
2866
2385
  language: "typescript",
2867
2386
  code: `import { createTracingMiddleware } from '@contractspec/lib.observability/tracing/middleware';
2868
2387
 
@@ -2870,18 +2389,18 @@ app.use(createTracingMiddleware());`
2870
2389
  })
2871
2390
  ]
2872
2391
  }),
2873
- /* @__PURE__ */ jsxs15("div", {
2392
+ /* @__PURE__ */ jsxs14("div", {
2874
2393
  className: "space-y-4",
2875
2394
  children: [
2876
- /* @__PURE__ */ jsx15("h2", {
2877
- className: "text-2xl font-bold",
2395
+ /* @__PURE__ */ jsx14("h2", {
2396
+ className: "font-bold text-2xl",
2878
2397
  children: "Anomaly Detection"
2879
2398
  }),
2880
- /* @__PURE__ */ jsx15("p", {
2399
+ /* @__PURE__ */ jsx14("p", {
2881
2400
  className: "text-muted-foreground text-sm",
2882
2401
  children: "Includes baseline calculation and anomaly detection helpers for auto-rollback without writing custom math."
2883
2402
  }),
2884
- /* @__PURE__ */ jsx15(CodeBlock14, {
2403
+ /* @__PURE__ */ jsx14(CodeBlock14, {
2885
2404
  language: "typescript",
2886
2405
  code: `import { AnomalyDetector, RootCauseAnalyzer, AlertManager } from '@contractspec/lib.observability';
2887
2406
 
@@ -2897,20 +2416,20 @@ signals.forEach((signal) => {
2897
2416
  })
2898
2417
  ]
2899
2418
  }),
2900
- /* @__PURE__ */ jsxs15("div", {
2419
+ /* @__PURE__ */ jsxs14("div", {
2901
2420
  className: "flex items-center gap-4 pt-4",
2902
2421
  children: [
2903
- /* @__PURE__ */ jsx15(Link14, {
2422
+ /* @__PURE__ */ jsx14(Link13, {
2904
2423
  href: "/docs/libraries",
2905
2424
  className: "btn-ghost",
2906
2425
  children: "Back to Libraries"
2907
2426
  }),
2908
- /* @__PURE__ */ jsxs15(Link14, {
2427
+ /* @__PURE__ */ jsxs14(Link13, {
2909
2428
  href: "/docs/libraries/slo",
2910
2429
  className: "btn-primary",
2911
2430
  children: [
2912
2431
  "Next: SLO ",
2913
- /* @__PURE__ */ jsx15(ChevronRight14, {
2432
+ /* @__PURE__ */ jsx14(ChevronRight13, {
2914
2433
  size: 16
2915
2434
  })
2916
2435
  ]
@@ -2923,46 +2442,46 @@ signals.forEach((signal) => {
2923
2442
 
2924
2443
  // src/components/docs/libraries/LibrariesOverlayEnginePage.tsx
2925
2444
  import { CodeBlock as CodeBlock15, InstallCommand as InstallCommand14 } from "@contractspec/lib.design-system";
2926
- import Link15 from "@contractspec/lib.ui-link";
2927
- import { ChevronRight as ChevronRight15 } from "lucide-react";
2928
- import { jsx as jsx16, jsxs as jsxs16 } from "react/jsx-runtime";
2445
+ import Link14 from "@contractspec/lib.ui-link";
2446
+ import { ChevronRight as ChevronRight14 } from "lucide-react";
2447
+ import { jsx as jsx15, jsxs as jsxs15 } from "react/jsx-runtime";
2929
2448
  function LibrariesOverlayEnginePage() {
2930
- return /* @__PURE__ */ jsxs16("div", {
2449
+ return /* @__PURE__ */ jsxs15("div", {
2931
2450
  className: "space-y-8",
2932
2451
  children: [
2933
- /* @__PURE__ */ jsxs16("div", {
2452
+ /* @__PURE__ */ jsxs15("div", {
2934
2453
  className: "space-y-4",
2935
2454
  children: [
2936
- /* @__PURE__ */ jsx16("h1", {
2937
- className: "text-4xl font-bold",
2455
+ /* @__PURE__ */ jsx15("h1", {
2456
+ className: "font-bold text-4xl",
2938
2457
  children: "Overlay Engine"
2939
2458
  }),
2940
- /* @__PURE__ */ jsx16("p", {
2941
- className: "text-muted-foreground text-lg",
2459
+ /* @__PURE__ */ jsx15("p", {
2460
+ className: "text-lg text-muted-foreground",
2942
2461
  children: "`@contractspec/lib.overlay-engine` keeps OverlaySpecs typed, signed, and auditable across tenants, roles, users, and devices."
2943
2462
  })
2944
2463
  ]
2945
2464
  }),
2946
- /* @__PURE__ */ jsxs16("div", {
2465
+ /* @__PURE__ */ jsxs15("div", {
2947
2466
  className: "space-y-4",
2948
2467
  children: [
2949
- /* @__PURE__ */ jsx16("h2", {
2950
- className: "text-2xl font-bold",
2468
+ /* @__PURE__ */ jsx15("h2", {
2469
+ className: "font-bold text-2xl",
2951
2470
  children: "Installation"
2952
2471
  }),
2953
- /* @__PURE__ */ jsx16(InstallCommand14, {
2472
+ /* @__PURE__ */ jsx15(InstallCommand14, {
2954
2473
  package: "@contractspec/lib.overlay-engine"
2955
2474
  })
2956
2475
  ]
2957
2476
  }),
2958
- /* @__PURE__ */ jsxs16("div", {
2477
+ /* @__PURE__ */ jsxs15("div", {
2959
2478
  className: "space-y-4",
2960
2479
  children: [
2961
- /* @__PURE__ */ jsx16("h2", {
2962
- className: "text-2xl font-bold",
2480
+ /* @__PURE__ */ jsx15("h2", {
2481
+ className: "font-bold text-2xl",
2963
2482
  children: "Define + Sign"
2964
2483
  }),
2965
- /* @__PURE__ */ jsx16(CodeBlock15, {
2484
+ /* @__PURE__ */ jsx15(CodeBlock15, {
2966
2485
  language: "typescript",
2967
2486
  code: `import { defineOverlay } from '@contractspec/lib.overlay-engine/spec';
2968
2487
  import { signOverlay } from '@contractspec/lib.overlay-engine/signer';
@@ -2978,18 +2497,18 @@ const signed = await signOverlay(overlay, privateKeyPem);`
2978
2497
  })
2979
2498
  ]
2980
2499
  }),
2981
- /* @__PURE__ */ jsxs16("div", {
2500
+ /* @__PURE__ */ jsxs15("div", {
2982
2501
  className: "space-y-4",
2983
2502
  children: [
2984
- /* @__PURE__ */ jsx16("h2", {
2985
- className: "text-2xl font-bold",
2503
+ /* @__PURE__ */ jsx15("h2", {
2504
+ className: "font-bold text-2xl",
2986
2505
  children: "Runtime"
2987
2506
  }),
2988
- /* @__PURE__ */ jsx16("p", {
2507
+ /* @__PURE__ */ jsx15("p", {
2989
2508
  className: "text-muted-foreground",
2990
2509
  children: "`OverlayRegistry` stores signed overlays with specificity scoring. `OverlayEngine` merges modifications and emits audit events."
2991
2510
  }),
2992
- /* @__PURE__ */ jsx16(CodeBlock15, {
2511
+ /* @__PURE__ */ jsx15(CodeBlock15, {
2993
2512
  language: "typescript",
2994
2513
  code: `const registry = new OverlayRegistry();
2995
2514
  registry.register(signed);
@@ -3007,18 +2526,18 @@ const result = engine.apply({
3007
2526
  })
3008
2527
  ]
3009
2528
  }),
3010
- /* @__PURE__ */ jsxs16("div", {
2529
+ /* @__PURE__ */ jsxs15("div", {
3011
2530
  className: "space-y-4",
3012
2531
  children: [
3013
- /* @__PURE__ */ jsx16("h2", {
3014
- className: "text-2xl font-bold",
2532
+ /* @__PURE__ */ jsx15("h2", {
2533
+ className: "font-bold text-2xl",
3015
2534
  children: "React Hooks"
3016
2535
  }),
3017
- /* @__PURE__ */ jsx16("p", {
2536
+ /* @__PURE__ */ jsx15("p", {
3018
2537
  className: "text-muted-foreground",
3019
2538
  children: "Render overlays in React/React Native via `useOverlay`."
3020
2539
  }),
3021
- /* @__PURE__ */ jsx16(CodeBlock15, {
2540
+ /* @__PURE__ */ jsx15(CodeBlock15, {
3022
2541
  language: "typescript",
3023
2542
  code: `import { useOverlay } from '@contractspec/lib.overlay-engine/react';
3024
2543
 
@@ -3030,20 +2549,20 @@ const { target } = useOverlay(engine, {
3030
2549
  })
3031
2550
  ]
3032
2551
  }),
3033
- /* @__PURE__ */ jsxs16("div", {
2552
+ /* @__PURE__ */ jsxs15("div", {
3034
2553
  className: "flex items-center gap-4 pt-4",
3035
2554
  children: [
3036
- /* @__PURE__ */ jsx16(Link15, {
2555
+ /* @__PURE__ */ jsx15(Link14, {
3037
2556
  href: "/docs/libraries",
3038
2557
  className: "btn-ghost",
3039
2558
  children: "Back to Libraries"
3040
2559
  }),
3041
- /* @__PURE__ */ jsxs16(Link15, {
2560
+ /* @__PURE__ */ jsxs15(Link14, {
3042
2561
  href: "/docs/libraries/workflow-composer",
3043
2562
  className: "btn-primary",
3044
2563
  children: [
3045
2564
  "Next: Workflow Composer ",
3046
- /* @__PURE__ */ jsx16(ChevronRight15, {
2565
+ /* @__PURE__ */ jsx15(ChevronRight14, {
3047
2566
  size: 16
3048
2567
  })
3049
2568
  ]
@@ -3054,6 +2573,174 @@ const { target } = useOverlay(engine, {
3054
2573
  });
3055
2574
  }
3056
2575
 
2576
+ // src/components/docs/libraries/LibrariesOverviewPage.tsx
2577
+ import Link15 from "@contractspec/lib.ui-link";
2578
+ import { ChevronRight as ChevronRight15 } from "lucide-react";
2579
+ import { jsx as jsx16, jsxs as jsxs16 } from "react/jsx-runtime";
2580
+ var libraryGroups = [
2581
+ {
2582
+ title: "Contract and schema foundation",
2583
+ body: "Use these packages to define explicit contracts, schemas, and generated artifacts without inventing a new platform-specific language.",
2584
+ items: [
2585
+ {
2586
+ title: "@contractspec/lib.contracts-spec",
2587
+ description: "Define operations, events, policies, and generated surfaces in TypeScript.",
2588
+ href: "/docs/libraries/contracts"
2589
+ },
2590
+ {
2591
+ title: "@contractspec/lib.schema",
2592
+ description: "Share type-safe schema definitions across validation, clients, and runtime adapters.",
2593
+ href: "/docs/libraries/schema"
2594
+ }
2595
+ ]
2596
+ },
2597
+ {
2598
+ title: "Runtime and surface libraries",
2599
+ body: "These packages execute the contract model across UI, data, observability, workflows, and generated runtime behavior.",
2600
+ items: [
2601
+ {
2602
+ title: "@contractspec/lib.runtime",
2603
+ description: "Run typed capability surfaces, execute policies, and connect runtime adapters.",
2604
+ href: "/docs/libraries/runtime"
2605
+ },
2606
+ {
2607
+ title: "@contractspec/lib.ui-kit",
2608
+ description: "Render shared surfaces across web and React Native without forking the contract layer.",
2609
+ href: "/docs/libraries/ui-kit"
2610
+ },
2611
+ {
2612
+ title: "@contractspec/lib.design-system",
2613
+ description: "Build higher-level product surfaces and documented marketing/docs primitives on top of the UI kit.",
2614
+ href: "/docs/libraries/design-system"
2615
+ },
2616
+ {
2617
+ title: "@contractspec/lib.data-views",
2618
+ description: "Generate and render list/detail style surfaces that stay aligned with data contracts.",
2619
+ href: "/docs/libraries/data-views"
2620
+ }
2621
+ ]
2622
+ },
2623
+ {
2624
+ title: "Operator and system packages",
2625
+ body: "These packages matter once the system is live and you need governance, resilience, and observability.",
2626
+ items: [
2627
+ {
2628
+ title: "@contractspec/lib.observability",
2629
+ description: "Trace, log, and measure contract execution using the same system boundaries.",
2630
+ href: "/docs/libraries/observability"
2631
+ },
2632
+ {
2633
+ title: "@contractspec/lib.resilience",
2634
+ description: "Add circuit breakers, retries, and failure controls without hiding the integration model.",
2635
+ href: "/docs/libraries/resilience"
2636
+ },
2637
+ {
2638
+ title: "@contractspec/lib.multi-tenancy",
2639
+ description: "Keep tenant-specific config, policy, and surface resolution explicit.",
2640
+ href: "/docs/libraries/multi-tenancy"
2641
+ },
2642
+ {
2643
+ title: "@contractspec/lib.workflow-composer",
2644
+ description: "Compose and extend workflows without smearing orchestration concerns across apps.",
2645
+ href: "/docs/libraries/workflow-composer"
2646
+ }
2647
+ ]
2648
+ }
2649
+ ];
2650
+ function LibrariesOverviewPage() {
2651
+ return /* @__PURE__ */ jsxs16("div", {
2652
+ className: "space-y-10",
2653
+ children: [
2654
+ /* @__PURE__ */ jsxs16("div", {
2655
+ className: "space-y-3",
2656
+ children: [
2657
+ /* @__PURE__ */ jsx16("p", {
2658
+ className: "editorial-kicker",
2659
+ children: "Build"
2660
+ }),
2661
+ /* @__PURE__ */ jsx16("h1", {
2662
+ className: "font-serif text-4xl tracking-[-0.04em] md:text-5xl",
2663
+ children: "The OSS foundation is a library system, not a closed platform."
2664
+ }),
2665
+ /* @__PURE__ */ jsx16("p", {
2666
+ className: "max-w-3xl text-lg text-muted-foreground leading-8",
2667
+ children: "ContractSpec is assembled from libraries that remain useful on their own and stronger together. Start with the contract and schema foundation, then add runtime, UI, integration, and operator packages as your system grows."
2668
+ })
2669
+ ]
2670
+ }),
2671
+ /* @__PURE__ */ jsxs16("div", {
2672
+ className: "editorial-proof-strip",
2673
+ children: [
2674
+ /* @__PURE__ */ jsxs16("div", {
2675
+ className: "editorial-stat",
2676
+ children: [
2677
+ /* @__PURE__ */ jsx16("span", {
2678
+ className: "editorial-label",
2679
+ children: "Layering rule"
2680
+ }),
2681
+ /* @__PURE__ */ jsx16("span", {
2682
+ className: "editorial-stat-value",
2683
+ children: "libs → bundles → apps"
2684
+ })
2685
+ ]
2686
+ }),
2687
+ /* @__PURE__ */ jsx16("p", {
2688
+ className: "max-w-2xl text-muted-foreground text-sm leading-7",
2689
+ children: "Keep reusable behavior in libraries, compose it into bundle-level surfaces, and reserve app packages for concrete delivery shells."
2690
+ })
2691
+ ]
2692
+ }),
2693
+ /* @__PURE__ */ jsx16("div", {
2694
+ className: "space-y-6",
2695
+ children: libraryGroups.map((group) => /* @__PURE__ */ jsxs16("section", {
2696
+ className: "editorial-panel space-y-5",
2697
+ children: [
2698
+ /* @__PURE__ */ jsxs16("div", {
2699
+ className: "space-y-2",
2700
+ children: [
2701
+ /* @__PURE__ */ jsx16("h2", {
2702
+ className: "font-serif text-3xl tracking-[-0.03em]",
2703
+ children: group.title
2704
+ }),
2705
+ /* @__PURE__ */ jsx16("p", {
2706
+ className: "text-muted-foreground text-sm leading-7",
2707
+ children: group.body
2708
+ })
2709
+ ]
2710
+ }),
2711
+ /* @__PURE__ */ jsx16("div", {
2712
+ className: "grid gap-4 md:grid-cols-2",
2713
+ children: group.items.map((item) => /* @__PURE__ */ jsxs16(Link15, {
2714
+ href: item.href,
2715
+ className: "rounded-[24px] border border-border/75 bg-background/70 p-5 transition-colors hover:border-[color:rgb(162_79_42_/_0.45)]",
2716
+ children: [
2717
+ /* @__PURE__ */ jsx16("h3", {
2718
+ className: "font-semibold text-lg",
2719
+ children: item.title
2720
+ }),
2721
+ /* @__PURE__ */ jsx16("p", {
2722
+ className: "mt-2 text-muted-foreground text-sm leading-7",
2723
+ children: item.description
2724
+ }),
2725
+ /* @__PURE__ */ jsxs16("div", {
2726
+ className: "mt-3 flex items-center gap-2 text-[color:var(--rust)] text-sm",
2727
+ children: [
2728
+ "Learn more ",
2729
+ /* @__PURE__ */ jsx16(ChevronRight15, {
2730
+ size: 14
2731
+ })
2732
+ ]
2733
+ })
2734
+ ]
2735
+ }, item.title))
2736
+ })
2737
+ ]
2738
+ }, group.title))
2739
+ })
2740
+ ]
2741
+ });
2742
+ }
2743
+
3057
2744
  // src/components/docs/libraries/LibrariesPersonalizationPage.tsx
3058
2745
  import { CodeBlock as CodeBlock16, InstallCommand as InstallCommand15 } from "@contractspec/lib.design-system";
3059
2746
  import Link16 from "@contractspec/lib.ui-link";
@@ -3067,11 +2754,11 @@ function LibrariesPersonalizationPage() {
3067
2754
  className: "space-y-4",
3068
2755
  children: [
3069
2756
  /* @__PURE__ */ jsx17("h1", {
3070
- className: "text-4xl font-bold",
2757
+ className: "font-bold text-4xl",
3071
2758
  children: "@contractspec/lib.personalization"
3072
2759
  }),
3073
2760
  /* @__PURE__ */ jsx17("p", {
3074
- className: "text-muted-foreground text-lg",
2761
+ className: "text-lg text-muted-foreground",
3075
2762
  children: "Track field/feature/workflow usage, analyze drop-offs, and convert insights into OverlaySpecs or workflow tweaks."
3076
2763
  })
3077
2764
  ]
@@ -3080,7 +2767,7 @@ function LibrariesPersonalizationPage() {
3080
2767
  className: "space-y-4",
3081
2768
  children: [
3082
2769
  /* @__PURE__ */ jsx17("h2", {
3083
- className: "text-2xl font-bold",
2770
+ className: "font-bold text-2xl",
3084
2771
  children: "Installation"
3085
2772
  }),
3086
2773
  /* @__PURE__ */ jsx17(InstallCommand15, {
@@ -3092,7 +2779,7 @@ function LibrariesPersonalizationPage() {
3092
2779
  className: "space-y-4",
3093
2780
  children: [
3094
2781
  /* @__PURE__ */ jsx17("h2", {
3095
- className: "text-2xl font-bold",
2782
+ className: "font-bold text-2xl",
3096
2783
  children: "Tracker"
3097
2784
  }),
3098
2785
  /* @__PURE__ */ jsx17("p", {
@@ -3117,7 +2804,7 @@ tracker.trackWorkflowStep({ workflow: 'invoice', step: 'review', status: 'entere
3117
2804
  className: "space-y-4",
3118
2805
  children: [
3119
2806
  /* @__PURE__ */ jsx17("h2", {
3120
- className: "text-2xl font-bold",
2807
+ className: "font-bold text-2xl",
3121
2808
  children: "Analyzer"
3122
2809
  }),
3123
2810
  /* @__PURE__ */ jsx17("p", {
@@ -3138,7 +2825,7 @@ const insights = await analyzer.analyze({ tenantId: 'acme', userId: 'ops-42' });
3138
2825
  className: "space-y-4",
3139
2826
  children: [
3140
2827
  /* @__PURE__ */ jsx17("h2", {
3141
- className: "text-2xl font-bold",
2828
+ className: "font-bold text-2xl",
3142
2829
  children: "Adapter"
3143
2830
  }),
3144
2831
  /* @__PURE__ */ jsx17("p", {
@@ -3194,11 +2881,11 @@ function LibrariesProgressiveDeliveryPage() {
3194
2881
  className: "space-y-4",
3195
2882
  children: [
3196
2883
  /* @__PURE__ */ jsx18("h1", {
3197
- className: "text-4xl font-bold",
2884
+ className: "font-bold text-4xl",
3198
2885
  children: "Progressive Delivery Library"
3199
2886
  }),
3200
2887
  /* @__PURE__ */ jsxs18("p", {
3201
- className: "text-muted-foreground text-lg",
2888
+ className: "text-lg text-muted-foreground",
3202
2889
  children: [
3203
2890
  "The ",
3204
2891
  /* @__PURE__ */ jsx18("code", {
@@ -3213,7 +2900,7 @@ function LibrariesProgressiveDeliveryPage() {
3213
2900
  className: "space-y-4",
3214
2901
  children: [
3215
2902
  /* @__PURE__ */ jsx18("h2", {
3216
- className: "text-2xl font-bold",
2903
+ className: "font-bold text-2xl",
3217
2904
  children: "Installation"
3218
2905
  }),
3219
2906
  /* @__PURE__ */ jsx18(InstallCommand16, {
@@ -3225,7 +2912,7 @@ function LibrariesProgressiveDeliveryPage() {
3225
2912
  className: "space-y-4",
3226
2913
  children: [
3227
2914
  /* @__PURE__ */ jsx18("h2", {
3228
- className: "text-2xl font-bold",
2915
+ className: "font-bold text-2xl",
3229
2916
  children: "Define a Strategy"
3230
2917
  }),
3231
2918
  /* @__PURE__ */ jsx18(CodeBlock17, {
@@ -3248,7 +2935,7 @@ const strategy = {
3248
2935
  className: "space-y-4",
3249
2936
  children: [
3250
2937
  /* @__PURE__ */ jsx18("h2", {
3251
- className: "text-2xl font-bold",
2938
+ className: "font-bold text-2xl",
3252
2939
  children: "Run the Coordinator"
3253
2940
  }),
3254
2941
  /* @__PURE__ */ jsx18(CodeBlock17, {
@@ -3291,7 +2978,7 @@ const result = await coordinator.run();`
3291
2978
  className: "space-y-4",
3292
2979
  children: [
3293
2980
  /* @__PURE__ */ jsx18("h2", {
3294
- className: "text-2xl font-bold",
2981
+ className: "font-bold text-2xl",
3295
2982
  children: "Blue-Green Swap"
3296
2983
  }),
3297
2984
  /* @__PURE__ */ jsxs18("p", {
@@ -3343,11 +3030,11 @@ function LibrariesResiliencePage() {
3343
3030
  className: "space-y-4",
3344
3031
  children: [
3345
3032
  /* @__PURE__ */ jsx19("h1", {
3346
- className: "text-4xl font-bold",
3033
+ className: "font-bold text-4xl",
3347
3034
  children: "Resilience Library"
3348
3035
  }),
3349
3036
  /* @__PURE__ */ jsxs19("p", {
3350
- className: "text-muted-foreground text-lg",
3037
+ className: "text-lg text-muted-foreground",
3351
3038
  children: [
3352
3039
  "The ",
3353
3040
  /* @__PURE__ */ jsx19("code", {
@@ -3362,7 +3049,7 @@ function LibrariesResiliencePage() {
3362
3049
  className: "space-y-4",
3363
3050
  children: [
3364
3051
  /* @__PURE__ */ jsx19("h2", {
3365
- className: "text-2xl font-bold",
3052
+ className: "font-bold text-2xl",
3366
3053
  children: "Installation"
3367
3054
  }),
3368
3055
  /* @__PURE__ */ jsx19(InstallCommand17, {
@@ -3374,7 +3061,7 @@ function LibrariesResiliencePage() {
3374
3061
  className: "space-y-4",
3375
3062
  children: [
3376
3063
  /* @__PURE__ */ jsx19("h2", {
3377
- className: "text-2xl font-bold",
3064
+ className: "font-bold text-2xl",
3378
3065
  children: "Circuit Breaker"
3379
3066
  }),
3380
3067
  /* @__PURE__ */ jsx19("p", {
@@ -3400,7 +3087,7 @@ const result = await breaker.execute(async () => {
3400
3087
  className: "space-y-4",
3401
3088
  children: [
3402
3089
  /* @__PURE__ */ jsx19("h2", {
3403
- className: "text-2xl font-bold",
3090
+ className: "font-bold text-2xl",
3404
3091
  children: "Retry"
3405
3092
  }),
3406
3093
  /* @__PURE__ */ jsx19("p", {
@@ -3424,7 +3111,7 @@ const result = await retry(
3424
3111
  className: "space-y-4",
3425
3112
  children: [
3426
3113
  /* @__PURE__ */ jsx19("h2", {
3427
- className: "text-2xl font-bold",
3114
+ className: "font-bold text-2xl",
3428
3115
  children: "Timeout & Fallback"
3429
3116
  }),
3430
3117
  /* @__PURE__ */ jsx19("p", {
@@ -3467,9 +3154,9 @@ const result = await fallback(
3467
3154
  }
3468
3155
 
3469
3156
  // src/components/docs/libraries/LibrariesRuntimePage.tsx
3157
+ import { CodeBlock as CodeBlock19, InstallCommand as InstallCommand18 } from "@contractspec/lib.design-system";
3470
3158
  import Link19 from "@contractspec/lib.ui-link";
3471
3159
  import { ChevronRight as ChevronRight19 } from "lucide-react";
3472
- import { CodeBlock as CodeBlock19, InstallCommand as InstallCommand18 } from "@contractspec/lib.design-system";
3473
3160
  import { jsx as jsx20, jsxs as jsxs20 } from "react/jsx-runtime";
3474
3161
  function LibrariesRuntimePage() {
3475
3162
  return /* @__PURE__ */ jsxs20("div", {
@@ -3479,7 +3166,7 @@ function LibrariesRuntimePage() {
3479
3166
  className: "space-y-4",
3480
3167
  children: [
3481
3168
  /* @__PURE__ */ jsx20("h1", {
3482
- className: "text-4xl font-bold",
3169
+ className: "font-bold text-4xl",
3483
3170
  children: "Runtime Libraries"
3484
3171
  }),
3485
3172
  /* @__PURE__ */ jsx20("p", {
@@ -3492,7 +3179,7 @@ function LibrariesRuntimePage() {
3492
3179
  className: "space-y-4",
3493
3180
  children: [
3494
3181
  /* @__PURE__ */ jsx20("h2", {
3495
- className: "text-2xl font-bold",
3182
+ className: "font-bold text-2xl",
3496
3183
  children: "Installation"
3497
3184
  }),
3498
3185
  /* @__PURE__ */ jsx20(InstallCommand18, {
@@ -3504,7 +3191,7 @@ function LibrariesRuntimePage() {
3504
3191
  className: "space-y-4",
3505
3192
  children: [
3506
3193
  /* @__PURE__ */ jsx20("h2", {
3507
- className: "text-2xl font-bold",
3194
+ className: "font-bold text-2xl",
3508
3195
  children: "Libraries"
3509
3196
  }),
3510
3197
  /* @__PURE__ */ jsxs20("div", {
@@ -3514,11 +3201,11 @@ function LibrariesRuntimePage() {
3514
3201
  className: "card-subtle p-6",
3515
3202
  children: [
3516
3203
  /* @__PURE__ */ jsx20("h3", {
3517
- className: "text-lg font-bold",
3204
+ className: "font-bold text-lg",
3518
3205
  children: "@contractspec/lib.presentation-runtime-core"
3519
3206
  }),
3520
3207
  /* @__PURE__ */ jsxs20("p", {
3521
- className: "text-muted-foreground mt-2 text-sm",
3208
+ className: "mt-2 text-muted-foreground text-sm",
3522
3209
  children: [
3523
3210
  /* @__PURE__ */ jsx20("strong", {
3524
3211
  children: "Framework-Agnostic Core"
@@ -3532,11 +3219,11 @@ function LibrariesRuntimePage() {
3532
3219
  className: "card-subtle p-6",
3533
3220
  children: [
3534
3221
  /* @__PURE__ */ jsx20("h3", {
3535
- className: "text-lg font-bold",
3222
+ className: "font-bold text-lg",
3536
3223
  children: "@contractspec/lib.presentation-runtime-react"
3537
3224
  }),
3538
3225
  /* @__PURE__ */ jsxs20("p", {
3539
- className: "text-muted-foreground mt-2 text-sm",
3226
+ className: "mt-2 text-muted-foreground text-sm",
3540
3227
  children: [
3541
3228
  /* @__PURE__ */ jsx20("strong", {
3542
3229
  children: "React Bindings"
@@ -3550,11 +3237,11 @@ function LibrariesRuntimePage() {
3550
3237
  className: "card-subtle p-6",
3551
3238
  children: [
3552
3239
  /* @__PURE__ */ jsx20("h3", {
3553
- className: "text-lg font-bold",
3240
+ className: "font-bold text-lg",
3554
3241
  children: "@contractspec/lib.presentation-runtime-react-native"
3555
3242
  }),
3556
3243
  /* @__PURE__ */ jsxs20("p", {
3557
- className: "text-muted-foreground mt-2 text-sm",
3244
+ className: "mt-2 text-muted-foreground text-sm",
3558
3245
  children: [
3559
3246
  /* @__PURE__ */ jsx20("strong", {
3560
3247
  children: "React Native Bindings"
@@ -3572,7 +3259,7 @@ function LibrariesRuntimePage() {
3572
3259
  className: "space-y-4",
3573
3260
  children: [
3574
3261
  /* @__PURE__ */ jsx20("h2", {
3575
- className: "text-2xl font-bold",
3262
+ className: "font-bold text-2xl",
3576
3263
  children: "Example: React Workflow"
3577
3264
  }),
3578
3265
  /* @__PURE__ */ jsx20(CodeBlock19, {
@@ -3625,7 +3312,7 @@ export function OnboardingPage() {
3625
3312
  className: "space-y-4",
3626
3313
  children: [
3627
3314
  /* @__PURE__ */ jsx20("h2", {
3628
- className: "text-2xl font-bold",
3315
+ className: "font-bold text-2xl",
3629
3316
  children: "Architecture"
3630
3317
  }),
3631
3318
  /* @__PURE__ */ jsx20("p", {
@@ -3633,7 +3320,7 @@ export function OnboardingPage() {
3633
3320
  children: 'The runtime follows a "render-loop" pattern:'
3634
3321
  }),
3635
3322
  /* @__PURE__ */ jsxs20("ol", {
3636
- className: "text-muted-foreground list-inside list-decimal space-y-2",
3323
+ className: "list-inside list-decimal space-y-2 text-muted-foreground",
3637
3324
  children: [
3638
3325
  /* @__PURE__ */ jsxs20("li", {
3639
3326
  children: [
@@ -3704,9 +3391,9 @@ export function OnboardingPage() {
3704
3391
  }
3705
3392
 
3706
3393
  // src/components/docs/libraries/LibrariesSchemaPage.tsx
3394
+ import { CodeBlock as CodeBlock20, InstallCommand as InstallCommand19 } from "@contractspec/lib.design-system";
3707
3395
  import Link20 from "@contractspec/lib.ui-link";
3708
3396
  import { ChevronRight as ChevronRight20 } from "lucide-react";
3709
- import { CodeBlock as CodeBlock20, InstallCommand as InstallCommand19 } from "@contractspec/lib.design-system";
3710
3397
  import { jsx as jsx21, jsxs as jsxs21 } from "react/jsx-runtime";
3711
3398
  function LibrariesSchemaPage() {
3712
3399
  return /* @__PURE__ */ jsxs21("div", {
@@ -3716,7 +3403,7 @@ function LibrariesSchemaPage() {
3716
3403
  className: "space-y-4",
3717
3404
  children: [
3718
3405
  /* @__PURE__ */ jsx21("h1", {
3719
- className: "text-4xl font-bold",
3406
+ className: "font-bold text-4xl",
3720
3407
  children: "@contractspec/lib.schema"
3721
3408
  }),
3722
3409
  /* @__PURE__ */ jsx21("p", {
@@ -3729,7 +3416,7 @@ function LibrariesSchemaPage() {
3729
3416
  className: "space-y-4",
3730
3417
  children: [
3731
3418
  /* @__PURE__ */ jsx21("h2", {
3732
- className: "text-2xl font-bold",
3419
+ className: "font-bold text-2xl",
3733
3420
  children: "Installation"
3734
3421
  }),
3735
3422
  /* @__PURE__ */ jsx21(InstallCommand19, {
@@ -3741,16 +3428,16 @@ function LibrariesSchemaPage() {
3741
3428
  className: "space-y-4",
3742
3429
  children: [
3743
3430
  /* @__PURE__ */ jsx21("h2", {
3744
- className: "text-2xl font-bold",
3431
+ className: "font-bold text-2xl",
3745
3432
  children: "Core Exports"
3746
3433
  }),
3747
3434
  /* @__PURE__ */ jsxs21("ul", {
3748
- className: "text-muted-foreground space-y-2",
3435
+ className: "space-y-2 text-muted-foreground",
3749
3436
  children: [
3750
3437
  /* @__PURE__ */ jsxs21("li", {
3751
3438
  children: [
3752
3439
  /* @__PURE__ */ jsx21("code", {
3753
- className: "bg-background/50 rounded px-2 py-1",
3440
+ className: "rounded bg-background/50 px-2 py-1",
3754
3441
  children: "SchemaModel"
3755
3442
  }),
3756
3443
  ": Compose fields into typed object models"
@@ -3759,7 +3446,7 @@ function LibrariesSchemaPage() {
3759
3446
  /* @__PURE__ */ jsxs21("li", {
3760
3447
  children: [
3761
3448
  /* @__PURE__ */ jsx21("code", {
3762
- className: "bg-background/50 rounded px-2 py-1",
3449
+ className: "rounded bg-background/50 px-2 py-1",
3763
3450
  children: "ScalarTypeEnum"
3764
3451
  }),
3765
3452
  ": Common scalar types (NonEmptyString, Email, DateTime, etc.)"
@@ -3768,7 +3455,7 @@ function LibrariesSchemaPage() {
3768
3455
  /* @__PURE__ */ jsxs21("li", {
3769
3456
  children: [
3770
3457
  /* @__PURE__ */ jsx21("code", {
3771
- className: "bg-background/50 rounded px-2 py-1",
3458
+ className: "rounded bg-background/50 px-2 py-1",
3772
3459
  children: "defineEnum"
3773
3460
  }),
3774
3461
  ": Create type-safe enums"
@@ -3777,7 +3464,7 @@ function LibrariesSchemaPage() {
3777
3464
  /* @__PURE__ */ jsxs21("li", {
3778
3465
  children: [
3779
3466
  /* @__PURE__ */ jsx21("code", {
3780
- className: "bg-background/50 rounded px-2 py-1",
3467
+ className: "rounded bg-background/50 px-2 py-1",
3781
3468
  children: "FieldType"
3782
3469
  }),
3783
3470
  ": Wrap scalars with Zod/GraphQL/JSON Schema"
@@ -3791,7 +3478,7 @@ function LibrariesSchemaPage() {
3791
3478
  className: "space-y-4",
3792
3479
  children: [
3793
3480
  /* @__PURE__ */ jsx21("h2", {
3794
- className: "text-2xl font-bold",
3481
+ className: "font-bold text-2xl",
3795
3482
  children: "Example: Basic Schema"
3796
3483
  }),
3797
3484
  /* @__PURE__ */ jsx21(CodeBlock20, {
@@ -3822,7 +3509,7 @@ const jsonSchema = CreateSpotInput.getJsonSchema();`
3822
3509
  className: "space-y-4",
3823
3510
  children: [
3824
3511
  /* @__PURE__ */ jsx21("h2", {
3825
- className: "text-2xl font-bold",
3512
+ className: "font-bold text-2xl",
3826
3513
  children: "Example: Enums"
3827
3514
  }),
3828
3515
  /* @__PURE__ */ jsx21(CodeBlock20, {
@@ -3850,7 +3537,7 @@ const RecurrenceRule = new SchemaModel({
3850
3537
  className: "space-y-4",
3851
3538
  children: [
3852
3539
  /* @__PURE__ */ jsx21("h2", {
3853
- className: "text-2xl font-bold",
3540
+ className: "font-bold text-2xl",
3854
3541
  children: "Available Scalars"
3855
3542
  }),
3856
3543
  /* @__PURE__ */ jsxs21("div", {
@@ -3864,7 +3551,7 @@ const RecurrenceRule = new SchemaModel({
3864
3551
  children: "Strings"
3865
3552
  }),
3866
3553
  /* @__PURE__ */ jsxs21("ul", {
3867
- className: "text-muted-foreground space-y-1 text-sm",
3554
+ className: "space-y-1 text-muted-foreground text-sm",
3868
3555
  children: [
3869
3556
  /* @__PURE__ */ jsx21("li", {
3870
3557
  children: /* @__PURE__ */ jsx21("code", {
@@ -3908,7 +3595,7 @@ const RecurrenceRule = new SchemaModel({
3908
3595
  children: "Numbers"
3909
3596
  }),
3910
3597
  /* @__PURE__ */ jsxs21("ul", {
3911
- className: "text-muted-foreground space-y-1 text-sm",
3598
+ className: "space-y-1 text-muted-foreground text-sm",
3912
3599
  children: [
3913
3600
  /* @__PURE__ */ jsx21("li", {
3914
3601
  children: /* @__PURE__ */ jsx21("code", {
@@ -3937,7 +3624,7 @@ const RecurrenceRule = new SchemaModel({
3937
3624
  children: "Dates & Times"
3938
3625
  }),
3939
3626
  /* @__PURE__ */ jsxs21("ul", {
3940
- className: "text-muted-foreground space-y-1 text-sm",
3627
+ className: "space-y-1 text-muted-foreground text-sm",
3941
3628
  children: [
3942
3629
  /* @__PURE__ */ jsx21("li", {
3943
3630
  children: /* @__PURE__ */ jsx21("code", {
@@ -3961,7 +3648,7 @@ const RecurrenceRule = new SchemaModel({
3961
3648
  children: "Generic"
3962
3649
  }),
3963
3650
  /* @__PURE__ */ jsxs21("ul", {
3964
- className: "text-muted-foreground space-y-1 text-sm",
3651
+ className: "space-y-1 text-muted-foreground text-sm",
3965
3652
  children: [
3966
3653
  /* @__PURE__ */ jsx21("li", {
3967
3654
  children: /* @__PURE__ */ jsx21("code", {
@@ -4018,11 +3705,11 @@ function LibrariesSLOPage() {
4018
3705
  className: "space-y-4",
4019
3706
  children: [
4020
3707
  /* @__PURE__ */ jsx22("h1", {
4021
- className: "text-4xl font-bold",
3708
+ className: "font-bold text-4xl",
4022
3709
  children: "SLO Library"
4023
3710
  }),
4024
3711
  /* @__PURE__ */ jsxs22("p", {
4025
- className: "text-muted-foreground text-lg",
3712
+ className: "text-lg text-muted-foreground",
4026
3713
  children: [
4027
3714
  /* @__PURE__ */ jsx22("code", {
4028
3715
  children: "@contractspec/lib.slo"
@@ -4036,7 +3723,7 @@ function LibrariesSLOPage() {
4036
3723
  className: "space-y-4",
4037
3724
  children: [
4038
3725
  /* @__PURE__ */ jsx22("h2", {
4039
- className: "text-2xl font-bold",
3726
+ className: "font-bold text-2xl",
4040
3727
  children: "Installation"
4041
3728
  }),
4042
3729
  /* @__PURE__ */ jsx22(InstallCommand20, {
@@ -4048,7 +3735,7 @@ function LibrariesSLOPage() {
4048
3735
  className: "space-y-4",
4049
3736
  children: [
4050
3737
  /* @__PURE__ */ jsx22("h2", {
4051
- className: "text-2xl font-bold",
3738
+ className: "font-bold text-2xl",
4052
3739
  children: "Define Targets"
4053
3740
  }),
4054
3741
  /* @__PURE__ */ jsx22(CodeBlock21, {
@@ -4067,7 +3754,7 @@ function LibrariesSLOPage() {
4067
3754
  className: "space-y-4",
4068
3755
  children: [
4069
3756
  /* @__PURE__ */ jsx22("h2", {
4070
- className: "text-2xl font-bold",
3757
+ className: "font-bold text-2xl",
4071
3758
  children: "Monitor Burn Rate"
4072
3759
  }),
4073
3760
  /* @__PURE__ */ jsx22(CodeBlock21, {
@@ -4096,7 +3783,7 @@ const { snapshot, burnRate } = monitor.recordWindow({
4096
3783
  className: "space-y-4",
4097
3784
  children: [
4098
3785
  /* @__PURE__ */ jsx22("h2", {
4099
- className: "text-2xl font-bold",
3786
+ className: "font-bold text-2xl",
4100
3787
  children: "History & Reporting"
4101
3788
  }),
4102
3789
  /* @__PURE__ */ jsx22("p", {
@@ -4142,11 +3829,11 @@ function LibrariesSupportBotPage() {
4142
3829
  className: "space-y-4",
4143
3830
  children: [
4144
3831
  /* @__PURE__ */ jsx23("h1", {
4145
- className: "text-4xl font-bold",
3832
+ className: "font-bold text-4xl",
4146
3833
  children: "@contractspec/lib.support-bot"
4147
3834
  }),
4148
3835
  /* @__PURE__ */ jsx23("p", {
4149
- className: "text-muted-foreground text-lg",
3836
+ className: "text-lg text-muted-foreground",
4150
3837
  children: "Build AI-first support flows using drop-in classifiers, knowledge-grounded resolvers, and tone-aware responders—all wired into the agent runner."
4151
3838
  })
4152
3839
  ]
@@ -4155,7 +3842,7 @@ function LibrariesSupportBotPage() {
4155
3842
  className: "space-y-4",
4156
3843
  children: [
4157
3844
  /* @__PURE__ */ jsx23("h2", {
4158
- className: "text-2xl font-bold",
3845
+ className: "font-bold text-2xl",
4159
3846
  children: "Installation"
4160
3847
  }),
4161
3848
  /* @__PURE__ */ jsx23(InstallCommand21, {
@@ -4167,7 +3854,7 @@ function LibrariesSupportBotPage() {
4167
3854
  className: "space-y-3",
4168
3855
  children: [
4169
3856
  /* @__PURE__ */ jsx23("h2", {
4170
- className: "text-2xl font-bold",
3857
+ className: "font-bold text-2xl",
4171
3858
  children: "Wire the primitives"
4172
3859
  }),
4173
3860
  /* @__PURE__ */ jsx23(CodeBlock22, {
@@ -4188,7 +3875,7 @@ const draft = await responder.draft(ticket, resolution, classification);`
4188
3875
  className: "space-y-3",
4189
3876
  children: [
4190
3877
  /* @__PURE__ */ jsx23("h2", {
4191
- className: "text-2xl font-bold",
3878
+ className: "font-bold text-2xl",
4192
3879
  children: "Expose as agent tools"
4193
3880
  }),
4194
3881
  /* @__PURE__ */ jsx23(CodeBlock22, {
@@ -4205,11 +3892,11 @@ const executor = new ToolExecutor({ tools });`
4205
3892
  className: "space-y-3",
4206
3893
  children: [
4207
3894
  /* @__PURE__ */ jsx23("h2", {
4208
- className: "text-2xl font-bold",
3895
+ className: "font-bold text-2xl",
4209
3896
  children: "Included modules"
4210
3897
  }),
4211
3898
  /* @__PURE__ */ jsxs23("ul", {
4212
- className: "text-muted-foreground list-inside list-disc space-y-2",
3899
+ className: "list-inside list-disc space-y-2 text-muted-foreground",
4213
3900
  children: [
4214
3901
  /* @__PURE__ */ jsxs23("li", {
4215
3902
  children: [
@@ -4284,11 +3971,11 @@ function LibrariesTestingPage() {
4284
3971
  className: "space-y-4",
4285
3972
  children: [
4286
3973
  /* @__PURE__ */ jsx24("h1", {
4287
- className: "text-4xl font-bold",
3974
+ className: "font-bold text-4xl",
4288
3975
  children: "@contractspec/lib.testing"
4289
3976
  }),
4290
3977
  /* @__PURE__ */ jsx24("p", {
4291
- className: "text-muted-foreground text-lg",
3978
+ className: "text-lg text-muted-foreground",
4292
3979
  children: "Golden tests ensure new rollouts behave exactly like the traffic that inspired them. Record requests in production, replay them locally, and ship with confidence."
4293
3980
  })
4294
3981
  ]
@@ -4297,7 +3984,7 @@ function LibrariesTestingPage() {
4297
3984
  className: "space-y-4",
4298
3985
  children: [
4299
3986
  /* @__PURE__ */ jsx24("h2", {
4300
- className: "text-2xl font-bold",
3987
+ className: "font-bold text-2xl",
4301
3988
  children: "Installation"
4302
3989
  }),
4303
3990
  /* @__PURE__ */ jsx24(InstallCommand22, {
@@ -4309,7 +3996,7 @@ function LibrariesTestingPage() {
4309
3996
  className: "space-y-3",
4310
3997
  children: [
4311
3998
  /* @__PURE__ */ jsx24("h2", {
4312
- className: "text-2xl font-bold",
3999
+ className: "font-bold text-2xl",
4313
4000
  children: "Record traffic"
4314
4001
  }),
4315
4002
  /* @__PURE__ */ jsx24(CodeBlock23, {
@@ -4342,7 +4029,7 @@ await recorder.record({
4342
4029
  className: "space-y-3",
4343
4030
  children: [
4344
4031
  /* @__PURE__ */ jsx24("h2", {
4345
- className: "text-2xl font-bold",
4032
+ className: "font-bold text-2xl",
4346
4033
  children: "Generate suites"
4347
4034
  }),
4348
4035
  /* @__PURE__ */ jsx24(CodeBlock23, {
@@ -4363,7 +4050,7 @@ const code = generator.generate(snapshots, {
4363
4050
  className: "space-y-3",
4364
4051
  children: [
4365
4052
  /* @__PURE__ */ jsx24("h2", {
4366
- className: "text-2xl font-bold",
4053
+ className: "font-bold text-2xl",
4367
4054
  children: "CLI workflow"
4368
4055
  }),
4369
4056
  /* @__PURE__ */ jsx24(CodeBlock23, {
@@ -4394,7 +4081,7 @@ const code = generator.generate(snapshots, {
4394
4081
  className: "card-subtle space-y-2 p-4",
4395
4082
  children: [
4396
4083
  /* @__PURE__ */ jsx24("h3", {
4397
- className: "text-lg font-semibold",
4084
+ className: "font-semibold text-lg",
4398
4085
  children: card.title
4399
4086
  }),
4400
4087
  /* @__PURE__ */ jsx24("p", {
@@ -4429,9 +4116,9 @@ const code = generator.generate(snapshots, {
4429
4116
  }
4430
4117
 
4431
4118
  // src/components/docs/libraries/LibrariesUIKitPage.tsx
4119
+ import { CodeBlock as CodeBlock24, InstallCommand as InstallCommand23 } from "@contractspec/lib.design-system";
4432
4120
  import Link24 from "@contractspec/lib.ui-link";
4433
4121
  import { ChevronRight as ChevronRight24 } from "lucide-react";
4434
- import { CodeBlock as CodeBlock24, InstallCommand as InstallCommand23 } from "@contractspec/lib.design-system";
4435
4122
  import { jsx as jsx25, jsxs as jsxs25 } from "react/jsx-runtime";
4436
4123
  function LibrariesUIKitPage() {
4437
4124
  return /* @__PURE__ */ jsxs25("div", {
@@ -4441,7 +4128,7 @@ function LibrariesUIKitPage() {
4441
4128
  className: "space-y-4",
4442
4129
  children: [
4443
4130
  /* @__PURE__ */ jsx25("h1", {
4444
- className: "text-4xl font-bold",
4131
+ className: "font-bold text-4xl",
4445
4132
  children: "@contractspec/lib.ui-kit"
4446
4133
  }),
4447
4134
  /* @__PURE__ */ jsxs25("p", {
@@ -4464,7 +4151,7 @@ function LibrariesUIKitPage() {
4464
4151
  className: "space-y-4",
4465
4152
  children: [
4466
4153
  /* @__PURE__ */ jsx25("h2", {
4467
- className: "text-2xl font-bold",
4154
+ className: "font-bold text-2xl",
4468
4155
  children: "Installation"
4469
4156
  }),
4470
4157
  /* @__PURE__ */ jsx25(InstallCommand23, {
@@ -4476,11 +4163,11 @@ function LibrariesUIKitPage() {
4476
4163
  className: "space-y-4",
4477
4164
  children: [
4478
4165
  /* @__PURE__ */ jsx25("h2", {
4479
- className: "text-2xl font-bold",
4166
+ className: "font-bold text-2xl",
4480
4167
  children: "Key Features"
4481
4168
  }),
4482
4169
  /* @__PURE__ */ jsxs25("ul", {
4483
- className: "text-muted-foreground list-inside list-disc space-y-2",
4170
+ className: "list-inside list-disc space-y-2 text-muted-foreground",
4484
4171
  children: [
4485
4172
  /* @__PURE__ */ jsxs25("li", {
4486
4173
  children: [
@@ -4527,7 +4214,7 @@ function LibrariesUIKitPage() {
4527
4214
  className: "space-y-4",
4528
4215
  children: [
4529
4216
  /* @__PURE__ */ jsx25("h2", {
4530
- className: "text-2xl font-bold",
4217
+ className: "font-bold text-2xl",
4531
4218
  children: "Example Usage"
4532
4219
  }),
4533
4220
  /* @__PURE__ */ jsx25(CodeBlock24, {
@@ -4558,7 +4245,7 @@ export function MyComponent() {
4558
4245
  className: "space-y-4",
4559
4246
  children: [
4560
4247
  /* @__PURE__ */ jsx25("h2", {
4561
- className: "text-2xl font-bold",
4248
+ className: "font-bold text-2xl",
4562
4249
  children: "Core Components"
4563
4250
  }),
4564
4251
  /* @__PURE__ */ jsxs25("div", {
@@ -4572,7 +4259,7 @@ export function MyComponent() {
4572
4259
  children: "Form Controls"
4573
4260
  }),
4574
4261
  /* @__PURE__ */ jsxs25("ul", {
4575
- className: "text-muted-foreground space-y-1 text-sm",
4262
+ className: "space-y-1 text-muted-foreground text-sm",
4576
4263
  children: [
4577
4264
  /* @__PURE__ */ jsx25("li", {
4578
4265
  children: "Button"
@@ -4601,7 +4288,7 @@ export function MyComponent() {
4601
4288
  children: "Layout"
4602
4289
  }),
4603
4290
  /* @__PURE__ */ jsxs25("ul", {
4604
- className: "text-muted-foreground space-y-1 text-sm",
4291
+ className: "space-y-1 text-muted-foreground text-sm",
4605
4292
  children: [
4606
4293
  /* @__PURE__ */ jsx25("li", {
4607
4294
  children: "Card"
@@ -4627,7 +4314,7 @@ export function MyComponent() {
4627
4314
  children: "Feedback"
4628
4315
  }),
4629
4316
  /* @__PURE__ */ jsxs25("ul", {
4630
- className: "text-muted-foreground space-y-1 text-sm",
4317
+ className: "space-y-1 text-muted-foreground text-sm",
4631
4318
  children: [
4632
4319
  /* @__PURE__ */ jsx25("li", {
4633
4320
  children: "Alert"
@@ -4673,12 +4360,12 @@ export function MyComponent() {
4673
4360
  });
4674
4361
  }
4675
4362
 
4676
- // src/components/docs/libraries/LibrariesWorkflowsPage.tsx
4363
+ // src/components/docs/libraries/LibrariesWorkflowComposerPage.tsx
4677
4364
  import { CodeBlock as CodeBlock25, InstallCommand as InstallCommand24 } from "@contractspec/lib.design-system";
4678
4365
  import Link25 from "@contractspec/lib.ui-link";
4679
4366
  import { ChevronRight as ChevronRight25 } from "lucide-react";
4680
4367
  import { jsx as jsx26, jsxs as jsxs26 } from "react/jsx-runtime";
4681
- function LibrariesWorkflowsPage() {
4368
+ function LibrariesWorkflowComposerPage() {
4682
4369
  return /* @__PURE__ */ jsxs26("div", {
4683
4370
  className: "space-y-8",
4684
4371
  children: [
@@ -4686,18 +4373,124 @@ function LibrariesWorkflowsPage() {
4686
4373
  className: "space-y-4",
4687
4374
  children: [
4688
4375
  /* @__PURE__ */ jsx26("h1", {
4689
- className: "text-4xl font-bold",
4376
+ className: "font-bold text-4xl",
4377
+ children: "Workflow Composer"
4378
+ }),
4379
+ /* @__PURE__ */ jsx26("p", {
4380
+ className: "text-lg text-muted-foreground",
4381
+ children: "`@contractspec/lib.workflow-composer` injects tenant-/role-/device-specific steps into base WorkflowSpecs and keeps transitions valid."
4382
+ })
4383
+ ]
4384
+ }),
4385
+ /* @__PURE__ */ jsxs26("div", {
4386
+ className: "space-y-4",
4387
+ children: [
4388
+ /* @__PURE__ */ jsx26("h2", {
4389
+ className: "font-bold text-2xl",
4390
+ children: "Installation"
4391
+ }),
4392
+ /* @__PURE__ */ jsx26(InstallCommand24, {
4393
+ package: "@contractspec/lib.workflow-composer"
4394
+ })
4395
+ ]
4396
+ }),
4397
+ /* @__PURE__ */ jsxs26("div", {
4398
+ className: "space-y-4",
4399
+ children: [
4400
+ /* @__PURE__ */ jsx26("h2", {
4401
+ className: "font-bold text-2xl",
4402
+ children: "Register extensions"
4403
+ }),
4404
+ /* @__PURE__ */ jsx26(CodeBlock25, {
4405
+ language: "typescript",
4406
+ code: `const composer = new WorkflowComposer();
4407
+
4408
+ composer.register({
4409
+ workflow: 'billing.invoiceApproval',
4410
+ tenantId: 'acme',
4411
+ customSteps: [
4412
+ {
4413
+ after: 'validate-invoice',
4414
+ inject: {
4415
+ id: 'acme-legal',
4416
+ type: 'human',
4417
+ label: 'ACME Legal Review',
4418
+ },
4419
+ transitionTo: 'final-approval',
4420
+ },
4421
+ ],
4422
+ hiddenSteps: ['internal-audit'],
4423
+ });`
4424
+ })
4425
+ ]
4426
+ }),
4427
+ /* @__PURE__ */ jsxs26("div", {
4428
+ className: "space-y-4",
4429
+ children: [
4430
+ /* @__PURE__ */ jsx26("h2", {
4431
+ className: "font-bold text-2xl",
4432
+ children: "Compose at runtime"
4433
+ }),
4434
+ /* @__PURE__ */ jsx26(CodeBlock25, {
4435
+ language: "typescript",
4436
+ code: `const tenantWorkflow = composer.compose({
4437
+ base: BaseInvoiceWorkflow,
4438
+ tenantId: 'acme',
4439
+ });
4440
+
4441
+ workflowRunner.execute(tenantWorkflow, ctx);`
4442
+ })
4443
+ ]
4444
+ }),
4445
+ /* @__PURE__ */ jsxs26("div", {
4446
+ className: "flex items-center gap-4 pt-4",
4447
+ children: [
4448
+ /* @__PURE__ */ jsx26(Link25, {
4449
+ href: "/docs/libraries",
4450
+ className: "btn-ghost",
4451
+ children: "Back to Libraries"
4452
+ }),
4453
+ /* @__PURE__ */ jsxs26(Link25, {
4454
+ href: "/docs/libraries/workflows",
4455
+ className: "btn-primary",
4456
+ children: [
4457
+ "Next: Workflow Runtime ",
4458
+ /* @__PURE__ */ jsx26(ChevronRight25, {
4459
+ size: 16
4460
+ })
4461
+ ]
4462
+ })
4463
+ ]
4464
+ })
4465
+ ]
4466
+ });
4467
+ }
4468
+
4469
+ // src/components/docs/libraries/LibrariesWorkflowsPage.tsx
4470
+ import { CodeBlock as CodeBlock26, InstallCommand as InstallCommand25 } from "@contractspec/lib.design-system";
4471
+ import Link26 from "@contractspec/lib.ui-link";
4472
+ import { ChevronRight as ChevronRight26 } from "lucide-react";
4473
+ import { jsx as jsx27, jsxs as jsxs27 } from "react/jsx-runtime";
4474
+ function LibrariesWorkflowsPage() {
4475
+ return /* @__PURE__ */ jsxs27("div", {
4476
+ className: "space-y-8",
4477
+ children: [
4478
+ /* @__PURE__ */ jsxs27("div", {
4479
+ className: "space-y-4",
4480
+ children: [
4481
+ /* @__PURE__ */ jsx27("h1", {
4482
+ className: "font-bold text-4xl",
4690
4483
  children: "Workflow Runtime Library"
4691
4484
  }),
4692
- /* @__PURE__ */ jsxs26("p", {
4693
- className: "text-muted-foreground text-lg",
4485
+ /* @__PURE__ */ jsxs27("p", {
4486
+ className: "text-lg text-muted-foreground",
4694
4487
  children: [
4695
4488
  "The ",
4696
- /* @__PURE__ */ jsx26("code", {
4489
+ /* @__PURE__ */ jsx27("code", {
4697
4490
  children: "@contractspec/lib.contracts-spec/workflow"
4698
4491
  }),
4699
4492
  " library provides the core ",
4700
- /* @__PURE__ */ jsx26("code", {
4493
+ /* @__PURE__ */ jsx27("code", {
4701
4494
  children: "WorkflowRunner"
4702
4495
  }),
4703
4496
  " for executing stateful, durable workflows."
@@ -4705,30 +4498,30 @@ function LibrariesWorkflowsPage() {
4705
4498
  })
4706
4499
  ]
4707
4500
  }),
4708
- /* @__PURE__ */ jsxs26("div", {
4501
+ /* @__PURE__ */ jsxs27("div", {
4709
4502
  className: "space-y-4",
4710
4503
  children: [
4711
- /* @__PURE__ */ jsx26("h2", {
4712
- className: "text-2xl font-bold",
4504
+ /* @__PURE__ */ jsx27("h2", {
4505
+ className: "font-bold text-2xl",
4713
4506
  children: "Installation"
4714
4507
  }),
4715
- /* @__PURE__ */ jsx26(InstallCommand24, {
4508
+ /* @__PURE__ */ jsx27(InstallCommand25, {
4716
4509
  package: "@contractspec/lib.contracts-spec"
4717
4510
  })
4718
4511
  ]
4719
4512
  }),
4720
- /* @__PURE__ */ jsxs26("div", {
4513
+ /* @__PURE__ */ jsxs27("div", {
4721
4514
  className: "space-y-4",
4722
4515
  children: [
4723
- /* @__PURE__ */ jsx26("h2", {
4724
- className: "text-2xl font-bold",
4516
+ /* @__PURE__ */ jsx27("h2", {
4517
+ className: "font-bold text-2xl",
4725
4518
  children: "WorkflowRunner"
4726
4519
  }),
4727
- /* @__PURE__ */ jsx26("p", {
4520
+ /* @__PURE__ */ jsx27("p", {
4728
4521
  className: "text-muted-foreground",
4729
4522
  children: "The runner manages execution state, step transitions, retries, and compensation."
4730
4523
  }),
4731
- /* @__PURE__ */ jsx26(CodeBlock25, {
4524
+ /* @__PURE__ */ jsx27(CodeBlock26, {
4732
4525
  language: "typescript",
4733
4526
  code: `import { WorkflowRunner } from '@contractspec/lib.contracts-spec/workflow/runner';
4734
4527
  import { InMemoryStateStore } from '@contractspec/lib.contracts-spec/workflow/adapters/memory-store';
@@ -4754,37 +4547,37 @@ await runner.executeStep(workflowId);`
4754
4547
  })
4755
4548
  ]
4756
4549
  }),
4757
- /* @__PURE__ */ jsxs26("div", {
4550
+ /* @__PURE__ */ jsxs27("div", {
4758
4551
  className: "space-y-4",
4759
4552
  children: [
4760
- /* @__PURE__ */ jsx26("h2", {
4761
- className: "text-2xl font-bold",
4553
+ /* @__PURE__ */ jsx27("h2", {
4554
+ className: "font-bold text-2xl",
4762
4555
  children: "State Persistence"
4763
4556
  }),
4764
- /* @__PURE__ */ jsxs26("p", {
4557
+ /* @__PURE__ */ jsxs27("p", {
4765
4558
  className: "text-muted-foreground",
4766
4559
  children: [
4767
4560
  "The runner relies on a ",
4768
- /* @__PURE__ */ jsx26("code", {
4561
+ /* @__PURE__ */ jsx27("code", {
4769
4562
  children: "StateStore"
4770
4563
  }),
4771
4564
  " to persist workflow execution history. ContractSpec ships with:"
4772
4565
  ]
4773
4566
  }),
4774
- /* @__PURE__ */ jsxs26("ul", {
4775
- className: "text-muted-foreground list-disc space-y-2 pl-6",
4567
+ /* @__PURE__ */ jsxs27("ul", {
4568
+ className: "list-disc space-y-2 pl-6 text-muted-foreground",
4776
4569
  children: [
4777
- /* @__PURE__ */ jsxs26("li", {
4570
+ /* @__PURE__ */ jsxs27("li", {
4778
4571
  children: [
4779
- /* @__PURE__ */ jsx26("code", {
4572
+ /* @__PURE__ */ jsx27("code", {
4780
4573
  children: "InMemoryStateStore"
4781
4574
  }),
4782
4575
  " - for testing and development."
4783
4576
  ]
4784
4577
  }),
4785
- /* @__PURE__ */ jsxs26("li", {
4578
+ /* @__PURE__ */ jsxs27("li", {
4786
4579
  children: [
4787
- /* @__PURE__ */ jsx26("code", {
4580
+ /* @__PURE__ */ jsx27("code", {
4788
4581
  children: "PrismaStateStore"
4789
4582
  }),
4790
4583
  " - for production using Prisma ORM."
@@ -4794,52 +4587,52 @@ await runner.executeStep(workflowId);`
4794
4587
  })
4795
4588
  ]
4796
4589
  }),
4797
- /* @__PURE__ */ jsxs26("div", {
4590
+ /* @__PURE__ */ jsxs27("div", {
4798
4591
  className: "space-y-4",
4799
4592
  children: [
4800
- /* @__PURE__ */ jsx26("h2", {
4801
- className: "text-2xl font-bold",
4593
+ /* @__PURE__ */ jsx27("h2", {
4594
+ className: "font-bold text-2xl",
4802
4595
  children: "Events"
4803
4596
  }),
4804
- /* @__PURE__ */ jsx26("p", {
4597
+ /* @__PURE__ */ jsx27("p", {
4805
4598
  className: "text-muted-foreground",
4806
4599
  children: "The runner emits events that you can subscribe to for monitoring:"
4807
4600
  }),
4808
- /* @__PURE__ */ jsxs26("ul", {
4809
- className: "text-muted-foreground list-disc space-y-2 pl-6",
4601
+ /* @__PURE__ */ jsxs27("ul", {
4602
+ className: "list-disc space-y-2 pl-6 text-muted-foreground",
4810
4603
  children: [
4811
- /* @__PURE__ */ jsx26("li", {
4812
- children: /* @__PURE__ */ jsx26("code", {
4604
+ /* @__PURE__ */ jsx27("li", {
4605
+ children: /* @__PURE__ */ jsx27("code", {
4813
4606
  children: "workflow.started"
4814
4607
  })
4815
4608
  }),
4816
- /* @__PURE__ */ jsx26("li", {
4817
- children: /* @__PURE__ */ jsx26("code", {
4609
+ /* @__PURE__ */ jsx27("li", {
4610
+ children: /* @__PURE__ */ jsx27("code", {
4818
4611
  children: "workflow.step_completed"
4819
4612
  })
4820
4613
  }),
4821
- /* @__PURE__ */ jsx26("li", {
4822
- children: /* @__PURE__ */ jsx26("code", {
4614
+ /* @__PURE__ */ jsx27("li", {
4615
+ children: /* @__PURE__ */ jsx27("code", {
4823
4616
  children: "workflow.step_failed"
4824
4617
  })
4825
4618
  }),
4826
- /* @__PURE__ */ jsx26("li", {
4827
- children: /* @__PURE__ */ jsx26("code", {
4619
+ /* @__PURE__ */ jsx27("li", {
4620
+ children: /* @__PURE__ */ jsx27("code", {
4828
4621
  children: "workflow.step_retrying"
4829
4622
  })
4830
4623
  }),
4831
- /* @__PURE__ */ jsx26("li", {
4832
- children: /* @__PURE__ */ jsx26("code", {
4624
+ /* @__PURE__ */ jsx27("li", {
4625
+ children: /* @__PURE__ */ jsx27("code", {
4833
4626
  children: "workflow.completed"
4834
4627
  })
4835
4628
  }),
4836
- /* @__PURE__ */ jsx26("li", {
4837
- children: /* @__PURE__ */ jsx26("code", {
4629
+ /* @__PURE__ */ jsx27("li", {
4630
+ children: /* @__PURE__ */ jsx27("code", {
4838
4631
  children: "workflow.cancelled"
4839
4632
  })
4840
4633
  }),
4841
- /* @__PURE__ */ jsx26("li", {
4842
- children: /* @__PURE__ */ jsx26("code", {
4634
+ /* @__PURE__ */ jsx27("li", {
4635
+ children: /* @__PURE__ */ jsx27("code", {
4843
4636
  children: "workflow.compensation_step_completed"
4844
4637
  })
4845
4638
  })
@@ -4847,112 +4640,6 @@ await runner.executeStep(workflowId);`
4847
4640
  })
4848
4641
  ]
4849
4642
  }),
4850
- /* @__PURE__ */ jsxs26("div", {
4851
- className: "flex items-center gap-4 pt-4",
4852
- children: [
4853
- /* @__PURE__ */ jsx26(Link25, {
4854
- href: "/docs/libraries",
4855
- className: "btn-ghost",
4856
- children: "Back to Libraries"
4857
- }),
4858
- /* @__PURE__ */ jsxs26(Link25, {
4859
- href: "/docs/libraries/data-views",
4860
- className: "btn-primary",
4861
- children: [
4862
- "Next: Data Views ",
4863
- /* @__PURE__ */ jsx26(ChevronRight25, {
4864
- size: 16
4865
- })
4866
- ]
4867
- })
4868
- ]
4869
- })
4870
- ]
4871
- });
4872
- }
4873
-
4874
- // src/components/docs/libraries/LibrariesWorkflowComposerPage.tsx
4875
- import { CodeBlock as CodeBlock26, InstallCommand as InstallCommand25 } from "@contractspec/lib.design-system";
4876
- import Link26 from "@contractspec/lib.ui-link";
4877
- import { ChevronRight as ChevronRight26 } from "lucide-react";
4878
- import { jsx as jsx27, jsxs as jsxs27 } from "react/jsx-runtime";
4879
- function LibrariesWorkflowComposerPage() {
4880
- return /* @__PURE__ */ jsxs27("div", {
4881
- className: "space-y-8",
4882
- children: [
4883
- /* @__PURE__ */ jsxs27("div", {
4884
- className: "space-y-4",
4885
- children: [
4886
- /* @__PURE__ */ jsx27("h1", {
4887
- className: "text-4xl font-bold",
4888
- children: "Workflow Composer"
4889
- }),
4890
- /* @__PURE__ */ jsx27("p", {
4891
- className: "text-muted-foreground text-lg",
4892
- children: "`@contractspec/lib.workflow-composer` injects tenant-/role-/device-specific steps into base WorkflowSpecs and keeps transitions valid."
4893
- })
4894
- ]
4895
- }),
4896
- /* @__PURE__ */ jsxs27("div", {
4897
- className: "space-y-4",
4898
- children: [
4899
- /* @__PURE__ */ jsx27("h2", {
4900
- className: "text-2xl font-bold",
4901
- children: "Installation"
4902
- }),
4903
- /* @__PURE__ */ jsx27(InstallCommand25, {
4904
- package: "@contractspec/lib.workflow-composer"
4905
- })
4906
- ]
4907
- }),
4908
- /* @__PURE__ */ jsxs27("div", {
4909
- className: "space-y-4",
4910
- children: [
4911
- /* @__PURE__ */ jsx27("h2", {
4912
- className: "text-2xl font-bold",
4913
- children: "Register extensions"
4914
- }),
4915
- /* @__PURE__ */ jsx27(CodeBlock26, {
4916
- language: "typescript",
4917
- code: `const composer = new WorkflowComposer();
4918
-
4919
- composer.register({
4920
- workflow: 'billing.invoiceApproval',
4921
- tenantId: 'acme',
4922
- customSteps: [
4923
- {
4924
- after: 'validate-invoice',
4925
- inject: {
4926
- id: 'acme-legal',
4927
- type: 'human',
4928
- label: 'ACME Legal Review',
4929
- },
4930
- transitionTo: 'final-approval',
4931
- },
4932
- ],
4933
- hiddenSteps: ['internal-audit'],
4934
- });`
4935
- })
4936
- ]
4937
- }),
4938
- /* @__PURE__ */ jsxs27("div", {
4939
- className: "space-y-4",
4940
- children: [
4941
- /* @__PURE__ */ jsx27("h2", {
4942
- className: "text-2xl font-bold",
4943
- children: "Compose at runtime"
4944
- }),
4945
- /* @__PURE__ */ jsx27(CodeBlock26, {
4946
- language: "typescript",
4947
- code: `const tenantWorkflow = composer.compose({
4948
- base: BaseInvoiceWorkflow,
4949
- tenantId: 'acme',
4950
- });
4951
-
4952
- workflowRunner.execute(tenantWorkflow, ctx);`
4953
- })
4954
- ]
4955
- }),
4956
4643
  /* @__PURE__ */ jsxs27("div", {
4957
4644
  className: "flex items-center gap-4 pt-4",
4958
4645
  children: [
@@ -4962,10 +4649,10 @@ workflowRunner.execute(tenantWorkflow, ctx);`
4962
4649
  children: "Back to Libraries"
4963
4650
  }),
4964
4651
  /* @__PURE__ */ jsxs27(Link26, {
4965
- href: "/docs/libraries/workflows",
4652
+ href: "/docs/libraries/data-views",
4966
4653
  className: "btn-primary",
4967
4654
  children: [
4968
- "Next: Workflow Runtime ",
4655
+ "Next: Data Views ",
4969
4656
  /* @__PURE__ */ jsx27(ChevronRight26, {
4970
4657
  size: 16
4971
4658
  })