@contractspec/bundle.library 3.7.6 → 3.8.2

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