@contractspec/bundle.library 3.8.12 → 3.9.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 (683) hide show
  1. package/.turbo/turbo-build.log +614 -602
  2. package/CHANGELOG.md +97 -0
  3. package/dist/application/context-storage/index.js +1 -1
  4. package/dist/application/index.js +11 -11
  5. package/dist/application/mcp/cliMcp.js +6 -6
  6. package/dist/application/mcp/cliMcp.onboarding.d.ts +4 -0
  7. package/dist/application/mcp/cliMcp.onboarding.js +2 -0
  8. package/dist/application/mcp/cliMcp.test.d.ts +1 -0
  9. package/dist/application/mcp/common.js +1 -1
  10. package/dist/application/mcp/contractsMcp.js +2 -2
  11. package/dist/application/mcp/contractsMcp.test.d.ts +1 -0
  12. package/dist/application/mcp/contractsMcpAdoptionTools.d.ts +3 -0
  13. package/dist/application/mcp/contractsMcpAdoptionTools.js +2 -0
  14. package/dist/application/mcp/contractsMcpResources.js +2 -2
  15. package/dist/application/mcp/contractsMcpTools.js +1 -1
  16. package/dist/application/mcp/contractsMcpTypes.d.ts +16 -0
  17. package/dist/application/mcp/docsMcp.catalog.js +2 -2
  18. package/dist/application/mcp/docsMcp.data.js +1 -1
  19. package/dist/application/mcp/docsMcp.js +3 -3
  20. package/dist/application/mcp/docsMcp.prompts.js +3 -3
  21. package/dist/application/mcp/docsMcp.reference.js +2 -2
  22. package/dist/application/mcp/docsMcp.resources.js +2 -2
  23. package/dist/application/mcp/docsMcp.tools.js +2 -2
  24. package/dist/application/mcp/index.js +11 -11
  25. package/dist/application/mcp/internalMcp.js +2 -2
  26. package/dist/application/mcp/normalizeMcpRequest.js +1 -1
  27. package/dist/application/mcp/providerRankingMcp.js +1 -1
  28. package/dist/bundles/LibraryBundle.d.ts +19 -111
  29. package/dist/bundles/LibraryBundle.js +1 -1
  30. package/dist/bundles/index.js +1 -1
  31. package/dist/components/docs/DocsIndexPage.js +2 -2
  32. package/dist/components/docs/advanced/AdvancedMCPPage.js +3 -3
  33. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -1
  34. package/dist/components/docs/advanced/AdvancedRenderersPage.js +2 -2
  35. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -4
  36. package/dist/components/docs/advanced/AdvancedTelemetryPage.js +2 -2
  37. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -2
  38. package/dist/components/docs/advanced/index.js +9 -9
  39. package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +6 -6
  40. package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +3 -3
  41. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -7
  42. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -6
  43. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -2
  44. package/dist/components/docs/architecture/ArchitectureOverviewPage.js +1 -1
  45. package/dist/components/docs/architecture/index.js +20 -20
  46. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -1
  47. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -1
  48. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -1
  49. package/dist/components/docs/comparison/ComparisonOverviewPage.js +1 -1
  50. package/dist/components/docs/comparison/ComparisonWindmillPage.js +1 -1
  51. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -1
  52. package/dist/components/docs/comparison/index.js +1 -1
  53. package/dist/components/docs/docsManifest.js +1 -1
  54. package/dist/components/docs/ecosystem/IntegrationsPage.js +2 -2
  55. package/dist/components/docs/ecosystem/PluginsPage.js +4 -4
  56. package/dist/components/docs/ecosystem/RegistryPage.js +4 -4
  57. package/dist/components/docs/ecosystem/TemplatesPage.js +3 -3
  58. package/dist/components/docs/ecosystem/index.js +11 -11
  59. package/dist/components/docs/examples/DocsExamplesPage.js +1 -17
  60. package/dist/components/docs/examples/ExampleShowcasePage.d.ts +1 -1
  61. package/dist/components/docs/examples/ExampleShowcasePage.js +2 -17
  62. package/dist/components/docs/examples/exampleShowcaseData.d.ts +2 -2
  63. package/dist/components/docs/examples/exampleShowcaseData.js +2 -17
  64. package/dist/components/docs/examples/exampleShowcaseData.test.d.ts +1 -0
  65. package/dist/components/docs/examples/index.js +2 -17
  66. package/dist/components/docs/generated/docs-index.generated.js +1 -1
  67. package/dist/components/docs/generated/index.d.ts +7 -1
  68. package/dist/components/docs/generated/index.js +1 -1
  69. package/dist/components/docs/generated/loader.js +1 -1
  70. package/dist/components/docs/getting-started/CLIPage.js +6 -5
  71. package/dist/components/docs/getting-started/CompatibilityPage.js +1 -1
  72. package/dist/components/docs/getting-started/DataViewTutorialPage.js +44 -67
  73. package/dist/components/docs/getting-started/DeveloperToolsPage.js +1 -1
  74. package/dist/components/docs/getting-started/HelloWorldPage.js +5 -5
  75. package/dist/components/docs/getting-started/InstallationPage.js +3 -3
  76. package/dist/components/docs/getting-started/StartHerePage.js +4 -2
  77. package/dist/components/docs/getting-started/TroubleshootingPage.js +2 -2
  78. package/dist/components/docs/getting-started/VSCodeExtensionPage.js +1 -1
  79. package/dist/components/docs/getting-started/getting-started.docblocks.js +2 -2
  80. package/dist/components/docs/getting-started/index.js +60 -80
  81. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +2 -2
  82. package/dist/components/docs/guides/GuideConnectInRepoPage.js +30 -5
  83. package/dist/components/docs/guides/GuideContractTypesPage.js +6 -6
  84. package/dist/components/docs/guides/GuideDocsPipelinePage.js +3 -3
  85. package/dist/components/docs/guides/GuideFirstModuleBundlePage.js +4 -4
  86. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -2
  87. package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.js +21 -6
  88. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -8
  89. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
  90. package/dist/components/docs/guides/GuideReleaseCapsulesPage.d.ts +1 -0
  91. package/dist/components/docs/guides/GuideReleaseCapsulesPage.js +16 -0
  92. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +4 -4
  93. package/dist/components/docs/guides/GuidesIndexPage.js +2 -2
  94. package/dist/components/docs/guides/index.d.ts +1 -0
  95. package/dist/components/docs/guides/index.js +93 -39
  96. package/dist/components/docs/index.js +690 -419
  97. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -2
  98. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -3
  99. package/dist/components/docs/integrations/IntegrationsGithubPage.js +2 -2
  100. package/dist/components/docs/integrations/IntegrationsGmailPage.js +3 -3
  101. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -3
  102. package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +2 -2
  103. package/dist/components/docs/integrations/IntegrationsMistralPage.js +2 -2
  104. package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +2 -2
  105. package/dist/components/docs/integrations/IntegrationsOverviewPage.js +1 -1
  106. package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +2 -2
  107. package/dist/components/docs/integrations/IntegrationsPowensPage.js +2 -2
  108. package/dist/components/docs/integrations/IntegrationsQdrantPage.js +5 -5
  109. package/dist/components/docs/integrations/IntegrationsResendPage.js +3 -3
  110. package/dist/components/docs/integrations/IntegrationsS3Page.js +4 -4
  111. package/dist/components/docs/integrations/IntegrationsSlackPage.js +2 -2
  112. package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +2 -2
  113. package/dist/components/docs/integrations/IntegrationsStripePage.js +2 -2
  114. package/dist/components/docs/integrations/IntegrationsTwilioPage.js +3 -3
  115. package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -2
  116. package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -2
  117. package/dist/components/docs/integrations/index.js +39 -39
  118. package/dist/components/docs/intent/ContractFirstApiPage.js +2 -2
  119. package/dist/components/docs/intent/DeterministicCodegenPage.js +2 -2
  120. package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +7 -7
  121. package/dist/components/docs/intent/OpenapiAlternativePage.js +3 -3
  122. package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +4 -4
  123. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -2
  124. package/dist/components/docs/intent/index.js +15 -15
  125. package/dist/components/docs/intent/intent-pages.docblocks.js +1 -1
  126. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +2 -2
  127. package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +2 -2
  128. package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +1 -1
  129. package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +2 -2
  130. package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +2 -2
  131. package/dist/components/docs/knowledge/index.js +5 -5
  132. package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +3 -3
  133. package/dist/components/docs/libraries/LibrariesAiAgentPage.js +3 -3
  134. package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +4 -4
  135. package/dist/components/docs/libraries/LibrariesContentGenPage.js +2 -2
  136. package/dist/components/docs/libraries/LibrariesContractsPage.js +43 -18
  137. package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +3 -3
  138. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.content.d.ts +67 -0
  139. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.content.js +86 -0
  140. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.d.ts +1 -0
  141. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.js +86 -0
  142. package/dist/components/docs/libraries/LibrariesDataBackendPage.js +2 -2
  143. package/dist/components/docs/libraries/LibrariesDataViewsPage.js +3 -3
  144. package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +77 -29
  145. package/dist/components/docs/libraries/LibrariesEvolutionPage.js +4 -4
  146. package/dist/components/docs/libraries/LibrariesGraphQLPage.js +2 -2
  147. package/dist/components/docs/libraries/LibrariesGrowthPage.js +3 -3
  148. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -3
  149. package/dist/components/docs/libraries/LibrariesObservabilityPage.js +5 -5
  150. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -4
  151. package/dist/components/docs/libraries/LibrariesOverviewPage.js +1 -1
  152. package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +4 -4
  153. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -3
  154. package/dist/components/docs/libraries/LibrariesResiliencePage.js +4 -4
  155. package/dist/components/docs/libraries/LibrariesRuntimePage.js +2 -2
  156. package/dist/components/docs/libraries/LibrariesSLOPage.js +3 -3
  157. package/dist/components/docs/libraries/LibrariesSchemaPage.js +3 -3
  158. package/dist/components/docs/libraries/LibrariesSupportBotPage.js +3 -3
  159. package/dist/components/docs/libraries/LibrariesTestingPage.js +3 -3
  160. package/dist/components/docs/libraries/LibrariesUIKitPage.js +42 -16
  161. package/dist/components/docs/libraries/LibrariesUIKitWebPage.d.ts +1 -0
  162. package/dist/components/docs/libraries/LibrariesUIKitWebPage.js +47 -0
  163. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -3
  164. package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +2 -2
  165. package/dist/components/docs/libraries/index.d.ts +2 -0
  166. package/dist/components/docs/libraries/index.js +338 -110
  167. package/dist/components/docs/manifesto/ManifestoPage.js +1 -1
  168. package/dist/components/docs/ops/AutoEvolutionOpsPage.js +2 -2
  169. package/dist/components/docs/ops/DistributedTracingOpsPage.js +2 -2
  170. package/dist/components/docs/ops/index.js +3 -3
  171. package/dist/components/docs/ops/ops-lifecycle.docblocks.js +2 -2
  172. package/dist/components/docs/ops/ops-runbooks-a.docblocks.js +2 -2
  173. package/dist/components/docs/ops/ops-runbooks-b.docblocks.js +2 -2
  174. package/dist/components/docs/ops/ops-slo-tenant.docblocks.js +2 -2
  175. package/dist/components/docs/ops/ops-top.docs.js +2 -2
  176. package/dist/components/docs/ops/ops.docs.js +6 -6
  177. package/dist/components/docs/product/product.docblocks.js +2 -2
  178. package/dist/components/docs/reference/DocsMarkdownContent.js +2 -2
  179. package/dist/components/docs/reference/DocsReferenceContent.js +3 -3
  180. package/dist/components/docs/reference/DocsReferenceIndexClient.js +2 -2
  181. package/dist/components/docs/reference/DocsReferenceIndexPage.js +2 -2
  182. package/dist/components/docs/reference/DocsReferencePage.js +3 -3
  183. package/dist/components/docs/reference/docsMarkdownParser.js +2 -2
  184. package/dist/components/docs/reference/index.js +4 -4
  185. package/dist/components/docs/safety/SafetyAuditingPage.js +2 -2
  186. package/dist/components/docs/safety/SafetyMigrationsPage.js +2 -2
  187. package/dist/components/docs/safety/SafetyOverviewPage.js +1 -1
  188. package/dist/components/docs/safety/SafetyPDPPage.js +2 -2
  189. package/dist/components/docs/safety/SafetySecurityTrustPage.js +1 -1
  190. package/dist/components/docs/safety/SafetySigningPage.js +3 -3
  191. package/dist/components/docs/safety/SafetyTenantIsolationPage.js +2 -2
  192. package/dist/components/docs/safety/index.js +7 -7
  193. package/dist/components/docs/shared/StudioPrompt.js +1 -1
  194. package/dist/components/docs/specs/SpecsBuilderControlPlanePage.js +18 -3
  195. package/dist/components/docs/specs/SpecsCapabilitiesPage.js +2 -2
  196. package/dist/components/docs/specs/SpecsConnectPage.js +4 -2
  197. package/dist/components/docs/specs/SpecsDataViewsPage.js +39 -32
  198. package/dist/components/docs/specs/SpecsModuleBundlesPage.js +3 -3
  199. package/dist/components/docs/specs/SpecsOverlaysPage.js +2 -2
  200. package/dist/components/docs/specs/SpecsOverviewPage.js +1 -1
  201. package/dist/components/docs/specs/SpecsPolicyPage.js +3 -3
  202. package/dist/components/docs/specs/SpecsWorkflowsPage.js +2 -2
  203. package/dist/components/docs/specs/index.js +66 -42
  204. package/dist/components/docs/studio/StudioBYOKPage.js +1 -1
  205. package/dist/components/docs/studio/StudioDeploymentsPage.js +1 -1
  206. package/dist/components/docs/studio/StudioGettingStartedPage.js +1 -1
  207. package/dist/components/docs/studio/StudioIntegrationsPage.js +1 -1
  208. package/dist/components/docs/studio/StudioOverviewPage.js +1 -1
  209. package/dist/components/docs/studio/StudioVisualBuilderPage.js +1 -1
  210. package/dist/components/docs/studio/index.js +1 -1
  211. package/dist/components/docs/tech/contracts/tech-docs.docblocks.js +2 -2
  212. package/dist/components/integrations/index.js +2 -2
  213. package/dist/components/integrations/molecules/IntegrationCard.js +1 -1
  214. package/dist/components/integrations/organisms/IntegrationMarketplace.js +1 -1
  215. package/dist/components/integrations/organisms/IntegrationSettings.js +2 -2
  216. package/dist/components/integrations/organisms/KnowledgeSourceList.js +1 -1
  217. package/dist/components/legal/PrivacyTemplate.js +1 -1
  218. package/dist/components/legal/TermsTemplate.js +1 -1
  219. package/dist/components/legal/index.js +1 -1
  220. package/dist/components/shared/FeatureGateNotice.js +1 -1
  221. package/dist/components/shared/index.js +1 -1
  222. package/dist/components/shell/WorkspaceHeader.js +1 -1
  223. package/dist/components/shell/WorkspaceProjectShellLayout.js +1 -1
  224. package/dist/components/shell/WorkspaceShellRenderer.js +1 -1
  225. package/dist/components/shell/WorkspaceSidebar.js +1 -1
  226. package/dist/components/shell/index.js +1 -1
  227. package/dist/components/templates/engine/index.js +1 -1
  228. package/dist/components/templates/index.js +11 -11
  229. package/dist/components/templates/messaging/ConversationList.js +2 -2
  230. package/dist/components/templates/messaging/MessageComposer.js +4 -4
  231. package/dist/components/templates/messaging/MessageThread.js +3 -3
  232. package/dist/components/templates/messaging/MessagingWorkspace.js +5 -5
  233. package/dist/components/templates/messaging/index.js +5 -5
  234. package/dist/components/templates/recipes/LanguageSwitcher.js +1 -1
  235. package/dist/components/templates/recipes/RecipeCard.js +1 -1
  236. package/dist/components/templates/recipes/RecipeDetail.js +1 -1
  237. package/dist/components/templates/recipes/RecipeList.js +3 -3
  238. package/dist/components/templates/recipes/index.js +3 -3
  239. package/dist/components/templates/todos/FilterBar.js +1 -1
  240. package/dist/components/templates/todos/TaskForm.js +2 -2
  241. package/dist/components/templates/todos/TaskItem.js +1 -1
  242. package/dist/components/templates/todos/TaskList.js +5 -5
  243. package/dist/components/templates/todos/index.js +5 -5
  244. package/dist/config/contractspec-blueprint.js +1 -1
  245. package/dist/config/contractspec-branding.js +1 -1
  246. package/dist/config/contractspec-routes.js +1 -1
  247. package/dist/config/index.js +1 -1
  248. package/dist/features/contracts-registry.js +1 -1
  249. package/dist/features/docs/docs.contracts.js +1 -1
  250. package/dist/features/docs/index.js +1 -1
  251. package/dist/features/docs.feature.js +1 -1
  252. package/dist/features/index.js +1 -1
  253. package/dist/features/mcp.feature.js +1 -1
  254. package/dist/features/presentations.feature.js +1 -1
  255. package/dist/features/registry.js +1 -1
  256. package/dist/index.d.ts +1 -0
  257. package/dist/index.js +701 -430
  258. package/dist/infrastructure/elysia/index.js +1 -1
  259. package/dist/infrastructure/elysia/logger.js +1 -1
  260. package/dist/infrastructure/index.js +1 -1
  261. package/dist/libs/email/client.js +1 -1
  262. package/dist/libs/email/contact.js +3 -3
  263. package/dist/libs/email/newsletter.js +3 -3
  264. package/dist/libs/email/utils.js +2 -2
  265. package/dist/libs/email/waitlist-application.js +3 -3
  266. package/dist/libs/email/waitlist.js +3 -3
  267. package/dist/libs/email.js +6 -6
  268. package/dist/libs/posthog/client.js +1 -1
  269. package/dist/libs/posthog/native.js +1 -1
  270. package/dist/libs/posthog/server.js +1 -1
  271. package/dist/libs/pricing-examples.js +1 -1
  272. package/dist/node/application/context-storage/index.js +1 -1
  273. package/dist/node/application/index.js +11 -11
  274. package/dist/node/application/mcp/cliMcp.js +6 -6
  275. package/dist/node/application/mcp/cliMcp.onboarding.js +1 -0
  276. package/dist/node/application/mcp/common.js +1 -1
  277. package/dist/node/application/mcp/contractsMcp.js +2 -2
  278. package/dist/node/application/mcp/contractsMcpAdoptionTools.js +1 -0
  279. package/dist/node/application/mcp/contractsMcpResources.js +2 -2
  280. package/dist/node/application/mcp/contractsMcpTools.js +1 -1
  281. package/dist/node/application/mcp/docsMcp.catalog.js +2 -2
  282. package/dist/node/application/mcp/docsMcp.data.js +1 -1
  283. package/dist/node/application/mcp/docsMcp.js +3 -3
  284. package/dist/node/application/mcp/docsMcp.prompts.js +3 -3
  285. package/dist/node/application/mcp/docsMcp.reference.js +2 -2
  286. package/dist/node/application/mcp/docsMcp.resources.js +2 -2
  287. package/dist/node/application/mcp/docsMcp.tools.js +2 -2
  288. package/dist/node/application/mcp/index.js +11 -11
  289. package/dist/node/application/mcp/internalMcp.js +2 -2
  290. package/dist/node/application/mcp/normalizeMcpRequest.js +1 -1
  291. package/dist/node/application/mcp/providerRankingMcp.js +1 -1
  292. package/dist/node/bundles/LibraryBundle.js +1 -1
  293. package/dist/node/bundles/index.js +1 -1
  294. package/dist/node/components/docs/DocsIndexPage.js +2 -2
  295. package/dist/node/components/docs/advanced/AdvancedMCPPage.js +3 -3
  296. package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -1
  297. package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +2 -2
  298. package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -4
  299. package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +2 -2
  300. package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -2
  301. package/dist/node/components/docs/advanced/index.js +9 -9
  302. package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +6 -6
  303. package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +3 -3
  304. package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -7
  305. package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -6
  306. package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -2
  307. package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +1 -1
  308. package/dist/node/components/docs/architecture/index.js +20 -20
  309. package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -1
  310. package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -1
  311. package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -1
  312. package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +1 -1
  313. package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +1 -1
  314. package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -1
  315. package/dist/node/components/docs/comparison/index.js +1 -1
  316. package/dist/node/components/docs/docsManifest.js +1 -1
  317. package/dist/node/components/docs/ecosystem/IntegrationsPage.js +2 -2
  318. package/dist/node/components/docs/ecosystem/PluginsPage.js +4 -4
  319. package/dist/node/components/docs/ecosystem/RegistryPage.js +4 -4
  320. package/dist/node/components/docs/ecosystem/TemplatesPage.js +3 -3
  321. package/dist/node/components/docs/ecosystem/index.js +11 -11
  322. package/dist/node/components/docs/examples/DocsExamplesPage.js +1 -17
  323. package/dist/node/components/docs/examples/ExampleShowcasePage.js +2 -17
  324. package/dist/node/components/docs/examples/exampleShowcaseData.js +2 -17
  325. package/dist/node/components/docs/examples/index.js +2 -17
  326. package/dist/node/components/docs/generated/docs-index.generated.js +1 -1
  327. package/dist/node/components/docs/generated/index.js +1 -1
  328. package/dist/node/components/docs/generated/loader.js +1 -1
  329. package/dist/node/components/docs/getting-started/CLIPage.js +6 -5
  330. package/dist/node/components/docs/getting-started/CompatibilityPage.js +1 -1
  331. package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +44 -67
  332. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +1 -1
  333. package/dist/node/components/docs/getting-started/HelloWorldPage.js +5 -5
  334. package/dist/node/components/docs/getting-started/InstallationPage.js +3 -3
  335. package/dist/node/components/docs/getting-started/StartHerePage.js +4 -2
  336. package/dist/node/components/docs/getting-started/TroubleshootingPage.js +2 -2
  337. package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +1 -1
  338. package/dist/node/components/docs/getting-started/getting-started.docblocks.js +2 -2
  339. package/dist/node/components/docs/getting-started/index.js +60 -80
  340. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +2 -2
  341. package/dist/node/components/docs/guides/GuideConnectInRepoPage.js +30 -5
  342. package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -6
  343. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +3 -3
  344. package/dist/node/components/docs/guides/GuideFirstModuleBundlePage.js +4 -4
  345. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -2
  346. package/dist/node/components/docs/guides/GuideHostBuilderWorkbenchPage.js +21 -6
  347. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -8
  348. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
  349. package/dist/node/components/docs/guides/GuideReleaseCapsulesPage.js +15 -0
  350. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +4 -4
  351. package/dist/node/components/docs/guides/GuidesIndexPage.js +2 -2
  352. package/dist/node/components/docs/guides/index.js +93 -39
  353. package/dist/node/components/docs/index.js +690 -419
  354. package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -2
  355. package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -3
  356. package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +2 -2
  357. package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +3 -3
  358. package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -3
  359. package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +2 -2
  360. package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +2 -2
  361. package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +2 -2
  362. package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +1 -1
  363. package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +2 -2
  364. package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +2 -2
  365. package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +5 -5
  366. package/dist/node/components/docs/integrations/IntegrationsResendPage.js +3 -3
  367. package/dist/node/components/docs/integrations/IntegrationsS3Page.js +4 -4
  368. package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +2 -2
  369. package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +2 -2
  370. package/dist/node/components/docs/integrations/IntegrationsStripePage.js +2 -2
  371. package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +3 -3
  372. package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -2
  373. package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -2
  374. package/dist/node/components/docs/integrations/index.js +39 -39
  375. package/dist/node/components/docs/intent/ContractFirstApiPage.js +2 -2
  376. package/dist/node/components/docs/intent/DeterministicCodegenPage.js +2 -2
  377. package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +7 -7
  378. package/dist/node/components/docs/intent/OpenapiAlternativePage.js +3 -3
  379. package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +4 -4
  380. package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -2
  381. package/dist/node/components/docs/intent/index.js +15 -15
  382. package/dist/node/components/docs/intent/intent-pages.docblocks.js +1 -1
  383. package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +2 -2
  384. package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +2 -2
  385. package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +1 -1
  386. package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +2 -2
  387. package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +2 -2
  388. package/dist/node/components/docs/knowledge/index.js +5 -5
  389. package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +3 -3
  390. package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +3 -3
  391. package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +4 -4
  392. package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +2 -2
  393. package/dist/node/components/docs/libraries/LibrariesContractsPage.js +43 -18
  394. package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +3 -3
  395. package/dist/node/components/docs/libraries/LibrariesCrossPlatformUIPage.content.js +85 -0
  396. package/dist/node/components/docs/libraries/LibrariesCrossPlatformUIPage.js +85 -0
  397. package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +2 -2
  398. package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +3 -3
  399. package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +77 -29
  400. package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +4 -4
  401. package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +2 -2
  402. package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +3 -3
  403. package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -3
  404. package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +5 -5
  405. package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -4
  406. package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +1 -1
  407. package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +4 -4
  408. package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -3
  409. package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +4 -4
  410. package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +2 -2
  411. package/dist/node/components/docs/libraries/LibrariesSLOPage.js +3 -3
  412. package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +3 -3
  413. package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +3 -3
  414. package/dist/node/components/docs/libraries/LibrariesTestingPage.js +3 -3
  415. package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +42 -16
  416. package/dist/node/components/docs/libraries/LibrariesUIKitWebPage.js +46 -0
  417. package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -3
  418. package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +2 -2
  419. package/dist/node/components/docs/libraries/index.js +338 -110
  420. package/dist/node/components/docs/manifesto/ManifestoPage.js +1 -1
  421. package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +2 -2
  422. package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +2 -2
  423. package/dist/node/components/docs/ops/index.js +3 -3
  424. package/dist/node/components/docs/ops/ops-lifecycle.docblocks.js +2 -2
  425. package/dist/node/components/docs/ops/ops-runbooks-a.docblocks.js +2 -2
  426. package/dist/node/components/docs/ops/ops-runbooks-b.docblocks.js +2 -2
  427. package/dist/node/components/docs/ops/ops-slo-tenant.docblocks.js +2 -2
  428. package/dist/node/components/docs/ops/ops-top.docs.js +2 -2
  429. package/dist/node/components/docs/ops/ops.docs.js +6 -6
  430. package/dist/node/components/docs/product/product.docblocks.js +2 -2
  431. package/dist/node/components/docs/reference/DocsMarkdownContent.js +2 -2
  432. package/dist/node/components/docs/reference/DocsReferenceContent.js +3 -3
  433. package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +2 -2
  434. package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +2 -2
  435. package/dist/node/components/docs/reference/DocsReferencePage.js +3 -3
  436. package/dist/node/components/docs/reference/docsMarkdownParser.js +2 -2
  437. package/dist/node/components/docs/reference/index.js +4 -4
  438. package/dist/node/components/docs/safety/SafetyAuditingPage.js +2 -2
  439. package/dist/node/components/docs/safety/SafetyMigrationsPage.js +2 -2
  440. package/dist/node/components/docs/safety/SafetyOverviewPage.js +1 -1
  441. package/dist/node/components/docs/safety/SafetyPDPPage.js +2 -2
  442. package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +1 -1
  443. package/dist/node/components/docs/safety/SafetySigningPage.js +3 -3
  444. package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +2 -2
  445. package/dist/node/components/docs/safety/index.js +7 -7
  446. package/dist/node/components/docs/shared/StudioPrompt.js +1 -1
  447. package/dist/node/components/docs/specs/SpecsBuilderControlPlanePage.js +18 -3
  448. package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +2 -2
  449. package/dist/node/components/docs/specs/SpecsConnectPage.js +4 -2
  450. package/dist/node/components/docs/specs/SpecsDataViewsPage.js +39 -32
  451. package/dist/node/components/docs/specs/SpecsModuleBundlesPage.js +3 -3
  452. package/dist/node/components/docs/specs/SpecsOverlaysPage.js +2 -2
  453. package/dist/node/components/docs/specs/SpecsOverviewPage.js +1 -1
  454. package/dist/node/components/docs/specs/SpecsPolicyPage.js +3 -3
  455. package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +2 -2
  456. package/dist/node/components/docs/specs/index.js +66 -42
  457. package/dist/node/components/docs/studio/StudioBYOKPage.js +1 -1
  458. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +1 -1
  459. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +1 -1
  460. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +1 -1
  461. package/dist/node/components/docs/studio/StudioOverviewPage.js +1 -1
  462. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +1 -1
  463. package/dist/node/components/docs/studio/index.js +1 -1
  464. package/dist/node/components/docs/tech/contracts/tech-docs.docblocks.js +2 -2
  465. package/dist/node/components/integrations/index.js +2 -2
  466. package/dist/node/components/integrations/molecules/IntegrationCard.js +1 -1
  467. package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +1 -1
  468. package/dist/node/components/integrations/organisms/IntegrationSettings.js +2 -2
  469. package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +1 -1
  470. package/dist/node/components/legal/PrivacyTemplate.js +1 -1
  471. package/dist/node/components/legal/TermsTemplate.js +1 -1
  472. package/dist/node/components/legal/index.js +1 -1
  473. package/dist/node/components/shared/FeatureGateNotice.js +1 -1
  474. package/dist/node/components/shared/index.js +1 -1
  475. package/dist/node/components/shell/WorkspaceHeader.js +1 -1
  476. package/dist/node/components/shell/WorkspaceProjectShellLayout.js +1 -1
  477. package/dist/node/components/shell/WorkspaceShellRenderer.js +1 -1
  478. package/dist/node/components/shell/WorkspaceSidebar.js +1 -1
  479. package/dist/node/components/shell/index.js +1 -1
  480. package/dist/node/components/templates/engine/index.js +1 -1
  481. package/dist/node/components/templates/index.js +11 -11
  482. package/dist/node/components/templates/messaging/ConversationList.js +2 -2
  483. package/dist/node/components/templates/messaging/MessageComposer.js +4 -4
  484. package/dist/node/components/templates/messaging/MessageThread.js +3 -3
  485. package/dist/node/components/templates/messaging/MessagingWorkspace.js +5 -5
  486. package/dist/node/components/templates/messaging/index.js +5 -5
  487. package/dist/node/components/templates/recipes/LanguageSwitcher.js +1 -1
  488. package/dist/node/components/templates/recipes/RecipeCard.js +1 -1
  489. package/dist/node/components/templates/recipes/RecipeDetail.js +1 -1
  490. package/dist/node/components/templates/recipes/RecipeList.js +3 -3
  491. package/dist/node/components/templates/recipes/index.js +3 -3
  492. package/dist/node/components/templates/todos/FilterBar.js +1 -1
  493. package/dist/node/components/templates/todos/TaskForm.js +2 -2
  494. package/dist/node/components/templates/todos/TaskItem.js +1 -1
  495. package/dist/node/components/templates/todos/TaskList.js +5 -5
  496. package/dist/node/components/templates/todos/index.js +5 -5
  497. package/dist/node/config/contractspec-blueprint.js +1 -1
  498. package/dist/node/config/contractspec-branding.js +1 -1
  499. package/dist/node/config/contractspec-routes.js +1 -1
  500. package/dist/node/config/index.js +1 -1
  501. package/dist/node/features/contracts-registry.js +1 -1
  502. package/dist/node/features/docs/docs.contracts.js +1 -1
  503. package/dist/node/features/docs/index.js +1 -1
  504. package/dist/node/features/docs.feature.js +1 -1
  505. package/dist/node/features/index.js +1 -1
  506. package/dist/node/features/mcp.feature.js +1 -1
  507. package/dist/node/features/presentations.feature.js +1 -1
  508. package/dist/node/features/registry.js +1 -1
  509. package/dist/node/index.js +701 -430
  510. package/dist/node/infrastructure/elysia/index.js +1 -1
  511. package/dist/node/infrastructure/elysia/logger.js +1 -1
  512. package/dist/node/infrastructure/index.js +1 -1
  513. package/dist/node/libs/email/client.js +1 -1
  514. package/dist/node/libs/email/contact.js +3 -3
  515. package/dist/node/libs/email/newsletter.js +3 -3
  516. package/dist/node/libs/email/utils.js +2 -2
  517. package/dist/node/libs/email/waitlist-application.js +3 -3
  518. package/dist/node/libs/email/waitlist.js +3 -3
  519. package/dist/node/libs/email.js +6 -6
  520. package/dist/node/libs/posthog/client.js +1 -1
  521. package/dist/node/libs/posthog/native.js +1 -1
  522. package/dist/node/libs/posthog/server.js +1 -1
  523. package/dist/node/libs/pricing-examples.js +1 -1
  524. package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -1
  525. package/dist/node/presentation/features/atoms/FeatureIcon/index.js +1 -1
  526. package/dist/node/presentation/features/atoms/index.js +1 -1
  527. package/dist/node/presentation/features/hooks/index.js +1 -1
  528. package/dist/node/presentation/features/hooks/useContractsRegistry.js +1 -1
  529. package/dist/node/presentation/features/hooks/useFeatureFilters.js +1 -1
  530. package/dist/node/presentation/features/hooks/useFeatureRegistry.js +1 -1
  531. package/dist/node/presentation/features/hooks/useRelatedDocs.js +1 -1
  532. package/dist/node/presentation/features/index.js +1 -1
  533. package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -1
  534. package/dist/node/presentation/features/molecules/FeatureCard/index.js +1 -1
  535. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -1
  536. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -1
  537. package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -1
  538. package/dist/node/presentation/features/molecules/FeatureFilters/index.js +1 -1
  539. package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -1
  540. package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +1 -1
  541. package/dist/node/presentation/features/molecules/index.js +1 -1
  542. package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +1 -1
  543. package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -1
  544. package/dist/node/presentation/features/organisms/FeatureDetail/index.js +1 -1
  545. package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -1
  546. package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +1 -1
  547. package/dist/node/presentation/features/organisms/FeatureEventsList.js +1 -1
  548. package/dist/node/presentation/features/organisms/FeatureFormsList.js +1 -1
  549. package/dist/node/presentation/features/organisms/FeatureOperationsList.js +1 -1
  550. package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +1 -1
  551. package/dist/node/presentation/features/organisms/index.js +1 -1
  552. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -1
  553. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -1
  554. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -1
  555. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -1
  556. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -1
  557. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -1
  558. package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -1
  559. package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +1 -1
  560. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -1
  561. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -1
  562. package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -1
  563. package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +1 -1
  564. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -1
  565. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -1
  566. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -1
  567. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -1
  568. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -1
  569. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -1
  570. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -1
  571. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -1
  572. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -1
  573. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -1
  574. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -1
  575. package/dist/presentation/features/atoms/FeatureIcon/index.js +1 -1
  576. package/dist/presentation/features/atoms/index.js +1 -1
  577. package/dist/presentation/features/hooks/index.js +1 -1
  578. package/dist/presentation/features/hooks/useContractsRegistry.js +1 -1
  579. package/dist/presentation/features/hooks/useFeatureFilters.js +1 -1
  580. package/dist/presentation/features/hooks/useFeatureRegistry.js +1 -1
  581. package/dist/presentation/features/hooks/useRelatedDocs.js +1 -1
  582. package/dist/presentation/features/index.js +1 -1
  583. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -1
  584. package/dist/presentation/features/molecules/FeatureCard/index.js +1 -1
  585. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -1
  586. package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -1
  587. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -1
  588. package/dist/presentation/features/molecules/FeatureFilters/index.js +1 -1
  589. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -1
  590. package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +1 -1
  591. package/dist/presentation/features/molecules/index.js +1 -1
  592. package/dist/presentation/features/organisms/FeatureDataViewsList.js +1 -1
  593. package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -1
  594. package/dist/presentation/features/organisms/FeatureDetail/index.js +1 -1
  595. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -1
  596. package/dist/presentation/features/organisms/FeatureDiscovery/index.js +1 -1
  597. package/dist/presentation/features/organisms/FeatureEventsList.js +1 -1
  598. package/dist/presentation/features/organisms/FeatureFormsList.js +1 -1
  599. package/dist/presentation/features/organisms/FeatureOperationsList.js +1 -1
  600. package/dist/presentation/features/organisms/FeaturePresentationsList.js +1 -1
  601. package/dist/presentation/features/organisms/index.js +1 -1
  602. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -1
  603. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -1
  604. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -1
  605. package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -1
  606. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -1
  607. package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -1
  608. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -1
  609. package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +1 -1
  610. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -1
  611. package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -1
  612. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -1
  613. package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +1 -1
  614. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -1
  615. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -1
  616. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -1
  617. package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -1
  618. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -1
  619. package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -1
  620. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -1
  621. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -1
  622. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -1
  623. package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -1
  624. package/package.json +96 -23
  625. package/src/application/mcp/cliMcp.onboarding.ts +297 -0
  626. package/src/application/mcp/cliMcp.test.ts +99 -0
  627. package/src/application/mcp/cliMcp.ts +30 -3
  628. package/src/application/mcp/contractsMcp.test.ts +65 -0
  629. package/src/application/mcp/contractsMcpAdoptionTools.ts +131 -0
  630. package/src/application/mcp/contractsMcpResources.ts +49 -0
  631. package/src/application/mcp/contractsMcpTools.ts +2 -0
  632. package/src/application/mcp/contractsMcpTypes.ts +16 -0
  633. package/src/bundles/LibraryBundle.ts +19 -130
  634. package/src/components/docs/docsManifest.test.ts +14 -0
  635. package/src/components/docs/docsManifest.ts +22 -0
  636. package/src/components/docs/examples/DocsExamplesPage.tsx +6 -14
  637. package/src/components/docs/examples/ExampleShowcasePage.tsx +22 -18
  638. package/src/components/docs/examples/exampleShowcaseData.test.ts +22 -0
  639. package/src/components/docs/examples/exampleShowcaseData.ts +75 -50
  640. package/src/components/docs/generated/docs-index._common.json +9 -1
  641. package/src/components/docs/generated/docs-index.ai-chat.json +1 -1
  642. package/src/components/docs/generated/docs-index.app-config.json +4 -4
  643. package/src/components/docs/generated/docs-index.data-grid-showcase.json +9 -1
  644. package/src/components/docs/generated/docs-index.jobs.json +1 -1
  645. package/src/components/docs/generated/docs-index.kb-update-pipeline.json +5 -5
  646. package/src/components/docs/generated/docs-index.learning-journey-crm-onboarding.json +1 -1
  647. package/src/components/docs/generated/docs-index.learning-journey-platform-tour.json +1 -1
  648. package/src/components/docs/generated/docs-index.learning-journey-registry.json +1 -1
  649. package/src/components/docs/generated/docs-index.learning-journey.json +27 -3
  650. package/src/components/docs/generated/docs-index.locale-jurisdiction-gate.json +8 -0
  651. package/src/components/docs/generated/docs-index.manifest.json +13 -13
  652. package/src/components/docs/generated/docs-index.mobile-demo-landing.json +42 -0
  653. package/src/components/docs/generated/docs-index.platform-agent.json +18 -2
  654. package/src/components/docs/generated/docs-index.platform-context.json +16 -0
  655. package/src/components/docs/generated/docs-index.platform-docs.json +9 -1
  656. package/src/components/docs/generated/docs-index.platform-provider-ranking.json +32 -0
  657. package/src/components/docs/generated/docs-index.wealth-snapshot.json +4 -4
  658. package/src/components/docs/generated/index.ts +20 -5
  659. package/src/components/docs/generated/loader.ts +15 -8
  660. package/src/components/docs/getting-started/CLIPage.tsx +10 -2
  661. package/src/components/docs/getting-started/CompatibilityPage.tsx +14 -0
  662. package/src/components/docs/getting-started/DataViewTutorialPage.tsx +63 -70
  663. package/src/components/docs/getting-started/StartHerePage.tsx +10 -9
  664. package/src/components/docs/guides/GuideConnectInRepoPage.tsx +52 -3
  665. package/src/components/docs/guides/GuideHostBuilderWorkbenchPage.tsx +55 -6
  666. package/src/components/docs/guides/GuideReleaseCapsulesPage.tsx +147 -0
  667. package/src/components/docs/guides/GuidesIndexPage.tsx +7 -0
  668. package/src/components/docs/guides/index.ts +1 -0
  669. package/src/components/docs/libraries/LibrariesContractsPage.tsx +72 -27
  670. package/src/components/docs/libraries/LibrariesCrossPlatformUIPage.content.ts +252 -0
  671. package/src/components/docs/libraries/LibrariesCrossPlatformUIPage.tsx +232 -0
  672. package/src/components/docs/libraries/LibrariesDesignSystemPage.tsx +140 -55
  673. package/src/components/docs/libraries/LibrariesOverviewPage.tsx +13 -1
  674. package/src/components/docs/libraries/LibrariesRuntimePage.tsx +15 -0
  675. package/src/components/docs/libraries/LibrariesUIKitPage.tsx +78 -25
  676. package/src/components/docs/libraries/LibrariesUIKitWebPage.tsx +129 -0
  677. package/src/components/docs/libraries/index.ts +2 -0
  678. package/src/components/docs/reference/DocsReferenceIndexPage.tsx +1 -1
  679. package/src/components/docs/specs/SpecsBuilderControlPlanePage.tsx +58 -3
  680. package/src/components/docs/specs/SpecsConnectPage.tsx +30 -0
  681. package/src/components/docs/specs/SpecsDataViewsPage.tsx +63 -42
  682. package/src/index.ts +1 -1
  683. package/src/components/docs/generated/docs-index.mobile-demo-tasks.json +0 -34
@@ -1,4 +1,4 @@
1
- import{CodeBlock as t,InstallCommand as o}from"@contractspec/lib.design-system";import r from"@contractspec/lib.ui-link";import{ChevronRight as l}from"lucide-react";import{jsx as e,jsxs as a}from"react/jsx-runtime";function s(){return a("div",{className:"space-y-8",children:[a("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"Progressive Delivery Library"}),a("p",{className:"text-lg text-muted-foreground",children:["The ",e("code",{children:"@contractspec/lib.progressive-delivery"})," package helps you ship new specs with confidence: canary + blue-green strategies, metric guardrails, and rollback hooks in one place."]})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(o,{package:"@contractspec/lib.progressive-delivery"})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Define a Strategy"}),e(t,{language:"typescript",code:`import { DeploymentCoordinator, createDefaultCanaryController, TrafficShifter, RollbackManager } from '@contractspec/lib.progressive-delivery';
1
+ var i=Object.defineProperty;var n=(t)=>t;function s(t,r){this[t]=n.bind(null,r)}var m=(t,r)=>{for(var o in r)i(t,o,{get:r[o],enumerable:!0,configurable:!0,set:s.bind(r,o)})};var g=(t,r)=>()=>(t&&(r=t(t=0)),r);import{CodeBlock as l,InstallCommand as d}from"@contractspec/lib.design-system";import c from"@contractspec/lib.ui-link";import{ChevronRight as p}from"lucide-react";import{jsx as e,jsxs as a}from"react/jsx-runtime";function u(){return a("div",{className:"space-y-8",children:[a("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"Progressive Delivery Library"}),a("p",{className:"text-lg text-muted-foreground",children:["The ",e("code",{children:"@contractspec/lib.progressive-delivery"})," package helps you ship new specs with confidence: canary + blue-green strategies, metric guardrails, and rollback hooks in one place."]})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(d,{package:"@contractspec/lib.progressive-delivery"})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Define a Strategy"}),e(l,{language:"typescript",code:`import { DeploymentCoordinator, createDefaultCanaryController, TrafficShifter, RollbackManager } from '@contractspec/lib.progressive-delivery';
2
2
 
3
3
  const strategy = {
4
4
  target: { name: 'billing.createInvoice', version: 7 },
@@ -8,7 +8,7 @@ const strategy = {
8
8
  latencyP99: 500,
9
9
  latencyP95: 250,
10
10
  },
11
- };`})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Run the Coordinator"}),e(t,{language:"typescript",code:`const eventBus = new DeploymentEventBus();
11
+ };`})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Run the Coordinator"}),e(l,{language:"typescript",code:`const eventBus = new DeploymentEventBus();
12
12
  const controller = createDefaultCanaryController(strategy, fetchMetrics, eventBus);
13
13
  const coordinator = new DeploymentCoordinator({
14
14
  strategy,
@@ -19,4 +19,4 @@ const coordinator = new DeploymentCoordinator({
19
19
  eventBus,
20
20
  });
21
21
 
22
- const result = await coordinator.run();`}),a("p",{className:"text-muted-foreground text-sm",children:["The coordinator emits ",e("code",{children:"stage_started"}),","," ",e("code",{children:"stage_failed"}),", and ",e("code",{children:"rolled_back"})," events, making it easy to power dashboards or alerting workflows."]})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Blue-Green Swap"}),a("p",{className:"text-muted-foreground text-sm",children:["Switch to ",e("code",{children:"mode: 'blue-green'"})," to warm up the new stack in parallel and cut over once smoke tests pass. The same guardrails apply before the final swap."]})]}),a("div",{className:"flex items-center gap-4 pt-4",children:[e(r,{href:"/docs/libraries",className:"btn-ghost",children:"Back to Libraries"}),a(r,{href:"/docs/libraries/resilience",className:"btn-primary",children:["Next: Resilience ",e(l,{size:16})]})]})]})}export{s as LibrariesProgressiveDeliveryPage};
22
+ const result = await coordinator.run();`}),a("p",{className:"text-muted-foreground text-sm",children:["The coordinator emits ",e("code",{children:"stage_started"}),","," ",e("code",{children:"stage_failed"}),", and ",e("code",{children:"rolled_back"})," events, making it easy to power dashboards or alerting workflows."]})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Blue-Green Swap"}),a("p",{className:"text-muted-foreground text-sm",children:["Switch to ",e("code",{children:"mode: 'blue-green'"})," to warm up the new stack in parallel and cut over once smoke tests pass. The same guardrails apply before the final swap."]})]}),a("div",{className:"flex items-center gap-4 pt-4",children:[e(c,{href:"/docs/libraries",className:"btn-ghost",children:"Back to Libraries"}),a(c,{href:"/docs/libraries/resilience",className:"btn-primary",children:["Next: Resilience ",e(p,{size:16})]})]})]})}export{u as LibrariesProgressiveDeliveryPage};
@@ -1,4 +1,4 @@
1
- import{CodeBlock as a,InstallCommand as r}from"@contractspec/lib.design-system";import i from"@contractspec/lib.ui-link";import{ChevronRight as c}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";function n(){return t("div",{className:"space-y-8",children:[t("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"Resilience Library"}),t("p",{className:"text-lg text-muted-foreground",children:["The ",e("code",{children:"@contractspec/lib.resilience"})," library provides primitives to handle failures gracefully."]})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(r,{package:"@contractspec/lib.resilience"})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Circuit Breaker"}),e("p",{className:"text-muted-foreground",children:"Prevent cascading failures by stopping calls to a failing dependency."}),e(a,{language:"typescript",code:`import { CircuitBreaker } from '@contractspec/lib.resilience/circuit-breaker';
1
+ var o=Object.defineProperty;var s=(t)=>t;function n(t,i){this[t]=s.bind(null,i)}var m=(t,i)=>{for(var r in i)o(t,r,{get:i[r],enumerable:!0,configurable:!0,set:n.bind(i,r)})};var u=(t,i)=>()=>(t&&(i=t(t=0)),i);import{CodeBlock as c,InstallCommand as d}from"@contractspec/lib.design-system";import l from"@contractspec/lib.ui-link";import{ChevronRight as p}from"lucide-react";import{jsx as e,jsxs as a}from"react/jsx-runtime";function g(){return a("div",{className:"space-y-8",children:[a("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"Resilience Library"}),a("p",{className:"text-lg text-muted-foreground",children:["The ",e("code",{children:"@contractspec/lib.resilience"})," library provides primitives to handle failures gracefully."]})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(d,{package:"@contractspec/lib.resilience"})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Circuit Breaker"}),e("p",{className:"text-muted-foreground",children:"Prevent cascading failures by stopping calls to a failing dependency."}),e(c,{language:"typescript",code:`import { CircuitBreaker } from '@contractspec/lib.resilience/circuit-breaker';
2
2
 
3
3
  const breaker = new CircuitBreaker({
4
4
  failureThreshold: 5,
@@ -7,16 +7,16 @@ const breaker = new CircuitBreaker({
7
7
 
8
8
  const result = await breaker.execute(async () => {
9
9
  return await fetch('https://api.stripe.com/v1/charges');
10
- });`})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Retry"}),e("p",{className:"text-muted-foreground",children:"Automatically retry transient failures with exponential backoff."}),e(a,{language:"typescript",code:`import { retry } from '@contractspec/lib.resilience/retry';
10
+ });`})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Retry"}),e("p",{className:"text-muted-foreground",children:"Automatically retry transient failures with exponential backoff."}),e(c,{language:"typescript",code:`import { retry } from '@contractspec/lib.resilience/retry';
11
11
 
12
12
  const result = await retry(
13
13
  async () => fetchUser(id),
14
14
  3, // retries
15
15
  1000, // initial delay
16
16
  true // backoff
17
- );`})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Timeout & Fallback"}),e("p",{className:"text-muted-foreground",children:"Set hard limits on execution time and provide default values on failure."}),e(a,{language:"typescript",code:`import { timeout, fallback } from '@contractspec/lib.resilience';
17
+ );`})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Timeout & Fallback"}),e("p",{className:"text-muted-foreground",children:"Set hard limits on execution time and provide default values on failure."}),e(c,{language:"typescript",code:`import { timeout, fallback } from '@contractspec/lib.resilience';
18
18
 
19
19
  const result = await fallback(
20
20
  () => timeout(slowOperation, 5000),
21
21
  defaultValue
22
- );`})]}),t("div",{className:"flex items-center gap-4 pt-4",children:[e(i,{href:"/docs/libraries",className:"btn-ghost",children:"Back to Libraries"}),t(i,{href:"/docs/libraries/testing",className:"btn-primary",children:["Next: Testing ",e(c,{size:16})]})]})]})}export{n as LibrariesResiliencePage};
22
+ );`})]}),a("div",{className:"flex items-center gap-4 pt-4",children:[e(l,{href:"/docs/libraries",className:"btn-ghost",children:"Back to Libraries"}),a(l,{href:"/docs/libraries/testing",className:"btn-primary",children:["Next: Testing ",e(p,{size:16})]})]})]})}export{g as LibrariesResiliencePage};
@@ -1,4 +1,4 @@
1
- import{CodeBlock as o,InstallCommand as r}from"@contractspec/lib.design-system";import a from"@contractspec/lib.ui-link";import{ChevronRight as n}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";function c(){return t("div",{className:"space-y-8",children:[t("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"Runtime Libraries"}),e("p",{className:"text-muted-foreground",children:"The presentation runtime libraries provide the engine for rendering ContractSpec-defined UIs. They handle state management, validation, step navigation, and component rendering for Workflows and DataViews."})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(r,{package:"@contractspec/lib.presentation-runtime-react"})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Libraries"}),t("div",{className:"space-y-6",children:[t("div",{className:"card-subtle p-6",children:[e("h3",{className:"font-bold text-lg",children:"@contractspec/lib.presentation-runtime-core"}),t("p",{className:"mt-2 text-muted-foreground text-sm",children:[e("strong",{children:"Framework-Agnostic Core"}),". Contains the state machines, validation logic, and navigation rules for workflows. Can be used to build renderers for any platform (Vue, Svelte, CLI)."]})]}),t("div",{className:"card-subtle p-6",children:[e("h3",{className:"font-bold text-lg",children:"@contractspec/lib.presentation-runtime-react"}),t("p",{className:"mt-2 text-muted-foreground text-sm",children:[e("strong",{children:"React Bindings"}),". Hooks (`useWorkflow`) and components (`WorkflowStepper`, `WorkflowStepRenderer`) for React Web applications. Integrates with `ui-kit-web`."]})]}),t("div",{className:"card-subtle p-6",children:[e("h3",{className:"font-bold text-lg",children:"@contractspec/lib.presentation-runtime-react-native"}),t("p",{className:"mt-2 text-muted-foreground text-sm",children:[e("strong",{children:"React Native Bindings"}),". Optimized for mobile experiences. Handles native navigation integration and uses universal components from `ui-kit`."]})]})]})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Example: React Workflow"}),e(o,{language:"tsx",code:`import { useWorkflow, WorkflowStepRenderer } from '@contractspec/lib.presentation-runtime-react';
1
+ var i=Object.defineProperty;var l=(a)=>a;function s(a,o){this[a]=l.bind(null,o)}var p=(a,o)=>{for(var r in o)i(a,r,{get:o[r],enumerable:!0,configurable:!0,set:s.bind(o,r)})};var f=(a,o)=>()=>(a&&(o=a(a=0)),o);import{CodeBlock as c,InstallCommand as d}from"@contractspec/lib.design-system";import n from"@contractspec/lib.ui-link";import{ChevronRight as m}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";function w(){return t("div",{className:"space-y-8",children:[t("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"Runtime Libraries"}),e("p",{className:"text-muted-foreground",children:"The presentation runtime libraries provide the engine for rendering ContractSpec-defined UIs. They handle state management, validation, step navigation, and component rendering for Workflows and DataViews."})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(d,{package:"@contractspec/lib.presentation-runtime-react"})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Libraries"}),t("div",{className:"space-y-6",children:[t("div",{className:"card-subtle p-6",children:[e("h3",{className:"font-bold text-lg",children:"@contractspec/lib.presentation-runtime-core"}),t("p",{className:"mt-2 text-muted-foreground text-sm",children:[e("strong",{children:"Framework-Agnostic Core"}),". Contains the state machines, validation logic, and navigation rules for workflows. Can be used to build renderers for any platform (Vue, Svelte, CLI)."]})]}),t("div",{className:"card-subtle p-6",children:[e("h3",{className:"font-bold text-lg",children:"@contractspec/lib.presentation-runtime-react"}),t("p",{className:"mt-2 text-muted-foreground text-sm",children:[e("strong",{children:"React Bindings"}),". Hooks (`useWorkflow`) and components (`WorkflowStepper`, `WorkflowStepRenderer`) for React Web applications. Integrates with `ui-kit-web`."]})]}),t("div",{className:"card-subtle p-6",children:[e("h3",{className:"font-bold text-lg",children:"@contractspec/lib.presentation-runtime-react-native"}),t("p",{className:"mt-2 text-muted-foreground text-sm",children:[e("strong",{children:"React Native Bindings"}),". Optimized for mobile experiences. Handles native navigation integration and uses universal components from `ui-kit`."]})]})]})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Example: React Workflow"}),e(c,{language:"tsx",code:`import { useWorkflow, WorkflowStepRenderer } from '@contractspec/lib.presentation-runtime-react';
2
2
  import { OnboardingFlow } from './specs/onboarding';
3
3
 
4
4
  export function OnboardingPage() {
@@ -38,4 +38,4 @@ export function OnboardingPage() {
38
38
  </div>
39
39
  </div>
40
40
  );
41
- }`})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Architecture"}),e("p",{className:"text-muted-foreground",children:'The runtime follows a "render-loop" pattern:'}),t("ol",{className:"list-inside list-decimal space-y-2 text-muted-foreground",children:[t("li",{children:[e("strong",{children:"Spec"}),": Defines the flow, fields, and validation rules."]}),t("li",{children:[e("strong",{children:"Core"}),": Tracks current step, data state, and validation errors."]}),t("li",{children:[e("strong",{children:"Renderer"}),": Maps spec fields to UI components (Input, Select, etc.)."]}),t("li",{children:[e("strong",{children:"User"}),": Interacts with components, updating core state."]}),t("li",{children:[e("strong",{children:"Policy"}),": (Optional) Re-evaluates visibility on every change."]})]})]}),t("div",{className:"flex items-center gap-4 pt-4",children:[e(a,{href:"/docs/libraries/data-backend",className:"btn-ghost",children:"Previous: Data & Backend"}),t(a,{href:"/docs/libraries",className:"btn-primary",children:["Back to Libraries ",e(n,{size:16})]})]})]})}export{c as LibrariesRuntimePage};
41
+ }`})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Architecture"}),e("p",{className:"text-muted-foreground",children:'The runtime follows a "render-loop" pattern:'}),t("ol",{className:"list-inside list-decimal space-y-2 text-muted-foreground",children:[t("li",{children:[e("strong",{children:"Spec"}),": Defines the flow, fields, and validation rules."]}),t("li",{children:[e("strong",{children:"Core"}),": Tracks current step, data state, and validation errors."]}),t("li",{children:[e("strong",{children:"Renderer"}),": Maps spec fields to UI components (Input, Select, etc.)."]}),t("li",{children:[e("strong",{children:"User"}),": Interacts with components, updating core state."]}),t("li",{children:[e("strong",{children:"Policy"}),": (Optional) Re-evaluates visibility on every change."]})]})]}),t("div",{className:"card-subtle space-y-3 p-6",children:[e("h2",{className:"font-bold text-2xl",children:"Related reading"}),t("p",{className:"text-muted-foreground",children:["For the full React and React Native layering story across runtime, primitives, and composed components, read"," ",e(n,{href:"/docs/libraries/cross-platform-ui",className:"text-[color:var(--rust)] underline underline-offset-4",children:"Cross-platform UI"}),"."]})]}),t("div",{className:"flex items-center gap-4 pt-4",children:[e(n,{href:"/docs/libraries/data-backend",className:"btn-ghost",children:"Previous: Data & Backend"}),t(n,{href:"/docs/libraries",className:"btn-primary",children:["Back to Libraries ",e(m,{size:16})]})]})]})}export{w as LibrariesRuntimePage};
@@ -1,13 +1,13 @@
1
- import{CodeBlock as a,InstallCommand as i}from"@contractspec/lib.design-system";import o from"@contractspec/lib.ui-link";import{ChevronRight as r}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";function c(){return t("div",{className:"space-y-8",children:[t("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"SLO Library"}),t("p",{className:"text-lg text-muted-foreground",children:[e("code",{children:"@contractspec/lib.slo"})," keeps service level objectives front and center—declarative definitions, rolling snapshots, burn-rate math, and automated incidents."]})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(i,{package:"@contractspec/lib.slo"})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Define Targets"}),e(a,{language:"typescript",code:`const definition: SLODefinition = {
1
+ var s=Object.defineProperty;var l=(a)=>a;function c(a,o){this[a]=l.bind(null,o)}var m=(a,o)=>{for(var i in o)s(a,i,{get:o[i],enumerable:!0,configurable:!0,set:c.bind(o,i)})};var p=(a,o)=>()=>(a&&(o=a(a=0)),o);import{CodeBlock as r,InstallCommand as d}from"@contractspec/lib.design-system";import n from"@contractspec/lib.ui-link";import{ChevronRight as h}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";function u(){return t("div",{className:"space-y-8",children:[t("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"SLO Library"}),t("p",{className:"text-lg text-muted-foreground",children:[e("code",{children:"@contractspec/lib.slo"})," keeps service level objectives front and center—declarative definitions, rolling snapshots, burn-rate math, and automated incidents."]})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(d,{package:"@contractspec/lib.slo"})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Define Targets"}),e(r,{language:"typescript",code:`const definition: SLODefinition = {
2
2
  id: 'billing.createInvoice.availability',
3
3
  targetAvailability: 0.999,
4
4
  latencyP99TargetMs: 500,
5
5
  rollingWindowMs: 7 * 24 * 60 * 60 * 1000,
6
6
  alerts: { fastBurnThreshold: 14, slowBurnThreshold: 6 },
7
- };`})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Monitor Burn Rate"}),e(a,{language:"typescript",code:`const monitor = new SLOMonitor({ definition, incidentManager });
7
+ };`})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Monitor Burn Rate"}),e(r,{language:"typescript",code:`const monitor = new SLOMonitor({ definition, incidentManager });
8
8
  const { snapshot, burnRate } = monitor.recordWindow({
9
9
  good: 12500,
10
10
  bad: 3,
11
11
  latencyP99: 420,
12
12
  latencyP95: 210,
13
- });`}),t("p",{className:"text-muted-foreground text-sm",children:["When burn rate exceeds the configured thresholds the monitor calls your",e("code",{children:"IncidentManager"}),", providing the snapshot that triggered the alert."]})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"History & Reporting"}),e("p",{className:"text-muted-foreground text-sm",children:"`SLOTracker.getHistory()` returns the latest snapshots so dashboards can show trends without hitting a warehouse. Prisma models persist everything for long-term audits."})]}),t("div",{className:"flex items-center gap-4 pt-4",children:[e(o,{href:"/docs/libraries",className:"btn-ghost",children:"Back to Libraries"}),t(o,{href:"/docs/libraries/cost-tracking",className:"btn-primary",children:["Next: Cost Tracking ",e(r,{size:16})]})]})]})}export{c as LibrariesSLOPage};
13
+ });`}),t("p",{className:"text-muted-foreground text-sm",children:["When burn rate exceeds the configured thresholds the monitor calls your",e("code",{children:"IncidentManager"}),", providing the snapshot that triggered the alert."]})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"History & Reporting"}),e("p",{className:"text-muted-foreground text-sm",children:"`SLOTracker.getHistory()` returns the latest snapshots so dashboards can show trends without hitting a warehouse. Prisma models persist everything for long-term audits."})]}),t("div",{className:"flex items-center gap-4 pt-4",children:[e(n,{href:"/docs/libraries",className:"btn-ghost",children:"Back to Libraries"}),t(n,{href:"/docs/libraries/cost-tracking",className:"btn-primary",children:["Next: Cost Tracking ",e(h,{size:16})]})]})]})}export{u as LibrariesSLOPage};
@@ -1,4 +1,4 @@
1
- import{CodeBlock as t,InstallCommand as c}from"@contractspec/lib.design-system";import o from"@contractspec/lib.ui-link";import{ChevronRight as l}from"lucide-react";import{jsx as e,jsxs as a}from"react/jsx-runtime";function n(){return a("div",{className:"space-y-8",children:[a("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"@contractspec/lib.schema"}),e("p",{className:"text-muted-foreground",children:"A small schema dictionary to describe operation I/O once and export to Zod (runtime validation), Pothos (GraphQL type refs), and JSON Schema."})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(c,{package:"@contractspec/lib.schema"})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Core Exports"}),a("ul",{className:"space-y-2 text-muted-foreground",children:[a("li",{children:[e("code",{className:"rounded bg-background/50 px-2 py-1",children:"SchemaModel"}),": Compose fields into typed object models"]}),a("li",{children:[e("code",{className:"rounded bg-background/50 px-2 py-1",children:"ScalarTypeEnum"}),": Common scalar types (NonEmptyString, Email, DateTime, etc.)"]}),a("li",{children:[e("code",{className:"rounded bg-background/50 px-2 py-1",children:"defineEnum"}),": Create type-safe enums"]}),a("li",{children:[e("code",{className:"rounded bg-background/50 px-2 py-1",children:"FieldType"}),": Wrap scalars with Zod/GraphQL/JSON Schema"]})]})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Example: Basic Schema"}),e(t,{language:"typescript",code:`import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
1
+ var d=Object.defineProperty;var m=(t)=>t;function n(t,o){this[t]=m.bind(null,o)}var s=(t,o)=>{for(var c in o)d(t,c,{get:o[c],enumerable:!0,configurable:!0,set:n.bind(o,c)})};var u=(t,o)=>()=>(t&&(o=t(t=0)),o);import{CodeBlock as l,InstallCommand as r}from"@contractspec/lib.design-system";import i from"@contractspec/lib.ui-link";import{ChevronRight as p}from"lucide-react";import{jsx as e,jsxs as a}from"react/jsx-runtime";function f(){return a("div",{className:"space-y-8",children:[a("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"@contractspec/lib.schema"}),e("p",{className:"text-muted-foreground",children:"A small schema dictionary to describe operation I/O once and export to Zod (runtime validation), Pothos (GraphQL type refs), and JSON Schema."})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(r,{package:"@contractspec/lib.schema"})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Core Exports"}),a("ul",{className:"space-y-2 text-muted-foreground",children:[a("li",{children:[e("code",{className:"rounded bg-background/50 px-2 py-1",children:"SchemaModel"}),": Compose fields into typed object models"]}),a("li",{children:[e("code",{className:"rounded bg-background/50 px-2 py-1",children:"ScalarTypeEnum"}),": Common scalar types (NonEmptyString, Email, DateTime, etc.)"]}),a("li",{children:[e("code",{className:"rounded bg-background/50 px-2 py-1",children:"defineEnum"}),": Create type-safe enums"]}),a("li",{children:[e("code",{className:"rounded bg-background/50 px-2 py-1",children:"FieldType"}),": Wrap scalars with Zod/GraphQL/JSON Schema"]})]})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Example: Basic Schema"}),e(l,{language:"typescript",code:`import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
2
2
 
3
3
  export const CreateSpotInput = new SchemaModel({
4
4
  name: 'CreateSpotInput',
@@ -16,7 +16,7 @@ const zodSchema = CreateSpotInput.getZod();
16
16
  const pothosName = CreateSpotInput.getPothosInput();
17
17
 
18
18
  // Get JSON Schema
19
- const jsonSchema = CreateSpotInput.getJsonSchema();`})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Example: Enums"}),e(t,{language:"typescript",code:`import { defineEnum, SchemaModel } from '@contractspec/lib.schema';
19
+ const jsonSchema = CreateSpotInput.getJsonSchema();`})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Example: Enums"}),e(l,{language:"typescript",code:`import { defineEnum, SchemaModel } from '@contractspec/lib.schema';
20
20
 
21
21
  const Weekday = defineEnum('Weekday', [
22
22
  'MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU',
@@ -31,4 +31,4 @@ const RecurrenceRule = new SchemaModel({
31
31
  },
32
32
  byWeekday: { type: Weekday, isOptional: true, isArray: true },
33
33
  },
34
- });`})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Available Scalars"}),a("div",{className:"grid gap-4 md:grid-cols-2",children:[a("div",{className:"card-subtle p-4",children:[e("h3",{className:"mb-2 font-semibold",children:"Strings"}),a("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:e("code",{children:"NonEmptyString()"})}),e("li",{children:e("code",{children:"Email()"})}),e("li",{children:e("code",{children:"PhoneNumber()"})}),e("li",{children:e("code",{children:"CountryCode()"})}),e("li",{children:e("code",{children:"Locale()"})}),e("li",{children:e("code",{children:"TimeZone()"})})]})]}),a("div",{className:"card-subtle p-4",children:[e("h3",{className:"mb-2 font-semibold",children:"Numbers"}),a("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:e("code",{children:"PositiveNumber()"})}),e("li",{children:e("code",{children:"Latitude()"})}),e("li",{children:e("code",{children:"Longitude()"})})]})]}),a("div",{className:"card-subtle p-4",children:[e("h3",{className:"mb-2 font-semibold",children:"Dates & Times"}),a("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:e("code",{children:"Date()"})}),e("li",{children:e("code",{children:"DateTime()"})})]})]}),a("div",{className:"card-subtle p-4",children:[e("h3",{className:"mb-2 font-semibold",children:"Generic"}),a("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:e("code",{children:"String()"})}),e("li",{children:e("code",{children:"JSON()"})})]})]})]})]}),a("div",{className:"flex items-center gap-4 pt-4",children:[e(o,{href:"/docs/libraries/contracts",className:"btn-ghost",children:"Previous: Contracts"}),a(o,{href:"/docs/libraries/ui-kit",className:"btn-primary",children:["Next: UI Kit ",e(l,{size:16})]})]})]})}export{n as LibrariesSchemaPage};
34
+ });`})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Available Scalars"}),a("div",{className:"grid gap-4 md:grid-cols-2",children:[a("div",{className:"card-subtle p-4",children:[e("h3",{className:"mb-2 font-semibold",children:"Strings"}),a("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:e("code",{children:"NonEmptyString()"})}),e("li",{children:e("code",{children:"Email()"})}),e("li",{children:e("code",{children:"PhoneNumber()"})}),e("li",{children:e("code",{children:"CountryCode()"})}),e("li",{children:e("code",{children:"Locale()"})}),e("li",{children:e("code",{children:"TimeZone()"})})]})]}),a("div",{className:"card-subtle p-4",children:[e("h3",{className:"mb-2 font-semibold",children:"Numbers"}),a("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:e("code",{children:"PositiveNumber()"})}),e("li",{children:e("code",{children:"Latitude()"})}),e("li",{children:e("code",{children:"Longitude()"})})]})]}),a("div",{className:"card-subtle p-4",children:[e("h3",{className:"mb-2 font-semibold",children:"Dates & Times"}),a("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:e("code",{children:"Date()"})}),e("li",{children:e("code",{children:"DateTime()"})})]})]}),a("div",{className:"card-subtle p-4",children:[e("h3",{className:"mb-2 font-semibold",children:"Generic"}),a("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:e("code",{children:"String()"})}),e("li",{children:e("code",{children:"JSON()"})})]})]})]})]}),a("div",{className:"flex items-center gap-4 pt-4",children:[e(i,{href:"/docs/libraries/contracts",className:"btn-ghost",children:"Previous: Contracts"}),a(i,{href:"/docs/libraries/ui-kit",className:"btn-primary",children:["Next: UI Kit ",e(p,{size:16})]})]})]})}export{f as LibrariesSchemaPage};
@@ -1,4 +1,4 @@
1
- import{CodeBlock as o,InstallCommand as i}from"@contractspec/lib.design-system";import r from"@contractspec/lib.ui-link";import{ChevronRight as a}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";function c(){return t("div",{className:"space-y-8",children:[t("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"@contractspec/lib.support-bot"}),e("p",{className:"text-lg text-muted-foreground",children:"Build AI-first support flows using drop-in classifiers, knowledge-grounded resolvers, and tone-aware responders—all wired into the agent runner."})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(i,{package:"@contractspec/lib.support-bot"})]}),t("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Wire the primitives"}),e(o,{language:"typescript",code:`import { TicketClassifier, TicketResolver, AutoResponder } from '@contractspec/lib.support-bot';
1
+ var l=Object.defineProperty;var n=(o)=>o;function c(o,r){this[o]=n.bind(null,r)}var m=(o,r)=>{for(var i in r)l(o,i,{get:r[i],enumerable:!0,configurable:!0,set:c.bind(r,i)})};var u=(o,r)=>()=>(o&&(r=o(o=0)),r);import{CodeBlock as a,InstallCommand as p}from"@contractspec/lib.design-system";import s from"@contractspec/lib.ui-link";import{ChevronRight as d}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";function b(){return t("div",{className:"space-y-8",children:[t("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"@contractspec/lib.support-bot"}),e("p",{className:"text-lg text-muted-foreground",children:"Build AI-first support flows using drop-in classifiers, knowledge-grounded resolvers, and tone-aware responders—all wired into the agent runner."})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(p,{package:"@contractspec/lib.support-bot"})]}),t("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Wire the primitives"}),e(a,{language:"typescript",code:`import { TicketClassifier, TicketResolver, AutoResponder } from '@contractspec/lib.support-bot';
2
2
 
3
3
  const classifier = new TicketClassifier();
4
4
  const resolver = new TicketResolver({ knowledge });
@@ -6,7 +6,7 @@ const responder = new AutoResponder();
6
6
 
7
7
  const classification = await classifier.classify(ticket);
8
8
  const resolution = await resolver.resolve(ticket);
9
- const draft = await responder.draft(ticket, resolution, classification);`})]}),t("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Expose as agent tools"}),e(o,{language:"typescript",code:`import { createSupportTools } from '@contractspec/lib.support-bot/bot';
9
+ const draft = await responder.draft(ticket, resolution, classification);`})]}),t("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Expose as agent tools"}),e(a,{language:"typescript",code:`import { createSupportTools } from '@contractspec/lib.support-bot/bot';
10
10
 
11
11
  const tools = createSupportTools({ resolver, classifier, responder });
12
- // Pass these tools into your host runtime or agent adapter.`})]}),t("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Included modules"}),t("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[t("li",{children:[e("strong",{children:"TicketClassifier"}),": heuristics + optional LLM validation for category/priority."]}),t("li",{children:[e("strong",{children:"TicketResolver"}),": RAG resolver that can plug into any knowledge retriever."]}),t("li",{children:[e("strong",{children:"AutoResponder"}),": generates drafts, citations, and tone-aware copy."]}),t("li",{children:[e("strong",{children:"SupportFeedbackLoop"}),": track auto-resolution rates and sentiment trends."]})]})]}),t("div",{className:"flex items-center gap-4 pt-4",children:[e(r,{href:"/docs/libraries",className:"btn-ghost",children:"Back to Libraries"}),t(r,{href:"/docs/libraries/growth",className:"btn-primary",children:["Next: Growth ",e(a,{size:16})]})]})]})}export{c as LibrariesSupportBotPage};
12
+ // Pass these tools into your host runtime or agent adapter.`})]}),t("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Included modules"}),t("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[t("li",{children:[e("strong",{children:"TicketClassifier"}),": heuristics + optional LLM validation for category/priority."]}),t("li",{children:[e("strong",{children:"TicketResolver"}),": RAG resolver that can plug into any knowledge retriever."]}),t("li",{children:[e("strong",{children:"AutoResponder"}),": generates drafts, citations, and tone-aware copy."]}),t("li",{children:[e("strong",{children:"SupportFeedbackLoop"}),": track auto-resolution rates and sentiment trends."]})]})]}),t("div",{className:"flex items-center gap-4 pt-4",children:[e(s,{href:"/docs/libraries",className:"btn-ghost",children:"Back to Libraries"}),t(s,{href:"/docs/libraries/growth",className:"btn-primary",children:["Next: Growth ",e(d,{size:16})]})]})]})}export{b as LibrariesSupportBotPage};
@@ -1,4 +1,4 @@
1
- import{CodeBlock as a,InstallCommand as n}from"@contractspec/lib.design-system";import o from"@contractspec/lib.ui-link";import{ChevronRight as i}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";function d(){return t("div",{className:"space-y-8",children:[t("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"@contractspec/lib.testing"}),e("p",{className:"text-lg text-muted-foreground",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."})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(n,{package:"@contractspec/lib.testing"})]}),t("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Record traffic"}),e(a,{language:"typescript",code:`import {
1
+ var s=Object.defineProperty;var c=(t)=>t;function l(t,a){this[t]=c.bind(null,a)}var m=(t,a)=>{for(var o in a)s(t,o,{get:a[o],enumerable:!0,configurable:!0,set:l.bind(a,o)})};var u=(t,a)=>()=>(t&&(a=t(t=0)),a);import{CodeBlock as n,InstallCommand as d}from"@contractspec/lib.design-system";import i from"@contractspec/lib.ui-link";import{ChevronRight as p}from"lucide-react";import{jsx as e,jsxs as r}from"react/jsx-runtime";function b(){return r("div",{className:"space-y-8",children:[r("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"@contractspec/lib.testing"}),e("p",{className:"text-lg text-muted-foreground",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."})]}),r("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(d,{package:"@contractspec/lib.testing"})]}),r("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Record traffic"}),e(n,{language:"typescript",code:`import {
2
2
  TrafficRecorder,
3
3
  InMemoryTrafficStore,
4
4
  } from '@contractspec/lib.testing/recorder';
@@ -18,7 +18,7 @@ await recorder.record({
18
18
  output,
19
19
  success: true,
20
20
  tenantId: ctx.organizationId ?? undefined,
21
- });`})]}),t("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Generate suites"}),e(a,{language:"typescript",code:`import { GoldenTestGenerator } from '@contractspec/lib.testing';
21
+ });`})]}),r("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Generate suites"}),e(n,{language:"typescript",code:`import { GoldenTestGenerator } from '@contractspec/lib.testing';
22
22
 
23
23
  const generator = new GoldenTestGenerator();
24
24
  const code = generator.generate(snapshots, {
@@ -26,4 +26,4 @@ const code = generator.generate(snapshots, {
26
26
  runnerImport: './tests/run-operation',
27
27
  runnerFunction: 'runOrdersCommand',
28
28
  framework: 'vitest',
29
- });`})]}),t("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"CLI workflow"}),e(a,{language:"bash",code:"contractspec test generate \\\n --operation orders.create \\\n --output tests/orders.create.golden.test.ts \\\n --runner-import ./tests/run-operation \\\n --runner-fn runOrdersCommand \\\n --from-production \\\n --days 7 \\\n --sample-rate 0.05"})]}),e("div",{className:"grid gap-4 md:grid-cols-2",children:[{title:"Framework agnostic",description:"Vitest by default, Jest via `generateJestSuite`, or call `runGoldenTests` manually inside CI."},{title:"Sanitize & sample",description:"Scrub payloads before persistence and control sample rates per operation to stay within compliance limits."}].map((r)=>t("div",{className:"card-subtle space-y-2 p-4",children:[e("h3",{className:"font-semibold text-lg",children:r.title}),e("p",{className:"text-muted-foreground text-sm",children:r.description})]},r.title))}),t("div",{className:"flex items-center gap-4 pt-4",children:[e(o,{href:"/docs/libraries",className:"btn-ghost",children:"Back to Libraries"}),t(o,{href:"/docs/libraries/resilience",className:"btn-primary",children:["Next: Resilience ",e(i,{size:16})]})]})]})}export{d as LibrariesTestingPage};
29
+ });`})]}),r("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"CLI workflow"}),e(n,{language:"bash",code:"contractspec test generate \\\n --operation orders.create \\\n --output tests/orders.create.golden.test.ts \\\n --runner-import ./tests/run-operation \\\n --runner-fn runOrdersCommand \\\n --from-production \\\n --days 7 \\\n --sample-rate 0.05"})]}),e("div",{className:"grid gap-4 md:grid-cols-2",children:[{title:"Framework agnostic",description:"Vitest by default, Jest via `generateJestSuite`, or call `runGoldenTests` manually inside CI."},{title:"Sanitize & sample",description:"Scrub payloads before persistence and control sample rates per operation to stay within compliance limits."}].map((t)=>r("div",{className:"card-subtle space-y-2 p-4",children:[e("h3",{className:"font-semibold text-lg",children:t.title}),e("p",{className:"text-muted-foreground text-sm",children:t.description})]},t.title))}),r("div",{className:"flex items-center gap-4 pt-4",children:[e(i,{href:"/docs/libraries",className:"btn-ghost",children:"Back to Libraries"}),r(i,{href:"/docs/libraries/resilience",className:"btn-primary",children:["Next: Resilience ",e(p,{size:16})]})]})]})}export{b as LibrariesTestingPage};
@@ -1,19 +1,45 @@
1
- import{CodeBlock as a,InstallCommand as l}from"@contractspec/lib.design-system";import i from"@contractspec/lib.ui-link";import{ChevronRight as o}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";function c(){return t("div",{className:"space-y-8",children:[t("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"@contractspec/lib.ui-kit"}),t("p",{className:"text-muted-foreground",children:["Universal UI components for React Native and Web, built on top of",e("code",{children:"nativewind"})," and ",e("code",{children:"@rn-primitives"}),"."]})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(l,{package:"@contractspec/lib.ui-kit"})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Key Features"}),t("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[t("li",{children:[e("strong",{children:"Universal"}),": Components render natively on iOS/Android and as standard HTML on web"]}),t("li",{children:[e("strong",{children:"Styled with NativeWind"}),": Uses Tailwind CSS classes for styling"]}),t("li",{children:[e("strong",{children:"Accessible"}),": Leverages ",e("code",{children:"@rn-primitives"})," ","(Radix UI for Native)"]}),t("li",{children:[e("strong",{children:"Atomic Design"}),": Exports atoms, molecules, and organisms"]})]})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Example Usage"}),e(a,{language:"tsx",code:`import { Button } from '@contractspec/lib.ui-kit/ui/button';
2
- import { Text } from '@contractspec/lib.ui-kit/ui/text';
3
- import { Card, CardHeader, CardTitle, CardContent } from '@contractspec/lib.ui-kit/ui/card';
1
+ var r=Object.defineProperty;var n=(a)=>a;function c(a,o){this[a]=n.bind(null,o)}var u=(a,o)=>{for(var l in o)r(a,l,{get:o[l],enumerable:!0,configurable:!0,set:c.bind(o,l)})};var h=(a,o)=>()=>(a&&(o=a(a=0)),o);import{CodeBlock as d,InstallCommand as s}from"@contractspec/lib.design-system";import i from"@contractspec/lib.ui-link";import{ChevronRight as m}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";var p=`import { DataTable } from '@contractspec/lib.ui-kit/ui/data-table';
2
+ import { useContractTable } from '@contractspec/lib.presentation-runtime-react';
3
+
4
+ import { SHOWCASE_ROWS } from '@contractspec/example.data-grid-showcase/ui/data-grid-showcase.data';
5
+ import { useShowcaseColumns } from '@contractspec/example.data-grid-showcase/ui/data-grid-showcase.columns';
6
+ import {
7
+ ExpandedRowContent,
8
+ ShowcaseToolbar,
9
+ } from '@contractspec/example.data-grid-showcase/ui/data-grid-showcase.parts';
10
+
11
+ export function NativeAccountGrid() {
12
+ const columns = useShowcaseColumns();
13
+
14
+ const controller = useContractTable({
15
+ data: SHOWCASE_ROWS,
16
+ columns,
17
+ selectionMode: 'single',
18
+ initialState: {
19
+ sorting: [{ id: 'arr', desc: true }],
20
+ pagination: { pageIndex: 0, pageSize: 4 },
21
+ columnVisibility: { notes: false },
22
+ columnPinning: { left: ['account'], right: [] },
23
+ },
24
+ renderExpandedContent: (row) => <ExpandedRowContent row={row} />,
25
+ getCanExpand: () => true,
26
+ });
4
27
 
5
- export function MyComponent() {
6
28
  return (
7
- <Card className="w-full max-w-md">
8
- <CardHeader>
9
- <CardTitle>Welcome</CardTitle>
10
- </CardHeader>
11
- <CardContent className="gap-4">
12
- <Text>This works on Web and Native.</Text>
13
- <Button onPress={() => console.log('Clicked!')}>
14
- Click me
15
- </Button>
16
- </CardContent>
17
- </Card>
29
+ <DataTable
30
+ controller={controller}
31
+ toolbar={
32
+ <ShowcaseToolbar
33
+ controller={controller}
34
+ label="Native primitive"
35
+ primaryColumnId="account"
36
+ toggleColumnId="notes"
37
+ pinColumnId="owner"
38
+ sortColumnIds={['arr', 'renewalDate']}
39
+ />
40
+ }
41
+ loading={false}
42
+ footer={\`Rows \${controller.rows.length}\`}
43
+ />
18
44
  );
19
- }`})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Core Components"}),t("div",{className:"grid gap-4 md:grid-cols-3",children:[t("div",{className:"card-subtle p-4",children:[e("h3",{className:"mb-2 font-semibold",children:"Form Controls"}),t("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:"Button"}),e("li",{children:"Input"}),e("li",{children:"Checkbox"}),e("li",{children:"Switch"}),e("li",{children:"Select"})]})]}),t("div",{className:"card-subtle p-4",children:[e("h3",{className:"mb-2 font-semibold",children:"Layout"}),t("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:"Card"}),e("li",{children:"Stack"}),e("li",{children:"Separator"}),e("li",{children:"Sheet"})]})]}),t("div",{className:"card-subtle p-4",children:[e("h3",{className:"mb-2 font-semibold",children:"Feedback"}),t("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:"Alert"}),e("li",{children:"Skeleton"}),e("li",{children:"Progress"}),e("li",{children:"Tooltip"})]})]})]})]}),t("div",{className:"flex items-center gap-4 pt-4",children:[e(i,{href:"/docs/libraries/schema",className:"btn-ghost",children:"Previous: Schema"}),t(i,{href:"/docs/libraries/design-system",className:"btn-primary",children:["Next: Design System ",e(o,{size:16})]})]})]})}export{c as LibrariesUIKitPage};
45
+ }`;function N(){return t("div",{className:"space-y-8",children:[t("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"@contractspec/lib.ui-kit"}),t("p",{className:"text-muted-foreground",children:["Universal UI components for React Native and Web, built on top of",e("code",{children:"nativewind"})," and ",e("code",{children:"@rn-primitives"}),"."]})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(s,{package:"@contractspec/lib.ui-kit"})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Key Features"}),t("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[t("li",{children:[e("strong",{children:"Universal"}),": Components render natively on iOS/Android and as standard HTML on web"]}),t("li",{children:[e("strong",{children:"Styled with NativeWind"}),": Uses Tailwind CSS classes for styling"]}),t("li",{children:[e("strong",{children:"Accessible"}),": Leverages ",e("code",{children:"@rn-primitives"})," ","(Radix UI for Native)"]}),t("li",{children:[e("strong",{children:"Atomic Design"}),": Exports atoms, molecules, and organisms"]})]})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Data table example"}),t("p",{className:"text-muted-foreground",children:["The canonical"," ",e(i,{href:"/docs/examples/data-grid-showcase",className:"text-[color:var(--rust)] underline underline-offset-4",children:"Data Grid Showcase"})," ","uses ",e("code",{children:"@contractspec/lib.ui-kit/ui/data-table"})," as the native-first primitive lane. It shares the same controller model as the web renderer while keeping the React Native / Expo surface explicit."]}),e(d,{language:"tsx",code:p})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Core Components"}),t("div",{className:"grid gap-4 md:grid-cols-3",children:[t("div",{className:"card-subtle p-4",children:[e("h3",{className:"mb-2 font-semibold",children:"Form Controls"}),t("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:"Button"}),e("li",{children:"Input"}),e("li",{children:"Checkbox"}),e("li",{children:"Switch"}),e("li",{children:"Select"})]})]}),t("div",{className:"card-subtle p-4",children:[e("h3",{className:"mb-2 font-semibold",children:"Layout"}),t("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:"Card"}),e("li",{children:"Stack"}),e("li",{children:"Separator"}),e("li",{children:"Sheet"})]})]}),t("div",{className:"card-subtle p-4",children:[e("h3",{className:"mb-2 font-semibold",children:"Feedback"}),t("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:"Alert"}),e("li",{children:"Skeleton"}),e("li",{children:"Progress"}),e("li",{children:"Tooltip"})]})]})]})]}),t("div",{className:"card-subtle space-y-3 p-6",children:[e("h2",{className:"font-bold text-2xl",children:"Where this layer fits"}),t("p",{className:"text-muted-foreground",children:["Read"," ",e(i,{href:"/docs/libraries/cross-platform-ui",className:"text-[color:var(--rust)] underline underline-offset-4",children:"Cross-platform UI"})," ","for the full React and React Native compatibility model around this native-first primitive lane."]})]}),t("div",{className:"flex items-center gap-4 pt-4",children:[e(i,{href:"/docs/libraries/schema",className:"btn-ghost",children:"Previous: Schema"}),t(i,{href:"/docs/libraries/ui-kit-web",className:"btn-primary",children:["Next: UI Kit Web ",e(m,{size:16})]})]})]})}export{N as LibrariesUIKitPage};
@@ -0,0 +1,46 @@
1
+ var n=Object.defineProperty;var l=(a)=>a;function s(a,i){this[a]=l.bind(null,i)}var u=(a,i)=>{for(var r in i)n(a,r,{get:i[r],enumerable:!0,configurable:!0,set:s.bind(i,r)})};var h=(a,i)=>()=>(a&&(i=a(a=0)),i);import{CodeBlock as c,InstallCommand as d}from"@contractspec/lib.design-system";import o from"@contractspec/lib.ui-link";import{ChevronRight as m}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";var p=`import { DataTable } from '@contractspec/lib.ui-kit-web/ui/data-table';
2
+ import { useContractTable } from '@contractspec/lib.presentation-runtime-react';
3
+
4
+ import { SHOWCASE_ROWS } from '@contractspec/example.data-grid-showcase/ui/data-grid-showcase.data';
5
+ import { useShowcaseColumns } from '@contractspec/example.data-grid-showcase/ui/data-grid-showcase.columns';
6
+ import {
7
+ ExpandedRowContent,
8
+ ShowcaseToolbar,
9
+ } from '@contractspec/example.data-grid-showcase/ui/data-grid-showcase.parts';
10
+
11
+ export function WebAccountGrid() {
12
+ const columns = useShowcaseColumns();
13
+
14
+ const controller = useContractTable({
15
+ data: SHOWCASE_ROWS,
16
+ columns,
17
+ selectionMode: 'single',
18
+ initialState: {
19
+ sorting: [{ id: 'lastActivityAt', desc: true }],
20
+ pagination: { pageIndex: 0, pageSize: 4 },
21
+ columnVisibility: { notes: false },
22
+ columnPinning: { left: ['account'], right: [] },
23
+ },
24
+ renderExpandedContent: (row) => <ExpandedRowContent row={row} />,
25
+ getCanExpand: () => true,
26
+ });
27
+
28
+ return (
29
+ <DataTable
30
+ controller={controller}
31
+ toolbar={
32
+ <ShowcaseToolbar
33
+ controller={controller}
34
+ label="Web primitive"
35
+ primaryColumnId="account"
36
+ toggleColumnId="notes"
37
+ pinColumnId="owner"
38
+ sortColumnIds={['arr', 'renewalDate']}
39
+ />
40
+ }
41
+ loading={false}
42
+ emptyState={<div>No rows available.</div>}
43
+ footer={\`Rows \${controller.totalItems}\`}
44
+ />
45
+ );
46
+ }`;function v(){return t("div",{className:"space-y-8",children:[t("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"@contractspec/lib.ui-kit-web"}),e("p",{className:"text-muted-foreground",children:"Web-first React and Next primitives for ContractSpec. The canonical data-table example uses this package to render the raw browser table layer directly, without the design-system shell on top."})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(d,{package:"@contractspec/lib.ui-kit-web"})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Data table example"}),t("p",{className:"text-muted-foreground",children:["This is the raw browser lane from the canonical"," ",e(o,{href:"/docs/examples/data-grid-showcase",className:"text-[color:var(--rust)] underline underline-offset-4",children:"Data Grid Showcase"}),". It demonstrates the primitive renderer with sorting, pagination, single selection, column visibility, column resizing, left/right pinning, row expansion, loading, and empty-state slots."]}),e(c,{language:"tsx",filename:"web-account-grid.tsx",code:p})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"What this layer owns"}),t("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[e("li",{children:"The raw table renderer and browser interaction model."}),e("li",{children:"Pagination, column visibility menus, pin menus, resize handles, and empty/loading states."}),e("li",{children:"Accessibility helpers and other web-specific primitives that stay outside the native-first package."})]})]}),t("div",{className:"card-subtle space-y-3 p-6",children:[e("h2",{className:"font-bold text-2xl",children:"Where this layer fits"}),t("p",{className:"text-muted-foreground",children:["Read"," ",e(o,{href:"/docs/libraries/cross-platform-ui",className:"text-[color:var(--rust)] underline underline-offset-4",children:"Cross-platform UI"})," ","for the shared runtime story behind the web and native render lanes."]})]}),t("div",{className:"flex items-center gap-4 pt-4",children:[e(o,{href:"/docs/libraries/ui-kit",className:"btn-ghost",children:"Previous: UI Kit"}),t(o,{href:"/docs/libraries/design-system",className:"btn-primary",children:["Next: Design System ",e(m,{size:16})]})]})]})}export{v as LibrariesUIKitWebPage};
@@ -1,4 +1,4 @@
1
- import{CodeBlock as a,InstallCommand as i}from"@contractspec/lib.design-system";import t from"@contractspec/lib.ui-link";import{ChevronRight as l}from"lucide-react";import{jsx as e,jsxs as o}from"react/jsx-runtime";function s(){return o("div",{className:"space-y-8",children:[o("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"Workflow Composer"}),e("p",{className:"text-lg text-muted-foreground",children:"`@contractspec/lib.workflow-composer` injects tenant-/role-/device-specific steps into base WorkflowSpecs and keeps transitions valid."})]}),o("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(i,{package:"@contractspec/lib.workflow-composer"})]}),o("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Register extensions"}),e(a,{language:"typescript",code:`const composer = new WorkflowComposer();
1
+ var n=Object.defineProperty;var c=(o)=>o;function s(o,a){this[o]=c.bind(null,a)}var d=(o,a)=>{for(var i in a)n(o,i,{get:a[i],enumerable:!0,configurable:!0,set:s.bind(a,i)})};var f=(o,a)=>()=>(o&&(a=o(o=0)),a);import{CodeBlock as l,InstallCommand as p}from"@contractspec/lib.design-system";import r from"@contractspec/lib.ui-link";import{ChevronRight as m}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";function g(){return t("div",{className:"space-y-8",children:[t("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"Workflow Composer"}),e("p",{className:"text-lg text-muted-foreground",children:"`@contractspec/lib.workflow-composer` injects tenant-/role-/device-specific steps into base WorkflowSpecs and keeps transitions valid."})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(p,{package:"@contractspec/lib.workflow-composer"})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Register extensions"}),e(l,{language:"typescript",code:`const composer = new WorkflowComposer();
2
2
 
3
3
  composer.register({
4
4
  workflow: 'billing.invoiceApproval',
@@ -15,9 +15,9 @@ composer.register({
15
15
  },
16
16
  ],
17
17
  hiddenSteps: ['internal-audit'],
18
- });`})]}),o("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Compose at runtime"}),e(a,{language:"typescript",code:`const tenantWorkflow = composer.compose({
18
+ });`})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Compose at runtime"}),e(l,{language:"typescript",code:`const tenantWorkflow = composer.compose({
19
19
  base: BaseInvoiceWorkflow,
20
20
  tenantId: 'acme',
21
21
  });
22
22
 
23
- workflowRunner.execute(tenantWorkflow, ctx);`})]}),o("div",{className:"flex items-center gap-4 pt-4",children:[e(t,{href:"/docs/libraries",className:"btn-ghost",children:"Back to Libraries"}),o(t,{href:"/docs/libraries/workflows",className:"btn-primary",children:["Next: Workflow Runtime ",e(l,{size:16})]})]})]})}export{s as LibrariesWorkflowComposerPage};
23
+ workflowRunner.execute(tenantWorkflow, ctx);`})]}),t("div",{className:"flex items-center gap-4 pt-4",children:[e(r,{href:"/docs/libraries",className:"btn-ghost",children:"Back to Libraries"}),t(r,{href:"/docs/libraries/workflows",className:"btn-primary",children:["Next: Workflow Runtime ",e(m,{size:16})]})]})]})}export{g as LibrariesWorkflowComposerPage};
@@ -1,4 +1,4 @@
1
- import{CodeBlock as r,InstallCommand as a}from"@contractspec/lib.design-system";import t from"@contractspec/lib.ui-link";import{ChevronRight as c}from"lucide-react";import{jsx as e,jsxs as o}from"react/jsx-runtime";function d(){return o("div",{className:"space-y-8",children:[o("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"Workflow Runtime Library"}),o("p",{className:"text-lg text-muted-foreground",children:["The ",e("code",{children:"@contractspec/lib.contracts-spec/workflow"})," library provides the core ",e("code",{children:"WorkflowRunner"})," for executing stateful, durable workflows."]})]}),o("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(a,{package:"@contractspec/lib.contracts-spec"})]}),o("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"WorkflowRunner"}),e("p",{className:"text-muted-foreground",children:"The runner manages execution state, step transitions, retries, and compensation."}),e(r,{language:"typescript",code:`import { WorkflowRunner } from '@contractspec/lib.contracts-spec/workflow/runner';
1
+ var l=Object.defineProperty;var i=(t)=>t;function n(t,r){this[t]=i.bind(null,r)}var m=(t,r)=>{for(var a in r)l(t,a,{get:r[a],enumerable:!0,configurable:!0,set:n.bind(r,a)})};var u=(t,r)=>()=>(t&&(r=t(t=0)),r);import{CodeBlock as d,InstallCommand as s}from"@contractspec/lib.design-system";import c from"@contractspec/lib.ui-link";import{ChevronRight as p}from"lucide-react";import{jsx as e,jsxs as o}from"react/jsx-runtime";function g(){return o("div",{className:"space-y-8",children:[o("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"Workflow Runtime Library"}),o("p",{className:"text-lg text-muted-foreground",children:["The ",e("code",{children:"@contractspec/lib.contracts-spec/workflow"})," library provides the core ",e("code",{children:"WorkflowRunner"})," for executing stateful, durable workflows."]})]}),o("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(s,{package:"@contractspec/lib.contracts-spec"})]}),o("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"WorkflowRunner"}),e("p",{className:"text-muted-foreground",children:"The runner manages execution state, step transitions, retries, and compensation."}),e(d,{language:"typescript",code:`import { WorkflowRunner } from '@contractspec/lib.contracts-spec/workflow/runner';
2
2
  import { InMemoryStateStore } from '@contractspec/lib.contracts-spec/workflow/adapters/memory-store';
3
3
  import { WorkflowRegistry } from '@contractspec/lib.contracts-spec/workflow/spec';
4
4
 
@@ -18,4 +18,4 @@ const runner = new WorkflowRunner({
18
18
  const workflowId = await runner.start('my.workflow', 1, { userId: '123' });
19
19
 
20
20
  // Execute next step (usually called by a worker or queue consumer)
21
- await runner.executeStep(workflowId);`})]}),o("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"State Persistence"}),o("p",{className:"text-muted-foreground",children:["The runner relies on a ",e("code",{children:"StateStore"})," to persist workflow execution history. ContractSpec ships with:"]}),o("ul",{className:"list-disc space-y-2 pl-6 text-muted-foreground",children:[o("li",{children:[e("code",{children:"InMemoryStateStore"})," - for testing and development."]}),o("li",{children:[e("code",{children:"PrismaStateStore"})," - for production using Prisma ORM."]})]})]}),o("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Events"}),e("p",{className:"text-muted-foreground",children:"The runner emits events that you can subscribe to for monitoring:"}),o("ul",{className:"list-disc space-y-2 pl-6 text-muted-foreground",children:[e("li",{children:e("code",{children:"workflow.started"})}),e("li",{children:e("code",{children:"workflow.step_completed"})}),e("li",{children:e("code",{children:"workflow.step_failed"})}),e("li",{children:e("code",{children:"workflow.step_retrying"})}),e("li",{children:e("code",{children:"workflow.completed"})}),e("li",{children:e("code",{children:"workflow.cancelled"})}),e("li",{children:e("code",{children:"workflow.compensation_step_completed"})})]})]}),o("div",{className:"flex items-center gap-4 pt-4",children:[e(t,{href:"/docs/libraries",className:"btn-ghost",children:"Back to Libraries"}),o(t,{href:"/docs/libraries/data-views",className:"btn-primary",children:["Next: Data Views ",e(c,{size:16})]})]})]})}export{d as LibrariesWorkflowsPage};
21
+ await runner.executeStep(workflowId);`})]}),o("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"State Persistence"}),o("p",{className:"text-muted-foreground",children:["The runner relies on a ",e("code",{children:"StateStore"})," to persist workflow execution history. ContractSpec ships with:"]}),o("ul",{className:"list-disc space-y-2 pl-6 text-muted-foreground",children:[o("li",{children:[e("code",{children:"InMemoryStateStore"})," - for testing and development."]}),o("li",{children:[e("code",{children:"PrismaStateStore"})," - for production using Prisma ORM."]})]})]}),o("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Events"}),e("p",{className:"text-muted-foreground",children:"The runner emits events that you can subscribe to for monitoring:"}),o("ul",{className:"list-disc space-y-2 pl-6 text-muted-foreground",children:[e("li",{children:e("code",{children:"workflow.started"})}),e("li",{children:e("code",{children:"workflow.step_completed"})}),e("li",{children:e("code",{children:"workflow.step_failed"})}),e("li",{children:e("code",{children:"workflow.step_retrying"})}),e("li",{children:e("code",{children:"workflow.completed"})}),e("li",{children:e("code",{children:"workflow.cancelled"})}),e("li",{children:e("code",{children:"workflow.compensation_step_completed"})})]})]}),o("div",{className:"flex items-center gap-4 pt-4",children:[e(c,{href:"/docs/libraries",className:"btn-ghost",children:"Back to Libraries"}),o(c,{href:"/docs/libraries/data-views",className:"btn-primary",children:["Next: Data Views ",e(p,{size:16})]})]})]})}export{g as LibrariesWorkflowsPage};