@contractspec/bundle.library 3.9.0 → 3.9.3

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 (724) hide show
  1. package/.turbo/turbo-build.log +612 -608
  2. package/CHANGELOG.md +89 -0
  3. package/README.md +2 -1
  4. package/dist/__tests__/mocks/prisma.d.ts +5 -5
  5. package/dist/application/context-storage/index.js +1 -1
  6. package/dist/application/index.js +6 -6
  7. package/dist/application/mcp/cliMcp.js +2 -2
  8. package/dist/application/mcp/cliMcp.onboarding.js +1 -1
  9. package/dist/application/mcp/common.js +1 -1
  10. package/dist/application/mcp/contractsMcp.js +2 -2
  11. package/dist/application/mcp/contractsMcpAdoptionTools.js +1 -1
  12. package/dist/application/mcp/contractsMcpResources.js +2 -2
  13. package/dist/application/mcp/contractsMcpTools.js +1 -1
  14. package/dist/application/mcp/docsMcp.catalog.js +2 -2
  15. package/dist/application/mcp/docsMcp.data.js +1 -1
  16. package/dist/application/mcp/docsMcp.js +3 -3
  17. package/dist/application/mcp/docsMcp.prompts.js +3 -3
  18. package/dist/application/mcp/docsMcp.reference.js +2 -2
  19. package/dist/application/mcp/docsMcp.resources.js +2 -2
  20. package/dist/application/mcp/docsMcp.tools.js +2 -2
  21. package/dist/application/mcp/index.js +6 -6
  22. package/dist/application/mcp/internalMcp.js +2 -2
  23. package/dist/application/mcp/normalizeMcpRequest.js +1 -1
  24. package/dist/application/mcp/providerRankingMcp.js +1 -1
  25. package/dist/bundles/LibraryBundle.d.ts +19 -111
  26. package/dist/bundles/LibraryBundle.js +1 -1
  27. package/dist/bundles/index.js +1 -1
  28. package/dist/components/docs/DocsIndexPage.js +2 -2
  29. package/dist/components/docs/advanced/AdvancedMCPPage.js +3 -3
  30. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -1
  31. package/dist/components/docs/advanced/AdvancedRenderersPage.js +2 -2
  32. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -4
  33. package/dist/components/docs/advanced/AdvancedTelemetryPage.js +2 -2
  34. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -2
  35. package/dist/components/docs/advanced/index.js +9 -9
  36. package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +6 -6
  37. package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +3 -3
  38. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -7
  39. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -6
  40. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -2
  41. package/dist/components/docs/architecture/ArchitectureOverviewPage.js +1 -1
  42. package/dist/components/docs/architecture/index.js +20 -20
  43. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -1
  44. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -1
  45. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -1
  46. package/dist/components/docs/comparison/ComparisonOverviewPage.js +1 -1
  47. package/dist/components/docs/comparison/ComparisonWindmillPage.js +1 -1
  48. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -1
  49. package/dist/components/docs/comparison/index.js +1 -1
  50. package/dist/components/docs/docsManifest.js +1 -1
  51. package/dist/components/docs/ecosystem/IntegrationsPage.js +2 -2
  52. package/dist/components/docs/ecosystem/PluginsPage.js +4 -4
  53. package/dist/components/docs/ecosystem/RegistryPage.js +4 -4
  54. package/dist/components/docs/ecosystem/TemplatesPage.js +3 -3
  55. package/dist/components/docs/ecosystem/index.js +11 -11
  56. package/dist/components/docs/examples/DocsExamplesPage.js +1 -1
  57. package/dist/components/docs/examples/ExampleShowcasePage.js +2 -2
  58. package/dist/components/docs/examples/exampleShowcaseData.js +2 -2
  59. package/dist/components/docs/examples/index.js +2 -2
  60. package/dist/components/docs/generated/docs-index.generated.js +1 -1
  61. package/dist/components/docs/generated/index.d.ts +7 -1
  62. package/dist/components/docs/generated/index.js +1 -1
  63. package/dist/components/docs/generated/loader.js +1 -1
  64. package/dist/components/docs/getting-started/CLIPage.js +4 -4
  65. package/dist/components/docs/getting-started/CompatibilityPage.js +1 -1
  66. package/dist/components/docs/getting-started/DataViewTutorialPage.js +4 -4
  67. package/dist/components/docs/getting-started/DeveloperToolsPage.js +1 -1
  68. package/dist/components/docs/getting-started/HelloWorldPage.js +5 -5
  69. package/dist/components/docs/getting-started/InstallationPage.js +3 -3
  70. package/dist/components/docs/getting-started/StartHerePage.js +3 -3
  71. package/dist/components/docs/getting-started/TroubleshootingPage.js +2 -2
  72. package/dist/components/docs/getting-started/VSCodeExtensionPage.js +1 -1
  73. package/dist/components/docs/getting-started/getting-started.docblocks.js +2 -2
  74. package/dist/components/docs/getting-started/index.js +17 -17
  75. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +2 -2
  76. package/dist/components/docs/guides/GuideConnectInRepoPage.js +6 -6
  77. package/dist/components/docs/guides/GuideContractTypesPage.js +6 -6
  78. package/dist/components/docs/guides/GuideDocsPipelinePage.js +3 -3
  79. package/dist/components/docs/guides/GuideFirstModuleBundlePage.js +4 -4
  80. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -2
  81. package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.js +7 -7
  82. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -8
  83. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
  84. package/dist/components/docs/guides/GuideReleaseCapsulesPage.js +3 -3
  85. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +4 -4
  86. package/dist/components/docs/guides/GuidesIndexPage.js +2 -2
  87. package/dist/components/docs/guides/index.js +43 -43
  88. package/dist/components/docs/index.js +375 -255
  89. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -2
  90. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -3
  91. package/dist/components/docs/integrations/IntegrationsGithubPage.js +2 -2
  92. package/dist/components/docs/integrations/IntegrationsGmailPage.js +3 -3
  93. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -3
  94. package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +2 -2
  95. package/dist/components/docs/integrations/IntegrationsMistralPage.js +2 -2
  96. package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +2 -2
  97. package/dist/components/docs/integrations/IntegrationsOverviewPage.js +1 -1
  98. package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +2 -2
  99. package/dist/components/docs/integrations/IntegrationsPowensPage.js +2 -2
  100. package/dist/components/docs/integrations/IntegrationsQdrantPage.js +5 -5
  101. package/dist/components/docs/integrations/IntegrationsResendPage.js +3 -3
  102. package/dist/components/docs/integrations/IntegrationsS3Page.js +4 -4
  103. package/dist/components/docs/integrations/IntegrationsSlackPage.js +2 -2
  104. package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +2 -2
  105. package/dist/components/docs/integrations/IntegrationsStripePage.js +2 -2
  106. package/dist/components/docs/integrations/IntegrationsTwilioPage.js +3 -3
  107. package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -2
  108. package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -2
  109. package/dist/components/docs/integrations/index.js +39 -39
  110. package/dist/components/docs/intent/ContractFirstApiPage.js +2 -2
  111. package/dist/components/docs/intent/DeterministicCodegenPage.js +2 -2
  112. package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +7 -7
  113. package/dist/components/docs/intent/OpenapiAlternativePage.js +3 -3
  114. package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +4 -4
  115. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -2
  116. package/dist/components/docs/intent/index.js +15 -15
  117. package/dist/components/docs/intent/intent-pages.docblocks.js +1 -1
  118. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +2 -2
  119. package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +2 -2
  120. package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +1 -1
  121. package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +2 -2
  122. package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +2 -2
  123. package/dist/components/docs/knowledge/index.js +5 -5
  124. package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +3 -3
  125. package/dist/components/docs/libraries/LibrariesAiAgentPage.js +3 -3
  126. package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +4 -4
  127. package/dist/components/docs/libraries/LibrariesContentGenPage.js +2 -2
  128. package/dist/components/docs/libraries/LibrariesContractsPage.js +2 -2
  129. package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +3 -3
  130. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.content.d.ts +67 -0
  131. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.content.js +86 -0
  132. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.d.ts +1 -0
  133. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.js +86 -0
  134. package/dist/components/docs/libraries/LibrariesDataBackendPage.js +2 -2
  135. package/dist/components/docs/libraries/LibrariesDataViewsPage.js +3 -3
  136. package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +38 -2
  137. package/dist/components/docs/libraries/LibrariesEvolutionPage.js +4 -4
  138. package/dist/components/docs/libraries/LibrariesGraphQLPage.js +2 -2
  139. package/dist/components/docs/libraries/LibrariesGrowthPage.js +3 -3
  140. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -3
  141. package/dist/components/docs/libraries/LibrariesObservabilityPage.js +5 -5
  142. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -4
  143. package/dist/components/docs/libraries/LibrariesOverviewPage.js +1 -1
  144. package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +4 -4
  145. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -3
  146. package/dist/components/docs/libraries/LibrariesResiliencePage.js +4 -4
  147. package/dist/components/docs/libraries/LibrariesRuntimePage.js +2 -2
  148. package/dist/components/docs/libraries/LibrariesSLOPage.js +3 -3
  149. package/dist/components/docs/libraries/LibrariesSchemaPage.js +3 -3
  150. package/dist/components/docs/libraries/LibrariesSupportBotPage.js +3 -3
  151. package/dist/components/docs/libraries/LibrariesTestingPage.js +3 -3
  152. package/dist/components/docs/libraries/LibrariesUIKitPage.js +2 -2
  153. package/dist/components/docs/libraries/LibrariesUIKitWebPage.js +2 -2
  154. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -3
  155. package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +2 -2
  156. package/dist/components/docs/libraries/index.d.ts +1 -0
  157. package/dist/components/docs/libraries/index.js +173 -53
  158. package/dist/components/docs/manifesto/ManifestoPage.js +1 -1
  159. package/dist/components/docs/ops/AutoEvolutionOpsPage.js +2 -2
  160. package/dist/components/docs/ops/DistributedTracingOpsPage.js +2 -2
  161. package/dist/components/docs/ops/index.js +3 -3
  162. package/dist/components/docs/ops/ops-lifecycle.docblocks.js +2 -2
  163. package/dist/components/docs/ops/ops-runbooks-a.docblocks.js +2 -2
  164. package/dist/components/docs/ops/ops-runbooks-b.docblocks.js +2 -2
  165. package/dist/components/docs/ops/ops-slo-tenant.docblocks.js +2 -2
  166. package/dist/components/docs/ops/ops-top.docs.js +2 -2
  167. package/dist/components/docs/ops/ops.docs.js +6 -6
  168. package/dist/components/docs/product/product.docblocks.js +2 -2
  169. package/dist/components/docs/reference/DocsMarkdownContent.js +2 -2
  170. package/dist/components/docs/reference/DocsReferenceContent.js +3 -3
  171. package/dist/components/docs/reference/DocsReferenceIndexClient.js +2 -2
  172. package/dist/components/docs/reference/DocsReferenceIndexPage.js +2 -2
  173. package/dist/components/docs/reference/DocsReferencePage.js +3 -3
  174. package/dist/components/docs/reference/docsMarkdownParser.js +2 -2
  175. package/dist/components/docs/reference/index.js +4 -4
  176. package/dist/components/docs/safety/SafetyAuditingPage.js +2 -2
  177. package/dist/components/docs/safety/SafetyMigrationsPage.js +2 -2
  178. package/dist/components/docs/safety/SafetyOverviewPage.js +1 -1
  179. package/dist/components/docs/safety/SafetyPDPPage.js +2 -2
  180. package/dist/components/docs/safety/SafetySecurityTrustPage.js +1 -1
  181. package/dist/components/docs/safety/SafetySigningPage.js +3 -3
  182. package/dist/components/docs/safety/SafetyTenantIsolationPage.js +2 -2
  183. package/dist/components/docs/safety/index.js +7 -7
  184. package/dist/components/docs/shared/StudioPrompt.js +1 -1
  185. package/dist/components/docs/specs/SpecsBuilderControlPlanePage.js +4 -4
  186. package/dist/components/docs/specs/SpecsCapabilitiesPage.js +2 -2
  187. package/dist/components/docs/specs/SpecsConnectPage.js +2 -2
  188. package/dist/components/docs/specs/SpecsDataViewsPage.js +2 -2
  189. package/dist/components/docs/specs/SpecsModuleBundlesPage.js +3 -3
  190. package/dist/components/docs/specs/SpecsOverlaysPage.js +2 -2
  191. package/dist/components/docs/specs/SpecsOverviewPage.js +1 -1
  192. package/dist/components/docs/specs/SpecsPolicyPage.js +3 -3
  193. package/dist/components/docs/specs/SpecsWorkflowsPage.js +2 -2
  194. package/dist/components/docs/specs/index.js +13 -13
  195. package/dist/components/docs/studio/StudioBYOKPage.js +1 -1
  196. package/dist/components/docs/studio/StudioDeploymentsPage.js +1 -1
  197. package/dist/components/docs/studio/StudioGettingStartedPage.js +1 -1
  198. package/dist/components/docs/studio/StudioIntegrationsPage.js +1 -1
  199. package/dist/components/docs/studio/StudioOverviewPage.js +1 -1
  200. package/dist/components/docs/studio/StudioVisualBuilderPage.js +1 -1
  201. package/dist/components/docs/studio/index.js +1 -1
  202. package/dist/components/docs/tech/contracts/tech-docs.docblocks.js +2 -2
  203. package/dist/components/integrations/index.js +2 -2
  204. package/dist/components/integrations/molecules/IntegrationCard.js +1 -1
  205. package/dist/components/integrations/organisms/IntegrationMarketplace.js +1 -1
  206. package/dist/components/integrations/organisms/IntegrationSettings.js +2 -2
  207. package/dist/components/integrations/organisms/KnowledgeSourceList.js +1 -1
  208. package/dist/components/legal/PrivacyTemplate.js +1 -1
  209. package/dist/components/legal/TermsTemplate.js +1 -1
  210. package/dist/components/legal/index.js +1 -1
  211. package/dist/components/shared/FeatureGateNotice.js +1 -1
  212. package/dist/components/shared/index.js +1 -1
  213. package/dist/components/shell/WorkspaceHeader.js +1 -1
  214. package/dist/components/shell/WorkspaceProjectShellLayout.js +1 -1
  215. package/dist/components/shell/WorkspaceShellRenderer.js +1 -1
  216. package/dist/components/shell/WorkspaceSidebar.js +1 -1
  217. package/dist/components/shell/index.js +1 -1
  218. package/dist/components/templates/engine/index.js +1 -1
  219. package/dist/components/templates/index.js +11 -11
  220. package/dist/components/templates/messaging/ConversationList.js +2 -2
  221. package/dist/components/templates/messaging/MessageComposer.js +4 -4
  222. package/dist/components/templates/messaging/MessageThread.js +3 -3
  223. package/dist/components/templates/messaging/MessagingWorkspace.js +5 -5
  224. package/dist/components/templates/messaging/index.js +5 -5
  225. package/dist/components/templates/recipes/LanguageSwitcher.js +1 -1
  226. package/dist/components/templates/recipes/RecipeCard.js +1 -1
  227. package/dist/components/templates/recipes/RecipeDetail.js +1 -1
  228. package/dist/components/templates/recipes/RecipeList.js +3 -3
  229. package/dist/components/templates/recipes/index.js +3 -3
  230. package/dist/components/templates/todos/FilterBar.js +1 -1
  231. package/dist/components/templates/todos/TaskForm.js +2 -2
  232. package/dist/components/templates/todos/TaskItem.js +1 -1
  233. package/dist/components/templates/todos/TaskList.js +5 -5
  234. package/dist/components/templates/todos/index.js +5 -5
  235. package/dist/config/contractspec-blueprint.js +1 -1
  236. package/dist/config/contractspec-branding.js +1 -1
  237. package/dist/config/contractspec-routes.js +1 -1
  238. package/dist/config/index.js +1 -1
  239. package/dist/features/contracts-registry.js +1 -1
  240. package/dist/features/docs/docs.contracts.js +1 -1
  241. package/dist/features/docs/index.js +1 -1
  242. package/dist/features/docs.feature.js +1 -1
  243. package/dist/features/index.js +1 -1
  244. package/dist/features/mcp.feature.js +1 -1
  245. package/dist/features/presentations.feature.js +1 -1
  246. package/dist/features/registry.js +1 -1
  247. package/dist/index.d.ts +1 -0
  248. package/dist/index.js +382 -262
  249. package/dist/infrastructure/elysia/index.js +1 -1
  250. package/dist/infrastructure/elysia/logger.js +1 -1
  251. package/dist/infrastructure/index.js +1 -1
  252. package/dist/libs/email/client.js +1 -1
  253. package/dist/libs/email/contact.js +3 -3
  254. package/dist/libs/email/newsletter.js +3 -3
  255. package/dist/libs/email/utils.js +2 -2
  256. package/dist/libs/email/waitlist-application.js +3 -3
  257. package/dist/libs/email/waitlist.js +3 -3
  258. package/dist/libs/email.js +6 -6
  259. package/dist/libs/posthog/client.js +1 -1
  260. package/dist/libs/posthog/native.js +1 -1
  261. package/dist/libs/posthog/server.js +1 -1
  262. package/dist/libs/pricing-examples.js +1 -1
  263. package/dist/node/application/context-storage/index.js +1 -1
  264. package/dist/node/application/index.js +6 -6
  265. package/dist/node/application/mcp/cliMcp.js +2 -2
  266. package/dist/node/application/mcp/cliMcp.onboarding.js +1 -1
  267. package/dist/node/application/mcp/common.js +1 -1
  268. package/dist/node/application/mcp/contractsMcp.js +2 -2
  269. package/dist/node/application/mcp/contractsMcpAdoptionTools.js +1 -1
  270. package/dist/node/application/mcp/contractsMcpResources.js +2 -2
  271. package/dist/node/application/mcp/contractsMcpTools.js +1 -1
  272. package/dist/node/application/mcp/docsMcp.catalog.js +2 -2
  273. package/dist/node/application/mcp/docsMcp.data.js +1 -1
  274. package/dist/node/application/mcp/docsMcp.js +3 -3
  275. package/dist/node/application/mcp/docsMcp.prompts.js +3 -3
  276. package/dist/node/application/mcp/docsMcp.reference.js +2 -2
  277. package/dist/node/application/mcp/docsMcp.resources.js +2 -2
  278. package/dist/node/application/mcp/docsMcp.tools.js +2 -2
  279. package/dist/node/application/mcp/index.js +6 -6
  280. package/dist/node/application/mcp/internalMcp.js +2 -2
  281. package/dist/node/application/mcp/normalizeMcpRequest.js +1 -1
  282. package/dist/node/application/mcp/providerRankingMcp.js +1 -1
  283. package/dist/node/bundles/LibraryBundle.js +1 -1
  284. package/dist/node/bundles/index.js +1 -1
  285. package/dist/node/components/docs/DocsIndexPage.js +2 -2
  286. package/dist/node/components/docs/advanced/AdvancedMCPPage.js +3 -3
  287. package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -1
  288. package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +2 -2
  289. package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -4
  290. package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +2 -2
  291. package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -2
  292. package/dist/node/components/docs/advanced/index.js +9 -9
  293. package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +6 -6
  294. package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +3 -3
  295. package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -7
  296. package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -6
  297. package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -2
  298. package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +1 -1
  299. package/dist/node/components/docs/architecture/index.js +20 -20
  300. package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -1
  301. package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -1
  302. package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -1
  303. package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +1 -1
  304. package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +1 -1
  305. package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -1
  306. package/dist/node/components/docs/comparison/index.js +1 -1
  307. package/dist/node/components/docs/docsManifest.js +1 -1
  308. package/dist/node/components/docs/ecosystem/IntegrationsPage.js +2 -2
  309. package/dist/node/components/docs/ecosystem/PluginsPage.js +4 -4
  310. package/dist/node/components/docs/ecosystem/RegistryPage.js +4 -4
  311. package/dist/node/components/docs/ecosystem/TemplatesPage.js +3 -3
  312. package/dist/node/components/docs/ecosystem/index.js +11 -11
  313. package/dist/node/components/docs/examples/DocsExamplesPage.js +1 -1
  314. package/dist/node/components/docs/examples/ExampleShowcasePage.js +2 -2
  315. package/dist/node/components/docs/examples/exampleShowcaseData.js +2 -2
  316. package/dist/node/components/docs/examples/index.js +2 -2
  317. package/dist/node/components/docs/generated/docs-index.generated.js +1 -1
  318. package/dist/node/components/docs/generated/index.js +1 -1
  319. package/dist/node/components/docs/generated/loader.js +1 -1
  320. package/dist/node/components/docs/getting-started/CLIPage.js +4 -4
  321. package/dist/node/components/docs/getting-started/CompatibilityPage.js +1 -1
  322. package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +4 -4
  323. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +1 -1
  324. package/dist/node/components/docs/getting-started/HelloWorldPage.js +5 -5
  325. package/dist/node/components/docs/getting-started/InstallationPage.js +3 -3
  326. package/dist/node/components/docs/getting-started/StartHerePage.js +3 -3
  327. package/dist/node/components/docs/getting-started/TroubleshootingPage.js +2 -2
  328. package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +1 -1
  329. package/dist/node/components/docs/getting-started/getting-started.docblocks.js +2 -2
  330. package/dist/node/components/docs/getting-started/index.js +17 -17
  331. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +2 -2
  332. package/dist/node/components/docs/guides/GuideConnectInRepoPage.js +6 -6
  333. package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -6
  334. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +3 -3
  335. package/dist/node/components/docs/guides/GuideFirstModuleBundlePage.js +4 -4
  336. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -2
  337. package/dist/node/components/docs/guides/GuideHostBuilderWorkbenchPage.js +7 -7
  338. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -8
  339. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
  340. package/dist/node/components/docs/guides/GuideReleaseCapsulesPage.js +3 -3
  341. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +4 -4
  342. package/dist/node/components/docs/guides/GuidesIndexPage.js +2 -2
  343. package/dist/node/components/docs/guides/index.js +43 -43
  344. package/dist/node/components/docs/index.js +375 -255
  345. package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -2
  346. package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -3
  347. package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +2 -2
  348. package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +3 -3
  349. package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -3
  350. package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +2 -2
  351. package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +2 -2
  352. package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +2 -2
  353. package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +1 -1
  354. package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +2 -2
  355. package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +2 -2
  356. package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +5 -5
  357. package/dist/node/components/docs/integrations/IntegrationsResendPage.js +3 -3
  358. package/dist/node/components/docs/integrations/IntegrationsS3Page.js +4 -4
  359. package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +2 -2
  360. package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +2 -2
  361. package/dist/node/components/docs/integrations/IntegrationsStripePage.js +2 -2
  362. package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +3 -3
  363. package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -2
  364. package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -2
  365. package/dist/node/components/docs/integrations/index.js +39 -39
  366. package/dist/node/components/docs/intent/ContractFirstApiPage.js +2 -2
  367. package/dist/node/components/docs/intent/DeterministicCodegenPage.js +2 -2
  368. package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +7 -7
  369. package/dist/node/components/docs/intent/OpenapiAlternativePage.js +3 -3
  370. package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +4 -4
  371. package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -2
  372. package/dist/node/components/docs/intent/index.js +15 -15
  373. package/dist/node/components/docs/intent/intent-pages.docblocks.js +1 -1
  374. package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +2 -2
  375. package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +2 -2
  376. package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +1 -1
  377. package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +2 -2
  378. package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +2 -2
  379. package/dist/node/components/docs/knowledge/index.js +5 -5
  380. package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +3 -3
  381. package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +3 -3
  382. package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +4 -4
  383. package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +2 -2
  384. package/dist/node/components/docs/libraries/LibrariesContractsPage.js +2 -2
  385. package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +3 -3
  386. package/dist/node/components/docs/libraries/LibrariesCrossPlatformUIPage.content.js +85 -0
  387. package/dist/node/components/docs/libraries/LibrariesCrossPlatformUIPage.js +85 -0
  388. package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +2 -2
  389. package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +3 -3
  390. package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +38 -2
  391. package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +4 -4
  392. package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +2 -2
  393. package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +3 -3
  394. package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -3
  395. package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +5 -5
  396. package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -4
  397. package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +1 -1
  398. package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +4 -4
  399. package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -3
  400. package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +4 -4
  401. package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +2 -2
  402. package/dist/node/components/docs/libraries/LibrariesSLOPage.js +3 -3
  403. package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +3 -3
  404. package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +3 -3
  405. package/dist/node/components/docs/libraries/LibrariesTestingPage.js +3 -3
  406. package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +2 -2
  407. package/dist/node/components/docs/libraries/LibrariesUIKitWebPage.js +2 -2
  408. package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -3
  409. package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +2 -2
  410. package/dist/node/components/docs/libraries/index.js +173 -53
  411. package/dist/node/components/docs/manifesto/ManifestoPage.js +1 -1
  412. package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +2 -2
  413. package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +2 -2
  414. package/dist/node/components/docs/ops/index.js +3 -3
  415. package/dist/node/components/docs/ops/ops-lifecycle.docblocks.js +2 -2
  416. package/dist/node/components/docs/ops/ops-runbooks-a.docblocks.js +2 -2
  417. package/dist/node/components/docs/ops/ops-runbooks-b.docblocks.js +2 -2
  418. package/dist/node/components/docs/ops/ops-slo-tenant.docblocks.js +2 -2
  419. package/dist/node/components/docs/ops/ops-top.docs.js +2 -2
  420. package/dist/node/components/docs/ops/ops.docs.js +6 -6
  421. package/dist/node/components/docs/product/product.docblocks.js +2 -2
  422. package/dist/node/components/docs/reference/DocsMarkdownContent.js +2 -2
  423. package/dist/node/components/docs/reference/DocsReferenceContent.js +3 -3
  424. package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +2 -2
  425. package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +2 -2
  426. package/dist/node/components/docs/reference/DocsReferencePage.js +3 -3
  427. package/dist/node/components/docs/reference/docsMarkdownParser.js +2 -2
  428. package/dist/node/components/docs/reference/index.js +4 -4
  429. package/dist/node/components/docs/safety/SafetyAuditingPage.js +2 -2
  430. package/dist/node/components/docs/safety/SafetyMigrationsPage.js +2 -2
  431. package/dist/node/components/docs/safety/SafetyOverviewPage.js +1 -1
  432. package/dist/node/components/docs/safety/SafetyPDPPage.js +2 -2
  433. package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +1 -1
  434. package/dist/node/components/docs/safety/SafetySigningPage.js +3 -3
  435. package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +2 -2
  436. package/dist/node/components/docs/safety/index.js +7 -7
  437. package/dist/node/components/docs/shared/StudioPrompt.js +1 -1
  438. package/dist/node/components/docs/specs/SpecsBuilderControlPlanePage.js +4 -4
  439. package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +2 -2
  440. package/dist/node/components/docs/specs/SpecsConnectPage.js +2 -2
  441. package/dist/node/components/docs/specs/SpecsDataViewsPage.js +2 -2
  442. package/dist/node/components/docs/specs/SpecsModuleBundlesPage.js +3 -3
  443. package/dist/node/components/docs/specs/SpecsOverlaysPage.js +2 -2
  444. package/dist/node/components/docs/specs/SpecsOverviewPage.js +1 -1
  445. package/dist/node/components/docs/specs/SpecsPolicyPage.js +3 -3
  446. package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +2 -2
  447. package/dist/node/components/docs/specs/index.js +13 -13
  448. package/dist/node/components/docs/studio/StudioBYOKPage.js +1 -1
  449. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +1 -1
  450. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +1 -1
  451. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +1 -1
  452. package/dist/node/components/docs/studio/StudioOverviewPage.js +1 -1
  453. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +1 -1
  454. package/dist/node/components/docs/studio/index.js +1 -1
  455. package/dist/node/components/docs/tech/contracts/tech-docs.docblocks.js +2 -2
  456. package/dist/node/components/integrations/index.js +2 -2
  457. package/dist/node/components/integrations/molecules/IntegrationCard.js +1 -1
  458. package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +1 -1
  459. package/dist/node/components/integrations/organisms/IntegrationSettings.js +2 -2
  460. package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +1 -1
  461. package/dist/node/components/legal/PrivacyTemplate.js +1 -1
  462. package/dist/node/components/legal/TermsTemplate.js +1 -1
  463. package/dist/node/components/legal/index.js +1 -1
  464. package/dist/node/components/shared/FeatureGateNotice.js +1 -1
  465. package/dist/node/components/shared/index.js +1 -1
  466. package/dist/node/components/shell/WorkspaceHeader.js +1 -1
  467. package/dist/node/components/shell/WorkspaceProjectShellLayout.js +1 -1
  468. package/dist/node/components/shell/WorkspaceShellRenderer.js +1 -1
  469. package/dist/node/components/shell/WorkspaceSidebar.js +1 -1
  470. package/dist/node/components/shell/index.js +1 -1
  471. package/dist/node/components/templates/engine/index.js +1 -1
  472. package/dist/node/components/templates/index.js +11 -11
  473. package/dist/node/components/templates/messaging/ConversationList.js +2 -2
  474. package/dist/node/components/templates/messaging/MessageComposer.js +4 -4
  475. package/dist/node/components/templates/messaging/MessageThread.js +3 -3
  476. package/dist/node/components/templates/messaging/MessagingWorkspace.js +5 -5
  477. package/dist/node/components/templates/messaging/index.js +5 -5
  478. package/dist/node/components/templates/recipes/LanguageSwitcher.js +1 -1
  479. package/dist/node/components/templates/recipes/RecipeCard.js +1 -1
  480. package/dist/node/components/templates/recipes/RecipeDetail.js +1 -1
  481. package/dist/node/components/templates/recipes/RecipeList.js +3 -3
  482. package/dist/node/components/templates/recipes/index.js +3 -3
  483. package/dist/node/components/templates/todos/FilterBar.js +1 -1
  484. package/dist/node/components/templates/todos/TaskForm.js +2 -2
  485. package/dist/node/components/templates/todos/TaskItem.js +1 -1
  486. package/dist/node/components/templates/todos/TaskList.js +5 -5
  487. package/dist/node/components/templates/todos/index.js +5 -5
  488. package/dist/node/config/contractspec-blueprint.js +1 -1
  489. package/dist/node/config/contractspec-branding.js +1 -1
  490. package/dist/node/config/contractspec-routes.js +1 -1
  491. package/dist/node/config/index.js +1 -1
  492. package/dist/node/features/contracts-registry.js +1 -1
  493. package/dist/node/features/docs/docs.contracts.js +1 -1
  494. package/dist/node/features/docs/index.js +1 -1
  495. package/dist/node/features/docs.feature.js +1 -1
  496. package/dist/node/features/index.js +1 -1
  497. package/dist/node/features/mcp.feature.js +1 -1
  498. package/dist/node/features/presentations.feature.js +1 -1
  499. package/dist/node/features/registry.js +1 -1
  500. package/dist/node/index.js +382 -262
  501. package/dist/node/infrastructure/elysia/index.js +1 -1
  502. package/dist/node/infrastructure/elysia/logger.js +1 -1
  503. package/dist/node/infrastructure/index.js +1 -1
  504. package/dist/node/libs/email/client.js +1 -1
  505. package/dist/node/libs/email/contact.js +3 -3
  506. package/dist/node/libs/email/newsletter.js +3 -3
  507. package/dist/node/libs/email/utils.js +2 -2
  508. package/dist/node/libs/email/waitlist-application.js +3 -3
  509. package/dist/node/libs/email/waitlist.js +3 -3
  510. package/dist/node/libs/email.js +6 -6
  511. package/dist/node/libs/posthog/client.js +1 -1
  512. package/dist/node/libs/posthog/native.js +1 -1
  513. package/dist/node/libs/posthog/server.js +1 -1
  514. package/dist/node/libs/pricing-examples.js +1 -1
  515. package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -1
  516. package/dist/node/presentation/features/atoms/FeatureIcon/index.js +1 -1
  517. package/dist/node/presentation/features/atoms/index.js +1 -1
  518. package/dist/node/presentation/features/hooks/index.js +1 -1
  519. package/dist/node/presentation/features/hooks/useContractsRegistry.js +1 -1
  520. package/dist/node/presentation/features/hooks/useFeatureFilters.js +1 -1
  521. package/dist/node/presentation/features/hooks/useFeatureRegistry.js +1 -1
  522. package/dist/node/presentation/features/hooks/useRelatedDocs.js +1 -1
  523. package/dist/node/presentation/features/index.js +1 -1
  524. package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -1
  525. package/dist/node/presentation/features/molecules/FeatureCard/index.js +1 -1
  526. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -1
  527. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -1
  528. package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -1
  529. package/dist/node/presentation/features/molecules/FeatureFilters/index.js +1 -1
  530. package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -1
  531. package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +1 -1
  532. package/dist/node/presentation/features/molecules/index.js +1 -1
  533. package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +1 -1
  534. package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -1
  535. package/dist/node/presentation/features/organisms/FeatureDetail/index.js +1 -1
  536. package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -1
  537. package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +1 -1
  538. package/dist/node/presentation/features/organisms/FeatureEventsList.js +1 -1
  539. package/dist/node/presentation/features/organisms/FeatureFormsList.js +1 -1
  540. package/dist/node/presentation/features/organisms/FeatureOperationsList.js +1 -1
  541. package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +1 -1
  542. package/dist/node/presentation/features/organisms/index.js +1 -1
  543. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -1
  544. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -1
  545. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -1
  546. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -1
  547. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -1
  548. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -1
  549. package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -1
  550. package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +1 -1
  551. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -1
  552. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -1
  553. package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -1
  554. package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +1 -1
  555. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -1
  556. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -1
  557. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -1
  558. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -1
  559. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -1
  560. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -1
  561. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -1
  562. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -1
  563. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -1
  564. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -1
  565. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -1
  566. package/dist/presentation/features/atoms/FeatureIcon/index.js +1 -1
  567. package/dist/presentation/features/atoms/index.js +1 -1
  568. package/dist/presentation/features/hooks/index.js +1 -1
  569. package/dist/presentation/features/hooks/useContractsRegistry.js +1 -1
  570. package/dist/presentation/features/hooks/useFeatureFilters.js +1 -1
  571. package/dist/presentation/features/hooks/useFeatureRegistry.js +1 -1
  572. package/dist/presentation/features/hooks/useRelatedDocs.js +1 -1
  573. package/dist/presentation/features/index.js +1 -1
  574. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -1
  575. package/dist/presentation/features/molecules/FeatureCard/index.js +1 -1
  576. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -1
  577. package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -1
  578. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -1
  579. package/dist/presentation/features/molecules/FeatureFilters/index.js +1 -1
  580. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -1
  581. package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +1 -1
  582. package/dist/presentation/features/molecules/index.js +1 -1
  583. package/dist/presentation/features/organisms/FeatureDataViewsList.js +1 -1
  584. package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -1
  585. package/dist/presentation/features/organisms/FeatureDetail/index.js +1 -1
  586. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -1
  587. package/dist/presentation/features/organisms/FeatureDiscovery/index.js +1 -1
  588. package/dist/presentation/features/organisms/FeatureEventsList.js +1 -1
  589. package/dist/presentation/features/organisms/FeatureFormsList.js +1 -1
  590. package/dist/presentation/features/organisms/FeatureOperationsList.js +1 -1
  591. package/dist/presentation/features/organisms/FeaturePresentationsList.js +1 -1
  592. package/dist/presentation/features/organisms/index.js +1 -1
  593. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -1
  594. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -1
  595. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -1
  596. package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -1
  597. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -1
  598. package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -1
  599. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -1
  600. package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +1 -1
  601. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -1
  602. package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -1
  603. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -1
  604. package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +1 -1
  605. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -1
  606. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -1
  607. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -1
  608. package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -1
  609. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -1
  610. package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -1
  611. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -1
  612. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -1
  613. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -1
  614. package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -1
  615. package/package.json +49 -24
  616. package/src/application/mcp/internalMcp.ts +1 -1
  617. package/src/bundles/LibraryBundle.ts +19 -130
  618. package/src/components/docs/docsManifest.test.ts +14 -0
  619. package/src/components/docs/docsManifest.ts +10 -0
  620. package/src/components/docs/examples/DocsExamplesPage.tsx +3 -3
  621. package/src/components/docs/examples/ExampleShowcasePage.tsx +1 -1
  622. package/src/components/docs/examples/exampleShowcaseData.test.ts +5 -3
  623. package/src/components/docs/examples/exampleShowcaseData.ts +3 -3
  624. package/src/components/docs/generated/docs-index._common.json +1699 -2008
  625. package/src/components/docs/generated/docs-index.agent-console.json +377 -377
  626. package/src/components/docs/generated/docs-index.ai-chat-assistant.json +17 -17
  627. package/src/components/docs/generated/docs-index.ai-chat.json +105 -105
  628. package/src/components/docs/generated/docs-index.ai-support-bot.json +9 -9
  629. package/src/components/docs/generated/docs-index.analytics-dashboard.json +169 -169
  630. package/src/components/docs/generated/docs-index.app-config.json +137 -137
  631. package/src/components/docs/generated/docs-index.artisan-knowledge-product.json +17 -17
  632. package/src/components/docs/generated/docs-index.artisan-payments-stripe.json +33 -33
  633. package/src/components/docs/generated/docs-index.audit-trail.json +49 -49
  634. package/src/components/docs/generated/docs-index.calendar-google.json +9 -9
  635. package/src/components/docs/generated/docs-index.content-generation.json +9 -9
  636. package/src/components/docs/generated/docs-index.control-plane.json +17 -17
  637. package/src/components/docs/generated/docs-index.crm-pipeline.json +161 -161
  638. package/src/components/docs/generated/docs-index.data-grid-showcase.json +25 -25
  639. package/src/components/docs/generated/docs-index.defineExample.json +9 -9
  640. package/src/components/docs/generated/docs-index.email-gmail.json +9 -9
  641. package/src/components/docs/generated/docs-index.feature-flags.json +217 -217
  642. package/src/components/docs/generated/docs-index.files.json +177 -177
  643. package/src/components/docs/generated/docs-index.generated.ts +20 -20
  644. package/src/components/docs/generated/docs-index.harness-lab.json +9 -9
  645. package/src/components/docs/generated/docs-index.health.json +97 -97
  646. package/src/components/docs/generated/docs-index.identity-rbac.json +313 -313
  647. package/src/components/docs/generated/docs-index.in-app-docs.json +9 -9
  648. package/src/components/docs/generated/docs-index.integration-hub.json +265 -265
  649. package/src/components/docs/generated/docs-index.integration-posthog.json +9 -9
  650. package/src/components/docs/generated/docs-index.integration-stripe.json +9 -9
  651. package/src/components/docs/generated/docs-index.integration-supabase.json +9 -9
  652. package/src/components/docs/generated/docs-index.jobs.json +137 -137
  653. package/src/components/docs/generated/docs-index.kb-update-pipeline.json +129 -129
  654. package/src/components/docs/generated/docs-index.knowledge-canon.json +9 -9
  655. package/src/components/docs/generated/docs-index.learning-journey-ambient-coach.json +9 -9
  656. package/src/components/docs/generated/docs-index.learning-journey-crm-onboarding.json +49 -49
  657. package/src/components/docs/generated/docs-index.learning-journey-duo-drills.json +9 -9
  658. package/src/components/docs/generated/docs-index.learning-journey-platform-tour.json +49 -49
  659. package/src/components/docs/generated/docs-index.learning-journey-quest-challenges.json +9 -9
  660. package/src/components/docs/generated/docs-index.learning-journey-registry.json +33 -33
  661. package/src/components/docs/generated/docs-index.learning-journey-studio-onboarding.json +49 -49
  662. package/src/components/docs/generated/docs-index.learning-journey-ui-coaching.json +9 -9
  663. package/src/components/docs/generated/docs-index.learning-journey-ui-gamified.json +9 -9
  664. package/src/components/docs/generated/docs-index.learning-journey-ui-onboarding.json +9 -9
  665. package/src/components/docs/generated/docs-index.learning-journey-ui-shared.json +9 -9
  666. package/src/components/docs/generated/docs-index.learning-journey.json +241 -241
  667. package/src/components/docs/generated/docs-index.learning-patterns.json +9 -9
  668. package/src/components/docs/generated/docs-index.lifecycle-cli.json +9 -9
  669. package/src/components/docs/generated/docs-index.lifecycle-dashboard.json +9 -9
  670. package/src/components/docs/generated/docs-index.locale-jurisdiction-gate.json +65 -65
  671. package/src/components/docs/generated/docs-index.manifest.json +432 -432
  672. package/src/components/docs/generated/docs-index.marketplace.json +337 -337
  673. package/src/components/docs/generated/docs-index.meeting-recorder-providers.json +9 -9
  674. package/src/components/docs/generated/docs-index.meeting-recorder.json +49 -49
  675. package/src/components/docs/generated/docs-index.messaging-agent-actions.json +17 -17
  676. package/src/components/docs/generated/docs-index.metrics.json +201 -201
  677. package/src/components/docs/generated/docs-index.minimal.json +17 -17
  678. package/src/components/docs/generated/docs-index.mobile-demo-landing.json +42 -0
  679. package/src/components/docs/generated/docs-index.notifications.json +65 -65
  680. package/src/components/docs/generated/docs-index.openbanking-powens.json +9 -9
  681. package/src/components/docs/generated/docs-index.openbanking.json +65 -65
  682. package/src/components/docs/generated/docs-index.opencode-cli.json +17 -17
  683. package/src/components/docs/generated/docs-index.personalization.json +9 -9
  684. package/src/components/docs/generated/docs-index.platform-acp.json +137 -137
  685. package/src/components/docs/generated/docs-index.platform-agent.json +201 -201
  686. package/src/components/docs/generated/docs-index.platform-context.json +121 -121
  687. package/src/components/docs/generated/docs-index.platform-control-plane.json +321 -321
  688. package/src/components/docs/generated/docs-index.platform-database.json +89 -89
  689. package/src/components/docs/generated/docs-index.platform-docs.json +161 -161
  690. package/src/components/docs/generated/docs-index.platform-harness.json +177 -177
  691. package/src/components/docs/generated/docs-index.platform-integrations.json +329 -329
  692. package/src/components/docs/generated/docs-index.platform-knowledge.json +57 -57
  693. package/src/components/docs/generated/docs-index.platform-provider-ranking.json +217 -217
  694. package/src/components/docs/generated/docs-index.pocket-family-office.json +129 -129
  695. package/src/components/docs/generated/docs-index.policy-safe-knowledge-assistant.json +9 -9
  696. package/src/components/docs/generated/docs-index.product-intent.json +9 -9
  697. package/src/components/docs/generated/docs-index.project-management-sync.json +9 -9
  698. package/src/components/docs/generated/docs-index.saas-boilerplate.json +209 -209
  699. package/src/components/docs/generated/docs-index.service-business-os.json +193 -193
  700. package/src/components/docs/generated/docs-index.team-hub.json +185 -185
  701. package/src/components/docs/generated/docs-index.unknown.json +521 -521
  702. package/src/components/docs/generated/docs-index.versioned-knowledge-base.json +81 -81
  703. package/src/components/docs/generated/docs-index.video-api-showcase.json +33 -33
  704. package/src/components/docs/generated/docs-index.video-docs-terminal.json +9 -9
  705. package/src/components/docs/generated/docs-index.video-marketing-clip.json +9 -9
  706. package/src/components/docs/generated/docs-index.visualization-showcase.json +17 -17
  707. package/src/components/docs/generated/docs-index.voice-providers.json +9 -9
  708. package/src/components/docs/generated/docs-index.wealth-snapshot.json +153 -153
  709. package/src/components/docs/generated/docs-index.workflow-system.json +433 -433
  710. package/src/components/docs/generated/docs-index.workspace-cli.json +9 -9
  711. package/src/components/docs/generated/index.ts +20 -5
  712. package/src/components/docs/generated/loader.ts +15 -8
  713. package/src/components/docs/getting-started/CompatibilityPage.tsx +14 -0
  714. package/src/components/docs/libraries/LibrariesCrossPlatformUIPage.content.ts +252 -0
  715. package/src/components/docs/libraries/LibrariesCrossPlatformUIPage.tsx +232 -0
  716. package/src/components/docs/libraries/LibrariesDesignSystemPage.tsx +79 -0
  717. package/src/components/docs/libraries/LibrariesOverviewPage.tsx +6 -0
  718. package/src/components/docs/libraries/LibrariesRuntimePage.tsx +15 -0
  719. package/src/components/docs/libraries/LibrariesUIKitPage.tsx +15 -0
  720. package/src/components/docs/libraries/LibrariesUIKitWebPage.tsx +14 -0
  721. package/src/components/docs/libraries/index.ts +1 -0
  722. package/src/components/docs/reference/DocsReferenceIndexPage.tsx +1 -1
  723. package/src/index.ts +1 -1
  724. package/src/components/docs/generated/docs-index.mobile-demo-tasks.json +0 -34
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{deterministicCodegenBrief as A}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as H}from"@contractspec/lib.content-gen/seo";import{CodeBlock as F}from"@contractspec/lib.design-system";import G from"@contractspec/lib.ui-link";import{ChevronRight as I}from"lucide-react";import{jsx as q,jsxs as w}from"react/jsx-runtime";var M=new H().optimize(A);function T(){return w("div",{className:"space-y-8",children:[w("div",{className:"space-y-3",children:[q("h1",{className:"font-bold text-4xl",children:A.title}),q("p",{className:"text-lg text-muted-foreground",children:A.summary})]}),w("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Regeneration Challenges"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:A.problems.map((D,E)=>q("li",{children:D},E))})]}),w("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Deterministic Solutions"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:A.solutions.map((D,E)=>q("li",{children:D},E))})]}),w("div",{className:"space-y-6",children:[w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Protected Zones"}),q("p",{className:"text-muted-foreground text-sm",children:"Separate generated code from hand-written business logic with clear boundaries."}),q(F,{language:"typescript",filename:"src/handlers/user-handlers.ts",code:`// Hand-written business logic (protected from regeneration)
2
+ var I=Object.defineProperty;var J=(w)=>w;function K(w,A){this[w]=J.bind(null,A)}var P=(w,A)=>{for(var F in A)I(w,F,{get:A[F],enumerable:!0,configurable:!0,set:K.bind(A,F)})};var Q=(w,A)=>()=>(w&&(A=w(w=0)),A);import{deterministicCodegenBrief as E}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as M}from"@contractspec/lib.content-gen/seo";import{CodeBlock as G}from"@contractspec/lib.design-system";import H from"@contractspec/lib.ui-link";import{ChevronRight as N}from"lucide-react";import{jsx as q,jsxs as D}from"react/jsx-runtime";var W=new M().optimize(E);function _(){return D("div",{className:"space-y-8",children:[D("div",{className:"space-y-3",children:[q("h1",{className:"font-bold text-4xl",children:E.title}),q("p",{className:"text-lg text-muted-foreground",children:E.summary})]}),D("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Regeneration Challenges"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:E.problems.map((w,A)=>q("li",{children:w},A))})]}),D("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Deterministic Solutions"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:E.solutions.map((w,A)=>q("li",{children:w},A))})]}),D("div",{className:"space-y-6",children:[D("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Protected Zones"}),q("p",{className:"text-muted-foreground text-sm",children:"Separate generated code from hand-written business logic with clear boundaries."}),q(G,{language:"typescript",filename:"src/handlers/user-handlers.ts",code:`// Hand-written business logic (protected from regeneration)
3
3
  export class UserService {
4
4
  async createUser(input: CreateUserInput): Promise<CreateUserOutput> {
5
5
  // Custom validation and business rules
@@ -36,4 +36,4 @@ export const createUserHandler = wrapOperationHandler(
36
36
  operationName: 'createUser',
37
37
  errorMapper: mapToStandardErrors,
38
38
  }
39
- );`})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Incremental Regeneration"}),q("p",{className:"text-muted-foreground text-sm",children:"Regenerate only what changed while preserving custom logic."}),q(F,{language:"bash",filename:"incremental-regen",code:"contractspec generate \\\n --incremental \\\n --preserve-zones ./src/handlers/*.ts \\\n --input ./src/contracts/ \\\n --output ./generated/"})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Conflict Detection"}),q("p",{className:"text-muted-foreground text-sm",children:"Automatically detect and report conflicts during regeneration."}),q(F,{language:"bash",filename:"check-conflicts",code:"contractspec generate \\\n --check-conflicts \\\n --report-conflicts ./conflicts.json"})]})]}),w("div",{className:"flex items-center gap-4 pt-4",children:[w(G,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Client Generation ",q(I,{size:16})]}),q(G,{href:"/docs/intent/schema-validation-typescript",className:"btn-ghost",children:"Type Safety"})]})]})}export{M as metadata,T as DeterministicCodegenPage};
39
+ );`})]}),D("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Incremental Regeneration"}),q("p",{className:"text-muted-foreground text-sm",children:"Regenerate only what changed while preserving custom logic."}),q(G,{language:"bash",filename:"incremental-regen",code:"contractspec generate \\\n --incremental \\\n --preserve-zones ./src/handlers/*.ts \\\n --input ./src/contracts/ \\\n --output ./generated/"})]}),D("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Conflict Detection"}),q("p",{className:"text-muted-foreground text-sm",children:"Automatically detect and report conflicts during regeneration."}),q(G,{language:"bash",filename:"check-conflicts",code:"contractspec generate \\\n --check-conflicts \\\n --report-conflicts ./conflicts.json"})]})]}),D("div",{className:"flex items-center gap-4 pt-4",children:[D(H,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Client Generation ",q(N,{size:16})]}),q(H,{href:"/docs/intent/schema-validation-typescript",className:"btn-ghost",children:"Type Safety"})]})]})}export{W as metadata,_ as DeterministicCodegenPage};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{generateClientFromSchemaBrief as D}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as I}from"@contractspec/lib.content-gen/seo";import{CodeBlock as A}from"@contractspec/lib.design-system";import H from"@contractspec/lib.ui-link";import{ChevronRight as J}from"lucide-react";import{jsx as q,jsxs as w}from"react/jsx-runtime";var T=new I().optimize(D);function U(){return w("div",{className:"space-y-8",children:[w("div",{className:"space-y-3",children:[q("h1",{className:"font-bold text-4xl",children:D.title}),q("p",{className:"text-lg text-muted-foreground",children:D.summary})]}),w("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Client Development Problems"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:D.problems.map((E,G)=>q("li",{children:E},G))})]}),w("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Automated Solutions"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:D.solutions.map((E,G)=>q("li",{children:E},G))})]}),w("div",{className:"space-y-6",children:[w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Contract Definition"}),q("p",{className:"text-muted-foreground text-sm",children:"Define your API contract once, generate clients for any language."}),q(A,{language:"typescript",filename:"src/contracts/api.contract.ts",code:`import { defineContract } from '@contractspec/lib.contracts-spec';
2
+ var J=Object.defineProperty;var K=(A)=>A;function M(A,D){this[A]=K.bind(null,D)}var Q=(A,D)=>{for(var H in D)J(A,H,{get:D[H],enumerable:!0,configurable:!0,set:M.bind(D,H)})};var T=(A,D)=>()=>(A&&(D=A(A=0)),D);import{generateClientFromSchemaBrief as G}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as N}from"@contractspec/lib.content-gen/seo";import{CodeBlock as E}from"@contractspec/lib.design-system";import I from"@contractspec/lib.ui-link";import{ChevronRight as P}from"lucide-react";import{jsx as q,jsxs as w}from"react/jsx-runtime";var _=new N().optimize(G);function $(){return w("div",{className:"space-y-8",children:[w("div",{className:"space-y-3",children:[q("h1",{className:"font-bold text-4xl",children:G.title}),q("p",{className:"text-lg text-muted-foreground",children:G.summary})]}),w("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Client Development Problems"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:G.problems.map((A,D)=>q("li",{children:A},D))})]}),w("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Automated Solutions"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:G.solutions.map((A,D)=>q("li",{children:A},D))})]}),w("div",{className:"space-y-6",children:[w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Contract Definition"}),q("p",{className:"text-muted-foreground text-sm",children:"Define your API contract once, generate clients for any language."}),q(E,{language:"typescript",filename:"src/contracts/api.contract.ts",code:`import { defineContract } from '@contractspec/lib.contracts-spec';
3
3
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
4
4
 
5
5
  export const ApiContract = defineContract({
@@ -69,7 +69,7 @@ export const ApiContract = defineContract({
69
69
  description: 'User management API with authentication',
70
70
  tags: ['users', 'authentication'],
71
71
  },
72
- });`})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Generate Multiple Clients"}),q("p",{className:"text-muted-foreground text-sm",children:"Generate type-safe clients for any language from the same contract."}),q(A,{language:"bash",filename:"generate-clients",code:`# Generate all supported language clients
72
+ });`})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Generate Multiple Clients"}),q("p",{className:"text-muted-foreground text-sm",children:"Generate type-safe clients for any language from the same contract."}),q(E,{language:"bash",filename:"generate-clients",code:`# Generate all supported language clients
73
73
  contractspec generate clients \\
74
74
  --contract ./src/contracts/api.contract.ts \\
75
75
  --output ./generated/clients \\
@@ -86,7 +86,7 @@ contractspec generate clients \\
86
86
  # --with-types: Include TypeScript definitions
87
87
  # --with-tests: Generate client test suites
88
88
  # --with-docs: Include client documentation
89
- # --framework: Use specific HTTP client framework`})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Generated Client Examples"}),q("p",{className:"text-muted-foreground text-sm",children:"Each generated client is fully type-safe and idiomatic."}),w("div",{className:"space-y-4",children:[w("div",{className:"card-subtle p-4",children:[q("h4",{className:"font-semibold text-lg",children:"TypeScript Client"}),q(A,{language:"typescript",filename:"generated/clients/typescript/index.ts",code:`import { MyAPIClient } from './client';
89
+ # --framework: Use specific HTTP client framework`})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Generated Client Examples"}),q("p",{className:"text-muted-foreground text-sm",children:"Each generated client is fully type-safe and idiomatic."}),w("div",{className:"space-y-4",children:[w("div",{className:"card-subtle p-4",children:[q("h4",{className:"font-semibold text-lg",children:"TypeScript Client"}),q(E,{language:"typescript",filename:"generated/clients/typescript/index.ts",code:`import { MyAPIClient } from './client';
90
90
 
91
91
  const client = new MyAPIClient({
92
92
  baseUrl: 'https://api.example.com',
@@ -106,7 +106,7 @@ const newUser = await client.createUser({
106
106
 
107
107
  // Full type inference
108
108
  // users: GetUsersResponse
109
- // newUser: CreateUserResponse`})]}),w("div",{className:"card-subtle p-4",children:[q("h4",{className:"font-semibold text-lg",children:"Python Client"}),q(A,{language:"python",filename:"generated/clients/python/index.py",code:`from myapi_client import MyAPIClient
109
+ // newUser: CreateUserResponse`})]}),w("div",{className:"card-subtle p-4",children:[q("h4",{className:"font-semibold text-lg",children:"Python Client"}),q(E,{language:"python",filename:"generated/clients/python/index.py",code:`from myapi_client import MyAPIClient
110
110
 
111
111
  client = MyAPIClient(
112
112
  base_url='https://api.example.com',
@@ -126,7 +126,7 @@ new_user = await client.create_user(
126
126
 
127
127
  # Full type hints
128
128
  # users: GetUsersResponse
129
- # new_user: CreateUserResponse`})]}),w("div",{className:"card-subtle p-4",children:[q("h4",{className:"font-semibold text-lg",children:"Go Client"}),q(A,{language:"go",filename:"generated/clients/go/client.go",code:`package main
129
+ # new_user: CreateUserResponse`})]}),w("div",{className:"card-subtle p-4",children:[q("h4",{className:"font-semibold text-lg",children:"Go Client"}),q(E,{language:"go",filename:"generated/clients/go/client.go",code:`package main
130
130
 
131
131
  import (
132
132
  "context"
@@ -153,7 +153,7 @@ func main() {
153
153
  // Full type checking at compile time
154
154
  // users: *GetUsersResponse
155
155
  // newUser: *CreateUserResponse
156
- }`})]})]})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Advanced Features"}),q("p",{className:"text-muted-foreground text-sm",children:"Generated clients include enterprise-grade features out of the box."}),q(A,{language:"typescript",filename:"client-features.ts",code:`// Advanced client features
156
+ }`})]})]})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Advanced Features"}),q("p",{className:"text-muted-foreground text-sm",children:"Generated clients include enterprise-grade features out of the box."}),q(E,{language:"typescript",filename:"client-features.ts",code:`// Advanced client features
157
157
  const client = new MyAPIClient({
158
158
  baseUrl: 'https://api.example.com',
159
159
  apiKey: 'your-api-key',
@@ -196,4 +196,4 @@ const user2 = client.getUser({ id: '123' }); // Uses cached result
196
196
  // Request cancellation
197
197
  const controller = new AbortController();
198
198
  const promise = client.getUsers({ page: 1, signal: controller.signal });
199
- controller.abort(); // Cancels the request`})]})]}),w("div",{className:"flex items-center gap-4 pt-4",children:[w(H,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Client Generation Guide ",q(J,{size:16})]}),q(H,{href:"/docs/intent/contract-first-api",className:"btn-ghost",children:"Contract-first API"})]})]})}export{T as metadata,U as GenerateClientFromSchemaPage};
199
+ controller.abort(); // Cancels the request`})]})]}),w("div",{className:"flex items-center gap-4 pt-4",children:[w(I,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Client Generation Guide ",q(P,{size:16})]}),q(I,{href:"/docs/intent/contract-first-api",className:"btn-ghost",children:"Contract-first API"})]})]})}export{_ as metadata,$ as GenerateClientFromSchemaPage};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{openapiAlternativeBrief as D}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as I}from"@contractspec/lib.content-gen/seo";import{CodeBlock as G}from"@contractspec/lib.design-system";import H from"@contractspec/lib.ui-link";import{ChevronRight as J}from"lucide-react";import{jsx as q,jsxs as w}from"react/jsx-runtime";var T=new I().optimize(D);function U(){return w("div",{className:"space-y-8",children:[w("div",{className:"space-y-3",children:[q("h1",{className:"font-bold text-4xl",children:D.title}),q("p",{className:"text-lg text-muted-foreground",children:D.summary})]}),w("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"OpenAPI Limitations"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:D.problems.map((E,F)=>q("li",{children:E},F))})]}),w("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"ContractSpec Advantages"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:D.solutions.map((E,F)=>q("li",{children:E},F))})]}),w("div",{className:"space-y-6",children:[w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Comparison: OpenAPI vs ContractSpec"}),q("p",{className:"text-muted-foreground text-sm",children:"Key differences between OpenAPI documentation and ContractSpec executable contracts."}),w("div",{className:"grid gap-6 md:grid-cols-2",children:[w("div",{className:"card-subtle space-y-3 p-4",children:[q("h3",{className:"font-semibold text-lg",children:"OpenAPI"}),w("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[q("li",{children:"\u2022 Documentation specification only"}),q("li",{children:"\u2022 No runtime validation"}),q("li",{children:"\u2022 Manual code generation"}),q("li",{children:"\u2022 Type safety requires tools"}),q("li",{children:"\u2022 Separate schemas from documentation"})]})]}),w("div",{className:"card-subtle space-y-3 p-4",children:[q("h3",{className:"font-semibold text-lg",children:"ContractSpec"}),w("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[q("li",{children:"\u2022 Executable contracts"}),q("li",{children:"\u2022 Built-in runtime validation"}),q("li",{children:"\u2022 Automatic code generation"}),q("li",{children:"\u2022 Type-safe by default"}),q("li",{children:"\u2022 Unified spec and implementation"})]})]})]})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Export from Contracts"}),q("p",{className:"text-muted-foreground text-sm",children:"Generate OpenAPI documentation from ContractSpec for existing tooling."}),q(G,{language:"bash",filename:"export-openapi",code:`# From ContractSpec contracts
2
+ var J=Object.defineProperty;var K=(D)=>D;function M(D,E){this[D]=K.bind(null,E)}var Q=(D,E)=>{for(var G in E)J(D,G,{get:E[G],enumerable:!0,configurable:!0,set:M.bind(E,G)})};var T=(D,E)=>()=>(D&&(E=D(D=0)),E);import{openapiAlternativeBrief as F}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as N}from"@contractspec/lib.content-gen/seo";import{CodeBlock as H}from"@contractspec/lib.design-system";import I from"@contractspec/lib.ui-link";import{ChevronRight as P}from"lucide-react";import{jsx as q,jsxs as w}from"react/jsx-runtime";var _=new N().optimize(F);function $(){return w("div",{className:"space-y-8",children:[w("div",{className:"space-y-3",children:[q("h1",{className:"font-bold text-4xl",children:F.title}),q("p",{className:"text-lg text-muted-foreground",children:F.summary})]}),w("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"OpenAPI Limitations"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:F.problems.map((D,E)=>q("li",{children:D},E))})]}),w("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"ContractSpec Advantages"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:F.solutions.map((D,E)=>q("li",{children:D},E))})]}),w("div",{className:"space-y-6",children:[w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Comparison: OpenAPI vs ContractSpec"}),q("p",{className:"text-muted-foreground text-sm",children:"Key differences between OpenAPI documentation and ContractSpec executable contracts."}),w("div",{className:"grid gap-6 md:grid-cols-2",children:[w("div",{className:"card-subtle space-y-3 p-4",children:[q("h3",{className:"font-semibold text-lg",children:"OpenAPI"}),w("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[q("li",{children:"\u2022 Documentation specification only"}),q("li",{children:"\u2022 No runtime validation"}),q("li",{children:"\u2022 Manual code generation"}),q("li",{children:"\u2022 Type safety requires tools"}),q("li",{children:"\u2022 Separate schemas from documentation"})]})]}),w("div",{className:"card-subtle space-y-3 p-4",children:[q("h3",{className:"font-semibold text-lg",children:"ContractSpec"}),w("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[q("li",{children:"\u2022 Executable contracts"}),q("li",{children:"\u2022 Built-in runtime validation"}),q("li",{children:"\u2022 Automatic code generation"}),q("li",{children:"\u2022 Type-safe by default"}),q("li",{children:"\u2022 Unified spec and implementation"})]})]})]})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Export from Contracts"}),q("p",{className:"text-muted-foreground text-sm",children:"Generate OpenAPI documentation from ContractSpec for existing tooling."}),q(H,{language:"bash",filename:"export-openapi",code:`# From ContractSpec contracts
3
3
  contractspec openapi export \\
4
4
  --registry ./src/contracts/registry.ts \\
5
5
  --format yaml \\
@@ -7,7 +7,7 @@ contractspec openapi export \\
7
7
 
8
8
  # Compare: Manual OpenAPI vs Generated
9
9
  # Manual: Write OpenAPI by hand, maintain separately
10
- # Generated: Single source of truth, always in sync`})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Beyond Documentation"}),q("p",{className:"text-muted-foreground text-sm",children:"ContractSpec provides more than just API documentation."}),q(G,{language:"typescript",filename:"multi-output-example.ts",code:`// One contract, multiple outputs
10
+ # Generated: Single source of truth, always in sync`})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Beyond Documentation"}),q("p",{className:"text-muted-foreground text-sm",children:"ContractSpec provides more than just API documentation."}),q(H,{language:"typescript",filename:"multi-output-example.ts",code:`// One contract, multiple outputs
11
11
  import { UserApiContract } from './contracts/user-api.contract';
12
12
 
13
13
  // Generated outputs
@@ -37,4 +37,4 @@ export const outputs = {
37
37
 
38
38
  // Type definitions
39
39
  types: UserApiContract.toTypescript(),
40
- };`})]})]}),w("div",{className:"flex items-center gap-4 pt-4",children:[w(H,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Generate from Contracts ",q(J,{size:16})]}),q(H,{href:"/docs/intent/generate-client-from-schema",className:"btn-ghost",children:"Client Generation"})]})]})}export{T as metadata,U as OpenapiAlternativePage};
40
+ };`})]})]}),w("div",{className:"flex items-center gap-4 pt-4",children:[w(I,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Generate from Contracts ",q(P,{size:16})]}),q(I,{href:"/docs/intent/generate-client-from-schema",className:"btn-ghost",children:"Client Generation"})]})]})}export{_ as metadata,$ as OpenapiAlternativePage};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{schemaValidationTypescriptBrief as A}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as H}from"@contractspec/lib.content-gen/seo";import{CodeBlock as F}from"@contractspec/lib.design-system";import G from"@contractspec/lib.ui-link";import{ChevronRight as I}from"lucide-react";import{jsx as q,jsxs as w}from"react/jsx-runtime";var Q=new H().optimize(A);function U(){return w("div",{className:"space-y-8",children:[w("div",{className:"space-y-3",children:[q("h1",{className:"font-bold text-4xl",children:A.title}),q("p",{className:"text-lg text-muted-foreground",children:A.summary})]}),w("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Validation Pain Points"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:A.problems.map((D,E)=>q("li",{children:D},E))})]}),w("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Type-safe Solutions"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:A.solutions.map((D,E)=>q("li",{children:D},E))})]}),w("div",{className:"space-y-6",children:[w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Contract Schema"}),q("p",{className:"text-muted-foreground text-sm",children:"Define data models with automatic TypeScript generation."}),q(F,{language:"typescript",filename:"src/contracts/user.schema.ts",code:`import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
2
+ var I=Object.defineProperty;var J=(w)=>w;function K(w,A){this[w]=J.bind(null,A)}var P=(w,A)=>{for(var F in A)I(w,F,{get:A[F],enumerable:!0,configurable:!0,set:K.bind(A,F)})};var Q=(w,A)=>()=>(w&&(A=w(w=0)),A);import{schemaValidationTypescriptBrief as E}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as M}from"@contractspec/lib.content-gen/seo";import{CodeBlock as G}from"@contractspec/lib.design-system";import H from"@contractspec/lib.ui-link";import{ChevronRight as N}from"lucide-react";import{jsx as q,jsxs as D}from"react/jsx-runtime";var $=new M().optimize(E);function v(){return D("div",{className:"space-y-8",children:[D("div",{className:"space-y-3",children:[q("h1",{className:"font-bold text-4xl",children:E.title}),q("p",{className:"text-lg text-muted-foreground",children:E.summary})]}),D("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Validation Pain Points"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:E.problems.map((w,A)=>q("li",{children:w},A))})]}),D("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Type-safe Solutions"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:E.solutions.map((w,A)=>q("li",{children:w},A))})]}),D("div",{className:"space-y-6",children:[D("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Contract Schema"}),q("p",{className:"text-muted-foreground text-sm",children:"Define data models with automatic TypeScript generation."}),q(G,{language:"typescript",filename:"src/contracts/user.schema.ts",code:`import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
3
3
 
4
4
  export const UserSchema = new SchemaModel({
5
5
  type: 'object',
@@ -41,7 +41,7 @@ export const UserSchema = new SchemaModel({
41
41
  name: 'User',
42
42
  description: 'User account information',
43
43
  },
44
- });`})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Generated Types"}),q("p",{className:"text-muted-foreground text-sm",children:"TypeScript types are automatically generated with proper validation."}),q(F,{language:"typescript",filename:"generated/types/user.ts",code:`// Auto-generated from UserSchema
44
+ });`})]}),D("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Generated Types"}),q("p",{className:"text-muted-foreground text-sm",children:"TypeScript types are automatically generated with proper validation."}),q(G,{language:"typescript",filename:"generated/types/user.ts",code:`// Auto-generated from UserSchema
45
45
  export interface User {
46
46
  id: string;
47
47
  email: string;
@@ -66,7 +66,7 @@ export function validateUser(data: unknown): User {
66
66
 
67
67
  export function isUser(data: unknown): data is User {
68
68
  return UserSchemaZod.safeParse(data).success;
69
- }`})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Runtime Validation"}),q("p",{className:"text-muted-foreground text-sm",children:"Use generated validation in your API handlers with zero boilerplate."}),q(F,{language:"typescript",filename:"src/handlers/user-handler.ts",code:`import { validateUser } from '../generated/types/user';
69
+ }`})]}),D("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Runtime Validation"}),q("p",{className:"text-muted-foreground text-sm",children:"Use generated validation in your API handlers with zero boilerplate."}),q(G,{language:"typescript",filename:"src/handlers/user-handler.ts",code:`import { validateUser } from '../generated/types/user';
70
70
 
71
71
  export async function createUserHandler(request: Request) {
72
72
  try {
@@ -94,4 +94,4 @@ export async function createUserHandler(request: Request) {
94
94
 
95
95
  throw error;
96
96
  }
97
- }`})]})]}),w("div",{className:"flex items-center gap-4 pt-4",children:[w(G,{href:"/docs/guides/spec-validation-and-typing",className:"btn-primary",children:["Type Safety Guide ",q(I,{size:16})]}),q(G,{href:"/docs/intent/generate-client-from-schema",className:"btn-ghost",children:"Client Generation"})]})]})}export{Q as metadata,U as SchemaValidationTypescriptPage};
97
+ }`})]})]}),D("div",{className:"flex items-center gap-4 pt-4",children:[D(H,{href:"/docs/guides/spec-validation-and-typing",className:"btn-primary",children:["Type Safety Guide ",q(N,{size:16})]}),q(H,{href:"/docs/intent/generate-client-from-schema",className:"btn-ghost",children:"Client Generation"})]})]})}export{$ as metadata,v as SchemaValidationTypescriptPage};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{specDrivenDevelopmentBrief as A}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as I}from"@contractspec/lib.content-gen/seo";import{CodeBlock as G}from"@contractspec/lib.design-system";import H from"@contractspec/lib.ui-link";import{ChevronRight as J}from"lucide-react";import{jsx as q,jsxs as w}from"react/jsx-runtime";var T=new I().optimize(A);function U(){return w("div",{className:"space-y-8",children:[w("div",{className:"space-y-3",children:[q("h1",{className:"font-bold text-4xl",children:A.title}),q("p",{className:"text-lg text-muted-foreground",children:A.summary})]}),w("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Why Spec-driven?"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:A.problems.map((E,F)=>q("li",{children:E},F))})]}),w("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Benefits"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:A.solutions.map((E,F)=>q("li",{children:E},F))})]}),w("div",{className:"space-y-6",children:[w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Feature Specification Example"}),q("p",{className:"text-muted-foreground text-sm",children:"Define a complete feature with operations, events, and data models."}),q(G,{language:"typescript",filename:"src/contracts/user-management.feature.ts",code:`import { defineFeature } from '@contractspec/lib.contracts-spec/features';
2
+ var J=Object.defineProperty;var K=(w)=>w;function M(w,A){this[w]=K.bind(null,A)}var Q=(w,A)=>{for(var G in A)J(w,G,{get:A[G],enumerable:!0,configurable:!0,set:M.bind(A,G)})};var T=(w,A)=>()=>(w&&(A=w(w=0)),A);import{specDrivenDevelopmentBrief as F}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as N}from"@contractspec/lib.content-gen/seo";import{CodeBlock as H}from"@contractspec/lib.design-system";import I from"@contractspec/lib.ui-link";import{ChevronRight as P}from"lucide-react";import{jsx as q,jsxs as E}from"react/jsx-runtime";var _=new N().optimize(F);function $(){return E("div",{className:"space-y-8",children:[E("div",{className:"space-y-3",children:[q("h1",{className:"font-bold text-4xl",children:F.title}),q("p",{className:"text-lg text-muted-foreground",children:F.summary})]}),E("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Why Spec-driven?"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:F.problems.map((w,A)=>q("li",{children:w},A))})]}),E("div",{className:"card-subtle space-y-4 p-6",children:[q("h2",{className:"font-bold text-2xl",children:"Benefits"}),q("ul",{className:"space-y-2 text-muted-foreground text-sm",children:F.solutions.map((w,A)=>q("li",{children:w},A))})]}),E("div",{className:"space-y-6",children:[E("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Feature Specification Example"}),q("p",{className:"text-muted-foreground text-sm",children:"Define a complete feature with operations, events, and data models."}),q(H,{language:"typescript",filename:"src/contracts/user-management.feature.ts",code:`import { defineFeature } from '@contractspec/lib.contracts-spec/features';
3
3
  import { defineOperation } from '@contractspec/lib.contracts-spec/operations';
4
4
  import { defineEvent } from '@contractspec/lib.contracts-spec/events';
5
5
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
@@ -71,4 +71,4 @@ export const UserManagementFeature = defineFeature({
71
71
  version: '1.0.0',
72
72
  description: 'Complete user management with operations and events',
73
73
  },
74
- });`})]}),w("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Generate Type-safe Implementations"}),q("p",{className:"text-muted-foreground text-sm",children:"Generate validation, types, and API handlers from your feature."}),q(G,{language:"bash",filename:"generate-from-feature",code:"contractspec generate \\\n --input ./src/contracts/user-management.feature.ts \\\n --output ./generated/user-management"})]})]}),w("div",{className:"flex items-center gap-4 pt-4",children:[w(H,{href:"/docs/guides/spec-validation-and-typing",className:"btn-primary",children:["Type Safety Guide ",q(J,{size:16})]}),q(H,{href:"/docs/intent/deterministic-codegen",className:"btn-ghost",children:"Deterministic Codegen"})]})]})}export{T as metadata,U as SpecDrivenDevelopmentPage};
74
+ });`})]}),E("div",{className:"space-y-3",children:[q("h2",{className:"font-bold text-2xl",children:"Generate Type-safe Implementations"}),q("p",{className:"text-muted-foreground text-sm",children:"Generate validation, types, and API handlers from your feature."}),q(H,{language:"bash",filename:"generate-from-feature",code:"contractspec generate \\\n --input ./src/contracts/user-management.feature.ts \\\n --output ./generated/user-management"})]})]}),E("div",{className:"flex items-center gap-4 pt-4",children:[E(I,{href:"/docs/guides/spec-validation-and-typing",className:"btn-primary",children:["Type Safety Guide ",q(P,{size:16})]}),q(I,{href:"/docs/intent/deterministic-codegen",className:"btn-ghost",children:"Deterministic Codegen"})]})]})}export{_ as metadata,$ as SpecDrivenDevelopmentPage};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- var B={title:"Contract-first API",summary:"Design APIs by writing contracts first, then generate consistent implementations across frameworks.",problems:["API drift between frontend and backend","Inconsistent error handling across endpoints","Documentation becomes outdated quickly","Manual OpenAPI maintenance is error-prone"],solutions:["Single source of truth for API contracts","Generate OpenAPI and SDKs from contracts","Type-safe request/response validation","Always-in-sync documentation"],audience:{role:"API developers",industry:"Software development",maturity:"scaleup"},callToAction:"Start with a simple operation contract",references:[{label:"Next.js One Endpoint Guide",url:"/docs/guides/nextjs-one-endpoint"},{label:"API Reference",url:"/docs/api"}]},s={title:"Spec-driven development",summary:"Build features by writing specifications first, then generate type-safe implementations.",problems:["Feature requirements are ambiguous","Frontend and backend implementations diverge","Testing lacks clear contract definitions","Code reviews focus on style instead of behavior"],solutions:["Executable specifications as single source of truth","Generate type-safe clients from specs","Automated contract testing","Clear behavior contracts for teams"],audience:{role:"Development teams",industry:"Software engineering",maturity:"enterprise"},callToAction:"Define your first feature spec",references:[{label:"Spec Validation + Typing Guide",url:"/docs/guides/spec-validation-and-typing"},{label:"Core Contracts",url:"/docs/core-contracts"}]},j={title:"Deterministic codegen",summary:"Regenerate code from contracts without breaking existing functionality or losing customizations.",problems:["Generated code conflicts with manual changes","Regeneration loses custom business logic","Teams avoid regeneration after customization","Code migration between versions is risky"],solutions:["Clear separation of generated vs hand-written code","Incremental regeneration with conflict detection","Protected zones for custom logic","Automatic migration paths"],audience:{role:"Platform engineers",industry:"Developer tools",maturity:"scaleup"},callToAction:"Try deterministic regeneration",references:[{label:"Generate Docs + Clients Guide",url:"/docs/guides/generate-docs-clients-schemas"},{label:"CLI Reference",url:"/docs/getting-started/cli"}]},x={title:"Schema validation TypeScript",summary:"Generate TypeScript types from contracts and validate data at runtime with zero overhead.",problems:["Runtime type validation is boilerplate-heavy","Type definitions drift from schemas","Validation logic scattered across codebase","Poor error messages for invalid data"],solutions:["Auto-generated TypeScript from contracts","Zod schemas for runtime validation","Type-safe validation with clear errors","Single source of schema truth"],audience:{role:"TypeScript developers",industry:"Web development",maturity:"early"},callToAction:"Generate typed contracts now",references:[{label:"Type Safety Guide",url:"/docs/guides/spec-validation-and-typing"},{label:"Schema Reference",url:"/docs/schemas"}]},ee={title:"OpenAPI alternative",summary:"A spec-first approach that goes beyond OpenAPI with executable contracts and code generation.",problems:["OpenAPI is documentation-only","No type safety from OpenAPI specs","Manual SDK generation is complex","Cannot validate implementations against OpenAPI"],solutions:["Executable contracts with validation","Generate multiple outputs from one spec","Type-safe by default","Built-in testing and validation"],audience:{role:"API architects",industry:"Enterprise software",maturity:"enterprise"},callToAction:"Compare with OpenAPI approach",references:[{label:"Generate OpenAPI from Contracts",url:"/docs/guides/generate-docs-clients-schemas"},{label:"Contract vs OpenAPI",url:"/docs/comparison/openapi"}]},te={title:"Generate client from schema",summary:"Automatically generate type-safe API clients in any language from your contracts.",problems:["Writing API clients is repetitive","Manual clients have type mismatches","Keeping clients in sync with APIs","Language-specific client maintenance"],solutions:["Generate clients for multiple languages","Type-safe request/response handling","Automatic client updates from contracts","Consistent error handling across languages"],audience:{role:"Full-stack developers",industry:"Software development",maturity:"scaleup"},callToAction:"Generate your first API client",references:[{label:"Client Generation Guide",url:"/docs/guides/generate-docs-clients-schemas"},{label:"Supported Languages",url:"/docs/integrations"}]};import{contractFirstApiBrief as p}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as W}from"@contractspec/lib.content-gen/seo";import{CodeBlock as T}from"@contractspec/lib.design-system";import b from"@contractspec/lib.ui-link";import{ChevronRight as Z}from"lucide-react";import{jsx as u,jsxs as d}from"react/jsx-runtime";var ie=new W().optimize(p);function H(){return d("div",{className:"space-y-8",children:[d("div",{className:"space-y-3",children:[u("h1",{className:"font-bold text-4xl",children:p.title}),u("p",{className:"text-lg text-muted-foreground",children:p.summary})]}),d("div",{className:"card-subtle space-y-4 p-6",children:[u("h2",{className:"font-bold text-2xl",children:"Problems Solved"}),u("ul",{className:"space-y-2 text-muted-foreground text-sm",children:p.problems.map((a,n)=>u("li",{children:a},n))})]}),d("div",{className:"card-subtle space-y-4 p-6",children:[u("h2",{className:"font-bold text-2xl",children:"Solutions"}),u("ul",{className:"space-y-2 text-muted-foreground text-sm",children:p.solutions.map((a,n)=>u("li",{children:a},n))})]}),d("div",{className:"space-y-6",children:[d("div",{className:"space-y-3",children:[u("h2",{className:"font-bold text-2xl",children:"Quick Start"}),u("p",{className:"text-muted-foreground text-sm",children:"Define your first API contract and generate consistent implementations."}),u(T,{language:"typescript",filename:"src/contracts/user-create.operation.ts",code:`import { defineOperation } from '@contractspec/lib.contracts-spec/operations';
2
+ var Z=Object.defineProperty;var H=(e)=>e;function J(e,t){this[e]=H.bind(null,t)}var ee=(e,t)=>{for(var G in t)Z(e,G,{get:t[G],enumerable:!0,configurable:!0,set:J.bind(t,G)})};var te=(e,t)=>()=>(e&&(t=e(e=0)),t);var ne={title:"Contract-first API",summary:"Design APIs by writing contracts first, then generate consistent implementations across frameworks.",problems:["API drift between frontend and backend","Inconsistent error handling across endpoints","Documentation becomes outdated quickly","Manual OpenAPI maintenance is error-prone"],solutions:["Single source of truth for API contracts","Generate OpenAPI and SDKs from contracts","Type-safe request/response validation","Always-in-sync documentation"],audience:{role:"API developers",industry:"Software development",maturity:"scaleup"},callToAction:"Start with a simple operation contract",references:[{label:"Next.js One Endpoint Guide",url:"/docs/guides/nextjs-one-endpoint"},{label:"API Reference",url:"/docs/api"}]},re={title:"Spec-driven development",summary:"Build features by writing specifications first, then generate type-safe implementations.",problems:["Feature requirements are ambiguous","Frontend and backend implementations diverge","Testing lacks clear contract definitions","Code reviews focus on style instead of behavior"],solutions:["Executable specifications as single source of truth","Generate type-safe clients from specs","Automated contract testing","Clear behavior contracts for teams"],audience:{role:"Development teams",industry:"Software engineering",maturity:"enterprise"},callToAction:"Define your first feature spec",references:[{label:"Spec Validation + Typing Guide",url:"/docs/guides/spec-validation-and-typing"},{label:"Core Contracts",url:"/docs/core-contracts"}]},oe={title:"Deterministic codegen",summary:"Regenerate code from contracts without breaking existing functionality or losing customizations.",problems:["Generated code conflicts with manual changes","Regeneration loses custom business logic","Teams avoid regeneration after customization","Code migration between versions is risky"],solutions:["Clear separation of generated vs hand-written code","Incremental regeneration with conflict detection","Protected zones for custom logic","Automatic migration paths"],audience:{role:"Platform engineers",industry:"Developer tools",maturity:"scaleup"},callToAction:"Try deterministic regeneration",references:[{label:"Generate Docs + Clients Guide",url:"/docs/guides/generate-docs-clients-schemas"},{label:"CLI Reference",url:"/docs/getting-started/cli"}]},ue={title:"Schema validation TypeScript",summary:"Generate TypeScript types from contracts and validate data at runtime with zero overhead.",problems:["Runtime type validation is boilerplate-heavy","Type definitions drift from schemas","Validation logic scattered across codebase","Poor error messages for invalid data"],solutions:["Auto-generated TypeScript from contracts","Zod schemas for runtime validation","Type-safe validation with clear errors","Single source of schema truth"],audience:{role:"TypeScript developers",industry:"Web development",maturity:"early"},callToAction:"Generate typed contracts now",references:[{label:"Type Safety Guide",url:"/docs/guides/spec-validation-and-typing"},{label:"Schema Reference",url:"/docs/schemas"}]},le={title:"OpenAPI alternative",summary:"A spec-first approach that goes beyond OpenAPI with executable contracts and code generation.",problems:["OpenAPI is documentation-only","No type safety from OpenAPI specs","Manual SDK generation is complex","Cannot validate implementations against OpenAPI"],solutions:["Executable contracts with validation","Generate multiple outputs from one spec","Type-safe by default","Built-in testing and validation"],audience:{role:"API architects",industry:"Enterprise software",maturity:"enterprise"},callToAction:"Compare with OpenAPI approach",references:[{label:"Generate OpenAPI from Contracts",url:"/docs/guides/generate-docs-clients-schemas"},{label:"Contract vs OpenAPI",url:"/docs/comparison/openapi"}]},ie={title:"Generate client from schema",summary:"Automatically generate type-safe API clients in any language from your contracts.",problems:["Writing API clients is repetitive","Manual clients have type mismatches","Keeping clients in sync with APIs","Language-specific client maintenance"],solutions:["Generate clients for multiple languages","Type-safe request/response handling","Automatic client updates from contracts","Consistent error handling across languages"],audience:{role:"Full-stack developers",industry:"Software development",maturity:"scaleup"},callToAction:"Generate your first API client",references:[{label:"Client Generation Guide",url:"/docs/guides/generate-docs-clients-schemas"},{label:"Supported Languages",url:"/docs/integrations"}]};import{contractFirstApiBrief as p}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as Q}from"@contractspec/lib.content-gen/seo";import{CodeBlock as b}from"@contractspec/lib.design-system";import S from"@contractspec/lib.ui-link";import{ChevronRight as R}from"lucide-react";import{jsx as u,jsxs as d}from"react/jsx-runtime";var pe=new Q().optimize(p);function U(){return d("div",{className:"space-y-8",children:[d("div",{className:"space-y-3",children:[u("h1",{className:"font-bold text-4xl",children:p.title}),u("p",{className:"text-lg text-muted-foreground",children:p.summary})]}),d("div",{className:"card-subtle space-y-4 p-6",children:[u("h2",{className:"font-bold text-2xl",children:"Problems Solved"}),u("ul",{className:"space-y-2 text-muted-foreground text-sm",children:p.problems.map((e,t)=>u("li",{children:e},t))})]}),d("div",{className:"card-subtle space-y-4 p-6",children:[u("h2",{className:"font-bold text-2xl",children:"Solutions"}),u("ul",{className:"space-y-2 text-muted-foreground text-sm",children:p.solutions.map((e,t)=>u("li",{children:e},t))})]}),d("div",{className:"space-y-6",children:[d("div",{className:"space-y-3",children:[u("h2",{className:"font-bold text-2xl",children:"Quick Start"}),u("p",{className:"text-muted-foreground text-sm",children:"Define your first API contract and generate consistent implementations."}),u(b,{language:"typescript",filename:"src/contracts/user-create.operation.ts",code:`import { defineOperation } from '@contractspec/lib.contracts-spec/operations';
3
3
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
4
4
 
5
5
  export const CreateUserOperation = defineOperation({
@@ -33,7 +33,7 @@ export const CreateUserOperation = defineOperation({
33
33
  tags: ['users', 'auth'],
34
34
  description: 'Create a new user account with email and password',
35
35
  },
36
- });`})]}),d("div",{className:"space-y-3",children:[u("h2",{className:"font-bold text-2xl",children:"Generate OpenAPI"}),u("p",{className:"text-muted-foreground text-sm",children:"Export OpenAPI documentation directly from your contracts."}),u(T,{language:"bash",filename:"export-openapi",code:"contractspec openapi export \\\n --registry ./src/contracts/registry.ts \\\n --out ./openapi.json"})]})]}),d("div",{className:"flex items-center gap-4 pt-4",children:[d(b,{href:"/docs/guides/nextjs-one-endpoint",className:"btn-primary",children:["Next.js Guide ",u(Z,{size:16})]}),u(b,{href:"/docs/intent/spec-driven-development",className:"btn-ghost",children:"Spec-driven Development"})]})]})}import{deterministicCodegenBrief as A}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as J}from"@contractspec/lib.content-gen/seo";import{CodeBlock as G}from"@contractspec/lib.design-system";import S from"@contractspec/lib.ui-link";import{ChevronRight as Q}from"lucide-react";import{jsx as r,jsxs as f}from"react/jsx-runtime";var me=new J().optimize(A);function R(){return f("div",{className:"space-y-8",children:[f("div",{className:"space-y-3",children:[r("h1",{className:"font-bold text-4xl",children:A.title}),r("p",{className:"text-lg text-muted-foreground",children:A.summary})]}),f("div",{className:"card-subtle space-y-4 p-6",children:[r("h2",{className:"font-bold text-2xl",children:"Regeneration Challenges"}),r("ul",{className:"space-y-2 text-muted-foreground text-sm",children:A.problems.map((a,n)=>r("li",{children:a},n))})]}),f("div",{className:"card-subtle space-y-4 p-6",children:[r("h2",{className:"font-bold text-2xl",children:"Deterministic Solutions"}),r("ul",{className:"space-y-2 text-muted-foreground text-sm",children:A.solutions.map((a,n)=>r("li",{children:a},n))})]}),f("div",{className:"space-y-6",children:[f("div",{className:"space-y-3",children:[r("h2",{className:"font-bold text-2xl",children:"Protected Zones"}),r("p",{className:"text-muted-foreground text-sm",children:"Separate generated code from hand-written business logic with clear boundaries."}),r(G,{language:"typescript",filename:"src/handlers/user-handlers.ts",code:`// Hand-written business logic (protected from regeneration)
36
+ });`})]}),d("div",{className:"space-y-3",children:[u("h2",{className:"font-bold text-2xl",children:"Generate OpenAPI"}),u("p",{className:"text-muted-foreground text-sm",children:"Export OpenAPI documentation directly from your contracts."}),u(b,{language:"bash",filename:"export-openapi",code:"contractspec openapi export \\\n --registry ./src/contracts/registry.ts \\\n --out ./openapi.json"})]})]}),d("div",{className:"flex items-center gap-4 pt-4",children:[d(S,{href:"/docs/guides/nextjs-one-endpoint",className:"btn-primary",children:["Next.js Guide ",u(R,{size:16})]}),u(S,{href:"/docs/intent/spec-driven-development",className:"btn-ghost",children:"Spec-driven Development"})]})]})}import{deterministicCodegenBrief as A}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as X}from"@contractspec/lib.content-gen/seo";import{CodeBlock as v}from"@contractspec/lib.design-system";import O from"@contractspec/lib.ui-link";import{ChevronRight as Y}from"lucide-react";import{jsx as r,jsxs as f}from"react/jsx-runtime";var he=new X().optimize(A);function _(){return f("div",{className:"space-y-8",children:[f("div",{className:"space-y-3",children:[r("h1",{className:"font-bold text-4xl",children:A.title}),r("p",{className:"text-lg text-muted-foreground",children:A.summary})]}),f("div",{className:"card-subtle space-y-4 p-6",children:[r("h2",{className:"font-bold text-2xl",children:"Regeneration Challenges"}),r("ul",{className:"space-y-2 text-muted-foreground text-sm",children:A.problems.map((e,t)=>r("li",{children:e},t))})]}),f("div",{className:"card-subtle space-y-4 p-6",children:[r("h2",{className:"font-bold text-2xl",children:"Deterministic Solutions"}),r("ul",{className:"space-y-2 text-muted-foreground text-sm",children:A.solutions.map((e,t)=>r("li",{children:e},t))})]}),f("div",{className:"space-y-6",children:[f("div",{className:"space-y-3",children:[r("h2",{className:"font-bold text-2xl",children:"Protected Zones"}),r("p",{className:"text-muted-foreground text-sm",children:"Separate generated code from hand-written business logic with clear boundaries."}),r(v,{language:"typescript",filename:"src/handlers/user-handlers.ts",code:`// Hand-written business logic (protected from regeneration)
37
37
  export class UserService {
38
38
  async createUser(input: CreateUserInput): Promise<CreateUserOutput> {
39
39
  // Custom validation and business rules
@@ -70,7 +70,7 @@ export const createUserHandler = wrapOperationHandler(
70
70
  operationName: 'createUser',
71
71
  errorMapper: mapToStandardErrors,
72
72
  }
73
- );`})]}),f("div",{className:"space-y-3",children:[r("h2",{className:"font-bold text-2xl",children:"Incremental Regeneration"}),r("p",{className:"text-muted-foreground text-sm",children:"Regenerate only what changed while preserving custom logic."}),r(G,{language:"bash",filename:"incremental-regen",code:"contractspec generate \\\n --incremental \\\n --preserve-zones ./src/handlers/*.ts \\\n --input ./src/contracts/ \\\n --output ./generated/"})]}),f("div",{className:"space-y-3",children:[r("h2",{className:"font-bold text-2xl",children:"Conflict Detection"}),r("p",{className:"text-muted-foreground text-sm",children:"Automatically detect and report conflicts during regeneration."}),r(G,{language:"bash",filename:"check-conflicts",code:"contractspec generate \\\n --check-conflicts \\\n --report-conflicts ./conflicts.json"})]})]}),f("div",{className:"flex items-center gap-4 pt-4",children:[f(S,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Client Generation ",r(Q,{size:16})]}),r(S,{href:"/docs/intent/schema-validation-typescript",className:"btn-ghost",children:"Type Safety"})]})]})}import{generateClientFromSchemaBrief as I}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as U}from"@contractspec/lib.content-gen/seo";import{CodeBlock as g}from"@contractspec/lib.design-system";import O from"@contractspec/lib.ui-link";import{ChevronRight as X}from"lucide-react";import{jsx as t,jsxs as i}from"react/jsx-runtime";var be=new U().optimize(I);function Y(){return i("div",{className:"space-y-8",children:[i("div",{className:"space-y-3",children:[t("h1",{className:"font-bold text-4xl",children:I.title}),t("p",{className:"text-lg text-muted-foreground",children:I.summary})]}),i("div",{className:"card-subtle space-y-4 p-6",children:[t("h2",{className:"font-bold text-2xl",children:"Client Development Problems"}),t("ul",{className:"space-y-2 text-muted-foreground text-sm",children:I.problems.map((a,n)=>t("li",{children:a},n))})]}),i("div",{className:"card-subtle space-y-4 p-6",children:[t("h2",{className:"font-bold text-2xl",children:"Automated Solutions"}),t("ul",{className:"space-y-2 text-muted-foreground text-sm",children:I.solutions.map((a,n)=>t("li",{children:a},n))})]}),i("div",{className:"space-y-6",children:[i("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"Contract Definition"}),t("p",{className:"text-muted-foreground text-sm",children:"Define your API contract once, generate clients for any language."}),t(g,{language:"typescript",filename:"src/contracts/api.contract.ts",code:`import { defineContract } from '@contractspec/lib.contracts-spec';
73
+ );`})]}),f("div",{className:"space-y-3",children:[r("h2",{className:"font-bold text-2xl",children:"Incremental Regeneration"}),r("p",{className:"text-muted-foreground text-sm",children:"Regenerate only what changed while preserving custom logic."}),r(v,{language:"bash",filename:"incremental-regen",code:"contractspec generate \\\n --incremental \\\n --preserve-zones ./src/handlers/*.ts \\\n --input ./src/contracts/ \\\n --output ./generated/"})]}),f("div",{className:"space-y-3",children:[r("h2",{className:"font-bold text-2xl",children:"Conflict Detection"}),r("p",{className:"text-muted-foreground text-sm",children:"Automatically detect and report conflicts during regeneration."}),r(v,{language:"bash",filename:"check-conflicts",code:"contractspec generate \\\n --check-conflicts \\\n --report-conflicts ./conflicts.json"})]})]}),f("div",{className:"flex items-center gap-4 pt-4",children:[f(O,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Client Generation ",r(Y,{size:16})]}),r(O,{href:"/docs/intent/schema-validation-typescript",className:"btn-ghost",children:"Type Safety"})]})]})}import{generateClientFromSchemaBrief as I}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as $}from"@contractspec/lib.content-gen/seo";import{CodeBlock as g}from"@contractspec/lib.design-system";import q from"@contractspec/lib.ui-link";import{ChevronRight as D}from"lucide-react";import{jsx as n,jsxs as i}from"react/jsx-runtime";var Ne=new $().optimize(I);function z(){return i("div",{className:"space-y-8",children:[i("div",{className:"space-y-3",children:[n("h1",{className:"font-bold text-4xl",children:I.title}),n("p",{className:"text-lg text-muted-foreground",children:I.summary})]}),i("div",{className:"card-subtle space-y-4 p-6",children:[n("h2",{className:"font-bold text-2xl",children:"Client Development Problems"}),n("ul",{className:"space-y-2 text-muted-foreground text-sm",children:I.problems.map((e,t)=>n("li",{children:e},t))})]}),i("div",{className:"card-subtle space-y-4 p-6",children:[n("h2",{className:"font-bold text-2xl",children:"Automated Solutions"}),n("ul",{className:"space-y-2 text-muted-foreground text-sm",children:I.solutions.map((e,t)=>n("li",{children:e},t))})]}),i("div",{className:"space-y-6",children:[i("div",{className:"space-y-3",children:[n("h2",{className:"font-bold text-2xl",children:"Contract Definition"}),n("p",{className:"text-muted-foreground text-sm",children:"Define your API contract once, generate clients for any language."}),n(g,{language:"typescript",filename:"src/contracts/api.contract.ts",code:`import { defineContract } from '@contractspec/lib.contracts-spec';
74
74
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
75
75
 
76
76
  export const ApiContract = defineContract({
@@ -140,7 +140,7 @@ export const ApiContract = defineContract({
140
140
  description: 'User management API with authentication',
141
141
  tags: ['users', 'authentication'],
142
142
  },
143
- });`})]}),i("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"Generate Multiple Clients"}),t("p",{className:"text-muted-foreground text-sm",children:"Generate type-safe clients for any language from the same contract."}),t(g,{language:"bash",filename:"generate-clients",code:`# Generate all supported language clients
143
+ });`})]}),i("div",{className:"space-y-3",children:[n("h2",{className:"font-bold text-2xl",children:"Generate Multiple Clients"}),n("p",{className:"text-muted-foreground text-sm",children:"Generate type-safe clients for any language from the same contract."}),n(g,{language:"bash",filename:"generate-clients",code:`# Generate all supported language clients
144
144
  contractspec generate clients \\
145
145
  --contract ./src/contracts/api.contract.ts \\
146
146
  --output ./generated/clients \\
@@ -157,7 +157,7 @@ contractspec generate clients \\
157
157
  # --with-types: Include TypeScript definitions
158
158
  # --with-tests: Generate client test suites
159
159
  # --with-docs: Include client documentation
160
- # --framework: Use specific HTTP client framework`})]}),i("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"Generated Client Examples"}),t("p",{className:"text-muted-foreground text-sm",children:"Each generated client is fully type-safe and idiomatic."}),i("div",{className:"space-y-4",children:[i("div",{className:"card-subtle p-4",children:[t("h4",{className:"font-semibold text-lg",children:"TypeScript Client"}),t(g,{language:"typescript",filename:"generated/clients/typescript/index.ts",code:`import { MyAPIClient } from './client';
160
+ # --framework: Use specific HTTP client framework`})]}),i("div",{className:"space-y-3",children:[n("h2",{className:"font-bold text-2xl",children:"Generated Client Examples"}),n("p",{className:"text-muted-foreground text-sm",children:"Each generated client is fully type-safe and idiomatic."}),i("div",{className:"space-y-4",children:[i("div",{className:"card-subtle p-4",children:[n("h4",{className:"font-semibold text-lg",children:"TypeScript Client"}),n(g,{language:"typescript",filename:"generated/clients/typescript/index.ts",code:`import { MyAPIClient } from './client';
161
161
 
162
162
  const client = new MyAPIClient({
163
163
  baseUrl: 'https://api.example.com',
@@ -177,7 +177,7 @@ const newUser = await client.createUser({
177
177
 
178
178
  // Full type inference
179
179
  // users: GetUsersResponse
180
- // newUser: CreateUserResponse`})]}),i("div",{className:"card-subtle p-4",children:[t("h4",{className:"font-semibold text-lg",children:"Python Client"}),t(g,{language:"python",filename:"generated/clients/python/index.py",code:`from myapi_client import MyAPIClient
180
+ // newUser: CreateUserResponse`})]}),i("div",{className:"card-subtle p-4",children:[n("h4",{className:"font-semibold text-lg",children:"Python Client"}),n(g,{language:"python",filename:"generated/clients/python/index.py",code:`from myapi_client import MyAPIClient
181
181
 
182
182
  client = MyAPIClient(
183
183
  base_url='https://api.example.com',
@@ -197,7 +197,7 @@ new_user = await client.create_user(
197
197
 
198
198
  # Full type hints
199
199
  # users: GetUsersResponse
200
- # new_user: CreateUserResponse`})]}),i("div",{className:"card-subtle p-4",children:[t("h4",{className:"font-semibold text-lg",children:"Go Client"}),t(g,{language:"go",filename:"generated/clients/go/client.go",code:`package main
200
+ # new_user: CreateUserResponse`})]}),i("div",{className:"card-subtle p-4",children:[n("h4",{className:"font-semibold text-lg",children:"Go Client"}),n(g,{language:"go",filename:"generated/clients/go/client.go",code:`package main
201
201
 
202
202
  import (
203
203
  "context"
@@ -224,7 +224,7 @@ func main() {
224
224
  // Full type checking at compile time
225
225
  // users: *GetUsersResponse
226
226
  // newUser: *CreateUserResponse
227
- }`})]})]})]}),i("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"Advanced Features"}),t("p",{className:"text-muted-foreground text-sm",children:"Generated clients include enterprise-grade features out of the box."}),t(g,{language:"typescript",filename:"client-features.ts",code:`// Advanced client features
227
+ }`})]})]})]}),i("div",{className:"space-y-3",children:[n("h2",{className:"font-bold text-2xl",children:"Advanced Features"}),n("p",{className:"text-muted-foreground text-sm",children:"Generated clients include enterprise-grade features out of the box."}),n(g,{language:"typescript",filename:"client-features.ts",code:`// Advanced client features
228
228
  const client = new MyAPIClient({
229
229
  baseUrl: 'https://api.example.com',
230
230
  apiKey: 'your-api-key',
@@ -267,7 +267,7 @@ const user2 = client.getUser({ id: '123' }); // Uses cached result
267
267
  // Request cancellation
268
268
  const controller = new AbortController();
269
269
  const promise = client.getUsers({ page: 1, signal: controller.signal });
270
- controller.abort(); // Cancels the request`})]})]}),i("div",{className:"flex items-center gap-4 pt-4",children:[i(O,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Client Generation Guide ",t(X,{size:16})]}),t(O,{href:"/docs/intent/contract-first-api",className:"btn-ghost",children:"Contract-first API"})]})]})}import{openapiAlternativeBrief as w}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as _}from"@contractspec/lib.content-gen/seo";import{CodeBlock as q}from"@contractspec/lib.design-system";import E from"@contractspec/lib.ui-link";import{ChevronRight as $}from"lucide-react";import{jsx as e,jsxs as c}from"react/jsx-runtime";var We=new _().optimize(w);function D(){return c("div",{className:"space-y-8",children:[c("div",{className:"space-y-3",children:[e("h1",{className:"font-bold text-4xl",children:w.title}),e("p",{className:"text-lg text-muted-foreground",children:w.summary})]}),c("div",{className:"card-subtle space-y-4 p-6",children:[e("h2",{className:"font-bold text-2xl",children:"OpenAPI Limitations"}),e("ul",{className:"space-y-2 text-muted-foreground text-sm",children:w.problems.map((a,n)=>e("li",{children:a},n))})]}),c("div",{className:"card-subtle space-y-4 p-6",children:[e("h2",{className:"font-bold text-2xl",children:"ContractSpec Advantages"}),e("ul",{className:"space-y-2 text-muted-foreground text-sm",children:w.solutions.map((a,n)=>e("li",{children:a},n))})]}),c("div",{className:"space-y-6",children:[c("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Comparison: OpenAPI vs ContractSpec"}),e("p",{className:"text-muted-foreground text-sm",children:"Key differences between OpenAPI documentation and ContractSpec executable contracts."}),c("div",{className:"grid gap-6 md:grid-cols-2",children:[c("div",{className:"card-subtle space-y-3 p-4",children:[e("h3",{className:"font-semibold text-lg",children:"OpenAPI"}),c("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:"\u2022 Documentation specification only"}),e("li",{children:"\u2022 No runtime validation"}),e("li",{children:"\u2022 Manual code generation"}),e("li",{children:"\u2022 Type safety requires tools"}),e("li",{children:"\u2022 Separate schemas from documentation"})]})]}),c("div",{className:"card-subtle space-y-3 p-4",children:[e("h3",{className:"font-semibold text-lg",children:"ContractSpec"}),c("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:"\u2022 Executable contracts"}),e("li",{children:"\u2022 Built-in runtime validation"}),e("li",{children:"\u2022 Automatic code generation"}),e("li",{children:"\u2022 Type-safe by default"}),e("li",{children:"\u2022 Unified spec and implementation"})]})]})]})]}),c("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Export from Contracts"}),e("p",{className:"text-muted-foreground text-sm",children:"Generate OpenAPI documentation from ContractSpec for existing tooling."}),e(q,{language:"bash",filename:"export-openapi",code:`# From ContractSpec contracts
270
+ controller.abort(); // Cancels the request`})]})]}),i("div",{className:"flex items-center gap-4 pt-4",children:[i(q,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Client Generation Guide ",n(D,{size:16})]}),n(q,{href:"/docs/intent/contract-first-api",className:"btn-ghost",children:"Contract-first API"})]})]})}import{openapiAlternativeBrief as w}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as V}from"@contractspec/lib.content-gen/seo";import{CodeBlock as E}from"@contractspec/lib.design-system";import K from"@contractspec/lib.ui-link";import{ChevronRight as F}from"lucide-react";import{jsx as a,jsxs as c}from"react/jsx-runtime";var Xe=new V().optimize(w);function L(){return c("div",{className:"space-y-8",children:[c("div",{className:"space-y-3",children:[a("h1",{className:"font-bold text-4xl",children:w.title}),a("p",{className:"text-lg text-muted-foreground",children:w.summary})]}),c("div",{className:"card-subtle space-y-4 p-6",children:[a("h2",{className:"font-bold text-2xl",children:"OpenAPI Limitations"}),a("ul",{className:"space-y-2 text-muted-foreground text-sm",children:w.problems.map((e,t)=>a("li",{children:e},t))})]}),c("div",{className:"card-subtle space-y-4 p-6",children:[a("h2",{className:"font-bold text-2xl",children:"ContractSpec Advantages"}),a("ul",{className:"space-y-2 text-muted-foreground text-sm",children:w.solutions.map((e,t)=>a("li",{children:e},t))})]}),c("div",{className:"space-y-6",children:[c("div",{className:"space-y-3",children:[a("h2",{className:"font-bold text-2xl",children:"Comparison: OpenAPI vs ContractSpec"}),a("p",{className:"text-muted-foreground text-sm",children:"Key differences between OpenAPI documentation and ContractSpec executable contracts."}),c("div",{className:"grid gap-6 md:grid-cols-2",children:[c("div",{className:"card-subtle space-y-3 p-4",children:[a("h3",{className:"font-semibold text-lg",children:"OpenAPI"}),c("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[a("li",{children:"\u2022 Documentation specification only"}),a("li",{children:"\u2022 No runtime validation"}),a("li",{children:"\u2022 Manual code generation"}),a("li",{children:"\u2022 Type safety requires tools"}),a("li",{children:"\u2022 Separate schemas from documentation"})]})]}),c("div",{className:"card-subtle space-y-3 p-4",children:[a("h3",{className:"font-semibold text-lg",children:"ContractSpec"}),c("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[a("li",{children:"\u2022 Executable contracts"}),a("li",{children:"\u2022 Built-in runtime validation"}),a("li",{children:"\u2022 Automatic code generation"}),a("li",{children:"\u2022 Type-safe by default"}),a("li",{children:"\u2022 Unified spec and implementation"})]})]})]})]}),c("div",{className:"space-y-3",children:[a("h2",{className:"font-bold text-2xl",children:"Export from Contracts"}),a("p",{className:"text-muted-foreground text-sm",children:"Generate OpenAPI documentation from ContractSpec for existing tooling."}),a(E,{language:"bash",filename:"export-openapi",code:`# From ContractSpec contracts
271
271
  contractspec openapi export \\
272
272
  --registry ./src/contracts/registry.ts \\
273
273
  --format yaml \\
@@ -275,7 +275,7 @@ contractspec openapi export \\
275
275
 
276
276
  # Compare: Manual OpenAPI vs Generated
277
277
  # Manual: Write OpenAPI by hand, maintain separately
278
- # Generated: Single source of truth, always in sync`})]}),c("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Beyond Documentation"}),e("p",{className:"text-muted-foreground text-sm",children:"ContractSpec provides more than just API documentation."}),e(q,{language:"typescript",filename:"multi-output-example.ts",code:`// One contract, multiple outputs
278
+ # Generated: Single source of truth, always in sync`})]}),c("div",{className:"space-y-3",children:[a("h2",{className:"font-bold text-2xl",children:"Beyond Documentation"}),a("p",{className:"text-muted-foreground text-sm",children:"ContractSpec provides more than just API documentation."}),a(E,{language:"typescript",filename:"multi-output-example.ts",code:`// One contract, multiple outputs
279
279
  import { UserApiContract } from './contracts/user-api.contract';
280
280
 
281
281
  // Generated outputs
@@ -305,7 +305,7 @@ export const outputs = {
305
305
 
306
306
  // Type definitions
307
307
  types: UserApiContract.toTypescript(),
308
- };`})]})]}),c("div",{className:"flex items-center gap-4 pt-4",children:[c(E,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Generate from Contracts ",e($,{size:16})]}),e(E,{href:"/docs/intent/generate-client-from-schema",className:"btn-ghost",children:"Client Generation"})]})]})}import{schemaValidationTypescriptBrief as P}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as z}from"@contractspec/lib.content-gen/seo";import{CodeBlock as v}from"@contractspec/lib.design-system";import K from"@contractspec/lib.ui-link";import{ChevronRight as V}from"lucide-react";import{jsx as o,jsxs as y}from"react/jsx-runtime";var Ye=new z().optimize(P);function F(){return y("div",{className:"space-y-8",children:[y("div",{className:"space-y-3",children:[o("h1",{className:"font-bold text-4xl",children:P.title}),o("p",{className:"text-lg text-muted-foreground",children:P.summary})]}),y("div",{className:"card-subtle space-y-4 p-6",children:[o("h2",{className:"font-bold text-2xl",children:"Validation Pain Points"}),o("ul",{className:"space-y-2 text-muted-foreground text-sm",children:P.problems.map((a,n)=>o("li",{children:a},n))})]}),y("div",{className:"card-subtle space-y-4 p-6",children:[o("h2",{className:"font-bold text-2xl",children:"Type-safe Solutions"}),o("ul",{className:"space-y-2 text-muted-foreground text-sm",children:P.solutions.map((a,n)=>o("li",{children:a},n))})]}),y("div",{className:"space-y-6",children:[y("div",{className:"space-y-3",children:[o("h2",{className:"font-bold text-2xl",children:"Contract Schema"}),o("p",{className:"text-muted-foreground text-sm",children:"Define data models with automatic TypeScript generation."}),o(v,{language:"typescript",filename:"src/contracts/user.schema.ts",code:`import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
308
+ };`})]})]}),c("div",{className:"flex items-center gap-4 pt-4",children:[c(K,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Generate from Contracts ",a(F,{size:16})]}),a(K,{href:"/docs/intent/generate-client-from-schema",className:"btn-ghost",children:"Client Generation"})]})]})}import{schemaValidationTypescriptBrief as P}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as C}from"@contractspec/lib.content-gen/seo";import{CodeBlock as T}from"@contractspec/lib.design-system";import M from"@contractspec/lib.ui-link";import{ChevronRight as k}from"lucide-react";import{jsx as o,jsxs as y}from"react/jsx-runtime";var Le=new C().optimize(P);function B(){return y("div",{className:"space-y-8",children:[y("div",{className:"space-y-3",children:[o("h1",{className:"font-bold text-4xl",children:P.title}),o("p",{className:"text-lg text-muted-foreground",children:P.summary})]}),y("div",{className:"card-subtle space-y-4 p-6",children:[o("h2",{className:"font-bold text-2xl",children:"Validation Pain Points"}),o("ul",{className:"space-y-2 text-muted-foreground text-sm",children:P.problems.map((e,t)=>o("li",{children:e},t))})]}),y("div",{className:"card-subtle space-y-4 p-6",children:[o("h2",{className:"font-bold text-2xl",children:"Type-safe Solutions"}),o("ul",{className:"space-y-2 text-muted-foreground text-sm",children:P.solutions.map((e,t)=>o("li",{children:e},t))})]}),y("div",{className:"space-y-6",children:[y("div",{className:"space-y-3",children:[o("h2",{className:"font-bold text-2xl",children:"Contract Schema"}),o("p",{className:"text-muted-foreground text-sm",children:"Define data models with automatic TypeScript generation."}),o(T,{language:"typescript",filename:"src/contracts/user.schema.ts",code:`import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
309
309
 
310
310
  export const UserSchema = new SchemaModel({
311
311
  type: 'object',
@@ -347,7 +347,7 @@ export const UserSchema = new SchemaModel({
347
347
  name: 'User',
348
348
  description: 'User account information',
349
349
  },
350
- });`})]}),y("div",{className:"space-y-3",children:[o("h2",{className:"font-bold text-2xl",children:"Generated Types"}),o("p",{className:"text-muted-foreground text-sm",children:"TypeScript types are automatically generated with proper validation."}),o(v,{language:"typescript",filename:"generated/types/user.ts",code:`// Auto-generated from UserSchema
350
+ });`})]}),y("div",{className:"space-y-3",children:[o("h2",{className:"font-bold text-2xl",children:"Generated Types"}),o("p",{className:"text-muted-foreground text-sm",children:"TypeScript types are automatically generated with proper validation."}),o(T,{language:"typescript",filename:"generated/types/user.ts",code:`// Auto-generated from UserSchema
351
351
  export interface User {
352
352
  id: string;
353
353
  email: string;
@@ -372,7 +372,7 @@ export function validateUser(data: unknown): User {
372
372
 
373
373
  export function isUser(data: unknown): data is User {
374
374
  return UserSchemaZod.safeParse(data).success;
375
- }`})]}),y("div",{className:"space-y-3",children:[o("h2",{className:"font-bold text-2xl",children:"Runtime Validation"}),o("p",{className:"text-muted-foreground text-sm",children:"Use generated validation in your API handlers with zero boilerplate."}),o(v,{language:"typescript",filename:"src/handlers/user-handler.ts",code:`import { validateUser } from '../generated/types/user';
375
+ }`})]}),y("div",{className:"space-y-3",children:[o("h2",{className:"font-bold text-2xl",children:"Runtime Validation"}),o("p",{className:"text-muted-foreground text-sm",children:"Use generated validation in your API handlers with zero boilerplate."}),o(T,{language:"typescript",filename:"src/handlers/user-handler.ts",code:`import { validateUser } from '../generated/types/user';
376
376
 
377
377
  export async function createUserHandler(request: Request) {
378
378
  try {
@@ -400,7 +400,7 @@ export async function createUserHandler(request: Request) {
400
400
 
401
401
  throw error;
402
402
  }
403
- }`})]})]}),y("div",{className:"flex items-center gap-4 pt-4",children:[y(K,{href:"/docs/guides/spec-validation-and-typing",className:"btn-primary",children:["Type Safety Guide ",o(V,{size:16})]}),o(K,{href:"/docs/intent/generate-client-from-schema",className:"btn-ghost",children:"Client Generation"})]})]})}import{specDrivenDevelopmentBrief as h}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as L}from"@contractspec/lib.content-gen/seo";import{CodeBlock as M}from"@contractspec/lib.design-system";import N from"@contractspec/lib.ui-link";import{ChevronRight as C}from"lucide-react";import{jsx as l,jsxs as m}from"react/jsx-runtime";var Ce=new L().optimize(h);function k(){return m("div",{className:"space-y-8",children:[m("div",{className:"space-y-3",children:[l("h1",{className:"font-bold text-4xl",children:h.title}),l("p",{className:"text-lg text-muted-foreground",children:h.summary})]}),m("div",{className:"card-subtle space-y-4 p-6",children:[l("h2",{className:"font-bold text-2xl",children:"Why Spec-driven?"}),l("ul",{className:"space-y-2 text-muted-foreground text-sm",children:h.problems.map((a,n)=>l("li",{children:a},n))})]}),m("div",{className:"card-subtle space-y-4 p-6",children:[l("h2",{className:"font-bold text-2xl",children:"Benefits"}),l("ul",{className:"space-y-2 text-muted-foreground text-sm",children:h.solutions.map((a,n)=>l("li",{children:a},n))})]}),m("div",{className:"space-y-6",children:[m("div",{className:"space-y-3",children:[l("h2",{className:"font-bold text-2xl",children:"Feature Specification Example"}),l("p",{className:"text-muted-foreground text-sm",children:"Define a complete feature with operations, events, and data models."}),l(M,{language:"typescript",filename:"src/contracts/user-management.feature.ts",code:`import { defineFeature } from '@contractspec/lib.contracts-spec/features';
403
+ }`})]})]}),y("div",{className:"flex items-center gap-4 pt-4",children:[y(M,{href:"/docs/guides/spec-validation-and-typing",className:"btn-primary",children:["Type Safety Guide ",o(k,{size:16})]}),o(M,{href:"/docs/intent/generate-client-from-schema",className:"btn-ghost",children:"Client Generation"})]})]})}import{specDrivenDevelopmentBrief as h}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as s}from"@contractspec/lib.content-gen/seo";import{CodeBlock as N}from"@contractspec/lib.design-system";import W from"@contractspec/lib.ui-link";import{ChevronRight as j}from"lucide-react";import{jsx as l,jsxs as m}from"react/jsx-runtime";var tt=new s().optimize(h);function x(){return m("div",{className:"space-y-8",children:[m("div",{className:"space-y-3",children:[l("h1",{className:"font-bold text-4xl",children:h.title}),l("p",{className:"text-lg text-muted-foreground",children:h.summary})]}),m("div",{className:"card-subtle space-y-4 p-6",children:[l("h2",{className:"font-bold text-2xl",children:"Why Spec-driven?"}),l("ul",{className:"space-y-2 text-muted-foreground text-sm",children:h.problems.map((e,t)=>l("li",{children:e},t))})]}),m("div",{className:"card-subtle space-y-4 p-6",children:[l("h2",{className:"font-bold text-2xl",children:"Benefits"}),l("ul",{className:"space-y-2 text-muted-foreground text-sm",children:h.solutions.map((e,t)=>l("li",{children:e},t))})]}),m("div",{className:"space-y-6",children:[m("div",{className:"space-y-3",children:[l("h2",{className:"font-bold text-2xl",children:"Feature Specification Example"}),l("p",{className:"text-muted-foreground text-sm",children:"Define a complete feature with operations, events, and data models."}),l(N,{language:"typescript",filename:"src/contracts/user-management.feature.ts",code:`import { defineFeature } from '@contractspec/lib.contracts-spec/features';
404
404
  import { defineOperation } from '@contractspec/lib.contracts-spec/operations';
405
405
  import { defineEvent } from '@contractspec/lib.contracts-spec/events';
406
406
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
@@ -472,4 +472,4 @@ export const UserManagementFeature = defineFeature({
472
472
  version: '1.0.0',
473
473
  description: 'Complete user management with operations and events',
474
474
  },
475
- });`})]}),m("div",{className:"space-y-3",children:[l("h2",{className:"font-bold text-2xl",children:"Generate Type-safe Implementations"}),l("p",{className:"text-muted-foreground text-sm",children:"Generate validation, types, and API handlers from your feature."}),l(M,{language:"bash",filename:"generate-from-feature",code:"contractspec generate \\\n --input ./src/contracts/user-management.feature.ts \\\n --output ./generated/user-management"})]})]}),m("div",{className:"flex items-center gap-4 pt-4",children:[m(N,{href:"/docs/guides/spec-validation-and-typing",className:"btn-primary",children:["Type Safety Guide ",l(C,{size:16})]}),l(N,{href:"/docs/intent/deterministic-codegen",className:"btn-ghost",children:"Deterministic Codegen"})]})]})}export{k as SpecDrivenDevelopmentPage,F as SchemaValidationTypescriptPage,D as OpenapiAlternativePage,Y as GenerateClientFromSchemaPage,R as DeterministicCodegenPage,H as ContractFirstApiPage};
475
+ });`})]}),m("div",{className:"space-y-3",children:[l("h2",{className:"font-bold text-2xl",children:"Generate Type-safe Implementations"}),l("p",{className:"text-muted-foreground text-sm",children:"Generate validation, types, and API handlers from your feature."}),l(N,{language:"bash",filename:"generate-from-feature",code:"contractspec generate \\\n --input ./src/contracts/user-management.feature.ts \\\n --output ./generated/user-management"})]})]}),m("div",{className:"flex items-center gap-4 pt-4",children:[m(W,{href:"/docs/guides/spec-validation-and-typing",className:"btn-primary",children:["Type Safety Guide ",l(j,{size:16})]}),l(W,{href:"/docs/intent/deterministic-codegen",className:"btn-ghost",children:"Deterministic Codegen"})]})]})}export{x as SpecDrivenDevelopmentPage,B as SchemaValidationTypescriptPage,L as OpenapiAlternativePage,z as GenerateClientFromSchemaPage,_ as DeterministicCodegenPage,U as ContractFirstApiPage};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- var e={title:"Contract-first API",summary:"Design APIs by writing contracts first, then generate consistent implementations across frameworks.",problems:["API drift between frontend and backend","Inconsistent error handling across endpoints","Documentation becomes outdated quickly","Manual OpenAPI maintenance is error-prone"],solutions:["Single source of truth for API contracts","Generate OpenAPI and SDKs from contracts","Type-safe request/response validation","Always-in-sync documentation"],audience:{role:"API developers",industry:"Software development",maturity:"scaleup"},callToAction:"Start with a simple operation contract",references:[{label:"Next.js One Endpoint Guide",url:"/docs/guides/nextjs-one-endpoint"},{label:"API Reference",url:"/docs/api"}]},t={title:"Spec-driven development",summary:"Build features by writing specifications first, then generate type-safe implementations.",problems:["Feature requirements are ambiguous","Frontend and backend implementations diverge","Testing lacks clear contract definitions","Code reviews focus on style instead of behavior"],solutions:["Executable specifications as single source of truth","Generate type-safe clients from specs","Automated contract testing","Clear behavior contracts for teams"],audience:{role:"Development teams",industry:"Software engineering",maturity:"enterprise"},callToAction:"Define your first feature spec",references:[{label:"Spec Validation + Typing Guide",url:"/docs/guides/spec-validation-and-typing"},{label:"Core Contracts",url:"/docs/core-contracts"}]},n={title:"Deterministic codegen",summary:"Regenerate code from contracts without breaking existing functionality or losing customizations.",problems:["Generated code conflicts with manual changes","Regeneration loses custom business logic","Teams avoid regeneration after customization","Code migration between versions is risky"],solutions:["Clear separation of generated vs hand-written code","Incremental regeneration with conflict detection","Protected zones for custom logic","Automatic migration paths"],audience:{role:"Platform engineers",industry:"Developer tools",maturity:"scaleup"},callToAction:"Try deterministic regeneration",references:[{label:"Generate Docs + Clients Guide",url:"/docs/guides/generate-docs-clients-schemas"},{label:"CLI Reference",url:"/docs/getting-started/cli"}]},i={title:"Schema validation TypeScript",summary:"Generate TypeScript types from contracts and validate data at runtime with zero overhead.",problems:["Runtime type validation is boilerplate-heavy","Type definitions drift from schemas","Validation logic scattered across codebase","Poor error messages for invalid data"],solutions:["Auto-generated TypeScript from contracts","Zod schemas for runtime validation","Type-safe validation with clear errors","Single source of schema truth"],audience:{role:"TypeScript developers",industry:"Web development",maturity:"early"},callToAction:"Generate typed contracts now",references:[{label:"Type Safety Guide",url:"/docs/guides/spec-validation-and-typing"},{label:"Schema Reference",url:"/docs/schemas"}]},r={title:"OpenAPI alternative",summary:"A spec-first approach that goes beyond OpenAPI with executable contracts and code generation.",problems:["OpenAPI is documentation-only","No type safety from OpenAPI specs","Manual SDK generation is complex","Cannot validate implementations against OpenAPI"],solutions:["Executable contracts with validation","Generate multiple outputs from one spec","Type-safe by default","Built-in testing and validation"],audience:{role:"API architects",industry:"Enterprise software",maturity:"enterprise"},callToAction:"Compare with OpenAPI approach",references:[{label:"Generate OpenAPI from Contracts",url:"/docs/guides/generate-docs-clients-schemas"},{label:"Contract vs OpenAPI",url:"/docs/comparison/openapi"}]},a={title:"Generate client from schema",summary:"Automatically generate type-safe API clients in any language from your contracts.",problems:["Writing API clients is repetitive","Manual clients have type mismatches","Keeping clients in sync with APIs","Language-specific client maintenance"],solutions:["Generate clients for multiple languages","Type-safe request/response handling","Automatic client updates from contracts","Consistent error handling across languages"],audience:{role:"Full-stack developers",industry:"Software development",maturity:"scaleup"},callToAction:"Generate your first API client",references:[{label:"Client Generation Guide",url:"/docs/guides/generate-docs-clients-schemas"},{label:"Supported Languages",url:"/docs/integrations"}]};export{t as specDrivenDevelopmentBrief,i as schemaValidationTypescriptBrief,r as openapiAlternativeBrief,a as generateClientFromSchemaBrief,n as deterministicCodegenBrief,e as contractFirstApiBrief};
2
+ var i=Object.defineProperty;var r=(e)=>e;function a(e,t){this[e]=r.bind(null,t)}var o=(e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0,configurable:!0,set:a.bind(t,n)})};var s=(e,t)=>()=>(e&&(t=e(e=0)),t);var l={title:"Contract-first API",summary:"Design APIs by writing contracts first, then generate consistent implementations across frameworks.",problems:["API drift between frontend and backend","Inconsistent error handling across endpoints","Documentation becomes outdated quickly","Manual OpenAPI maintenance is error-prone"],solutions:["Single source of truth for API contracts","Generate OpenAPI and SDKs from contracts","Type-safe request/response validation","Always-in-sync documentation"],audience:{role:"API developers",industry:"Software development",maturity:"scaleup"},callToAction:"Start with a simple operation contract",references:[{label:"Next.js One Endpoint Guide",url:"/docs/guides/nextjs-one-endpoint"},{label:"API Reference",url:"/docs/api"}]},d={title:"Spec-driven development",summary:"Build features by writing specifications first, then generate type-safe implementations.",problems:["Feature requirements are ambiguous","Frontend and backend implementations diverge","Testing lacks clear contract definitions","Code reviews focus on style instead of behavior"],solutions:["Executable specifications as single source of truth","Generate type-safe clients from specs","Automated contract testing","Clear behavior contracts for teams"],audience:{role:"Development teams",industry:"Software engineering",maturity:"enterprise"},callToAction:"Define your first feature spec",references:[{label:"Spec Validation + Typing Guide",url:"/docs/guides/spec-validation-and-typing"},{label:"Core Contracts",url:"/docs/core-contracts"}]},p={title:"Deterministic codegen",summary:"Regenerate code from contracts without breaking existing functionality or losing customizations.",problems:["Generated code conflicts with manual changes","Regeneration loses custom business logic","Teams avoid regeneration after customization","Code migration between versions is risky"],solutions:["Clear separation of generated vs hand-written code","Incremental regeneration with conflict detection","Protected zones for custom logic","Automatic migration paths"],audience:{role:"Platform engineers",industry:"Developer tools",maturity:"scaleup"},callToAction:"Try deterministic regeneration",references:[{label:"Generate Docs + Clients Guide",url:"/docs/guides/generate-docs-clients-schemas"},{label:"CLI Reference",url:"/docs/getting-started/cli"}]},u={title:"Schema validation TypeScript",summary:"Generate TypeScript types from contracts and validate data at runtime with zero overhead.",problems:["Runtime type validation is boilerplate-heavy","Type definitions drift from schemas","Validation logic scattered across codebase","Poor error messages for invalid data"],solutions:["Auto-generated TypeScript from contracts","Zod schemas for runtime validation","Type-safe validation with clear errors","Single source of schema truth"],audience:{role:"TypeScript developers",industry:"Web development",maturity:"early"},callToAction:"Generate typed contracts now",references:[{label:"Type Safety Guide",url:"/docs/guides/spec-validation-and-typing"},{label:"Schema Reference",url:"/docs/schemas"}]},m={title:"OpenAPI alternative",summary:"A spec-first approach that goes beyond OpenAPI with executable contracts and code generation.",problems:["OpenAPI is documentation-only","No type safety from OpenAPI specs","Manual SDK generation is complex","Cannot validate implementations against OpenAPI"],solutions:["Executable contracts with validation","Generate multiple outputs from one spec","Type-safe by default","Built-in testing and validation"],audience:{role:"API architects",industry:"Enterprise software",maturity:"enterprise"},callToAction:"Compare with OpenAPI approach",references:[{label:"Generate OpenAPI from Contracts",url:"/docs/guides/generate-docs-clients-schemas"},{label:"Contract vs OpenAPI",url:"/docs/comparison/openapi"}]},f={title:"Generate client from schema",summary:"Automatically generate type-safe API clients in any language from your contracts.",problems:["Writing API clients is repetitive","Manual clients have type mismatches","Keeping clients in sync with APIs","Language-specific client maintenance"],solutions:["Generate clients for multiple languages","Type-safe request/response handling","Automatic client updates from contracts","Consistent error handling across languages"],audience:{role:"Full-stack developers",industry:"Software development",maturity:"scaleup"},callToAction:"Generate your first API client",references:[{label:"Client Generation Guide",url:"/docs/guides/generate-docs-clients-schemas"},{label:"Supported Languages",url:"/docs/integrations"}]};export{d as specDrivenDevelopmentBrief,u as schemaValidationTypescriptBrief,m as openapiAlternativeBrief,f as generateClientFromSchemaBrief,p as deterministicCodegenBrief,l as contractFirstApiBrief};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import A from"@contractspec/lib.ui-link";import{ChevronRight as B}from"lucide-react";import{jsx as q,jsxs as z}from"react/jsx-runtime";function F(){return z("div",{className:"space-y-8",children:[z("div",{className:"space-y-4",children:[q("h1",{className:"font-bold text-4xl",children:"Knowledge Categories"}),q("p",{className:"text-muted-foreground",children:"ContractSpec classifies knowledge into four categories based on trust level, source authority, and intended use. This classification determines how knowledge can be used in workflows, policy decisions, and agent responses."})]}),z("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"The four categories"}),q("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:q("pre",{children:`type KnowledgeCategory =
2
+ var F=Object.defineProperty;var G=(A)=>A;function H(A,B){this[A]=G.bind(null,B)}var J=(A,B)=>{for(var D in B)F(A,D,{get:B[D],enumerable:!0,configurable:!0,set:H.bind(B,D)})};var K=(A,B)=>()=>(A&&(B=A(A=0)),B);import E from"@contractspec/lib.ui-link";import{ChevronRight as I}from"lucide-react";import{jsx as q,jsxs as z}from"react/jsx-runtime";function P(){return z("div",{className:"space-y-8",children:[z("div",{className:"space-y-4",children:[q("h1",{className:"font-bold text-4xl",children:"Knowledge Categories"}),q("p",{className:"text-muted-foreground",children:"ContractSpec classifies knowledge into four categories based on trust level, source authority, and intended use. This classification determines how knowledge can be used in workflows, policy decisions, and agent responses."})]}),z("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"The four categories"}),q("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:q("pre",{children:`type KnowledgeCategory =
3
3
  | "canonical" // Internal ground truth
4
4
  | "operational" // Internal operational docs
5
5
  | "external" // Third-party reference
@@ -83,4 +83,4 @@ import A from"@contractspec/lib.ui-link";import{ChevronRight as B}from"lucide-re
83
83
  "session:user-uploads",
84
84
  "session:form-drafts"
85
85
  ]
86
- }`})})]}),q("div",{className:"card-subtle border-red-500/30 bg-red-500/10 p-3",children:z("p",{className:"text-red-300 text-sm",children:[q("strong",{children:"\u26A0\uFE0F Critical:"})," Ephemeral knowledge is never used for policy decisions, compliance checks, or any authoritative purpose."]})})]})]})]}),z("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"Category comparison"}),q("div",{className:"overflow-x-auto rounded-lg border border-border/50",children:z("table",{className:"w-full text-left text-sm",children:[q("thead",{className:"bg-card/50",children:z("tr",{className:"border-border/50 border-b",children:[q("th",{className:"px-4 py-3 font-semibold",children:"Feature"}),q("th",{className:"px-4 py-3 font-semibold",children:"Canonical"}),q("th",{className:"px-4 py-3 font-semibold",children:"Operational"}),q("th",{className:"px-4 py-3 font-semibold",children:"External"}),q("th",{className:"px-4 py-3 font-semibold",children:"Ephemeral"})]})}),z("tbody",{className:"divide-y divide-border/50",children:[z("tr",{children:[q("td",{className:"px-4 py-3 font-semibold",children:"Trust Level"}),q("td",{className:"px-4 py-3",children:"Highest"}),q("td",{className:"px-4 py-3",children:"High"}),q("td",{className:"px-4 py-3",children:"Medium"}),q("td",{className:"px-4 py-3",children:"Low"})]}),z("tr",{children:[q("td",{className:"px-4 py-3 font-semibold",children:"Policy Impact"}),q("td",{className:"px-4 py-3",children:"\u2705 Can drive decisions"}),q("td",{className:"px-4 py-3",children:"\u26A0\uFE0F Can inform"}),q("td",{className:"px-4 py-3",children:"\u274C Reference only"}),q("td",{className:"px-4 py-3",children:"\u274C Never used"})]}),z("tr",{children:[q("td",{className:"px-4 py-3 font-semibold",children:"Mutability"}),q("td",{className:"px-4 py-3",children:"Immutable"}),q("td",{className:"px-4 py-3",children:"Mutable"}),q("td",{className:"px-4 py-3",children:"Mutable"}),q("td",{className:"px-4 py-3",children:"Temporary"})]}),z("tr",{children:[q("td",{className:"px-4 py-3 font-semibold",children:"Retention"}),q("td",{className:"px-4 py-3",children:"Permanent"}),q("td",{className:"px-4 py-3",children:"Long-term"}),q("td",{className:"px-4 py-3",children:"Long-term"}),q("td",{className:"px-4 py-3",children:"Short-term"})]}),z("tr",{children:[q("td",{className:"px-4 py-3 font-semibold",children:"Audit Level"}),q("td",{className:"px-4 py-3",children:"Full audit"}),q("td",{className:"px-4 py-3",children:"Full audit"}),q("td",{className:"px-4 py-3",children:"Basic audit"}),q("td",{className:"px-4 py-3",children:"Minimal audit"})]})]})]})})]}),z("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"Best practices"}),z("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[q("li",{children:"Use canonical for anything that affects policy, pricing, or compliance"}),q("li",{children:"Use operational for context that helps but doesn't dictate decisions"}),q("li",{children:"Use external for reference material that's helpful but not authoritative"}),q("li",{children:"Use ephemeral for temporary working memory that shouldn't persist"}),q("li",{children:"Never mix categories in a single knowledge space - keep them separate"}),q("li",{children:"Document the category and purpose of each knowledge space clearly"})]})]}),z("div",{className:"flex items-center gap-4 pt-4",children:[q(A,{href:"/docs/knowledge",className:"btn-ghost",children:"Back to Knowledge"}),z(A,{href:"/docs/knowledge/spaces",className:"btn-primary",children:["Knowledge Spaces ",q(B,{size:16})]})]})]})}export{F as KnowledgeCategoriesPage};
86
+ }`})})]}),q("div",{className:"card-subtle border-red-500/30 bg-red-500/10 p-3",children:z("p",{className:"text-red-300 text-sm",children:[q("strong",{children:"\u26A0\uFE0F Critical:"})," Ephemeral knowledge is never used for policy decisions, compliance checks, or any authoritative purpose."]})})]})]})]}),z("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"Category comparison"}),q("div",{className:"overflow-x-auto rounded-lg border border-border/50",children:z("table",{className:"w-full text-left text-sm",children:[q("thead",{className:"bg-card/50",children:z("tr",{className:"border-border/50 border-b",children:[q("th",{className:"px-4 py-3 font-semibold",children:"Feature"}),q("th",{className:"px-4 py-3 font-semibold",children:"Canonical"}),q("th",{className:"px-4 py-3 font-semibold",children:"Operational"}),q("th",{className:"px-4 py-3 font-semibold",children:"External"}),q("th",{className:"px-4 py-3 font-semibold",children:"Ephemeral"})]})}),z("tbody",{className:"divide-y divide-border/50",children:[z("tr",{children:[q("td",{className:"px-4 py-3 font-semibold",children:"Trust Level"}),q("td",{className:"px-4 py-3",children:"Highest"}),q("td",{className:"px-4 py-3",children:"High"}),q("td",{className:"px-4 py-3",children:"Medium"}),q("td",{className:"px-4 py-3",children:"Low"})]}),z("tr",{children:[q("td",{className:"px-4 py-3 font-semibold",children:"Policy Impact"}),q("td",{className:"px-4 py-3",children:"\u2705 Can drive decisions"}),q("td",{className:"px-4 py-3",children:"\u26A0\uFE0F Can inform"}),q("td",{className:"px-4 py-3",children:"\u274C Reference only"}),q("td",{className:"px-4 py-3",children:"\u274C Never used"})]}),z("tr",{children:[q("td",{className:"px-4 py-3 font-semibold",children:"Mutability"}),q("td",{className:"px-4 py-3",children:"Immutable"}),q("td",{className:"px-4 py-3",children:"Mutable"}),q("td",{className:"px-4 py-3",children:"Mutable"}),q("td",{className:"px-4 py-3",children:"Temporary"})]}),z("tr",{children:[q("td",{className:"px-4 py-3 font-semibold",children:"Retention"}),q("td",{className:"px-4 py-3",children:"Permanent"}),q("td",{className:"px-4 py-3",children:"Long-term"}),q("td",{className:"px-4 py-3",children:"Long-term"}),q("td",{className:"px-4 py-3",children:"Short-term"})]}),z("tr",{children:[q("td",{className:"px-4 py-3 font-semibold",children:"Audit Level"}),q("td",{className:"px-4 py-3",children:"Full audit"}),q("td",{className:"px-4 py-3",children:"Full audit"}),q("td",{className:"px-4 py-3",children:"Basic audit"}),q("td",{className:"px-4 py-3",children:"Minimal audit"})]})]})]})})]}),z("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"Best practices"}),z("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[q("li",{children:"Use canonical for anything that affects policy, pricing, or compliance"}),q("li",{children:"Use operational for context that helps but doesn't dictate decisions"}),q("li",{children:"Use external for reference material that's helpful but not authoritative"}),q("li",{children:"Use ephemeral for temporary working memory that shouldn't persist"}),q("li",{children:"Never mix categories in a single knowledge space - keep them separate"}),q("li",{children:"Document the category and purpose of each knowledge space clearly"})]})]}),z("div",{className:"flex items-center gap-4 pt-4",children:[q(E,{href:"/docs/knowledge",className:"btn-ghost",children:"Back to Knowledge"}),z(E,{href:"/docs/knowledge/spaces",className:"btn-primary",children:["Knowledge Spaces ",q(I,{size:16})]})]})]})}export{P as KnowledgeCategoriesPage};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import v from"@contractspec/lib.ui-link";import{jsx as h,jsxs as q}from"react/jsx-runtime";function z(){return q("div",{className:"space-y-8",children:[q("div",{className:"space-y-4",children:[h("h1",{className:"font-bold text-4xl",children:"Knowledge Examples"}),h("p",{className:"text-muted-foreground",children:"Real-world examples of how different applications use knowledge spaces to power intelligent workflows and agents."})]}),q("div",{className:"space-y-6",children:[q("div",{className:"space-y-4",children:[h("h2",{className:"font-bold text-2xl",children:"Example 1: ArtisanOS Support Agent"}),q("p",{className:"text-muted-foreground",children:[h("strong",{children:"Context:"})," ArtisanOS needs a support agent that can answer product questions using official documentation and learn from past support tickets."]}),h("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:h("pre",{children:`// Knowledge spaces
2
+ var B=Object.defineProperty;var D=(v)=>v;function E(v,y){this[v]=D.bind(null,y)}var F=(v,y)=>{for(var z in y)B(v,z,{get:y[z],enumerable:!0,configurable:!0,set:E.bind(y,z)})};var G=(v,y)=>()=>(v&&(y=v(v=0)),y);import A from"@contractspec/lib.ui-link";import{jsx as h,jsxs as q}from"react/jsx-runtime";function J(){return q("div",{className:"space-y-8",children:[q("div",{className:"space-y-4",children:[h("h1",{className:"font-bold text-4xl",children:"Knowledge Examples"}),h("p",{className:"text-muted-foreground",children:"Real-world examples of how different applications use knowledge spaces to power intelligent workflows and agents."})]}),q("div",{className:"space-y-6",children:[q("div",{className:"space-y-4",children:[h("h2",{className:"font-bold text-2xl",children:"Example 1: ArtisanOS Support Agent"}),q("p",{className:"text-muted-foreground",children:[h("strong",{children:"Context:"})," ArtisanOS needs a support agent that can answer product questions using official documentation and learn from past support tickets."]}),h("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:h("pre",{children:`// Knowledge spaces
3
3
  knowledgeSpaces: [
4
4
  {
5
5
  id: "product-canon",
@@ -167,4 +167,4 @@ steps:
167
167
  Question: \${input.question}
168
168
  Internal: \${steps.search-internal-guides.output.results}
169
169
  Stripe: \${steps.search-stripe-docs.output.results}
170
- Past: \${steps.search-past-questions.output.results}`})})]})]}),q("div",{className:"space-y-4",children:[h("h2",{className:"font-bold text-2xl",children:"Key patterns"}),q("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[q("li",{children:[h("strong",{children:"Canonical first"})," - Always search canonical spaces before operational or external"]}),q("li",{children:[h("strong",{children:"Category-aware prompts"})," - Tell the LLM which sources are authoritative vs reference"]}),q("li",{children:[h("strong",{children:"Multi-space queries"})," - Combine results from multiple spaces for richer context"]}),q("li",{children:[h("strong",{children:"Limit results"})," - Use appropriate limits (3-5) to avoid token overflow"]}),q("li",{children:[h("strong",{children:"Audit everything"})," - Log all knowledge queries for debugging and compliance"]})]})]}),q("div",{className:"flex items-center gap-4 pt-4",children:[h(v,{href:"/docs/knowledge/sources",className:"btn-ghost",children:"Previous: Sources"}),h(v,{href:"/docs/architecture/knowledge-binding",className:"btn-ghost",children:"Knowledge Binding"})]})]})}export{z as KnowledgeExamplesPage};
170
+ Past: \${steps.search-past-questions.output.results}`})})]})]}),q("div",{className:"space-y-4",children:[h("h2",{className:"font-bold text-2xl",children:"Key patterns"}),q("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[q("li",{children:[h("strong",{children:"Canonical first"})," - Always search canonical spaces before operational or external"]}),q("li",{children:[h("strong",{children:"Category-aware prompts"})," - Tell the LLM which sources are authoritative vs reference"]}),q("li",{children:[h("strong",{children:"Multi-space queries"})," - Combine results from multiple spaces for richer context"]}),q("li",{children:[h("strong",{children:"Limit results"})," - Use appropriate limits (3-5) to avoid token overflow"]}),q("li",{children:[h("strong",{children:"Audit everything"})," - Log all knowledge queries for debugging and compliance"]})]})]}),q("div",{className:"flex items-center gap-4 pt-4",children:[h(A,{href:"/docs/knowledge/sources",className:"btn-ghost",children:"Previous: Sources"}),h(A,{href:"/docs/architecture/knowledge-binding",className:"btn-ghost",children:"Knowledge Binding"})]})]})}export{J as KnowledgeExamplesPage};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import o from"@contractspec/lib.ui-link";import{jsx as e,jsxs as t}from"react/jsx-runtime";var n=[{title:"Categories",body:"Separate canonical truth from operational notes, external material, and ephemeral working context.",href:"/docs/knowledge/categories"},{title:"Spaces",body:"Define the storage and retrieval boundary for each knowledge domain.",href:"/docs/knowledge/spaces"},{title:"Sources",body:"Connect tenant-owned sources explicitly instead of letting context leak in through prompts alone.",href:"/docs/knowledge/sources"},{title:"Examples",body:"See how support, compliance, and product systems consume trusted knowledge at runtime.",href:"/docs/knowledge/examples"}];function l(){return t("div",{className:"space-y-10",children:[t("div",{className:"space-y-3",children:[e("p",{className:"editorial-kicker",children:"Operate"}),e("h1",{className:"font-serif text-4xl tracking-[-0.04em] md:text-5xl",children:"Knowledge is part of the runtime, not a sidecar prompt hack."}),e("p",{className:"max-w-3xl text-lg text-muted-foreground leading-8",children:"When AI-native systems depend on external context, the context needs the same discipline as the rest of the stack. ContractSpec treats knowledge as typed, bounded, and governable so teams can reason about trust, isolation, and retrieval behavior."})]}),e("section",{className:"editorial-panel space-y-5",children:t("div",{className:"space-y-2",children:[e("h2",{className:"font-serif text-3xl tracking-[-0.03em]",children:"How knowledge enters the system"}),t("ul",{className:"editorial-list",children:[t("li",{children:[e("span",{className:"editorial-list-marker"}),e("span",{children:"Define the trust category and retrieval expectations first."})]}),t("li",{children:[e("span",{className:"editorial-list-marker"}),e("span",{children:"Bind tenant-owned sources explicitly to those knowledge spaces."})]}),t("li",{children:[e("span",{className:"editorial-list-marker"}),e("span",{children:"Consume knowledge through capabilities and workflows, not through invisible prompt assumptions."})]})]})]})}),e("div",{className:"grid gap-4 md:grid-cols-2",children:n.map((a)=>t(o,{href:a.href,className:"editorial-panel",children:[e("h2",{className:"font-semibold text-xl",children:a.title}),e("p",{className:"mt-2 text-muted-foreground text-sm leading-7",children:a.body})]},a.href))})]})}export{l as KnowledgeOverviewPage};
2
+ var i=Object.defineProperty;var l=(e)=>e;function s(e,a){this[e]=l.bind(null,a)}var c=(e,a)=>{for(var n in a)i(e,n,{get:a[n],enumerable:!0,configurable:!0,set:s.bind(a,n)})};var p=(e,a)=>()=>(e&&(a=e(e=0)),a);import r from"@contractspec/lib.ui-link";import{jsx as t,jsxs as o}from"react/jsx-runtime";var d=[{title:"Categories",body:"Separate canonical truth from operational notes, external material, and ephemeral working context.",href:"/docs/knowledge/categories"},{title:"Spaces",body:"Define the storage and retrieval boundary for each knowledge domain.",href:"/docs/knowledge/spaces"},{title:"Sources",body:"Connect tenant-owned sources explicitly instead of letting context leak in through prompts alone.",href:"/docs/knowledge/sources"},{title:"Examples",body:"See how support, compliance, and product systems consume trusted knowledge at runtime.",href:"/docs/knowledge/examples"}];function g(){return o("div",{className:"space-y-10",children:[o("div",{className:"space-y-3",children:[t("p",{className:"editorial-kicker",children:"Operate"}),t("h1",{className:"font-serif text-4xl tracking-[-0.04em] md:text-5xl",children:"Knowledge is part of the runtime, not a sidecar prompt hack."}),t("p",{className:"max-w-3xl text-lg text-muted-foreground leading-8",children:"When AI-native systems depend on external context, the context needs the same discipline as the rest of the stack. ContractSpec treats knowledge as typed, bounded, and governable so teams can reason about trust, isolation, and retrieval behavior."})]}),t("section",{className:"editorial-panel space-y-5",children:o("div",{className:"space-y-2",children:[t("h2",{className:"font-serif text-3xl tracking-[-0.03em]",children:"How knowledge enters the system"}),o("ul",{className:"editorial-list",children:[o("li",{children:[t("span",{className:"editorial-list-marker"}),t("span",{children:"Define the trust category and retrieval expectations first."})]}),o("li",{children:[t("span",{className:"editorial-list-marker"}),t("span",{children:"Bind tenant-owned sources explicitly to those knowledge spaces."})]}),o("li",{children:[t("span",{className:"editorial-list-marker"}),t("span",{children:"Consume knowledge through capabilities and workflows, not through invisible prompt assumptions."})]})]})]})}),t("div",{className:"grid gap-4 md:grid-cols-2",children:d.map((e)=>o(r,{href:e.href,className:"editorial-panel",children:[t("h2",{className:"font-semibold text-xl",children:e.title}),t("p",{className:"mt-2 text-muted-foreground text-sm leading-7",children:e.body})]},e.href))})]})}export{g as KnowledgeOverviewPage};