@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,4 +1,4 @@
1
- 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)
1
+ 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)
2
2
  export class UserService {
3
3
  async createUser(input: CreateUserInput): Promise<CreateUserOutput> {
4
4
  // Custom validation and business rules
@@ -35,4 +35,4 @@ export const createUserHandler = wrapOperationHandler(
35
35
  operationName: 'createUser',
36
36
  errorMapper: mapToStandardErrors,
37
37
  }
38
- );`})]}),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};
38
+ );`})]}),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,4 +1,4 @@
1
- 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';
1
+ 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';
2
2
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
3
3
 
4
4
  export const ApiContract = defineContract({
@@ -68,7 +68,7 @@ export const ApiContract = defineContract({
68
68
  description: 'User management API with authentication',
69
69
  tags: ['users', 'authentication'],
70
70
  },
71
- });`})]}),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
71
+ });`})]}),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
72
72
  contractspec generate clients \\
73
73
  --contract ./src/contracts/api.contract.ts \\
74
74
  --output ./generated/clients \\
@@ -85,7 +85,7 @@ contractspec generate clients \\
85
85
  # --with-types: Include TypeScript definitions
86
86
  # --with-tests: Generate client test suites
87
87
  # --with-docs: Include client documentation
88
- # --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';
88
+ # --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';
89
89
 
90
90
  const client = new MyAPIClient({
91
91
  baseUrl: 'https://api.example.com',
@@ -105,7 +105,7 @@ const newUser = await client.createUser({
105
105
 
106
106
  // Full type inference
107
107
  // users: GetUsersResponse
108
- // 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
108
+ // 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
109
109
 
110
110
  client = MyAPIClient(
111
111
  base_url='https://api.example.com',
@@ -125,7 +125,7 @@ new_user = await client.create_user(
125
125
 
126
126
  # Full type hints
127
127
  # users: GetUsersResponse
128
- # 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
128
+ # 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
129
129
 
130
130
  import (
131
131
  "context"
@@ -152,7 +152,7 @@ func main() {
152
152
  // Full type checking at compile time
153
153
  // users: *GetUsersResponse
154
154
  // newUser: *CreateUserResponse
155
- }`})]})]})]}),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
155
+ }`})]})]})]}),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
156
156
  const client = new MyAPIClient({
157
157
  baseUrl: 'https://api.example.com',
158
158
  apiKey: 'your-api-key',
@@ -195,4 +195,4 @@ const user2 = client.getUser({ id: '123' }); // Uses cached result
195
195
  // Request cancellation
196
196
  const controller = new AbortController();
197
197
  const promise = client.getUsers({ page: 1, signal: controller.signal });
198
- 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};
198
+ 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,4 +1,4 @@
1
- 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:"• Documentation specification only"}),q("li",{children:"• No runtime validation"}),q("li",{children:"• Manual code generation"}),q("li",{children:"• Type safety requires tools"}),q("li",{children:"• 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:"• Executable contracts"}),q("li",{children:"• Built-in runtime validation"}),q("li",{children:"• Automatic code generation"}),q("li",{children:"• Type-safe by default"}),q("li",{children:"• 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
1
+ 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:"• Documentation specification only"}),q("li",{children:"• No runtime validation"}),q("li",{children:"• Manual code generation"}),q("li",{children:"• Type safety requires tools"}),q("li",{children:"• 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:"• Executable contracts"}),q("li",{children:"• Built-in runtime validation"}),q("li",{children:"• Automatic code generation"}),q("li",{children:"• Type-safe by default"}),q("li",{children:"• 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
2
2
  contractspec openapi export \\
3
3
  --registry ./src/contracts/registry.ts \\
4
4
  --format yaml \\
@@ -6,7 +6,7 @@ contractspec openapi export \\
6
6
 
7
7
  # Compare: Manual OpenAPI vs Generated
8
8
  # Manual: Write OpenAPI by hand, maintain separately
9
- # 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
9
+ # 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
10
10
  import { UserApiContract } from './contracts/user-api.contract';
11
11
 
12
12
  // Generated outputs
@@ -36,4 +36,4 @@ export const outputs = {
36
36
 
37
37
  // Type definitions
38
38
  types: UserApiContract.toTypescript(),
39
- };`})]})]}),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};
39
+ };`})]})]}),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,4 +1,4 @@
1
- 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';
1
+ 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';
2
2
 
3
3
  export const UserSchema = new SchemaModel({
4
4
  type: 'object',
@@ -40,7 +40,7 @@ export const UserSchema = new SchemaModel({
40
40
  name: 'User',
41
41
  description: 'User account information',
42
42
  },
43
- });`})]}),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
43
+ });`})]}),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
44
44
  export interface User {
45
45
  id: string;
46
46
  email: string;
@@ -65,7 +65,7 @@ export function validateUser(data: unknown): User {
65
65
 
66
66
  export function isUser(data: unknown): data is User {
67
67
  return UserSchemaZod.safeParse(data).success;
68
- }`})]}),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';
68
+ }`})]}),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';
69
69
 
70
70
  export async function createUserHandler(request: Request) {
71
71
  try {
@@ -93,4 +93,4 @@ export async function createUserHandler(request: Request) {
93
93
 
94
94
  throw error;
95
95
  }
96
- }`})]})]}),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};
96
+ }`})]})]}),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,4 +1,4 @@
1
- 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';
1
+ 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';
2
2
  import { defineOperation } from '@contractspec/lib.contracts-spec/operations';
3
3
  import { defineEvent } from '@contractspec/lib.contracts-spec/events';
4
4
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
@@ -70,4 +70,4 @@ export const UserManagementFeature = defineFeature({
70
70
  version: '1.0.0',
71
71
  description: 'Complete user management with operations and events',
72
72
  },
73
- });`})]}),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};
73
+ });`})]}),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,4 +1,4 @@
1
- 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';
1
+ 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';
2
2
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
3
3
 
4
4
  export const CreateUserOperation = defineOperation({
@@ -32,7 +32,7 @@ export const CreateUserOperation = defineOperation({
32
32
  tags: ['users', 'auth'],
33
33
  description: 'Create a new user account with email and password',
34
34
  },
35
- });`})]}),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)
35
+ });`})]}),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)
36
36
  export class UserService {
37
37
  async createUser(input: CreateUserInput): Promise<CreateUserOutput> {
38
38
  // Custom validation and business rules
@@ -69,7 +69,7 @@ export const createUserHandler = wrapOperationHandler(
69
69
  operationName: 'createUser',
70
70
  errorMapper: mapToStandardErrors,
71
71
  }
72
- );`})]}),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';
72
+ );`})]}),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';
73
73
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
74
74
 
75
75
  export const ApiContract = defineContract({
@@ -139,7 +139,7 @@ export const ApiContract = defineContract({
139
139
  description: 'User management API with authentication',
140
140
  tags: ['users', 'authentication'],
141
141
  },
142
- });`})]}),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
142
+ });`})]}),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
143
143
  contractspec generate clients \\
144
144
  --contract ./src/contracts/api.contract.ts \\
145
145
  --output ./generated/clients \\
@@ -156,7 +156,7 @@ contractspec generate clients \\
156
156
  # --with-types: Include TypeScript definitions
157
157
  # --with-tests: Generate client test suites
158
158
  # --with-docs: Include client documentation
159
- # --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';
159
+ # --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';
160
160
 
161
161
  const client = new MyAPIClient({
162
162
  baseUrl: 'https://api.example.com',
@@ -176,7 +176,7 @@ const newUser = await client.createUser({
176
176
 
177
177
  // Full type inference
178
178
  // users: GetUsersResponse
179
- // 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
179
+ // 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
180
180
 
181
181
  client = MyAPIClient(
182
182
  base_url='https://api.example.com',
@@ -196,7 +196,7 @@ new_user = await client.create_user(
196
196
 
197
197
  # Full type hints
198
198
  # users: GetUsersResponse
199
- # 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
199
+ # 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
200
200
 
201
201
  import (
202
202
  "context"
@@ -223,7 +223,7 @@ func main() {
223
223
  // Full type checking at compile time
224
224
  // users: *GetUsersResponse
225
225
  // newUser: *CreateUserResponse
226
- }`})]})]})]}),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
226
+ }`})]})]})]}),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
227
227
  const client = new MyAPIClient({
228
228
  baseUrl: 'https://api.example.com',
229
229
  apiKey: 'your-api-key',
@@ -266,7 +266,7 @@ const user2 = client.getUser({ id: '123' }); // Uses cached result
266
266
  // Request cancellation
267
267
  const controller = new AbortController();
268
268
  const promise = client.getUsers({ page: 1, signal: controller.signal });
269
- 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:"• Documentation specification only"}),e("li",{children:"• No runtime validation"}),e("li",{children:"• Manual code generation"}),e("li",{children:"• Type safety requires tools"}),e("li",{children:"• 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:"• Executable contracts"}),e("li",{children:"• Built-in runtime validation"}),e("li",{children:"• Automatic code generation"}),e("li",{children:"• Type-safe by default"}),e("li",{children:"• 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
269
+ 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:"• Documentation specification only"}),a("li",{children:"• No runtime validation"}),a("li",{children:"• Manual code generation"}),a("li",{children:"• Type safety requires tools"}),a("li",{children:"• 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:"• Executable contracts"}),a("li",{children:"• Built-in runtime validation"}),a("li",{children:"• Automatic code generation"}),a("li",{children:"• Type-safe by default"}),a("li",{children:"• 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
270
270
  contractspec openapi export \\
271
271
  --registry ./src/contracts/registry.ts \\
272
272
  --format yaml \\
@@ -274,7 +274,7 @@ contractspec openapi export \\
274
274
 
275
275
  # Compare: Manual OpenAPI vs Generated
276
276
  # Manual: Write OpenAPI by hand, maintain separately
277
- # 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
277
+ # 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
278
278
  import { UserApiContract } from './contracts/user-api.contract';
279
279
 
280
280
  // Generated outputs
@@ -304,7 +304,7 @@ export const outputs = {
304
304
 
305
305
  // Type definitions
306
306
  types: UserApiContract.toTypescript(),
307
- };`})]})]}),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';
307
+ };`})]})]}),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';
308
308
 
309
309
  export const UserSchema = new SchemaModel({
310
310
  type: 'object',
@@ -346,7 +346,7 @@ export const UserSchema = new SchemaModel({
346
346
  name: 'User',
347
347
  description: 'User account information',
348
348
  },
349
- });`})]}),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
349
+ });`})]}),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
350
350
  export interface User {
351
351
  id: string;
352
352
  email: string;
@@ -371,7 +371,7 @@ export function validateUser(data: unknown): User {
371
371
 
372
372
  export function isUser(data: unknown): data is User {
373
373
  return UserSchemaZod.safeParse(data).success;
374
- }`})]}),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';
374
+ }`})]}),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';
375
375
 
376
376
  export async function createUserHandler(request: Request) {
377
377
  try {
@@ -399,7 +399,7 @@ export async function createUserHandler(request: Request) {
399
399
 
400
400
  throw error;
401
401
  }
402
- }`})]})]}),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';
402
+ }`})]})]}),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';
403
403
  import { defineOperation } from '@contractspec/lib.contracts-spec/operations';
404
404
  import { defineEvent } from '@contractspec/lib.contracts-spec/events';
405
405
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
@@ -471,4 +471,4 @@ export const UserManagementFeature = defineFeature({
471
471
  version: '1.0.0',
472
472
  description: 'Complete user management with operations and events',
473
473
  },
474
- });`})]}),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};
474
+ });`})]}),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 +1 @@
1
- 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};
1
+ 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,4 +1,4 @@
1
- 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 =
1
+ 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 =
2
2
  | "canonical" // Internal ground truth
3
3
  | "operational" // Internal operational docs
4
4
  | "external" // Third-party reference
@@ -82,4 +82,4 @@ import A from"@contractspec/lib.ui-link";import{ChevronRight as B}from"lucide-re
82
82
  "session:user-uploads",
83
83
  "session:form-drafts"
84
84
  ]
85
- }`})})]}),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:"⚠️ 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:"✅ Can drive decisions"}),q("td",{className:"px-4 py-3",children:"⚠️ Can inform"}),q("td",{className:"px-4 py-3",children:"❌ Reference only"}),q("td",{className:"px-4 py-3",children:"❌ 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};
85
+ }`})})]}),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:"⚠️ 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:"✅ Can drive decisions"}),q("td",{className:"px-4 py-3",children:"⚠️ Can inform"}),q("td",{className:"px-4 py-3",children:"❌ Reference only"}),q("td",{className:"px-4 py-3",children:"❌ 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,4 +1,4 @@
1
- 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
1
+ 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
2
2
  knowledgeSpaces: [
3
3
  {
4
4
  id: "product-canon",
@@ -166,4 +166,4 @@ steps:
166
166
  Question: \${input.question}
167
167
  Internal: \${steps.search-internal-guides.output.results}
168
168
  Stripe: \${steps.search-stripe-docs.output.results}
169
- 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};
169
+ 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 +1 @@
1
- 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};
1
+ 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};