@contractspec/bundle.library 3.4.2 → 3.5.0

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 (479) hide show
  1. package/.turbo/turbo-build.log +494 -488
  2. package/CHANGELOG.md +61 -0
  3. package/dist/application/index.js +8 -8
  4. package/dist/application/mcp/cliMcp.js +8 -8
  5. package/dist/application/mcp/contractsMcp.js +8 -8
  6. package/dist/application/mcp/docsMcp.js +8 -8
  7. package/dist/application/mcp/index.js +8 -8
  8. package/dist/application/mcp/internalMcp.js +8 -8
  9. package/dist/application/mcp/providerRankingMcp.js +8 -8
  10. package/dist/bundles/LibraryBundle.d.ts +126 -0
  11. package/dist/bundles/LibraryBundle.js +139 -0
  12. package/dist/bundles/index.d.ts +1 -0
  13. package/dist/bundles/index.js +139 -0
  14. package/dist/components/docs/DocsIndexPage.js +91 -91
  15. package/dist/components/docs/advanced/AdvancedMCPPage.js +125 -125
  16. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +49 -49
  17. package/dist/components/docs/advanced/AdvancedRenderersPage.js +51 -51
  18. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +35 -35
  19. package/dist/components/docs/advanced/AdvancedTelemetryPage.js +177 -177
  20. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +45 -45
  21. package/dist/components/docs/advanced/index.js +482 -482
  22. package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +107 -107
  23. package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +73 -73
  24. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +117 -117
  25. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +175 -175
  26. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +71 -71
  27. package/dist/components/docs/architecture/ArchitectureOverviewPage.js +205 -205
  28. package/dist/components/docs/architecture/index.js +748 -748
  29. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +117 -117
  30. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +111 -111
  31. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +117 -117
  32. package/dist/components/docs/comparison/ComparisonOverviewPage.js +97 -97
  33. package/dist/components/docs/comparison/ComparisonWindmillPage.js +125 -125
  34. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +171 -171
  35. package/dist/components/docs/comparison/index.js +738 -738
  36. package/dist/components/docs/ecosystem/IntegrationsPage.js +45 -45
  37. package/dist/components/docs/ecosystem/PluginsPage.js +73 -73
  38. package/dist/components/docs/ecosystem/RegistryPage.js +37 -37
  39. package/dist/components/docs/ecosystem/TemplatesPage.js +56 -56
  40. package/dist/components/docs/ecosystem/index.js +211 -211
  41. package/dist/components/docs/examples/DocsExamplesPage.js +21 -21
  42. package/dist/components/docs/examples/index.js +21 -21
  43. package/dist/components/docs/getting-started/CLIPage.js +95 -95
  44. package/dist/components/docs/getting-started/CompatibilityPage.js +81 -81
  45. package/dist/components/docs/getting-started/DataViewTutorialPage.js +57 -57
  46. package/dist/components/docs/getting-started/DeveloperToolsPage.js +61 -61
  47. package/dist/components/docs/getting-started/HelloWorldPage.js +77 -77
  48. package/dist/components/docs/getting-started/InstallationPage.js +65 -65
  49. package/dist/components/docs/getting-started/StartHerePage.js +51 -51
  50. package/dist/components/docs/getting-started/TroubleshootingPage.js +73 -73
  51. package/dist/components/docs/getting-started/VSCodeExtensionPage.js +171 -171
  52. package/dist/components/docs/getting-started/index.js +731 -731
  53. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +80 -80
  54. package/dist/components/docs/guides/GuideContractTypesPage.js +232 -232
  55. package/dist/components/docs/guides/GuideDocsPipelinePage.js +82 -82
  56. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +84 -84
  57. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +324 -324
  58. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +106 -106
  59. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +78 -78
  60. package/dist/components/docs/guides/GuidesIndexPage.js +43 -43
  61. package/dist/components/docs/guides/index.js +975 -975
  62. package/dist/components/docs/index.js +10791 -10791
  63. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +17 -17
  64. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +47 -47
  65. package/dist/components/docs/integrations/IntegrationsGithubPage.js +61 -61
  66. package/dist/components/docs/integrations/IntegrationsGmailPage.js +49 -49
  67. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +33 -33
  68. package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +65 -65
  69. package/dist/components/docs/integrations/IntegrationsMistralPage.js +69 -69
  70. package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +65 -65
  71. package/dist/components/docs/integrations/IntegrationsOverviewPage.js +313 -313
  72. package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +101 -101
  73. package/dist/components/docs/integrations/IntegrationsPowensPage.js +121 -121
  74. package/dist/components/docs/integrations/IntegrationsQdrantPage.js +49 -49
  75. package/dist/components/docs/integrations/IntegrationsResendPage.js +45 -45
  76. package/dist/components/docs/integrations/IntegrationsS3Page.js +57 -57
  77. package/dist/components/docs/integrations/IntegrationsSlackPage.js +63 -63
  78. package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +139 -139
  79. package/dist/components/docs/integrations/IntegrationsStripePage.js +159 -159
  80. package/dist/components/docs/integrations/IntegrationsTwilioPage.js +61 -61
  81. package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +63 -63
  82. package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +65 -65
  83. package/dist/components/docs/integrations/index.js +1642 -1642
  84. package/dist/components/docs/intent/ContractFirstApiPage.js +51 -51
  85. package/dist/components/docs/intent/DeterministicCodegenPage.js +59 -59
  86. package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +85 -85
  87. package/dist/components/docs/intent/OpenapiAlternativePage.js +91 -91
  88. package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +59 -59
  89. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +51 -51
  90. package/dist/components/docs/intent/index.js +396 -396
  91. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +371 -371
  92. package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +79 -79
  93. package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +185 -185
  94. package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +187 -187
  95. package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +141 -141
  96. package/dist/components/docs/knowledge/index.js +963 -963
  97. package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +85 -85
  98. package/dist/components/docs/libraries/LibrariesAiAgentPage.js +63 -63
  99. package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +33 -33
  100. package/dist/components/docs/libraries/LibrariesContentGenPage.js +43 -43
  101. package/dist/components/docs/libraries/LibrariesContractsPage.js +125 -125
  102. package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +45 -45
  103. package/dist/components/docs/libraries/LibrariesDataBackendPage.js +69 -69
  104. package/dist/components/docs/libraries/LibrariesDataViewsPage.js +79 -79
  105. package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +129 -129
  106. package/dist/components/docs/libraries/LibrariesEvolutionPage.js +49 -49
  107. package/dist/components/docs/libraries/LibrariesGraphQLPage.js +73 -73
  108. package/dist/components/docs/libraries/LibrariesGrowthPage.js +35 -35
  109. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +43 -43
  110. package/dist/components/docs/libraries/LibrariesObservabilityPage.js +53 -53
  111. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +45 -45
  112. package/dist/components/docs/libraries/LibrariesOverviewPage.js +191 -191
  113. package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +47 -47
  114. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +53 -53
  115. package/dist/components/docs/libraries/LibrariesResiliencePage.js +49 -49
  116. package/dist/components/docs/libraries/LibrariesRuntimePage.js +87 -87
  117. package/dist/components/docs/libraries/LibrariesSLOPage.js +47 -47
  118. package/dist/components/docs/libraries/LibrariesSchemaPage.js +139 -139
  119. package/dist/components/docs/libraries/LibrariesSupportBotPage.js +57 -57
  120. package/dist/components/docs/libraries/LibrariesTestingPage.js +49 -49
  121. package/dist/components/docs/libraries/LibrariesUIKitPage.js +107 -107
  122. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +35 -35
  123. package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +89 -89
  124. package/dist/components/docs/libraries/index.js +1919 -1919
  125. package/dist/components/docs/manifesto/ManifestoPage.js +79 -79
  126. package/dist/components/docs/ops/AutoEvolutionOpsPage.js +59 -59
  127. package/dist/components/docs/ops/DistributedTracingOpsPage.js +33 -33
  128. package/dist/components/docs/ops/index.js +92 -92
  129. package/dist/components/docs/reference/DocsMarkdownContent.js +27 -27
  130. package/dist/components/docs/reference/DocsReferenceContent.js +34 -34
  131. package/dist/components/docs/reference/DocsReferenceIndexClient.js +23 -23
  132. package/dist/components/docs/reference/DocsReferenceIndexPage.js +26 -26
  133. package/dist/components/docs/reference/DocsReferencePage.js +37 -37
  134. package/dist/components/docs/reference/index.js +63 -63
  135. package/dist/components/docs/safety/SafetyAuditingPage.js +161 -161
  136. package/dist/components/docs/safety/SafetyMigrationsPage.js +169 -169
  137. package/dist/components/docs/safety/SafetyOverviewPage.js +99 -99
  138. package/dist/components/docs/safety/SafetyPDPPage.js +137 -137
  139. package/dist/components/docs/safety/SafetySecurityTrustPage.js +95 -95
  140. package/dist/components/docs/safety/SafetySigningPage.js +39 -39
  141. package/dist/components/docs/safety/SafetyTenantIsolationPage.js +33 -33
  142. package/dist/components/docs/safety/index.js +733 -733
  143. package/dist/components/docs/shared/StudioPrompt.js +9 -9
  144. package/dist/components/docs/specs/SpecsCapabilitiesPage.js +61 -61
  145. package/dist/components/docs/specs/SpecsDataViewsPage.js +119 -119
  146. package/dist/components/docs/specs/SpecsOverlaysPage.js +171 -171
  147. package/dist/components/docs/specs/SpecsOverviewPage.js +167 -167
  148. package/dist/components/docs/specs/SpecsPolicyPage.js +179 -179
  149. package/dist/components/docs/specs/SpecsWorkflowsPage.js +141 -141
  150. package/dist/components/docs/specs/index.js +838 -838
  151. package/dist/components/docs/studio/StudioBYOKPage.js +9 -9
  152. package/dist/components/docs/studio/StudioDeploymentsPage.js +9 -9
  153. package/dist/components/docs/studio/StudioGettingStartedPage.js +9 -9
  154. package/dist/components/docs/studio/StudioIntegrationsPage.js +9 -9
  155. package/dist/components/docs/studio/StudioOverviewPage.js +33 -33
  156. package/dist/components/docs/studio/StudioVisualBuilderPage.js +9 -9
  157. package/dist/components/docs/studio/index.js +78 -78
  158. package/dist/components/integrations/index.js +209 -209
  159. package/dist/components/integrations/molecules/IntegrationCard.js +33 -33
  160. package/dist/components/integrations/organisms/IntegrationMarketplace.js +71 -71
  161. package/dist/components/integrations/organisms/IntegrationSettings.js +98 -98
  162. package/dist/components/integrations/organisms/KnowledgeSourceList.js +40 -40
  163. package/dist/components/legal/PrivacyTemplate.js +477 -477
  164. package/dist/components/legal/TermsTemplate.js +421 -421
  165. package/dist/components/legal/index.js +898 -898
  166. package/dist/components/shared/FeatureGateNotice.js +13 -13
  167. package/dist/components/shared/index.js +13 -13
  168. package/dist/components/shell/WorkspaceHeader.js +37 -37
  169. package/dist/components/shell/WorkspaceProjectShellLayout.js +77 -77
  170. package/dist/components/shell/WorkspaceShellRenderer.d.ts +17 -0
  171. package/dist/components/shell/WorkspaceShellRenderer.js +229 -0
  172. package/dist/components/shell/WorkspaceSidebar.js +27 -27
  173. package/dist/components/shell/index.d.ts +1 -0
  174. package/dist/components/shell/index.js +140 -77
  175. package/dist/components/templates/index.js +272 -272
  176. package/dist/components/templates/messaging/ConversationList.js +27 -27
  177. package/dist/components/templates/messaging/MessageComposer.js +27 -27
  178. package/dist/components/templates/messaging/MessageThread.js +18 -18
  179. package/dist/components/templates/messaging/MessagingWorkspace.js +65 -65
  180. package/dist/components/templates/messaging/index.js +65 -65
  181. package/dist/components/templates/recipes/LanguageSwitcher.js +5 -5
  182. package/dist/components/templates/recipes/RecipeCard.js +26 -26
  183. package/dist/components/templates/recipes/RecipeDetail.js +33 -33
  184. package/dist/components/templates/recipes/RecipeList.js +80 -80
  185. package/dist/components/templates/recipes/index.js +80 -80
  186. package/dist/components/templates/todos/FilterBar.js +39 -39
  187. package/dist/components/templates/todos/TaskForm.js +43 -43
  188. package/dist/components/templates/todos/TaskItem.js +30 -30
  189. package/dist/components/templates/todos/TaskList.js +127 -127
  190. package/dist/components/templates/todos/index.js +127 -127
  191. package/dist/index.js +12323 -12260
  192. package/dist/infrastructure/elysia/index.js +8 -8
  193. package/dist/infrastructure/elysia/logger.js +8 -8
  194. package/dist/infrastructure/index.js +8 -8
  195. package/dist/libs/posthog/client.js +2 -2
  196. package/dist/node/application/index.js +8 -8
  197. package/dist/node/application/mcp/cliMcp.js +8 -8
  198. package/dist/node/application/mcp/contractsMcp.js +8 -8
  199. package/dist/node/application/mcp/docsMcp.js +8 -8
  200. package/dist/node/application/mcp/index.js +8 -8
  201. package/dist/node/application/mcp/internalMcp.js +8 -8
  202. package/dist/node/application/mcp/providerRankingMcp.js +8 -8
  203. package/dist/node/bundles/LibraryBundle.js +138 -0
  204. package/dist/node/bundles/index.js +138 -0
  205. package/dist/node/components/docs/DocsIndexPage.js +91 -91
  206. package/dist/node/components/docs/advanced/AdvancedMCPPage.js +125 -125
  207. package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +49 -49
  208. package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +51 -51
  209. package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +35 -35
  210. package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +177 -177
  211. package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +45 -45
  212. package/dist/node/components/docs/advanced/index.js +482 -482
  213. package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +107 -107
  214. package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +73 -73
  215. package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +117 -117
  216. package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +175 -175
  217. package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +71 -71
  218. package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +205 -205
  219. package/dist/node/components/docs/architecture/index.js +748 -748
  220. package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +117 -117
  221. package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +111 -111
  222. package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +117 -117
  223. package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +97 -97
  224. package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +125 -125
  225. package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +171 -171
  226. package/dist/node/components/docs/comparison/index.js +738 -738
  227. package/dist/node/components/docs/ecosystem/IntegrationsPage.js +45 -45
  228. package/dist/node/components/docs/ecosystem/PluginsPage.js +73 -73
  229. package/dist/node/components/docs/ecosystem/RegistryPage.js +37 -37
  230. package/dist/node/components/docs/ecosystem/TemplatesPage.js +56 -56
  231. package/dist/node/components/docs/ecosystem/index.js +211 -211
  232. package/dist/node/components/docs/examples/DocsExamplesPage.js +21 -21
  233. package/dist/node/components/docs/examples/index.js +21 -21
  234. package/dist/node/components/docs/getting-started/CLIPage.js +95 -95
  235. package/dist/node/components/docs/getting-started/CompatibilityPage.js +81 -81
  236. package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +57 -57
  237. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +61 -61
  238. package/dist/node/components/docs/getting-started/HelloWorldPage.js +77 -77
  239. package/dist/node/components/docs/getting-started/InstallationPage.js +65 -65
  240. package/dist/node/components/docs/getting-started/StartHerePage.js +51 -51
  241. package/dist/node/components/docs/getting-started/TroubleshootingPage.js +73 -73
  242. package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +171 -171
  243. package/dist/node/components/docs/getting-started/index.js +731 -731
  244. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +80 -80
  245. package/dist/node/components/docs/guides/GuideContractTypesPage.js +232 -232
  246. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +82 -82
  247. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +84 -84
  248. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +324 -324
  249. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +106 -106
  250. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +78 -78
  251. package/dist/node/components/docs/guides/GuidesIndexPage.js +43 -43
  252. package/dist/node/components/docs/guides/index.js +975 -975
  253. package/dist/node/components/docs/index.js +10791 -10791
  254. package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +17 -17
  255. package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +47 -47
  256. package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +61 -61
  257. package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +49 -49
  258. package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +33 -33
  259. package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +65 -65
  260. package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +69 -69
  261. package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +65 -65
  262. package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +313 -313
  263. package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +101 -101
  264. package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +121 -121
  265. package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +49 -49
  266. package/dist/node/components/docs/integrations/IntegrationsResendPage.js +45 -45
  267. package/dist/node/components/docs/integrations/IntegrationsS3Page.js +57 -57
  268. package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +63 -63
  269. package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +139 -139
  270. package/dist/node/components/docs/integrations/IntegrationsStripePage.js +159 -159
  271. package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +61 -61
  272. package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +63 -63
  273. package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +65 -65
  274. package/dist/node/components/docs/integrations/index.js +1642 -1642
  275. package/dist/node/components/docs/intent/ContractFirstApiPage.js +51 -51
  276. package/dist/node/components/docs/intent/DeterministicCodegenPage.js +59 -59
  277. package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +85 -85
  278. package/dist/node/components/docs/intent/OpenapiAlternativePage.js +91 -91
  279. package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +59 -59
  280. package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +51 -51
  281. package/dist/node/components/docs/intent/index.js +396 -396
  282. package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +371 -371
  283. package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +79 -79
  284. package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +185 -185
  285. package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +187 -187
  286. package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +141 -141
  287. package/dist/node/components/docs/knowledge/index.js +963 -963
  288. package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +85 -85
  289. package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +63 -63
  290. package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +33 -33
  291. package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +43 -43
  292. package/dist/node/components/docs/libraries/LibrariesContractsPage.js +125 -125
  293. package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +45 -45
  294. package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +69 -69
  295. package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +79 -79
  296. package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +129 -129
  297. package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +49 -49
  298. package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +73 -73
  299. package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +35 -35
  300. package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +43 -43
  301. package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +53 -53
  302. package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +45 -45
  303. package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +191 -191
  304. package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +47 -47
  305. package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +53 -53
  306. package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +49 -49
  307. package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +87 -87
  308. package/dist/node/components/docs/libraries/LibrariesSLOPage.js +47 -47
  309. package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +139 -139
  310. package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +57 -57
  311. package/dist/node/components/docs/libraries/LibrariesTestingPage.js +49 -49
  312. package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +107 -107
  313. package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +35 -35
  314. package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +89 -89
  315. package/dist/node/components/docs/libraries/index.js +1919 -1919
  316. package/dist/node/components/docs/manifesto/ManifestoPage.js +79 -79
  317. package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +59 -59
  318. package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +33 -33
  319. package/dist/node/components/docs/ops/index.js +92 -92
  320. package/dist/node/components/docs/reference/DocsMarkdownContent.js +27 -27
  321. package/dist/node/components/docs/reference/DocsReferenceContent.js +34 -34
  322. package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +23 -23
  323. package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +26 -26
  324. package/dist/node/components/docs/reference/DocsReferencePage.js +37 -37
  325. package/dist/node/components/docs/reference/index.js +63 -63
  326. package/dist/node/components/docs/safety/SafetyAuditingPage.js +161 -161
  327. package/dist/node/components/docs/safety/SafetyMigrationsPage.js +169 -169
  328. package/dist/node/components/docs/safety/SafetyOverviewPage.js +99 -99
  329. package/dist/node/components/docs/safety/SafetyPDPPage.js +137 -137
  330. package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +95 -95
  331. package/dist/node/components/docs/safety/SafetySigningPage.js +39 -39
  332. package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +33 -33
  333. package/dist/node/components/docs/safety/index.js +733 -733
  334. package/dist/node/components/docs/shared/StudioPrompt.js +9 -9
  335. package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +61 -61
  336. package/dist/node/components/docs/specs/SpecsDataViewsPage.js +119 -119
  337. package/dist/node/components/docs/specs/SpecsOverlaysPage.js +171 -171
  338. package/dist/node/components/docs/specs/SpecsOverviewPage.js +167 -167
  339. package/dist/node/components/docs/specs/SpecsPolicyPage.js +179 -179
  340. package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +141 -141
  341. package/dist/node/components/docs/specs/index.js +838 -838
  342. package/dist/node/components/docs/studio/StudioBYOKPage.js +9 -9
  343. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +9 -9
  344. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +9 -9
  345. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +9 -9
  346. package/dist/node/components/docs/studio/StudioOverviewPage.js +33 -33
  347. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +9 -9
  348. package/dist/node/components/docs/studio/index.js +78 -78
  349. package/dist/node/components/integrations/index.js +209 -209
  350. package/dist/node/components/integrations/molecules/IntegrationCard.js +33 -33
  351. package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +71 -71
  352. package/dist/node/components/integrations/organisms/IntegrationSettings.js +98 -98
  353. package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +40 -40
  354. package/dist/node/components/legal/PrivacyTemplate.js +477 -477
  355. package/dist/node/components/legal/TermsTemplate.js +421 -421
  356. package/dist/node/components/legal/index.js +898 -898
  357. package/dist/node/components/shared/FeatureGateNotice.js +13 -13
  358. package/dist/node/components/shared/index.js +13 -13
  359. package/dist/node/components/shell/WorkspaceHeader.js +37 -37
  360. package/dist/node/components/shell/WorkspaceProjectShellLayout.js +77 -77
  361. package/dist/node/components/shell/WorkspaceShellRenderer.js +228 -0
  362. package/dist/node/components/shell/WorkspaceSidebar.js +27 -27
  363. package/dist/node/components/shell/index.js +140 -77
  364. package/dist/node/components/templates/index.js +272 -272
  365. package/dist/node/components/templates/messaging/ConversationList.js +27 -27
  366. package/dist/node/components/templates/messaging/MessageComposer.js +27 -27
  367. package/dist/node/components/templates/messaging/MessageThread.js +18 -18
  368. package/dist/node/components/templates/messaging/MessagingWorkspace.js +65 -65
  369. package/dist/node/components/templates/messaging/index.js +65 -65
  370. package/dist/node/components/templates/recipes/LanguageSwitcher.js +5 -5
  371. package/dist/node/components/templates/recipes/RecipeCard.js +26 -26
  372. package/dist/node/components/templates/recipes/RecipeDetail.js +33 -33
  373. package/dist/node/components/templates/recipes/RecipeList.js +80 -80
  374. package/dist/node/components/templates/recipes/index.js +80 -80
  375. package/dist/node/components/templates/todos/FilterBar.js +39 -39
  376. package/dist/node/components/templates/todos/TaskForm.js +43 -43
  377. package/dist/node/components/templates/todos/TaskItem.js +30 -30
  378. package/dist/node/components/templates/todos/TaskList.js +127 -127
  379. package/dist/node/components/templates/todos/index.js +127 -127
  380. package/dist/node/index.js +12323 -12260
  381. package/dist/node/infrastructure/elysia/index.js +8 -8
  382. package/dist/node/infrastructure/elysia/logger.js +8 -8
  383. package/dist/node/infrastructure/index.js +8 -8
  384. package/dist/node/libs/posthog/client.js +2 -2
  385. package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +3 -3
  386. package/dist/node/presentation/features/atoms/FeatureIcon/index.js +3 -3
  387. package/dist/node/presentation/features/atoms/index.js +3 -3
  388. package/dist/node/presentation/features/index.js +915 -915
  389. package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +101 -101
  390. package/dist/node/presentation/features/molecules/FeatureCard/index.js +101 -101
  391. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +15 -15
  392. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +15 -15
  393. package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +23 -23
  394. package/dist/node/presentation/features/molecules/FeatureFilters/index.js +23 -23
  395. package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +67 -67
  396. package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +67 -67
  397. package/dist/node/presentation/features/molecules/index.js +139 -139
  398. package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +7 -7
  399. package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +57 -57
  400. package/dist/node/presentation/features/organisms/FeatureDetail/index.js +57 -57
  401. package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +183 -183
  402. package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +183 -183
  403. package/dist/node/presentation/features/organisms/FeatureEventsList.js +7 -7
  404. package/dist/node/presentation/features/organisms/FeatureFormsList.js +7 -7
  405. package/dist/node/presentation/features/organisms/FeatureOperationsList.js +7 -7
  406. package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +7 -7
  407. package/dist/node/presentation/features/organisms/index.js +275 -275
  408. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +126 -126
  409. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +126 -126
  410. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +16 -16
  411. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +16 -16
  412. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +112 -112
  413. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +112 -112
  414. package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +16 -16
  415. package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +16 -16
  416. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +126 -126
  417. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +126 -126
  418. package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +16 -16
  419. package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +16 -16
  420. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +110 -110
  421. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +110 -110
  422. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +16 -16
  423. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +16 -16
  424. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +66 -66
  425. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +66 -66
  426. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +112 -112
  427. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +112 -112
  428. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +16 -16
  429. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +16 -16
  430. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +3 -3
  431. package/dist/presentation/features/atoms/FeatureIcon/index.js +3 -3
  432. package/dist/presentation/features/atoms/index.js +3 -3
  433. package/dist/presentation/features/index.js +915 -915
  434. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +101 -101
  435. package/dist/presentation/features/molecules/FeatureCard/index.js +101 -101
  436. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +15 -15
  437. package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +15 -15
  438. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +23 -23
  439. package/dist/presentation/features/molecules/FeatureFilters/index.js +23 -23
  440. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +67 -67
  441. package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +67 -67
  442. package/dist/presentation/features/molecules/index.js +139 -139
  443. package/dist/presentation/features/organisms/FeatureDataViewsList.js +7 -7
  444. package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +57 -57
  445. package/dist/presentation/features/organisms/FeatureDetail/index.js +57 -57
  446. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +183 -183
  447. package/dist/presentation/features/organisms/FeatureDiscovery/index.js +183 -183
  448. package/dist/presentation/features/organisms/FeatureEventsList.js +7 -7
  449. package/dist/presentation/features/organisms/FeatureFormsList.js +7 -7
  450. package/dist/presentation/features/organisms/FeatureOperationsList.js +7 -7
  451. package/dist/presentation/features/organisms/FeaturePresentationsList.js +7 -7
  452. package/dist/presentation/features/organisms/index.js +275 -275
  453. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +126 -126
  454. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +126 -126
  455. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +16 -16
  456. package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +16 -16
  457. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +112 -112
  458. package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +112 -112
  459. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +16 -16
  460. package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +16 -16
  461. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +126 -126
  462. package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +126 -126
  463. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +16 -16
  464. package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +16 -16
  465. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +110 -110
  466. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +110 -110
  467. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +16 -16
  468. package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +16 -16
  469. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +66 -66
  470. package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +66 -66
  471. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +112 -112
  472. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +112 -112
  473. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +16 -16
  474. package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +16 -16
  475. package/package.json +71 -22
  476. package/src/bundles/LibraryBundle.ts +152 -0
  477. package/src/bundles/index.ts +1 -0
  478. package/src/components/shell/WorkspaceShellRenderer.tsx +90 -0
  479. package/src/components/shell/index.ts +1 -0
@@ -1,114 +1,114 @@
1
1
  // src/components/docs/advanced/AdvancedMCPPage.tsx
2
2
  import Link from "@contractspec/lib.ui-link";
3
3
  import { ChevronRight } from "lucide-react";
4
- import { jsxDEV } from "react/jsx-dev-runtime";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
5
  function AdvancedMCPPage() {
6
- return /* @__PURE__ */ jsxDEV("div", {
6
+ return /* @__PURE__ */ jsxs("div", {
7
7
  className: "space-y-8",
8
8
  children: [
9
- /* @__PURE__ */ jsxDEV("div", {
9
+ /* @__PURE__ */ jsxs("div", {
10
10
  className: "space-y-4",
11
11
  children: [
12
- /* @__PURE__ */ jsxDEV("h1", {
12
+ /* @__PURE__ */ jsx("h1", {
13
13
  className: "text-4xl font-bold",
14
14
  children: "MCP Adapters"
15
- }, undefined, false, undefined, this),
16
- /* @__PURE__ */ jsxDEV("p", {
15
+ }),
16
+ /* @__PURE__ */ jsxs("p", {
17
17
  className: "text-muted-foreground",
18
18
  children: [
19
19
  "The ",
20
- /* @__PURE__ */ jsxDEV("strong", {
20
+ /* @__PURE__ */ jsx("strong", {
21
21
  children: "Model Context Protocol (MCP)"
22
- }, undefined, false, undefined, this),
22
+ }),
23
23
  " is an open standard for connecting AI models to external tools and data sources. ContractSpec provides MCP adapters that allow you to expose your capabilities as MCP tools and consume external MCP servers as capabilities."
24
24
  ]
25
- }, undefined, true, undefined, this)
25
+ })
26
26
  ]
27
- }, undefined, true, undefined, this),
28
- /* @__PURE__ */ jsxDEV("div", {
27
+ }),
28
+ /* @__PURE__ */ jsxs("div", {
29
29
  className: "space-y-4",
30
30
  children: [
31
- /* @__PURE__ */ jsxDEV("h2", {
31
+ /* @__PURE__ */ jsx("h2", {
32
32
  className: "text-2xl font-bold",
33
33
  children: "Why MCP integration matters"
34
- }, undefined, false, undefined, this),
35
- /* @__PURE__ */ jsxDEV("p", {
34
+ }),
35
+ /* @__PURE__ */ jsx("p", {
36
36
  className: "text-muted-foreground",
37
37
  children: "AI agents need access to real-world tools and data to be useful. MCP provides a standardized way to expose these capabilities. By integrating ContractSpec with MCP, you can:"
38
- }, undefined, false, undefined, this),
39
- /* @__PURE__ */ jsxDEV("ul", {
38
+ }),
39
+ /* @__PURE__ */ jsxs("ul", {
40
40
  className: "text-muted-foreground list-inside list-disc space-y-2",
41
41
  children: [
42
- /* @__PURE__ */ jsxDEV("li", {
42
+ /* @__PURE__ */ jsx("li", {
43
43
  children: "Let AI agents invoke your ContractSpec capabilities safely and securely"
44
- }, undefined, false, undefined, this),
45
- /* @__PURE__ */ jsxDEV("li", {
44
+ }),
45
+ /* @__PURE__ */ jsx("li", {
46
46
  children: "Use external MCP servers (databases, APIs, search engines) as capability providers in your workflows"
47
- }, undefined, false, undefined, this),
48
- /* @__PURE__ */ jsxDEV("li", {
47
+ }),
48
+ /* @__PURE__ */ jsx("li", {
49
49
  children: "Build AI-powered features without writing custom integration code"
50
- }, undefined, false, undefined, this),
51
- /* @__PURE__ */ jsxDEV("li", {
50
+ }),
51
+ /* @__PURE__ */ jsx("li", {
52
52
  children: "Enforce policies on AI agent actions just like any other user"
53
- }, undefined, false, undefined, this)
53
+ })
54
54
  ]
55
- }, undefined, true, undefined, this)
55
+ })
56
56
  ]
57
- }, undefined, true, undefined, this),
58
- /* @__PURE__ */ jsxDEV("div", {
57
+ }),
58
+ /* @__PURE__ */ jsxs("div", {
59
59
  className: "space-y-4",
60
60
  children: [
61
- /* @__PURE__ */ jsxDEV("h2", {
61
+ /* @__PURE__ */ jsx("h2", {
62
62
  className: "text-2xl font-bold",
63
63
  children: "Exposing capabilities as MCP tools"
64
- }, undefined, false, undefined, this),
65
- /* @__PURE__ */ jsxDEV("p", {
64
+ }),
65
+ /* @__PURE__ */ jsxs("p", {
66
66
  className: "text-muted-foreground",
67
67
  children: [
68
68
  "Any",
69
69
  " ",
70
- /* @__PURE__ */ jsxDEV(Link, {
70
+ /* @__PURE__ */ jsx(Link, {
71
71
  href: "/docs/specs/capabilities",
72
72
  className: "text-violet-400 hover:text-violet-300",
73
73
  children: "CapabilitySpec"
74
- }, undefined, false, undefined, this),
74
+ }),
75
75
  " ",
76
76
  "can be automatically exposed as an MCP tool. ContractSpec generates:"
77
77
  ]
78
- }, undefined, true, undefined, this),
79
- /* @__PURE__ */ jsxDEV("ul", {
78
+ }),
79
+ /* @__PURE__ */ jsxs("ul", {
80
80
  className: "text-muted-foreground list-inside list-disc space-y-2",
81
81
  children: [
82
- /* @__PURE__ */ jsxDEV("li", {
82
+ /* @__PURE__ */ jsx("li", {
83
83
  children: "A tool schema describing the capability's inputs, outputs, and purpose"
84
- }, undefined, false, undefined, this),
85
- /* @__PURE__ */ jsxDEV("li", {
84
+ }),
85
+ /* @__PURE__ */ jsx("li", {
86
86
  children: "An MCP server endpoint that AI agents can connect to"
87
- }, undefined, false, undefined, this),
88
- /* @__PURE__ */ jsxDEV("li", {
87
+ }),
88
+ /* @__PURE__ */ jsx("li", {
89
89
  children: "Policy enforcement ensuring agents can only invoke capabilities they're authorized to use"
90
- }, undefined, false, undefined, this),
91
- /* @__PURE__ */ jsxDEV("li", {
90
+ }),
91
+ /* @__PURE__ */ jsx("li", {
92
92
  children: "Audit logging of all agent actions for compliance and debugging"
93
- }, undefined, false, undefined, this)
93
+ })
94
94
  ]
95
- }, undefined, true, undefined, this)
95
+ })
96
96
  ]
97
- }, undefined, true, undefined, this),
98
- /* @__PURE__ */ jsxDEV("div", {
97
+ }),
98
+ /* @__PURE__ */ jsxs("div", {
99
99
  className: "space-y-4",
100
100
  children: [
101
- /* @__PURE__ */ jsxDEV("h2", {
101
+ /* @__PURE__ */ jsx("h2", {
102
102
  className: "text-2xl font-bold",
103
103
  children: "Example: Exposing a capability"
104
- }, undefined, false, undefined, this),
105
- /* @__PURE__ */ jsxDEV("p", {
104
+ }),
105
+ /* @__PURE__ */ jsx("p", {
106
106
  className: "text-muted-foreground",
107
107
  children: "Here's how to expose ContractSpec operations as MCP tools:"
108
- }, undefined, false, undefined, this),
109
- /* @__PURE__ */ jsxDEV("div", {
108
+ }),
109
+ /* @__PURE__ */ jsx("div", {
110
110
  className: "bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm",
111
- children: /* @__PURE__ */ jsxDEV("pre", {
111
+ children: /* @__PURE__ */ jsx("pre", {
112
112
  children: `import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
113
113
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
114
114
  import { createMcpServer } from '@contractspec/lib.contracts-runtime-server-mcp/provider-mcp';
@@ -127,28 +127,28 @@ createMcpServer(server, registry, resources, prompts, {
127
127
 
128
128
  const transport = new StdioServerTransport();
129
129
  await server.connect(transport);`
130
- }, undefined, false, undefined, this)
131
- }, undefined, false, undefined, this),
132
- /* @__PURE__ */ jsxDEV("p", {
130
+ })
131
+ }),
132
+ /* @__PURE__ */ jsx("p", {
133
133
  className: "text-muted-foreground",
134
134
  children: "AI agents can now discover and invoke your operations through the MCP protocol. ContractSpec handles authentication, authorization, and execution automatically via the `OperationSpecRegistry`."
135
- }, undefined, false, undefined, this)
135
+ })
136
136
  ]
137
- }, undefined, true, undefined, this),
138
- /* @__PURE__ */ jsxDEV("div", {
137
+ }),
138
+ /* @__PURE__ */ jsxs("div", {
139
139
  className: "space-y-4",
140
140
  children: [
141
- /* @__PURE__ */ jsxDEV("h2", {
141
+ /* @__PURE__ */ jsx("h2", {
142
142
  className: "text-2xl font-bold",
143
143
  children: "Consuming external MCP servers"
144
- }, undefined, false, undefined, this),
145
- /* @__PURE__ */ jsxDEV("p", {
144
+ }),
145
+ /* @__PURE__ */ jsx("p", {
146
146
  className: "text-muted-foreground",
147
147
  children: "You can integrate external MCP servers into your workflows. Define an integration spec and use it in your operations:"
148
- }, undefined, false, undefined, this),
149
- /* @__PURE__ */ jsxDEV("div", {
148
+ }),
149
+ /* @__PURE__ */ jsx("div", {
150
150
  className: "bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm",
151
- children: /* @__PURE__ */ jsxDEV("pre", {
151
+ children: /* @__PURE__ */ jsx("pre", {
152
152
  children: `import { defineIntegration } from '@contractspec/lib.contracts-integrations';
153
153
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
154
154
 
@@ -179,33 +179,33 @@ const SearchProductsIntegration = defineIntegration({
179
179
  }),
180
180
  },
181
181
  });`
182
- }, undefined, false, undefined, this)
183
- }, undefined, false, undefined, this)
182
+ })
183
+ })
184
184
  ]
185
- }, undefined, true, undefined, this),
186
- /* @__PURE__ */ jsxDEV("div", {
185
+ }),
186
+ /* @__PURE__ */ jsxs("div", {
187
187
  className: "space-y-4",
188
188
  children: [
189
- /* @__PURE__ */ jsxDEV("h2", {
189
+ /* @__PURE__ */ jsx("h2", {
190
190
  className: "text-2xl font-bold",
191
191
  children: "Policy enforcement for AI agents"
192
- }, undefined, false, undefined, this),
193
- /* @__PURE__ */ jsxDEV("p", {
192
+ }),
193
+ /* @__PURE__ */ jsxs("p", {
194
194
  className: "text-muted-foreground",
195
195
  children: [
196
196
  "AI agents are treated like any other actor in ContractSpec. They must authenticate, and all their actions are subject to",
197
197
  " ",
198
- /* @__PURE__ */ jsxDEV(Link, {
198
+ /* @__PURE__ */ jsx(Link, {
199
199
  href: "/docs/specs/policy",
200
200
  className: "text-violet-400 hover:text-violet-300",
201
201
  children: "PolicySpecs"
202
- }, undefined, false, undefined, this),
202
+ }),
203
203
  ". You can define specific policies in TypeScript:"
204
204
  ]
205
- }, undefined, true, undefined, this),
206
- /* @__PURE__ */ jsxDEV("div", {
205
+ }),
206
+ /* @__PURE__ */ jsx("div", {
207
207
  className: "bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm",
208
- children: /* @__PURE__ */ jsxDEV("pre", {
208
+ children: /* @__PURE__ */ jsx("pre", {
209
209
  children: `import { definePolicy } from '@contractspec/lib.contracts-spec';
210
210
 
211
211
  export const AIAgentRestrictions = definePolicy({
@@ -230,271 +230,271 @@ export const AIAgentRestrictions = definePolicy({
230
230
  },
231
231
  ],
232
232
  });`
233
- }, undefined, false, undefined, this)
234
- }, undefined, false, undefined, this)
233
+ })
234
+ })
235
235
  ]
236
- }, undefined, true, undefined, this),
237
- /* @__PURE__ */ jsxDEV("div", {
236
+ }),
237
+ /* @__PURE__ */ jsxs("div", {
238
238
  className: "space-y-4",
239
239
  children: [
240
- /* @__PURE__ */ jsxDEV("h2", {
240
+ /* @__PURE__ */ jsx("h2", {
241
241
  className: "text-2xl font-bold",
242
242
  children: "Human-in-the-loop workflows"
243
- }, undefined, false, undefined, this),
244
- /* @__PURE__ */ jsxDEV("p", {
243
+ }),
244
+ /* @__PURE__ */ jsx("p", {
245
245
  className: "text-muted-foreground",
246
246
  children: "For sensitive operations, you can require human approval before an AI agent can proceed. ContractSpec provides built-in approval workflows:"
247
- }, undefined, false, undefined, this),
248
- /* @__PURE__ */ jsxDEV("ul", {
247
+ }),
248
+ /* @__PURE__ */ jsxs("ul", {
249
249
  className: "text-muted-foreground list-inside list-disc space-y-2",
250
250
  children: [
251
- /* @__PURE__ */ jsxDEV("li", {
251
+ /* @__PURE__ */ jsx("li", {
252
252
  children: "Agent requests permission to invoke a capability"
253
- }, undefined, false, undefined, this),
254
- /* @__PURE__ */ jsxDEV("li", {
253
+ }),
254
+ /* @__PURE__ */ jsx("li", {
255
255
  children: "Request is sent to designated approvers (via email, Slack, etc.)"
256
- }, undefined, false, undefined, this),
257
- /* @__PURE__ */ jsxDEV("li", {
256
+ }),
257
+ /* @__PURE__ */ jsx("li", {
258
258
  children: "Approver reviews the request and approves or denies it"
259
- }, undefined, false, undefined, this),
260
- /* @__PURE__ */ jsxDEV("li", {
259
+ }),
260
+ /* @__PURE__ */ jsx("li", {
261
261
  children: "Agent receives the decision and can proceed if approved"
262
- }, undefined, false, undefined, this)
262
+ })
263
263
  ]
264
- }, undefined, true, undefined, this),
265
- /* @__PURE__ */ jsxDEV("p", {
264
+ }),
265
+ /* @__PURE__ */ jsxs("p", {
266
266
  className: "text-muted-foreground",
267
267
  children: [
268
268
  "All approval decisions are logged in the",
269
269
  " ",
270
- /* @__PURE__ */ jsxDEV(Link, {
270
+ /* @__PURE__ */ jsx(Link, {
271
271
  href: "/docs/safety/auditing",
272
272
  className: "text-violet-400 hover:text-violet-300",
273
273
  children: "audit log"
274
- }, undefined, false, undefined, this),
274
+ }),
275
275
  "."
276
276
  ]
277
- }, undefined, true, undefined, this)
277
+ })
278
278
  ]
279
- }, undefined, true, undefined, this),
280
- /* @__PURE__ */ jsxDEV("div", {
279
+ }),
280
+ /* @__PURE__ */ jsxs("div", {
281
281
  className: "space-y-4",
282
282
  children: [
283
- /* @__PURE__ */ jsxDEV("h2", {
283
+ /* @__PURE__ */ jsx("h2", {
284
284
  className: "text-2xl font-bold",
285
285
  children: "Best practices"
286
- }, undefined, false, undefined, this),
287
- /* @__PURE__ */ jsxDEV("ul", {
286
+ }),
287
+ /* @__PURE__ */ jsxs("ul", {
288
288
  className: "text-muted-foreground list-inside list-disc space-y-2",
289
289
  children: [
290
- /* @__PURE__ */ jsxDEV("li", {
290
+ /* @__PURE__ */ jsx("li", {
291
291
  children: "Start with read-only capabilities for AI agents—only grant write access when necessary."
292
- }, undefined, false, undefined, this),
293
- /* @__PURE__ */ jsxDEV("li", {
292
+ }),
293
+ /* @__PURE__ */ jsx("li", {
294
294
  children: "Use human-in-the-loop approval for any capability that modifies critical data or triggers financial transactions."
295
- }, undefined, false, undefined, this),
296
- /* @__PURE__ */ jsxDEV("li", {
295
+ }),
296
+ /* @__PURE__ */ jsx("li", {
297
297
  children: "Set rate limits to prevent runaway agents from overwhelming your system."
298
- }, undefined, false, undefined, this),
299
- /* @__PURE__ */ jsxDEV("li", {
298
+ }),
299
+ /* @__PURE__ */ jsx("li", {
300
300
  children: "Provide clear, detailed descriptions for each capability so agents know when to use them."
301
- }, undefined, false, undefined, this),
302
- /* @__PURE__ */ jsxDEV("li", {
301
+ }),
302
+ /* @__PURE__ */ jsx("li", {
303
303
  children: "Monitor agent actions closely in production and adjust policies as needed."
304
- }, undefined, false, undefined, this),
305
- /* @__PURE__ */ jsxDEV("li", {
304
+ }),
305
+ /* @__PURE__ */ jsx("li", {
306
306
  children: "Test agent integrations thoroughly with realistic scenarios before deploying."
307
- }, undefined, false, undefined, this)
307
+ })
308
308
  ]
309
- }, undefined, true, undefined, this)
309
+ })
310
310
  ]
311
- }, undefined, true, undefined, this),
312
- /* @__PURE__ */ jsxDEV("div", {
311
+ }),
312
+ /* @__PURE__ */ jsxs("div", {
313
313
  className: "flex items-center gap-4 pt-4",
314
314
  children: [
315
- /* @__PURE__ */ jsxDEV(Link, {
315
+ /* @__PURE__ */ jsx(Link, {
316
316
  href: "/docs/advanced/renderers",
317
317
  className: "btn-ghost",
318
318
  children: "Previous: Custom Renderers"
319
- }, undefined, false, undefined, this),
320
- /* @__PURE__ */ jsxDEV(Link, {
319
+ }),
320
+ /* @__PURE__ */ jsxs(Link, {
321
321
  href: "/docs/advanced/telemetry",
322
322
  className: "btn-primary",
323
323
  children: [
324
324
  "Next: Telemetry ",
325
- /* @__PURE__ */ jsxDEV(ChevronRight, {
325
+ /* @__PURE__ */ jsx(ChevronRight, {
326
326
  size: 16
327
- }, undefined, false, undefined, this)
327
+ })
328
328
  ]
329
- }, undefined, true, undefined, this)
329
+ })
330
330
  ]
331
- }, undefined, true, undefined, this)
331
+ })
332
332
  ]
333
- }, undefined, true, undefined, this);
333
+ });
334
334
  }
335
335
 
336
336
  // src/components/docs/advanced/AdvancedOverlayEditorPage.tsx
337
337
  import Link2 from "@contractspec/lib.ui-link";
338
- import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
338
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
339
339
  function AdvancedOverlayEditorPage() {
340
- return /* @__PURE__ */ jsxDEV2("div", {
340
+ return /* @__PURE__ */ jsxs2("div", {
341
341
  className: "space-y-8",
342
342
  children: [
343
- /* @__PURE__ */ jsxDEV2("div", {
343
+ /* @__PURE__ */ jsxs2("div", {
344
344
  className: "space-y-4",
345
345
  children: [
346
- /* @__PURE__ */ jsxDEV2("h1", {
346
+ /* @__PURE__ */ jsx2("h1", {
347
347
  className: "text-4xl font-bold",
348
348
  children: "Overlay Editor"
349
- }, undefined, false, undefined, this),
350
- /* @__PURE__ */ jsxDEV2("p", {
349
+ }),
350
+ /* @__PURE__ */ jsx2("p", {
351
351
  className: "text-muted-foreground text-lg",
352
352
  children: "A Next.js app (`@contractspec/app.overlay-editor`) that lets tenant admins tweak field visibility, labels, and ordering, then sign OverlaySpecs."
353
- }, undefined, false, undefined, this)
353
+ })
354
354
  ]
355
- }, undefined, true, undefined, this),
356
- /* @__PURE__ */ jsxDEV2("div", {
355
+ }),
356
+ /* @__PURE__ */ jsxs2("div", {
357
357
  className: "space-y-4",
358
358
  children: [
359
- /* @__PURE__ */ jsxDEV2("h2", {
359
+ /* @__PURE__ */ jsx2("h2", {
360
360
  className: "text-2xl font-bold",
361
361
  children: "Features"
362
- }, undefined, false, undefined, this),
363
- /* @__PURE__ */ jsxDEV2("ul", {
362
+ }),
363
+ /* @__PURE__ */ jsxs2("ul", {
364
364
  className: "list-disc space-y-2 pl-6",
365
365
  children: [
366
- /* @__PURE__ */ jsxDEV2("li", {
366
+ /* @__PURE__ */ jsx2("li", {
367
367
  children: "Toggle visibility and rename labels without touching code."
368
- }, undefined, false, undefined, this),
369
- /* @__PURE__ */ jsxDEV2("li", {
368
+ }),
369
+ /* @__PURE__ */ jsx2("li", {
370
370
  children: "Move fields up/down to define the overlay order."
371
- }, undefined, false, undefined, this),
372
- /* @__PURE__ */ jsxDEV2("li", {
371
+ }),
372
+ /* @__PURE__ */ jsx2("li", {
373
373
  children: "Preview JSON output powered by `@contractspec/lib.overlay-engine`."
374
- }, undefined, false, undefined, this),
375
- /* @__PURE__ */ jsxDEV2("li", {
374
+ }),
375
+ /* @__PURE__ */ jsx2("li", {
376
376
  children: "Server action for PEM signing (Ed25519/RSA-PSS)."
377
- }, undefined, false, undefined, this)
377
+ })
378
378
  ]
379
- }, undefined, true, undefined, this),
380
- /* @__PURE__ */ jsxDEV2("p", {
379
+ }),
380
+ /* @__PURE__ */ jsxs2("p", {
381
381
  children: [
382
382
  "Project path: ",
383
- /* @__PURE__ */ jsxDEV2("code", {
383
+ /* @__PURE__ */ jsx2("code", {
384
384
  children: "packages/apps/overlay-editor"
385
- }, undefined, false, undefined, this)
385
+ })
386
386
  ]
387
- }, undefined, true, undefined, this)
387
+ })
388
388
  ]
389
- }, undefined, true, undefined, this),
390
- /* @__PURE__ */ jsxDEV2("div", {
389
+ }),
390
+ /* @__PURE__ */ jsxs2("div", {
391
391
  className: "space-y-4",
392
392
  children: [
393
- /* @__PURE__ */ jsxDEV2("h2", {
393
+ /* @__PURE__ */ jsx2("h2", {
394
394
  className: "text-2xl font-bold",
395
395
  children: "Provisioning flow"
396
- }, undefined, false, undefined, this),
397
- /* @__PURE__ */ jsxDEV2("ol", {
396
+ }),
397
+ /* @__PURE__ */ jsxs2("ol", {
398
398
  className: "list-decimal space-y-2 pl-6",
399
399
  children: [
400
- /* @__PURE__ */ jsxDEV2("li", {
400
+ /* @__PURE__ */ jsxs2("li", {
401
401
  children: [
402
402
  "Clone the repo and run ",
403
- /* @__PURE__ */ jsxDEV2("code", {
403
+ /* @__PURE__ */ jsx2("code", {
404
404
  children: "bun dev"
405
- }, undefined, false, undefined, this),
405
+ }),
406
406
  " inside the app."
407
407
  ]
408
- }, undefined, true, undefined, this),
409
- /* @__PURE__ */ jsxDEV2("li", {
408
+ }),
409
+ /* @__PURE__ */ jsx2("li", {
410
410
  children: "Use the UI to craft the overlay for a tenant."
411
- }, undefined, false, undefined, this),
412
- /* @__PURE__ */ jsxDEV2("li", {
411
+ }),
412
+ /* @__PURE__ */ jsx2("li", {
413
413
  children: "Paste the tenant's PEM private key (stored in Vault/KMS)."
414
- }, undefined, false, undefined, this),
415
- /* @__PURE__ */ jsxDEV2("li", {
414
+ }),
415
+ /* @__PURE__ */ jsx2("li", {
416
416
  children: "Click “Sign overlay” to get the final JSON payload."
417
- }, undefined, false, undefined, this),
418
- /* @__PURE__ */ jsxDEV2("li", {
417
+ }),
418
+ /* @__PURE__ */ jsx2("li", {
419
419
  children: "Persist in the `Overlay` table and register with `OverlayRegistry`."
420
- }, undefined, false, undefined, this)
420
+ })
421
421
  ]
422
- }, undefined, true, undefined, this),
423
- /* @__PURE__ */ jsxDEV2("p", {
422
+ }),
423
+ /* @__PURE__ */ jsxs2("p", {
424
424
  children: [
425
425
  "See also:",
426
426
  " ",
427
- /* @__PURE__ */ jsxDEV2(Link2, {
427
+ /* @__PURE__ */ jsx2(Link2, {
428
428
  href: "/docs/ops/tenant-customization",
429
429
  className: "text-violet-400 underline",
430
430
  children: "Tenant customization runbook"
431
- }, undefined, false, undefined, this),
431
+ }),
432
432
  "."
433
433
  ]
434
- }, undefined, true, undefined, this)
434
+ })
435
435
  ]
436
- }, undefined, true, undefined, this)
436
+ })
437
437
  ]
438
- }, undefined, true, undefined, this);
438
+ });
439
439
  }
440
440
 
441
441
  // src/components/docs/advanced/AdvancedRenderersPage.tsx
442
442
  import Link3 from "@contractspec/lib.ui-link";
443
443
  import { ChevronRight as ChevronRight2 } from "lucide-react";
444
- import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
444
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
445
445
  function AdvancedRenderersPage() {
446
- return /* @__PURE__ */ jsxDEV3("div", {
446
+ return /* @__PURE__ */ jsxs3("div", {
447
447
  className: "space-y-8",
448
448
  children: [
449
- /* @__PURE__ */ jsxDEV3("div", {
449
+ /* @__PURE__ */ jsxs3("div", {
450
450
  className: "space-y-2",
451
451
  children: [
452
- /* @__PURE__ */ jsxDEV3("h1", {
452
+ /* @__PURE__ */ jsx3("h1", {
453
453
  className: "text-4xl font-bold",
454
454
  children: "Custom Renderers"
455
- }, undefined, false, undefined, this),
456
- /* @__PURE__ */ jsxDEV3("p", {
455
+ }),
456
+ /* @__PURE__ */ jsx3("p", {
457
457
  className: "text-muted-foreground text-lg",
458
458
  children: "ContractSpec ships with React and React Native renderers. You can build custom renderers for any framework."
459
- }, undefined, false, undefined, this)
459
+ })
460
460
  ]
461
- }, undefined, true, undefined, this),
462
- /* @__PURE__ */ jsxDEV3("div", {
461
+ }),
462
+ /* @__PURE__ */ jsxs3("div", {
463
463
  className: "space-y-6",
464
464
  children: [
465
- /* @__PURE__ */ jsxDEV3("div", {
465
+ /* @__PURE__ */ jsxs3("div", {
466
466
  className: "space-y-3",
467
467
  children: [
468
- /* @__PURE__ */ jsxDEV3("h2", {
468
+ /* @__PURE__ */ jsx3("h2", {
469
469
  className: "text-2xl font-bold",
470
470
  children: "Overview"
471
- }, undefined, false, undefined, this),
472
- /* @__PURE__ */ jsxDEV3("p", {
471
+ }),
472
+ /* @__PURE__ */ jsxs3("p", {
473
473
  className: "text-muted-foreground",
474
474
  children: [
475
475
  "The presentation runtime libraries (",
476
- /* @__PURE__ */ jsxDEV3("code", {
476
+ /* @__PURE__ */ jsx3("code", {
477
477
  children: "@contractspec/lib.presentation-runtime-react"
478
- }, undefined, false, undefined, this),
478
+ }),
479
479
  " and",
480
- /* @__PURE__ */ jsxDEV3("code", {
480
+ /* @__PURE__ */ jsx3("code", {
481
481
  children: "@contractspec/lib.presentation-runtime-react-native"
482
- }, undefined, false, undefined, this),
482
+ }),
483
483
  ") provide hooks and components to render ContractSpec-defined UI like workflows and data views. You can extend these or create custom implementations for other frameworks."
484
484
  ]
485
- }, undefined, true, undefined, this)
485
+ })
486
486
  ]
487
- }, undefined, true, undefined, this),
488
- /* @__PURE__ */ jsxDEV3("div", {
487
+ }),
488
+ /* @__PURE__ */ jsxs3("div", {
489
489
  className: "space-y-3",
490
490
  children: [
491
- /* @__PURE__ */ jsxDEV3("h2", {
491
+ /* @__PURE__ */ jsx3("h2", {
492
492
  className: "text-2xl font-bold",
493
493
  children: "Using the React Renderer"
494
- }, undefined, false, undefined, this),
495
- /* @__PURE__ */ jsxDEV3("div", {
494
+ }),
495
+ /* @__PURE__ */ jsx3("div", {
496
496
  className: "bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm",
497
- children: /* @__PURE__ */ jsxDEV3("pre", {
497
+ children: /* @__PURE__ */ jsx3("pre", {
498
498
  children: `import { useWorkflow, WorkflowStepRenderer } from '@contractspec/lib.presentation-runtime-react';
499
499
  import { MyWorkflowSpec } from './specs';
500
500
 
@@ -511,90 +511,90 @@ export function WorkflowPage() {
511
511
  </div>
512
512
  );
513
513
  }`
514
- }, undefined, false, undefined, this)
515
- }, undefined, false, undefined, this)
514
+ })
515
+ })
516
516
  ]
517
- }, undefined, true, undefined, this),
518
- /* @__PURE__ */ jsxDEV3("div", {
517
+ }),
518
+ /* @__PURE__ */ jsxs3("div", {
519
519
  className: "space-y-3",
520
520
  children: [
521
- /* @__PURE__ */ jsxDEV3("h2", {
521
+ /* @__PURE__ */ jsx3("h2", {
522
522
  className: "text-2xl font-bold",
523
523
  children: "Custom Platform Support"
524
- }, undefined, false, undefined, this),
525
- /* @__PURE__ */ jsxDEV3("p", {
524
+ }),
525
+ /* @__PURE__ */ jsx3("p", {
526
526
  className: "text-muted-foreground",
527
527
  children: "To support a new platform (e.g., Vue, Svelte), you would:"
528
- }, undefined, false, undefined, this),
529
- /* @__PURE__ */ jsxDEV3("ol", {
528
+ }),
529
+ /* @__PURE__ */ jsxs3("ol", {
530
530
  className: "text-muted-foreground list-inside list-decimal space-y-2",
531
531
  children: [
532
- /* @__PURE__ */ jsxDEV3("li", {
532
+ /* @__PURE__ */ jsxs3("li", {
533
533
  children: [
534
534
  "Implement the core workflow state machine (from",
535
535
  " ",
536
- /* @__PURE__ */ jsxDEV3("code", {
536
+ /* @__PURE__ */ jsx3("code", {
537
537
  children: "@contractspec/lib.presentation-runtime-core"
538
- }, undefined, false, undefined, this),
538
+ }),
539
539
  ")"
540
540
  ]
541
- }, undefined, true, undefined, this),
542
- /* @__PURE__ */ jsxDEV3("li", {
541
+ }),
542
+ /* @__PURE__ */ jsx3("li", {
543
543
  children: "Create framework-specific hooks/components for step rendering"
544
- }, undefined, false, undefined, this),
545
- /* @__PURE__ */ jsxDEV3("li", {
544
+ }),
545
+ /* @__PURE__ */ jsx3("li", {
546
546
  children: "Handle validation and submission via the ContractSpec I/O schemas"
547
- }, undefined, false, undefined, this)
547
+ })
548
548
  ]
549
- }, undefined, true, undefined, this)
549
+ })
550
550
  ]
551
- }, undefined, true, undefined, this),
552
- /* @__PURE__ */ jsxDEV3("div", {
551
+ }),
552
+ /* @__PURE__ */ jsx3("div", {
553
553
  className: "flex items-center gap-4 pt-4",
554
- children: /* @__PURE__ */ jsxDEV3(Link3, {
554
+ children: /* @__PURE__ */ jsxs3(Link3, {
555
555
  href: "/docs",
556
556
  className: "btn-primary",
557
557
  children: [
558
558
  "Back to docs ",
559
- /* @__PURE__ */ jsxDEV3(ChevronRight2, {
559
+ /* @__PURE__ */ jsx3(ChevronRight2, {
560
560
  size: 16
561
- }, undefined, false, undefined, this)
561
+ })
562
562
  ]
563
- }, undefined, true, undefined, this)
564
- }, undefined, false, undefined, this)
563
+ })
564
+ })
565
565
  ]
566
- }, undefined, true, undefined, this)
566
+ })
567
567
  ]
568
- }, undefined, true, undefined, this);
568
+ });
569
569
  }
570
570
 
571
571
  // src/components/docs/advanced/AdvancedSpecExperimentsPage.tsx
572
- import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
572
+ import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
573
573
  function AdvancedSpecExperimentsPage() {
574
- return /* @__PURE__ */ jsxDEV4("div", {
574
+ return /* @__PURE__ */ jsxs4("div", {
575
575
  className: "space-y-8",
576
576
  children: [
577
- /* @__PURE__ */ jsxDEV4("div", {
577
+ /* @__PURE__ */ jsxs4("div", {
578
578
  className: "space-y-4",
579
579
  children: [
580
- /* @__PURE__ */ jsxDEV4("h1", {
580
+ /* @__PURE__ */ jsx4("h1", {
581
581
  className: "text-4xl font-bold",
582
582
  children: "Spec Experiments"
583
- }, undefined, false, undefined, this),
584
- /* @__PURE__ */ jsxDEV4("p", {
583
+ }),
584
+ /* @__PURE__ */ jsx4("p", {
585
585
  className: "text-muted-foreground text-lg",
586
586
  children: "Run controlled experiments on ContractSpec operations, gradually shift traffic, and roll back automatically when guardrails trip."
587
- }, undefined, false, undefined, this)
587
+ })
588
588
  ]
589
- }, undefined, true, undefined, this),
590
- /* @__PURE__ */ jsxDEV4("div", {
589
+ }),
590
+ /* @__PURE__ */ jsxs4("div", {
591
591
  className: "space-y-3",
592
592
  children: [
593
- /* @__PURE__ */ jsxDEV4("h2", {
593
+ /* @__PURE__ */ jsx4("h2", {
594
594
  className: "text-2xl font-bold",
595
595
  children: "Define control + variants"
596
- }, undefined, false, undefined, this),
597
- /* @__PURE__ */ jsxDEV4("pre", {
596
+ }),
597
+ /* @__PURE__ */ jsx4("pre", {
598
598
  className: "bg-muted rounded-lg border p-4 text-sm",
599
599
  children: `import { SpecExperimentRegistry } from '@contractspec/lib.growth/spec-experiments';
600
600
 
@@ -617,17 +617,17 @@ const registry = new SpecExperimentRegistry().register({
617
617
  rolloutStages: [0.01, 0.1, 0.5, 1],
618
618
  guardrails: { errorRateThreshold: 0.02, latencyP99ThresholdMs: 500 },
619
619
  });`
620
- }, undefined, false, undefined, this)
620
+ })
621
621
  ]
622
- }, undefined, true, undefined, this),
623
- /* @__PURE__ */ jsxDEV4("div", {
622
+ }),
623
+ /* @__PURE__ */ jsxs4("div", {
624
624
  className: "space-y-3",
625
625
  children: [
626
- /* @__PURE__ */ jsxDEV4("h2", {
626
+ /* @__PURE__ */ jsx4("h2", {
627
627
  className: "text-2xl font-bold",
628
628
  children: "Attach to runtime"
629
- }, undefined, false, undefined, this),
630
- /* @__PURE__ */ jsxDEV4("pre", {
629
+ }),
630
+ /* @__PURE__ */ jsx4("pre", {
631
631
  className: "bg-muted rounded-lg border p-4 text-sm",
632
632
  children: `import { createSpecVariantResolver } from '@contractspec/lib.growth/spec-experiments';
633
633
 
@@ -635,17 +635,17 @@ adapterContext.specVariantResolver = createSpecVariantResolver({
635
635
  adapter,
636
636
  resolveUserId: (ctx) => ctx.userId ?? ctx.organizationId ?? 'anon',
637
637
  });`
638
- }, undefined, false, undefined, this)
638
+ })
639
639
  ]
640
- }, undefined, true, undefined, this),
641
- /* @__PURE__ */ jsxDEV4("div", {
640
+ }),
641
+ /* @__PURE__ */ jsxs4("div", {
642
642
  className: "space-y-3",
643
643
  children: [
644
- /* @__PURE__ */ jsxDEV4("h2", {
644
+ /* @__PURE__ */ jsx4("h2", {
645
645
  className: "text-2xl font-bold",
646
646
  children: "Track outcomes + auto-rollback"
647
- }, undefined, false, undefined, this),
648
- /* @__PURE__ */ jsxDEV4("pre", {
647
+ }),
648
+ /* @__PURE__ */ jsx4("pre", {
649
649
  className: "bg-muted rounded-lg border p-4 text-sm",
650
650
  children: `import {
651
651
  SpecExperimentAnalyzer,
@@ -658,10 +658,10 @@ const controller = new SpecExperimentController({
658
658
  analyzer,
659
659
  onRollback: (target, evaluation) => notifyOps(target, evaluation.reasons),
660
660
  });`
661
- }, undefined, false, undefined, this)
661
+ })
662
662
  ]
663
- }, undefined, true, undefined, this),
664
- /* @__PURE__ */ jsxDEV4("div", {
663
+ }),
664
+ /* @__PURE__ */ jsx4("div", {
665
665
  className: "grid gap-4 md:grid-cols-2",
666
666
  children: [
667
667
  {
@@ -672,132 +672,132 @@ const controller = new SpecExperimentController({
672
672
  title: "Multi-stage rollouts",
673
673
  description: "Use `rolloutStages` to shift 1% → 10% → 50% → 100%. Guardrails trigger rollbacks automatically."
674
674
  }
675
- ].map((card) => /* @__PURE__ */ jsxDEV4("div", {
675
+ ].map((card) => /* @__PURE__ */ jsxs4("div", {
676
676
  className: "card-subtle space-y-2 p-4",
677
677
  children: [
678
- /* @__PURE__ */ jsxDEV4("h3", {
678
+ /* @__PURE__ */ jsx4("h3", {
679
679
  className: "text-lg font-semibold",
680
680
  children: card.title
681
- }, undefined, false, undefined, this),
682
- /* @__PURE__ */ jsxDEV4("p", {
681
+ }),
682
+ /* @__PURE__ */ jsx4("p", {
683
683
  className: "text-muted-foreground text-sm",
684
684
  children: card.description
685
- }, undefined, false, undefined, this)
685
+ })
686
686
  ]
687
- }, card.title, true, undefined, this))
688
- }, undefined, false, undefined, this)
687
+ }, card.title))
688
+ })
689
689
  ]
690
- }, undefined, true, undefined, this);
690
+ });
691
691
  }
692
692
 
693
693
  // src/components/docs/advanced/AdvancedTelemetryPage.tsx
694
694
  import Link4 from "@contractspec/lib.ui-link";
695
695
  import { ChevronRight as ChevronRight3 } from "lucide-react";
696
- import { jsxDEV as jsxDEV5 } from "react/jsx-dev-runtime";
696
+ import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
697
697
  function AdvancedTelemetryPage() {
698
- return /* @__PURE__ */ jsxDEV5("div", {
698
+ return /* @__PURE__ */ jsxs5("div", {
699
699
  className: "space-y-8",
700
700
  children: [
701
- /* @__PURE__ */ jsxDEV5("div", {
701
+ /* @__PURE__ */ jsxs5("div", {
702
702
  className: "space-y-4",
703
703
  children: [
704
- /* @__PURE__ */ jsxDEV5("h1", {
704
+ /* @__PURE__ */ jsx5("h1", {
705
705
  className: "text-4xl font-bold",
706
706
  children: "Telemetry"
707
- }, undefined, false, undefined, this),
708
- /* @__PURE__ */ jsxDEV5("p", {
707
+ }),
708
+ /* @__PURE__ */ jsxs5("p", {
709
709
  className: "text-muted-foreground",
710
710
  children: [
711
711
  "A ",
712
- /* @__PURE__ */ jsxDEV5("strong", {
712
+ /* @__PURE__ */ jsx5("strong", {
713
713
  children: "TelemetrySpec"
714
- }, undefined, false, undefined, this),
714
+ }),
715
715
  " defines what metrics, logs, and traces to collect for observability. ContractSpec automatically instruments your application based on these specs, ensuring you have the visibility you need to monitor, debug, and optimize your system."
716
716
  ]
717
- }, undefined, true, undefined, this)
717
+ })
718
718
  ]
719
- }, undefined, true, undefined, this),
720
- /* @__PURE__ */ jsxDEV5("div", {
719
+ }),
720
+ /* @__PURE__ */ jsxs5("div", {
721
721
  className: "space-y-4",
722
722
  children: [
723
- /* @__PURE__ */ jsxDEV5("h2", {
723
+ /* @__PURE__ */ jsx5("h2", {
724
724
  className: "text-2xl font-bold",
725
725
  children: "Why telemetry matters"
726
- }, undefined, false, undefined, this),
727
- /* @__PURE__ */ jsxDEV5("p", {
726
+ }),
727
+ /* @__PURE__ */ jsx5("p", {
728
728
  className: "text-muted-foreground",
729
729
  children: "You can't fix what you can't see. Telemetry provides visibility into how your application is performing, where errors are occurring, and how users are interacting with your system. Without proper instrumentation, you're flying blind in production."
730
- }, undefined, false, undefined, this),
731
- /* @__PURE__ */ jsxDEV5("p", {
730
+ }),
731
+ /* @__PURE__ */ jsx5("p", {
732
732
  className: "text-muted-foreground",
733
733
  children: "ContractSpec takes a spec-first approach to telemetry: you declare what you want to observe, and runtime adapters instrument operations automatically. This ensures consistent, comprehensive coverage without manual effort."
734
- }, undefined, false, undefined, this)
734
+ })
735
735
  ]
736
- }, undefined, true, undefined, this),
737
- /* @__PURE__ */ jsxDEV5("div", {
736
+ }),
737
+ /* @__PURE__ */ jsxs5("div", {
738
738
  className: "space-y-4",
739
739
  children: [
740
- /* @__PURE__ */ jsxDEV5("h2", {
740
+ /* @__PURE__ */ jsx5("h2", {
741
741
  className: "text-2xl font-bold",
742
742
  children: "Three pillars of observability"
743
- }, undefined, false, undefined, this),
744
- /* @__PURE__ */ jsxDEV5("div", {
743
+ }),
744
+ /* @__PURE__ */ jsxs5("div", {
745
745
  className: "space-y-3",
746
746
  children: [
747
- /* @__PURE__ */ jsxDEV5("div", {
747
+ /* @__PURE__ */ jsxs5("div", {
748
748
  children: [
749
- /* @__PURE__ */ jsxDEV5("h3", {
749
+ /* @__PURE__ */ jsx5("h3", {
750
750
  className: "text-lg font-semibold",
751
751
  children: "Metrics"
752
- }, undefined, false, undefined, this),
753
- /* @__PURE__ */ jsxDEV5("p", {
752
+ }),
753
+ /* @__PURE__ */ jsx5("p", {
754
754
  className: "text-muted-foreground",
755
755
  children: "Numerical measurements collected over time. Examples: request count, error rate, latency percentiles, active users, queue depth. Metrics are cheap to collect and store, making them ideal for high-level monitoring and alerting."
756
- }, undefined, false, undefined, this)
756
+ })
757
757
  ]
758
- }, undefined, true, undefined, this),
759
- /* @__PURE__ */ jsxDEV5("div", {
758
+ }),
759
+ /* @__PURE__ */ jsxs5("div", {
760
760
  children: [
761
- /* @__PURE__ */ jsxDEV5("h3", {
761
+ /* @__PURE__ */ jsx5("h3", {
762
762
  className: "text-lg font-semibold",
763
763
  children: "Logs"
764
- }, undefined, false, undefined, this),
765
- /* @__PURE__ */ jsxDEV5("p", {
764
+ }),
765
+ /* @__PURE__ */ jsx5("p", {
766
766
  className: "text-muted-foreground",
767
767
  children: 'Timestamped text records of events. Examples: "User 123 logged in", "Payment failed for order 456", "Database connection pool exhausted". Logs provide detailed context for debugging specific issues.'
768
- }, undefined, false, undefined, this)
768
+ })
769
769
  ]
770
- }, undefined, true, undefined, this),
771
- /* @__PURE__ */ jsxDEV5("div", {
770
+ }),
771
+ /* @__PURE__ */ jsxs5("div", {
772
772
  children: [
773
- /* @__PURE__ */ jsxDEV5("h3", {
773
+ /* @__PURE__ */ jsx5("h3", {
774
774
  className: "text-lg font-semibold",
775
775
  children: "Traces"
776
- }, undefined, false, undefined, this),
777
- /* @__PURE__ */ jsxDEV5("p", {
776
+ }),
777
+ /* @__PURE__ */ jsx5("p", {
778
778
  className: "text-muted-foreground",
779
779
  children: "Records of requests as they flow through your system. A trace shows the complete path of a request—which services it touched, how long each step took, and where errors occurred. Traces are essential for debugging distributed systems."
780
- }, undefined, false, undefined, this)
780
+ })
781
781
  ]
782
- }, undefined, true, undefined, this)
782
+ })
783
783
  ]
784
- }, undefined, true, undefined, this)
784
+ })
785
785
  ]
786
- }, undefined, true, undefined, this),
787
- /* @__PURE__ */ jsxDEV5("div", {
786
+ }),
787
+ /* @__PURE__ */ jsxs5("div", {
788
788
  className: "space-y-4",
789
789
  children: [
790
- /* @__PURE__ */ jsxDEV5("h2", {
790
+ /* @__PURE__ */ jsx5("h2", {
791
791
  className: "text-2xl font-bold",
792
792
  children: "Example TelemetrySpec"
793
- }, undefined, false, undefined, this),
794
- /* @__PURE__ */ jsxDEV5("p", {
793
+ }),
794
+ /* @__PURE__ */ jsx5("p", {
795
795
  className: "text-muted-foreground",
796
796
  children: "Here's how telemetry is configured in TypeScript:"
797
- }, undefined, false, undefined, this),
798
- /* @__PURE__ */ jsxDEV5("div", {
797
+ }),
798
+ /* @__PURE__ */ jsx5("div", {
799
799
  className: "bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm",
800
- children: /* @__PURE__ */ jsxDEV5("pre", {
800
+ children: /* @__PURE__ */ jsx5("pre", {
801
801
  children: `import { defineTelemetry } from '@contractspec/lib.contracts-spec/telemetry';
802
802
 
803
803
  export const OrderProcessingTelemetry = defineTelemetry({
@@ -844,303 +844,303 @@ export const OrderProcessingTelemetry = defineTelemetry({
844
844
  },
845
845
  ],
846
846
  });`
847
- }, undefined, false, undefined, this)
848
- }, undefined, false, undefined, this)
847
+ })
848
+ })
849
849
  ]
850
- }, undefined, true, undefined, this),
851
- /* @__PURE__ */ jsxDEV5("div", {
850
+ }),
851
+ /* @__PURE__ */ jsxs5("div", {
852
852
  className: "space-y-4",
853
853
  children: [
854
- /* @__PURE__ */ jsxDEV5("h2", {
854
+ /* @__PURE__ */ jsx5("h2", {
855
855
  className: "text-2xl font-bold",
856
856
  children: "Automatic instrumentation"
857
- }, undefined, false, undefined, this),
858
- /* @__PURE__ */ jsxDEV5("p", {
857
+ }),
858
+ /* @__PURE__ */ jsx5("p", {
859
859
  className: "text-muted-foreground",
860
860
  children: "ContractSpec automatically instruments:"
861
- }, undefined, false, undefined, this),
862
- /* @__PURE__ */ jsxDEV5("ul", {
861
+ }),
862
+ /* @__PURE__ */ jsxs5("ul", {
863
863
  className: "text-muted-foreground list-inside list-disc space-y-2",
864
864
  children: [
865
- /* @__PURE__ */ jsxDEV5("li", {
865
+ /* @__PURE__ */ jsxs5("li", {
866
866
  children: [
867
- /* @__PURE__ */ jsxDEV5("strong", {
867
+ /* @__PURE__ */ jsx5("strong", {
868
868
  children: "All operations"
869
- }, undefined, false, undefined, this),
869
+ }),
870
870
  " – Request count, latency, error rate per Command/Query"
871
871
  ]
872
- }, undefined, true, undefined, this),
873
- /* @__PURE__ */ jsxDEV5("li", {
872
+ }),
873
+ /* @__PURE__ */ jsxs5("li", {
874
874
  children: [
875
- /* @__PURE__ */ jsxDEV5("strong", {
875
+ /* @__PURE__ */ jsx5("strong", {
876
876
  children: "All workflows"
877
- }, undefined, false, undefined, this),
877
+ }),
878
878
  " – Step execution time, retry counts, compensation events"
879
879
  ]
880
- }, undefined, true, undefined, this),
881
- /* @__PURE__ */ jsxDEV5("li", {
880
+ }),
881
+ /* @__PURE__ */ jsxs5("li", {
882
882
  children: [
883
- /* @__PURE__ */ jsxDEV5("strong", {
883
+ /* @__PURE__ */ jsx5("strong", {
884
884
  children: "All data views"
885
- }, undefined, false, undefined, this),
885
+ }),
886
886
  " – Query execution time, result set size"
887
887
  ]
888
- }, undefined, true, undefined, this),
889
- /* @__PURE__ */ jsxDEV5("li", {
888
+ }),
889
+ /* @__PURE__ */ jsxs5("li", {
890
890
  children: [
891
- /* @__PURE__ */ jsxDEV5("strong", {
891
+ /* @__PURE__ */ jsx5("strong", {
892
892
  children: "All policy decisions"
893
- }, undefined, false, undefined, this),
893
+ }),
894
894
  " – Decision time, permit/deny ratio"
895
895
  ]
896
- }, undefined, true, undefined, this),
897
- /* @__PURE__ */ jsxDEV5("li", {
896
+ }),
897
+ /* @__PURE__ */ jsxs5("li", {
898
898
  children: [
899
- /* @__PURE__ */ jsxDEV5("strong", {
899
+ /* @__PURE__ */ jsx5("strong", {
900
900
  children: "System resources"
901
- }, undefined, false, undefined, this),
901
+ }),
902
902
  " – CPU, memory, disk, network usage"
903
903
  ]
904
- }, undefined, true, undefined, this)
904
+ })
905
905
  ]
906
- }, undefined, true, undefined, this),
907
- /* @__PURE__ */ jsxDEV5("p", {
906
+ }),
907
+ /* @__PURE__ */ jsx5("p", {
908
908
  className: "text-muted-foreground",
909
909
  children: "You don't need to add instrumentation code manually—the runtime handles it based on your specs."
910
- }, undefined, false, undefined, this)
910
+ })
911
911
  ]
912
- }, undefined, true, undefined, this),
913
- /* @__PURE__ */ jsxDEV5("div", {
912
+ }),
913
+ /* @__PURE__ */ jsxs5("div", {
914
914
  className: "space-y-4",
915
915
  children: [
916
- /* @__PURE__ */ jsxDEV5("h2", {
916
+ /* @__PURE__ */ jsx5("h2", {
917
917
  className: "text-2xl font-bold",
918
918
  children: "Integration with observability platforms"
919
- }, undefined, false, undefined, this),
920
- /* @__PURE__ */ jsxDEV5("p", {
919
+ }),
920
+ /* @__PURE__ */ jsx5("p", {
921
921
  className: "text-muted-foreground",
922
922
  children: "ContractSpec supports multiple observability backends:"
923
- }, undefined, false, undefined, this),
924
- /* @__PURE__ */ jsxDEV5("ul", {
923
+ }),
924
+ /* @__PURE__ */ jsxs5("ul", {
925
925
  className: "text-muted-foreground list-inside list-disc space-y-2",
926
926
  children: [
927
- /* @__PURE__ */ jsxDEV5("li", {
927
+ /* @__PURE__ */ jsxs5("li", {
928
928
  children: [
929
- /* @__PURE__ */ jsxDEV5("strong", {
929
+ /* @__PURE__ */ jsx5("strong", {
930
930
  children: "Prometheus"
931
- }, undefined, false, undefined, this),
931
+ }),
932
932
  " – For metrics collection and alerting"
933
933
  ]
934
- }, undefined, true, undefined, this),
935
- /* @__PURE__ */ jsxDEV5("li", {
934
+ }),
935
+ /* @__PURE__ */ jsxs5("li", {
936
936
  children: [
937
- /* @__PURE__ */ jsxDEV5("strong", {
937
+ /* @__PURE__ */ jsx5("strong", {
938
938
  children: "Grafana"
939
- }, undefined, false, undefined, this),
939
+ }),
940
940
  " – For dashboards and visualization"
941
941
  ]
942
- }, undefined, true, undefined, this),
943
- /* @__PURE__ */ jsxDEV5("li", {
942
+ }),
943
+ /* @__PURE__ */ jsxs5("li", {
944
944
  children: [
945
- /* @__PURE__ */ jsxDEV5("strong", {
945
+ /* @__PURE__ */ jsx5("strong", {
946
946
  children: "Jaeger / Tempo"
947
- }, undefined, false, undefined, this),
947
+ }),
948
948
  " – For distributed tracing"
949
949
  ]
950
- }, undefined, true, undefined, this),
951
- /* @__PURE__ */ jsxDEV5("li", {
950
+ }),
951
+ /* @__PURE__ */ jsxs5("li", {
952
952
  children: [
953
- /* @__PURE__ */ jsxDEV5("strong", {
953
+ /* @__PURE__ */ jsx5("strong", {
954
954
  children: "Loki"
955
- }, undefined, false, undefined, this),
955
+ }),
956
956
  " – For log aggregation"
957
957
  ]
958
- }, undefined, true, undefined, this),
959
- /* @__PURE__ */ jsxDEV5("li", {
958
+ }),
959
+ /* @__PURE__ */ jsxs5("li", {
960
960
  children: [
961
- /* @__PURE__ */ jsxDEV5("strong", {
961
+ /* @__PURE__ */ jsx5("strong", {
962
962
  children: "Datadog"
963
- }, undefined, false, undefined, this),
963
+ }),
964
964
  " – All-in-one observability platform"
965
965
  ]
966
- }, undefined, true, undefined, this),
967
- /* @__PURE__ */ jsxDEV5("li", {
966
+ }),
967
+ /* @__PURE__ */ jsxs5("li", {
968
968
  children: [
969
- /* @__PURE__ */ jsxDEV5("strong", {
969
+ /* @__PURE__ */ jsx5("strong", {
970
970
  children: "New Relic"
971
- }, undefined, false, undefined, this),
971
+ }),
972
972
  " – Application performance monitoring"
973
973
  ]
974
- }, undefined, true, undefined, this),
975
- /* @__PURE__ */ jsxDEV5("li", {
974
+ }),
975
+ /* @__PURE__ */ jsxs5("li", {
976
976
  children: [
977
- /* @__PURE__ */ jsxDEV5("strong", {
977
+ /* @__PURE__ */ jsx5("strong", {
978
978
  children: "Honeycomb"
979
- }, undefined, false, undefined, this),
979
+ }),
980
980
  " – Observability for complex systems"
981
981
  ]
982
- }, undefined, true, undefined, this)
982
+ })
983
983
  ]
984
- }, undefined, true, undefined, this),
985
- /* @__PURE__ */ jsxDEV5("p", {
984
+ }),
985
+ /* @__PURE__ */ jsx5("p", {
986
986
  className: "text-muted-foreground",
987
987
  children: "You can configure multiple backends and send telemetry to all of them simultaneously."
988
- }, undefined, false, undefined, this)
988
+ })
989
989
  ]
990
- }, undefined, true, undefined, this),
991
- /* @__PURE__ */ jsxDEV5("div", {
990
+ }),
991
+ /* @__PURE__ */ jsxs5("div", {
992
992
  className: "space-y-4",
993
993
  children: [
994
- /* @__PURE__ */ jsxDEV5("h2", {
994
+ /* @__PURE__ */ jsx5("h2", {
995
995
  className: "text-2xl font-bold",
996
996
  children: "Sampling and performance"
997
- }, undefined, false, undefined, this),
998
- /* @__PURE__ */ jsxDEV5("p", {
997
+ }),
998
+ /* @__PURE__ */ jsx5("p", {
999
999
  className: "text-muted-foreground",
1000
1000
  children: "Collecting telemetry has a cost—CPU, memory, network bandwidth, and storage. ContractSpec provides several mechanisms to control overhead:"
1001
- }, undefined, false, undefined, this),
1002
- /* @__PURE__ */ jsxDEV5("ul", {
1001
+ }),
1002
+ /* @__PURE__ */ jsxs5("ul", {
1003
1003
  className: "text-muted-foreground list-inside list-disc space-y-2",
1004
1004
  children: [
1005
- /* @__PURE__ */ jsxDEV5("li", {
1005
+ /* @__PURE__ */ jsxs5("li", {
1006
1006
  children: [
1007
- /* @__PURE__ */ jsxDEV5("strong", {
1007
+ /* @__PURE__ */ jsx5("strong", {
1008
1008
  children: "Sampling"
1009
- }, undefined, false, undefined, this),
1009
+ }),
1010
1010
  " – Trace only a percentage of requests (e.g., 10%)"
1011
1011
  ]
1012
- }, undefined, true, undefined, this),
1013
- /* @__PURE__ */ jsxDEV5("li", {
1012
+ }),
1013
+ /* @__PURE__ */ jsxs5("li", {
1014
1014
  children: [
1015
- /* @__PURE__ */ jsxDEV5("strong", {
1015
+ /* @__PURE__ */ jsx5("strong", {
1016
1016
  children: "Adaptive sampling"
1017
- }, undefined, false, undefined, this),
1017
+ }),
1018
1018
  " – Automatically reduce sampling rate under high load"
1019
1019
  ]
1020
- }, undefined, true, undefined, this),
1021
- /* @__PURE__ */ jsxDEV5("li", {
1020
+ }),
1021
+ /* @__PURE__ */ jsxs5("li", {
1022
1022
  children: [
1023
- /* @__PURE__ */ jsxDEV5("strong", {
1023
+ /* @__PURE__ */ jsx5("strong", {
1024
1024
  children: "Tail-based sampling"
1025
- }, undefined, false, undefined, this),
1025
+ }),
1026
1026
  " – Keep traces for failed requests, sample successful ones"
1027
1027
  ]
1028
- }, undefined, true, undefined, this),
1029
- /* @__PURE__ */ jsxDEV5("li", {
1028
+ }),
1029
+ /* @__PURE__ */ jsxs5("li", {
1030
1030
  children: [
1031
- /* @__PURE__ */ jsxDEV5("strong", {
1031
+ /* @__PURE__ */ jsx5("strong", {
1032
1032
  children: "Field redaction"
1033
- }, undefined, false, undefined, this),
1033
+ }),
1034
1034
  " – Remove sensitive data from traces and logs"
1035
1035
  ]
1036
- }, undefined, true, undefined, this),
1037
- /* @__PURE__ */ jsxDEV5("li", {
1036
+ }),
1037
+ /* @__PURE__ */ jsxs5("li", {
1038
1038
  children: [
1039
- /* @__PURE__ */ jsxDEV5("strong", {
1039
+ /* @__PURE__ */ jsx5("strong", {
1040
1040
  children: "Aggregation"
1041
- }, undefined, false, undefined, this),
1041
+ }),
1042
1042
  " – Pre-aggregate metrics before sending to reduce network traffic"
1043
1043
  ]
1044
- }, undefined, true, undefined, this)
1044
+ })
1045
1045
  ]
1046
- }, undefined, true, undefined, this)
1046
+ })
1047
1047
  ]
1048
- }, undefined, true, undefined, this),
1049
- /* @__PURE__ */ jsxDEV5("div", {
1048
+ }),
1049
+ /* @__PURE__ */ jsxs5("div", {
1050
1050
  className: "space-y-4",
1051
1051
  children: [
1052
- /* @__PURE__ */ jsxDEV5("h2", {
1052
+ /* @__PURE__ */ jsx5("h2", {
1053
1053
  className: "text-2xl font-bold",
1054
1054
  children: "Best practices"
1055
- }, undefined, false, undefined, this),
1056
- /* @__PURE__ */ jsxDEV5("ul", {
1055
+ }),
1056
+ /* @__PURE__ */ jsxs5("ul", {
1057
1057
  className: "text-muted-foreground list-inside list-disc space-y-2",
1058
1058
  children: [
1059
- /* @__PURE__ */ jsxDEV5("li", {
1059
+ /* @__PURE__ */ jsx5("li", {
1060
1060
  children: "Start with high-level metrics (request rate, error rate, latency) and add more detailed instrumentation as needed."
1061
- }, undefined, false, undefined, this),
1062
- /* @__PURE__ */ jsxDEV5("li", {
1061
+ }),
1062
+ /* @__PURE__ */ jsx5("li", {
1063
1063
  children: "Use structured logging—log events with structured fields, not free-form text."
1064
- }, undefined, false, undefined, this),
1065
- /* @__PURE__ */ jsxDEV5("li", {
1064
+ }),
1065
+ /* @__PURE__ */ jsx5("li", {
1066
1066
  children: "Set up alerts for critical metrics so you're notified when things go wrong."
1067
- }, undefined, false, undefined, this),
1068
- /* @__PURE__ */ jsxDEV5("li", {
1067
+ }),
1068
+ /* @__PURE__ */ jsx5("li", {
1069
1069
  children: "Use traces to debug complex issues—they show the complete picture of a request."
1070
- }, undefined, false, undefined, this),
1071
- /* @__PURE__ */ jsxDEV5("li", {
1070
+ }),
1071
+ /* @__PURE__ */ jsx5("li", {
1072
1072
  children: "Redact sensitive data from logs and traces to comply with privacy regulations."
1073
- }, undefined, false, undefined, this),
1074
- /* @__PURE__ */ jsxDEV5("li", {
1073
+ }),
1074
+ /* @__PURE__ */ jsx5("li", {
1075
1075
  children: "Review dashboards regularly to understand normal behavior—this makes anomalies easier to spot."
1076
- }, undefined, false, undefined, this),
1077
- /* @__PURE__ */ jsxDEV5("li", {
1076
+ }),
1077
+ /* @__PURE__ */ jsx5("li", {
1078
1078
  children: "Use sampling to control costs, but always trace errors and slow requests."
1079
- }, undefined, false, undefined, this)
1079
+ })
1080
1080
  ]
1081
- }, undefined, true, undefined, this)
1081
+ })
1082
1082
  ]
1083
- }, undefined, true, undefined, this),
1084
- /* @__PURE__ */ jsxDEV5("div", {
1083
+ }),
1084
+ /* @__PURE__ */ jsxs5("div", {
1085
1085
  className: "flex items-center gap-4 pt-4",
1086
1086
  children: [
1087
- /* @__PURE__ */ jsxDEV5(Link4, {
1087
+ /* @__PURE__ */ jsx5(Link4, {
1088
1088
  href: "/docs/advanced/mcp",
1089
1089
  className: "btn-ghost",
1090
1090
  children: "Previous: MCP Adapters"
1091
- }, undefined, false, undefined, this),
1092
- /* @__PURE__ */ jsxDEV5(Link4, {
1091
+ }),
1092
+ /* @__PURE__ */ jsxs5(Link4, {
1093
1093
  href: "/docs/comparison",
1094
1094
  className: "btn-primary",
1095
1095
  children: [
1096
1096
  "Next: Comparison ",
1097
- /* @__PURE__ */ jsxDEV5(ChevronRight3, {
1097
+ /* @__PURE__ */ jsx5(ChevronRight3, {
1098
1098
  size: 16
1099
- }, undefined, false, undefined, this)
1099
+ })
1100
1100
  ]
1101
- }, undefined, true, undefined, this)
1101
+ })
1102
1102
  ]
1103
- }, undefined, true, undefined, this)
1103
+ })
1104
1104
  ]
1105
- }, undefined, true, undefined, this);
1105
+ });
1106
1106
  }
1107
1107
 
1108
1108
  // src/components/docs/advanced/AdvancedWorkflowMonitoringPage.tsx
1109
- import { jsxDEV as jsxDEV6 } from "react/jsx-dev-runtime";
1109
+ import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
1110
1110
  function AdvancedWorkflowMonitoringPage() {
1111
- return /* @__PURE__ */ jsxDEV6("div", {
1111
+ return /* @__PURE__ */ jsxs6("div", {
1112
1112
  className: "space-y-8",
1113
1113
  children: [
1114
- /* @__PURE__ */ jsxDEV6("div", {
1114
+ /* @__PURE__ */ jsxs6("div", {
1115
1115
  className: "space-y-4",
1116
1116
  children: [
1117
- /* @__PURE__ */ jsxDEV6("h1", {
1117
+ /* @__PURE__ */ jsx6("h1", {
1118
1118
  className: "text-4xl font-bold",
1119
1119
  children: "Workflow Monitoring"
1120
- }, undefined, false, undefined, this),
1121
- /* @__PURE__ */ jsxDEV6("p", {
1120
+ }),
1121
+ /* @__PURE__ */ jsx6("p", {
1122
1122
  className: "text-muted-foreground text-lg",
1123
1123
  children: "Production workflows need robust observability. ContractSpec provides SLA monitoring, distributed tracing, and audit logging out of the box."
1124
- }, undefined, false, undefined, this)
1124
+ })
1125
1125
  ]
1126
- }, undefined, true, undefined, this),
1127
- /* @__PURE__ */ jsxDEV6("div", {
1126
+ }),
1127
+ /* @__PURE__ */ jsxs6("div", {
1128
1128
  className: "space-y-4",
1129
1129
  children: [
1130
- /* @__PURE__ */ jsxDEV6("h2", {
1130
+ /* @__PURE__ */ jsx6("h2", {
1131
1131
  className: "text-2xl font-bold",
1132
1132
  children: "SLA Monitoring"
1133
- }, undefined, false, undefined, this),
1134
- /* @__PURE__ */ jsxDEV6("p", {
1133
+ }),
1134
+ /* @__PURE__ */ jsxs6("p", {
1135
1135
  children: [
1136
1136
  "Use the ",
1137
- /* @__PURE__ */ jsxDEV6("code", {
1137
+ /* @__PURE__ */ jsx6("code", {
1138
1138
  children: "SLAMonitor"
1139
- }, undefined, false, undefined, this),
1139
+ }),
1140
1140
  " to detect when workflows or individual steps exceed their budgeted duration."
1141
1141
  ]
1142
- }, undefined, true, undefined, this),
1143
- /* @__PURE__ */ jsxDEV6("pre", {
1142
+ }),
1143
+ /* @__PURE__ */ jsx6("pre", {
1144
1144
  className: "bg-muted rounded-lg border p-4 text-sm",
1145
1145
  children: `import { SLAMonitor } from '@contractspec/lib.contracts-spec/workflow/sla-monitor';
1146
1146
 
@@ -1153,62 +1153,62 @@ const monitor = new SLAMonitor((event, payload) => {
1153
1153
 
1154
1154
  // Check periodically
1155
1155
  monitor.check(currentState, workflowSpec);`
1156
- }, undefined, false, undefined, this)
1156
+ })
1157
1157
  ]
1158
- }, undefined, true, undefined, this),
1159
- /* @__PURE__ */ jsxDEV6("div", {
1158
+ }),
1159
+ /* @__PURE__ */ jsxs6("div", {
1160
1160
  className: "space-y-4",
1161
1161
  children: [
1162
- /* @__PURE__ */ jsxDEV6("h2", {
1162
+ /* @__PURE__ */ jsx6("h2", {
1163
1163
  className: "text-2xl font-bold",
1164
1164
  children: "Telemetry & Tracing"
1165
- }, undefined, false, undefined, this),
1166
- /* @__PURE__ */ jsxDEV6("p", {
1165
+ }),
1166
+ /* @__PURE__ */ jsx6("p", {
1167
1167
  children: "Workflows automatically generate OpenTelemetry spans for:"
1168
- }, undefined, false, undefined, this),
1169
- /* @__PURE__ */ jsxDEV6("ul", {
1168
+ }),
1169
+ /* @__PURE__ */ jsxs6("ul", {
1170
1170
  className: "list-disc space-y-2 pl-6",
1171
1171
  children: [
1172
- /* @__PURE__ */ jsxDEV6("li", {
1172
+ /* @__PURE__ */ jsx6("li", {
1173
1173
  children: "Overall workflow execution"
1174
- }, undefined, false, undefined, this),
1175
- /* @__PURE__ */ jsxDEV6("li", {
1174
+ }),
1175
+ /* @__PURE__ */ jsx6("li", {
1176
1176
  children: "Individual steps"
1177
- }, undefined, false, undefined, this),
1178
- /* @__PURE__ */ jsxDEV6("li", {
1177
+ }),
1178
+ /* @__PURE__ */ jsx6("li", {
1179
1179
  children: "Retries and compensation"
1180
- }, undefined, false, undefined, this)
1180
+ })
1181
1181
  ]
1182
- }, undefined, true, undefined, this),
1183
- /* @__PURE__ */ jsxDEV6("p", {
1182
+ }),
1183
+ /* @__PURE__ */ jsx6("p", {
1184
1184
  children: "Configure your OpenTelemetry exporter to send traces to Jaeger, Datadog, or Honeycomb."
1185
- }, undefined, false, undefined, this)
1185
+ })
1186
1186
  ]
1187
- }, undefined, true, undefined, this),
1188
- /* @__PURE__ */ jsxDEV6("div", {
1187
+ }),
1188
+ /* @__PURE__ */ jsxs6("div", {
1189
1189
  className: "space-y-4",
1190
1190
  children: [
1191
- /* @__PURE__ */ jsxDEV6("h2", {
1191
+ /* @__PURE__ */ jsx6("h2", {
1192
1192
  className: "text-2xl font-bold",
1193
1193
  children: "Dashboarding"
1194
- }, undefined, false, undefined, this),
1195
- /* @__PURE__ */ jsxDEV6("p", {
1194
+ }),
1195
+ /* @__PURE__ */ jsxs6("p", {
1196
1196
  children: [
1197
1197
  "You can build a custom dashboard using ",
1198
- /* @__PURE__ */ jsxDEV6("code", {
1198
+ /* @__PURE__ */ jsx6("code", {
1199
1199
  children: "DataViews"
1200
- }, undefined, false, undefined, this),
1200
+ }),
1201
1201
  " over your workflow state database. See the DataViews tutorial for how to visualize ",
1202
- /* @__PURE__ */ jsxDEV6("code", {
1202
+ /* @__PURE__ */ jsx6("code", {
1203
1203
  children: "WorkflowState"
1204
- }, undefined, false, undefined, this),
1204
+ }),
1205
1205
  " records."
1206
1206
  ]
1207
- }, undefined, true, undefined, this)
1207
+ })
1208
1208
  ]
1209
- }, undefined, true, undefined, this)
1209
+ })
1210
1210
  ]
1211
- }, undefined, true, undefined, this);
1211
+ });
1212
1212
  }
1213
1213
  export {
1214
1214
  AdvancedWorkflowMonitoringPage,