@contractspec/bundle.library 3.8.10 → 3.8.11

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 (643) hide show
  1. package/.turbo/turbo-build.log +606 -594
  2. package/CHANGELOG.md +37 -0
  3. package/dist/application/context-storage/index.js +1 -28
  4. package/dist/application/index.js +13 -2133
  5. package/dist/application/mcp/cliMcp.js +4 -452
  6. package/dist/application/mcp/common.js +1 -193
  7. package/dist/application/mcp/contractsMcp.js +2 -549
  8. package/dist/application/mcp/contractsMcpResources.js +2 -123
  9. package/dist/application/mcp/contractsMcpTools.js +1 -199
  10. package/dist/application/mcp/docsMcp.catalog.js +3 -381
  11. package/dist/application/mcp/docsMcp.data.js +1 -147
  12. package/dist/application/mcp/docsMcp.js +6 -1039
  13. package/dist/application/mcp/docsMcp.prompts.js +6 -521
  14. package/dist/application/mcp/docsMcp.reference.js +3 -235
  15. package/dist/application/mcp/docsMcp.resources.js +3 -519
  16. package/dist/application/mcp/docsMcp.tools.js +3 -518
  17. package/dist/application/mcp/index.js +13 -2106
  18. package/dist/application/mcp/internalMcp.js +2 -410
  19. package/dist/application/mcp/normalizeMcpRequest.js +1 -21
  20. package/dist/application/mcp/providerRankingMcp.js +1 -530
  21. package/dist/bundles/LibraryBundle.js +1 -138
  22. package/dist/bundles/index.js +1 -138
  23. package/dist/components/docs/DocsIndexPage.js +2 -912
  24. package/dist/components/docs/advanced/AdvancedMCPPage.js +4 -271
  25. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -107
  26. package/dist/components/docs/advanced/AdvancedRenderersPage.js +2 -118
  27. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -92
  28. package/dist/components/docs/advanced/AdvancedTelemetryPage.js +2 -373
  29. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -99
  30. package/dist/components/docs/advanced/index.js +10 -1055
  31. package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +6 -243
  32. package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +3 -160
  33. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -259
  34. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -374
  35. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -166
  36. package/dist/components/docs/architecture/ArchitectureOverviewPage.js +1 -143
  37. package/dist/components/docs/architecture/index.js +20 -1340
  38. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -245
  39. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -230
  40. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -245
  41. package/dist/components/docs/comparison/ComparisonOverviewPage.js +1 -202
  42. package/dist/components/docs/comparison/ComparisonWindmillPage.js +1 -254
  43. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -339
  44. package/dist/components/docs/comparison/index.js +1 -1510
  45. package/dist/components/docs/docsManifest.js +1 -611
  46. package/dist/components/docs/docsManifest.test.d.ts +1 -0
  47. package/dist/components/docs/ecosystem/IntegrationsPage.js +2 -103
  48. package/dist/components/docs/ecosystem/PluginsPage.js +13 -179
  49. package/dist/components/docs/ecosystem/RegistryPage.js +7 -100
  50. package/dist/components/docs/ecosystem/TemplatesPage.js +3 -141
  51. package/dist/components/docs/ecosystem/ecosystem.docblocks.js +2 -48
  52. package/dist/components/docs/ecosystem/index.js +23 -569
  53. package/dist/components/docs/examples/DocsExamplesPage.js +4 -124
  54. package/dist/components/docs/examples/ExampleShowcasePage.js +4 -244
  55. package/dist/components/docs/examples/exampleShowcaseData.js +4 -39
  56. package/dist/components/docs/examples/index.js +4 -330
  57. package/dist/components/docs/generated/docs-index.generated.js +1 -5
  58. package/dist/components/docs/generated/index.js +1 -74
  59. package/dist/components/docs/generated/loader.js +1 -74
  60. package/dist/components/docs/getting-started/CLIPage.js +4 -271
  61. package/dist/components/docs/getting-started/CompatibilityPage.js +1 -173
  62. package/dist/components/docs/getting-started/DataViewTutorialPage.js +4 -134
  63. package/dist/components/docs/getting-started/DeveloperToolsPage.js +1 -194
  64. package/dist/components/docs/getting-started/HelloWorldPage.js +5 -183
  65. package/dist/components/docs/getting-started/InstallationPage.js +3 -154
  66. package/dist/components/docs/getting-started/StartHerePage.js +2 -129
  67. package/dist/components/docs/getting-started/TroubleshootingPage.js +2 -168
  68. package/dist/components/docs/getting-started/VSCodeExtensionPage.js +1 -432
  69. package/dist/components/docs/getting-started/getting-started.docblocks.js +4 -41
  70. package/dist/components/docs/getting-started/index.js +18 -1869
  71. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +2 -196
  72. package/dist/components/docs/guides/GuideConnectInRepoPage.d.ts +1 -0
  73. package/dist/components/docs/guides/GuideConnectInRepoPage.js +44 -0
  74. package/dist/components/docs/guides/GuideContractTypesPage.js +6 -541
  75. package/dist/components/docs/guides/GuideDocsPipelinePage.js +3 -207
  76. package/dist/components/docs/guides/GuideFirstModuleBundlePage.d.ts +1 -0
  77. package/dist/components/docs/guides/GuideFirstModuleBundlePage.js +76 -0
  78. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -209
  79. package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.d.ts +1 -0
  80. package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.js +70 -0
  81. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -754
  82. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -268
  83. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +4 -196
  84. package/dist/components/docs/guides/GuidesIndexPage.js +2 -169
  85. package/dist/components/docs/guides/guides.docblocks.js +11 -75
  86. package/dist/components/docs/guides/index.d.ts +3 -0
  87. package/dist/components/docs/guides/index.js +213 -2428
  88. package/dist/components/docs/index.js +542 -24310
  89. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -42
  90. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -105
  91. package/dist/components/docs/integrations/IntegrationsGithubPage.js +3 -142
  92. package/dist/components/docs/integrations/IntegrationsGmailPage.js +3 -109
  93. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -79
  94. package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +3 -146
  95. package/dist/components/docs/integrations/IntegrationsMistralPage.js +5 -150
  96. package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +5 -140
  97. package/dist/components/docs/integrations/IntegrationsOverviewPage.js +1 -160
  98. package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +4 -218
  99. package/dist/components/docs/integrations/IntegrationsPowensPage.js +4 -300
  100. package/dist/components/docs/integrations/IntegrationsQdrantPage.js +5 -111
  101. package/dist/components/docs/integrations/IntegrationsResendPage.js +3 -102
  102. package/dist/components/docs/integrations/IntegrationsS3Page.js +4 -124
  103. package/dist/components/docs/integrations/IntegrationsSlackPage.js +3 -144
  104. package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +7 -290
  105. package/dist/components/docs/integrations/IntegrationsStripePage.js +6 -327
  106. package/dist/components/docs/integrations/IntegrationsTwilioPage.js +3 -128
  107. package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -146
  108. package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -156
  109. package/dist/components/docs/integrations/index.js +52 -3100
  110. package/dist/components/docs/intent/ContractFirstApiPage.js +2 -126
  111. package/dist/components/docs/intent/DeterministicCodegenPage.js +2 -148
  112. package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +7 -207
  113. package/dist/components/docs/intent/OpenapiAlternativePage.js +3 -201
  114. package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +4 -144
  115. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -126
  116. package/dist/components/docs/intent/index.js +15 -1135
  117. package/dist/components/docs/intent/intent-pages.docblocks.js +1 -201
  118. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +6 -750
  119. package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +4 -175
  120. package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +1 -116
  121. package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +8 -391
  122. package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +6 -302
  123. package/dist/components/docs/knowledge/index.js +21 -1730
  124. package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +3 -198
  125. package/dist/components/docs/libraries/LibrariesAiAgentPage.js +3 -141
  126. package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +4 -80
  127. package/dist/components/docs/libraries/LibrariesContentGenPage.js +2 -100
  128. package/dist/components/docs/libraries/LibrariesContractsPage.js +2 -284
  129. package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +3 -112
  130. package/dist/components/docs/libraries/LibrariesDataBackendPage.js +2 -166
  131. package/dist/components/docs/libraries/LibrariesDataViewsPage.js +3 -186
  132. package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +4 -279
  133. package/dist/components/docs/libraries/LibrariesEvolutionPage.js +4 -127
  134. package/dist/components/docs/libraries/LibrariesGraphQLPage.js +2 -173
  135. package/dist/components/docs/libraries/LibrariesGrowthPage.js +3 -88
  136. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -108
  137. package/dist/components/docs/libraries/LibrariesObservabilityPage.js +5 -130
  138. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -110
  139. package/dist/components/docs/libraries/LibrariesOverviewPage.js +1 -170
  140. package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +4 -114
  141. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -132
  142. package/dist/components/docs/libraries/LibrariesResiliencePage.js +4 -120
  143. package/dist/components/docs/libraries/LibrariesRuntimePage.js +2 -200
  144. package/dist/components/docs/libraries/LibrariesSLOPage.js +3 -116
  145. package/dist/components/docs/libraries/LibrariesSchemaPage.js +3 -273
  146. package/dist/components/docs/libraries/LibrariesSupportBotPage.js +3 -134
  147. package/dist/components/docs/libraries/LibrariesTestingPage.js +3 -133
  148. package/dist/components/docs/libraries/LibrariesUIKitPage.js +2 -230
  149. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -88
  150. package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +2 -181
  151. package/dist/components/docs/libraries/index.js +54 -4147
  152. package/dist/components/docs/manifesto/ManifestoPage.js +1 -86
  153. package/dist/components/docs/ops/AutoEvolutionOpsPage.js +2 -132
  154. package/dist/components/docs/ops/DistributedTracingOpsPage.js +2 -71
  155. package/dist/components/docs/ops/index.js +3 -202
  156. package/dist/components/docs/ops/ops-lifecycle.docblocks.js +3 -38
  157. package/dist/components/docs/ops/ops-runbooks-a.docblocks.js +3 -94
  158. package/dist/components/docs/ops/ops-runbooks-b.docblocks.js +3 -76
  159. package/dist/components/docs/ops/ops-slo-tenant.docblocks.js +3 -76
  160. package/dist/components/docs/ops/ops-top.docs.js +2 -17
  161. package/dist/components/docs/ops/ops.docs.js +10 -302
  162. package/dist/components/docs/product/product.docblocks.js +5 -72
  163. package/dist/components/docs/reference/DocsMarkdownContent.js +2 -196
  164. package/dist/components/docs/reference/DocsReferenceContent.js +3 -256
  165. package/dist/components/docs/reference/DocsReferenceIndexClient.js +2 -127
  166. package/dist/components/docs/reference/DocsReferenceIndexPage.js +2 -206
  167. package/dist/components/docs/reference/DocsReferencePage.js +3 -265
  168. package/dist/components/docs/reference/docsMarkdownParser.js +2 -92
  169. package/dist/components/docs/reference/index.js +4 -470
  170. package/dist/components/docs/safety/SafetyAuditingPage.js +2 -350
  171. package/dist/components/docs/safety/SafetyMigrationsPage.js +2 -359
  172. package/dist/components/docs/safety/SafetyOverviewPage.js +1 -101
  173. package/dist/components/docs/safety/SafetyPDPPage.js +2 -301
  174. package/dist/components/docs/safety/SafetySecurityTrustPage.js +1 -206
  175. package/dist/components/docs/safety/SafetySigningPage.js +3 -90
  176. package/dist/components/docs/safety/SafetyTenantIsolationPage.js +2 -79
  177. package/dist/components/docs/safety/index.js +7 -1480
  178. package/dist/components/docs/shared/StudioPrompt.js +1 -31
  179. package/dist/components/docs/specs/SpecsBuilderControlPlanePage.d.ts +1 -0
  180. package/dist/components/docs/specs/SpecsBuilderControlPlanePage.js +34 -0
  181. package/dist/components/docs/specs/SpecsCapabilitiesPage.js +2 -158
  182. package/dist/components/docs/specs/SpecsConnectPage.d.ts +1 -0
  183. package/dist/components/docs/specs/SpecsConnectPage.js +8 -0
  184. package/dist/components/docs/specs/SpecsDataViewsPage.js +2 -260
  185. package/dist/components/docs/specs/SpecsModuleBundlesPage.d.ts +1 -0
  186. package/dist/components/docs/specs/SpecsModuleBundlesPage.js +67 -0
  187. package/dist/components/docs/specs/SpecsOverlaysPage.js +2 -372
  188. package/dist/components/docs/specs/SpecsOverviewPage.js +1 -186
  189. package/dist/components/docs/specs/SpecsPolicyPage.js +3 -420
  190. package/dist/components/docs/specs/SpecsWorkflowsPage.js +2 -325
  191. package/dist/components/docs/specs/index.d.ts +3 -0
  192. package/dist/components/docs/specs/index.js +109 -1715
  193. package/dist/components/docs/studio/StudioBYOKPage.js +1 -26
  194. package/dist/components/docs/studio/StudioDeploymentsPage.js +1 -26
  195. package/dist/components/docs/studio/StudioGettingStartedPage.js +1 -26
  196. package/dist/components/docs/studio/StudioIntegrationsPage.js +1 -26
  197. package/dist/components/docs/studio/StudioOverviewPage.js +1 -157
  198. package/dist/components/docs/studio/StudioVisualBuilderPage.js +1 -26
  199. package/dist/components/docs/studio/index.js +1 -282
  200. package/dist/components/docs/tech/contracts/tech-docs.docblocks.js +2 -19
  201. package/dist/components/integrations/index.js +2 -600
  202. package/dist/components/integrations/molecules/IntegrationCard.js +1 -100
  203. package/dist/components/integrations/organisms/IntegrationMarketplace.js +1 -214
  204. package/dist/components/integrations/organisms/IntegrationSettings.js +2 -284
  205. package/dist/components/integrations/organisms/KnowledgeSourceList.js +1 -103
  206. package/dist/components/legal/PrivacyTemplate.js +1 -1025
  207. package/dist/components/legal/TermsTemplate.js +1 -941
  208. package/dist/components/legal/index.js +1 -1963
  209. package/dist/components/shared/FeatureGateNotice.js +1 -38
  210. package/dist/components/shared/index.js +1 -38
  211. package/dist/components/shell/WorkspaceHeader.js +1 -100
  212. package/dist/components/shell/WorkspaceProjectShellLayout.js +1 -222
  213. package/dist/components/shell/WorkspaceShellRenderer.js +1 -228
  214. package/dist/components/shell/WorkspaceSidebar.js +1 -68
  215. package/dist/components/shell/index.js +1 -287
  216. package/dist/components/templates/engine/index.js +1 -39
  217. package/dist/components/templates/index.js +11 -965
  218. package/dist/components/templates/messaging/ConversationList.js +2 -83
  219. package/dist/components/templates/messaging/MessageComposer.js +4 -150
  220. package/dist/components/templates/messaging/MessageThread.js +3 -83
  221. package/dist/components/templates/messaging/MessagingWorkspace.js +5 -265
  222. package/dist/components/templates/messaging/index.js +5 -269
  223. package/dist/components/templates/recipes/LanguageSwitcher.js +1 -16
  224. package/dist/components/templates/recipes/RecipeCard.js +1 -80
  225. package/dist/components/templates/recipes/RecipeDetail.js +1 -74
  226. package/dist/components/templates/recipes/RecipeList.js +3 -245
  227. package/dist/components/templates/recipes/index.js +3 -248
  228. package/dist/components/templates/todos/FilterBar.js +1 -107
  229. package/dist/components/templates/todos/TaskForm.js +2 -158
  230. package/dist/components/templates/todos/TaskItem.js +1 -77
  231. package/dist/components/templates/todos/TaskList.js +5 -449
  232. package/dist/components/templates/todos/index.js +5 -452
  233. package/dist/config/contractspec-blueprint.js +1 -123
  234. package/dist/config/contractspec-branding.js +1 -44
  235. package/dist/config/contractspec-routes.js +1 -24
  236. package/dist/config/index.js +1 -126
  237. package/dist/features/contracts-registry.js +1 -178
  238. package/dist/features/docs/docs.contracts.js +1 -17
  239. package/dist/features/docs/index.js +1 -17
  240. package/dist/features/docs.feature.js +1 -33
  241. package/dist/features/index.js +1 -315
  242. package/dist/features/mcp.feature.js +1 -30
  243. package/dist/features/presentations.feature.js +1 -33
  244. package/dist/features/registry.js +1 -116
  245. package/dist/index.js +556 -28593
  246. package/dist/infrastructure/elysia/index.js +1 -35
  247. package/dist/infrastructure/elysia/logger.js +1 -35
  248. package/dist/infrastructure/index.js +1 -35
  249. package/dist/libs/email/client.js +1 -114
  250. package/dist/libs/email/contact.js +12 -165
  251. package/dist/libs/email/newsletter.js +6 -167
  252. package/dist/libs/email/types.js +0 -2
  253. package/dist/libs/email/utils.js +2 -8
  254. package/dist/libs/email/waitlist-application.js +28 -209
  255. package/dist/libs/email/waitlist.js +6 -167
  256. package/dist/libs/email.js +46 -363
  257. package/dist/libs/posthog/client.js +1 -63
  258. package/dist/libs/posthog/native.js +1 -23
  259. package/dist/libs/posthog/server.js +1 -13
  260. package/dist/libs/pricing-examples.js +1 -18
  261. package/dist/node/application/context-storage/index.js +1 -28
  262. package/dist/node/application/index.js +13 -2133
  263. package/dist/node/application/mcp/cliMcp.js +4 -452
  264. package/dist/node/application/mcp/common.js +1 -193
  265. package/dist/node/application/mcp/contractsMcp.js +2 -549
  266. package/dist/node/application/mcp/contractsMcpResources.js +2 -123
  267. package/dist/node/application/mcp/contractsMcpTools.js +1 -199
  268. package/dist/node/application/mcp/docsMcp.catalog.js +3 -381
  269. package/dist/node/application/mcp/docsMcp.data.js +1 -147
  270. package/dist/node/application/mcp/docsMcp.js +6 -1039
  271. package/dist/node/application/mcp/docsMcp.prompts.js +6 -521
  272. package/dist/node/application/mcp/docsMcp.reference.js +3 -235
  273. package/dist/node/application/mcp/docsMcp.resources.js +3 -519
  274. package/dist/node/application/mcp/docsMcp.tools.js +3 -518
  275. package/dist/node/application/mcp/index.js +13 -2106
  276. package/dist/node/application/mcp/internalMcp.js +2 -410
  277. package/dist/node/application/mcp/normalizeMcpRequest.js +1 -21
  278. package/dist/node/application/mcp/providerRankingMcp.js +1 -530
  279. package/dist/node/bundles/LibraryBundle.js +1 -138
  280. package/dist/node/bundles/index.js +1 -138
  281. package/dist/node/components/docs/DocsIndexPage.js +2 -912
  282. package/dist/node/components/docs/advanced/AdvancedMCPPage.js +4 -271
  283. package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -107
  284. package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +2 -118
  285. package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -92
  286. package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +2 -373
  287. package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -99
  288. package/dist/node/components/docs/advanced/index.js +10 -1055
  289. package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +6 -243
  290. package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +3 -160
  291. package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -259
  292. package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -374
  293. package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -166
  294. package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +1 -143
  295. package/dist/node/components/docs/architecture/index.js +20 -1340
  296. package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -245
  297. package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -230
  298. package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -245
  299. package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +1 -202
  300. package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +1 -254
  301. package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -339
  302. package/dist/node/components/docs/comparison/index.js +1 -1510
  303. package/dist/node/components/docs/docsManifest.js +1 -611
  304. package/dist/node/components/docs/ecosystem/IntegrationsPage.js +2 -103
  305. package/dist/node/components/docs/ecosystem/PluginsPage.js +13 -179
  306. package/dist/node/components/docs/ecosystem/RegistryPage.js +7 -100
  307. package/dist/node/components/docs/ecosystem/TemplatesPage.js +3 -141
  308. package/dist/node/components/docs/ecosystem/ecosystem.docblocks.js +2 -48
  309. package/dist/node/components/docs/ecosystem/index.js +23 -569
  310. package/dist/node/components/docs/examples/DocsExamplesPage.js +4 -124
  311. package/dist/node/components/docs/examples/ExampleShowcasePage.js +4 -244
  312. package/dist/node/components/docs/examples/exampleShowcaseData.js +4 -39
  313. package/dist/node/components/docs/examples/index.js +4 -330
  314. package/dist/node/components/docs/generated/docs-index.generated.js +1 -5
  315. package/dist/node/components/docs/generated/index.js +1 -74
  316. package/dist/node/components/docs/generated/loader.js +1 -74
  317. package/dist/node/components/docs/getting-started/CLIPage.js +4 -271
  318. package/dist/node/components/docs/getting-started/CompatibilityPage.js +1 -173
  319. package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +4 -134
  320. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +1 -194
  321. package/dist/node/components/docs/getting-started/HelloWorldPage.js +5 -183
  322. package/dist/node/components/docs/getting-started/InstallationPage.js +3 -154
  323. package/dist/node/components/docs/getting-started/StartHerePage.js +2 -129
  324. package/dist/node/components/docs/getting-started/TroubleshootingPage.js +2 -168
  325. package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +1 -432
  326. package/dist/node/components/docs/getting-started/getting-started.docblocks.js +4 -41
  327. package/dist/node/components/docs/getting-started/index.js +18 -1869
  328. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +2 -196
  329. package/dist/node/components/docs/guides/GuideConnectInRepoPage.js +43 -0
  330. package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -541
  331. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +3 -207
  332. package/dist/node/components/docs/guides/GuideFirstModuleBundlePage.js +75 -0
  333. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -209
  334. package/dist/node/components/docs/guides/GuideHostBuilderWorkbenchPage.js +69 -0
  335. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -754
  336. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -268
  337. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +4 -196
  338. package/dist/node/components/docs/guides/GuidesIndexPage.js +2 -169
  339. package/dist/node/components/docs/guides/guides.docblocks.js +11 -75
  340. package/dist/node/components/docs/guides/index.js +213 -2428
  341. package/dist/node/components/docs/index.js +542 -24310
  342. package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -42
  343. package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -105
  344. package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +3 -142
  345. package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +3 -109
  346. package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -79
  347. package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +3 -146
  348. package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +5 -150
  349. package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +5 -140
  350. package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +1 -160
  351. package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +4 -218
  352. package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +4 -300
  353. package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +5 -111
  354. package/dist/node/components/docs/integrations/IntegrationsResendPage.js +3 -102
  355. package/dist/node/components/docs/integrations/IntegrationsS3Page.js +4 -124
  356. package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +3 -144
  357. package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +7 -290
  358. package/dist/node/components/docs/integrations/IntegrationsStripePage.js +6 -327
  359. package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +3 -128
  360. package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -146
  361. package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -156
  362. package/dist/node/components/docs/integrations/index.js +52 -3100
  363. package/dist/node/components/docs/intent/ContractFirstApiPage.js +2 -126
  364. package/dist/node/components/docs/intent/DeterministicCodegenPage.js +2 -148
  365. package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +7 -207
  366. package/dist/node/components/docs/intent/OpenapiAlternativePage.js +3 -201
  367. package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +4 -144
  368. package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -126
  369. package/dist/node/components/docs/intent/index.js +15 -1135
  370. package/dist/node/components/docs/intent/intent-pages.docblocks.js +1 -201
  371. package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +6 -750
  372. package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +4 -175
  373. package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +1 -116
  374. package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +8 -391
  375. package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +6 -302
  376. package/dist/node/components/docs/knowledge/index.js +21 -1730
  377. package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +3 -198
  378. package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +3 -141
  379. package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +4 -80
  380. package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +2 -100
  381. package/dist/node/components/docs/libraries/LibrariesContractsPage.js +2 -284
  382. package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +3 -112
  383. package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +2 -166
  384. package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +3 -186
  385. package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +4 -279
  386. package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +4 -127
  387. package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +2 -173
  388. package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +3 -88
  389. package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -108
  390. package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +5 -130
  391. package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -110
  392. package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +1 -170
  393. package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +4 -114
  394. package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -132
  395. package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +4 -120
  396. package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +2 -200
  397. package/dist/node/components/docs/libraries/LibrariesSLOPage.js +3 -116
  398. package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +3 -273
  399. package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +3 -134
  400. package/dist/node/components/docs/libraries/LibrariesTestingPage.js +3 -133
  401. package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +2 -230
  402. package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -88
  403. package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +2 -181
  404. package/dist/node/components/docs/libraries/index.js +54 -4147
  405. package/dist/node/components/docs/manifesto/ManifestoPage.js +1 -86
  406. package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +2 -132
  407. package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +2 -71
  408. package/dist/node/components/docs/ops/index.js +3 -202
  409. package/dist/node/components/docs/ops/ops-lifecycle.docblocks.js +3 -38
  410. package/dist/node/components/docs/ops/ops-runbooks-a.docblocks.js +3 -94
  411. package/dist/node/components/docs/ops/ops-runbooks-b.docblocks.js +3 -76
  412. package/dist/node/components/docs/ops/ops-slo-tenant.docblocks.js +3 -76
  413. package/dist/node/components/docs/ops/ops-top.docs.js +2 -17
  414. package/dist/node/components/docs/ops/ops.docs.js +10 -302
  415. package/dist/node/components/docs/product/product.docblocks.js +5 -72
  416. package/dist/node/components/docs/reference/DocsMarkdownContent.js +2 -196
  417. package/dist/node/components/docs/reference/DocsReferenceContent.js +3 -256
  418. package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +2 -127
  419. package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +2 -206
  420. package/dist/node/components/docs/reference/DocsReferencePage.js +3 -265
  421. package/dist/node/components/docs/reference/docsMarkdownParser.js +2 -92
  422. package/dist/node/components/docs/reference/index.js +4 -470
  423. package/dist/node/components/docs/safety/SafetyAuditingPage.js +2 -350
  424. package/dist/node/components/docs/safety/SafetyMigrationsPage.js +2 -359
  425. package/dist/node/components/docs/safety/SafetyOverviewPage.js +1 -101
  426. package/dist/node/components/docs/safety/SafetyPDPPage.js +2 -301
  427. package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +1 -206
  428. package/dist/node/components/docs/safety/SafetySigningPage.js +3 -90
  429. package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +2 -79
  430. package/dist/node/components/docs/safety/index.js +7 -1480
  431. package/dist/node/components/docs/shared/StudioPrompt.js +1 -31
  432. package/dist/node/components/docs/specs/SpecsBuilderControlPlanePage.js +33 -0
  433. package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +2 -158
  434. package/dist/node/components/docs/specs/SpecsConnectPage.js +7 -0
  435. package/dist/node/components/docs/specs/SpecsDataViewsPage.js +2 -260
  436. package/dist/node/components/docs/specs/SpecsModuleBundlesPage.js +66 -0
  437. package/dist/node/components/docs/specs/SpecsOverlaysPage.js +2 -372
  438. package/dist/node/components/docs/specs/SpecsOverviewPage.js +1 -186
  439. package/dist/node/components/docs/specs/SpecsPolicyPage.js +3 -420
  440. package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +2 -325
  441. package/dist/node/components/docs/specs/index.js +109 -1715
  442. package/dist/node/components/docs/studio/StudioBYOKPage.js +1 -26
  443. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +1 -26
  444. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +1 -26
  445. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +1 -26
  446. package/dist/node/components/docs/studio/StudioOverviewPage.js +1 -157
  447. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +1 -26
  448. package/dist/node/components/docs/studio/index.js +1 -282
  449. package/dist/node/components/docs/tech/contracts/tech-docs.docblocks.js +2 -19
  450. package/dist/node/components/integrations/index.js +2 -600
  451. package/dist/node/components/integrations/molecules/IntegrationCard.js +1 -100
  452. package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +1 -214
  453. package/dist/node/components/integrations/organisms/IntegrationSettings.js +2 -284
  454. package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +1 -103
  455. package/dist/node/components/legal/PrivacyTemplate.js +1 -1025
  456. package/dist/node/components/legal/TermsTemplate.js +1 -941
  457. package/dist/node/components/legal/index.js +1 -1963
  458. package/dist/node/components/shared/FeatureGateNotice.js +1 -38
  459. package/dist/node/components/shared/index.js +1 -38
  460. package/dist/node/components/shell/WorkspaceHeader.js +1 -100
  461. package/dist/node/components/shell/WorkspaceProjectShellLayout.js +1 -222
  462. package/dist/node/components/shell/WorkspaceShellRenderer.js +1 -228
  463. package/dist/node/components/shell/WorkspaceSidebar.js +1 -68
  464. package/dist/node/components/shell/index.js +1 -287
  465. package/dist/node/components/templates/engine/index.js +1 -39
  466. package/dist/node/components/templates/index.js +11 -965
  467. package/dist/node/components/templates/messaging/ConversationList.js +2 -83
  468. package/dist/node/components/templates/messaging/MessageComposer.js +4 -150
  469. package/dist/node/components/templates/messaging/MessageThread.js +3 -83
  470. package/dist/node/components/templates/messaging/MessagingWorkspace.js +5 -265
  471. package/dist/node/components/templates/messaging/index.js +5 -269
  472. package/dist/node/components/templates/recipes/LanguageSwitcher.js +1 -16
  473. package/dist/node/components/templates/recipes/RecipeCard.js +1 -80
  474. package/dist/node/components/templates/recipes/RecipeDetail.js +1 -74
  475. package/dist/node/components/templates/recipes/RecipeList.js +3 -245
  476. package/dist/node/components/templates/recipes/index.js +3 -248
  477. package/dist/node/components/templates/todos/FilterBar.js +1 -107
  478. package/dist/node/components/templates/todos/TaskForm.js +2 -158
  479. package/dist/node/components/templates/todos/TaskItem.js +1 -77
  480. package/dist/node/components/templates/todos/TaskList.js +5 -449
  481. package/dist/node/components/templates/todos/index.js +5 -452
  482. package/dist/node/config/contractspec-blueprint.js +1 -123
  483. package/dist/node/config/contractspec-branding.js +1 -44
  484. package/dist/node/config/contractspec-routes.js +1 -24
  485. package/dist/node/config/index.js +1 -126
  486. package/dist/node/features/contracts-registry.js +1 -178
  487. package/dist/node/features/docs/docs.contracts.js +1 -17
  488. package/dist/node/features/docs/index.js +1 -17
  489. package/dist/node/features/docs.feature.js +1 -33
  490. package/dist/node/features/index.js +1 -315
  491. package/dist/node/features/mcp.feature.js +1 -30
  492. package/dist/node/features/presentations.feature.js +1 -33
  493. package/dist/node/features/registry.js +1 -116
  494. package/dist/node/index.js +556 -28593
  495. package/dist/node/infrastructure/elysia/index.js +1 -35
  496. package/dist/node/infrastructure/elysia/logger.js +1 -35
  497. package/dist/node/infrastructure/index.js +1 -35
  498. package/dist/node/libs/email/client.js +1 -114
  499. package/dist/node/libs/email/contact.js +12 -165
  500. package/dist/node/libs/email/newsletter.js +6 -167
  501. package/dist/node/libs/email/types.js +0 -2
  502. package/dist/node/libs/email/utils.js +2 -8
  503. package/dist/node/libs/email/waitlist-application.js +28 -209
  504. package/dist/node/libs/email/waitlist.js +6 -167
  505. package/dist/node/libs/email.js +46 -363
  506. package/dist/node/libs/posthog/client.js +1 -63
  507. package/dist/node/libs/posthog/native.js +1 -23
  508. package/dist/node/libs/posthog/server.js +1 -13
  509. package/dist/node/libs/pricing-examples.js +1 -18
  510. package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -97
  511. package/dist/node/presentation/features/atoms/FeatureIcon/index.js +1 -97
  512. package/dist/node/presentation/features/atoms/index.js +1 -97
  513. package/dist/node/presentation/features/hooks/index.js +1 -397
  514. package/dist/node/presentation/features/hooks/useContractsRegistry.js +1 -289
  515. package/dist/node/presentation/features/hooks/useFeatureFilters.js +1 -75
  516. package/dist/node/presentation/features/hooks/useFeatureRegistry.js +1 -147
  517. package/dist/node/presentation/features/hooks/useRelatedDocs.js +1 -28
  518. package/dist/node/presentation/features/index.js +1 -3063
  519. package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -366
  520. package/dist/node/presentation/features/molecules/FeatureCard/index.js +1 -366
  521. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -50
  522. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -50
  523. package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -92
  524. package/dist/node/presentation/features/molecules/FeatureFilters/index.js +1 -92
  525. package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -176
  526. package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +1 -176
  527. package/dist/node/presentation/features/molecules/index.js +1 -505
  528. package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +1 -304
  529. package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -154
  530. package/dist/node/presentation/features/organisms/FeatureDetail/index.js +1 -154
  531. package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -909
  532. package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +1 -909
  533. package/dist/node/presentation/features/organisms/FeatureEventsList.js +1 -302
  534. package/dist/node/presentation/features/organisms/FeatureFormsList.js +1 -302
  535. package/dist/node/presentation/features/organisms/FeatureOperationsList.js +1 -180
  536. package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +1 -304
  537. package/dist/node/presentation/features/organisms/index.js +1 -1359
  538. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -332
  539. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -332
  540. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -342
  541. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -342
  542. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -303
  543. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -303
  544. package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -340
  545. package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +1 -340
  546. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -329
  547. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -329
  548. package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -340
  549. package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +1 -340
  550. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -302
  551. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -302
  552. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -218
  553. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -218
  554. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -187
  555. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -187
  556. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -306
  557. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -306
  558. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -342
  559. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -342
  560. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -97
  561. package/dist/presentation/features/atoms/FeatureIcon/index.js +1 -97
  562. package/dist/presentation/features/atoms/index.js +1 -97
  563. package/dist/presentation/features/hooks/index.js +1 -397
  564. package/dist/presentation/features/hooks/useContractsRegistry.js +1 -289
  565. package/dist/presentation/features/hooks/useFeatureFilters.js +1 -75
  566. package/dist/presentation/features/hooks/useFeatureRegistry.js +1 -147
  567. package/dist/presentation/features/hooks/useRelatedDocs.js +1 -28
  568. package/dist/presentation/features/index.js +1 -3063
  569. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -366
  570. package/dist/presentation/features/molecules/FeatureCard/index.js +1 -366
  571. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -50
  572. package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -50
  573. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -92
  574. package/dist/presentation/features/molecules/FeatureFilters/index.js +1 -92
  575. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -176
  576. package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +1 -176
  577. package/dist/presentation/features/molecules/index.js +1 -505
  578. package/dist/presentation/features/organisms/FeatureDataViewsList.js +1 -304
  579. package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -154
  580. package/dist/presentation/features/organisms/FeatureDetail/index.js +1 -154
  581. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -909
  582. package/dist/presentation/features/organisms/FeatureDiscovery/index.js +1 -909
  583. package/dist/presentation/features/organisms/FeatureEventsList.js +1 -302
  584. package/dist/presentation/features/organisms/FeatureFormsList.js +1 -302
  585. package/dist/presentation/features/organisms/FeatureOperationsList.js +1 -180
  586. package/dist/presentation/features/organisms/FeaturePresentationsList.js +1 -304
  587. package/dist/presentation/features/organisms/index.js +1 -1359
  588. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -332
  589. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -332
  590. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -342
  591. package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -342
  592. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -303
  593. package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -303
  594. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -340
  595. package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +1 -340
  596. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -329
  597. package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -329
  598. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -340
  599. package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +1 -340
  600. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -302
  601. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -302
  602. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -218
  603. package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -218
  604. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -187
  605. package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -187
  606. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -306
  607. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -306
  608. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -342
  609. package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -342
  610. package/package.json +103 -31
  611. package/src/components/docs/DocsIndexPage.tsx +55 -0
  612. package/src/components/docs/architecture/ArchitectureControlPlanePage.tsx +19 -0
  613. package/src/components/docs/architecture/ArchitectureOverviewPage.tsx +34 -0
  614. package/src/components/docs/docsManifest.test.ts +70 -0
  615. package/src/components/docs/docsManifest.ts +71 -1
  616. package/src/components/docs/ecosystem/PluginsPage.tsx +24 -10
  617. package/src/components/docs/ecosystem/RegistryPage.tsx +11 -6
  618. package/src/components/docs/generated/docs-index._common.json +206 -273
  619. package/src/components/docs/generated/docs-index.control-plane.json +18 -0
  620. package/src/components/docs/generated/docs-index.defineExample.json +10 -0
  621. package/src/components/docs/generated/docs-index.manifest.json +22 -12
  622. package/src/components/docs/generated/docs-index.platform-acp.json +64 -0
  623. package/src/components/docs/generated/docs-index.platform-agent.json +89 -1
  624. package/src/components/docs/generated/docs-index.platform-context.json +48 -0
  625. package/src/components/docs/generated/docs-index.platform-control-plane.json +72 -0
  626. package/src/components/docs/generated/docs-index.platform-database.json +40 -0
  627. package/src/components/docs/generated/docs-index.platform-docs.json +64 -0
  628. package/src/components/docs/generated/docs-index.platform-provider-ranking.json +89 -1
  629. package/src/components/docs/generated/docs-index.pocket-family-office.json +8 -0
  630. package/src/components/docs/generated/docs-index.unknown.json +8 -0
  631. package/src/components/docs/guides/GuideConnectInRepoPage.tsx +184 -0
  632. package/src/components/docs/guides/GuideFirstModuleBundlePage.tsx +182 -0
  633. package/src/components/docs/guides/GuideHostBuilderWorkbenchPage.tsx +230 -0
  634. package/src/components/docs/guides/GuidesIndexPage.tsx +21 -0
  635. package/src/components/docs/guides/index.ts +3 -0
  636. package/src/components/docs/specs/SpecsBuilderControlPlanePage.tsx +210 -0
  637. package/src/components/docs/specs/SpecsConnectPage.tsx +162 -0
  638. package/src/components/docs/specs/SpecsModuleBundlesPage.tsx +223 -0
  639. package/src/components/docs/specs/SpecsOverlaysPage.tsx +20 -0
  640. package/src/components/docs/specs/SpecsOverviewPage.tsx +44 -0
  641. package/src/components/docs/specs/index.ts +3 -0
  642. package/src/components/docs/studio/StudioOverviewPage.tsx +26 -0
  643. package/src/infrastructure/elysia/logger.ts +11 -3
@@ -1,99 +1,5 @@
1
1
  // @bun
2
- // src/components/docs/getting-started/CLIPage.tsx
3
- import { CodeBlock, InstallCommand } from "@contractspec/lib.design-system";
4
- import Link from "@contractspec/lib.ui-link";
5
- import { ChevronRight } from "lucide-react";
6
- import { jsx, jsxs } from "react/jsx-runtime";
7
- function CLIPage() {
8
- const commands = [
9
- {
10
- name: "create",
11
- description: "Interactive wizard to create contract specifications",
12
- usage: "contractspec create [--type operation] [--ai]"
13
- },
14
- {
15
- name: "build",
16
- description: "Generate implementation code from contract specs using AI agents",
17
- usage: "contractspec build <spec-file> [--agent-mode claude-code]"
18
- },
19
- {
20
- name: "validate",
21
- description: "Validate contract specifications and implementations",
22
- usage: "contractspec validate <spec-file> [--check-implementation]"
23
- },
24
- {
25
- name: "list",
26
- description: "List all contract specifications in the project",
27
- usage: "contractspec list [--type operation] [--json]"
28
- },
29
- {
30
- name: "watch",
31
- description: "Watch specs and auto-regenerate on changes",
32
- usage: "contractspec watch [--build] [--validate]"
33
- },
34
- {
35
- name: "sync",
36
- description: "Sync contracts by building all discovered specs",
37
- usage: "contractspec sync [--dry-run]"
38
- },
39
- {
40
- name: "ci",
41
- description: "Run all validation checks for CI/CD pipelines",
42
- usage: "contractspec ci [--format sarif] [--output results.sarif]"
43
- },
44
- {
45
- name: "deps",
46
- description: "Analyze contract dependencies and relationships",
47
- usage: "contractspec deps [--circular] [--format dot]"
48
- },
49
- {
50
- name: "diff",
51
- description: "Compare contract specifications and show differences",
52
- usage: "contractspec diff <spec1> <spec2> [--breaking]"
53
- }
54
- ];
55
- return /* @__PURE__ */ jsxs("div", {
56
- className: "space-y-8",
57
- children: [
58
- /* @__PURE__ */ jsxs("div", {
59
- className: "space-y-2",
60
- children: [
61
- /* @__PURE__ */ jsx("h1", {
62
- className: "font-bold text-4xl",
63
- children: "ContractSpec CLI"
64
- }),
65
- /* @__PURE__ */ jsx("p", {
66
- className: "text-lg text-muted-foreground",
67
- children: "Command-line interface for creating, building, and validating contract specifications with AI-powered code generation."
68
- })
69
- ]
70
- }),
71
- /* @__PURE__ */ jsxs("div", {
72
- className: "space-y-6",
73
- children: [
74
- /* @__PURE__ */ jsxs("div", {
75
- className: "space-y-3",
76
- children: [
77
- /* @__PURE__ */ jsx("h2", {
78
- className: "font-bold text-2xl",
79
- children: "Installation"
80
- }),
81
- /* @__PURE__ */ jsx(InstallCommand, {
82
- package: "contractspec",
83
- dev: true
84
- })
85
- ]
86
- }),
87
- /* @__PURE__ */ jsxs("div", {
88
- className: "space-y-3",
89
- children: [
90
- /* @__PURE__ */ jsx("h2", {
91
- className: "font-bold text-2xl",
92
- children: "Quick Start"
93
- }),
94
- /* @__PURE__ */ jsx(CodeBlock, {
95
- language: "bash",
96
- code: `# Initialize project
2
+ import{CodeBlock as C,InstallCommand as q}from"@contractspec/lib.design-system";import E from"@contractspec/lib.ui-link";import{ChevronRight as H}from"lucide-react";import{jsx as a,jsxs as l}from"react/jsx-runtime";function M(){return l("div",{className:"space-y-8",children:[l("div",{className:"space-y-2",children:[a("h1",{className:"font-bold text-4xl",children:"ContractSpec CLI"}),a("p",{className:"text-lg text-muted-foreground",children:"Command-line interface for creating, building, and validating contract specifications with AI-powered code generation."})]}),l("div",{className:"space-y-6",children:[l("div",{className:"space-y-3",children:[a("h2",{className:"font-bold text-2xl",children:"Installation"}),a(q,{package:"contractspec",dev:!0})]}),l("div",{className:"space-y-3",children:[a("h2",{className:"font-bold text-2xl",children:"Quick Start"}),a(C,{language:"bash",code:`# Initialize project
97
3
  bunx contractspec init
98
4
 
99
5
  # Create a spec
@@ -103,155 +9,13 @@ contractspec create --type operation
103
9
  contractspec build src/contracts/mySpec.ts
104
10
 
105
11
  # Validate
106
- contractspec validate src/contracts/mySpec.ts`
107
- })
108
- ]
109
- }),
110
- /* @__PURE__ */ jsxs("div", {
111
- className: "space-y-4",
112
- children: [
113
- /* @__PURE__ */ jsx("h2", {
114
- className: "font-bold text-2xl",
115
- children: "Commands"
116
- }),
117
- /* @__PURE__ */ jsx("div", {
118
- className: "grid gap-4",
119
- children: commands.map((cmd) => /* @__PURE__ */ jsxs("div", {
120
- className: "card-subtle space-y-2 p-4",
121
- children: [
122
- /* @__PURE__ */ jsx("h3", {
123
- className: "font-bold font-mono text-violet-400",
124
- children: cmd.name
125
- }),
126
- /* @__PURE__ */ jsx("p", {
127
- className: "text-muted-foreground text-sm",
128
- children: cmd.description
129
- }),
130
- /* @__PURE__ */ jsx(CodeBlock, {
131
- language: "bash",
132
- code: cmd.usage,
133
- showCopyButton: false
134
- })
135
- ]
136
- }, cmd.name))
137
- })
138
- ]
139
- }),
140
- /* @__PURE__ */ jsxs("div", {
141
- className: "space-y-3",
142
- children: [
143
- /* @__PURE__ */ jsx("h2", {
144
- className: "font-bold text-2xl",
145
- children: "AI Agent Modes"
146
- }),
147
- /* @__PURE__ */ jsx("p", {
148
- className: "text-muted-foreground",
149
- children: "The CLI supports multiple AI agent modes for different use cases:"
150
- }),
151
- /* @__PURE__ */ jsxs("div", {
152
- className: "grid gap-3 md:grid-cols-2",
153
- children: [
154
- /* @__PURE__ */ jsxs("div", {
155
- className: "card-subtle p-4",
156
- children: [
157
- /* @__PURE__ */ jsx("h4", {
158
- className: "font-bold",
159
- children: "simple"
160
- }),
161
- /* @__PURE__ */ jsx("p", {
162
- className: "text-muted-foreground text-sm",
163
- children: "Direct LLM API calls, fast and straightforward. Best for rapid prototyping."
164
- })
165
- ]
166
- }),
167
- /* @__PURE__ */ jsxs("div", {
168
- className: "card-subtle p-4",
169
- children: [
170
- /* @__PURE__ */ jsx("h4", {
171
- className: "font-bold",
172
- children: "claude-code"
173
- }),
174
- /* @__PURE__ */ jsx("p", {
175
- className: "text-muted-foreground text-sm",
176
- children: "Extended thinking with Claude. Best for production-quality code."
177
- })
178
- ]
179
- }),
180
- /* @__PURE__ */ jsxs("div", {
181
- className: "card-subtle p-4",
182
- children: [
183
- /* @__PURE__ */ jsx("h4", {
184
- className: "font-bold",
185
- children: "openai-codex"
186
- }),
187
- /* @__PURE__ */ jsx("p", {
188
- className: "text-muted-foreground text-sm",
189
- children: "GPT-4o/o1 models. Excellent for algorithms and optimization."
190
- })
191
- ]
192
- }),
193
- /* @__PURE__ */ jsxs("div", {
194
- className: "card-subtle p-4",
195
- children: [
196
- /* @__PURE__ */ jsx("h4", {
197
- className: "font-bold",
198
- children: "cursor"
199
- }),
200
- /* @__PURE__ */ jsx("p", {
201
- className: "text-muted-foreground text-sm",
202
- children: "Leverages Cursor agentic capabilities. Requires Cursor environment."
203
- })
204
- ]
205
- })
206
- ]
207
- })
208
- ]
209
- }),
210
- /* @__PURE__ */ jsxs("div", {
211
- className: "space-y-3",
212
- children: [
213
- /* @__PURE__ */ jsx("h2", {
214
- className: "font-bold text-2xl",
215
- children: "CI/CD Integration"
216
- }),
217
- /* @__PURE__ */ jsx("p", {
218
- className: "text-muted-foreground",
219
- children: "Run all validation checks in CI/CD with machine-readable output:"
220
- }),
221
- /* @__PURE__ */ jsx(CodeBlock, {
222
- language: "yaml",
223
- filename: ".github/workflows/validate.yml",
224
- code: `- name: Validate Contracts
12
+ contractspec validate src/contracts/mySpec.ts`})]}),l("div",{className:"space-y-4",children:[a("h2",{className:"font-bold text-2xl",children:"Commands"}),a("div",{className:"grid gap-4",children:[{name:"create",description:"Interactive wizard to create contract specifications",usage:"contractspec create [--type operation] [--ai]"},{name:"build",description:"Generate implementation code from contract specs using AI agents",usage:"contractspec build <spec-file> [--agent-mode claude-code]"},{name:"validate",description:"Validate contract specifications and implementations",usage:"contractspec validate <spec-file> [--check-implementation]"},{name:"list",description:"List all contract specifications in the project",usage:"contractspec list [--type operation] [--json]"},{name:"watch",description:"Watch specs and auto-regenerate on changes",usage:"contractspec watch [--build] [--validate]"},{name:"sync",description:"Sync contracts by building all discovered specs",usage:"contractspec sync [--dry-run]"},{name:"ci",description:"Run all validation checks for CI/CD pipelines",usage:"contractspec ci [--format sarif] [--output results.sarif]"},{name:"deps",description:"Analyze contract dependencies and relationships",usage:"contractspec deps [--circular] [--format dot]"},{name:"diff",description:"Compare contract specifications and show differences",usage:"contractspec diff <spec1> <spec2> [--breaking]"}].map((u)=>l("div",{className:"card-subtle space-y-2 p-4",children:[a("h3",{className:"font-bold font-mono text-violet-400",children:u.name}),a("p",{className:"text-muted-foreground text-sm",children:u.description}),a(C,{language:"bash",code:u.usage,showCopyButton:!1})]},u.name))})]}),l("div",{className:"space-y-3",children:[a("h2",{className:"font-bold text-2xl",children:"AI Agent Modes"}),a("p",{className:"text-muted-foreground",children:"The CLI supports multiple AI agent modes for different use cases:"}),l("div",{className:"grid gap-3 md:grid-cols-2",children:[l("div",{className:"card-subtle p-4",children:[a("h4",{className:"font-bold",children:"simple"}),a("p",{className:"text-muted-foreground text-sm",children:"Direct LLM API calls, fast and straightforward. Best for rapid prototyping."})]}),l("div",{className:"card-subtle p-4",children:[a("h4",{className:"font-bold",children:"claude-code"}),a("p",{className:"text-muted-foreground text-sm",children:"Extended thinking with Claude. Best for production-quality code."})]}),l("div",{className:"card-subtle p-4",children:[a("h4",{className:"font-bold",children:"openai-codex"}),a("p",{className:"text-muted-foreground text-sm",children:"GPT-4o/o1 models. Excellent for algorithms and optimization."})]}),l("div",{className:"card-subtle p-4",children:[a("h4",{className:"font-bold",children:"cursor"}),a("p",{className:"text-muted-foreground text-sm",children:"Leverages Cursor agentic capabilities. Requires Cursor environment."})]})]})]}),l("div",{className:"space-y-3",children:[a("h2",{className:"font-bold text-2xl",children:"CI/CD Integration"}),a("p",{className:"text-muted-foreground",children:"Run all validation checks in CI/CD with machine-readable output:"}),a(C,{language:"yaml",filename:".github/workflows/validate.yml",code:`- name: Validate Contracts
225
13
  run: contractspec ci --format sarif --output results.sarif
226
14
 
227
15
  - name: Upload SARIF
228
16
  uses: github/codeql-action/upload-sarif@v3
229
17
  with:
230
- sarif_file: results.sarif`
231
- })
232
- ]
233
- }),
234
- /* @__PURE__ */ jsxs("div", {
235
- className: "card-subtle space-y-4 p-6",
236
- children: [
237
- /* @__PURE__ */ jsx("h3", {
238
- className: "font-bold",
239
- children: "Configuration"
240
- }),
241
- /* @__PURE__ */ jsxs("p", {
242
- className: "text-muted-foreground text-sm",
243
- children: [
244
- "Create a ",
245
- /* @__PURE__ */ jsx("code", {
246
- children: ".contractsrc.json"
247
- }),
248
- " file in your project root:"
249
- ]
250
- }),
251
- /* @__PURE__ */ jsx(CodeBlock, {
252
- language: "json",
253
- filename: ".contractsrc.json",
254
- code: `{
18
+ sarif_file: results.sarif`})]}),l("div",{className:"card-subtle space-y-4 p-6",children:[a("h3",{className:"font-bold",children:"Configuration"}),l("p",{className:"text-muted-foreground text-sm",children:["Create a ",a("code",{children:".contractsrc.json"})," file in your project root:"]}),a(C,{language:"json",filename:".contractsrc.json",code:`{
255
19
  "aiProvider": "claude",
256
20
  "agentMode": "claude-code",
257
21
  "outputDir": "./src",
@@ -259,244 +23,7 @@ contractspec validate src/contracts/mySpec.ts`
259
23
  "operations": "interactions/commands|queries",
260
24
  "events": "events"
261
25
  }
262
- }`
263
- })
264
- ]
265
- })
266
- ]
267
- }),
268
- /* @__PURE__ */ jsxs("div", {
269
- className: "flex items-center gap-4 pt-4",
270
- children: [
271
- /* @__PURE__ */ jsxs(Link, {
272
- href: "/docs/getting-started/tools/vscode",
273
- className: "btn-primary",
274
- children: [
275
- "Next: VS Code Extension ",
276
- /* @__PURE__ */ jsx(ChevronRight, {
277
- size: 16
278
- })
279
- ]
280
- }),
281
- /* @__PURE__ */ jsx(Link, {
282
- href: "/docs/getting-started/tools",
283
- className: "btn-ghost",
284
- children: "Back to Tools"
285
- })
286
- ]
287
- })
288
- ]
289
- });
290
- }
291
-
292
- // src/components/docs/getting-started/CompatibilityPage.tsx
293
- import Link2 from "@contractspec/lib.ui-link";
294
- import { ChevronRight as ChevronRight2 } from "lucide-react";
295
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
296
- function CompatibilityPage() {
297
- return /* @__PURE__ */ jsxs2("div", {
298
- className: "space-y-8",
299
- children: [
300
- /* @__PURE__ */ jsxs2("div", {
301
- className: "space-y-2",
302
- children: [
303
- /* @__PURE__ */ jsx2("h1", {
304
- className: "font-bold text-4xl",
305
- children: "Compatibility"
306
- }),
307
- /* @__PURE__ */ jsx2("p", {
308
- className: "text-lg text-muted-foreground",
309
- children: "Supported runtimes, frameworks, and agent modes for ContractSpec."
310
- })
311
- ]
312
- }),
313
- /* @__PURE__ */ jsxs2("div", {
314
- className: "space-y-6",
315
- children: [
316
- /* @__PURE__ */ jsxs2("div", {
317
- className: "card-subtle space-y-3 p-6",
318
- children: [
319
- /* @__PURE__ */ jsx2("h2", {
320
- className: "font-bold text-2xl",
321
- children: "Runtimes"
322
- }),
323
- /* @__PURE__ */ jsxs2("ul", {
324
- className: "space-y-2 text-muted-foreground",
325
- children: [
326
- /* @__PURE__ */ jsx2("li", {
327
- children: "Node.js 20+"
328
- }),
329
- /* @__PURE__ */ jsx2("li", {
330
- children: "Bun 1.0+"
331
- })
332
- ]
333
- })
334
- ]
335
- }),
336
- /* @__PURE__ */ jsxs2("div", {
337
- className: "card-subtle space-y-3 p-6",
338
- children: [
339
- /* @__PURE__ */ jsx2("h2", {
340
- className: "font-bold text-2xl",
341
- children: "Frameworks"
342
- }),
343
- /* @__PURE__ */ jsxs2("ul", {
344
- className: "space-y-2 text-muted-foreground",
345
- children: [
346
- /* @__PURE__ */ jsx2("li", {
347
- children: "Next.js 14+ (App Router preferred)"
348
- }),
349
- /* @__PURE__ */ jsx2("li", {
350
- children: "Bun + Elysia or compatible HTTP servers"
351
- })
352
- ]
353
- })
354
- ]
355
- }),
356
- /* @__PURE__ */ jsxs2("div", {
357
- className: "card-subtle space-y-3 p-6",
358
- children: [
359
- /* @__PURE__ */ jsx2("h2", {
360
- className: "font-bold text-2xl",
361
- children: "Package managers"
362
- }),
363
- /* @__PURE__ */ jsxs2("ul", {
364
- className: "space-y-2 text-muted-foreground",
365
- children: [
366
- /* @__PURE__ */ jsx2("li", {
367
- children: "bun (recommended)"
368
- }),
369
- /* @__PURE__ */ jsx2("li", {
370
- children: "npm"
371
- }),
372
- /* @__PURE__ */ jsx2("li", {
373
- children: "pnpm"
374
- })
375
- ]
376
- })
377
- ]
378
- }),
379
- /* @__PURE__ */ jsxs2("div", {
380
- className: "card-subtle space-y-3 p-6",
381
- children: [
382
- /* @__PURE__ */ jsx2("h2", {
383
- className: "font-bold text-2xl",
384
- children: "AI agent modes"
385
- }),
386
- /* @__PURE__ */ jsxs2("ul", {
387
- className: "space-y-2 text-muted-foreground",
388
- children: [
389
- /* @__PURE__ */ jsx2("li", {
390
- children: "claude-code"
391
- }),
392
- /* @__PURE__ */ jsx2("li", {
393
- children: "openai-codex"
394
- }),
395
- /* @__PURE__ */ jsx2("li", {
396
- children: "cursor"
397
- }),
398
- /* @__PURE__ */ jsx2("li", {
399
- children: "opencode"
400
- }),
401
- /* @__PURE__ */ jsx2("li", {
402
- children: "simple (direct LLM)"
403
- })
404
- ]
405
- })
406
- ]
407
- }),
408
- /* @__PURE__ */ jsxs2("div", {
409
- className: "card-subtle space-y-3 p-6",
410
- children: [
411
- /* @__PURE__ */ jsx2("h2", {
412
- className: "font-bold text-2xl",
413
- children: "Datastores"
414
- }),
415
- /* @__PURE__ */ jsx2("p", {
416
- className: "text-muted-foreground",
417
- children: "ContractSpec ships with Prisma-friendly defaults and can integrate with custom adapters for other databases."
418
- }),
419
- /* @__PURE__ */ jsxs2("ul", {
420
- className: "space-y-2 text-muted-foreground",
421
- children: [
422
- /* @__PURE__ */ jsx2("li", {
423
- children: "PostgreSQL via Prisma"
424
- }),
425
- /* @__PURE__ */ jsx2("li", {
426
- children: "Custom adapters for other SQL/NoSQL stores"
427
- })
428
- ]
429
- })
430
- ]
431
- })
432
- ]
433
- }),
434
- /* @__PURE__ */ jsxs2("div", {
435
- className: "flex flex-wrap items-center gap-3 pt-2",
436
- children: [
437
- /* @__PURE__ */ jsx2(Link2, {
438
- href: "/docs/getting-started/start-here",
439
- className: "btn-ghost",
440
- children: "Start here"
441
- }),
442
- /* @__PURE__ */ jsx2(Link2, {
443
- href: "/docs/getting-started/troubleshooting",
444
- className: "btn-ghost",
445
- children: "Troubleshooting"
446
- }),
447
- /* @__PURE__ */ jsxs2(Link2, {
448
- href: "/docs/getting-started/installation",
449
- className: "btn-primary",
450
- children: [
451
- "Next: Installation ",
452
- /* @__PURE__ */ jsx2(ChevronRight2, {
453
- size: 16
454
- })
455
- ]
456
- })
457
- ]
458
- })
459
- ]
460
- });
461
- }
462
-
463
- // src/components/docs/getting-started/DataViewTutorialPage.tsx
464
- import { CodeBlock as CodeBlock2 } from "@contractspec/lib.design-system";
465
- import Link3 from "@contractspec/lib.ui-link";
466
- import { ChevronRight as ChevronRight3 } from "lucide-react";
467
- import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
468
- function DataViewTutorialPage() {
469
- return /* @__PURE__ */ jsxs3("div", {
470
- className: "space-y-8",
471
- children: [
472
- /* @__PURE__ */ jsxs3("div", {
473
- className: "space-y-4",
474
- children: [
475
- /* @__PURE__ */ jsx3("h1", {
476
- className: "font-bold text-4xl",
477
- children: "Display Data with DataViews"
478
- }),
479
- /* @__PURE__ */ jsx3("p", {
480
- className: "text-lg text-muted-foreground",
481
- children: "Define a filterable, sortable transaction history view that works across web and mobile without duplicating UI code."
482
- })
483
- ]
484
- }),
485
- /* @__PURE__ */ jsxs3("div", {
486
- className: "space-y-4",
487
- children: [
488
- /* @__PURE__ */ jsx3("h2", {
489
- className: "font-bold text-2xl",
490
- children: "1. Define the underlying query"
491
- }),
492
- /* @__PURE__ */ jsx3("p", {
493
- className: "text-muted-foreground",
494
- children: "First, create a query operation to fetch the data:"
495
- }),
496
- /* @__PURE__ */ jsx3(CodeBlock2, {
497
- language: "typescript",
498
- filename: "lib/specs/billing/list-transactions.ts",
499
- code: `import { defineQuery } from '@contractspec/lib.contracts-spec';
26
+ }`})]})]}),l("div",{className:"flex items-center gap-4 pt-4",children:[l(E,{href:"/docs/getting-started/tools/vscode",className:"btn-primary",children:["Next: VS Code Extension ",a(H,{size:16})]}),a(E,{href:"/docs/getting-started/tools",className:"btn-ghost",children:"Back to Tools"})]})]})}import k from"@contractspec/lib.ui-link";import{ChevronRight as W}from"lucide-react";import{jsx as i,jsxs as p}from"react/jsx-runtime";function G(){return p("div",{className:"space-y-8",children:[p("div",{className:"space-y-2",children:[i("h1",{className:"font-bold text-4xl",children:"Compatibility"}),i("p",{className:"text-lg text-muted-foreground",children:"Supported runtimes, frameworks, and agent modes for ContractSpec."})]}),p("div",{className:"space-y-6",children:[p("div",{className:"card-subtle space-y-3 p-6",children:[i("h2",{className:"font-bold text-2xl",children:"Runtimes"}),p("ul",{className:"space-y-2 text-muted-foreground",children:[i("li",{children:"Node.js 20+"}),i("li",{children:"Bun 1.0+"})]})]}),p("div",{className:"card-subtle space-y-3 p-6",children:[i("h2",{className:"font-bold text-2xl",children:"Frameworks"}),p("ul",{className:"space-y-2 text-muted-foreground",children:[i("li",{children:"Next.js 14+ (App Router preferred)"}),i("li",{children:"Bun + Elysia or compatible HTTP servers"})]})]}),p("div",{className:"card-subtle space-y-3 p-6",children:[i("h2",{className:"font-bold text-2xl",children:"Package managers"}),p("ul",{className:"space-y-2 text-muted-foreground",children:[i("li",{children:"bun (recommended)"}),i("li",{children:"npm"}),i("li",{children:"pnpm"})]})]}),p("div",{className:"card-subtle space-y-3 p-6",children:[i("h2",{className:"font-bold text-2xl",children:"AI agent modes"}),p("ul",{className:"space-y-2 text-muted-foreground",children:[i("li",{children:"claude-code"}),i("li",{children:"openai-codex"}),i("li",{children:"cursor"}),i("li",{children:"opencode"}),i("li",{children:"simple (direct LLM)"})]})]}),p("div",{className:"card-subtle space-y-3 p-6",children:[i("h2",{className:"font-bold text-2xl",children:"Datastores"}),i("p",{className:"text-muted-foreground",children:"ContractSpec ships with Prisma-friendly defaults and can integrate with custom adapters for other databases."}),p("ul",{className:"space-y-2 text-muted-foreground",children:[i("li",{children:"PostgreSQL via Prisma"}),i("li",{children:"Custom adapters for other SQL/NoSQL stores"})]})]})]}),p("div",{className:"flex flex-wrap items-center gap-3 pt-2",children:[i(k,{href:"/docs/getting-started/start-here",className:"btn-ghost",children:"Start here"}),i(k,{href:"/docs/getting-started/troubleshooting",className:"btn-ghost",children:"Troubleshooting"}),p(k,{href:"/docs/getting-started/installation",className:"btn-primary",children:["Next: Installation ",i(W,{size:16})]})]})]})}import{CodeBlock as I}from"@contractspec/lib.design-system";import V from"@contractspec/lib.ui-link";import{ChevronRight as Q}from"lucide-react";import{jsx as c,jsxs as b}from"react/jsx-runtime";function U(){return b("div",{className:"space-y-8",children:[b("div",{className:"space-y-4",children:[c("h1",{className:"font-bold text-4xl",children:"Display Data with DataViews"}),c("p",{className:"text-lg text-muted-foreground",children:"Define a filterable, sortable transaction history view that works across web and mobile without duplicating UI code."})]}),b("div",{className:"space-y-4",children:[c("h2",{className:"font-bold text-2xl",children:"1. Define the underlying query"}),c("p",{className:"text-muted-foreground",children:"First, create a query operation to fetch the data:"}),c(I,{language:"typescript",filename:"lib/specs/billing/list-transactions.ts",code:`import { defineQuery } from '@contractspec/lib.contracts-spec';
500
27
 
501
28
  export const ListTransactions = defineQuery({
502
29
  meta: {
@@ -509,25 +36,7 @@ export const ListTransactions = defineQuery({
509
36
  output: /* array of transactions */,
510
37
  },
511
38
  policy: { auth: 'user' },
512
- });`
513
- })
514
- ]
515
- }),
516
- /* @__PURE__ */ jsxs3("div", {
517
- className: "space-y-4",
518
- children: [
519
- /* @__PURE__ */ jsx3("h2", {
520
- className: "font-bold text-2xl",
521
- children: "2. Define the DataView spec"
522
- }),
523
- /* @__PURE__ */ jsx3("p", {
524
- className: "text-muted-foreground",
525
- children: "Wrap your query with presentation metadata:"
526
- }),
527
- /* @__PURE__ */ jsx3(CodeBlock2, {
528
- language: "typescript",
529
- filename: "lib/specs/billing/transaction-history.data-view.ts",
530
- code: `import { defineDataView } from '@contractspec/lib.contracts-spec';
39
+ });`})]}),b("div",{className:"space-y-4",children:[c("h2",{className:"font-bold text-2xl",children:"2. Define the DataView spec"}),c("p",{className:"text-muted-foreground",children:"Wrap your query with presentation metadata:"}),c(I,{language:"typescript",filename:"lib/specs/billing/transaction-history.data-view.ts",code:`import { defineDataView } from '@contractspec/lib.contracts-spec';
531
40
  import { ListTransactions } from './list-transactions';
532
41
 
533
42
  export const TransactionHistory = defineDataView({
@@ -596,25 +105,7 @@ export const TransactionHistory = defineDataView({
596
105
  defaultSort: { field: 'date', direction: 'desc' },
597
106
  pagination: { pageSize: 25 },
598
107
  },
599
- });`
600
- })
601
- ]
602
- }),
603
- /* @__PURE__ */ jsxs3("div", {
604
- className: "space-y-4",
605
- children: [
606
- /* @__PURE__ */ jsx3("h2", {
607
- className: "font-bold text-2xl",
608
- children: "3. Render on the frontend"
609
- }),
610
- /* @__PURE__ */ jsx3("p", {
611
- className: "text-muted-foreground",
612
- children: "Use the runtime renderer in your React or React Native app:"
613
- }),
614
- /* @__PURE__ */ jsx3(CodeBlock2, {
615
- language: "tsx",
616
- filename: "app/dashboard/transactions/page.tsx",
617
- code: `'use client';
108
+ });`})]}),b("div",{className:"space-y-4",children:[c("h2",{className:"font-bold text-2xl",children:"3. Render on the frontend"}),c("p",{className:"text-muted-foreground",children:"Use the runtime renderer in your React or React Native app:"}),c(I,{language:"tsx",filename:"app/dashboard/transactions/page.tsx",code:`'use client';
618
109
 
619
110
  import { DataViewRenderer } from '@contractspec/lib.design-system';
620
111
  import { TransactionHistory } from '@/lib/specs/billing/transaction-history.data-view';
@@ -639,314 +130,7 @@ export function TransactionsPage() {
639
130
  />
640
131
  </div>
641
132
  );
642
- }`
643
- })
644
- ]
645
- }),
646
- /* @__PURE__ */ jsxs3("div", {
647
- className: "card-subtle space-y-4 p-6",
648
- children: [
649
- /* @__PURE__ */ jsx3("h3", {
650
- className: "font-bold",
651
- children: "Why DataViews?"
652
- }),
653
- /* @__PURE__ */ jsxs3("ul", {
654
- className: "space-y-2 text-muted-foreground text-sm",
655
- children: [
656
- /* @__PURE__ */ jsx3("li", {
657
- children: "Same spec renders on web (React) and mobile (React Native)"
658
- }),
659
- /* @__PURE__ */ jsx3("li", {
660
- children: "Filters, sorting, and pagination handled automatically"
661
- }),
662
- /* @__PURE__ */ jsx3("li", {
663
- children: "Format rules (currency, dates, badges) applied consistently"
664
- }),
665
- /* @__PURE__ */ jsx3("li", {
666
- children: "Export to CSV/PDF using the same spec"
667
- }),
668
- /* @__PURE__ */ jsx3("li", {
669
- children: "A/B test different layouts without touching the backend"
670
- })
671
- ]
672
- })
673
- ]
674
- }),
675
- /* @__PURE__ */ jsxs3("div", {
676
- className: "flex items-center gap-4 pt-4",
677
- children: [
678
- /* @__PURE__ */ jsxs3(Link3, {
679
- href: "/docs/libraries/data-views",
680
- className: "btn-primary",
681
- children: [
682
- "DataView API Reference ",
683
- /* @__PURE__ */ jsx3(ChevronRight3, {
684
- size: 16
685
- })
686
- ]
687
- }),
688
- /* @__PURE__ */ jsx3(Link3, {
689
- href: "/docs/specs/workflows",
690
- className: "btn-ghost",
691
- children: "Next: Workflows"
692
- })
693
- ]
694
- })
695
- ]
696
- });
697
- }
698
-
699
- // src/components/docs/getting-started/DeveloperToolsPage.tsx
700
- import { CodeBlock as CodeBlock3, InstallCommand as InstallCommand2 } from "@contractspec/lib.design-system";
701
- import Link4 from "@contractspec/lib.ui-link";
702
- import { ChevronRight as ChevronRight4, Code2, Cpu, Layers, Terminal } from "lucide-react";
703
- import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
704
- function DeveloperToolsPage() {
705
- const tools = [
706
- {
707
- name: "CLI",
708
- href: "/docs/getting-started/tools/cli",
709
- description: "Command-line interface for spec creation, building, validation, and CI/CD integration.",
710
- icon: Terminal,
711
- status: "available",
712
- highlights: [
713
- "AI-powered code generation",
714
- "Multiple agent modes",
715
- "SARIF/JSON output"
716
- ]
717
- },
718
- {
719
- name: "VS Code Extension",
720
- href: "/docs/getting-started/tools/vscode",
721
- description: "Real-time validation, scaffolding, and navigation directly in your editor.",
722
- icon: Code2,
723
- status: "available",
724
- highlights: [
725
- "Specs Explorer sidebar",
726
- "Watch mode",
727
- "Interactive walkthroughs"
728
- ]
729
- },
730
- {
731
- name: "ContractSpec Studio",
732
- href: "https://www.contractspec.studio",
733
- description: "The operating layer on top of OSS ContractSpec for teams that want evidence-backed decisions, workflow automation, and managed delivery loops.",
734
- icon: Layers,
735
- status: "available",
736
- highlights: [
737
- "Evidence-to-decision loop",
738
- "Compiled spec diffs and task packs",
739
- "Exports to Linear, Jira, Notion, and GitHub"
740
- ]
741
- },
742
- {
743
- name: "JetBrains Plugin",
744
- href: "#",
745
- description: "Full ContractSpec support for IntelliJ, WebStorm, and other JetBrains IDEs.",
746
- icon: Cpu,
747
- status: "coming-soon",
748
- highlights: [
749
- "Code navigation",
750
- "Inline validation",
751
- "Refactoring support"
752
- ]
753
- }
754
- ];
755
- return /* @__PURE__ */ jsxs4("div", {
756
- className: "space-y-8",
757
- children: [
758
- /* @__PURE__ */ jsxs4("div", {
759
- className: "space-y-2",
760
- children: [
761
- /* @__PURE__ */ jsx4("h1", {
762
- className: "font-bold text-4xl",
763
- children: "Developer Tools"
764
- }),
765
- /* @__PURE__ */ jsx4("p", {
766
- className: "text-lg text-muted-foreground",
767
- children: "Use the OSS toolchain to define contracts, validate changes, inspect generated surfaces, and adopt the system incrementally across different environments."
768
- })
769
- ]
770
- }),
771
- /* @__PURE__ */ jsx4("div", {
772
- className: "grid gap-6 md:grid-cols-2",
773
- children: tools.map((tool) => {
774
- const IconComponent = tool.icon;
775
- const isComingSoon = tool.status === "coming-soon";
776
- return /* @__PURE__ */ jsxs4("div", {
777
- className: `card-subtle relative space-y-4 p-6 ${isComingSoon ? "opacity-75" : ""}`,
778
- children: [
779
- isComingSoon && /* @__PURE__ */ jsx4("span", {
780
- className: "absolute -top-2 right-4 rounded-full bg-violet-500/20 px-2 py-0.5 font-medium text-violet-400 text-xs",
781
- children: "Coming Soon"
782
- }),
783
- /* @__PURE__ */ jsxs4("div", {
784
- className: "flex items-center gap-3",
785
- children: [
786
- /* @__PURE__ */ jsx4("div", {
787
- className: "flex h-10 w-10 items-center justify-center rounded-lg bg-violet-500/10",
788
- children: /* @__PURE__ */ jsx4(IconComponent, {
789
- className: "h-5 w-5 text-violet-400"
790
- })
791
- }),
792
- /* @__PURE__ */ jsx4("h3", {
793
- className: "font-bold text-lg",
794
- children: tool.name
795
- })
796
- ]
797
- }),
798
- /* @__PURE__ */ jsx4("p", {
799
- className: "text-muted-foreground text-sm",
800
- children: tool.description
801
- }),
802
- /* @__PURE__ */ jsx4("ul", {
803
- className: "space-y-1",
804
- children: tool.highlights.map((highlight) => /* @__PURE__ */ jsxs4("li", {
805
- className: "flex items-center gap-2 text-muted-foreground text-sm",
806
- children: [
807
- /* @__PURE__ */ jsx4("span", {
808
- className: "text-violet-400",
809
- children: "-"
810
- }),
811
- highlight
812
- ]
813
- }, highlight))
814
- }),
815
- !isComingSoon && /* @__PURE__ */ jsxs4(Link4, {
816
- href: tool.href,
817
- className: "btn-ghost inline-flex items-center gap-1 text-sm",
818
- children: [
819
- "Learn more ",
820
- /* @__PURE__ */ jsx4(ChevronRight4, {
821
- size: 14
822
- })
823
- ]
824
- })
825
- ]
826
- }, tool.name);
827
- })
828
- }),
829
- /* @__PURE__ */ jsxs4("div", {
830
- className: "card-subtle space-y-4 p-6",
831
- children: [
832
- /* @__PURE__ */ jsx4("h3", {
833
- className: "font-bold",
834
- children: "Quick Install"
835
- }),
836
- /* @__PURE__ */ jsxs4("div", {
837
- className: "space-y-3",
838
- children: [
839
- /* @__PURE__ */ jsxs4("div", {
840
- children: [
841
- /* @__PURE__ */ jsx4("p", {
842
- className: "mb-2 font-medium text-muted-foreground text-xs",
843
- children: "CLI"
844
- }),
845
- /* @__PURE__ */ jsx4(InstallCommand2, {
846
- package: "contractspec",
847
- dev: true
848
- })
849
- ]
850
- }),
851
- /* @__PURE__ */ jsxs4("div", {
852
- children: [
853
- /* @__PURE__ */ jsx4("p", {
854
- className: "mb-2 font-medium text-muted-foreground text-xs",
855
- children: "VS Code Extension"
856
- }),
857
- /* @__PURE__ */ jsx4(CodeBlock3, {
858
- language: "bash",
859
- code: "code --install-extension lssm.vscode-contractspec"
860
- })
861
- ]
862
- })
863
- ]
864
- })
865
- ]
866
- }),
867
- /* @__PURE__ */ jsxs4("div", {
868
- className: "flex items-center gap-4 pt-4",
869
- children: [
870
- /* @__PURE__ */ jsxs4(Link4, {
871
- href: "/docs/getting-started/tools/cli",
872
- className: "btn-primary",
873
- children: [
874
- "Get Started with CLI ",
875
- /* @__PURE__ */ jsx4(ChevronRight4, {
876
- size: 16
877
- })
878
- ]
879
- }),
880
- /* @__PURE__ */ jsx4(Link4, {
881
- href: "/docs/getting-started/tools/vscode",
882
- className: "btn-ghost",
883
- children: "VS Code Extension"
884
- })
885
- ]
886
- })
887
- ]
888
- });
889
- }
890
-
891
- // src/components/docs/getting-started/HelloWorldPage.tsx
892
- import { CodeBlock as CodeBlock4 } from "@contractspec/lib.design-system";
893
- import Link5 from "@contractspec/lib.ui-link";
894
- import { ChevronRight as ChevronRight5 } from "lucide-react";
895
- import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
896
- function HelloWorldPage() {
897
- return /* @__PURE__ */ jsxs5("div", {
898
- className: "space-y-8",
899
- children: [
900
- /* @__PURE__ */ jsxs5("div", {
901
- className: "space-y-2",
902
- children: [
903
- /* @__PURE__ */ jsx5("h1", {
904
- className: "font-bold text-4xl",
905
- children: "Your First Operation"
906
- }),
907
- /* @__PURE__ */ jsx5("p", {
908
- className: "text-lg text-muted-foreground",
909
- children: "Build a payment capture operation with policy enforcement in under 10 minutes."
910
- })
911
- ]
912
- }),
913
- /* @__PURE__ */ jsxs5("div", {
914
- className: "space-y-6",
915
- children: [
916
- /* @__PURE__ */ jsxs5("div", {
917
- className: "space-y-3",
918
- children: [
919
- /* @__PURE__ */ jsx5("h2", {
920
- className: "font-bold text-2xl",
921
- children: "What you'll build"
922
- }),
923
- /* @__PURE__ */ jsx5("p", {
924
- className: "text-muted-foreground",
925
- children: "A real-world payment processing operation that validates input, enforces business rules, integrates with Stripe, and audits every transaction. This is production-ready code, not a toy example."
926
- })
927
- ]
928
- }),
929
- /* @__PURE__ */ jsxs5("div", {
930
- className: "space-y-3",
931
- children: [
932
- /* @__PURE__ */ jsx5("h2", {
933
- className: "font-bold text-2xl",
934
- children: "1. Define the operation spec"
935
- }),
936
- /* @__PURE__ */ jsxs5("p", {
937
- className: "text-muted-foreground",
938
- children: [
939
- "Create ",
940
- /* @__PURE__ */ jsx5("code", {
941
- children: "lib/specs/billing/capture-payment.ts"
942
- }),
943
- ":"
944
- ]
945
- }),
946
- /* @__PURE__ */ jsx5(CodeBlock4, {
947
- language: "typescript",
948
- filename: "lib/specs/billing/capture-payment.ts",
949
- code: `import { defineCommand } from '@contractspec/lib.contracts-spec';
133
+ }`})]}),b("div",{className:"card-subtle space-y-4 p-6",children:[c("h3",{className:"font-bold",children:"Why DataViews?"}),b("ul",{className:"space-y-2 text-muted-foreground text-sm",children:[c("li",{children:"Same spec renders on web (React) and mobile (React Native)"}),c("li",{children:"Filters, sorting, and pagination handled automatically"}),c("li",{children:"Format rules (currency, dates, badges) applied consistently"}),c("li",{children:"Export to CSV/PDF using the same spec"}),c("li",{children:"A/B test different layouts without touching the backend"})]})]}),b("div",{className:"flex items-center gap-4 pt-4",children:[b(V,{href:"/docs/libraries/data-views",className:"btn-primary",children:["DataView API Reference ",c(Q,{size:16})]}),c(V,{href:"/docs/specs/workflows",className:"btn-ghost",children:"Next: Workflows"})]})]})}import{CodeBlock as J,InstallCommand as _}from"@contractspec/lib.design-system";import P from"@contractspec/lib.ui-link";import{ChevronRight as B,Code2 as K,Cpu as X,Layers as Y,Terminal as $}from"lucide-react";import{jsx as s,jsxs as h}from"react/jsx-runtime";function De(){return h("div",{className:"space-y-8",children:[h("div",{className:"space-y-2",children:[s("h1",{className:"font-bold text-4xl",children:"Developer Tools"}),s("p",{className:"text-lg text-muted-foreground",children:"Use the OSS toolchain to define contracts, validate changes, inspect generated surfaces, and adopt the system incrementally across different environments."})]}),s("div",{className:"grid gap-6 md:grid-cols-2",children:[{name:"CLI",href:"/docs/getting-started/tools/cli",description:"Command-line interface for spec creation, building, validation, and CI/CD integration.",icon:$,status:"available",highlights:["AI-powered code generation","Multiple agent modes","SARIF/JSON output"]},{name:"VS Code Extension",href:"/docs/getting-started/tools/vscode",description:"Real-time validation, scaffolding, and navigation directly in your editor.",icon:K,status:"available",highlights:["Specs Explorer sidebar","Watch mode","Interactive walkthroughs"]},{name:"ContractSpec Studio",href:"https://www.contractspec.studio",description:"The operating layer on top of OSS ContractSpec for teams that want evidence-backed decisions, workflow automation, and managed delivery loops.",icon:Y,status:"available",highlights:["Evidence-to-decision loop","Compiled spec diffs and task packs","Exports to Linear, Jira, Notion, and GitHub"]},{name:"JetBrains Plugin",href:"#",description:"Full ContractSpec support for IntelliJ, WebStorm, and other JetBrains IDEs.",icon:X,status:"coming-soon",highlights:["Code navigation","Inline validation","Refactoring support"]}].map((u)=>{let y=u.icon,N=u.status==="coming-soon";return h("div",{className:`card-subtle relative space-y-4 p-6 ${N?"opacity-75":""}`,children:[N&&s("span",{className:"absolute -top-2 right-4 rounded-full bg-violet-500/20 px-2 py-0.5 font-medium text-violet-400 text-xs",children:"Coming Soon"}),h("div",{className:"flex items-center gap-3",children:[s("div",{className:"flex h-10 w-10 items-center justify-center rounded-lg bg-violet-500/10",children:s(y,{className:"h-5 w-5 text-violet-400"})}),s("h3",{className:"font-bold text-lg",children:u.name})]}),s("p",{className:"text-muted-foreground text-sm",children:u.description}),s("ul",{className:"space-y-1",children:u.highlights.map((A)=>h("li",{className:"flex items-center gap-2 text-muted-foreground text-sm",children:[s("span",{className:"text-violet-400",children:"-"}),A]},A))}),!N&&h(P,{href:u.href,className:"btn-ghost inline-flex items-center gap-1 text-sm",children:["Learn more ",s(B,{size:14})]})]},u.name)})}),h("div",{className:"card-subtle space-y-4 p-6",children:[s("h3",{className:"font-bold",children:"Quick Install"}),h("div",{className:"space-y-3",children:[h("div",{children:[s("p",{className:"mb-2 font-medium text-muted-foreground text-xs",children:"CLI"}),s(_,{package:"contractspec",dev:!0})]}),h("div",{children:[s("p",{className:"mb-2 font-medium text-muted-foreground text-xs",children:"VS Code Extension"}),s(J,{language:"bash",code:"code --install-extension lssm.vscode-contractspec"})]})]})]}),h("div",{className:"flex items-center gap-4 pt-4",children:[h(P,{href:"/docs/getting-started/tools/cli",className:"btn-primary",children:["Get Started with CLI ",s(B,{size:16})]}),s(P,{href:"/docs/getting-started/tools/vscode",className:"btn-ghost",children:"VS Code Extension"})]})]})}import{CodeBlock as w}from"@contractspec/lib.design-system";import Z from"@contractspec/lib.ui-link";import{ChevronRight as x}from"lucide-react";import{jsx as o,jsxs as f}from"react/jsx-runtime";function j(){return f("div",{className:"space-y-8",children:[f("div",{className:"space-y-2",children:[o("h1",{className:"font-bold text-4xl",children:"Your First Operation"}),o("p",{className:"text-lg text-muted-foreground",children:"Build a payment capture operation with policy enforcement in under 10 minutes."})]}),f("div",{className:"space-y-6",children:[f("div",{className:"space-y-3",children:[o("h2",{className:"font-bold text-2xl",children:"What you'll build"}),o("p",{className:"text-muted-foreground",children:"A real-world payment processing operation that validates input, enforces business rules, integrates with Stripe, and audits every transaction. This is production-ready code, not a toy example."})]}),f("div",{className:"space-y-3",children:[o("h2",{className:"font-bold text-2xl",children:"1. Define the operation spec"}),f("p",{className:"text-muted-foreground",children:["Create ",o("code",{children:"lib/specs/billing/capture-payment.ts"}),":"]}),o(w,{language:"typescript",filename:"lib/specs/billing/capture-payment.ts",code:`import { defineCommand } from '@contractspec/lib.contracts-spec';
950
134
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
951
135
 
952
136
  const CapturePaymentInput = new SchemaModel({
@@ -989,31 +173,7 @@ export const CapturePayment = defineCommand({
989
173
  { resource: 'invoice', action: 'pay', condition: 'owner' },
990
174
  ],
991
175
  },
992
- });`
993
- })
994
- ]
995
- }),
996
- /* @__PURE__ */ jsxs5("div", {
997
- className: "space-y-3",
998
- children: [
999
- /* @__PURE__ */ jsx5("h2", {
1000
- className: "font-bold text-2xl",
1001
- children: "2. Implement the handler"
1002
- }),
1003
- /* @__PURE__ */ jsxs5("p", {
1004
- className: "text-muted-foreground",
1005
- children: [
1006
- "Create ",
1007
- /* @__PURE__ */ jsx5("code", {
1008
- children: "lib/handlers/billing/capture-payment.ts"
1009
- }),
1010
- ":"
1011
- ]
1012
- }),
1013
- /* @__PURE__ */ jsx5(CodeBlock4, {
1014
- language: "typescript",
1015
- filename: "lib/handlers/billing/capture-payment.ts",
1016
- code: `import { CapturePayment } from '@/lib/specs/billing/capture-payment';
176
+ });`})]}),f("div",{className:"space-y-3",children:[o("h2",{className:"font-bold text-2xl",children:"2. Implement the handler"}),f("p",{className:"text-muted-foreground",children:["Create ",o("code",{children:"lib/handlers/billing/capture-payment.ts"}),":"]}),o(w,{language:"typescript",filename:"lib/handlers/billing/capture-payment.ts",code:`import { CapturePayment } from '@/lib/specs/billing/capture-payment';
1017
177
  import { stripe } from '@/lib/integrations/stripe';
1018
178
  import { db } from '@/lib/db';
1019
179
 
@@ -1050,46 +210,12 @@ export async function handleCapturePayment(input, ctx) {
1050
210
  status: paymentIntent.status,
1051
211
  receiptUrl: paymentIntent.charges.data[0]?.receipt_url,
1052
212
  };
1053
- }`
1054
- })
1055
- ]
1056
- }),
1057
- /* @__PURE__ */ jsxs5("div", {
1058
- className: "space-y-3",
1059
- children: [
1060
- /* @__PURE__ */ jsx5("h2", {
1061
- className: "font-bold text-2xl",
1062
- children: "3. Register and serve"
1063
- }),
1064
- /* @__PURE__ */ jsxs5("p", {
1065
- className: "text-muted-foreground",
1066
- children: [
1067
- "Wire it up in ",
1068
- /* @__PURE__ */ jsx5("code", {
1069
- children: "lib/registry.ts"
1070
- }),
1071
- " and",
1072
- " ",
1073
- /* @__PURE__ */ jsx5("code", {
1074
- children: "app/api/ops/[...route]/route.ts"
1075
- }),
1076
- ":"
1077
- ]
1078
- }),
1079
- /* @__PURE__ */ jsx5(CodeBlock4, {
1080
- language: "typescript",
1081
- filename: "lib/registry.ts",
1082
- code: `import { OperationSpecRegistry, installOp } from '@contractspec/lib.contracts-spec';
213
+ }`})]}),f("div",{className:"space-y-3",children:[o("h2",{className:"font-bold text-2xl",children:"3. Register and serve"}),f("p",{className:"text-muted-foreground",children:["Wire it up in ",o("code",{children:"lib/registry.ts"})," and"," ",o("code",{children:"app/api/ops/[...route]/route.ts"}),":"]}),o(w,{language:"typescript",filename:"lib/registry.ts",code:`import { OperationSpecRegistry, installOp } from '@contractspec/lib.contracts-spec';
1083
214
  import { CapturePayment } from './specs/billing/capture-payment';
1084
215
  import { handleCapturePayment } from './handlers/billing/capture-payment';
1085
216
 
1086
217
  export const registry = new OperationSpecRegistry();
1087
- installOp(registry, CapturePayment, handleCapturePayment);`
1088
- }),
1089
- /* @__PURE__ */ jsx5(CodeBlock4, {
1090
- language: "typescript",
1091
- filename: "app/api/ops/[...route]/route.ts",
1092
- code: `import { makeNextAppHandler } from '@contractspec/lib.contracts-runtime-server-rest/rest-next-app';
218
+ installOp(registry, CapturePayment, handleCapturePayment);`}),o(w,{language:"typescript",filename:"app/api/ops/[...route]/route.ts",code:`import { makeNextAppHandler } from '@contractspec/lib.contracts-runtime-server-rest/rest-next-app';
1093
219
  import { registry } from '@/lib/registry';
1094
220
  import { auth } from '@/lib/auth';
1095
221
 
@@ -1098,957 +224,14 @@ const handler = makeNextAppHandler(registry, async (req) => {
1098
224
  return { actor: 'user', userId: session.userId, tenantId: session.tenantId };
1099
225
  });
1100
226
 
1101
- export { handler as GET, handler as POST };`
1102
- })
1103
- ]
1104
- }),
1105
- /* @__PURE__ */ jsxs5("div", {
1106
- className: "card-subtle space-y-4 p-6",
1107
- children: [
1108
- /* @__PURE__ */ jsx5("h3", {
1109
- className: "font-bold",
1110
- children: "What you just built:"
1111
- }),
1112
- /* @__PURE__ */ jsxs5("ul", {
1113
- className: "space-y-2 text-muted-foreground text-sm",
1114
- children: [
1115
- /* @__PURE__ */ jsxs5("li", {
1116
- children: [
1117
- "Type-safe API endpoint at",
1118
- " ",
1119
- /* @__PURE__ */ jsx5("code", {
1120
- children: "/api/ops/billing.capturePayment"
1121
- })
1122
- ]
1123
- }),
1124
- /* @__PURE__ */ jsx5("li", {
1125
- children: "Automatic input validation (amount must be positive, IDs required)"
1126
- }),
1127
- /* @__PURE__ */ jsx5("li", {
1128
- children: "Policy enforcement\u2014only invoice owner can pay"
1129
- }),
1130
- /* @__PURE__ */ jsx5("li", {
1131
- children: "Stripe integration with error handling"
1132
- }),
1133
- /* @__PURE__ */ jsx5("li", {
1134
- children: "Database transaction with audit trail"
1135
- }),
1136
- /* @__PURE__ */ jsx5("li", {
1137
- children: "Same spec works with GraphQL, MCP, or webhooks"
1138
- })
1139
- ]
1140
- })
1141
- ]
1142
- }),
1143
- /* @__PURE__ */ jsx5("div", {
1144
- className: "flex items-center gap-4 pt-4",
1145
- children: /* @__PURE__ */ jsxs5(Link5, {
1146
- href: "/docs/getting-started/dataviews",
1147
- className: "btn-primary",
1148
- children: [
1149
- "Next: Display Data with DataViews ",
1150
- /* @__PURE__ */ jsx5(ChevronRight5, {
1151
- size: 16
1152
- })
1153
- ]
1154
- })
1155
- })
1156
- ]
1157
- })
1158
- ]
1159
- });
1160
- }
1161
-
1162
- // src/components/docs/getting-started/InstallationPage.tsx
1163
- import { CodeBlock as CodeBlock5, InstallCommand as InstallCommand3 } from "@contractspec/lib.design-system";
1164
- import Link6 from "@contractspec/lib.ui-link";
1165
- import { ChevronRight as ChevronRight6 } from "lucide-react";
1166
- import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
1167
- function InstallationPage() {
1168
- return /* @__PURE__ */ jsxs6("div", {
1169
- className: "space-y-8",
1170
- children: [
1171
- /* @__PURE__ */ jsxs6("div", {
1172
- className: "space-y-2",
1173
- children: [
1174
- /* @__PURE__ */ jsx6("h1", {
1175
- className: "font-bold text-4xl",
1176
- children: "Installation"
1177
- }),
1178
- /* @__PURE__ */ jsx6("p", {
1179
- className: "text-lg text-muted-foreground",
1180
- children: "Add ContractSpec to your existing Next.js or Bun project, or start fresh."
1181
- })
1182
- ]
1183
- }),
1184
- /* @__PURE__ */ jsxs6("div", {
1185
- className: "space-y-6",
1186
- children: [
1187
- /* @__PURE__ */ jsxs6("div", {
1188
- className: "space-y-3",
1189
- children: [
1190
- /* @__PURE__ */ jsx6("h2", {
1191
- className: "font-bold text-2xl",
1192
- children: "Prerequisites"
1193
- }),
1194
- /* @__PURE__ */ jsxs6("ul", {
1195
- className: "space-y-2 text-muted-foreground",
1196
- children: [
1197
- /* @__PURE__ */ jsx6("li", {
1198
- children: "Node.js 20+ (or Bun 1.0+)"
1199
- }),
1200
- /* @__PURE__ */ jsx6("li", {
1201
- children: "Existing Next.js app or Bun HTTP server"
1202
- }),
1203
- /* @__PURE__ */ jsx6("li", {
1204
- children: "PostgreSQL database (for persistence)"
1205
- })
1206
- ]
1207
- })
1208
- ]
1209
- }),
1210
- /* @__PURE__ */ jsxs6("div", {
1211
- className: "space-y-3",
1212
- children: [
1213
- /* @__PURE__ */ jsx6("h2", {
1214
- className: "font-bold text-2xl",
1215
- children: "Install Core Libraries"
1216
- }),
1217
- /* @__PURE__ */ jsx6("p", {
1218
- className: "text-muted-foreground",
1219
- children: "Add the contracts runtime and your choice of adapter:"
1220
- }),
1221
- /* @__PURE__ */ jsx6(InstallCommand3, {
1222
- package: [
1223
- "@contractspec/lib.contracts-spec",
1224
- "@contractspec/lib.schema"
1225
- ]
1226
- })
1227
- ]
1228
- }),
1229
- /* @__PURE__ */ jsxs6("div", {
1230
- className: "space-y-3",
1231
- children: [
1232
- /* @__PURE__ */ jsx6("h2", {
1233
- className: "font-bold text-2xl",
1234
- children: "For Next.js projects"
1235
- }),
1236
- /* @__PURE__ */ jsx6(InstallCommand3, {
1237
- package: "@contractspec/lib.contracts-spec"
1238
- })
1239
- ]
1240
- }),
1241
- /* @__PURE__ */ jsxs6("div", {
1242
- className: "space-y-3",
1243
- children: [
1244
- /* @__PURE__ */ jsx6("h2", {
1245
- className: "font-bold text-2xl",
1246
- children: "For database models"
1247
- }),
1248
- /* @__PURE__ */ jsx6(InstallCommand3, {
1249
- package: [
1250
- "@contractspec/app.cli-database",
1251
- "prisma",
1252
- "@prisma/client"
1253
- ]
1254
- })
1255
- ]
1256
- }),
1257
- /* @__PURE__ */ jsxs6("div", {
1258
- className: "space-y-3",
1259
- children: [
1260
- /* @__PURE__ */ jsx6("h2", {
1261
- className: "font-bold text-2xl",
1262
- children: "Set up your project"
1263
- }),
1264
- /* @__PURE__ */ jsx6("p", {
1265
- className: "text-muted-foreground",
1266
- children: "Initialize a new ContractSpec project structure:"
1267
- }),
1268
- /* @__PURE__ */ jsx6(CodeBlock5, {
1269
- language: "bash",
1270
- filename: "installation-init",
1271
- code: `bunx contractspec init
1272
- # Follow the interactive prompts to configure your project`
1273
- })
1274
- ]
1275
- }),
1276
- /* @__PURE__ */ jsxs6("div", {
1277
- className: "space-y-3",
1278
- children: [
1279
- /* @__PURE__ */ jsx6("h2", {
1280
- className: "font-bold text-2xl",
1281
- children: "Initialize the database"
1282
- }),
1283
- /* @__PURE__ */ jsx6("p", {
1284
- className: "text-muted-foreground",
1285
- children: "If using Prisma, set up your schema and generate the client:"
1286
- }),
1287
- /* @__PURE__ */ jsx6(CodeBlock5, {
1288
- language: "bash",
1289
- filename: "installation-prisma",
1290
- code: `bunx prisma init
227
+ export { handler as GET, handler as POST };`})]}),f("div",{className:"card-subtle space-y-4 p-6",children:[o("h3",{className:"font-bold",children:"What you just built:"}),f("ul",{className:"space-y-2 text-muted-foreground text-sm",children:[f("li",{children:["Type-safe API endpoint at"," ",o("code",{children:"/api/ops/billing.capturePayment"})]}),o("li",{children:"Automatic input validation (amount must be positive, IDs required)"}),o("li",{children:"Policy enforcement\u2014only invoice owner can pay"}),o("li",{children:"Stripe integration with error handling"}),o("li",{children:"Database transaction with audit trail"}),o("li",{children:"Same spec works with GraphQL, MCP, or webhooks"})]})]}),o("div",{className:"flex items-center gap-4 pt-4",children:f(Z,{href:"/docs/getting-started/dataviews",className:"btn-primary",children:["Next: Display Data with DataViews ",o(x,{size:16})]})})]})]})}import{CodeBlock as z,InstallCommand as L}from"@contractspec/lib.design-system";import ee from"@contractspec/lib.ui-link";import{ChevronRight as te}from"lucide-react";import{jsx as n,jsxs as g}from"react/jsx-runtime";function ae(){return g("div",{className:"space-y-8",children:[g("div",{className:"space-y-2",children:[n("h1",{className:"font-bold text-4xl",children:"Installation"}),n("p",{className:"text-lg text-muted-foreground",children:"Add ContractSpec to your existing Next.js or Bun project, or start fresh."})]}),g("div",{className:"space-y-6",children:[g("div",{className:"space-y-3",children:[n("h2",{className:"font-bold text-2xl",children:"Prerequisites"}),g("ul",{className:"space-y-2 text-muted-foreground",children:[n("li",{children:"Node.js 20+ (or Bun 1.0+)"}),n("li",{children:"Existing Next.js app or Bun HTTP server"}),n("li",{children:"PostgreSQL database (for persistence)"})]})]}),g("div",{className:"space-y-3",children:[n("h2",{className:"font-bold text-2xl",children:"Install Core Libraries"}),n("p",{className:"text-muted-foreground",children:"Add the contracts runtime and your choice of adapter:"}),n(L,{package:["@contractspec/lib.contracts-spec","@contractspec/lib.schema"]})]}),g("div",{className:"space-y-3",children:[n("h2",{className:"font-bold text-2xl",children:"For Next.js projects"}),n(L,{package:"@contractspec/lib.contracts-spec"})]}),g("div",{className:"space-y-3",children:[n("h2",{className:"font-bold text-2xl",children:"For database models"}),n(L,{package:["@contractspec/app.cli-database","prisma","@prisma/client"]})]}),g("div",{className:"space-y-3",children:[n("h2",{className:"font-bold text-2xl",children:"Set up your project"}),n("p",{className:"text-muted-foreground",children:"Initialize a new ContractSpec project structure:"}),n(z,{language:"bash",filename:"installation-init",code:`bunx contractspec init
228
+ # Follow the interactive prompts to configure your project`})]}),g("div",{className:"space-y-3",children:[n("h2",{className:"font-bold text-2xl",children:"Initialize the database"}),n("p",{className:"text-muted-foreground",children:"If using Prisma, set up your schema and generate the client:"}),n(z,{language:"bash",filename:"installation-prisma",code:`bunx prisma init
1291
229
  # Edit prisma/schema.prisma with your models
1292
230
  bunx prisma generate
1293
- bunx prisma migrate dev --name init`
1294
- })
1295
- ]
1296
- }),
1297
- /* @__PURE__ */ jsx6("div", {
1298
- className: "flex items-center gap-4 pt-4",
1299
- children: /* @__PURE__ */ jsxs6(Link6, {
1300
- href: "/docs/getting-started/hello-world",
1301
- className: "btn-primary",
1302
- children: [
1303
- "Next: First Operation ",
1304
- /* @__PURE__ */ jsx6(ChevronRight6, {
1305
- size: 16
1306
- })
1307
- ]
1308
- })
1309
- })
1310
- ]
1311
- })
1312
- ]
1313
- });
1314
- }
1315
-
1316
- // src/components/docs/getting-started/StartHerePage.tsx
1317
- import { CodeBlock as CodeBlock6, InstallCommand as InstallCommand4 } from "@contractspec/lib.design-system";
1318
- import Link7 from "@contractspec/lib.ui-link";
1319
- import { ChevronRight as ChevronRight7 } from "lucide-react";
1320
- import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
1321
- function StartHerePage() {
1322
- return /* @__PURE__ */ jsxs7("div", {
1323
- className: "space-y-8",
1324
- children: [
1325
- /* @__PURE__ */ jsxs7("div", {
1326
- className: "space-y-2",
1327
- children: [
1328
- /* @__PURE__ */ jsx7("h1", {
1329
- className: "font-bold text-4xl",
1330
- children: "Start here"
1331
- }),
1332
- /* @__PURE__ */ jsx7("p", {
1333
- className: "text-lg text-muted-foreground",
1334
- children: "A fast onboarding path from install to your first generated contract."
1335
- })
1336
- ]
1337
- }),
1338
- /* @__PURE__ */ jsxs7("div", {
1339
- className: "space-y-6",
1340
- children: [
1341
- /* @__PURE__ */ jsxs7("div", {
1342
- className: "space-y-3",
1343
- children: [
1344
- /* @__PURE__ */ jsx7("h2", {
1345
- className: "font-bold text-2xl",
1346
- children: "Install the CLI"
1347
- }),
1348
- /* @__PURE__ */ jsx7(InstallCommand4, {
1349
- package: "contractspec",
1350
- dev: true
1351
- })
1352
- ]
1353
- }),
1354
- /* @__PURE__ */ jsxs7("div", {
1355
- className: "space-y-3",
1356
- children: [
1357
- /* @__PURE__ */ jsx7("h2", {
1358
- className: "font-bold text-2xl",
1359
- children: "Add core libraries"
1360
- }),
1361
- /* @__PURE__ */ jsx7(InstallCommand4, {
1362
- package: [
1363
- "@contractspec/lib.contracts-spec",
1364
- "@contractspec/lib.schema"
1365
- ]
1366
- })
1367
- ]
1368
- }),
1369
- /* @__PURE__ */ jsxs7("div", {
1370
- className: "space-y-3",
1371
- children: [
1372
- /* @__PURE__ */ jsx7("h2", {
1373
- className: "font-bold text-2xl",
1374
- children: "Initialize your project"
1375
- }),
1376
- /* @__PURE__ */ jsx7(CodeBlock6, {
1377
- language: "bash",
1378
- filename: "start-here-init",
1379
- code: `bunx contractspec init`
1380
- })
1381
- ]
1382
- }),
1383
- /* @__PURE__ */ jsxs7("div", {
1384
- className: "space-y-3",
1385
- children: [
1386
- /* @__PURE__ */ jsx7("h2", {
1387
- className: "font-bold text-2xl",
1388
- children: "Create your first contract"
1389
- }),
1390
- /* @__PURE__ */ jsx7(CodeBlock6, {
1391
- language: "bash",
1392
- filename: "start-here-create",
1393
- code: `contractspec create --type operation`
1394
- })
1395
- ]
1396
- }),
1397
- /* @__PURE__ */ jsxs7("div", {
1398
- className: "space-y-3",
1399
- children: [
1400
- /* @__PURE__ */ jsx7("h2", {
1401
- className: "font-bold text-2xl",
1402
- children: "Generate implementation"
1403
- }),
1404
- /* @__PURE__ */ jsx7(CodeBlock6, {
1405
- language: "bash",
1406
- filename: "start-here-build",
1407
- code: `contractspec build src/contracts/mySpec.ts
1408
- contractspec validate src/contracts/mySpec.ts`
1409
- })
1410
- ]
1411
- })
1412
- ]
1413
- }),
1414
- /* @__PURE__ */ jsxs7("div", {
1415
- className: "flex flex-wrap items-center gap-3 pt-2",
1416
- children: [
1417
- /* @__PURE__ */ jsxs7(Link7, {
1418
- href: "/docs/getting-started/hello-world",
1419
- className: "btn-primary",
1420
- children: [
1421
- "Next: Hello World ",
1422
- /* @__PURE__ */ jsx7(ChevronRight7, {
1423
- size: 16
1424
- })
1425
- ]
1426
- }),
1427
- /* @__PURE__ */ jsx7(Link7, {
1428
- href: "/docs/getting-started/troubleshooting",
1429
- className: "btn-ghost",
1430
- children: "Troubleshooting"
1431
- }),
1432
- /* @__PURE__ */ jsx7(Link7, {
1433
- href: "/docs/getting-started/compatibility",
1434
- className: "btn-ghost",
1435
- children: "Compatibility"
1436
- })
1437
- ]
1438
- })
1439
- ]
1440
- });
1441
- }
1442
-
1443
- // src/components/docs/getting-started/TroubleshootingPage.tsx
1444
- import { CodeBlock as CodeBlock7 } from "@contractspec/lib.design-system";
1445
- import Link8 from "@contractspec/lib.ui-link";
1446
- import { ChevronRight as ChevronRight8 } from "lucide-react";
1447
- import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
1448
- function TroubleshootingPage() {
1449
- return /* @__PURE__ */ jsxs8("div", {
1450
- className: "space-y-8",
1451
- children: [
1452
- /* @__PURE__ */ jsxs8("div", {
1453
- className: "space-y-2",
1454
- children: [
1455
- /* @__PURE__ */ jsx8("h1", {
1456
- className: "font-bold text-4xl",
1457
- children: "Troubleshooting"
1458
- }),
1459
- /* @__PURE__ */ jsx8("p", {
1460
- className: "text-lg text-muted-foreground",
1461
- children: "Common issues and fixes when installing or generating with ContractSpec."
1462
- })
1463
- ]
1464
- }),
1465
- /* @__PURE__ */ jsxs8("div", {
1466
- className: "space-y-6",
1467
- children: [
1468
- /* @__PURE__ */ jsxs8("div", {
1469
- className: "card-subtle space-y-3 p-6",
1470
- children: [
1471
- /* @__PURE__ */ jsx8("h2", {
1472
- className: "font-bold text-2xl",
1473
- children: "Command not found"
1474
- }),
1475
- /* @__PURE__ */ jsxs8("ul", {
1476
- className: "space-y-2 text-muted-foreground",
1477
- children: [
1478
- /* @__PURE__ */ jsx8("li", {
1479
- children: "Reinstall the CLI and ensure it is in your PATH."
1480
- }),
1481
- /* @__PURE__ */ jsx8("li", {
1482
- children: "Confirm Node.js 20+ or Bun 1.0+ is installed."
1483
- })
1484
- ]
1485
- })
1486
- ]
1487
- }),
1488
- /* @__PURE__ */ jsxs8("div", {
1489
- className: "card-subtle space-y-3 p-6",
1490
- children: [
1491
- /* @__PURE__ */ jsx8("h2", {
1492
- className: "font-bold text-2xl",
1493
- children: "Specs not discovered"
1494
- }),
1495
- /* @__PURE__ */ jsxs8("ul", {
1496
- className: "space-y-2 text-muted-foreground",
1497
- children: [
1498
- /* @__PURE__ */ jsxs8("li", {
1499
- children: [
1500
- "Run ",
1501
- /* @__PURE__ */ jsx8("code", {
1502
- children: "contractspec list"
1503
- }),
1504
- " to see discovered specs."
1505
- ]
1506
- }),
1507
- /* @__PURE__ */ jsx8("li", {
1508
- children: "Verify your spec path conventions in .contractsrc.json."
1509
- })
1510
- ]
1511
- })
1512
- ]
1513
- }),
1514
- /* @__PURE__ */ jsxs8("div", {
1515
- className: "card-subtle space-y-3 p-6",
1516
- children: [
1517
- /* @__PURE__ */ jsx8("h2", {
1518
- className: "font-bold text-2xl",
1519
- children: "Build or validate fails"
1520
- }),
1521
- /* @__PURE__ */ jsxs8("ul", {
1522
- className: "space-y-2 text-muted-foreground",
1523
- children: [
1524
- /* @__PURE__ */ jsxs8("li", {
1525
- children: [
1526
- "Run ",
1527
- /* @__PURE__ */ jsx8("code", {
1528
- children: "contractspec validate"
1529
- }),
1530
- " to surface schema errors."
1531
- ]
1532
- }),
1533
- /* @__PURE__ */ jsx8("li", {
1534
- children: "Check that generated files were not manually edited."
1535
- })
1536
- ]
1537
- })
1538
- ]
1539
- }),
1540
- /* @__PURE__ */ jsxs8("div", {
1541
- className: "space-y-3",
1542
- children: [
1543
- /* @__PURE__ */ jsx8("h2", {
1544
- className: "font-bold text-2xl",
1545
- children: "Diagnostics"
1546
- }),
1547
- /* @__PURE__ */ jsx8(CodeBlock7, {
1548
- language: "bash",
1549
- filename: "troubleshooting-diagnostics",
1550
- code: `contractspec --version
231
+ bunx prisma migrate dev --name init`})]}),n("div",{className:"flex items-center gap-4 pt-4",children:g(ee,{href:"/docs/getting-started/hello-world",className:"btn-primary",children:["Next: First Operation ",n(te,{size:16})]})})]})]})}import{CodeBlock as R,InstallCommand as O}from"@contractspec/lib.design-system";import T from"@contractspec/lib.ui-link";import{ChevronRight as ie}from"lucide-react";import{jsx as m,jsxs as v}from"react/jsx-runtime";function oe(){return v("div",{className:"space-y-8",children:[v("div",{className:"space-y-2",children:[m("h1",{className:"font-bold text-4xl",children:"Start here"}),m("p",{className:"text-lg text-muted-foreground",children:"A fast onboarding path from install to your first generated contract."})]}),v("div",{className:"space-y-6",children:[v("div",{className:"space-y-3",children:[m("h2",{className:"font-bold text-2xl",children:"Install the CLI"}),m(O,{package:"contractspec",dev:!0})]}),v("div",{className:"space-y-3",children:[m("h2",{className:"font-bold text-2xl",children:"Add core libraries"}),m(O,{package:["@contractspec/lib.contracts-spec","@contractspec/lib.schema"]})]}),v("div",{className:"space-y-3",children:[m("h2",{className:"font-bold text-2xl",children:"Initialize your project"}),m(R,{language:"bash",filename:"start-here-init",code:"bunx contractspec init"})]}),v("div",{className:"space-y-3",children:[m("h2",{className:"font-bold text-2xl",children:"Create your first contract"}),m(R,{language:"bash",filename:"start-here-create",code:"contractspec create --type operation"})]}),v("div",{className:"space-y-3",children:[m("h2",{className:"font-bold text-2xl",children:"Generate implementation"}),m(R,{language:"bash",filename:"start-here-build",code:`contractspec build src/contracts/mySpec.ts
232
+ contractspec validate src/contracts/mySpec.ts`})]})]}),v("div",{className:"flex flex-wrap items-center gap-3 pt-2",children:[v(T,{href:"/docs/getting-started/hello-world",className:"btn-primary",children:["Next: Hello World ",m(ie,{size:16})]}),m(T,{href:"/docs/getting-started/troubleshooting",className:"btn-ghost",children:"Troubleshooting"}),m(T,{href:"/docs/getting-started/compatibility",className:"btn-ghost",children:"Compatibility"})]})]})}import{CodeBlock as ne}from"@contractspec/lib.design-system";import D from"@contractspec/lib.ui-link";import{ChevronRight as re}from"lucide-react";import{jsx as r,jsxs as d}from"react/jsx-runtime";function ce(){return d("div",{className:"space-y-8",children:[d("div",{className:"space-y-2",children:[r("h1",{className:"font-bold text-4xl",children:"Troubleshooting"}),r("p",{className:"text-lg text-muted-foreground",children:"Common issues and fixes when installing or generating with ContractSpec."})]}),d("div",{className:"space-y-6",children:[d("div",{className:"card-subtle space-y-3 p-6",children:[r("h2",{className:"font-bold text-2xl",children:"Command not found"}),d("ul",{className:"space-y-2 text-muted-foreground",children:[r("li",{children:"Reinstall the CLI and ensure it is in your PATH."}),r("li",{children:"Confirm Node.js 20+ or Bun 1.0+ is installed."})]})]}),d("div",{className:"card-subtle space-y-3 p-6",children:[r("h2",{className:"font-bold text-2xl",children:"Specs not discovered"}),d("ul",{className:"space-y-2 text-muted-foreground",children:[d("li",{children:["Run ",r("code",{children:"contractspec list"})," to see discovered specs."]}),r("li",{children:"Verify your spec path conventions in .contractsrc.json."})]})]}),d("div",{className:"card-subtle space-y-3 p-6",children:[r("h2",{className:"font-bold text-2xl",children:"Build or validate fails"}),d("ul",{className:"space-y-2 text-muted-foreground",children:[d("li",{children:["Run ",r("code",{children:"contractspec validate"})," to surface schema errors."]}),r("li",{children:"Check that generated files were not manually edited."})]})]}),d("div",{className:"space-y-3",children:[r("h2",{className:"font-bold text-2xl",children:"Diagnostics"}),r(ne,{language:"bash",filename:"troubleshooting-diagnostics",code:`contractspec --version
1551
233
  contractspec list
1552
- contractspec validate src/contracts/mySpec.ts`
1553
- })
1554
- ]
1555
- }),
1556
- /* @__PURE__ */ jsxs8("div", {
1557
- className: "card-subtle space-y-3 p-6",
1558
- children: [
1559
- /* @__PURE__ */ jsx8("h2", {
1560
- className: "font-bold text-2xl",
1561
- children: "Still blocked?"
1562
- }),
1563
- /* @__PURE__ */ jsxs8("ul", {
1564
- className: "space-y-2 text-muted-foreground",
1565
- children: [
1566
- /* @__PURE__ */ jsx8("li", {
1567
- children: "Confirm compatibility requirements for runtime and framework."
1568
- }),
1569
- /* @__PURE__ */ jsx8("li", {
1570
- children: "Re-run builds on a clean branch to isolate changes."
1571
- }),
1572
- /* @__PURE__ */ jsx8("li", {
1573
- children: "Use a new spec and minimal adapter to validate setup."
1574
- })
1575
- ]
1576
- })
1577
- ]
1578
- })
1579
- ]
1580
- }),
1581
- /* @__PURE__ */ jsxs8("div", {
1582
- className: "flex flex-wrap items-center gap-3 pt-2",
1583
- children: [
1584
- /* @__PURE__ */ jsx8(Link8, {
1585
- href: "/docs/getting-started/start-here",
1586
- className: "btn-ghost",
1587
- children: "Start here"
1588
- }),
1589
- /* @__PURE__ */ jsx8(Link8, {
1590
- href: "/docs/getting-started/compatibility",
1591
- className: "btn-ghost",
1592
- children: "Compatibility"
1593
- }),
1594
- /* @__PURE__ */ jsxs8(Link8, {
1595
- href: "/docs/getting-started/installation",
1596
- className: "btn-primary",
1597
- children: [
1598
- "Next: Installation ",
1599
- /* @__PURE__ */ jsx8(ChevronRight8, {
1600
- size: 16
1601
- })
1602
- ]
1603
- })
1604
- ]
1605
- })
1606
- ]
1607
- });
1608
- }
1609
-
1610
- // src/components/docs/getting-started/VSCodeExtensionPage.tsx
1611
- import { CodeBlock as CodeBlock8 } from "@contractspec/lib.design-system";
1612
- import Link9 from "@contractspec/lib.ui-link";
1613
- import { ChevronRight as ChevronRight9, ExternalLink } from "lucide-react";
1614
- import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
1615
- function VSCodeExtensionPage() {
1616
- const features = [
1617
- {
1618
- category: "Core Functionality",
1619
- items: [
1620
- "Real-time validation with instant feedback on spec errors",
1621
- "Build/Scaffold handlers and components from specs",
1622
- "Interactive spec creation wizard",
1623
- "Watch mode for auto-rebuild on changes",
1624
- "Sync all specs in workspace with one command"
1625
- ]
1626
- },
1627
- {
1628
- category: "Visual Navigation",
1629
- items: [
1630
- "Specs Explorer sidebar with organized tree view",
1631
- "Dependencies view to visualize spec relationships",
1632
- "Build Results tracking with history",
1633
- "Circular dependency detection"
1634
- ]
1635
- },
1636
- {
1637
- category: "Comparison & Export",
1638
- items: [
1639
- "Semantic and text diff between specs",
1640
- "Git comparison with baseline branches",
1641
- "OpenAPI 3.1 specification export"
1642
- ]
1643
- }
1644
- ];
1645
- const commands = [
1646
- {
1647
- name: "Create New Spec",
1648
- description: "Interactive wizard to create specs"
1649
- },
1650
- {
1651
- name: "Validate Current Spec",
1652
- description: "Validate the currently open spec"
1653
- },
1654
- {
1655
- name: "Build/Scaffold from Current Spec",
1656
- description: "Generate handler/component"
1657
- },
1658
- { name: "Toggle Watch Mode", description: "Auto-rebuild on changes" },
1659
- { name: "Sync All Specs", description: "Build all specs in workspace" },
1660
- {
1661
- name: "Analyze Spec Dependencies",
1662
- description: "Visualize spec dependencies"
1663
- },
1664
- {
1665
- name: "Compare Specs",
1666
- description: "Semantic or text diff between specs"
1667
- },
1668
- {
1669
- name: "Export to OpenAPI",
1670
- description: "Generate OpenAPI specification"
1671
- }
1672
- ];
1673
- return /* @__PURE__ */ jsxs9("div", {
1674
- className: "space-y-8",
1675
- children: [
1676
- /* @__PURE__ */ jsxs9("div", {
1677
- className: "space-y-2",
1678
- children: [
1679
- /* @__PURE__ */ jsx9("h1", {
1680
- className: "font-bold text-4xl",
1681
- children: "VS Code Extension"
1682
- }),
1683
- /* @__PURE__ */ jsx9("p", {
1684
- className: "text-lg text-muted-foreground",
1685
- children: "Spec-first development directly in VS Code. Validate, scaffold, and explore your contract specifications with real-time feedback."
1686
- })
1687
- ]
1688
- }),
1689
- /* @__PURE__ */ jsxs9("div", {
1690
- className: "flex flex-wrap gap-3",
1691
- children: [
1692
- /* @__PURE__ */ jsxs9("a", {
1693
- href: "https://marketplace.visualstudio.com/items?itemName=lssm.vscode-contractspec",
1694
- target: "_blank",
1695
- rel: "noopener noreferrer",
1696
- className: "btn-primary inline-flex items-center gap-2",
1697
- children: [
1698
- "Install Extension ",
1699
- /* @__PURE__ */ jsx9(ExternalLink, {
1700
- size: 16
1701
- })
1702
- ]
1703
- }),
1704
- /* @__PURE__ */ jsx9("a", {
1705
- href: "vscode:extension/lssm.vscode-contractspec",
1706
- className: "btn-ghost inline-flex items-center gap-2",
1707
- children: "Open in VS Code"
1708
- })
1709
- ]
1710
- }),
1711
- /* @__PURE__ */ jsxs9("div", {
1712
- className: "space-y-6",
1713
- children: [
1714
- /* @__PURE__ */ jsxs9("div", {
1715
- className: "space-y-3",
1716
- children: [
1717
- /* @__PURE__ */ jsx9("h2", {
1718
- className: "font-bold text-2xl",
1719
- children: "Installation"
1720
- }),
1721
- /* @__PURE__ */ jsxs9("div", {
1722
- className: "space-y-2",
1723
- children: [
1724
- /* @__PURE__ */ jsxs9("p", {
1725
- className: "text-muted-foreground text-sm",
1726
- children: [
1727
- /* @__PURE__ */ jsx9("strong", {
1728
- children: "Option 1:"
1729
- }),
1730
- " Install from VS Code Marketplace"
1731
- ]
1732
- }),
1733
- /* @__PURE__ */ jsx9(CodeBlock8, {
1734
- language: "bash",
1735
- code: "code --install-extension lssm.vscode-contractspec"
1736
- }),
1737
- /* @__PURE__ */ jsxs9("p", {
1738
- className: "mt-4 text-muted-foreground text-sm",
1739
- children: [
1740
- /* @__PURE__ */ jsx9("strong", {
1741
- children: "Option 2:"
1742
- }),
1743
- ' Search for "ContractSpec" in VS Code Extensions (Ctrl/Cmd+Shift+X)'
1744
- ]
1745
- })
1746
- ]
1747
- })
1748
- ]
1749
- }),
1750
- /* @__PURE__ */ jsxs9("div", {
1751
- className: "space-y-4",
1752
- children: [
1753
- /* @__PURE__ */ jsx9("h2", {
1754
- className: "font-bold text-2xl",
1755
- children: "Features"
1756
- }),
1757
- /* @__PURE__ */ jsx9("div", {
1758
- className: "grid gap-4 md:grid-cols-3",
1759
- children: features.map((section) => /* @__PURE__ */ jsxs9("div", {
1760
- className: "card-subtle space-y-3 p-4",
1761
- children: [
1762
- /* @__PURE__ */ jsx9("h3", {
1763
- className: "font-bold text-violet-400",
1764
- children: section.category
1765
- }),
1766
- /* @__PURE__ */ jsx9("ul", {
1767
- className: "space-y-2",
1768
- children: section.items.map((item) => /* @__PURE__ */ jsxs9("li", {
1769
- className: "flex items-start gap-2 text-muted-foreground text-sm",
1770
- children: [
1771
- /* @__PURE__ */ jsx9("span", {
1772
- className: "mt-1 text-violet-400",
1773
- children: "-"
1774
- }),
1775
- /* @__PURE__ */ jsx9("span", {
1776
- children: item
1777
- })
1778
- ]
1779
- }, item))
1780
- })
1781
- ]
1782
- }, section.category))
1783
- })
1784
- ]
1785
- }),
1786
- /* @__PURE__ */ jsxs9("div", {
1787
- className: "space-y-4",
1788
- children: [
1789
- /* @__PURE__ */ jsx9("h2", {
1790
- className: "font-bold text-2xl",
1791
- children: "Commands"
1792
- }),
1793
- /* @__PURE__ */ jsxs9("p", {
1794
- className: "text-muted-foreground",
1795
- children: [
1796
- "Access commands via Command Palette (Ctrl/Cmd+Shift+P) with prefix",
1797
- " ",
1798
- /* @__PURE__ */ jsx9("code", {
1799
- children: "ContractSpec:"
1800
- })
1801
- ]
1802
- }),
1803
- /* @__PURE__ */ jsx9("div", {
1804
- className: "grid gap-3 md:grid-cols-2",
1805
- children: commands.map((cmd) => /* @__PURE__ */ jsx9("div", {
1806
- className: "card-subtle flex items-center gap-3 p-3",
1807
- children: /* @__PURE__ */ jsxs9("div", {
1808
- className: "flex-1",
1809
- children: [
1810
- /* @__PURE__ */ jsx9("p", {
1811
- className: "font-medium font-mono text-sm",
1812
- children: cmd.name
1813
- }),
1814
- /* @__PURE__ */ jsx9("p", {
1815
- className: "text-muted-foreground text-xs",
1816
- children: cmd.description
1817
- })
1818
- ]
1819
- })
1820
- }, cmd.name))
1821
- })
1822
- ]
1823
- }),
1824
- /* @__PURE__ */ jsxs9("div", {
1825
- className: "space-y-3",
1826
- children: [
1827
- /* @__PURE__ */ jsx9("h2", {
1828
- className: "font-bold text-2xl",
1829
- children: "Sidebar Views"
1830
- }),
1831
- /* @__PURE__ */ jsx9("p", {
1832
- className: "text-muted-foreground",
1833
- children: "The extension adds a ContractSpec activity bar (icon in sidebar) with three views:"
1834
- }),
1835
- /* @__PURE__ */ jsxs9("div", {
1836
- className: "grid gap-4 md:grid-cols-3",
1837
- children: [
1838
- /* @__PURE__ */ jsxs9("div", {
1839
- className: "card-subtle space-y-2 p-4",
1840
- children: [
1841
- /* @__PURE__ */ jsx9("h4", {
1842
- className: "font-bold",
1843
- children: "Specs Explorer"
1844
- }),
1845
- /* @__PURE__ */ jsx9("p", {
1846
- className: "text-muted-foreground text-sm",
1847
- children: "Browse all specs organized by type. Shows name, version, and stability. Click to open, right-click for actions."
1848
- })
1849
- ]
1850
- }),
1851
- /* @__PURE__ */ jsxs9("div", {
1852
- className: "card-subtle space-y-2 p-4",
1853
- children: [
1854
- /* @__PURE__ */ jsx9("h4", {
1855
- className: "font-bold",
1856
- children: "Dependencies"
1857
- }),
1858
- /* @__PURE__ */ jsx9("p", {
1859
- className: "text-muted-foreground text-sm",
1860
- children: "Visualize spec relationships. Detect circular dependencies. Navigate to referenced specs."
1861
- })
1862
- ]
1863
- }),
1864
- /* @__PURE__ */ jsxs9("div", {
1865
- className: "card-subtle space-y-2 p-4",
1866
- children: [
1867
- /* @__PURE__ */ jsx9("h4", {
1868
- className: "font-bold",
1869
- children: "Build Results"
1870
- }),
1871
- /* @__PURE__ */ jsx9("p", {
1872
- className: "text-muted-foreground text-sm",
1873
- children: "Track build history (last 20). Success/failure indicators. Click to open generated files."
1874
- })
1875
- ]
1876
- })
1877
- ]
1878
- })
1879
- ]
1880
- }),
1881
- /* @__PURE__ */ jsxs9("div", {
1882
- className: "space-y-3",
1883
- children: [
1884
- /* @__PURE__ */ jsx9("h2", {
1885
- className: "font-bold text-2xl",
1886
- children: "Getting Started"
1887
- }),
1888
- /* @__PURE__ */ jsxs9("ol", {
1889
- className: "list-inside list-decimal space-y-2 text-muted-foreground",
1890
- children: [
1891
- /* @__PURE__ */ jsx9("li", {
1892
- children: "Install the extension from VS Code Marketplace"
1893
- }),
1894
- /* @__PURE__ */ jsx9("li", {
1895
- children: "Open a workspace with ContractSpec files (or create one)"
1896
- }),
1897
- /* @__PURE__ */ jsx9("li", {
1898
- children: "Start the walkthrough: Help - Welcome - ContractSpec"
1899
- }),
1900
- /* @__PURE__ */ jsxs9("li", {
1901
- children: [
1902
- "Create your first spec: Click ",
1903
- /* @__PURE__ */ jsx9("strong", {
1904
- children: "+"
1905
- }),
1906
- " in Specs Explorer or run ",
1907
- /* @__PURE__ */ jsx9("code", {
1908
- children: "ContractSpec: Create New Spec"
1909
- })
1910
- ]
1911
- }),
1912
- /* @__PURE__ */ jsx9("li", {
1913
- children: "Build from it: Click the build icon in the editor title bar"
1914
- })
1915
- ]
1916
- })
1917
- ]
1918
- }),
1919
- /* @__PURE__ */ jsxs9("div", {
1920
- className: "card-subtle space-y-4 p-6",
1921
- children: [
1922
- /* @__PURE__ */ jsx9("h3", {
1923
- className: "font-bold",
1924
- children: "Configuration"
1925
- }),
1926
- /* @__PURE__ */ jsx9("p", {
1927
- className: "text-muted-foreground text-sm",
1928
- children: "Configure the extension in VS Code Settings:"
1929
- }),
1930
- /* @__PURE__ */ jsx9("div", {
1931
- className: "overflow-x-auto",
1932
- children: /* @__PURE__ */ jsxs9("table", {
1933
- className: "w-full text-muted-foreground text-sm",
1934
- children: [
1935
- /* @__PURE__ */ jsx9("thead", {
1936
- children: /* @__PURE__ */ jsxs9("tr", {
1937
- className: "border-border border-b",
1938
- children: [
1939
- /* @__PURE__ */ jsx9("th", {
1940
- className: "p-2 text-left font-medium",
1941
- children: "Setting"
1942
- }),
1943
- /* @__PURE__ */ jsx9("th", {
1944
- className: "p-2 text-left font-medium",
1945
- children: "Description"
1946
- }),
1947
- /* @__PURE__ */ jsx9("th", {
1948
- className: "p-2 text-left font-medium",
1949
- children: "Default"
1950
- })
1951
- ]
1952
- })
1953
- }),
1954
- /* @__PURE__ */ jsxs9("tbody", {
1955
- children: [
1956
- /* @__PURE__ */ jsxs9("tr", {
1957
- className: "border-border border-b",
1958
- children: [
1959
- /* @__PURE__ */ jsx9("td", {
1960
- className: "p-2 font-mono text-xs",
1961
- children: "validation.onSave"
1962
- }),
1963
- /* @__PURE__ */ jsx9("td", {
1964
- className: "p-2",
1965
- children: "Run validation on save"
1966
- }),
1967
- /* @__PURE__ */ jsx9("td", {
1968
- className: "p-2",
1969
- children: "true"
1970
- })
1971
- ]
1972
- }),
1973
- /* @__PURE__ */ jsxs9("tr", {
1974
- className: "border-border border-b",
1975
- children: [
1976
- /* @__PURE__ */ jsx9("td", {
1977
- className: "p-2 font-mono text-xs",
1978
- children: "validation.onOpen"
1979
- }),
1980
- /* @__PURE__ */ jsx9("td", {
1981
- className: "p-2",
1982
- children: "Run validation on open"
1983
- }),
1984
- /* @__PURE__ */ jsx9("td", {
1985
- className: "p-2",
1986
- children: "true"
1987
- })
1988
- ]
1989
- }),
1990
- /* @__PURE__ */ jsxs9("tr", {
1991
- className: "border-border border-b",
1992
- children: [
1993
- /* @__PURE__ */ jsx9("td", {
1994
- className: "p-2 font-mono text-xs",
1995
- children: "api.baseUrl"
1996
- }),
1997
- /* @__PURE__ */ jsx9("td", {
1998
- className: "p-2",
1999
- children: "Base URL for ContractSpec API"
2000
- }),
2001
- /* @__PURE__ */ jsx9("td", {
2002
- className: "p-2",
2003
- children: "(empty)"
2004
- })
2005
- ]
2006
- })
2007
- ]
2008
- })
2009
- ]
2010
- })
2011
- })
2012
- ]
2013
- })
2014
- ]
2015
- }),
2016
- /* @__PURE__ */ jsxs9("div", {
2017
- className: "flex items-center gap-4 pt-4",
2018
- children: [
2019
- /* @__PURE__ */ jsx9(Link9, {
2020
- href: "/docs/getting-started/tools/cli",
2021
- className: "btn-ghost",
2022
- children: "Back: CLI"
2023
- }),
2024
- /* @__PURE__ */ jsxs9(Link9, {
2025
- href: "/docs/specs",
2026
- className: "btn-primary",
2027
- children: [
2028
- "Next: Core Concepts ",
2029
- /* @__PURE__ */ jsx9(ChevronRight9, {
2030
- size: 16
2031
- })
2032
- ]
2033
- })
2034
- ]
2035
- })
2036
- ]
2037
- });
2038
- }
2039
-
2040
- // src/components/docs/getting-started/getting-started.docblocks.ts
2041
- import { registerDocBlocks } from "@contractspec/lib.contracts-spec/docs";
2042
- var gettingStartedDocBlocks = [
2043
- {
2044
- id: "docs.getting-started.start-here",
2045
- title: "Start here",
2046
- summary: "Fast onboarding path from install to first generated contract.",
2047
- kind: "usage",
2048
- visibility: "public",
2049
- route: "/docs/getting-started/start-here",
2050
- tags: ["getting-started", "onboarding"],
2051
- body: `# Start Here
234
+ contractspec validate src/contracts/mySpec.ts`})]}),d("div",{className:"card-subtle space-y-3 p-6",children:[r("h2",{className:"font-bold text-2xl",children:"Still blocked?"}),d("ul",{className:"space-y-2 text-muted-foreground",children:[r("li",{children:"Confirm compatibility requirements for runtime and framework."}),r("li",{children:"Re-run builds on a clean branch to isolate changes."}),r("li",{children:"Use a new spec and minimal adapter to validate setup."})]})]})]}),d("div",{className:"flex flex-wrap items-center gap-3 pt-2",children:[r(D,{href:"/docs/getting-started/start-here",className:"btn-ghost",children:"Start here"}),r(D,{href:"/docs/getting-started/compatibility",className:"btn-ghost",children:"Compatibility"}),d(D,{href:"/docs/getting-started/installation",className:"btn-primary",children:["Next: Installation ",r(re,{size:16})]})]})]})}import{CodeBlock as le}from"@contractspec/lib.design-system";import F from"@contractspec/lib.ui-link";import{ChevronRight as se,ExternalLink as de}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";function at(){let S=[{category:"Core Functionality",items:["Real-time validation with instant feedback on spec errors","Build/Scaffold handlers and components from specs","Interactive spec creation wizard","Watch mode for auto-rebuild on changes","Sync all specs in workspace with one command"]},{category:"Visual Navigation",items:["Specs Explorer sidebar with organized tree view","Dependencies view to visualize spec relationships","Build Results tracking with history","Circular dependency detection"]},{category:"Comparison & Export",items:["Semantic and text diff between specs","Git comparison with baseline branches","OpenAPI 3.1 specification export"]}],u=[{name:"Create New Spec",description:"Interactive wizard to create specs"},{name:"Validate Current Spec",description:"Validate the currently open spec"},{name:"Build/Scaffold from Current Spec",description:"Generate handler/component"},{name:"Toggle Watch Mode",description:"Auto-rebuild on changes"},{name:"Sync All Specs",description:"Build all specs in workspace"},{name:"Analyze Spec Dependencies",description:"Visualize spec dependencies"},{name:"Compare Specs",description:"Semantic or text diff between specs"},{name:"Export to OpenAPI",description:"Generate OpenAPI specification"}];return t("div",{className:"space-y-8",children:[t("div",{className:"space-y-2",children:[e("h1",{className:"font-bold text-4xl",children:"VS Code Extension"}),e("p",{className:"text-lg text-muted-foreground",children:"Spec-first development directly in VS Code. Validate, scaffold, and explore your contract specifications with real-time feedback."})]}),t("div",{className:"flex flex-wrap gap-3",children:[t("a",{href:"https://marketplace.visualstudio.com/items?itemName=lssm.vscode-contractspec",target:"_blank",rel:"noopener noreferrer",className:"btn-primary inline-flex items-center gap-2",children:["Install Extension ",e(de,{size:16})]}),e("a",{href:"vscode:extension/lssm.vscode-contractspec",className:"btn-ghost inline-flex items-center gap-2",children:"Open in VS Code"})]}),t("div",{className:"space-y-6",children:[t("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),t("div",{className:"space-y-2",children:[t("p",{className:"text-muted-foreground text-sm",children:[e("strong",{children:"Option 1:"})," Install from VS Code Marketplace"]}),e(le,{language:"bash",code:"code --install-extension lssm.vscode-contractspec"}),t("p",{className:"mt-4 text-muted-foreground text-sm",children:[e("strong",{children:"Option 2:"}),' Search for "ContractSpec" in VS Code Extensions (Ctrl/Cmd+Shift+X)']})]})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Features"}),e("div",{className:"grid gap-4 md:grid-cols-3",children:S.map((y)=>t("div",{className:"card-subtle space-y-3 p-4",children:[e("h3",{className:"font-bold text-violet-400",children:y.category}),e("ul",{className:"space-y-2",children:y.items.map((N)=>t("li",{className:"flex items-start gap-2 text-muted-foreground text-sm",children:[e("span",{className:"mt-1 text-violet-400",children:"-"}),e("span",{children:N})]},N))})]},y.category))})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Commands"}),t("p",{className:"text-muted-foreground",children:["Access commands via Command Palette (Ctrl/Cmd+Shift+P) with prefix"," ",e("code",{children:"ContractSpec:"})]}),e("div",{className:"grid gap-3 md:grid-cols-2",children:u.map((y)=>e("div",{className:"card-subtle flex items-center gap-3 p-3",children:t("div",{className:"flex-1",children:[e("p",{className:"font-medium font-mono text-sm",children:y.name}),e("p",{className:"text-muted-foreground text-xs",children:y.description})]})},y.name))})]}),t("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Sidebar Views"}),e("p",{className:"text-muted-foreground",children:"The extension adds a ContractSpec activity bar (icon in sidebar) with three views:"}),t("div",{className:"grid gap-4 md:grid-cols-3",children:[t("div",{className:"card-subtle space-y-2 p-4",children:[e("h4",{className:"font-bold",children:"Specs Explorer"}),e("p",{className:"text-muted-foreground text-sm",children:"Browse all specs organized by type. Shows name, version, and stability. Click to open, right-click for actions."})]}),t("div",{className:"card-subtle space-y-2 p-4",children:[e("h4",{className:"font-bold",children:"Dependencies"}),e("p",{className:"text-muted-foreground text-sm",children:"Visualize spec relationships. Detect circular dependencies. Navigate to referenced specs."})]}),t("div",{className:"card-subtle space-y-2 p-4",children:[e("h4",{className:"font-bold",children:"Build Results"}),e("p",{className:"text-muted-foreground text-sm",children:"Track build history (last 20). Success/failure indicators. Click to open generated files."})]})]})]}),t("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Getting Started"}),t("ol",{className:"list-inside list-decimal space-y-2 text-muted-foreground",children:[e("li",{children:"Install the extension from VS Code Marketplace"}),e("li",{children:"Open a workspace with ContractSpec files (or create one)"}),e("li",{children:"Start the walkthrough: Help - Welcome - ContractSpec"}),t("li",{children:["Create your first spec: Click ",e("strong",{children:"+"})," in Specs Explorer or run ",e("code",{children:"ContractSpec: Create New Spec"})]}),e("li",{children:"Build from it: Click the build icon in the editor title bar"})]})]}),t("div",{className:"card-subtle space-y-4 p-6",children:[e("h3",{className:"font-bold",children:"Configuration"}),e("p",{className:"text-muted-foreground text-sm",children:"Configure the extension in VS Code Settings:"}),e("div",{className:"overflow-x-auto",children:t("table",{className:"w-full text-muted-foreground text-sm",children:[e("thead",{children:t("tr",{className:"border-border border-b",children:[e("th",{className:"p-2 text-left font-medium",children:"Setting"}),e("th",{className:"p-2 text-left font-medium",children:"Description"}),e("th",{className:"p-2 text-left font-medium",children:"Default"})]})}),t("tbody",{children:[t("tr",{className:"border-border border-b",children:[e("td",{className:"p-2 font-mono text-xs",children:"validation.onSave"}),e("td",{className:"p-2",children:"Run validation on save"}),e("td",{className:"p-2",children:"true"})]}),t("tr",{className:"border-border border-b",children:[e("td",{className:"p-2 font-mono text-xs",children:"validation.onOpen"}),e("td",{className:"p-2",children:"Run validation on open"}),e("td",{className:"p-2",children:"true"})]}),t("tr",{className:"border-border border-b",children:[e("td",{className:"p-2 font-mono text-xs",children:"api.baseUrl"}),e("td",{className:"p-2",children:"Base URL for ContractSpec API"}),e("td",{className:"p-2",children:"(empty)"})]})]})]})})]})]}),t("div",{className:"flex items-center gap-4 pt-4",children:[e(F,{href:"/docs/getting-started/tools/cli",className:"btn-ghost",children:"Back: CLI"}),t(F,{href:"/docs/specs",className:"btn-primary",children:["Next: Core Concepts ",e(se,{size:16})]})]})]})}import{registerDocBlocks as pe}from"@contractspec/lib.contracts-spec/docs";var me=[{id:"docs.getting-started.start-here",title:"Start here",summary:"Fast onboarding path from install to first generated contract.",kind:"usage",visibility:"public",route:"/docs/getting-started/start-here",tags:["getting-started","onboarding"],body:`# Start Here
2052
235
 
2053
236
  Get ContractSpec running quickly and generate your first contract-backed code.
2054
237
 
@@ -2083,17 +266,7 @@ contractspec validate src/contracts/mySpec.ts
2083
266
  - Follow the Hello World tutorial for a full walkthrough.
2084
267
  - Install the VS Code extension for inline validation.
2085
268
  - Review compatibility notes before deploying to production.
2086
- `
2087
- },
2088
- {
2089
- id: "docs.getting-started.troubleshooting",
2090
- title: "Troubleshooting",
2091
- summary: "Resolve common install, spec discovery, and build issues.",
2092
- kind: "faq",
2093
- visibility: "public",
2094
- route: "/docs/getting-started/troubleshooting",
2095
- tags: ["getting-started", "troubleshooting"],
2096
- body: `# Troubleshooting
269
+ `},{id:"docs.getting-started.troubleshooting",title:"Troubleshooting",summary:"Resolve common install, spec discovery, and build issues.",kind:"faq",visibility:"public",route:"/docs/getting-started/troubleshooting",tags:["getting-started","troubleshooting"],body:`# Troubleshooting
2097
270
 
2098
271
  Common issues and quick fixes when getting started with ContractSpec.
2099
272
 
@@ -2124,17 +297,7 @@ contractspec validate src/contracts/mySpec.ts
2124
297
 
2125
298
  - Confirm compatibility requirements (runtime, framework, package manager).
2126
299
  - Re-run \`contractspec build\` with a clean working tree.
2127
- `
2128
- },
2129
- {
2130
- id: "docs.getting-started.compatibility",
2131
- title: "Compatibility",
2132
- summary: "Supported runtimes, frameworks, package managers, and AI modes.",
2133
- kind: "reference",
2134
- visibility: "public",
2135
- route: "/docs/getting-started/compatibility",
2136
- tags: ["getting-started", "compatibility"],
2137
- body: `# Compatibility
300
+ `},{id:"docs.getting-started.compatibility",title:"Compatibility",summary:"Supported runtimes, frameworks, package managers, and AI modes.",kind:"reference",visibility:"public",route:"/docs/getting-started/compatibility",tags:["getting-started","compatibility"],body:`# Compatibility
2138
301
 
2139
302
  ContractSpec supports modern TypeScript stacks with spec-first workflows.
2140
303
 
@@ -2167,18 +330,4 @@ ContractSpec supports modern TypeScript stacks with spec-first workflows.
2167
330
 
2168
331
  - PostgreSQL via Prisma
2169
332
  - Bring your own adapter for other databases
2170
- `
2171
- }
2172
- ];
2173
- registerDocBlocks(gettingStartedDocBlocks);
2174
- export {
2175
- VSCodeExtensionPage,
2176
- TroubleshootingPage,
2177
- StartHerePage,
2178
- InstallationPage,
2179
- HelloWorldPage,
2180
- DeveloperToolsPage,
2181
- DataViewTutorialPage,
2182
- CompatibilityPage,
2183
- CLIPage
2184
- };
333
+ `}];pe(me);export{at as VSCodeExtensionPage,ce as TroubleshootingPage,oe as StartHerePage,ae as InstallationPage,j as HelloWorldPage,De as DeveloperToolsPage,U as DataViewTutorialPage,G as CompatibilityPage,M as CLIPage};