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