@contractspec/bundle.library 3.9.0 → 3.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (724) hide show
  1. package/.turbo/turbo-build.log +612 -608
  2. package/CHANGELOG.md +89 -0
  3. package/README.md +2 -1
  4. package/dist/__tests__/mocks/prisma.d.ts +5 -5
  5. package/dist/application/context-storage/index.js +1 -1
  6. package/dist/application/index.js +6 -6
  7. package/dist/application/mcp/cliMcp.js +2 -2
  8. package/dist/application/mcp/cliMcp.onboarding.js +1 -1
  9. package/dist/application/mcp/common.js +1 -1
  10. package/dist/application/mcp/contractsMcp.js +2 -2
  11. package/dist/application/mcp/contractsMcpAdoptionTools.js +1 -1
  12. package/dist/application/mcp/contractsMcpResources.js +2 -2
  13. package/dist/application/mcp/contractsMcpTools.js +1 -1
  14. package/dist/application/mcp/docsMcp.catalog.js +2 -2
  15. package/dist/application/mcp/docsMcp.data.js +1 -1
  16. package/dist/application/mcp/docsMcp.js +3 -3
  17. package/dist/application/mcp/docsMcp.prompts.js +3 -3
  18. package/dist/application/mcp/docsMcp.reference.js +2 -2
  19. package/dist/application/mcp/docsMcp.resources.js +2 -2
  20. package/dist/application/mcp/docsMcp.tools.js +2 -2
  21. package/dist/application/mcp/index.js +6 -6
  22. package/dist/application/mcp/internalMcp.js +2 -2
  23. package/dist/application/mcp/normalizeMcpRequest.js +1 -1
  24. package/dist/application/mcp/providerRankingMcp.js +1 -1
  25. package/dist/bundles/LibraryBundle.d.ts +19 -111
  26. package/dist/bundles/LibraryBundle.js +1 -1
  27. package/dist/bundles/index.js +1 -1
  28. package/dist/components/docs/DocsIndexPage.js +2 -2
  29. package/dist/components/docs/advanced/AdvancedMCPPage.js +3 -3
  30. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -1
  31. package/dist/components/docs/advanced/AdvancedRenderersPage.js +2 -2
  32. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -4
  33. package/dist/components/docs/advanced/AdvancedTelemetryPage.js +2 -2
  34. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -2
  35. package/dist/components/docs/advanced/index.js +9 -9
  36. package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +6 -6
  37. package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +3 -3
  38. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -7
  39. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -6
  40. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -2
  41. package/dist/components/docs/architecture/ArchitectureOverviewPage.js +1 -1
  42. package/dist/components/docs/architecture/index.js +20 -20
  43. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -1
  44. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -1
  45. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -1
  46. package/dist/components/docs/comparison/ComparisonOverviewPage.js +1 -1
  47. package/dist/components/docs/comparison/ComparisonWindmillPage.js +1 -1
  48. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -1
  49. package/dist/components/docs/comparison/index.js +1 -1
  50. package/dist/components/docs/docsManifest.js +1 -1
  51. package/dist/components/docs/ecosystem/IntegrationsPage.js +2 -2
  52. package/dist/components/docs/ecosystem/PluginsPage.js +4 -4
  53. package/dist/components/docs/ecosystem/RegistryPage.js +4 -4
  54. package/dist/components/docs/ecosystem/TemplatesPage.js +3 -3
  55. package/dist/components/docs/ecosystem/index.js +11 -11
  56. package/dist/components/docs/examples/DocsExamplesPage.js +1 -1
  57. package/dist/components/docs/examples/ExampleShowcasePage.js +2 -2
  58. package/dist/components/docs/examples/exampleShowcaseData.js +2 -2
  59. package/dist/components/docs/examples/index.js +2 -2
  60. package/dist/components/docs/generated/docs-index.generated.js +1 -1
  61. package/dist/components/docs/generated/index.d.ts +7 -1
  62. package/dist/components/docs/generated/index.js +1 -1
  63. package/dist/components/docs/generated/loader.js +1 -1
  64. package/dist/components/docs/getting-started/CLIPage.js +4 -4
  65. package/dist/components/docs/getting-started/CompatibilityPage.js +1 -1
  66. package/dist/components/docs/getting-started/DataViewTutorialPage.js +4 -4
  67. package/dist/components/docs/getting-started/DeveloperToolsPage.js +1 -1
  68. package/dist/components/docs/getting-started/HelloWorldPage.js +5 -5
  69. package/dist/components/docs/getting-started/InstallationPage.js +3 -3
  70. package/dist/components/docs/getting-started/StartHerePage.js +3 -3
  71. package/dist/components/docs/getting-started/TroubleshootingPage.js +2 -2
  72. package/dist/components/docs/getting-started/VSCodeExtensionPage.js +1 -1
  73. package/dist/components/docs/getting-started/getting-started.docblocks.js +2 -2
  74. package/dist/components/docs/getting-started/index.js +17 -17
  75. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +2 -2
  76. package/dist/components/docs/guides/GuideConnectInRepoPage.js +6 -6
  77. package/dist/components/docs/guides/GuideContractTypesPage.js +6 -6
  78. package/dist/components/docs/guides/GuideDocsPipelinePage.js +3 -3
  79. package/dist/components/docs/guides/GuideFirstModuleBundlePage.js +4 -4
  80. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -2
  81. package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.js +7 -7
  82. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -8
  83. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
  84. package/dist/components/docs/guides/GuideReleaseCapsulesPage.js +3 -3
  85. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +4 -4
  86. package/dist/components/docs/guides/GuidesIndexPage.js +2 -2
  87. package/dist/components/docs/guides/index.js +43 -43
  88. package/dist/components/docs/index.js +375 -255
  89. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -2
  90. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -3
  91. package/dist/components/docs/integrations/IntegrationsGithubPage.js +2 -2
  92. package/dist/components/docs/integrations/IntegrationsGmailPage.js +3 -3
  93. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -3
  94. package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +2 -2
  95. package/dist/components/docs/integrations/IntegrationsMistralPage.js +2 -2
  96. package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +2 -2
  97. package/dist/components/docs/integrations/IntegrationsOverviewPage.js +1 -1
  98. package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +2 -2
  99. package/dist/components/docs/integrations/IntegrationsPowensPage.js +2 -2
  100. package/dist/components/docs/integrations/IntegrationsQdrantPage.js +5 -5
  101. package/dist/components/docs/integrations/IntegrationsResendPage.js +3 -3
  102. package/dist/components/docs/integrations/IntegrationsS3Page.js +4 -4
  103. package/dist/components/docs/integrations/IntegrationsSlackPage.js +2 -2
  104. package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +2 -2
  105. package/dist/components/docs/integrations/IntegrationsStripePage.js +2 -2
  106. package/dist/components/docs/integrations/IntegrationsTwilioPage.js +3 -3
  107. package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -2
  108. package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -2
  109. package/dist/components/docs/integrations/index.js +39 -39
  110. package/dist/components/docs/intent/ContractFirstApiPage.js +2 -2
  111. package/dist/components/docs/intent/DeterministicCodegenPage.js +2 -2
  112. package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +7 -7
  113. package/dist/components/docs/intent/OpenapiAlternativePage.js +3 -3
  114. package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +4 -4
  115. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -2
  116. package/dist/components/docs/intent/index.js +15 -15
  117. package/dist/components/docs/intent/intent-pages.docblocks.js +1 -1
  118. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +2 -2
  119. package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +2 -2
  120. package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +1 -1
  121. package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +2 -2
  122. package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +2 -2
  123. package/dist/components/docs/knowledge/index.js +5 -5
  124. package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +3 -3
  125. package/dist/components/docs/libraries/LibrariesAiAgentPage.js +3 -3
  126. package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +4 -4
  127. package/dist/components/docs/libraries/LibrariesContentGenPage.js +2 -2
  128. package/dist/components/docs/libraries/LibrariesContractsPage.js +2 -2
  129. package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +3 -3
  130. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.content.d.ts +67 -0
  131. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.content.js +86 -0
  132. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.d.ts +1 -0
  133. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.js +86 -0
  134. package/dist/components/docs/libraries/LibrariesDataBackendPage.js +2 -2
  135. package/dist/components/docs/libraries/LibrariesDataViewsPage.js +3 -3
  136. package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +38 -2
  137. package/dist/components/docs/libraries/LibrariesEvolutionPage.js +4 -4
  138. package/dist/components/docs/libraries/LibrariesGraphQLPage.js +2 -2
  139. package/dist/components/docs/libraries/LibrariesGrowthPage.js +3 -3
  140. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -3
  141. package/dist/components/docs/libraries/LibrariesObservabilityPage.js +5 -5
  142. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -4
  143. package/dist/components/docs/libraries/LibrariesOverviewPage.js +1 -1
  144. package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +4 -4
  145. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -3
  146. package/dist/components/docs/libraries/LibrariesResiliencePage.js +4 -4
  147. package/dist/components/docs/libraries/LibrariesRuntimePage.js +2 -2
  148. package/dist/components/docs/libraries/LibrariesSLOPage.js +3 -3
  149. package/dist/components/docs/libraries/LibrariesSchemaPage.js +3 -3
  150. package/dist/components/docs/libraries/LibrariesSupportBotPage.js +3 -3
  151. package/dist/components/docs/libraries/LibrariesTestingPage.js +3 -3
  152. package/dist/components/docs/libraries/LibrariesUIKitPage.js +2 -2
  153. package/dist/components/docs/libraries/LibrariesUIKitWebPage.js +2 -2
  154. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -3
  155. package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +2 -2
  156. package/dist/components/docs/libraries/index.d.ts +1 -0
  157. package/dist/components/docs/libraries/index.js +173 -53
  158. package/dist/components/docs/manifesto/ManifestoPage.js +1 -1
  159. package/dist/components/docs/ops/AutoEvolutionOpsPage.js +2 -2
  160. package/dist/components/docs/ops/DistributedTracingOpsPage.js +2 -2
  161. package/dist/components/docs/ops/index.js +3 -3
  162. package/dist/components/docs/ops/ops-lifecycle.docblocks.js +2 -2
  163. package/dist/components/docs/ops/ops-runbooks-a.docblocks.js +2 -2
  164. package/dist/components/docs/ops/ops-runbooks-b.docblocks.js +2 -2
  165. package/dist/components/docs/ops/ops-slo-tenant.docblocks.js +2 -2
  166. package/dist/components/docs/ops/ops-top.docs.js +2 -2
  167. package/dist/components/docs/ops/ops.docs.js +6 -6
  168. package/dist/components/docs/product/product.docblocks.js +2 -2
  169. package/dist/components/docs/reference/DocsMarkdownContent.js +2 -2
  170. package/dist/components/docs/reference/DocsReferenceContent.js +3 -3
  171. package/dist/components/docs/reference/DocsReferenceIndexClient.js +2 -2
  172. package/dist/components/docs/reference/DocsReferenceIndexPage.js +2 -2
  173. package/dist/components/docs/reference/DocsReferencePage.js +3 -3
  174. package/dist/components/docs/reference/docsMarkdownParser.js +2 -2
  175. package/dist/components/docs/reference/index.js +4 -4
  176. package/dist/components/docs/safety/SafetyAuditingPage.js +2 -2
  177. package/dist/components/docs/safety/SafetyMigrationsPage.js +2 -2
  178. package/dist/components/docs/safety/SafetyOverviewPage.js +1 -1
  179. package/dist/components/docs/safety/SafetyPDPPage.js +2 -2
  180. package/dist/components/docs/safety/SafetySecurityTrustPage.js +1 -1
  181. package/dist/components/docs/safety/SafetySigningPage.js +3 -3
  182. package/dist/components/docs/safety/SafetyTenantIsolationPage.js +2 -2
  183. package/dist/components/docs/safety/index.js +7 -7
  184. package/dist/components/docs/shared/StudioPrompt.js +1 -1
  185. package/dist/components/docs/specs/SpecsBuilderControlPlanePage.js +4 -4
  186. package/dist/components/docs/specs/SpecsCapabilitiesPage.js +2 -2
  187. package/dist/components/docs/specs/SpecsConnectPage.js +2 -2
  188. package/dist/components/docs/specs/SpecsDataViewsPage.js +2 -2
  189. package/dist/components/docs/specs/SpecsModuleBundlesPage.js +3 -3
  190. package/dist/components/docs/specs/SpecsOverlaysPage.js +2 -2
  191. package/dist/components/docs/specs/SpecsOverviewPage.js +1 -1
  192. package/dist/components/docs/specs/SpecsPolicyPage.js +3 -3
  193. package/dist/components/docs/specs/SpecsWorkflowsPage.js +2 -2
  194. package/dist/components/docs/specs/index.js +13 -13
  195. package/dist/components/docs/studio/StudioBYOKPage.js +1 -1
  196. package/dist/components/docs/studio/StudioDeploymentsPage.js +1 -1
  197. package/dist/components/docs/studio/StudioGettingStartedPage.js +1 -1
  198. package/dist/components/docs/studio/StudioIntegrationsPage.js +1 -1
  199. package/dist/components/docs/studio/StudioOverviewPage.js +1 -1
  200. package/dist/components/docs/studio/StudioVisualBuilderPage.js +1 -1
  201. package/dist/components/docs/studio/index.js +1 -1
  202. package/dist/components/docs/tech/contracts/tech-docs.docblocks.js +2 -2
  203. package/dist/components/integrations/index.js +2 -2
  204. package/dist/components/integrations/molecules/IntegrationCard.js +1 -1
  205. package/dist/components/integrations/organisms/IntegrationMarketplace.js +1 -1
  206. package/dist/components/integrations/organisms/IntegrationSettings.js +2 -2
  207. package/dist/components/integrations/organisms/KnowledgeSourceList.js +1 -1
  208. package/dist/components/legal/PrivacyTemplate.js +1 -1
  209. package/dist/components/legal/TermsTemplate.js +1 -1
  210. package/dist/components/legal/index.js +1 -1
  211. package/dist/components/shared/FeatureGateNotice.js +1 -1
  212. package/dist/components/shared/index.js +1 -1
  213. package/dist/components/shell/WorkspaceHeader.js +1 -1
  214. package/dist/components/shell/WorkspaceProjectShellLayout.js +1 -1
  215. package/dist/components/shell/WorkspaceShellRenderer.js +1 -1
  216. package/dist/components/shell/WorkspaceSidebar.js +1 -1
  217. package/dist/components/shell/index.js +1 -1
  218. package/dist/components/templates/engine/index.js +1 -1
  219. package/dist/components/templates/index.js +11 -11
  220. package/dist/components/templates/messaging/ConversationList.js +2 -2
  221. package/dist/components/templates/messaging/MessageComposer.js +4 -4
  222. package/dist/components/templates/messaging/MessageThread.js +3 -3
  223. package/dist/components/templates/messaging/MessagingWorkspace.js +5 -5
  224. package/dist/components/templates/messaging/index.js +5 -5
  225. package/dist/components/templates/recipes/LanguageSwitcher.js +1 -1
  226. package/dist/components/templates/recipes/RecipeCard.js +1 -1
  227. package/dist/components/templates/recipes/RecipeDetail.js +1 -1
  228. package/dist/components/templates/recipes/RecipeList.js +3 -3
  229. package/dist/components/templates/recipes/index.js +3 -3
  230. package/dist/components/templates/todos/FilterBar.js +1 -1
  231. package/dist/components/templates/todos/TaskForm.js +2 -2
  232. package/dist/components/templates/todos/TaskItem.js +1 -1
  233. package/dist/components/templates/todos/TaskList.js +5 -5
  234. package/dist/components/templates/todos/index.js +5 -5
  235. package/dist/config/contractspec-blueprint.js +1 -1
  236. package/dist/config/contractspec-branding.js +1 -1
  237. package/dist/config/contractspec-routes.js +1 -1
  238. package/dist/config/index.js +1 -1
  239. package/dist/features/contracts-registry.js +1 -1
  240. package/dist/features/docs/docs.contracts.js +1 -1
  241. package/dist/features/docs/index.js +1 -1
  242. package/dist/features/docs.feature.js +1 -1
  243. package/dist/features/index.js +1 -1
  244. package/dist/features/mcp.feature.js +1 -1
  245. package/dist/features/presentations.feature.js +1 -1
  246. package/dist/features/registry.js +1 -1
  247. package/dist/index.d.ts +1 -0
  248. package/dist/index.js +382 -262
  249. package/dist/infrastructure/elysia/index.js +1 -1
  250. package/dist/infrastructure/elysia/logger.js +1 -1
  251. package/dist/infrastructure/index.js +1 -1
  252. package/dist/libs/email/client.js +1 -1
  253. package/dist/libs/email/contact.js +3 -3
  254. package/dist/libs/email/newsletter.js +3 -3
  255. package/dist/libs/email/utils.js +2 -2
  256. package/dist/libs/email/waitlist-application.js +3 -3
  257. package/dist/libs/email/waitlist.js +3 -3
  258. package/dist/libs/email.js +6 -6
  259. package/dist/libs/posthog/client.js +1 -1
  260. package/dist/libs/posthog/native.js +1 -1
  261. package/dist/libs/posthog/server.js +1 -1
  262. package/dist/libs/pricing-examples.js +1 -1
  263. package/dist/node/application/context-storage/index.js +1 -1
  264. package/dist/node/application/index.js +6 -6
  265. package/dist/node/application/mcp/cliMcp.js +2 -2
  266. package/dist/node/application/mcp/cliMcp.onboarding.js +1 -1
  267. package/dist/node/application/mcp/common.js +1 -1
  268. package/dist/node/application/mcp/contractsMcp.js +2 -2
  269. package/dist/node/application/mcp/contractsMcpAdoptionTools.js +1 -1
  270. package/dist/node/application/mcp/contractsMcpResources.js +2 -2
  271. package/dist/node/application/mcp/contractsMcpTools.js +1 -1
  272. package/dist/node/application/mcp/docsMcp.catalog.js +2 -2
  273. package/dist/node/application/mcp/docsMcp.data.js +1 -1
  274. package/dist/node/application/mcp/docsMcp.js +3 -3
  275. package/dist/node/application/mcp/docsMcp.prompts.js +3 -3
  276. package/dist/node/application/mcp/docsMcp.reference.js +2 -2
  277. package/dist/node/application/mcp/docsMcp.resources.js +2 -2
  278. package/dist/node/application/mcp/docsMcp.tools.js +2 -2
  279. package/dist/node/application/mcp/index.js +6 -6
  280. package/dist/node/application/mcp/internalMcp.js +2 -2
  281. package/dist/node/application/mcp/normalizeMcpRequest.js +1 -1
  282. package/dist/node/application/mcp/providerRankingMcp.js +1 -1
  283. package/dist/node/bundles/LibraryBundle.js +1 -1
  284. package/dist/node/bundles/index.js +1 -1
  285. package/dist/node/components/docs/DocsIndexPage.js +2 -2
  286. package/dist/node/components/docs/advanced/AdvancedMCPPage.js +3 -3
  287. package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -1
  288. package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +2 -2
  289. package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -4
  290. package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +2 -2
  291. package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -2
  292. package/dist/node/components/docs/advanced/index.js +9 -9
  293. package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +6 -6
  294. package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +3 -3
  295. package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -7
  296. package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -6
  297. package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -2
  298. package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +1 -1
  299. package/dist/node/components/docs/architecture/index.js +20 -20
  300. package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -1
  301. package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -1
  302. package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -1
  303. package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +1 -1
  304. package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +1 -1
  305. package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -1
  306. package/dist/node/components/docs/comparison/index.js +1 -1
  307. package/dist/node/components/docs/docsManifest.js +1 -1
  308. package/dist/node/components/docs/ecosystem/IntegrationsPage.js +2 -2
  309. package/dist/node/components/docs/ecosystem/PluginsPage.js +4 -4
  310. package/dist/node/components/docs/ecosystem/RegistryPage.js +4 -4
  311. package/dist/node/components/docs/ecosystem/TemplatesPage.js +3 -3
  312. package/dist/node/components/docs/ecosystem/index.js +11 -11
  313. package/dist/node/components/docs/examples/DocsExamplesPage.js +1 -1
  314. package/dist/node/components/docs/examples/ExampleShowcasePage.js +2 -2
  315. package/dist/node/components/docs/examples/exampleShowcaseData.js +2 -2
  316. package/dist/node/components/docs/examples/index.js +2 -2
  317. package/dist/node/components/docs/generated/docs-index.generated.js +1 -1
  318. package/dist/node/components/docs/generated/index.js +1 -1
  319. package/dist/node/components/docs/generated/loader.js +1 -1
  320. package/dist/node/components/docs/getting-started/CLIPage.js +4 -4
  321. package/dist/node/components/docs/getting-started/CompatibilityPage.js +1 -1
  322. package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +4 -4
  323. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +1 -1
  324. package/dist/node/components/docs/getting-started/HelloWorldPage.js +5 -5
  325. package/dist/node/components/docs/getting-started/InstallationPage.js +3 -3
  326. package/dist/node/components/docs/getting-started/StartHerePage.js +3 -3
  327. package/dist/node/components/docs/getting-started/TroubleshootingPage.js +2 -2
  328. package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +1 -1
  329. package/dist/node/components/docs/getting-started/getting-started.docblocks.js +2 -2
  330. package/dist/node/components/docs/getting-started/index.js +17 -17
  331. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +2 -2
  332. package/dist/node/components/docs/guides/GuideConnectInRepoPage.js +6 -6
  333. package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -6
  334. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +3 -3
  335. package/dist/node/components/docs/guides/GuideFirstModuleBundlePage.js +4 -4
  336. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -2
  337. package/dist/node/components/docs/guides/GuideHostBuilderWorkbenchPage.js +7 -7
  338. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -8
  339. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
  340. package/dist/node/components/docs/guides/GuideReleaseCapsulesPage.js +3 -3
  341. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +4 -4
  342. package/dist/node/components/docs/guides/GuidesIndexPage.js +2 -2
  343. package/dist/node/components/docs/guides/index.js +43 -43
  344. package/dist/node/components/docs/index.js +375 -255
  345. package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -2
  346. package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -3
  347. package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +2 -2
  348. package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +3 -3
  349. package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -3
  350. package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +2 -2
  351. package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +2 -2
  352. package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +2 -2
  353. package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +1 -1
  354. package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +2 -2
  355. package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +2 -2
  356. package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +5 -5
  357. package/dist/node/components/docs/integrations/IntegrationsResendPage.js +3 -3
  358. package/dist/node/components/docs/integrations/IntegrationsS3Page.js +4 -4
  359. package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +2 -2
  360. package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +2 -2
  361. package/dist/node/components/docs/integrations/IntegrationsStripePage.js +2 -2
  362. package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +3 -3
  363. package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -2
  364. package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -2
  365. package/dist/node/components/docs/integrations/index.js +39 -39
  366. package/dist/node/components/docs/intent/ContractFirstApiPage.js +2 -2
  367. package/dist/node/components/docs/intent/DeterministicCodegenPage.js +2 -2
  368. package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +7 -7
  369. package/dist/node/components/docs/intent/OpenapiAlternativePage.js +3 -3
  370. package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +4 -4
  371. package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -2
  372. package/dist/node/components/docs/intent/index.js +15 -15
  373. package/dist/node/components/docs/intent/intent-pages.docblocks.js +1 -1
  374. package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +2 -2
  375. package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +2 -2
  376. package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +1 -1
  377. package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +2 -2
  378. package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +2 -2
  379. package/dist/node/components/docs/knowledge/index.js +5 -5
  380. package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +3 -3
  381. package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +3 -3
  382. package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +4 -4
  383. package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +2 -2
  384. package/dist/node/components/docs/libraries/LibrariesContractsPage.js +2 -2
  385. package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +3 -3
  386. package/dist/node/components/docs/libraries/LibrariesCrossPlatformUIPage.content.js +85 -0
  387. package/dist/node/components/docs/libraries/LibrariesCrossPlatformUIPage.js +85 -0
  388. package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +2 -2
  389. package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +3 -3
  390. package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +38 -2
  391. package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +4 -4
  392. package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +2 -2
  393. package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +3 -3
  394. package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -3
  395. package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +5 -5
  396. package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -4
  397. package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +1 -1
  398. package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +4 -4
  399. package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -3
  400. package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +4 -4
  401. package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +2 -2
  402. package/dist/node/components/docs/libraries/LibrariesSLOPage.js +3 -3
  403. package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +3 -3
  404. package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +3 -3
  405. package/dist/node/components/docs/libraries/LibrariesTestingPage.js +3 -3
  406. package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +2 -2
  407. package/dist/node/components/docs/libraries/LibrariesUIKitWebPage.js +2 -2
  408. package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -3
  409. package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +2 -2
  410. package/dist/node/components/docs/libraries/index.js +173 -53
  411. package/dist/node/components/docs/manifesto/ManifestoPage.js +1 -1
  412. package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +2 -2
  413. package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +2 -2
  414. package/dist/node/components/docs/ops/index.js +3 -3
  415. package/dist/node/components/docs/ops/ops-lifecycle.docblocks.js +2 -2
  416. package/dist/node/components/docs/ops/ops-runbooks-a.docblocks.js +2 -2
  417. package/dist/node/components/docs/ops/ops-runbooks-b.docblocks.js +2 -2
  418. package/dist/node/components/docs/ops/ops-slo-tenant.docblocks.js +2 -2
  419. package/dist/node/components/docs/ops/ops-top.docs.js +2 -2
  420. package/dist/node/components/docs/ops/ops.docs.js +6 -6
  421. package/dist/node/components/docs/product/product.docblocks.js +2 -2
  422. package/dist/node/components/docs/reference/DocsMarkdownContent.js +2 -2
  423. package/dist/node/components/docs/reference/DocsReferenceContent.js +3 -3
  424. package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +2 -2
  425. package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +2 -2
  426. package/dist/node/components/docs/reference/DocsReferencePage.js +3 -3
  427. package/dist/node/components/docs/reference/docsMarkdownParser.js +2 -2
  428. package/dist/node/components/docs/reference/index.js +4 -4
  429. package/dist/node/components/docs/safety/SafetyAuditingPage.js +2 -2
  430. package/dist/node/components/docs/safety/SafetyMigrationsPage.js +2 -2
  431. package/dist/node/components/docs/safety/SafetyOverviewPage.js +1 -1
  432. package/dist/node/components/docs/safety/SafetyPDPPage.js +2 -2
  433. package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +1 -1
  434. package/dist/node/components/docs/safety/SafetySigningPage.js +3 -3
  435. package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +2 -2
  436. package/dist/node/components/docs/safety/index.js +7 -7
  437. package/dist/node/components/docs/shared/StudioPrompt.js +1 -1
  438. package/dist/node/components/docs/specs/SpecsBuilderControlPlanePage.js +4 -4
  439. package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +2 -2
  440. package/dist/node/components/docs/specs/SpecsConnectPage.js +2 -2
  441. package/dist/node/components/docs/specs/SpecsDataViewsPage.js +2 -2
  442. package/dist/node/components/docs/specs/SpecsModuleBundlesPage.js +3 -3
  443. package/dist/node/components/docs/specs/SpecsOverlaysPage.js +2 -2
  444. package/dist/node/components/docs/specs/SpecsOverviewPage.js +1 -1
  445. package/dist/node/components/docs/specs/SpecsPolicyPage.js +3 -3
  446. package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +2 -2
  447. package/dist/node/components/docs/specs/index.js +13 -13
  448. package/dist/node/components/docs/studio/StudioBYOKPage.js +1 -1
  449. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +1 -1
  450. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +1 -1
  451. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +1 -1
  452. package/dist/node/components/docs/studio/StudioOverviewPage.js +1 -1
  453. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +1 -1
  454. package/dist/node/components/docs/studio/index.js +1 -1
  455. package/dist/node/components/docs/tech/contracts/tech-docs.docblocks.js +2 -2
  456. package/dist/node/components/integrations/index.js +2 -2
  457. package/dist/node/components/integrations/molecules/IntegrationCard.js +1 -1
  458. package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +1 -1
  459. package/dist/node/components/integrations/organisms/IntegrationSettings.js +2 -2
  460. package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +1 -1
  461. package/dist/node/components/legal/PrivacyTemplate.js +1 -1
  462. package/dist/node/components/legal/TermsTemplate.js +1 -1
  463. package/dist/node/components/legal/index.js +1 -1
  464. package/dist/node/components/shared/FeatureGateNotice.js +1 -1
  465. package/dist/node/components/shared/index.js +1 -1
  466. package/dist/node/components/shell/WorkspaceHeader.js +1 -1
  467. package/dist/node/components/shell/WorkspaceProjectShellLayout.js +1 -1
  468. package/dist/node/components/shell/WorkspaceShellRenderer.js +1 -1
  469. package/dist/node/components/shell/WorkspaceSidebar.js +1 -1
  470. package/dist/node/components/shell/index.js +1 -1
  471. package/dist/node/components/templates/engine/index.js +1 -1
  472. package/dist/node/components/templates/index.js +11 -11
  473. package/dist/node/components/templates/messaging/ConversationList.js +2 -2
  474. package/dist/node/components/templates/messaging/MessageComposer.js +4 -4
  475. package/dist/node/components/templates/messaging/MessageThread.js +3 -3
  476. package/dist/node/components/templates/messaging/MessagingWorkspace.js +5 -5
  477. package/dist/node/components/templates/messaging/index.js +5 -5
  478. package/dist/node/components/templates/recipes/LanguageSwitcher.js +1 -1
  479. package/dist/node/components/templates/recipes/RecipeCard.js +1 -1
  480. package/dist/node/components/templates/recipes/RecipeDetail.js +1 -1
  481. package/dist/node/components/templates/recipes/RecipeList.js +3 -3
  482. package/dist/node/components/templates/recipes/index.js +3 -3
  483. package/dist/node/components/templates/todos/FilterBar.js +1 -1
  484. package/dist/node/components/templates/todos/TaskForm.js +2 -2
  485. package/dist/node/components/templates/todos/TaskItem.js +1 -1
  486. package/dist/node/components/templates/todos/TaskList.js +5 -5
  487. package/dist/node/components/templates/todos/index.js +5 -5
  488. package/dist/node/config/contractspec-blueprint.js +1 -1
  489. package/dist/node/config/contractspec-branding.js +1 -1
  490. package/dist/node/config/contractspec-routes.js +1 -1
  491. package/dist/node/config/index.js +1 -1
  492. package/dist/node/features/contracts-registry.js +1 -1
  493. package/dist/node/features/docs/docs.contracts.js +1 -1
  494. package/dist/node/features/docs/index.js +1 -1
  495. package/dist/node/features/docs.feature.js +1 -1
  496. package/dist/node/features/index.js +1 -1
  497. package/dist/node/features/mcp.feature.js +1 -1
  498. package/dist/node/features/presentations.feature.js +1 -1
  499. package/dist/node/features/registry.js +1 -1
  500. package/dist/node/index.js +382 -262
  501. package/dist/node/infrastructure/elysia/index.js +1 -1
  502. package/dist/node/infrastructure/elysia/logger.js +1 -1
  503. package/dist/node/infrastructure/index.js +1 -1
  504. package/dist/node/libs/email/client.js +1 -1
  505. package/dist/node/libs/email/contact.js +3 -3
  506. package/dist/node/libs/email/newsletter.js +3 -3
  507. package/dist/node/libs/email/utils.js +2 -2
  508. package/dist/node/libs/email/waitlist-application.js +3 -3
  509. package/dist/node/libs/email/waitlist.js +3 -3
  510. package/dist/node/libs/email.js +6 -6
  511. package/dist/node/libs/posthog/client.js +1 -1
  512. package/dist/node/libs/posthog/native.js +1 -1
  513. package/dist/node/libs/posthog/server.js +1 -1
  514. package/dist/node/libs/pricing-examples.js +1 -1
  515. package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -1
  516. package/dist/node/presentation/features/atoms/FeatureIcon/index.js +1 -1
  517. package/dist/node/presentation/features/atoms/index.js +1 -1
  518. package/dist/node/presentation/features/hooks/index.js +1 -1
  519. package/dist/node/presentation/features/hooks/useContractsRegistry.js +1 -1
  520. package/dist/node/presentation/features/hooks/useFeatureFilters.js +1 -1
  521. package/dist/node/presentation/features/hooks/useFeatureRegistry.js +1 -1
  522. package/dist/node/presentation/features/hooks/useRelatedDocs.js +1 -1
  523. package/dist/node/presentation/features/index.js +1 -1
  524. package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -1
  525. package/dist/node/presentation/features/molecules/FeatureCard/index.js +1 -1
  526. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -1
  527. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -1
  528. package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -1
  529. package/dist/node/presentation/features/molecules/FeatureFilters/index.js +1 -1
  530. package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -1
  531. package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +1 -1
  532. package/dist/node/presentation/features/molecules/index.js +1 -1
  533. package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +1 -1
  534. package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -1
  535. package/dist/node/presentation/features/organisms/FeatureDetail/index.js +1 -1
  536. package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -1
  537. package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +1 -1
  538. package/dist/node/presentation/features/organisms/FeatureEventsList.js +1 -1
  539. package/dist/node/presentation/features/organisms/FeatureFormsList.js +1 -1
  540. package/dist/node/presentation/features/organisms/FeatureOperationsList.js +1 -1
  541. package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +1 -1
  542. package/dist/node/presentation/features/organisms/index.js +1 -1
  543. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -1
  544. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -1
  545. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -1
  546. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -1
  547. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -1
  548. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -1
  549. package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -1
  550. package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +1 -1
  551. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -1
  552. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -1
  553. package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -1
  554. package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +1 -1
  555. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -1
  556. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -1
  557. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -1
  558. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -1
  559. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -1
  560. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -1
  561. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -1
  562. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -1
  563. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -1
  564. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -1
  565. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -1
  566. package/dist/presentation/features/atoms/FeatureIcon/index.js +1 -1
  567. package/dist/presentation/features/atoms/index.js +1 -1
  568. package/dist/presentation/features/hooks/index.js +1 -1
  569. package/dist/presentation/features/hooks/useContractsRegistry.js +1 -1
  570. package/dist/presentation/features/hooks/useFeatureFilters.js +1 -1
  571. package/dist/presentation/features/hooks/useFeatureRegistry.js +1 -1
  572. package/dist/presentation/features/hooks/useRelatedDocs.js +1 -1
  573. package/dist/presentation/features/index.js +1 -1
  574. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -1
  575. package/dist/presentation/features/molecules/FeatureCard/index.js +1 -1
  576. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -1
  577. package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -1
  578. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -1
  579. package/dist/presentation/features/molecules/FeatureFilters/index.js +1 -1
  580. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -1
  581. package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +1 -1
  582. package/dist/presentation/features/molecules/index.js +1 -1
  583. package/dist/presentation/features/organisms/FeatureDataViewsList.js +1 -1
  584. package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -1
  585. package/dist/presentation/features/organisms/FeatureDetail/index.js +1 -1
  586. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -1
  587. package/dist/presentation/features/organisms/FeatureDiscovery/index.js +1 -1
  588. package/dist/presentation/features/organisms/FeatureEventsList.js +1 -1
  589. package/dist/presentation/features/organisms/FeatureFormsList.js +1 -1
  590. package/dist/presentation/features/organisms/FeatureOperationsList.js +1 -1
  591. package/dist/presentation/features/organisms/FeaturePresentationsList.js +1 -1
  592. package/dist/presentation/features/organisms/index.js +1 -1
  593. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -1
  594. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -1
  595. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -1
  596. package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -1
  597. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -1
  598. package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -1
  599. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -1
  600. package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +1 -1
  601. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -1
  602. package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -1
  603. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -1
  604. package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +1 -1
  605. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -1
  606. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -1
  607. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -1
  608. package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -1
  609. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -1
  610. package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -1
  611. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -1
  612. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -1
  613. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -1
  614. package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -1
  615. package/package.json +49 -24
  616. package/src/application/mcp/internalMcp.ts +1 -1
  617. package/src/bundles/LibraryBundle.ts +19 -130
  618. package/src/components/docs/docsManifest.test.ts +14 -0
  619. package/src/components/docs/docsManifest.ts +10 -0
  620. package/src/components/docs/examples/DocsExamplesPage.tsx +3 -3
  621. package/src/components/docs/examples/ExampleShowcasePage.tsx +1 -1
  622. package/src/components/docs/examples/exampleShowcaseData.test.ts +5 -3
  623. package/src/components/docs/examples/exampleShowcaseData.ts +3 -3
  624. package/src/components/docs/generated/docs-index._common.json +1699 -2008
  625. package/src/components/docs/generated/docs-index.agent-console.json +377 -377
  626. package/src/components/docs/generated/docs-index.ai-chat-assistant.json +17 -17
  627. package/src/components/docs/generated/docs-index.ai-chat.json +105 -105
  628. package/src/components/docs/generated/docs-index.ai-support-bot.json +9 -9
  629. package/src/components/docs/generated/docs-index.analytics-dashboard.json +169 -169
  630. package/src/components/docs/generated/docs-index.app-config.json +137 -137
  631. package/src/components/docs/generated/docs-index.artisan-knowledge-product.json +17 -17
  632. package/src/components/docs/generated/docs-index.artisan-payments-stripe.json +33 -33
  633. package/src/components/docs/generated/docs-index.audit-trail.json +49 -49
  634. package/src/components/docs/generated/docs-index.calendar-google.json +9 -9
  635. package/src/components/docs/generated/docs-index.content-generation.json +9 -9
  636. package/src/components/docs/generated/docs-index.control-plane.json +17 -17
  637. package/src/components/docs/generated/docs-index.crm-pipeline.json +161 -161
  638. package/src/components/docs/generated/docs-index.data-grid-showcase.json +25 -25
  639. package/src/components/docs/generated/docs-index.defineExample.json +9 -9
  640. package/src/components/docs/generated/docs-index.email-gmail.json +9 -9
  641. package/src/components/docs/generated/docs-index.feature-flags.json +217 -217
  642. package/src/components/docs/generated/docs-index.files.json +177 -177
  643. package/src/components/docs/generated/docs-index.generated.ts +20 -20
  644. package/src/components/docs/generated/docs-index.harness-lab.json +9 -9
  645. package/src/components/docs/generated/docs-index.health.json +97 -97
  646. package/src/components/docs/generated/docs-index.identity-rbac.json +313 -313
  647. package/src/components/docs/generated/docs-index.in-app-docs.json +9 -9
  648. package/src/components/docs/generated/docs-index.integration-hub.json +265 -265
  649. package/src/components/docs/generated/docs-index.integration-posthog.json +9 -9
  650. package/src/components/docs/generated/docs-index.integration-stripe.json +9 -9
  651. package/src/components/docs/generated/docs-index.integration-supabase.json +9 -9
  652. package/src/components/docs/generated/docs-index.jobs.json +137 -137
  653. package/src/components/docs/generated/docs-index.kb-update-pipeline.json +129 -129
  654. package/src/components/docs/generated/docs-index.knowledge-canon.json +9 -9
  655. package/src/components/docs/generated/docs-index.learning-journey-ambient-coach.json +9 -9
  656. package/src/components/docs/generated/docs-index.learning-journey-crm-onboarding.json +49 -49
  657. package/src/components/docs/generated/docs-index.learning-journey-duo-drills.json +9 -9
  658. package/src/components/docs/generated/docs-index.learning-journey-platform-tour.json +49 -49
  659. package/src/components/docs/generated/docs-index.learning-journey-quest-challenges.json +9 -9
  660. package/src/components/docs/generated/docs-index.learning-journey-registry.json +33 -33
  661. package/src/components/docs/generated/docs-index.learning-journey-studio-onboarding.json +49 -49
  662. package/src/components/docs/generated/docs-index.learning-journey-ui-coaching.json +9 -9
  663. package/src/components/docs/generated/docs-index.learning-journey-ui-gamified.json +9 -9
  664. package/src/components/docs/generated/docs-index.learning-journey-ui-onboarding.json +9 -9
  665. package/src/components/docs/generated/docs-index.learning-journey-ui-shared.json +9 -9
  666. package/src/components/docs/generated/docs-index.learning-journey.json +241 -241
  667. package/src/components/docs/generated/docs-index.learning-patterns.json +9 -9
  668. package/src/components/docs/generated/docs-index.lifecycle-cli.json +9 -9
  669. package/src/components/docs/generated/docs-index.lifecycle-dashboard.json +9 -9
  670. package/src/components/docs/generated/docs-index.locale-jurisdiction-gate.json +65 -65
  671. package/src/components/docs/generated/docs-index.manifest.json +432 -432
  672. package/src/components/docs/generated/docs-index.marketplace.json +337 -337
  673. package/src/components/docs/generated/docs-index.meeting-recorder-providers.json +9 -9
  674. package/src/components/docs/generated/docs-index.meeting-recorder.json +49 -49
  675. package/src/components/docs/generated/docs-index.messaging-agent-actions.json +17 -17
  676. package/src/components/docs/generated/docs-index.metrics.json +201 -201
  677. package/src/components/docs/generated/docs-index.minimal.json +17 -17
  678. package/src/components/docs/generated/docs-index.mobile-demo-landing.json +42 -0
  679. package/src/components/docs/generated/docs-index.notifications.json +65 -65
  680. package/src/components/docs/generated/docs-index.openbanking-powens.json +9 -9
  681. package/src/components/docs/generated/docs-index.openbanking.json +65 -65
  682. package/src/components/docs/generated/docs-index.opencode-cli.json +17 -17
  683. package/src/components/docs/generated/docs-index.personalization.json +9 -9
  684. package/src/components/docs/generated/docs-index.platform-acp.json +137 -137
  685. package/src/components/docs/generated/docs-index.platform-agent.json +201 -201
  686. package/src/components/docs/generated/docs-index.platform-context.json +121 -121
  687. package/src/components/docs/generated/docs-index.platform-control-plane.json +321 -321
  688. package/src/components/docs/generated/docs-index.platform-database.json +89 -89
  689. package/src/components/docs/generated/docs-index.platform-docs.json +161 -161
  690. package/src/components/docs/generated/docs-index.platform-harness.json +177 -177
  691. package/src/components/docs/generated/docs-index.platform-integrations.json +329 -329
  692. package/src/components/docs/generated/docs-index.platform-knowledge.json +57 -57
  693. package/src/components/docs/generated/docs-index.platform-provider-ranking.json +217 -217
  694. package/src/components/docs/generated/docs-index.pocket-family-office.json +129 -129
  695. package/src/components/docs/generated/docs-index.policy-safe-knowledge-assistant.json +9 -9
  696. package/src/components/docs/generated/docs-index.product-intent.json +9 -9
  697. package/src/components/docs/generated/docs-index.project-management-sync.json +9 -9
  698. package/src/components/docs/generated/docs-index.saas-boilerplate.json +209 -209
  699. package/src/components/docs/generated/docs-index.service-business-os.json +193 -193
  700. package/src/components/docs/generated/docs-index.team-hub.json +185 -185
  701. package/src/components/docs/generated/docs-index.unknown.json +521 -521
  702. package/src/components/docs/generated/docs-index.versioned-knowledge-base.json +81 -81
  703. package/src/components/docs/generated/docs-index.video-api-showcase.json +33 -33
  704. package/src/components/docs/generated/docs-index.video-docs-terminal.json +9 -9
  705. package/src/components/docs/generated/docs-index.video-marketing-clip.json +9 -9
  706. package/src/components/docs/generated/docs-index.visualization-showcase.json +17 -17
  707. package/src/components/docs/generated/docs-index.voice-providers.json +9 -9
  708. package/src/components/docs/generated/docs-index.wealth-snapshot.json +153 -153
  709. package/src/components/docs/generated/docs-index.workflow-system.json +433 -433
  710. package/src/components/docs/generated/docs-index.workspace-cli.json +9 -9
  711. package/src/components/docs/generated/index.ts +20 -5
  712. package/src/components/docs/generated/loader.ts +15 -8
  713. package/src/components/docs/getting-started/CompatibilityPage.tsx +14 -0
  714. package/src/components/docs/libraries/LibrariesCrossPlatformUIPage.content.ts +252 -0
  715. package/src/components/docs/libraries/LibrariesCrossPlatformUIPage.tsx +232 -0
  716. package/src/components/docs/libraries/LibrariesDesignSystemPage.tsx +79 -0
  717. package/src/components/docs/libraries/LibrariesOverviewPage.tsx +6 -0
  718. package/src/components/docs/libraries/LibrariesRuntimePage.tsx +15 -0
  719. package/src/components/docs/libraries/LibrariesUIKitPage.tsx +15 -0
  720. package/src/components/docs/libraries/LibrariesUIKitWebPage.tsx +14 -0
  721. package/src/components/docs/libraries/index.ts +1 -0
  722. package/src/components/docs/reference/DocsReferenceIndexPage.tsx +1 -1
  723. package/src/index.ts +1 -1
  724. package/src/components/docs/generated/docs-index.mobile-demo-tasks.json +0 -34
@@ -1,3 +1,3 @@
1
1
  // @bun
2
- import{Logger as O,LogLevel as E}from"@contractspec/lib.logger";function f(){return"production"}var a=()=>new O({level:E.INFO,environment:f(),enableTracing:!0,enableTiming:!0,enableContext:!0,enableColors:!1}),d=a(),xj=new O({level:E.WARN,environment:f(),enableTracing:!0,enableTiming:!0,enableContext:!0,enableColors:!1}),Bj=new O({level:E.INFO,environment:f(),enableTracing:!0,enableTiming:!0,enableContext:!0,enableColors:!1});var m=["application/json","text/event-stream"];function t(j){return!j||j.includes("*/*")||j.includes("application/*")||m.some((_)=>j.includes(_))}function T(j){if(j.method!=="POST")return j;let _=j.headers.get("accept");if(!t(_))return j;let w=m.filter((Z)=>!_?.includes(Z));if(w.length===0)return j;let Y=new Headers(j.headers);return Y.set("accept",[_,...w].filter(Boolean).join(", ")),new Request(j,{headers:Y})}import{createMcpServer as r}from"@contractspec/lib.contracts-runtime-server-mcp/provider-mcp";import{PresentationRegistry as s}from"@contractspec/lib.contracts-spec/presentations";import{McpServer as e}from"@modelcontextprotocol/sdk/server/mcp.js";import{WebStandardStreamableHTTPServerTransport as jj}from"@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";import{randomUUID as _j}from"crypto";import{Elysia as wj}from"elysia";var Qj={actor:"anonymous",decide:async()=>({effect:"allow"})};function h(j,_,w,Y){return new Response(JSON.stringify({jsonrpc:"2.0",error:{code:_,message:w,...Y?{data:Y}:{}},id:null}),{status:j,headers:{"content-type":"application/json"}})}function u({logger:j,serverName:_,ops:w,resources:Y,prompts:Z,presentations:D,stateful:$}){let F=new e({name:_,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{},logging:{}}});j.info("Setting up MCP server..."),r(F,w,Y,Z,{logger:j,toolCtx:()=>Qj,promptCtx:()=>({locale:"en"}),resourceCtx:()=>({locale:"en"}),presentations:new s(D)});let J=new jj({sessionIdGenerator:$?()=>_j():void 0,enableJsonResponse:!0});return F.connect(J).then(()=>({server:F,transport:J}))}async function M(j){await Promise.allSettled([j.transport.close(),j.server.close()])}function Yj(j){return j instanceof Error?j.stack??j.message:String(j)}function l({logger:j,path:_,serverName:w,ops:Y,resources:Z,prompts:D,presentations:$,validateAuth:F,requiredAuthMethods:J}){j.info("Setting up MCP handler...",{requiredAuthMethods:J??[]});let H=process.env.CONTRACTSPEC_MCP_STATEFUL==="1",k=new Map;async function P(K){let X=await u({logger:j,path:_,serverName:w,ops:Y,resources:Z,prompts:D,presentations:$,stateful:!1});try{return await X.transport.handleRequest(T(K))}finally{await M(X)}}async function z(K){let X=k.get(K);if(!X)return;k.delete(K),await M(X)}async function o(K){let X=K.headers.get("mcp-session-id"),V,q=!1;if(X){let C=k.get(X);if(!C)return h(404,-32001,"Session not found");V=C}else V=await u({logger:j,path:_,serverName:w,ops:Y,resources:Z,prompts:D,presentations:$,stateful:!0}),q=!0;try{let C=await V.transport.handleRequest(T(K)),W=V.transport.sessionId;if(W&&!k.has(W))k.set(W,V);if(K.method==="DELETE"&&W)await z(W);else if(!W&&q)await M(V);return C}catch(C){if(q)await M(V);throw C}}return new wj({name:`mcp-${w}`}).all(_,async({request:K})=>{try{if(F){let X=await F(K);if(!X.valid)return h(401,-32002,"Authentication failed",X.reason)}if(H)return await o(K);return await P(K)}catch(X){return j.error("Error handling MCP request",{path:_,method:K.method,error:Yj(X)}),h(500,-32000,"Internal error")}})}import{definePrompt as kj,defineResourceTemplate as A,PromptRegistry as Fj,ResourceRegistry as Jj}from"@contractspec/lib.contracts-spec";import U from"zod";var Kj=["@contractspec"],b=["contracts","mcp"];function n(j){let _=new Jj;return _.register(A({meta:{uriTemplate:"contracts://list",title:"Contract specs list",description:"JSON list of all contract specs in the workspace.",mimeType:"application/json",tags:b},input:U.object({}),resolve:async()=>{let w=await j.listSpecs();return{uri:"contracts://list",mimeType:"application/json",data:JSON.stringify(w,null,2)}}})),_.register(A({meta:{uriTemplate:"contracts://spec/{path}",title:"Contract spec content",description:"Read a single contract spec file by path.",mimeType:"text/plain",tags:b},input:U.object({path:U.string()}),resolve:async({path:w})=>{let Y=await j.getSpec(w);if(!Y)return{uri:`contracts://spec/${encodeURIComponent(w)}`,mimeType:"text/plain",data:`Spec not found: ${w}`};return{uri:`contracts://spec/${encodeURIComponent(w)}`,mimeType:"text/plain",data:Y.content}}})),_.register(A({meta:{uriTemplate:"contracts://registry/manifest",title:"Remote registry manifest",description:"Contract registry manifest from the remote server.",mimeType:"application/json",tags:b},input:U.object({}),resolve:async()=>{let w=await j.fetchRegistryManifest();return{uri:"contracts://registry/manifest",mimeType:"application/json",data:JSON.stringify(w,null,2)}}})),_.register(A({meta:{uriTemplate:"adoption://catalog",title:"ContractSpec adoption catalog",description:"Bundled ContractSpec adoption catalog used by Connect and MCP.",mimeType:"application/json",tags:b},input:U.object({}),resolve:async()=>{let w=await j.searchAdoptionCatalog({query:"contractspec"});return{uri:"adoption://catalog",mimeType:"application/json",data:JSON.stringify(w,null,2)}}})),_.register(A({meta:{uriTemplate:"adoption://policy/{family}",title:"ContractSpec adoption policy",description:"Family-aware adoption recommendation and verdict policy.",mimeType:"application/json",tags:b},input:U.object({family:U.string()}),resolve:async({family:w})=>{let Y=await j.resolveAdoption({family:w,query:w});return{uri:`adoption://policy/${encodeURIComponent(w)}`,mimeType:"application/json",data:JSON.stringify(Y,null,2)}}})),_}function c(){let j=new Fj;return j.register(kj({meta:{key:"contracts.editor",version:"1.0.0",title:"Contract editing guide",description:"Guide AI agents through reading, editing, and validating contracts.",tags:b,stability:"beta",owners:Kj},args:[{name:"goal",description:"What the agent wants to achieve with the contract.",required:!1,schema:U.string().optional()}],input:U.object({goal:U.string().optional()}),render:async({goal:_})=>[{type:"text",text:["Contract editing workflow:","1. Use contracts.list to discover specs","2. Use contracts.get to read a spec","3. Edit content and call contracts.update","4. Run contracts.validate to verify changes","5. Run contracts.build to regenerate artifacts","6. Use adoption.resolve to prefer existing workspace or ContractSpec surfaces before inventing new ones",_?`Agent goal: ${_}`:""].filter(Boolean).join(`
3
- `)},{type:"resource",uri:"contracts://list",title:"Available contracts"}]})),j}import{defineCommand as v,installOp as g}from"@contractspec/lib.contracts-spec";import{defineSchemaModel as G,ScalarTypeEnum as x}from"@contractspec/lib.schema";var y=["@contractspec"],S=["contracts","mcp","adoption"];function i(j,_){let w=G({name:"AdoptionCatalogSearchInput",fields:{query:{type:x.String_unsecure(),isOptional:!1},family:{type:x.String_unsecure(),isOptional:!0},platform:{type:x.String_unsecure(),isOptional:!0}}}),Y=G({name:"AdoptionCatalogSearchOutput",fields:{results:{type:x.JSON(),isOptional:!1}}});g(j,v({meta:{key:"adoption.catalog_search",version:"1.0.0",stability:"beta",owners:y,tags:S,description:"Search the local ContractSpec adoption catalog.",goal:"Find relevant ContractSpec reuse candidates for a query.",context:"Contracts MCP server."},io:{input:w,output:Y},policy:{auth:"anonymous"}}),async({family:J,platform:H,query:k})=>({results:await _.searchAdoptionCatalog({family:J,platform:H,query:k})}));let Z=G({name:"AdoptionResolveInput",fields:{family:{type:x.String_unsecure(),isOptional:!1},query:{type:x.String_unsecure(),isOptional:!1},paths:{type:x.JSON(),isOptional:!0},platform:{type:x.String_unsecure(),isOptional:!0},runtime:{type:x.String_unsecure(),isOptional:!0}}}),D=G({name:"AdoptionResolveOutput",fields:{resolution:{type:x.JSON(),isOptional:!1}}});g(j,v({meta:{key:"adoption.resolve",version:"1.0.0",stability:"beta",owners:y,tags:S,description:"Resolve the best adoption candidate for one family.",goal:"Provide one ordered recommendation that matches Connect.",context:"Contracts MCP server."},io:{input:Z,output:D},policy:{auth:"anonymous"}}),async({family:J,paths:H,platform:k,query:P,runtime:z})=>({resolution:await _.resolveAdoption({family:J,paths:Array.isArray(H)?H:void 0,platform:k,query:P,runtime:z})}));let $=G({name:"AdoptionSyncInput",fields:{}}),F=G({name:"AdoptionSyncOutput",fields:{catalogPath:{type:x.String_unsecure(),isOptional:!1},total:{type:x.Int_unsecure(),isOptional:!1}}});g(j,v({meta:{key:"adoption.sync",version:"1.0.0",stability:"beta",owners:y,tags:S,description:"Mirror the bundled ContractSpec adoption catalog locally.",goal:"Refresh the local adoption catalog used by Connect and MCP.",context:"Contracts MCP server."},io:{input:$,output:F},policy:{auth:"user"}}),async()=>_.syncAdoptionCatalog())}import{defineCommand as L,installOp as I,OperationSpecRegistry as Xj}from"@contractspec/lib.contracts-spec";import{defineSchemaModel as B,ScalarTypeEnum as Q}from"@contractspec/lib.schema";var N=["@contractspec"],R=["contracts","mcp"];function p(j){let _=new Xj,w=B({name:"ContractsListInput",fields:{pattern:{type:Q.String_unsecure(),isOptional:!0},type:{type:Q.String_unsecure(),isOptional:!0}}}),Y=B({name:"ContractsListOutput",fields:{specs:{type:Q.JSON(),isOptional:!1},total:{type:Q.Int_unsecure(),isOptional:!1}}});I(_,L({meta:{key:"contracts.list",version:"1.0.0",stability:"beta",owners:N,tags:R,description:"List contract specs in the workspace.",goal:"Discover available contracts by type, pattern, or owner.",context:"Contracts MCP server."},io:{input:w,output:Y},policy:{auth:"anonymous"}}),async({pattern:k,type:P})=>{let z=await j.listSpecs({pattern:k,type:P});return{specs:z,total:z.length}});let Z=B({name:"ContractsGetInput",fields:{path:{type:Q.String_unsecure(),isOptional:!1}}}),D=B({name:"ContractsGetOutput",fields:{content:{type:Q.String_unsecure(),isOptional:!1},info:{type:Q.JSON(),isOptional:!1}}});I(_,L({meta:{key:"contracts.get",version:"1.0.0",stability:"beta",owners:N,tags:R,description:"Read a single contract spec file.",goal:"Fetch spec content and parsed metadata.",context:"Contracts MCP server."},io:{input:Z,output:D},policy:{auth:"anonymous"}}),async({path:k})=>{let P=await j.getSpec(k);if(!P)throw Error(`Spec not found: ${k}`);return P});let $=B({name:"ContractsValidateInput",fields:{path:{type:Q.String_unsecure(),isOptional:!1}}}),F=B({name:"ContractsValidateOutput",fields:{valid:{type:Q.Boolean(),isOptional:!1},errors:{type:Q.JSON(),isOptional:!1},warnings:{type:Q.JSON(),isOptional:!1}}});I(_,L({meta:{key:"contracts.validate",version:"1.0.0",stability:"beta",owners:N,tags:R,description:"Validate a contract spec structure.",goal:"Check spec for structural or policy issues.",context:"Contracts MCP server."},io:{input:$,output:F},policy:{auth:"anonymous"}}),async({path:k})=>j.validateSpec(k));let J=B({name:"ContractsBuildInput",fields:{path:{type:Q.String_unsecure(),isOptional:!1},dryRun:{type:Q.Boolean(),isOptional:!0}}}),H=B({name:"ContractsBuildOutput",fields:{results:{type:Q.JSON(),isOptional:!1}}});return I(_,L({meta:{key:"contracts.build",version:"1.0.0",stability:"beta",owners:N,tags:R,description:"Generate implementation code from a contract spec.",goal:"Produce handler, component, or test skeletons.",context:"Contracts MCP server."},io:{input:J,output:H},policy:{auth:"user"}}),async({path:k,dryRun:P})=>j.buildSpec(k,{dryRun:P})),Zj(_,j),i(_,j),_}function Zj(j,_){let w=B({name:"ContractsUpdateInput",fields:{path:{type:Q.String_unsecure(),isOptional:!1},content:{type:Q.String_unsecure(),isOptional:!0},fields:{type:Q.JSON(),isOptional:!0}}}),Y=B({name:"ContractsUpdateOutput",fields:{updated:{type:Q.Boolean(),isOptional:!1},errors:{type:Q.JSON(),isOptional:!1},warnings:{type:Q.JSON(),isOptional:!1}}});I(j,L({meta:{key:"contracts.update",version:"1.0.0",stability:"beta",owners:N,tags:R,description:"Update an existing contract spec.",goal:"Modify spec content or individual fields with validation.",context:"Contracts MCP server."},io:{input:w,output:Y},policy:{auth:"user"}}),async({path:$,content:F,fields:J})=>_.updateSpec($,{content:F,fields:Array.isArray(J)?J:void 0}));let Z=B({name:"ContractsDeleteInput",fields:{path:{type:Q.String_unsecure(),isOptional:!1},clean:{type:Q.Boolean(),isOptional:!0}}}),D=B({name:"ContractsDeleteOutput",fields:{deleted:{type:Q.Boolean(),isOptional:!1},cleanedFiles:{type:Q.JSON(),isOptional:!1},errors:{type:Q.JSON(),isOptional:!1}}});I(j,L({meta:{key:"contracts.delete",version:"1.0.0",stability:"beta",owners:N,tags:R,description:"Delete a contract spec and optionally its artifacts.",goal:"Remove a spec file and clean generated handlers/tests.",context:"Contracts MCP server."},io:{input:Z,output:D},policy:{auth:"user"}}),async({path:$,clean:F})=>_.deleteSpec($,{clean:F}))}function yj(j="/api/mcp/contracts",_){return l({logger:d,path:j,serverName:"contractspec-contracts-mcp",ops:p(_),resources:n(_),prompts:c()})}export{yj as createContractsMcpHandler};
2
+ var a=Object.defineProperty;var t=(j)=>j;function r(j,_){this[j]=t.bind(null,_)}var Dj=(j,_)=>{for(var w in _)a(j,w,{get:_[w],enumerable:!0,configurable:!0,set:r.bind(_,w)})};var Pj=(j,_)=>()=>(j&&(_=j(j=0)),_);import{Logger as O,LogLevel as E}from"@contractspec/lib.logger";function f(){return"production"}var s=()=>new O({level:E.INFO,environment:f(),enableTracing:!0,enableTiming:!0,enableContext:!0,enableColors:!1}),d=s(),Vj=new O({level:E.WARN,environment:f(),enableTracing:!0,enableTiming:!0,enableContext:!0,enableColors:!1}),zj=new O({level:E.INFO,environment:f(),enableTracing:!0,enableTiming:!0,enableContext:!0,enableColors:!1});var m=["application/json","text/event-stream"];function e(j){return!j||j.includes("*/*")||j.includes("application/*")||m.some((_)=>j.includes(_))}function T(j){if(j.method!=="POST")return j;let _=j.headers.get("accept");if(!e(_))return j;let w=m.filter((Z)=>!_?.includes(Z));if(w.length===0)return j;let Y=new Headers(j.headers);return Y.set("accept",[_,...w].filter(Boolean).join(", ")),new Request(j,{headers:Y})}import{createMcpServer as jj}from"@contractspec/lib.contracts-runtime-server-mcp/provider-mcp";import{PresentationRegistry as _j}from"@contractspec/lib.contracts-spec/presentations";import{McpServer as wj}from"@modelcontextprotocol/sdk/server/mcp.js";import{WebStandardStreamableHTTPServerTransport as Qj}from"@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";import{randomUUID as Yj}from"crypto";import{Elysia as kj}from"elysia";var Fj={actor:"anonymous",decide:async()=>({effect:"allow"})};function h(j,_,w,Y){return new Response(JSON.stringify({jsonrpc:"2.0",error:{code:_,message:w,...Y?{data:Y}:{}},id:null}),{status:j,headers:{"content-type":"application/json"}})}function u({logger:j,serverName:_,ops:w,resources:Y,prompts:Z,presentations:D,stateful:$}){let F=new wj({name:_,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{},logging:{}}});j.info("Setting up MCP server..."),jj(F,w,Y,Z,{logger:j,toolCtx:()=>Fj,promptCtx:()=>({locale:"en"}),resourceCtx:()=>({locale:"en"}),presentations:new _j(D)});let J=new Qj({sessionIdGenerator:$?()=>Yj():void 0,enableJsonResponse:!0});return F.connect(J).then(()=>({server:F,transport:J}))}async function M(j){await Promise.allSettled([j.transport.close(),j.server.close()])}function Jj(j){return j instanceof Error?j.stack??j.message:String(j)}function l({logger:j,path:_,serverName:w,ops:Y,resources:Z,prompts:D,presentations:$,validateAuth:F,requiredAuthMethods:J}){j.info("Setting up MCP handler...",{requiredAuthMethods:J??[]});let H=process.env.CONTRACTSPEC_MCP_STATEFUL==="1",k=new Map;async function P(K){let X=await u({logger:j,path:_,serverName:w,ops:Y,resources:Z,prompts:D,presentations:$,stateful:!1});try{return await X.transport.handleRequest(T(K))}finally{await M(X)}}async function z(K){let X=k.get(K);if(!X)return;k.delete(K),await M(X)}async function o(K){let X=K.headers.get("mcp-session-id"),V,q=!1;if(X){let C=k.get(X);if(!C)return h(404,-32001,"Session not found");V=C}else V=await u({logger:j,path:_,serverName:w,ops:Y,resources:Z,prompts:D,presentations:$,stateful:!0}),q=!0;try{let C=await V.transport.handleRequest(T(K)),W=V.transport.sessionId;if(W&&!k.has(W))k.set(W,V);if(K.method==="DELETE"&&W)await z(W);else if(!W&&q)await M(V);return C}catch(C){if(q)await M(V);throw C}}return new kj({name:`mcp-${w}`}).all(_,async({request:K})=>{try{if(F){let X=await F(K);if(!X.valid)return h(401,-32002,"Authentication failed",X.reason)}if(H)return await o(K);return await P(K)}catch(X){return j.error("Error handling MCP request",{path:_,method:K.method,error:Jj(X)}),h(500,-32000,"Internal error")}})}import{definePrompt as Kj,defineResourceTemplate as A,PromptRegistry as Xj,ResourceRegistry as Zj}from"@contractspec/lib.contracts-spec";import U from"zod";var $j=["@contractspec"],b=["contracts","mcp"];function n(j){let _=new Zj;return _.register(A({meta:{uriTemplate:"contracts://list",title:"Contract specs list",description:"JSON list of all contract specs in the workspace.",mimeType:"application/json",tags:b},input:U.object({}),resolve:async()=>{let w=await j.listSpecs();return{uri:"contracts://list",mimeType:"application/json",data:JSON.stringify(w,null,2)}}})),_.register(A({meta:{uriTemplate:"contracts://spec/{path}",title:"Contract spec content",description:"Read a single contract spec file by path.",mimeType:"text/plain",tags:b},input:U.object({path:U.string()}),resolve:async({path:w})=>{let Y=await j.getSpec(w);if(!Y)return{uri:`contracts://spec/${encodeURIComponent(w)}`,mimeType:"text/plain",data:`Spec not found: ${w}`};return{uri:`contracts://spec/${encodeURIComponent(w)}`,mimeType:"text/plain",data:Y.content}}})),_.register(A({meta:{uriTemplate:"contracts://registry/manifest",title:"Remote registry manifest",description:"Contract registry manifest from the remote server.",mimeType:"application/json",tags:b},input:U.object({}),resolve:async()=>{let w=await j.fetchRegistryManifest();return{uri:"contracts://registry/manifest",mimeType:"application/json",data:JSON.stringify(w,null,2)}}})),_.register(A({meta:{uriTemplate:"adoption://catalog",title:"ContractSpec adoption catalog",description:"Bundled ContractSpec adoption catalog used by Connect and MCP.",mimeType:"application/json",tags:b},input:U.object({}),resolve:async()=>{let w=await j.searchAdoptionCatalog({query:"contractspec"});return{uri:"adoption://catalog",mimeType:"application/json",data:JSON.stringify(w,null,2)}}})),_.register(A({meta:{uriTemplate:"adoption://policy/{family}",title:"ContractSpec adoption policy",description:"Family-aware adoption recommendation and verdict policy.",mimeType:"application/json",tags:b},input:U.object({family:U.string()}),resolve:async({family:w})=>{let Y=await j.resolveAdoption({family:w,query:w});return{uri:`adoption://policy/${encodeURIComponent(w)}`,mimeType:"application/json",data:JSON.stringify(Y,null,2)}}})),_}function c(){let j=new Xj;return j.register(Kj({meta:{key:"contracts.editor",version:"1.0.0",title:"Contract editing guide",description:"Guide AI agents through reading, editing, and validating contracts.",tags:b,stability:"beta",owners:$j},args:[{name:"goal",description:"What the agent wants to achieve with the contract.",required:!1,schema:U.string().optional()}],input:U.object({goal:U.string().optional()}),render:async({goal:_})=>[{type:"text",text:["Contract editing workflow:","1. Use contracts.list to discover specs","2. Use contracts.get to read a spec","3. Edit content and call contracts.update","4. Run contracts.validate to verify changes","5. Run contracts.build to regenerate artifacts","6. Use adoption.resolve to prefer existing workspace or ContractSpec surfaces before inventing new ones",_?`Agent goal: ${_}`:""].filter(Boolean).join(`
3
+ `)},{type:"resource",uri:"contracts://list",title:"Available contracts"}]})),j}import{defineCommand as v,installOp as g}from"@contractspec/lib.contracts-spec";import{defineSchemaModel as G,ScalarTypeEnum as x}from"@contractspec/lib.schema";var y=["@contractspec"],S=["contracts","mcp","adoption"];function i(j,_){let w=G({name:"AdoptionCatalogSearchInput",fields:{query:{type:x.String_unsecure(),isOptional:!1},family:{type:x.String_unsecure(),isOptional:!0},platform:{type:x.String_unsecure(),isOptional:!0}}}),Y=G({name:"AdoptionCatalogSearchOutput",fields:{results:{type:x.JSON(),isOptional:!1}}});g(j,v({meta:{key:"adoption.catalog_search",version:"1.0.0",stability:"beta",owners:y,tags:S,description:"Search the local ContractSpec adoption catalog.",goal:"Find relevant ContractSpec reuse candidates for a query.",context:"Contracts MCP server."},io:{input:w,output:Y},policy:{auth:"anonymous"}}),async({family:J,platform:H,query:k})=>({results:await _.searchAdoptionCatalog({family:J,platform:H,query:k})}));let Z=G({name:"AdoptionResolveInput",fields:{family:{type:x.String_unsecure(),isOptional:!1},query:{type:x.String_unsecure(),isOptional:!1},paths:{type:x.JSON(),isOptional:!0},platform:{type:x.String_unsecure(),isOptional:!0},runtime:{type:x.String_unsecure(),isOptional:!0}}}),D=G({name:"AdoptionResolveOutput",fields:{resolution:{type:x.JSON(),isOptional:!1}}});g(j,v({meta:{key:"adoption.resolve",version:"1.0.0",stability:"beta",owners:y,tags:S,description:"Resolve the best adoption candidate for one family.",goal:"Provide one ordered recommendation that matches Connect.",context:"Contracts MCP server."},io:{input:Z,output:D},policy:{auth:"anonymous"}}),async({family:J,paths:H,platform:k,query:P,runtime:z})=>({resolution:await _.resolveAdoption({family:J,paths:Array.isArray(H)?H:void 0,platform:k,query:P,runtime:z})}));let $=G({name:"AdoptionSyncInput",fields:{}}),F=G({name:"AdoptionSyncOutput",fields:{catalogPath:{type:x.String_unsecure(),isOptional:!1},total:{type:x.Int_unsecure(),isOptional:!1}}});g(j,v({meta:{key:"adoption.sync",version:"1.0.0",stability:"beta",owners:y,tags:S,description:"Mirror the bundled ContractSpec adoption catalog locally.",goal:"Refresh the local adoption catalog used by Connect and MCP.",context:"Contracts MCP server."},io:{input:$,output:F},policy:{auth:"user"}}),async()=>_.syncAdoptionCatalog())}import{defineCommand as L,installOp as I,OperationSpecRegistry as xj}from"@contractspec/lib.contracts-spec";import{defineSchemaModel as B,ScalarTypeEnum as Q}from"@contractspec/lib.schema";var N=["@contractspec"],R=["contracts","mcp"];function p(j){let _=new xj,w=B({name:"ContractsListInput",fields:{pattern:{type:Q.String_unsecure(),isOptional:!0},type:{type:Q.String_unsecure(),isOptional:!0}}}),Y=B({name:"ContractsListOutput",fields:{specs:{type:Q.JSON(),isOptional:!1},total:{type:Q.Int_unsecure(),isOptional:!1}}});I(_,L({meta:{key:"contracts.list",version:"1.0.0",stability:"beta",owners:N,tags:R,description:"List contract specs in the workspace.",goal:"Discover available contracts by type, pattern, or owner.",context:"Contracts MCP server."},io:{input:w,output:Y},policy:{auth:"anonymous"}}),async({pattern:k,type:P})=>{let z=await j.listSpecs({pattern:k,type:P});return{specs:z,total:z.length}});let Z=B({name:"ContractsGetInput",fields:{path:{type:Q.String_unsecure(),isOptional:!1}}}),D=B({name:"ContractsGetOutput",fields:{content:{type:Q.String_unsecure(),isOptional:!1},info:{type:Q.JSON(),isOptional:!1}}});I(_,L({meta:{key:"contracts.get",version:"1.0.0",stability:"beta",owners:N,tags:R,description:"Read a single contract spec file.",goal:"Fetch spec content and parsed metadata.",context:"Contracts MCP server."},io:{input:Z,output:D},policy:{auth:"anonymous"}}),async({path:k})=>{let P=await j.getSpec(k);if(!P)throw Error(`Spec not found: ${k}`);return P});let $=B({name:"ContractsValidateInput",fields:{path:{type:Q.String_unsecure(),isOptional:!1}}}),F=B({name:"ContractsValidateOutput",fields:{valid:{type:Q.Boolean(),isOptional:!1},errors:{type:Q.JSON(),isOptional:!1},warnings:{type:Q.JSON(),isOptional:!1}}});I(_,L({meta:{key:"contracts.validate",version:"1.0.0",stability:"beta",owners:N,tags:R,description:"Validate a contract spec structure.",goal:"Check spec for structural or policy issues.",context:"Contracts MCP server."},io:{input:$,output:F},policy:{auth:"anonymous"}}),async({path:k})=>j.validateSpec(k));let J=B({name:"ContractsBuildInput",fields:{path:{type:Q.String_unsecure(),isOptional:!1},dryRun:{type:Q.Boolean(),isOptional:!0}}}),H=B({name:"ContractsBuildOutput",fields:{results:{type:Q.JSON(),isOptional:!1}}});return I(_,L({meta:{key:"contracts.build",version:"1.0.0",stability:"beta",owners:N,tags:R,description:"Generate implementation code from a contract spec.",goal:"Produce handler, component, or test skeletons.",context:"Contracts MCP server."},io:{input:J,output:H},policy:{auth:"user"}}),async({path:k,dryRun:P})=>j.buildSpec(k,{dryRun:P})),Bj(_,j),i(_,j),_}function Bj(j,_){let w=B({name:"ContractsUpdateInput",fields:{path:{type:Q.String_unsecure(),isOptional:!1},content:{type:Q.String_unsecure(),isOptional:!0},fields:{type:Q.JSON(),isOptional:!0}}}),Y=B({name:"ContractsUpdateOutput",fields:{updated:{type:Q.Boolean(),isOptional:!1},errors:{type:Q.JSON(),isOptional:!1},warnings:{type:Q.JSON(),isOptional:!1}}});I(j,L({meta:{key:"contracts.update",version:"1.0.0",stability:"beta",owners:N,tags:R,description:"Update an existing contract spec.",goal:"Modify spec content or individual fields with validation.",context:"Contracts MCP server."},io:{input:w,output:Y},policy:{auth:"user"}}),async({path:$,content:F,fields:J})=>_.updateSpec($,{content:F,fields:Array.isArray(J)?J:void 0}));let Z=B({name:"ContractsDeleteInput",fields:{path:{type:Q.String_unsecure(),isOptional:!1},clean:{type:Q.Boolean(),isOptional:!0}}}),D=B({name:"ContractsDeleteOutput",fields:{deleted:{type:Q.Boolean(),isOptional:!1},cleanedFiles:{type:Q.JSON(),isOptional:!1},errors:{type:Q.JSON(),isOptional:!1}}});I(j,L({meta:{key:"contracts.delete",version:"1.0.0",stability:"beta",owners:N,tags:R,description:"Delete a contract spec and optionally its artifacts.",goal:"Remove a spec file and clean generated handlers/tests.",context:"Contracts MCP server."},io:{input:Z,output:D},policy:{auth:"user"}}),async({path:$,clean:F})=>_.deleteSpec($,{clean:F}))}function nj(j="/api/mcp/contracts",_){return l({logger:d,path:j,serverName:"contractspec-contracts-mcp",ops:p(_),resources:n(_),prompts:c()})}export{nj as createContractsMcpHandler};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{defineCommand as F,installOp as H}from"@contractspec/lib.contracts-spec";import{defineSchemaModel as k,ScalarTypeEnum as j}from"@contractspec/lib.schema";var J=["@contractspec"],K=["contracts","mcp","adoption"];function b(x,z){let L=k({name:"AdoptionCatalogSearchInput",fields:{query:{type:j.String_unsecure(),isOptional:!1},family:{type:j.String_unsecure(),isOptional:!0},platform:{type:j.String_unsecure(),isOptional:!0}}}),P=k({name:"AdoptionCatalogSearchOutput",fields:{results:{type:j.JSON(),isOptional:!1}}});H(x,F({meta:{key:"adoption.catalog_search",version:"1.0.0",stability:"beta",owners:J,tags:K,description:"Search the local ContractSpec adoption catalog.",goal:"Find relevant ContractSpec reuse candidates for a query.",context:"Contracts MCP server."},io:{input:L,output:P},policy:{auth:"anonymous"}}),async({family:B,platform:w,query:D})=>({results:await z.searchAdoptionCatalog({family:B,platform:w,query:D})}));let Q=k({name:"AdoptionResolveInput",fields:{family:{type:j.String_unsecure(),isOptional:!1},query:{type:j.String_unsecure(),isOptional:!1},paths:{type:j.JSON(),isOptional:!0},platform:{type:j.String_unsecure(),isOptional:!0},runtime:{type:j.String_unsecure(),isOptional:!0}}}),U=k({name:"AdoptionResolveOutput",fields:{resolution:{type:j.JSON(),isOptional:!1}}});H(x,F({meta:{key:"adoption.resolve",version:"1.0.0",stability:"beta",owners:J,tags:K,description:"Resolve the best adoption candidate for one family.",goal:"Provide one ordered recommendation that matches Connect.",context:"Contracts MCP server."},io:{input:Q,output:U},policy:{auth:"anonymous"}}),async({family:B,paths:w,platform:D,query:Y,runtime:Z})=>({resolution:await z.resolveAdoption({family:B,paths:Array.isArray(w)?w:void 0,platform:D,query:Y,runtime:Z})}));let V=k({name:"AdoptionSyncInput",fields:{}}),X=k({name:"AdoptionSyncOutput",fields:{catalogPath:{type:j.String_unsecure(),isOptional:!1},total:{type:j.Int_unsecure(),isOptional:!1}}});H(x,F({meta:{key:"adoption.sync",version:"1.0.0",stability:"beta",owners:J,tags:K,description:"Mirror the bundled ContractSpec adoption catalog locally.",goal:"Refresh the local adoption catalog used by Connect and MCP.",context:"Contracts MCP server."},io:{input:V,output:X},policy:{auth:"user"}}),async()=>z.syncAdoptionCatalog())}export{b as registerAdoptionOps};
2
+ var _=Object.defineProperty;var $=(j)=>j;function b(j,k){this[j]=$.bind(null,k)}var A=(j,k)=>{for(var z in k)_(j,z,{get:k[z],enumerable:!0,configurable:!0,set:b.bind(k,z)})};var C=(j,k)=>()=>(j&&(k=j(j=0)),k);import{defineCommand as H,installOp as J}from"@contractspec/lib.contracts-spec";import{defineSchemaModel as x,ScalarTypeEnum as w}from"@contractspec/lib.schema";var K=["@contractspec"],L=["contracts","mcp","adoption"];function W(j,k){let z=x({name:"AdoptionCatalogSearchInput",fields:{query:{type:w.String_unsecure(),isOptional:!1},family:{type:w.String_unsecure(),isOptional:!0},platform:{type:w.String_unsecure(),isOptional:!0}}}),P=x({name:"AdoptionCatalogSearchOutput",fields:{results:{type:w.JSON(),isOptional:!1}}});J(j,H({meta:{key:"adoption.catalog_search",version:"1.0.0",stability:"beta",owners:K,tags:L,description:"Search the local ContractSpec adoption catalog.",goal:"Find relevant ContractSpec reuse candidates for a query.",context:"Contracts MCP server."},io:{input:z,output:P},policy:{auth:"anonymous"}}),async({family:D,platform:B,query:F})=>({results:await k.searchAdoptionCatalog({family:D,platform:B,query:F})}));let Q=x({name:"AdoptionResolveInput",fields:{family:{type:w.String_unsecure(),isOptional:!1},query:{type:w.String_unsecure(),isOptional:!1},paths:{type:w.JSON(),isOptional:!0},platform:{type:w.String_unsecure(),isOptional:!0},runtime:{type:w.String_unsecure(),isOptional:!0}}}),U=x({name:"AdoptionResolveOutput",fields:{resolution:{type:w.JSON(),isOptional:!1}}});J(j,H({meta:{key:"adoption.resolve",version:"1.0.0",stability:"beta",owners:K,tags:L,description:"Resolve the best adoption candidate for one family.",goal:"Provide one ordered recommendation that matches Connect.",context:"Contracts MCP server."},io:{input:Q,output:U},policy:{auth:"anonymous"}}),async({family:D,paths:B,platform:F,query:Y,runtime:Z})=>({resolution:await k.resolveAdoption({family:D,paths:Array.isArray(B)?B:void 0,platform:F,query:Y,runtime:Z})}));let V=x({name:"AdoptionSyncInput",fields:{}}),X=x({name:"AdoptionSyncOutput",fields:{catalogPath:{type:w.String_unsecure(),isOptional:!1},total:{type:w.Int_unsecure(),isOptional:!1}}});J(j,H({meta:{key:"adoption.sync",version:"1.0.0",stability:"beta",owners:K,tags:L,description:"Mirror the bundled ContractSpec adoption catalog locally.",goal:"Refresh the local adoption catalog used by Connect and MCP.",context:"Contracts MCP server."},io:{input:V,output:X},policy:{auth:"user"}}),async()=>k.syncAdoptionCatalog())}export{W as registerAdoptionOps};
@@ -1,3 +1,3 @@
1
1
  // @bun
2
- import{definePrompt as D,defineResourceTemplate as B,PromptRegistry as F,ResourceRegistry as H}from"@contractspec/lib.contracts-spec";import k from"zod";var I=["@contractspec"],x=["contracts","mcp"];function L(w){let q=new H;return q.register(B({meta:{uriTemplate:"contracts://list",title:"Contract specs list",description:"JSON list of all contract specs in the workspace.",mimeType:"application/json",tags:x},input:k.object({}),resolve:async()=>{let j=await w.listSpecs();return{uri:"contracts://list",mimeType:"application/json",data:JSON.stringify(j,null,2)}}})),q.register(B({meta:{uriTemplate:"contracts://spec/{path}",title:"Contract spec content",description:"Read a single contract spec file by path.",mimeType:"text/plain",tags:x},input:k.object({path:k.string()}),resolve:async({path:j})=>{let C=await w.getSpec(j);if(!C)return{uri:`contracts://spec/${encodeURIComponent(j)}`,mimeType:"text/plain",data:`Spec not found: ${j}`};return{uri:`contracts://spec/${encodeURIComponent(j)}`,mimeType:"text/plain",data:C.content}}})),q.register(B({meta:{uriTemplate:"contracts://registry/manifest",title:"Remote registry manifest",description:"Contract registry manifest from the remote server.",mimeType:"application/json",tags:x},input:k.object({}),resolve:async()=>{let j=await w.fetchRegistryManifest();return{uri:"contracts://registry/manifest",mimeType:"application/json",data:JSON.stringify(j,null,2)}}})),q.register(B({meta:{uriTemplate:"adoption://catalog",title:"ContractSpec adoption catalog",description:"Bundled ContractSpec adoption catalog used by Connect and MCP.",mimeType:"application/json",tags:x},input:k.object({}),resolve:async()=>{let j=await w.searchAdoptionCatalog({query:"contractspec"});return{uri:"adoption://catalog",mimeType:"application/json",data:JSON.stringify(j,null,2)}}})),q.register(B({meta:{uriTemplate:"adoption://policy/{family}",title:"ContractSpec adoption policy",description:"Family-aware adoption recommendation and verdict policy.",mimeType:"application/json",tags:x},input:k.object({family:k.string()}),resolve:async({family:j})=>{let C=await w.resolveAdoption({family:j,query:j});return{uri:`adoption://policy/${encodeURIComponent(j)}`,mimeType:"application/json",data:JSON.stringify(C,null,2)}}})),q}function M(){let w=new F;return w.register(D({meta:{key:"contracts.editor",version:"1.0.0",title:"Contract editing guide",description:"Guide AI agents through reading, editing, and validating contracts.",tags:x,stability:"beta",owners:I},args:[{name:"goal",description:"What the agent wants to achieve with the contract.",required:!1,schema:k.string().optional()}],input:k.object({goal:k.string().optional()}),render:async({goal:q})=>[{type:"text",text:["Contract editing workflow:","1. Use contracts.list to discover specs","2. Use contracts.get to read a spec","3. Edit content and call contracts.update","4. Run contracts.validate to verify changes","5. Run contracts.build to regenerate artifacts","6. Use adoption.resolve to prefer existing workspace or ContractSpec surfaces before inventing new ones",q?`Agent goal: ${q}`:""].filter(Boolean).join(`
3
- `)},{type:"resource",uri:"contracts://list",title:"Available contracts"}]})),w}export{L as buildContractsResources,M as buildContractsPrompts};
2
+ var D=Object.defineProperty;var F=(j)=>j;function H(j,k){this[j]=F.bind(null,k)}var M=(j,k)=>{for(var q in k)D(j,q,{get:k[q],enumerable:!0,configurable:!0,set:H.bind(k,q)})};var Q=(j,k)=>()=>(j&&(k=j(j=0)),k);import{definePrompt as I,defineResourceTemplate as B,PromptRegistry as J,ResourceRegistry as K}from"@contractspec/lib.contracts-spec";import w from"zod";var L=["@contractspec"],x=["contracts","mcp"];function Y(j){let k=new K;return k.register(B({meta:{uriTemplate:"contracts://list",title:"Contract specs list",description:"JSON list of all contract specs in the workspace.",mimeType:"application/json",tags:x},input:w.object({}),resolve:async()=>{let q=await j.listSpecs();return{uri:"contracts://list",mimeType:"application/json",data:JSON.stringify(q,null,2)}}})),k.register(B({meta:{uriTemplate:"contracts://spec/{path}",title:"Contract spec content",description:"Read a single contract spec file by path.",mimeType:"text/plain",tags:x},input:w.object({path:w.string()}),resolve:async({path:q})=>{let C=await j.getSpec(q);if(!C)return{uri:`contracts://spec/${encodeURIComponent(q)}`,mimeType:"text/plain",data:`Spec not found: ${q}`};return{uri:`contracts://spec/${encodeURIComponent(q)}`,mimeType:"text/plain",data:C.content}}})),k.register(B({meta:{uriTemplate:"contracts://registry/manifest",title:"Remote registry manifest",description:"Contract registry manifest from the remote server.",mimeType:"application/json",tags:x},input:w.object({}),resolve:async()=>{let q=await j.fetchRegistryManifest();return{uri:"contracts://registry/manifest",mimeType:"application/json",data:JSON.stringify(q,null,2)}}})),k.register(B({meta:{uriTemplate:"adoption://catalog",title:"ContractSpec adoption catalog",description:"Bundled ContractSpec adoption catalog used by Connect and MCP.",mimeType:"application/json",tags:x},input:w.object({}),resolve:async()=>{let q=await j.searchAdoptionCatalog({query:"contractspec"});return{uri:"adoption://catalog",mimeType:"application/json",data:JSON.stringify(q,null,2)}}})),k.register(B({meta:{uriTemplate:"adoption://policy/{family}",title:"ContractSpec adoption policy",description:"Family-aware adoption recommendation and verdict policy.",mimeType:"application/json",tags:x},input:w.object({family:w.string()}),resolve:async({family:q})=>{let C=await j.resolveAdoption({family:q,query:q});return{uri:`adoption://policy/${encodeURIComponent(q)}`,mimeType:"application/json",data:JSON.stringify(C,null,2)}}})),k}function Z(){let j=new J;return j.register(I({meta:{key:"contracts.editor",version:"1.0.0",title:"Contract editing guide",description:"Guide AI agents through reading, editing, and validating contracts.",tags:x,stability:"beta",owners:L},args:[{name:"goal",description:"What the agent wants to achieve with the contract.",required:!1,schema:w.string().optional()}],input:w.object({goal:w.string().optional()}),render:async({goal:k})=>[{type:"text",text:["Contract editing workflow:","1. Use contracts.list to discover specs","2. Use contracts.get to read a spec","3. Edit content and call contracts.update","4. Run contracts.validate to verify changes","5. Run contracts.build to regenerate artifacts","6. Use adoption.resolve to prefer existing workspace or ContractSpec surfaces before inventing new ones",k?`Agent goal: ${k}`:""].filter(Boolean).join(`
3
+ `)},{type:"resource",uri:"contracts://list",title:"Available contracts"}]})),j}export{Y as buildContractsResources,Z as buildContractsPrompts};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{defineCommand as b,installOp as q}from"@contractspec/lib.contracts-spec";import{defineSchemaModel as X,ScalarTypeEnum as z}from"@contractspec/lib.schema";var C=["@contractspec"],I=["contracts","mcp","adoption"];function N(w,k){let B=X({name:"AdoptionCatalogSearchInput",fields:{query:{type:z.String_unsecure(),isOptional:!1},family:{type:z.String_unsecure(),isOptional:!0},platform:{type:z.String_unsecure(),isOptional:!0}}}),D=X({name:"AdoptionCatalogSearchOutput",fields:{results:{type:z.JSON(),isOptional:!1}}});q(w,b({meta:{key:"adoption.catalog_search",version:"1.0.0",stability:"beta",owners:C,tags:I,description:"Search the local ContractSpec adoption catalog.",goal:"Find relevant ContractSpec reuse candidates for a query.",context:"Contracts MCP server."},io:{input:B,output:D},policy:{auth:"anonymous"}}),async({family:H,platform:Q,query:x})=>({results:await k.searchAdoptionCatalog({family:H,platform:Q,query:x})}));let L=X({name:"AdoptionResolveInput",fields:{family:{type:z.String_unsecure(),isOptional:!1},query:{type:z.String_unsecure(),isOptional:!1},paths:{type:z.JSON(),isOptional:!0},platform:{type:z.String_unsecure(),isOptional:!0},runtime:{type:z.String_unsecure(),isOptional:!0}}}),U=X({name:"AdoptionResolveOutput",fields:{resolution:{type:z.JSON(),isOptional:!1}}});q(w,b({meta:{key:"adoption.resolve",version:"1.0.0",stability:"beta",owners:C,tags:I,description:"Resolve the best adoption candidate for one family.",goal:"Provide one ordered recommendation that matches Connect.",context:"Contracts MCP server."},io:{input:L,output:U},policy:{auth:"anonymous"}}),async({family:H,paths:Q,platform:x,query:J,runtime:V})=>({resolution:await k.resolveAdoption({family:H,paths:Array.isArray(Q)?Q:void 0,platform:x,query:J,runtime:V})}));let K=X({name:"AdoptionSyncInput",fields:{}}),P=X({name:"AdoptionSyncOutput",fields:{catalogPath:{type:z.String_unsecure(),isOptional:!1},total:{type:z.Int_unsecure(),isOptional:!1}}});q(w,b({meta:{key:"adoption.sync",version:"1.0.0",stability:"beta",owners:C,tags:I,description:"Mirror the bundled ContractSpec adoption catalog locally.",goal:"Refresh the local adoption catalog used by Connect and MCP.",context:"Contracts MCP server."},io:{input:K,output:P},policy:{auth:"user"}}),async()=>k.syncAdoptionCatalog())}import{defineCommand as Y,installOp as Z,OperationSpecRegistry as W}from"@contractspec/lib.contracts-spec";import{defineSchemaModel as F,ScalarTypeEnum as j}from"@contractspec/lib.schema";var _=["@contractspec"],$=["contracts","mcp"];function h(w){let k=new W,B=F({name:"ContractsListInput",fields:{pattern:{type:j.String_unsecure(),isOptional:!0},type:{type:j.String_unsecure(),isOptional:!0}}}),D=F({name:"ContractsListOutput",fields:{specs:{type:j.JSON(),isOptional:!1},total:{type:j.Int_unsecure(),isOptional:!1}}});Z(k,Y({meta:{key:"contracts.list",version:"1.0.0",stability:"beta",owners:_,tags:$,description:"List contract specs in the workspace.",goal:"Discover available contracts by type, pattern, or owner.",context:"Contracts MCP server."},io:{input:B,output:D},policy:{auth:"anonymous"}}),async({pattern:x,type:J})=>{let V=await w.listSpecs({pattern:x,type:J});return{specs:V,total:V.length}});let L=F({name:"ContractsGetInput",fields:{path:{type:j.String_unsecure(),isOptional:!1}}}),U=F({name:"ContractsGetOutput",fields:{content:{type:j.String_unsecure(),isOptional:!1},info:{type:j.JSON(),isOptional:!1}}});Z(k,Y({meta:{key:"contracts.get",version:"1.0.0",stability:"beta",owners:_,tags:$,description:"Read a single contract spec file.",goal:"Fetch spec content and parsed metadata.",context:"Contracts MCP server."},io:{input:L,output:U},policy:{auth:"anonymous"}}),async({path:x})=>{let J=await w.getSpec(x);if(!J)throw Error(`Spec not found: ${x}`);return J});let K=F({name:"ContractsValidateInput",fields:{path:{type:j.String_unsecure(),isOptional:!1}}}),P=F({name:"ContractsValidateOutput",fields:{valid:{type:j.Boolean(),isOptional:!1},errors:{type:j.JSON(),isOptional:!1},warnings:{type:j.JSON(),isOptional:!1}}});Z(k,Y({meta:{key:"contracts.validate",version:"1.0.0",stability:"beta",owners:_,tags:$,description:"Validate a contract spec structure.",goal:"Check spec for structural or policy issues.",context:"Contracts MCP server."},io:{input:K,output:P},policy:{auth:"anonymous"}}),async({path:x})=>w.validateSpec(x));let H=F({name:"ContractsBuildInput",fields:{path:{type:j.String_unsecure(),isOptional:!1},dryRun:{type:j.Boolean(),isOptional:!0}}}),Q=F({name:"ContractsBuildOutput",fields:{results:{type:j.JSON(),isOptional:!1}}});return Z(k,Y({meta:{key:"contracts.build",version:"1.0.0",stability:"beta",owners:_,tags:$,description:"Generate implementation code from a contract spec.",goal:"Produce handler, component, or test skeletons.",context:"Contracts MCP server."},io:{input:H,output:Q},policy:{auth:"user"}}),async({path:x,dryRun:J})=>w.buildSpec(x,{dryRun:J})),A(k,w),N(k,w),k}function A(w,k){let B=F({name:"ContractsUpdateInput",fields:{path:{type:j.String_unsecure(),isOptional:!1},content:{type:j.String_unsecure(),isOptional:!0},fields:{type:j.JSON(),isOptional:!0}}}),D=F({name:"ContractsUpdateOutput",fields:{updated:{type:j.Boolean(),isOptional:!1},errors:{type:j.JSON(),isOptional:!1},warnings:{type:j.JSON(),isOptional:!1}}});Z(w,Y({meta:{key:"contracts.update",version:"1.0.0",stability:"beta",owners:_,tags:$,description:"Update an existing contract spec.",goal:"Modify spec content or individual fields with validation.",context:"Contracts MCP server."},io:{input:B,output:D},policy:{auth:"user"}}),async({path:K,content:P,fields:H})=>k.updateSpec(K,{content:P,fields:Array.isArray(H)?H:void 0}));let L=F({name:"ContractsDeleteInput",fields:{path:{type:j.String_unsecure(),isOptional:!1},clean:{type:j.Boolean(),isOptional:!0}}}),U=F({name:"ContractsDeleteOutput",fields:{deleted:{type:j.Boolean(),isOptional:!1},cleanedFiles:{type:j.JSON(),isOptional:!1},errors:{type:j.JSON(),isOptional:!1}}});Z(w,Y({meta:{key:"contracts.delete",version:"1.0.0",stability:"beta",owners:_,tags:$,description:"Delete a contract spec and optionally its artifacts.",goal:"Remove a spec file and clean generated handlers/tests.",context:"Contracts MCP server."},io:{input:L,output:U},policy:{auth:"user"}}),async({path:K,clean:P})=>k.deleteSpec(K,{clean:P}))}export{h as buildContractsOps};
2
+ var W=Object.defineProperty;var A=(k)=>k;function G(k,w){this[k]=A.bind(null,w)}var M=(k,w)=>{for(var H in w)W(k,H,{get:w[H],enumerable:!0,configurable:!0,set:G.bind(w,H)})};var v=(k,w)=>()=>(k&&(w=k(k=0)),w);import{defineCommand as b,installOp as q}from"@contractspec/lib.contracts-spec";import{defineSchemaModel as Y,ScalarTypeEnum as z}from"@contractspec/lib.schema";var C=["@contractspec"],I=["contracts","mcp","adoption"];function N(k,w){let H=Y({name:"AdoptionCatalogSearchInput",fields:{query:{type:z.String_unsecure(),isOptional:!1},family:{type:z.String_unsecure(),isOptional:!0},platform:{type:z.String_unsecure(),isOptional:!0}}}),D=Y({name:"AdoptionCatalogSearchOutput",fields:{results:{type:z.JSON(),isOptional:!1}}});q(k,b({meta:{key:"adoption.catalog_search",version:"1.0.0",stability:"beta",owners:C,tags:I,description:"Search the local ContractSpec adoption catalog.",goal:"Find relevant ContractSpec reuse candidates for a query.",context:"Contracts MCP server."},io:{input:H,output:D},policy:{auth:"anonymous"}}),async({family:J,platform:X,query:x})=>({results:await w.searchAdoptionCatalog({family:J,platform:X,query:x})}));let L=Y({name:"AdoptionResolveInput",fields:{family:{type:z.String_unsecure(),isOptional:!1},query:{type:z.String_unsecure(),isOptional:!1},paths:{type:z.JSON(),isOptional:!0},platform:{type:z.String_unsecure(),isOptional:!0},runtime:{type:z.String_unsecure(),isOptional:!0}}}),U=Y({name:"AdoptionResolveOutput",fields:{resolution:{type:z.JSON(),isOptional:!1}}});q(k,b({meta:{key:"adoption.resolve",version:"1.0.0",stability:"beta",owners:C,tags:I,description:"Resolve the best adoption candidate for one family.",goal:"Provide one ordered recommendation that matches Connect.",context:"Contracts MCP server."},io:{input:L,output:U},policy:{auth:"anonymous"}}),async({family:J,paths:X,platform:x,query:K,runtime:V})=>({resolution:await w.resolveAdoption({family:J,paths:Array.isArray(X)?X:void 0,platform:x,query:K,runtime:V})}));let P=Y({name:"AdoptionSyncInput",fields:{}}),Q=Y({name:"AdoptionSyncOutput",fields:{catalogPath:{type:z.String_unsecure(),isOptional:!1},total:{type:z.Int_unsecure(),isOptional:!1}}});q(k,b({meta:{key:"adoption.sync",version:"1.0.0",stability:"beta",owners:C,tags:I,description:"Mirror the bundled ContractSpec adoption catalog locally.",goal:"Refresh the local adoption catalog used by Connect and MCP.",context:"Contracts MCP server."},io:{input:P,output:Q},policy:{auth:"user"}}),async()=>w.syncAdoptionCatalog())}import{defineCommand as Z,installOp as _,OperationSpecRegistry as R}from"@contractspec/lib.contracts-spec";import{defineSchemaModel as F,ScalarTypeEnum as j}from"@contractspec/lib.schema";var $=["@contractspec"],B=["contracts","mcp"];function y(k){let w=new R,H=F({name:"ContractsListInput",fields:{pattern:{type:j.String_unsecure(),isOptional:!0},type:{type:j.String_unsecure(),isOptional:!0}}}),D=F({name:"ContractsListOutput",fields:{specs:{type:j.JSON(),isOptional:!1},total:{type:j.Int_unsecure(),isOptional:!1}}});_(w,Z({meta:{key:"contracts.list",version:"1.0.0",stability:"beta",owners:$,tags:B,description:"List contract specs in the workspace.",goal:"Discover available contracts by type, pattern, or owner.",context:"Contracts MCP server."},io:{input:H,output:D},policy:{auth:"anonymous"}}),async({pattern:x,type:K})=>{let V=await k.listSpecs({pattern:x,type:K});return{specs:V,total:V.length}});let L=F({name:"ContractsGetInput",fields:{path:{type:j.String_unsecure(),isOptional:!1}}}),U=F({name:"ContractsGetOutput",fields:{content:{type:j.String_unsecure(),isOptional:!1},info:{type:j.JSON(),isOptional:!1}}});_(w,Z({meta:{key:"contracts.get",version:"1.0.0",stability:"beta",owners:$,tags:B,description:"Read a single contract spec file.",goal:"Fetch spec content and parsed metadata.",context:"Contracts MCP server."},io:{input:L,output:U},policy:{auth:"anonymous"}}),async({path:x})=>{let K=await k.getSpec(x);if(!K)throw Error(`Spec not found: ${x}`);return K});let P=F({name:"ContractsValidateInput",fields:{path:{type:j.String_unsecure(),isOptional:!1}}}),Q=F({name:"ContractsValidateOutput",fields:{valid:{type:j.Boolean(),isOptional:!1},errors:{type:j.JSON(),isOptional:!1},warnings:{type:j.JSON(),isOptional:!1}}});_(w,Z({meta:{key:"contracts.validate",version:"1.0.0",stability:"beta",owners:$,tags:B,description:"Validate a contract spec structure.",goal:"Check spec for structural or policy issues.",context:"Contracts MCP server."},io:{input:P,output:Q},policy:{auth:"anonymous"}}),async({path:x})=>k.validateSpec(x));let J=F({name:"ContractsBuildInput",fields:{path:{type:j.String_unsecure(),isOptional:!1},dryRun:{type:j.Boolean(),isOptional:!0}}}),X=F({name:"ContractsBuildOutput",fields:{results:{type:j.JSON(),isOptional:!1}}});return _(w,Z({meta:{key:"contracts.build",version:"1.0.0",stability:"beta",owners:$,tags:B,description:"Generate implementation code from a contract spec.",goal:"Produce handler, component, or test skeletons.",context:"Contracts MCP server."},io:{input:J,output:X},policy:{auth:"user"}}),async({path:x,dryRun:K})=>k.buildSpec(x,{dryRun:K})),g(w,k),N(w,k),w}function g(k,w){let H=F({name:"ContractsUpdateInput",fields:{path:{type:j.String_unsecure(),isOptional:!1},content:{type:j.String_unsecure(),isOptional:!0},fields:{type:j.JSON(),isOptional:!0}}}),D=F({name:"ContractsUpdateOutput",fields:{updated:{type:j.Boolean(),isOptional:!1},errors:{type:j.JSON(),isOptional:!1},warnings:{type:j.JSON(),isOptional:!1}}});_(k,Z({meta:{key:"contracts.update",version:"1.0.0",stability:"beta",owners:$,tags:B,description:"Update an existing contract spec.",goal:"Modify spec content or individual fields with validation.",context:"Contracts MCP server."},io:{input:H,output:D},policy:{auth:"user"}}),async({path:P,content:Q,fields:J})=>w.updateSpec(P,{content:Q,fields:Array.isArray(J)?J:void 0}));let L=F({name:"ContractsDeleteInput",fields:{path:{type:j.String_unsecure(),isOptional:!1},clean:{type:j.Boolean(),isOptional:!0}}}),U=F({name:"ContractsDeleteOutput",fields:{deleted:{type:j.Boolean(),isOptional:!1},cleanedFiles:{type:j.JSON(),isOptional:!1},errors:{type:j.JSON(),isOptional:!1}}});_(k,Z({meta:{key:"contracts.delete",version:"1.0.0",stability:"beta",owners:$,tags:B,description:"Delete a contract spec and optionally its artifacts.",goal:"Remove a spec file and clean generated handlers/tests.",context:"Contracts MCP server."},io:{input:L,output:U},policy:{auth:"user"}}),async({path:P,clean:Q})=>w.deleteSpec(P,{clean:Q}))}export{y as buildContractsOps};
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{defaultDocRegistry as p}from"@contractspec/lib.contracts-spec/docs";var k=20,y=100;function $(j){return j?.trim().toLowerCase()??""}function P(j){let w=decodeURIComponent(j).trim();if(!w)return"/";return w.startsWith("/")?w:`/${w}`}function d(j){return(Array.isArray(j)?j:j?[j]:[]).map((B)=>$(B)).filter(Boolean)}function u(j){if(!j||Number.isNaN(j))return k;return Math.min(Math.max(j,1),y)}function l(j){if(!j||Number.isNaN(j))return 0;return Math.max(j,0)}function _({block:j,route:w}){return{id:j.id,title:j.title,summary:j.summary??"",route:w,visibility:j.visibility??"public",kind:j.kind??"reference",version:j.version??"1.0.0",tags:j.tags??[]}}function n(j,w){if(!w)return 1;let B=w.split(/\s+/).filter(Boolean),H=$(j.block.title),N=$(j.block.id),J=$(j.block.summary),Z=$(j.block.body),W=$(j.route),Y=(j.block.tags??[]).map((G)=>$(G)),K=[H,N,J,Z,W,...Y].join(" ");if(B.some((G)=>!K.includes(G)))return 0;let C=0;for(let G of B){if(N.includes(G))C+=8;if(H.includes(G))C+=7;if(Y.some((F)=>F.includes(G)))C+=5;if(J.includes(G))C+=4;if(W.includes(G))C+=3;if(Z.includes(G))C+=2}return C}function bj(j,w){let B=$(typeof w.query==="string"?w.query:void 0),H=d(w.tag),N=$(typeof w.visibility==="string"?w.visibility:void 0),J=$(typeof w.kind==="string"?w.kind:void 0),Z=u(typeof w.limit==="number"?w.limit:void 0),W=l(typeof w.offset==="number"?w.offset:void 0),Y=j.map((G)=>({doc:_(G),score:n(G,B)})).filter(({doc:G,score:F})=>{let b=B?F>0:!0,T=H.length?H.every((v)=>G.tags.some((m)=>$(m).includes(v))):!0,h=N?$(G.visibility)===N:!0,f=J?$(G.kind)===J:!0;return b&&T&&h&&f}).sort((G,F)=>{if(F.score!==G.score)return F.score-G.score;return G.doc.title.localeCompare(F.doc.title)}),K=Y.slice(W,W+Z).map(({doc:G})=>G),C=W+K.length<Y.length?W+K.length:void 0;return{docs:K,items:K,total:Y.length,...C!=null?{nextOffset:C}:{}}}function Tj(j){let w=decodeURIComponent(j),B=p.get(w);if(!B)return;return{doc:_(B),content:String(B.block.body??"")}}function hj(j,w){let B=P(w),H=j.find((N)=>P(N.route)===B);if(!H)return;return{doc:_(H),content:String(H.block.body??"")}}function fj(j){let w=new Map,B=new Map,H=new Map;for(let J of j){let Z=J.block.kind??"reference",W=J.block.visibility??"public";B.set(Z,(B.get(Z)??0)+1),H.set(W,(H.get(W)??0)+1);for(let Y of J.block.tags??[])w.set(Y,(w.get(Y)??0)+1)}let N=(J,Z)=>[...J.entries()].sort((W,Y)=>Y[1]-W[1]||W[0].localeCompare(Y[0])).map(([W,Y])=>({[Z]:W,count:Y}));return{totalDocs:j.length,tags:N(w,"tag"),kinds:N(B,"kind"),visibilities:N(H,"visibility")}}import{EventRegistry as g,OperationSpecRegistry as c}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as i}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as a,ContractReferenceQuery as o,DocsGenerateCommand as t,DocsGeneratedEvent as s,DocsIndexDataView as r,DocsIndexQuery as e,DocsLayoutPresentation as jj,DocsPublishCommand as wj,DocsPublishedEvent as Bj,DocsReferencePagePresentation as Gj,DocsSearchForm as Hj,ExampleCatalogDataView as Jj}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as Nj}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as Wj}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as Yj,serializeEventSpec as Zj,serializeFormSpec as $j,serializeOperationSpec as Cj,serializePresentationSpec as Fj}from"@contractspec/lib.contracts-spec/serialization";var Q=null;function Kj(){let j=new c;return j.register(e).register(o).register(t).register(wj),j}function Qj(){if(!Q)Q=Kj();return Q}function M(j,w){return Qj().get(j,w)}var U=null;function Uj(){let j=new g;return j.register(s).register(Bj),j}function Vj(){if(!U)U=Uj();return U}function O(j,w){return Vj().get(j,w)}var V=null;function Xj(){let j=new Wj;return j.register(jj).register(Gj),j}function Aj(){if(!V)V=Xj();return V}function L(j,w){return Aj().get(j,w)}var X=null;function _j(){let j=new i;return j.register(r).register(a).register(Jj),j}function Mj(){if(!X)X=_j();return X}function R(j,w){return Mj().get(j,w)}var A=null;function Oj(){let j=new Nj;return j.register(Hj),j}function Lj(){if(!A)A=Oj();return A}function E(j,w){return Lj().get(j)}function D(j,w){let B=M(j,w);return Cj(B)??void 0}function I(j,w){let B=O(j,w);return Zj(B)??void 0}function q(j,w){let B=L(j,w);return Fj(B)??void 0}function S(j,w){let B=R(j,w);return Yj(B)??void 0}function x(j,w){let B=E(j,w);return $j(B)??void 0}function Rj(){Q=null}function Ej(){U=null}function Pj(){V=null}function Dj(){X=null}function Ij(){A=null}function lj(){Rj(),Ej(),Pj(),Dj(),Ij()}import{defaultDocRegistry as qj}from"@contractspec/lib.contracts-spec/docs";function Sj(j){return j?.trim().toLowerCase()??""}function xj(j){for(let w of j??[]){let B=qj.get(w);if(B)return B.route}return}function z(j,w,B,H){let N=j.meta.title??j.meta.key,J=xj(j.meta.docId),Z=j.meta.description;return{key:j.meta.key,version:j.meta.version,type:w,title:N,description:Z,markdown:[`# ${N}`,`- Key: ${j.meta.key}`,`- Type: ${w}`,`- Version: ${j.meta.version}`,J?`- Docs route: ${J}`:"",Z?`
2
+ var p=Object.defineProperty;var k=(j)=>j;function y(j,w){this[j]=k.bind(null,w)}var hj=(j,w)=>{for(var B in w)p(j,B,{get:w[B],enumerable:!0,configurable:!0,set:y.bind(w,B)})};var fj=(j,w)=>()=>(j&&(w=j(j=0)),w);import{defaultDocRegistry as d}from"@contractspec/lib.contracts-spec/docs";var u=20,l=100;function $(j){return j?.trim().toLowerCase()??""}function P(j){let w=decodeURIComponent(j).trim();if(!w)return"/";return w.startsWith("/")?w:`/${w}`}function n(j){return(Array.isArray(j)?j:j?[j]:[]).map((B)=>$(B)).filter(Boolean)}function g(j){if(!j||Number.isNaN(j))return u;return Math.min(Math.max(j,1),l)}function c(j){if(!j||Number.isNaN(j))return 0;return Math.max(j,0)}function _({block:j,route:w}){return{id:j.id,title:j.title,summary:j.summary??"",route:w,visibility:j.visibility??"public",kind:j.kind??"reference",version:j.version??"1.0.0",tags:j.tags??[]}}function i(j,w){if(!w)return 1;let B=w.split(/\s+/).filter(Boolean),H=$(j.block.title),N=$(j.block.id),J=$(j.block.summary),Z=$(j.block.body),W=$(j.route),Y=(j.block.tags??[]).map((G)=>$(G)),K=[H,N,J,Z,W,...Y].join(" ");if(B.some((G)=>!K.includes(G)))return 0;let C=0;for(let G of B){if(N.includes(G))C+=8;if(H.includes(G))C+=7;if(Y.some((F)=>F.includes(G)))C+=5;if(J.includes(G))C+=4;if(W.includes(G))C+=3;if(Z.includes(G))C+=2}return C}function pj(j,w){let B=$(typeof w.query==="string"?w.query:void 0),H=n(w.tag),N=$(typeof w.visibility==="string"?w.visibility:void 0),J=$(typeof w.kind==="string"?w.kind:void 0),Z=g(typeof w.limit==="number"?w.limit:void 0),W=c(typeof w.offset==="number"?w.offset:void 0),Y=j.map((G)=>({doc:_(G),score:i(G,B)})).filter(({doc:G,score:F})=>{let b=B?F>0:!0,T=H.length?H.every((v)=>G.tags.some((m)=>$(m).includes(v))):!0,h=N?$(G.visibility)===N:!0,f=J?$(G.kind)===J:!0;return b&&T&&h&&f}).sort((G,F)=>{if(F.score!==G.score)return F.score-G.score;return G.doc.title.localeCompare(F.doc.title)}),K=Y.slice(W,W+Z).map(({doc:G})=>G),C=W+K.length<Y.length?W+K.length:void 0;return{docs:K,items:K,total:Y.length,...C!=null?{nextOffset:C}:{}}}function kj(j){let w=decodeURIComponent(j),B=d.get(w);if(!B)return;return{doc:_(B),content:String(B.block.body??"")}}function yj(j,w){let B=P(w),H=j.find((N)=>P(N.route)===B);if(!H)return;return{doc:_(H),content:String(H.block.body??"")}}function dj(j){let w=new Map,B=new Map,H=new Map;for(let J of j){let Z=J.block.kind??"reference",W=J.block.visibility??"public";B.set(Z,(B.get(Z)??0)+1),H.set(W,(H.get(W)??0)+1);for(let Y of J.block.tags??[])w.set(Y,(w.get(Y)??0)+1)}let N=(J,Z)=>[...J.entries()].sort((W,Y)=>Y[1]-W[1]||W[0].localeCompare(Y[0])).map(([W,Y])=>({[Z]:W,count:Y}));return{totalDocs:j.length,tags:N(w,"tag"),kinds:N(B,"kind"),visibilities:N(H,"visibility")}}import{EventRegistry as a,OperationSpecRegistry as o}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as t}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as s,ContractReferenceQuery as r,DocsGenerateCommand as e,DocsGeneratedEvent as jj,DocsIndexDataView as wj,DocsIndexQuery as Bj,DocsLayoutPresentation as Gj,DocsPublishCommand as Hj,DocsPublishedEvent as Jj,DocsReferencePagePresentation as Nj,DocsSearchForm as Wj,ExampleCatalogDataView as Yj}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as Zj}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as $j}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as Cj,serializeEventSpec as Fj,serializeFormSpec as Kj,serializeOperationSpec as Qj,serializePresentationSpec as Uj}from"@contractspec/lib.contracts-spec/serialization";var Q=null;function Vj(){let j=new o;return j.register(Bj).register(r).register(e).register(Hj),j}function Xj(){if(!Q)Q=Vj();return Q}function M(j,w){return Xj().get(j,w)}var U=null;function Aj(){let j=new a;return j.register(jj).register(Jj),j}function _j(){if(!U)U=Aj();return U}function O(j,w){return _j().get(j,w)}var V=null;function Mj(){let j=new $j;return j.register(Gj).register(Nj),j}function Oj(){if(!V)V=Mj();return V}function L(j,w){return Oj().get(j,w)}var X=null;function Lj(){let j=new t;return j.register(wj).register(s).register(Yj),j}function Rj(){if(!X)X=Lj();return X}function R(j,w){return Rj().get(j,w)}var A=null;function Ej(){let j=new Zj;return j.register(Wj),j}function Pj(){if(!A)A=Ej();return A}function E(j,w){return Pj().get(j)}function D(j,w){let B=M(j,w);return Qj(B)??void 0}function I(j,w){let B=O(j,w);return Fj(B)??void 0}function q(j,w){let B=L(j,w);return Uj(B)??void 0}function S(j,w){let B=R(j,w);return Cj(B)??void 0}function x(j,w){let B=E(j,w);return Kj(B)??void 0}function Dj(){Q=null}function Ij(){U=null}function qj(){V=null}function Sj(){X=null}function xj(){A=null}function oj(){Dj(),Ij(),qj(),Sj(),xj()}import{defaultDocRegistry as zj}from"@contractspec/lib.contracts-spec/docs";function bj(j){return j?.trim().toLowerCase()??""}function Tj(j){for(let w of j??[]){let B=zj.get(w);if(B)return B.route}return}function z(j,w,B,H){let N=j.meta.title??j.meta.key,J=Tj(j.meta.docId),Z=j.meta.description;return{key:j.meta.key,version:j.meta.version,type:w,title:N,description:Z,markdown:[`# ${N}`,`- Key: ${j.meta.key}`,`- Type: ${w}`,`- Version: ${j.meta.version}`,J?`- Docs route: ${J}`:"",Z?`
3
3
  ${Z}`:""].filter(Boolean).join(`
4
- `),...J?{route:J}:{},...B?{schema:B}:{},...H?{policy:H}:{},tags:j.meta.tags??[],owners:j.meta.owners??[],stability:j.meta.stability}}function ij(j){let w=j.includeSchema??!1,B=Sj(j.type),H=M(j.key,j.version);if(H&&(!B||B==="operation"||B===H.meta.kind))return{reference:z(H,H.meta.kind,w?D(j.key,j.version):void 0,H.policy)};let N=[{type:"data-view",spec:R(j.key,j.version),schema:w?S(j.key,j.version):void 0},{type:"form",spec:E(j.key,j.version),schema:w?x(j.key,j.version):void 0},{type:"presentation",spec:L(j.key,j.version),schema:w?q(j.key,j.version):void 0},{type:"event",spec:O(j.key,j.version),schema:w?I(j.key,j.version):void 0}];for(let J of N)if(J.spec&&(!B||B===J.type))return{reference:z(J.spec,J.type,J.schema)};throw Error(`Contract reference not found: ${j.key}`)}export{_ as toDocSummary,bj as searchDocs,ij as resolveContractReference,fj as listDocFacets,hj as getDocByRoute,Tj as getDocById};
4
+ `),...J?{route:J}:{},...B?{schema:B}:{},...H?{policy:H}:{},tags:j.meta.tags??[],owners:j.meta.owners??[],stability:j.meta.stability}}function ej(j){let w=j.includeSchema??!1,B=bj(j.type),H=M(j.key,j.version);if(H&&(!B||B==="operation"||B===H.meta.kind))return{reference:z(H,H.meta.kind,w?D(j.key,j.version):void 0,H.policy)};let N=[{type:"data-view",spec:R(j.key,j.version),schema:w?S(j.key,j.version):void 0},{type:"form",spec:E(j.key,j.version),schema:w?x(j.key,j.version):void 0},{type:"presentation",spec:L(j.key,j.version),schema:w?q(j.key,j.version):void 0},{type:"event",spec:O(j.key,j.version),schema:w?I(j.key,j.version):void 0}];for(let J of N)if(J.spec&&(!B||B===J.type))return{reference:z(J.spec,J.type,J.schema)};throw Error(`Contract reference not found: ${j.key}`)}export{_ as toDocSummary,pj as searchDocs,ej as resolveContractReference,dj as listDocFacets,yj as getDocByRoute,kj as getDocById};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{defaultDocRegistry as P}from"@contractspec/lib.contracts-spec/docs";var R=20,S=100;function N(j){return j?.trim().toLowerCase()??""}function U(j){let w=decodeURIComponent(j).trim();if(!w)return"/";return w.startsWith("/")?w:`/${w}`}function E(j){return(Array.isArray(j)?j:j?[j]:[]).map((C)=>N(C)).filter(Boolean)}function L(j){if(!j||Number.isNaN(j))return R;return Math.min(Math.max(j,1),S)}function I(j){if(!j||Number.isNaN(j))return 0;return Math.max(j,0)}function Q({block:j,route:w}){return{id:j.id,title:j.title,summary:j.summary??"",route:w,visibility:j.visibility??"public",kind:j.kind??"reference",version:j.version??"1.0.0",tags:j.tags??[]}}function p(j,w){if(!w)return 1;let C=w.split(/\s+/).filter(Boolean),J=N(j.block.title),W=N(j.block.id),Y=N(j.block.summary),$=N(j.block.body),G=N(j.route),H=(j.block.tags??[]).map((B)=>N(B)),K=[J,W,Y,$,G,...H].join(" ");if(C.some((B)=>!K.includes(B)))return 0;let Z=0;for(let B of C){if(W.includes(B))Z+=8;if(J.includes(B))Z+=7;if(H.some((F)=>F.includes(B)))Z+=5;if(Y.includes(B))Z+=4;if(G.includes(B))Z+=3;if($.includes(B))Z+=2}return Z}function D(j,w){let C=N(typeof w.query==="string"?w.query:void 0),J=E(w.tag),W=N(typeof w.visibility==="string"?w.visibility:void 0),Y=N(typeof w.kind==="string"?w.kind:void 0),$=L(typeof w.limit==="number"?w.limit:void 0),G=I(typeof w.offset==="number"?w.offset:void 0),H=j.map((B)=>({doc:Q(B),score:p(B,C)})).filter(({doc:B,score:F})=>{let V=C?F>0:!0,X=J.length?J.every((M)=>B.tags.some((O)=>N(O).includes(M))):!0,A=W?N(B.visibility)===W:!0,_=Y?N(B.kind)===Y:!0;return V&&X&&A&&_}).sort((B,F)=>{if(F.score!==B.score)return F.score-B.score;return B.doc.title.localeCompare(F.doc.title)}),K=H.slice(G,G+$).map(({doc:B})=>B),Z=G+K.length<H.length?G+K.length:void 0;return{docs:K,items:K,total:H.length,...Z!=null?{nextOffset:Z}:{}}}function x(j){let w=decodeURIComponent(j),C=P.get(w);if(!C)return;return{doc:Q(C),content:String(C.block.body??"")}}function z(j,w){let C=U(w),J=j.find((W)=>U(W.route)===C);if(!J)return;return{doc:Q(J),content:String(J.block.body??"")}}function h(j){let w=new Map,C=new Map,J=new Map;for(let Y of j){let $=Y.block.kind??"reference",G=Y.block.visibility??"public";C.set($,(C.get($)??0)+1),J.set(G,(J.get(G)??0)+1);for(let H of Y.block.tags??[])w.set(H,(w.get(H)??0)+1)}let W=(Y,$)=>[...Y.entries()].sort((G,H)=>H[1]-G[1]||G[0].localeCompare(H[0])).map(([G,H])=>({[$]:G,count:H}));return{totalDocs:j.length,tags:W(w,"tag"),kinds:W(C,"kind"),visibilities:W(J,"visibility")}}export{Q as toDocSummary,D as searchDocs,h as listDocFacets,z as getDocByRoute,x as getDocById};
2
+ var P=Object.defineProperty;var R=(j)=>j;function S(j,w){this[j]=R.bind(null,w)}var z=(j,w)=>{for(var C in w)P(j,C,{get:w[C],enumerable:!0,configurable:!0,set:S.bind(w,C)})};var h=(j,w)=>()=>(j&&(w=j(j=0)),w);import{defaultDocRegistry as E}from"@contractspec/lib.contracts-spec/docs";var L=20,I=100;function N(j){return j?.trim().toLowerCase()??""}function U(j){let w=decodeURIComponent(j).trim();if(!w)return"/";return w.startsWith("/")?w:`/${w}`}function p(j){return(Array.isArray(j)?j:j?[j]:[]).map((C)=>N(C)).filter(Boolean)}function q(j){if(!j||Number.isNaN(j))return L;return Math.min(Math.max(j,1),I)}function D(j){if(!j||Number.isNaN(j))return 0;return Math.max(j,0)}function Q({block:j,route:w}){return{id:j.id,title:j.title,summary:j.summary??"",route:w,visibility:j.visibility??"public",kind:j.kind??"reference",version:j.version??"1.0.0",tags:j.tags??[]}}function x(j,w){if(!w)return 1;let C=w.split(/\s+/).filter(Boolean),J=N(j.block.title),W=N(j.block.id),Y=N(j.block.summary),$=N(j.block.body),G=N(j.route),H=(j.block.tags??[]).map((B)=>N(B)),K=[J,W,Y,$,G,...H].join(" ");if(C.some((B)=>!K.includes(B)))return 0;let Z=0;for(let B of C){if(W.includes(B))Z+=8;if(J.includes(B))Z+=7;if(H.some((F)=>F.includes(B)))Z+=5;if(Y.includes(B))Z+=4;if(G.includes(B))Z+=3;if($.includes(B))Z+=2}return Z}function y(j,w){let C=N(typeof w.query==="string"?w.query:void 0),J=p(w.tag),W=N(typeof w.visibility==="string"?w.visibility:void 0),Y=N(typeof w.kind==="string"?w.kind:void 0),$=q(typeof w.limit==="number"?w.limit:void 0),G=D(typeof w.offset==="number"?w.offset:void 0),H=j.map((B)=>({doc:Q(B),score:x(B,C)})).filter(({doc:B,score:F})=>{let V=C?F>0:!0,X=J.length?J.every((M)=>B.tags.some((O)=>N(O).includes(M))):!0,A=W?N(B.visibility)===W:!0,_=Y?N(B.kind)===Y:!0;return V&&X&&A&&_}).sort((B,F)=>{if(F.score!==B.score)return F.score-B.score;return B.doc.title.localeCompare(F.doc.title)}),K=H.slice(G,G+$).map(({doc:B})=>B),Z=G+K.length<H.length?G+K.length:void 0;return{docs:K,items:K,total:H.length,...Z!=null?{nextOffset:Z}:{}}}function b(j){let w=decodeURIComponent(j),C=E.get(w);if(!C)return;return{doc:Q(C),content:String(C.block.body??"")}}function k(j,w){let C=U(w),J=j.find((W)=>U(W.route)===C);if(!J)return;return{doc:Q(J),content:String(J.block.body??"")}}function m(j){let w=new Map,C=new Map,J=new Map;for(let Y of j){let $=Y.block.kind??"reference",G=Y.block.visibility??"public";C.set($,(C.get($)??0)+1),J.set(G,(J.get(G)??0)+1);for(let H of Y.block.tags??[])w.set(H,(w.get(H)??0)+1)}let W=(Y,$)=>[...Y.entries()].sort((G,H)=>H[1]-G[1]||G[0].localeCompare(H[0])).map(([G,H])=>({[$]:G,count:H}));return{totalDocs:j.length,tags:W(w,"tag"),kinds:W(C,"kind"),visibilities:W(J,"visibility")}}export{Q as toDocSummary,y as searchDocs,m as listDocFacets,k as getDocByRoute,b as getDocById};
@@ -1,7 +1,7 @@
1
1
  // @bun
2
- import{Logger as g,LogLevel as d}from"@contractspec/lib.logger";function u(){return"production"}var Gj=()=>new g({level:d.INFO,environment:u(),enableTracing:!0,enableTiming:!0,enableContext:!0,enableColors:!1}),e=Gj(),hw=new g({level:d.WARN,environment:u(),enableTracing:!0,enableTiming:!0,enableContext:!0,enableColors:!1}),kw=new g({level:d.INFO,environment:u(),enableTracing:!0,enableTiming:!0,enableContext:!0,enableColors:!1});var jj=["application/json","text/event-stream"];function Nj(j){return!j||j.includes("*/*")||j.includes("application/*")||jj.some((w)=>j.includes(w))}function n(j){if(j.method!=="POST")return j;let w=j.headers.get("accept");if(!Nj(w))return j;let Y=jj.filter((U)=>!w?.includes(U));if(Y.length===0)return j;let J=new Headers(j.headers);return J.set("accept",[w,...Y].filter(Boolean).join(", ")),new Request(j,{headers:J})}import{createMcpServer as Lj}from"@contractspec/lib.contracts-runtime-server-mcp/provider-mcp";import{PresentationRegistry as Ej}from"@contractspec/lib.contracts-spec/presentations";import{McpServer as xj}from"@modelcontextprotocol/sdk/server/mcp.js";import{WebStandardStreamableHTTPServerTransport as Mj}from"@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";import{randomUUID as _j}from"crypto";import{Elysia as Aj}from"elysia";var Cj={actor:"anonymous",decide:async()=>({effect:"allow"})};function i(j,w,Y,J){return new Response(JSON.stringify({jsonrpc:"2.0",error:{code:w,message:Y,...J?{data:J}:{}},id:null}),{status:j,headers:{"content-type":"application/json"}})}function wj({logger:j,serverName:w,ops:Y,resources:J,prompts:U,presentations:Q,stateful:K}){let Z=new xj({name:w,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{},logging:{}}});j.info("Setting up MCP server..."),Lj(Z,Y,J,U,{logger:j,toolCtx:()=>Cj,promptCtx:()=>({locale:"en"}),resourceCtx:()=>({locale:"en"}),presentations:new Ej(Q)});let V=new Mj({sessionIdGenerator:K?()=>_j():void 0,enableJsonResponse:!0});return Z.connect(V).then(()=>({server:Z,transport:V}))}async function T(j){await Promise.allSettled([j.transport.close(),j.server.close()])}function Ij(j){return j instanceof Error?j.stack??j.message:String(j)}function Yj({logger:j,path:w,serverName:Y,ops:J,resources:U,prompts:Q,presentations:K,validateAuth:Z,requiredAuthMethods:V}){j.info("Setting up MCP handler...",{requiredAuthMethods:V??[]});let L=process.env.CONTRACTSPEC_MCP_STATEFUL==="1",H=new Map;async function $(B){let F=await wj({logger:j,path:w,serverName:Y,ops:J,resources:U,prompts:Q,presentations:K,stateful:!1});try{return await F.transport.handleRequest(n(B))}finally{await T(F)}}async function G(B){let F=H.get(B);if(!F)return;H.delete(B),await T(F)}async function p(B){let F=B.headers.get("mcp-session-id"),N,q=!1;if(F){let E=H.get(F);if(!E)return i(404,-32001,"Session not found");N=E}else N=await wj({logger:j,path:w,serverName:Y,ops:J,resources:U,prompts:Q,presentations:K,stateful:!0}),q=!0;try{let E=await N.transport.handleRequest(n(B)),A=N.transport.sessionId;if(A&&!H.has(A))H.set(A,N);if(B.method==="DELETE"&&A)await G(A);else if(!A&&q)await T(N);return E}catch(E){if(q)await T(N);throw E}}return new Aj({name:`mcp-${Y}`}).all(w,async({request:B})=>{try{if(Z){let F=await Z(B);if(!F.valid)return i(401,-32002,"Authentication failed",F.reason)}if(L)return await p(B);return await $(B)}catch(F){return j.error("Error handling MCP request",{path:w,method:B.method,error:Ij(F)}),i(500,-32000,"Internal error")}})}import{defaultDocRegistry as Rj}from"@contractspec/lib.contracts-spec/docs";var qj=20,bj=100;function P(j){return j?.trim().toLowerCase()??""}function Jj(j){let w=decodeURIComponent(j).trim();if(!w)return"/";return w.startsWith("/")?w:`/${w}`}function Oj(j){return(Array.isArray(j)?j:j?[j]:[]).map((Y)=>P(Y)).filter(Boolean)}function Dj(j){if(!j||Number.isNaN(j))return qj;return Math.min(Math.max(j,1),bj)}function zj(j){if(!j||Number.isNaN(j))return 0;return Math.max(j,0)}function c({block:j,route:w}){return{id:j.id,title:j.title,summary:j.summary??"",route:w,visibility:j.visibility??"public",kind:j.kind??"reference",version:j.version??"1.0.0",tags:j.tags??[]}}function Tj(j,w){if(!w)return 1;let Y=w.split(/\s+/).filter(Boolean),J=P(j.block.title),U=P(j.block.id),Q=P(j.block.summary),K=P(j.block.body),Z=P(j.route),V=(j.block.tags??[]).map(($)=>P($)),L=[J,U,Q,K,Z,...V].join(" ");if(Y.some(($)=>!L.includes($)))return 0;let H=0;for(let $ of Y){if(U.includes($))H+=8;if(J.includes($))H+=7;if(V.some((G)=>G.includes($)))H+=5;if(Q.includes($))H+=4;if(Z.includes($))H+=3;if(K.includes($))H+=2}return H}function C(j,w){let Y=P(typeof w.query==="string"?w.query:void 0),J=Oj(w.tag),U=P(typeof w.visibility==="string"?w.visibility:void 0),Q=P(typeof w.kind==="string"?w.kind:void 0),K=Dj(typeof w.limit==="number"?w.limit:void 0),Z=zj(typeof w.offset==="number"?w.offset:void 0),V=j.map(($)=>({doc:c($),score:Tj($,Y)})).filter(({doc:$,score:G})=>{let p=Y?G>0:!0,B=J.length?J.every((q)=>$.tags.some((E)=>P(E).includes(q))):!0,F=U?P($.visibility)===U:!0,N=Q?P($.kind)===Q:!0;return p&&B&&F&&N}).sort(($,G)=>{if(G.score!==$.score)return G.score-$.score;return $.doc.title.localeCompare(G.doc.title)}),L=V.slice(Z,Z+K).map(({doc:$})=>$),H=Z+L.length<V.length?Z+L.length:void 0;return{docs:L,items:L,total:V.length,...H!=null?{nextOffset:H}:{}}}function S(j){let w=decodeURIComponent(j),Y=Rj.get(w);if(!Y)return;return{doc:c(Y),content:String(Y.block.body??"")}}function h(j,w){let Y=Jj(w),J=j.find((U)=>Jj(U.route)===Y);if(!J)return;return{doc:c(J),content:String(J.block.body??"")}}function k(j){let w=new Map,Y=new Map,J=new Map;for(let Q of j){let K=Q.block.kind??"reference",Z=Q.block.visibility??"public";Y.set(K,(Y.get(K)??0)+1),J.set(Z,(J.get(Z)??0)+1);for(let V of Q.block.tags??[])w.set(V,(w.get(V)??0)+1)}let U=(Q,K)=>[...Q.entries()].sort((Z,V)=>V[1]-Z[1]||Z[0].localeCompare(V[0])).map(([Z,V])=>({[K]:Z,count:V}));return{totalDocs:j.length,tags:U(w,"tag"),kinds:U(Y,"kind"),visibilities:U(J,"visibility")}}import{EventRegistry as Sj,OperationSpecRegistry as hj}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as kj}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as fj,ContractReferenceQuery as vj,DocsGenerateCommand as yj,DocsGeneratedEvent as mj,DocsIndexDataView as lj,DocsIndexQuery as pj,DocsLayoutPresentation as gj,DocsPublishCommand as dj,DocsPublishedEvent as uj,DocsReferencePagePresentation as nj,DocsSearchForm as ij,ExampleCatalogDataView as cj}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as aj}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as oj}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as tj,serializeEventSpec as rj,serializeFormSpec as sj,serializeOperationSpec as ej,serializePresentationSpec as jw}from"@contractspec/lib.contracts-spec/serialization";var f=null;function ww(){let j=new hj;return j.register(pj).register(vj).register(yj).register(dj),j}function Yw(){if(!f)f=ww();return f}function a(j,w){return Yw().get(j,w)}var v=null;function Jw(){let j=new Sj;return j.register(mj).register(uj),j}function Qw(){if(!v)v=Jw();return v}function o(j,w){return Qw().get(j,w)}var y=null;function Uw(){let j=new oj;return j.register(gj).register(nj),j}function Zw(){if(!y)y=Uw();return y}function t(j,w){return Zw().get(j,w)}var m=null;function $w(){let j=new kj;return j.register(lj).register(fj).register(cj),j}function Kw(){if(!m)m=$w();return m}function r(j,w){return Kw().get(j,w)}var l=null;function Vw(){let j=new aj;return j.register(ij),j}function Xw(){if(!l)l=Vw();return l}function s(j,w){return Xw().get(j)}function Qj(j,w){let Y=a(j,w);return ej(Y)??void 0}function Uj(j,w){let Y=o(j,w);return rj(Y)??void 0}function Zj(j,w){let Y=t(j,w);return jw(Y)??void 0}function $j(j,w){let Y=r(j,w);return tj(Y)??void 0}function Kj(j,w){let Y=s(j,w);return sj(Y)??void 0}function Hw(){f=null}function Bw(){v=null}function Fw(){y=null}function Ww(){m=null}function Pw(){l=null}function jY(){Hw(),Bw(),Fw(),Ww(),Pw()}import{defaultDocRegistry as Gw}from"@contractspec/lib.contracts-spec/docs";function Nw(j){return j?.trim().toLowerCase()??""}function Lw(j){for(let w of j??[]){let Y=Gw.get(w);if(Y)return Y.route}return}function Vj(j,w,Y,J){let U=j.meta.title??j.meta.key,Q=Lw(j.meta.docId),K=j.meta.description;return{key:j.meta.key,version:j.meta.version,type:w,title:U,description:K,markdown:[`# ${U}`,`- Key: ${j.meta.key}`,`- Type: ${w}`,`- Version: ${j.meta.version}`,Q?`- Docs route: ${Q}`:"",K?`
2
+ var Gj=Object.defineProperty;var Nj=(j)=>j;function Lj(j,w){this[j]=Nj.bind(null,w)}var fw=(j,w)=>{for(var Y in w)Gj(j,Y,{get:w[Y],enumerable:!0,configurable:!0,set:Lj.bind(w,Y)})};var vw=(j,w)=>()=>(j&&(w=j(j=0)),w);import{Logger as g,LogLevel as d}from"@contractspec/lib.logger";function u(){return"production"}var Ej=()=>new g({level:d.INFO,environment:u(),enableTracing:!0,enableTiming:!0,enableContext:!0,enableColors:!1}),e=Ej(),lw=new g({level:d.WARN,environment:u(),enableTracing:!0,enableTiming:!0,enableContext:!0,enableColors:!1}),pw=new g({level:d.INFO,environment:u(),enableTracing:!0,enableTiming:!0,enableContext:!0,enableColors:!1});var jj=["application/json","text/event-stream"];function xj(j){return!j||j.includes("*/*")||j.includes("application/*")||jj.some((w)=>j.includes(w))}function n(j){if(j.method!=="POST")return j;let w=j.headers.get("accept");if(!xj(w))return j;let Y=jj.filter((U)=>!w?.includes(U));if(Y.length===0)return j;let J=new Headers(j.headers);return J.set("accept",[w,...Y].filter(Boolean).join(", ")),new Request(j,{headers:J})}import{createMcpServer as Mj}from"@contractspec/lib.contracts-runtime-server-mcp/provider-mcp";import{PresentationRegistry as _j}from"@contractspec/lib.contracts-spec/presentations";import{McpServer as Aj}from"@modelcontextprotocol/sdk/server/mcp.js";import{WebStandardStreamableHTTPServerTransport as Cj}from"@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";import{randomUUID as Ij}from"crypto";import{Elysia as Rj}from"elysia";var qj={actor:"anonymous",decide:async()=>({effect:"allow"})};function i(j,w,Y,J){return new Response(JSON.stringify({jsonrpc:"2.0",error:{code:w,message:Y,...J?{data:J}:{}},id:null}),{status:j,headers:{"content-type":"application/json"}})}function wj({logger:j,serverName:w,ops:Y,resources:J,prompts:U,presentations:Q,stateful:K}){let Z=new Aj({name:w,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{},logging:{}}});j.info("Setting up MCP server..."),Mj(Z,Y,J,U,{logger:j,toolCtx:()=>qj,promptCtx:()=>({locale:"en"}),resourceCtx:()=>({locale:"en"}),presentations:new _j(Q)});let V=new Cj({sessionIdGenerator:K?()=>Ij():void 0,enableJsonResponse:!0});return Z.connect(V).then(()=>({server:Z,transport:V}))}async function T(j){await Promise.allSettled([j.transport.close(),j.server.close()])}function bj(j){return j instanceof Error?j.stack??j.message:String(j)}function Yj({logger:j,path:w,serverName:Y,ops:J,resources:U,prompts:Q,presentations:K,validateAuth:Z,requiredAuthMethods:V}){j.info("Setting up MCP handler...",{requiredAuthMethods:V??[]});let L=process.env.CONTRACTSPEC_MCP_STATEFUL==="1",H=new Map;async function $(B){let F=await wj({logger:j,path:w,serverName:Y,ops:J,resources:U,prompts:Q,presentations:K,stateful:!1});try{return await F.transport.handleRequest(n(B))}finally{await T(F)}}async function G(B){let F=H.get(B);if(!F)return;H.delete(B),await T(F)}async function p(B){let F=B.headers.get("mcp-session-id"),N,q=!1;if(F){let E=H.get(F);if(!E)return i(404,-32001,"Session not found");N=E}else N=await wj({logger:j,path:w,serverName:Y,ops:J,resources:U,prompts:Q,presentations:K,stateful:!0}),q=!0;try{let E=await N.transport.handleRequest(n(B)),A=N.transport.sessionId;if(A&&!H.has(A))H.set(A,N);if(B.method==="DELETE"&&A)await G(A);else if(!A&&q)await T(N);return E}catch(E){if(q)await T(N);throw E}}return new Rj({name:`mcp-${Y}`}).all(w,async({request:B})=>{try{if(Z){let F=await Z(B);if(!F.valid)return i(401,-32002,"Authentication failed",F.reason)}if(L)return await p(B);return await $(B)}catch(F){return j.error("Error handling MCP request",{path:w,method:B.method,error:bj(F)}),i(500,-32000,"Internal error")}})}import{defaultDocRegistry as Oj}from"@contractspec/lib.contracts-spec/docs";var Dj=20,zj=100;function P(j){return j?.trim().toLowerCase()??""}function Jj(j){let w=decodeURIComponent(j).trim();if(!w)return"/";return w.startsWith("/")?w:`/${w}`}function Tj(j){return(Array.isArray(j)?j:j?[j]:[]).map((Y)=>P(Y)).filter(Boolean)}function Sj(j){if(!j||Number.isNaN(j))return Dj;return Math.min(Math.max(j,1),zj)}function hj(j){if(!j||Number.isNaN(j))return 0;return Math.max(j,0)}function c({block:j,route:w}){return{id:j.id,title:j.title,summary:j.summary??"",route:w,visibility:j.visibility??"public",kind:j.kind??"reference",version:j.version??"1.0.0",tags:j.tags??[]}}function kj(j,w){if(!w)return 1;let Y=w.split(/\s+/).filter(Boolean),J=P(j.block.title),U=P(j.block.id),Q=P(j.block.summary),K=P(j.block.body),Z=P(j.route),V=(j.block.tags??[]).map(($)=>P($)),L=[J,U,Q,K,Z,...V].join(" ");if(Y.some(($)=>!L.includes($)))return 0;let H=0;for(let $ of Y){if(U.includes($))H+=8;if(J.includes($))H+=7;if(V.some((G)=>G.includes($)))H+=5;if(Q.includes($))H+=4;if(Z.includes($))H+=3;if(K.includes($))H+=2}return H}function C(j,w){let Y=P(typeof w.query==="string"?w.query:void 0),J=Tj(w.tag),U=P(typeof w.visibility==="string"?w.visibility:void 0),Q=P(typeof w.kind==="string"?w.kind:void 0),K=Sj(typeof w.limit==="number"?w.limit:void 0),Z=hj(typeof w.offset==="number"?w.offset:void 0),V=j.map(($)=>({doc:c($),score:kj($,Y)})).filter(({doc:$,score:G})=>{let p=Y?G>0:!0,B=J.length?J.every((q)=>$.tags.some((E)=>P(E).includes(q))):!0,F=U?P($.visibility)===U:!0,N=Q?P($.kind)===Q:!0;return p&&B&&F&&N}).sort(($,G)=>{if(G.score!==$.score)return G.score-$.score;return $.doc.title.localeCompare(G.doc.title)}),L=V.slice(Z,Z+K).map(({doc:$})=>$),H=Z+L.length<V.length?Z+L.length:void 0;return{docs:L,items:L,total:V.length,...H!=null?{nextOffset:H}:{}}}function S(j){let w=decodeURIComponent(j),Y=Oj.get(w);if(!Y)return;return{doc:c(Y),content:String(Y.block.body??"")}}function h(j,w){let Y=Jj(w),J=j.find((U)=>Jj(U.route)===Y);if(!J)return;return{doc:c(J),content:String(J.block.body??"")}}function k(j){let w=new Map,Y=new Map,J=new Map;for(let Q of j){let K=Q.block.kind??"reference",Z=Q.block.visibility??"public";Y.set(K,(Y.get(K)??0)+1),J.set(Z,(J.get(Z)??0)+1);for(let V of Q.block.tags??[])w.set(V,(w.get(V)??0)+1)}let U=(Q,K)=>[...Q.entries()].sort((Z,V)=>V[1]-Z[1]||Z[0].localeCompare(V[0])).map(([Z,V])=>({[K]:Z,count:V}));return{totalDocs:j.length,tags:U(w,"tag"),kinds:U(Y,"kind"),visibilities:U(J,"visibility")}}import{EventRegistry as fj,OperationSpecRegistry as vj}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as yj}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as mj,ContractReferenceQuery as lj,DocsGenerateCommand as pj,DocsGeneratedEvent as gj,DocsIndexDataView as dj,DocsIndexQuery as uj,DocsLayoutPresentation as nj,DocsPublishCommand as ij,DocsPublishedEvent as cj,DocsReferencePagePresentation as aj,DocsSearchForm as oj,ExampleCatalogDataView as tj}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as rj}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as sj}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as ej,serializeEventSpec as jw,serializeFormSpec as ww,serializeOperationSpec as Yw,serializePresentationSpec as Jw}from"@contractspec/lib.contracts-spec/serialization";var f=null;function Qw(){let j=new vj;return j.register(uj).register(lj).register(pj).register(ij),j}function Uw(){if(!f)f=Qw();return f}function a(j,w){return Uw().get(j,w)}var v=null;function Zw(){let j=new fj;return j.register(gj).register(cj),j}function $w(){if(!v)v=Zw();return v}function o(j,w){return $w().get(j,w)}var y=null;function Kw(){let j=new sj;return j.register(nj).register(aj),j}function Vw(){if(!y)y=Kw();return y}function t(j,w){return Vw().get(j,w)}var m=null;function Xw(){let j=new yj;return j.register(dj).register(mj).register(tj),j}function Hw(){if(!m)m=Xw();return m}function r(j,w){return Hw().get(j,w)}var l=null;function Bw(){let j=new rj;return j.register(oj),j}function Fw(){if(!l)l=Bw();return l}function s(j,w){return Fw().get(j)}function Qj(j,w){let Y=a(j,w);return Yw(Y)??void 0}function Uj(j,w){let Y=o(j,w);return jw(Y)??void 0}function Zj(j,w){let Y=t(j,w);return Jw(Y)??void 0}function $j(j,w){let Y=r(j,w);return ej(Y)??void 0}function Kj(j,w){let Y=s(j,w);return ww(Y)??void 0}function Ww(){f=null}function Pw(){v=null}function Gw(){y=null}function Nw(){m=null}function Lw(){l=null}function ZY(){Ww(),Pw(),Gw(),Nw(),Lw()}import{defaultDocRegistry as Ew}from"@contractspec/lib.contracts-spec/docs";function xw(j){return j?.trim().toLowerCase()??""}function Mw(j){for(let w of j??[]){let Y=Ew.get(w);if(Y)return Y.route}return}function Vj(j,w,Y,J){let U=j.meta.title??j.meta.key,Q=Mw(j.meta.docId),K=j.meta.description;return{key:j.meta.key,version:j.meta.version,type:w,title:U,description:K,markdown:[`# ${U}`,`- Key: ${j.meta.key}`,`- Type: ${w}`,`- Version: ${j.meta.version}`,Q?`- Docs route: ${Q}`:"",K?`
3
3
  ${K}`:""].filter(Boolean).join(`
4
- `),...Q?{route:Q}:{},...Y?{schema:Y}:{},...J?{policy:J}:{},tags:j.meta.tags??[],owners:j.meta.owners??[],stability:j.meta.stability}}function I(j){let w=j.includeSchema??!1,Y=Nw(j.type),J=a(j.key,j.version);if(J&&(!Y||Y==="operation"||Y===J.meta.kind))return{reference:Vj(J,J.meta.kind,w?Qj(j.key,j.version):void 0,J.policy)};let U=[{type:"data-view",spec:r(j.key,j.version),schema:w?$j(j.key,j.version):void 0},{type:"form",spec:s(j.key,j.version),schema:w?Kj(j.key,j.version):void 0},{type:"presentation",spec:t(j.key,j.version),schema:w?Zj(j.key,j.version):void 0},{type:"event",spec:o(j.key,j.version),schema:w?Uj(j.key,j.version):void 0}];for(let Q of U)if(Q.spec&&(!Y||Y===Q.type))return{reference:Vj(Q.spec,Q.type,Q.schema)};throw Error(`Contract reference not found: ${j.key}`)}import{definePrompt as Xj,PromptRegistry as Ew}from"@contractspec/lib.contracts-spec";import W from"zod";var Hj=["@contractspec"],Bj=["docs","mcp"];function Fj(j){let w=new Ew;return w.register(Xj({meta:{key:"docs.navigator",version:"1.0.0",title:"Find relevant ContractSpec docs",description:"Guide agents to search, filter, and open the right ContractSpec docs.",tags:Bj,stability:"beta",owners:Hj},args:[{name:"topic",description:"Goal or subject to search for.",required:!1,schema:W.string().optional()},{name:"kind",description:"Optional doc kind filter.",required:!1,schema:W.string().optional()},{name:"tag",description:"Optional tag filter.",required:!1,schema:W.string().optional()}],input:W.object({topic:W.string().optional(),kind:W.string().optional(),tag:W.string().optional()}),render:async({topic:Y,kind:J,tag:U})=>{let Q=C(j,{query:Y,kind:J,tag:U,limit:3}),K=Q.docs.length?Q.docs.map((Z)=>`- ${Z.title} (${Z.id}) -> ${Z.route}`).join(`
4
+ `),...Q?{route:Q}:{},...Y?{schema:Y}:{},...J?{policy:J}:{},tags:j.meta.tags??[],owners:j.meta.owners??[],stability:j.meta.stability}}function I(j){let w=j.includeSchema??!1,Y=xw(j.type),J=a(j.key,j.version);if(J&&(!Y||Y==="operation"||Y===J.meta.kind))return{reference:Vj(J,J.meta.kind,w?Qj(j.key,j.version):void 0,J.policy)};let U=[{type:"data-view",spec:r(j.key,j.version),schema:w?$j(j.key,j.version):void 0},{type:"form",spec:s(j.key,j.version),schema:w?Kj(j.key,j.version):void 0},{type:"presentation",spec:t(j.key,j.version),schema:w?Zj(j.key,j.version):void 0},{type:"event",spec:o(j.key,j.version),schema:w?Uj(j.key,j.version):void 0}];for(let Q of U)if(Q.spec&&(!Y||Y===Q.type))return{reference:Vj(Q.spec,Q.type,Q.schema)};throw Error(`Contract reference not found: ${j.key}`)}import{definePrompt as Xj,PromptRegistry as _w}from"@contractspec/lib.contracts-spec";import W from"zod";var Hj=["@contractspec"],Bj=["docs","mcp"];function Fj(j){let w=new _w;return w.register(Xj({meta:{key:"docs.navigator",version:"1.0.0",title:"Find relevant ContractSpec docs",description:"Guide agents to search, filter, and open the right ContractSpec docs.",tags:Bj,stability:"beta",owners:Hj},args:[{name:"topic",description:"Goal or subject to search for.",required:!1,schema:W.string().optional()},{name:"kind",description:"Optional doc kind filter.",required:!1,schema:W.string().optional()},{name:"tag",description:"Optional tag filter.",required:!1,schema:W.string().optional()}],input:W.object({topic:W.string().optional(),kind:W.string().optional(),tag:W.string().optional()}),render:async({topic:Y,kind:J,tag:U})=>{let Q=C(j,{query:Y,kind:J,tag:U,limit:3}),K=Q.docs.length?Q.docs.map((Z)=>`- ${Z.title} (${Z.id}) -> ${Z.route}`).join(`
5
5
  `):"- No direct pre-match. Use docs_list_facets-v1_0_0 to browse tags and kinds.";return[{type:"text",text:["Use docs_search-v1_0_0 first, then read docs://doc/{id} for the strongest matches.","Use docs_resolve_route-v1_0_0 when the user already gives you a docs URL or route.","Use docs_list_facets-v1_0_0 or docs://facets to browse the docs taxonomy before guessing.",Y?`Topic: ${Y}`:"",J?`Kind: ${J}`:"",U?`Tag: ${U}`:"","Suggested starting docs:",K].filter(Boolean).join(`
6
6
  `)},{type:"resource",uri:"docs://index",title:"DocBlocks index"},{type:"resource",uri:"docs://facets",title:"Docs facets"}]}})),w.register(Xj({meta:{key:"docs.reference.guide",version:"1.0.0",title:"Resolve a ContractSpec reference",description:"Guide agents to fetch the canonical reference payload for a ContractSpec surface.",tags:Bj,stability:"beta",owners:Hj},args:[{name:"key",description:"ContractSpec key to resolve.",required:!0,schema:W.string()},{name:"version",description:"Optional version override.",required:!1,schema:W.string().optional()},{name:"type",description:"Optional surface type: command, query, form, data-view, presentation, event.",required:!1,schema:W.string().optional()}],input:W.object({key:W.string(),version:W.string().optional(),type:W.string().optional()}),render:async({key:Y,version:J,type:U})=>{let Q=I({key:Y,version:J,type:U,includeSchema:!0}).reference;return[{type:"text",text:["Use docs_contract_reference-v1_0_0 when you need the canonical docs payload for a ContractSpec surface.","Use docs_get-v1_0_0 only when you already know the exact DocBlock id and need raw markdown.",`Resolved key: ${Q.key}`,`Resolved type: ${Q.type}`,Q.route?`Docs route: ${Q.route}`:"",`Resource URI: docs://contract-reference/${encodeURIComponent(Y)}`].filter(Boolean).join(`
7
- `)},{type:"resource",uri:`docs://contract-reference/${encodeURIComponent(Y)}`,title:"Contract reference"}]}})),w}import{defineResourceTemplate as x,ResourceRegistry as xw}from"@contractspec/lib.contracts-spec";import X from"zod";var M=["docs","mcp"];function Wj(j){let w=new xw,Y=(J)=>C(j,J);return w.register(x({meta:{uriTemplate:"docs://index",title:"DocBlocks index",description:"Default ContractSpec docs index resource.",mimeType:"application/json",tags:M},input:X.object({}),resolve:async()=>({uri:"docs://index",mimeType:"application/json",data:JSON.stringify(Y({}),null,2)})})),w.register(x({meta:{uriTemplate:"docs://index{?query,tag,kind,visibility,limit,offset}",title:"DocBlocks index",description:"Search and paginate ContractSpec docs by query, tag, kind, or visibility.",mimeType:"application/json",tags:M},input:X.object({query:X.string().optional(),tag:X.string().optional(),kind:X.string().optional(),visibility:X.string().optional(),limit:X.coerce.number().optional(),offset:X.coerce.number().optional()}),resolve:async(J)=>({uri:"docs://index",mimeType:"application/json",data:JSON.stringify(Y(J),null,2)})})),w.register(x({meta:{uriTemplate:"docs://list",title:"DocBlocks index (legacy alias)",description:"Compatibility alias for the docs index resource.",mimeType:"application/json",tags:M},input:X.object({}),resolve:async()=>({uri:"docs://list",mimeType:"application/json",data:JSON.stringify(Y({}),null,2)})})),w.register(x({meta:{uriTemplate:"docs://doc/{id}",title:"Doc markdown",description:"Fetch a single DocBlock body by id as markdown.",mimeType:"text/markdown",tags:M},input:X.object({id:X.string()}),resolve:async({id:J})=>{let U=S(J);if(!U)return{uri:`docs://doc/${encodeURIComponent(J)}`,mimeType:"text/plain",data:`DocBlock not found: ${J}`};return{uri:`docs://doc/${encodeURIComponent(J)}`,mimeType:"text/markdown",data:U.content}}})),w.register(x({meta:{uriTemplate:"docs://route/{routePath}",title:"Doc by route",description:"Resolve a docs route to the matching DocBlock summary and body.",mimeType:"application/json",tags:M},input:X.object({routePath:X.string()}),resolve:async({routePath:J})=>({uri:`docs://route/${encodeURIComponent(J)}`,mimeType:"application/json",data:JSON.stringify(h(j,J)??{error:"not_found",route:J},null,2)})})),w.register(x({meta:{uriTemplate:"docs://facets",title:"Docs facets",description:"Counts of available tags, kinds, and visibilities across docs.",mimeType:"application/json",tags:M},input:X.object({}),resolve:async()=>({uri:"docs://facets",mimeType:"application/json",data:JSON.stringify(k(j),null,2)})})),w.register(x({meta:{uriTemplate:"docs://contract-reference/{key}{?version,type,includeSchema}",title:"Contract reference",description:"Resolve a ContractSpec surface into a docs-ready reference payload.",mimeType:"application/json",tags:M},input:X.object({key:X.string(),version:X.string().optional(),type:X.string().optional(),includeSchema:X.coerce.boolean().optional()}),resolve:async({key:J,version:U,type:Q,includeSchema:K})=>({uri:`docs://contract-reference/${encodeURIComponent(J)}`,mimeType:"application/json",data:JSON.stringify(I({key:J,version:U,type:Q,includeSchema:K}),null,2)})})),w}import{defineCommand as b,defineSchemaModel as R,installOp as O,OperationSpecRegistry as Mw}from"@contractspec/lib.contracts-spec";import{ContractReferenceInput as _w,ContractReferenceOutput as Aw,DocsIndexInput as Cw,DocsIndexOutput as Iw}from"@contractspec/lib.contracts-spec/docs";import{ScalarTypeEnum as _}from"@contractspec/lib.schema";var D=["@contractspec"],z=["docs","mcp"],Rw=R({name:"DocsGetInput",fields:{id:{type:_.String_unsecure(),isOptional:!1}}}),qw=R({name:"DocsGetOutput",fields:{doc:{type:_.JSON(),isOptional:!1},content:{type:_.String_unsecure(),isOptional:!1}}}),bw=R({name:"DocsResolveRouteInput",fields:{route:{type:_.String_unsecure(),isOptional:!1}}}),Ow=R({name:"DocsResolveRouteOutput",fields:{doc:{type:_.JSON(),isOptional:!1},content:{type:_.String_unsecure(),isOptional:!1}}}),Dw=R({name:"DocsFacetsInput",fields:{}}),zw=R({name:"DocsFacetsOutput",fields:{facets:{type:_.JSON(),isOptional:!1}}});function Pj(j){let w=new Mw;return O(w,b({meta:{key:"docs.search",version:"1.0.0",stability:"beta",owners:D,tags:z,description:"Search ContractSpec docs by query, tag, kind, or visibility.",goal:"Find the most relevant DocBlocks without browsing the full corpus.",context:"Read-only docs MCP search surface."},io:{input:Cw,output:Iw},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_search-v1_0_0"}}}),async(Y)=>C(j,Y)),O(w,b({meta:{key:"docs.get",version:"1.0.0",stability:"beta",owners:D,tags:z,description:"Read a single DocBlock by id.",goal:"Fetch the exact markdown content and metadata for a known doc id.",context:"Read-only docs MCP surface."},io:{input:Rw,output:qw},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_get-v1_0_0"}}}),async({id:Y})=>{let J=S(Y);if(!J)throw Error(`DocBlock not found: ${Y}`);return J}),O(w,b({meta:{key:"docs.resolveRoute",version:"1.0.0",stability:"beta",owners:D,tags:z,description:"Resolve a docs route to the matching DocBlock.",goal:"Turn a route or URL path into a canonical doc id and markdown body.",context:"Read-only docs MCP surface."},io:{input:bw,output:Ow},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_resolve_route-v1_0_0"}}}),async({route:Y})=>{let J=h(j,Y);if(!J)throw Error(`Doc route not found: ${Y}`);return J}),O(w,b({meta:{key:"docs.contract.lookup",version:"1.0.0",stability:"beta",owners:D,tags:z,description:"Resolve a ContractSpec surface into a docs-ready reference payload.",goal:"Get canonical docs metadata, route, and optional schema for a spec key.",context:"Read-only docs MCP surface."},io:{input:_w,output:Aw},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_contract_reference-v1_0_0"}}}),async(Y)=>I(Y)),O(w,b({meta:{key:"docs.list.facets",version:"1.0.0",stability:"beta",owners:D,tags:z,description:"List docs taxonomy facets such as tags, kinds, and visibilities.",goal:"Help agents browse the docs corpus before making targeted reads.",context:"Read-only docs MCP surface."},io:{input:Dw,output:zw},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_list_facets-v1_0_0"}}}),async()=>({facets:k(j)})),w}import{defaultDocRegistry as Tw}from"@contractspec/lib.contracts-spec/docs";function qY(j="/api/mcp/docs",w={}){let Y=Tw.list();return Yj({logger:e,path:j,serverName:"contractspec-docs-mcp",ops:Pj(Y),resources:Wj(Y),prompts:Fj(Y),presentations:w.includePresentations?Y.map(({descriptor:J})=>J):void 0})}export{qY as createDocsMcpHandler};
7
+ `)},{type:"resource",uri:`docs://contract-reference/${encodeURIComponent(Y)}`,title:"Contract reference"}]}})),w}import{defineResourceTemplate as x,ResourceRegistry as Aw}from"@contractspec/lib.contracts-spec";import X from"zod";var M=["docs","mcp"];function Wj(j){let w=new Aw,Y=(J)=>C(j,J);return w.register(x({meta:{uriTemplate:"docs://index",title:"DocBlocks index",description:"Default ContractSpec docs index resource.",mimeType:"application/json",tags:M},input:X.object({}),resolve:async()=>({uri:"docs://index",mimeType:"application/json",data:JSON.stringify(Y({}),null,2)})})),w.register(x({meta:{uriTemplate:"docs://index{?query,tag,kind,visibility,limit,offset}",title:"DocBlocks index",description:"Search and paginate ContractSpec docs by query, tag, kind, or visibility.",mimeType:"application/json",tags:M},input:X.object({query:X.string().optional(),tag:X.string().optional(),kind:X.string().optional(),visibility:X.string().optional(),limit:X.coerce.number().optional(),offset:X.coerce.number().optional()}),resolve:async(J)=>({uri:"docs://index",mimeType:"application/json",data:JSON.stringify(Y(J),null,2)})})),w.register(x({meta:{uriTemplate:"docs://list",title:"DocBlocks index (legacy alias)",description:"Compatibility alias for the docs index resource.",mimeType:"application/json",tags:M},input:X.object({}),resolve:async()=>({uri:"docs://list",mimeType:"application/json",data:JSON.stringify(Y({}),null,2)})})),w.register(x({meta:{uriTemplate:"docs://doc/{id}",title:"Doc markdown",description:"Fetch a single DocBlock body by id as markdown.",mimeType:"text/markdown",tags:M},input:X.object({id:X.string()}),resolve:async({id:J})=>{let U=S(J);if(!U)return{uri:`docs://doc/${encodeURIComponent(J)}`,mimeType:"text/plain",data:`DocBlock not found: ${J}`};return{uri:`docs://doc/${encodeURIComponent(J)}`,mimeType:"text/markdown",data:U.content}}})),w.register(x({meta:{uriTemplate:"docs://route/{routePath}",title:"Doc by route",description:"Resolve a docs route to the matching DocBlock summary and body.",mimeType:"application/json",tags:M},input:X.object({routePath:X.string()}),resolve:async({routePath:J})=>({uri:`docs://route/${encodeURIComponent(J)}`,mimeType:"application/json",data:JSON.stringify(h(j,J)??{error:"not_found",route:J},null,2)})})),w.register(x({meta:{uriTemplate:"docs://facets",title:"Docs facets",description:"Counts of available tags, kinds, and visibilities across docs.",mimeType:"application/json",tags:M},input:X.object({}),resolve:async()=>({uri:"docs://facets",mimeType:"application/json",data:JSON.stringify(k(j),null,2)})})),w.register(x({meta:{uriTemplate:"docs://contract-reference/{key}{?version,type,includeSchema}",title:"Contract reference",description:"Resolve a ContractSpec surface into a docs-ready reference payload.",mimeType:"application/json",tags:M},input:X.object({key:X.string(),version:X.string().optional(),type:X.string().optional(),includeSchema:X.coerce.boolean().optional()}),resolve:async({key:J,version:U,type:Q,includeSchema:K})=>({uri:`docs://contract-reference/${encodeURIComponent(J)}`,mimeType:"application/json",data:JSON.stringify(I({key:J,version:U,type:Q,includeSchema:K}),null,2)})})),w}import{defineCommand as b,defineSchemaModel as R,installOp as O,OperationSpecRegistry as Cw}from"@contractspec/lib.contracts-spec";import{ContractReferenceInput as Iw,ContractReferenceOutput as Rw,DocsIndexInput as qw,DocsIndexOutput as bw}from"@contractspec/lib.contracts-spec/docs";import{ScalarTypeEnum as _}from"@contractspec/lib.schema";var D=["@contractspec"],z=["docs","mcp"],Ow=R({name:"DocsGetInput",fields:{id:{type:_.String_unsecure(),isOptional:!1}}}),Dw=R({name:"DocsGetOutput",fields:{doc:{type:_.JSON(),isOptional:!1},content:{type:_.String_unsecure(),isOptional:!1}}}),zw=R({name:"DocsResolveRouteInput",fields:{route:{type:_.String_unsecure(),isOptional:!1}}}),Tw=R({name:"DocsResolveRouteOutput",fields:{doc:{type:_.JSON(),isOptional:!1},content:{type:_.String_unsecure(),isOptional:!1}}}),Sw=R({name:"DocsFacetsInput",fields:{}}),hw=R({name:"DocsFacetsOutput",fields:{facets:{type:_.JSON(),isOptional:!1}}});function Pj(j){let w=new Cw;return O(w,b({meta:{key:"docs.search",version:"1.0.0",stability:"beta",owners:D,tags:z,description:"Search ContractSpec docs by query, tag, kind, or visibility.",goal:"Find the most relevant DocBlocks without browsing the full corpus.",context:"Read-only docs MCP search surface."},io:{input:qw,output:bw},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_search-v1_0_0"}}}),async(Y)=>C(j,Y)),O(w,b({meta:{key:"docs.get",version:"1.0.0",stability:"beta",owners:D,tags:z,description:"Read a single DocBlock by id.",goal:"Fetch the exact markdown content and metadata for a known doc id.",context:"Read-only docs MCP surface."},io:{input:Ow,output:Dw},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_get-v1_0_0"}}}),async({id:Y})=>{let J=S(Y);if(!J)throw Error(`DocBlock not found: ${Y}`);return J}),O(w,b({meta:{key:"docs.resolveRoute",version:"1.0.0",stability:"beta",owners:D,tags:z,description:"Resolve a docs route to the matching DocBlock.",goal:"Turn a route or URL path into a canonical doc id and markdown body.",context:"Read-only docs MCP surface."},io:{input:zw,output:Tw},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_resolve_route-v1_0_0"}}}),async({route:Y})=>{let J=h(j,Y);if(!J)throw Error(`Doc route not found: ${Y}`);return J}),O(w,b({meta:{key:"docs.contract.lookup",version:"1.0.0",stability:"beta",owners:D,tags:z,description:"Resolve a ContractSpec surface into a docs-ready reference payload.",goal:"Get canonical docs metadata, route, and optional schema for a spec key.",context:"Read-only docs MCP surface."},io:{input:Iw,output:Rw},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_contract_reference-v1_0_0"}}}),async(Y)=>I(Y)),O(w,b({meta:{key:"docs.list.facets",version:"1.0.0",stability:"beta",owners:D,tags:z,description:"List docs taxonomy facets such as tags, kinds, and visibilities.",goal:"Help agents browse the docs corpus before making targeted reads.",context:"Read-only docs MCP surface."},io:{input:Sw,output:hw},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_list_facets-v1_0_0"}}}),async()=>({facets:k(j)})),w}import{defaultDocRegistry as kw}from"@contractspec/lib.contracts-spec/docs";function SY(j="/api/mcp/docs",w={}){let Y=kw.list();return Yj({logger:e,path:j,serverName:"contractspec-docs-mcp",ops:Pj(Y),resources:Wj(Y),prompts:Fj(Y),presentations:w.includePresentations?Y.map(({descriptor:J})=>J):void 0})}export{SY as createDocsMcpHandler};
@@ -1,7 +1,7 @@
1
1
  // @bun
2
- import{defaultDocRegistry as n}from"@contractspec/lib.contracts-spec/docs";var g=20,c=100;function U(j){return j?.trim().toLowerCase()??""}function O(j){let w=decodeURIComponent(j).trim();if(!w)return"/";return w.startsWith("/")?w:`/${w}`}function i(j){return(Array.isArray(j)?j:j?[j]:[]).map((B)=>U(B)).filter(Boolean)}function a(j){if(!j||Number.isNaN(j))return g;return Math.min(Math.max(j,1),c)}function o(j){if(!j||Number.isNaN(j))return 0;return Math.max(j,0)}function C({block:j,route:w}){return{id:j.id,title:j.title,summary:j.summary??"",route:w,visibility:j.visibility??"public",kind:j.kind??"reference",version:j.version??"1.0.0",tags:j.tags??[]}}function t(j,w){if(!w)return 1;let B=w.split(/\s+/).filter(Boolean),J=U(j.block.title),Z=U(j.block.id),H=U(j.block.summary),F=U(j.block.body),$=U(j.route),K=(j.block.tags??[]).map((Y)=>U(Y)),G=[J,Z,H,F,$,...K].join(" ");if(B.some((Y)=>!G.includes(Y)))return 0;let V=0;for(let Y of B){if(Z.includes(Y))V+=8;if(J.includes(Y))V+=7;if(K.some((X)=>X.includes(Y)))V+=5;if(H.includes(Y))V+=4;if($.includes(Y))V+=3;if(F.includes(Y))V+=2}return V}function q(j,w){let B=U(typeof w.query==="string"?w.query:void 0),J=i(w.tag),Z=U(typeof w.visibility==="string"?w.visibility:void 0),H=U(typeof w.kind==="string"?w.kind:void 0),F=a(typeof w.limit==="number"?w.limit:void 0),$=o(typeof w.offset==="number"?w.offset:void 0),K=j.map((Y)=>({doc:C(Y),score:t(Y,B)})).filter(({doc:Y,score:X})=>{let k=B?X>0:!0,y=J.length?J.every((l)=>Y.tags.some((d)=>U(d).includes(l))):!0,p=Z?U(Y.visibility)===Z:!0,u=H?U(Y.kind)===H:!0;return k&&y&&p&&u}).sort((Y,X)=>{if(X.score!==Y.score)return X.score-Y.score;return Y.doc.title.localeCompare(X.doc.title)}),G=K.slice($,$+F).map(({doc:Y})=>Y),V=$+G.length<K.length?$+G.length:void 0;return{docs:G,items:G,total:K.length,...V!=null?{nextOffset:V}:{}}}function yj(j){let w=decodeURIComponent(j),B=n.get(w);if(!B)return;return{doc:C(B),content:String(B.block.body??"")}}function pj(j,w){let B=O(w),J=j.find((Z)=>O(Z.route)===B);if(!J)return;return{doc:C(J),content:String(J.block.body??"")}}function uj(j){let w=new Map,B=new Map,J=new Map;for(let H of j){let F=H.block.kind??"reference",$=H.block.visibility??"public";B.set(F,(B.get(F)??0)+1),J.set($,(J.get($)??0)+1);for(let K of H.block.tags??[])w.set(K,(w.get(K)??0)+1)}let Z=(H,F)=>[...H.entries()].sort(($,K)=>K[1]-$[1]||$[0].localeCompare(K[0])).map(([$,K])=>({[F]:$,count:K}));return{totalDocs:j.length,tags:Z(w,"tag"),kinds:Z(B,"kind"),visibilities:Z(J,"visibility")}}import{EventRegistry as s,OperationSpecRegistry as r}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as e}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as jj,ContractReferenceQuery as wj,DocsGenerateCommand as Bj,DocsGeneratedEvent as Hj,DocsIndexDataView as Jj,DocsIndexQuery as Yj,DocsLayoutPresentation as Zj,DocsPublishCommand as $j,DocsPublishedEvent as Fj,DocsReferencePagePresentation as Kj,DocsSearchForm as Qj,ExampleCatalogDataView as Uj}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as Vj}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as Xj}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as Gj,serializeEventSpec as Nj,serializeFormSpec as Wj,serializeOperationSpec as Aj,serializePresentationSpec as Lj}from"@contractspec/lib.contracts-spec/serialization";var N=null;function Mj(){let j=new r;return j.register(Yj).register(wj).register(Bj).register($j),j}function Cj(){if(!N)N=Mj();return N}function _(j,w){return Cj().get(j,w)}var W=null;function _j(){let j=new s;return j.register(Hj).register(Fj),j}function Ej(){if(!W)W=_j();return W}function E(j,w){return Ej().get(j,w)}var A=null;function Ij(){let j=new Xj;return j.register(Zj).register(Kj),j}function Pj(){if(!A)A=Ij();return A}function I(j,w){return Pj().get(j,w)}var L=null;function Rj(){let j=new e;return j.register(Jj).register(jj).register(Uj),j}function Oj(){if(!L)L=Rj();return L}function P(j,w){return Oj().get(j,w)}var M=null;function qj(){let j=new Vj;return j.register(Qj),j}function Dj(){if(!M)M=qj();return M}function R(j,w){return Dj().get(j)}function D(j,w){let B=_(j,w);return Aj(B)??void 0}function x(j,w){let B=E(j,w);return Nj(B)??void 0}function S(j,w){let B=I(j,w);return Lj(B)??void 0}function b(j,w){let B=P(j,w);return Gj(B)??void 0}function T(j,w){let B=R(j,w);return Wj(B)??void 0}function xj(){N=null}function Sj(){W=null}function bj(){A=null}function Tj(){L=null}function hj(){M=null}function oj(){xj(),Sj(),bj(),Tj(),hj()}import{defaultDocRegistry as zj}from"@contractspec/lib.contracts-spec/docs";function vj(j){return j?.trim().toLowerCase()??""}function fj(j){for(let w of j??[]){let B=zj.get(w);if(B)return B.route}return}function h(j,w,B,J){let Z=j.meta.title??j.meta.key,H=fj(j.meta.docId),F=j.meta.description;return{key:j.meta.key,version:j.meta.version,type:w,title:Z,description:F,markdown:[`# ${Z}`,`- Key: ${j.meta.key}`,`- Type: ${w}`,`- Version: ${j.meta.version}`,H?`- Docs route: ${H}`:"",F?`
2
+ var n=Object.defineProperty;var g=(j)=>j;function c(j,w){this[j]=g.bind(null,w)}var uj=(j,w)=>{for(var B in w)n(j,B,{get:w[B],enumerable:!0,configurable:!0,set:c.bind(w,B)})};var lj=(j,w)=>()=>(j&&(w=j(j=0)),w);import{defaultDocRegistry as i}from"@contractspec/lib.contracts-spec/docs";var a=20,o=100;function U(j){return j?.trim().toLowerCase()??""}function O(j){let w=decodeURIComponent(j).trim();if(!w)return"/";return w.startsWith("/")?w:`/${w}`}function t(j){return(Array.isArray(j)?j:j?[j]:[]).map((B)=>U(B)).filter(Boolean)}function s(j){if(!j||Number.isNaN(j))return a;return Math.min(Math.max(j,1),o)}function r(j){if(!j||Number.isNaN(j))return 0;return Math.max(j,0)}function C({block:j,route:w}){return{id:j.id,title:j.title,summary:j.summary??"",route:w,visibility:j.visibility??"public",kind:j.kind??"reference",version:j.version??"1.0.0",tags:j.tags??[]}}function e(j,w){if(!w)return 1;let B=w.split(/\s+/).filter(Boolean),J=U(j.block.title),Z=U(j.block.id),H=U(j.block.summary),F=U(j.block.body),$=U(j.route),K=(j.block.tags??[]).map((Y)=>U(Y)),G=[J,Z,H,F,$,...K].join(" ");if(B.some((Y)=>!G.includes(Y)))return 0;let V=0;for(let Y of B){if(Z.includes(Y))V+=8;if(J.includes(Y))V+=7;if(K.some((X)=>X.includes(Y)))V+=5;if(H.includes(Y))V+=4;if($.includes(Y))V+=3;if(F.includes(Y))V+=2}return V}function q(j,w){let B=U(typeof w.query==="string"?w.query:void 0),J=t(w.tag),Z=U(typeof w.visibility==="string"?w.visibility:void 0),H=U(typeof w.kind==="string"?w.kind:void 0),F=s(typeof w.limit==="number"?w.limit:void 0),$=r(typeof w.offset==="number"?w.offset:void 0),K=j.map((Y)=>({doc:C(Y),score:e(Y,B)})).filter(({doc:Y,score:X})=>{let k=B?X>0:!0,y=J.length?J.every((l)=>Y.tags.some((d)=>U(d).includes(l))):!0,p=Z?U(Y.visibility)===Z:!0,u=H?U(Y.kind)===H:!0;return k&&y&&p&&u}).sort((Y,X)=>{if(X.score!==Y.score)return X.score-Y.score;return Y.doc.title.localeCompare(X.doc.title)}),G=K.slice($,$+F).map(({doc:Y})=>Y),V=$+G.length<K.length?$+G.length:void 0;return{docs:G,items:G,total:K.length,...V!=null?{nextOffset:V}:{}}}function gj(j){let w=decodeURIComponent(j),B=i.get(w);if(!B)return;return{doc:C(B),content:String(B.block.body??"")}}function cj(j,w){let B=O(w),J=j.find((Z)=>O(Z.route)===B);if(!J)return;return{doc:C(J),content:String(J.block.body??"")}}function ij(j){let w=new Map,B=new Map,J=new Map;for(let H of j){let F=H.block.kind??"reference",$=H.block.visibility??"public";B.set(F,(B.get(F)??0)+1),J.set($,(J.get($)??0)+1);for(let K of H.block.tags??[])w.set(K,(w.get(K)??0)+1)}let Z=(H,F)=>[...H.entries()].sort(($,K)=>K[1]-$[1]||$[0].localeCompare(K[0])).map(([$,K])=>({[F]:$,count:K}));return{totalDocs:j.length,tags:Z(w,"tag"),kinds:Z(B,"kind"),visibilities:Z(J,"visibility")}}import{EventRegistry as jj,OperationSpecRegistry as wj}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as Bj}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as Hj,ContractReferenceQuery as Jj,DocsGenerateCommand as Yj,DocsGeneratedEvent as Zj,DocsIndexDataView as $j,DocsIndexQuery as Fj,DocsLayoutPresentation as Kj,DocsPublishCommand as Qj,DocsPublishedEvent as Uj,DocsReferencePagePresentation as Vj,DocsSearchForm as Xj,ExampleCatalogDataView as Gj}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as Nj}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as Wj}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as Aj,serializeEventSpec as Lj,serializeFormSpec as Mj,serializeOperationSpec as Cj,serializePresentationSpec as _j}from"@contractspec/lib.contracts-spec/serialization";var N=null;function Ej(){let j=new wj;return j.register(Fj).register(Jj).register(Yj).register(Qj),j}function Ij(){if(!N)N=Ej();return N}function _(j,w){return Ij().get(j,w)}var W=null;function Pj(){let j=new jj;return j.register(Zj).register(Uj),j}function Rj(){if(!W)W=Pj();return W}function E(j,w){return Rj().get(j,w)}var A=null;function Oj(){let j=new Wj;return j.register(Kj).register(Vj),j}function qj(){if(!A)A=Oj();return A}function I(j,w){return qj().get(j,w)}var L=null;function Dj(){let j=new Bj;return j.register($j).register(Hj).register(Gj),j}function xj(){if(!L)L=Dj();return L}function P(j,w){return xj().get(j,w)}var M=null;function Sj(){let j=new Nj;return j.register(Xj),j}function bj(){if(!M)M=Sj();return M}function R(j,w){return bj().get(j)}function D(j,w){let B=_(j,w);return Cj(B)??void 0}function x(j,w){let B=E(j,w);return Lj(B)??void 0}function S(j,w){let B=I(j,w);return _j(B)??void 0}function b(j,w){let B=P(j,w);return Aj(B)??void 0}function T(j,w){let B=R(j,w);return Mj(B)??void 0}function Tj(){N=null}function hj(){W=null}function zj(){A=null}function vj(){L=null}function fj(){M=null}function ww(){Tj(),hj(),zj(),vj(),fj()}import{defaultDocRegistry as mj}from"@contractspec/lib.contracts-spec/docs";function kj(j){return j?.trim().toLowerCase()??""}function yj(j){for(let w of j??[]){let B=mj.get(w);if(B)return B.route}return}function h(j,w,B,J){let Z=j.meta.title??j.meta.key,H=yj(j.meta.docId),F=j.meta.description;return{key:j.meta.key,version:j.meta.version,type:w,title:Z,description:F,markdown:[`# ${Z}`,`- Key: ${j.meta.key}`,`- Type: ${w}`,`- Version: ${j.meta.version}`,H?`- Docs route: ${H}`:"",F?`
3
3
  ${F}`:""].filter(Boolean).join(`
4
- `),...H?{route:H}:{},...B?{schema:B}:{},...J?{policy:J}:{},tags:j.meta.tags??[],owners:j.meta.owners??[],stability:j.meta.stability}}function z(j){let w=j.includeSchema??!1,B=vj(j.type),J=_(j.key,j.version);if(J&&(!B||B==="operation"||B===J.meta.kind))return{reference:h(J,J.meta.kind,w?D(j.key,j.version):void 0,J.policy)};let Z=[{type:"data-view",spec:P(j.key,j.version),schema:w?b(j.key,j.version):void 0},{type:"form",spec:R(j.key,j.version),schema:w?T(j.key,j.version):void 0},{type:"presentation",spec:I(j.key,j.version),schema:w?S(j.key,j.version):void 0},{type:"event",spec:E(j.key,j.version),schema:w?x(j.key,j.version):void 0}];for(let H of Z)if(H.spec&&(!B||B===H.type))return{reference:h(H.spec,H.type,H.schema)};throw Error(`Contract reference not found: ${j.key}`)}import{definePrompt as v,PromptRegistry as mj}from"@contractspec/lib.contracts-spec";import Q from"zod";var f=["@contractspec"],m=["docs","mcp"];function Jw(j){let w=new mj;return w.register(v({meta:{key:"docs.navigator",version:"1.0.0",title:"Find relevant ContractSpec docs",description:"Guide agents to search, filter, and open the right ContractSpec docs.",tags:m,stability:"beta",owners:f},args:[{name:"topic",description:"Goal or subject to search for.",required:!1,schema:Q.string().optional()},{name:"kind",description:"Optional doc kind filter.",required:!1,schema:Q.string().optional()},{name:"tag",description:"Optional tag filter.",required:!1,schema:Q.string().optional()}],input:Q.object({topic:Q.string().optional(),kind:Q.string().optional(),tag:Q.string().optional()}),render:async({topic:B,kind:J,tag:Z})=>{let H=q(j,{query:B,kind:J,tag:Z,limit:3}),F=H.docs.length?H.docs.map(($)=>`- ${$.title} (${$.id}) -> ${$.route}`).join(`
4
+ `),...H?{route:H}:{},...B?{schema:B}:{},...J?{policy:J}:{},tags:j.meta.tags??[],owners:j.meta.owners??[],stability:j.meta.stability}}function z(j){let w=j.includeSchema??!1,B=kj(j.type),J=_(j.key,j.version);if(J&&(!B||B==="operation"||B===J.meta.kind))return{reference:h(J,J.meta.kind,w?D(j.key,j.version):void 0,J.policy)};let Z=[{type:"data-view",spec:P(j.key,j.version),schema:w?b(j.key,j.version):void 0},{type:"form",spec:R(j.key,j.version),schema:w?T(j.key,j.version):void 0},{type:"presentation",spec:I(j.key,j.version),schema:w?S(j.key,j.version):void 0},{type:"event",spec:E(j.key,j.version),schema:w?x(j.key,j.version):void 0}];for(let H of Z)if(H.spec&&(!B||B===H.type))return{reference:h(H.spec,H.type,H.schema)};throw Error(`Contract reference not found: ${j.key}`)}import{definePrompt as v,PromptRegistry as pj}from"@contractspec/lib.contracts-spec";import Q from"zod";var f=["@contractspec"],m=["docs","mcp"];function Qw(j){let w=new pj;return w.register(v({meta:{key:"docs.navigator",version:"1.0.0",title:"Find relevant ContractSpec docs",description:"Guide agents to search, filter, and open the right ContractSpec docs.",tags:m,stability:"beta",owners:f},args:[{name:"topic",description:"Goal or subject to search for.",required:!1,schema:Q.string().optional()},{name:"kind",description:"Optional doc kind filter.",required:!1,schema:Q.string().optional()},{name:"tag",description:"Optional tag filter.",required:!1,schema:Q.string().optional()}],input:Q.object({topic:Q.string().optional(),kind:Q.string().optional(),tag:Q.string().optional()}),render:async({topic:B,kind:J,tag:Z})=>{let H=q(j,{query:B,kind:J,tag:Z,limit:3}),F=H.docs.length?H.docs.map(($)=>`- ${$.title} (${$.id}) -> ${$.route}`).join(`
5
5
  `):"- No direct pre-match. Use docs_list_facets-v1_0_0 to browse tags and kinds.";return[{type:"text",text:["Use docs_search-v1_0_0 first, then read docs://doc/{id} for the strongest matches.","Use docs_resolve_route-v1_0_0 when the user already gives you a docs URL or route.","Use docs_list_facets-v1_0_0 or docs://facets to browse the docs taxonomy before guessing.",B?`Topic: ${B}`:"",J?`Kind: ${J}`:"",Z?`Tag: ${Z}`:"","Suggested starting docs:",F].filter(Boolean).join(`
6
6
  `)},{type:"resource",uri:"docs://index",title:"DocBlocks index"},{type:"resource",uri:"docs://facets",title:"Docs facets"}]}})),w.register(v({meta:{key:"docs.reference.guide",version:"1.0.0",title:"Resolve a ContractSpec reference",description:"Guide agents to fetch the canonical reference payload for a ContractSpec surface.",tags:m,stability:"beta",owners:f},args:[{name:"key",description:"ContractSpec key to resolve.",required:!0,schema:Q.string()},{name:"version",description:"Optional version override.",required:!1,schema:Q.string().optional()},{name:"type",description:"Optional surface type: command, query, form, data-view, presentation, event.",required:!1,schema:Q.string().optional()}],input:Q.object({key:Q.string(),version:Q.string().optional(),type:Q.string().optional()}),render:async({key:B,version:J,type:Z})=>{let H=z({key:B,version:J,type:Z,includeSchema:!0}).reference;return[{type:"text",text:["Use docs_contract_reference-v1_0_0 when you need the canonical docs payload for a ContractSpec surface.","Use docs_get-v1_0_0 only when you already know the exact DocBlock id and need raw markdown.",`Resolved key: ${H.key}`,`Resolved type: ${H.type}`,H.route?`Docs route: ${H.route}`:"",`Resource URI: docs://contract-reference/${encodeURIComponent(B)}`].filter(Boolean).join(`
7
- `)},{type:"resource",uri:`docs://contract-reference/${encodeURIComponent(B)}`,title:"Contract reference"}]}})),w}export{Jw as buildDocPrompts};
7
+ `)},{type:"resource",uri:`docs://contract-reference/${encodeURIComponent(B)}`,title:"Contract reference"}]}})),w}export{Qw as buildDocPrompts};
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{EventRegistry as Z,OperationSpecRegistry as _}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as $}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as z,ContractReferenceQuery as C,DocsGenerateCommand as E,DocsGeneratedEvent as R,DocsIndexDataView as P,DocsIndexQuery as I,DocsLayoutPresentation as q,DocsPublishCommand as T,DocsPublishedEvent as h,DocsReferencePagePresentation as m,DocsSearchForm as S,ExampleCatalogDataView as u}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as l}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as k}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as v,serializeEventSpec as d,serializeFormSpec as n,serializeOperationSpec as y,serializePresentationSpec as t}from"@contractspec/lib.contracts-spec/serialization";var B=null;function o(){let b=new _;return b.register(I).register(C).register(E).register(T),b}function p(){if(!B)B=o();return B}function K(b,f){return p().get(b,f)}var D=null;function g(){let b=new Z;return b.register(R).register(h),b}function i(){if(!D)D=g();return D}function L(b,f){return i().get(b,f)}var F=null;function c(){let b=new k;return b.register(q).register(m),b}function a(){if(!F)F=c();return F}function M(b,f){return a().get(b,f)}var G=null;function r(){let b=new $;return b.register(P).register(z).register(u),b}function s(){if(!G)G=r();return G}function N(b,f){return s().get(b,f)}var H=null;function e(){let b=new l;return b.register(S),b}function bb(){if(!H)H=e();return H}function O(b,f){return bb().get(b)}function Q(b,f){let j=K(b,f);return y(j)??void 0}function U(b,f){let j=L(b,f);return d(j)??void 0}function V(b,f){let j=M(b,f);return t(j)??void 0}function W(b,f){let j=N(b,f);return v(j)??void 0}function X(b,f){let j=O(b,f);return n(j)??void 0}function fb(){B=null}function jb(){D=null}function wb(){F=null}function xb(){G=null}function Ab(){H=null}function Nb(){fb(),jb(),wb(),xb(),Ab()}import{defaultDocRegistry as Bb}from"@contractspec/lib.contracts-spec/docs";function Db(b){return b?.trim().toLowerCase()??""}function Fb(b){for(let f of b??[]){let j=Bb.get(f);if(j)return j.route}return}function Y(b,f,j,x){let A=b.meta.title??b.meta.key,w=Fb(b.meta.docId),J=b.meta.description;return{key:b.meta.key,version:b.meta.version,type:f,title:A,description:J,markdown:[`# ${A}`,`- Key: ${b.meta.key}`,`- Type: ${f}`,`- Version: ${b.meta.version}`,w?`- Docs route: ${w}`:"",J?`
2
+ var Z=Object.defineProperty;var _=(b)=>b;function $(b,f){this[b]=_.bind(null,f)}var Kb=(b,f)=>{for(var j in f)Z(b,j,{get:f[j],enumerable:!0,configurable:!0,set:$.bind(f,j)})};var Lb=(b,f)=>()=>(b&&(f=b(b=0)),f);import{EventRegistry as z,OperationSpecRegistry as C}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as E}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as R,ContractReferenceQuery as P,DocsGenerateCommand as I,DocsGeneratedEvent as q,DocsIndexDataView as T,DocsIndexQuery as h,DocsLayoutPresentation as m,DocsPublishCommand as S,DocsPublishedEvent as u,DocsReferencePagePresentation as l,DocsSearchForm as k,ExampleCatalogDataView as v}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as d}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as n}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as y,serializeEventSpec as t,serializeFormSpec as o,serializeOperationSpec as p,serializePresentationSpec as g}from"@contractspec/lib.contracts-spec/serialization";var B=null;function i(){let b=new C;return b.register(h).register(P).register(I).register(S),b}function c(){if(!B)B=i();return B}function K(b,f){return c().get(b,f)}var D=null;function a(){let b=new z;return b.register(q).register(u),b}function r(){if(!D)D=a();return D}function L(b,f){return r().get(b,f)}var F=null;function s(){let b=new n;return b.register(m).register(l),b}function e(){if(!F)F=s();return F}function M(b,f){return e().get(b,f)}var G=null;function bb(){let b=new E;return b.register(T).register(R).register(v),b}function fb(){if(!G)G=bb();return G}function N(b,f){return fb().get(b,f)}var H=null;function jb(){let b=new d;return b.register(k),b}function wb(){if(!H)H=jb();return H}function O(b,f){return wb().get(b)}function Q(b,f){let j=K(b,f);return p(j)??void 0}function U(b,f){let j=L(b,f);return t(j)??void 0}function V(b,f){let j=M(b,f);return g(j)??void 0}function W(b,f){let j=N(b,f);return y(j)??void 0}function X(b,f){let j=O(b,f);return o(j)??void 0}function xb(){B=null}function Ab(){D=null}function Bb(){F=null}function Db(){G=null}function Fb(){H=null}function Xb(){xb(),Ab(),Bb(),Db(),Fb()}import{defaultDocRegistry as Gb}from"@contractspec/lib.contracts-spec/docs";function Hb(b){return b?.trim().toLowerCase()??""}function Jb(b){for(let f of b??[]){let j=Gb.get(f);if(j)return j.route}return}function Y(b,f,j,x){let A=b.meta.title??b.meta.key,w=Jb(b.meta.docId),J=b.meta.description;return{key:b.meta.key,version:b.meta.version,type:f,title:A,description:J,markdown:[`# ${A}`,`- Key: ${b.meta.key}`,`- Type: ${f}`,`- Version: ${b.meta.version}`,w?`- Docs route: ${w}`:"",J?`
3
3
  ${J}`:""].filter(Boolean).join(`
4
- `),...w?{route:w}:{},...j?{schema:j}:{},...x?{policy:x}:{},tags:b.meta.tags??[],owners:b.meta.owners??[],stability:b.meta.stability}}function Vb(b){let f=b.includeSchema??!1,j=Db(b.type),x=K(b.key,b.version);if(x&&(!j||j==="operation"||j===x.meta.kind))return{reference:Y(x,x.meta.kind,f?Q(b.key,b.version):void 0,x.policy)};let A=[{type:"data-view",spec:N(b.key,b.version),schema:f?W(b.key,b.version):void 0},{type:"form",spec:O(b.key,b.version),schema:f?X(b.key,b.version):void 0},{type:"presentation",spec:M(b.key,b.version),schema:f?V(b.key,b.version):void 0},{type:"event",spec:L(b.key,b.version),schema:f?U(b.key,b.version):void 0}];for(let w of A)if(w.spec&&(!j||j===w.type))return{reference:Y(w.spec,w.type,w.schema)};throw Error(`Contract reference not found: ${b.key}`)}export{Vb as resolveContractReference};
4
+ `),...w?{route:w}:{},...j?{schema:j}:{},...x?{policy:x}:{},tags:b.meta.tags??[],owners:b.meta.owners??[],stability:b.meta.stability}}function $b(b){let f=b.includeSchema??!1,j=Hb(b.type),x=K(b.key,b.version);if(x&&(!j||j==="operation"||j===x.meta.kind))return{reference:Y(x,x.meta.kind,f?Q(b.key,b.version):void 0,x.policy)};let A=[{type:"data-view",spec:N(b.key,b.version),schema:f?W(b.key,b.version):void 0},{type:"form",spec:O(b.key,b.version),schema:f?X(b.key,b.version):void 0},{type:"presentation",spec:M(b.key,b.version),schema:f?V(b.key,b.version):void 0},{type:"event",spec:L(b.key,b.version),schema:f?U(b.key,b.version):void 0}];for(let w of A)if(w.spec&&(!j||j===w.type))return{reference:Y(w.spec,w.type,w.schema)};throw Error(`Contract reference not found: ${b.key}`)}export{$b as resolveContractReference};
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{defaultDocRegistry as c}from"@contractspec/lib.contracts-spec/docs";var i=20,a=100;function U(j){return j?.trim().toLowerCase()??""}function x(j){let w=decodeURIComponent(j).trim();if(!w)return"/";return w.startsWith("/")?w:`/${w}`}function o(j){return(Array.isArray(j)?j:j?[j]:[]).map((H)=>U(H)).filter(Boolean)}function t(j){if(!j||Number.isNaN(j))return i;return Math.min(Math.max(j,1),a)}function s(j){if(!j||Number.isNaN(j))return 0;return Math.max(j,0)}function _({block:j,route:w}){return{id:j.id,title:j.title,summary:j.summary??"",route:w,visibility:j.visibility??"public",kind:j.kind??"reference",version:j.version??"1.0.0",tags:j.tags??[]}}function r(j,w){if(!w)return 1;let H=w.split(/\s+/).filter(Boolean),J=U(j.block.title),Y=U(j.block.id),N=U(j.block.summary),$=U(j.block.body),K=U(j.route),Q=(j.block.tags??[]).map((W)=>U(W)),L=[J,Y,N,$,K,...Q].join(" ");if(H.some((W)=>!L.includes(W)))return 0;let V=0;for(let W of H){if(Y.includes(W))V+=8;if(J.includes(W))V+=7;if(Q.some((X)=>X.includes(W)))V+=5;if(N.includes(W))V+=4;if(K.includes(W))V+=3;if($.includes(W))V+=2}return V}function D(j,w){let H=U(typeof w.query==="string"?w.query:void 0),J=o(w.tag),Y=U(typeof w.visibility==="string"?w.visibility:void 0),N=U(typeof w.kind==="string"?w.kind:void 0),$=t(typeof w.limit==="number"?w.limit:void 0),K=s(typeof w.offset==="number"?w.offset:void 0),Q=j.map((W)=>({doc:_(W),score:r(W,H)})).filter(({doc:W,score:X})=>{let y=H?X>0:!0,l=J.length?J.every((n)=>W.tags.some((u)=>U(u).includes(n))):!0,g=Y?U(W.visibility)===Y:!0,d=N?U(W.kind)===N:!0;return y&&l&&g&&d}).sort((W,X)=>{if(X.score!==W.score)return X.score-W.score;return W.doc.title.localeCompare(X.doc.title)}),L=Q.slice(K,K+$).map(({doc:W})=>W),V=K+L.length<Q.length?K+L.length:void 0;return{docs:L,items:L,total:Q.length,...V!=null?{nextOffset:V}:{}}}function S(j){let w=decodeURIComponent(j),H=c.get(w);if(!H)return;return{doc:_(H),content:String(H.block.body??"")}}function b(j,w){let H=x(w),J=j.find((Y)=>x(Y.route)===H);if(!J)return;return{doc:_(J),content:String(J.block.body??"")}}function h(j){let w=new Map,H=new Map,J=new Map;for(let N of j){let $=N.block.kind??"reference",K=N.block.visibility??"public";H.set($,(H.get($)??0)+1),J.set(K,(J.get(K)??0)+1);for(let Q of N.block.tags??[])w.set(Q,(w.get(Q)??0)+1)}let Y=(N,$)=>[...N.entries()].sort((K,Q)=>Q[1]-K[1]||K[0].localeCompare(Q[0])).map(([K,Q])=>({[$]:K,count:Q}));return{totalDocs:j.length,tags:Y(w,"tag"),kinds:Y(H,"kind"),visibilities:Y(J,"visibility")}}import{EventRegistry as e,OperationSpecRegistry as jj}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as wj}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as Hj,ContractReferenceQuery as Jj,DocsGenerateCommand as Nj,DocsGeneratedEvent as Wj,DocsIndexDataView as Yj,DocsIndexQuery as Zj,DocsLayoutPresentation as $j,DocsPublishCommand as Kj,DocsPublishedEvent as Qj,DocsReferencePagePresentation as Uj,DocsSearchForm as Vj,ExampleCatalogDataView as Xj}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as Bj}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as Fj}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as Lj,serializeEventSpec as Ej,serializeFormSpec as Mj,serializeOperationSpec as Gj,serializePresentationSpec as Aj}from"@contractspec/lib.contracts-spec/serialization";var E=null;function Cj(){let j=new jj;return j.register(Zj).register(Jj).register(Nj).register(Kj),j}function _j(){if(!E)E=Cj();return E}function O(j,w){return _j().get(j,w)}var M=null;function Oj(){let j=new e;return j.register(Wj).register(Qj),j}function qj(){if(!M)M=Oj();return M}function q(j,w){return qj().get(j,w)}var G=null;function Pj(){let j=new Fj;return j.register($j).register(Uj),j}function Ij(){if(!G)G=Pj();return G}function P(j,w){return Ij().get(j,w)}var A=null;function Rj(){let j=new wj;return j.register(Yj).register(Hj).register(Xj),j}function xj(){if(!A)A=Rj();return A}function I(j,w){return xj().get(j,w)}var C=null;function Dj(){let j=new Bj;return j.register(Vj),j}function Sj(){if(!C)C=Dj();return C}function R(j,w){return Sj().get(j)}function z(j,w){let H=O(j,w);return Gj(H)??void 0}function T(j,w){let H=q(j,w);return Ej(H)??void 0}function v(j,w){let H=P(j,w);return Aj(H)??void 0}function f(j,w){let H=I(j,w);return Lj(H)??void 0}function m(j,w){let H=R(j,w);return Mj(H)??void 0}function bj(){E=null}function hj(){M=null}function zj(){G=null}function Tj(){A=null}function vj(){C=null}function aj(){bj(),hj(),zj(),Tj(),vj()}import{defaultDocRegistry as fj}from"@contractspec/lib.contracts-spec/docs";function mj(j){return j?.trim().toLowerCase()??""}function kj(j){for(let w of j??[]){let H=fj.get(w);if(H)return H.route}return}function k(j,w,H,J){let Y=j.meta.title??j.meta.key,N=kj(j.meta.docId),$=j.meta.description;return{key:j.meta.key,version:j.meta.version,type:w,title:Y,description:$,markdown:[`# ${Y}`,`- Key: ${j.meta.key}`,`- Type: ${w}`,`- Version: ${j.meta.version}`,N?`- Docs route: ${N}`:"",$?`
2
+ var c=Object.defineProperty;var i=(j)=>j;function a(j,w){this[j]=i.bind(null,w)}var dj=(j,w)=>{for(var H in w)c(j,H,{get:w[H],enumerable:!0,configurable:!0,set:a.bind(w,H)})};var nj=(j,w)=>()=>(j&&(w=j(j=0)),w);import{defaultDocRegistry as o}from"@contractspec/lib.contracts-spec/docs";var t=20,s=100;function U(j){return j?.trim().toLowerCase()??""}function x(j){let w=decodeURIComponent(j).trim();if(!w)return"/";return w.startsWith("/")?w:`/${w}`}function r(j){return(Array.isArray(j)?j:j?[j]:[]).map((H)=>U(H)).filter(Boolean)}function e(j){if(!j||Number.isNaN(j))return t;return Math.min(Math.max(j,1),s)}function jj(j){if(!j||Number.isNaN(j))return 0;return Math.max(j,0)}function _({block:j,route:w}){return{id:j.id,title:j.title,summary:j.summary??"",route:w,visibility:j.visibility??"public",kind:j.kind??"reference",version:j.version??"1.0.0",tags:j.tags??[]}}function wj(j,w){if(!w)return 1;let H=w.split(/\s+/).filter(Boolean),J=U(j.block.title),Y=U(j.block.id),N=U(j.block.summary),$=U(j.block.body),K=U(j.route),Q=(j.block.tags??[]).map((W)=>U(W)),L=[J,Y,N,$,K,...Q].join(" ");if(H.some((W)=>!L.includes(W)))return 0;let V=0;for(let W of H){if(Y.includes(W))V+=8;if(J.includes(W))V+=7;if(Q.some((X)=>X.includes(W)))V+=5;if(N.includes(W))V+=4;if(K.includes(W))V+=3;if($.includes(W))V+=2}return V}function D(j,w){let H=U(typeof w.query==="string"?w.query:void 0),J=r(w.tag),Y=U(typeof w.visibility==="string"?w.visibility:void 0),N=U(typeof w.kind==="string"?w.kind:void 0),$=e(typeof w.limit==="number"?w.limit:void 0),K=jj(typeof w.offset==="number"?w.offset:void 0),Q=j.map((W)=>({doc:_(W),score:wj(W,H)})).filter(({doc:W,score:X})=>{let y=H?X>0:!0,l=J.length?J.every((n)=>W.tags.some((u)=>U(u).includes(n))):!0,g=Y?U(W.visibility)===Y:!0,d=N?U(W.kind)===N:!0;return y&&l&&g&&d}).sort((W,X)=>{if(X.score!==W.score)return X.score-W.score;return W.doc.title.localeCompare(X.doc.title)}),L=Q.slice(K,K+$).map(({doc:W})=>W),V=K+L.length<Q.length?K+L.length:void 0;return{docs:L,items:L,total:Q.length,...V!=null?{nextOffset:V}:{}}}function S(j){let w=decodeURIComponent(j),H=o.get(w);if(!H)return;return{doc:_(H),content:String(H.block.body??"")}}function b(j,w){let H=x(w),J=j.find((Y)=>x(Y.route)===H);if(!J)return;return{doc:_(J),content:String(J.block.body??"")}}function h(j){let w=new Map,H=new Map,J=new Map;for(let N of j){let $=N.block.kind??"reference",K=N.block.visibility??"public";H.set($,(H.get($)??0)+1),J.set(K,(J.get(K)??0)+1);for(let Q of N.block.tags??[])w.set(Q,(w.get(Q)??0)+1)}let Y=(N,$)=>[...N.entries()].sort((K,Q)=>Q[1]-K[1]||K[0].localeCompare(Q[0])).map(([K,Q])=>({[$]:K,count:Q}));return{totalDocs:j.length,tags:Y(w,"tag"),kinds:Y(H,"kind"),visibilities:Y(J,"visibility")}}import{EventRegistry as Hj,OperationSpecRegistry as Jj}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as Nj}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as Wj,ContractReferenceQuery as Yj,DocsGenerateCommand as Zj,DocsGeneratedEvent as $j,DocsIndexDataView as Kj,DocsIndexQuery as Qj,DocsLayoutPresentation as Uj,DocsPublishCommand as Vj,DocsPublishedEvent as Xj,DocsReferencePagePresentation as Bj,DocsSearchForm as Fj,ExampleCatalogDataView as Lj}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as Ej}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as Mj}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as Gj,serializeEventSpec as Aj,serializeFormSpec as Cj,serializeOperationSpec as _j,serializePresentationSpec as Oj}from"@contractspec/lib.contracts-spec/serialization";var E=null;function qj(){let j=new Jj;return j.register(Qj).register(Yj).register(Zj).register(Vj),j}function Pj(){if(!E)E=qj();return E}function O(j,w){return Pj().get(j,w)}var M=null;function Ij(){let j=new Hj;return j.register($j).register(Xj),j}function Rj(){if(!M)M=Ij();return M}function q(j,w){return Rj().get(j,w)}var G=null;function xj(){let j=new Mj;return j.register(Uj).register(Bj),j}function Dj(){if(!G)G=xj();return G}function P(j,w){return Dj().get(j,w)}var A=null;function Sj(){let j=new Nj;return j.register(Kj).register(Wj).register(Lj),j}function bj(){if(!A)A=Sj();return A}function I(j,w){return bj().get(j,w)}var C=null;function hj(){let j=new Ej;return j.register(Fj),j}function zj(){if(!C)C=hj();return C}function R(j,w){return zj().get(j)}function z(j,w){let H=O(j,w);return _j(H)??void 0}function T(j,w){let H=q(j,w);return Aj(H)??void 0}function v(j,w){let H=P(j,w);return Oj(H)??void 0}function f(j,w){let H=I(j,w);return Gj(H)??void 0}function m(j,w){let H=R(j,w);return Cj(H)??void 0}function Tj(){E=null}function vj(){M=null}function fj(){G=null}function mj(){A=null}function kj(){C=null}function jw(){Tj(),vj(),fj(),mj(),kj()}import{defaultDocRegistry as pj}from"@contractspec/lib.contracts-spec/docs";function yj(j){return j?.trim().toLowerCase()??""}function lj(j){for(let w of j??[]){let H=pj.get(w);if(H)return H.route}return}function k(j,w,H,J){let Y=j.meta.title??j.meta.key,N=lj(j.meta.docId),$=j.meta.description;return{key:j.meta.key,version:j.meta.version,type:w,title:Y,description:$,markdown:[`# ${Y}`,`- Key: ${j.meta.key}`,`- Type: ${w}`,`- Version: ${j.meta.version}`,N?`- Docs route: ${N}`:"",$?`
3
3
  ${$}`:""].filter(Boolean).join(`
4
- `),...N?{route:N}:{},...H?{schema:H}:{},...J?{policy:J}:{},tags:j.meta.tags??[],owners:j.meta.owners??[],stability:j.meta.stability}}function p(j){let w=j.includeSchema??!1,H=mj(j.type),J=O(j.key,j.version);if(J&&(!H||H==="operation"||H===J.meta.kind))return{reference:k(J,J.meta.kind,w?z(j.key,j.version):void 0,J.policy)};let Y=[{type:"data-view",spec:I(j.key,j.version),schema:w?f(j.key,j.version):void 0},{type:"form",spec:R(j.key,j.version),schema:w?m(j.key,j.version):void 0},{type:"presentation",spec:P(j.key,j.version),schema:w?v(j.key,j.version):void 0},{type:"event",spec:q(j.key,j.version),schema:w?T(j.key,j.version):void 0}];for(let N of Y)if(N.spec&&(!H||H===N.type))return{reference:k(N.spec,N.type,N.schema)};throw Error(`Contract reference not found: ${j.key}`)}import{defineResourceTemplate as B,ResourceRegistry as pj}from"@contractspec/lib.contracts-spec";import Z from"zod";var F=["docs","mcp"];function Jw(j){let w=new pj,H=(J)=>D(j,J);return w.register(B({meta:{uriTemplate:"docs://index",title:"DocBlocks index",description:"Default ContractSpec docs index resource.",mimeType:"application/json",tags:F},input:Z.object({}),resolve:async()=>({uri:"docs://index",mimeType:"application/json",data:JSON.stringify(H({}),null,2)})})),w.register(B({meta:{uriTemplate:"docs://index{?query,tag,kind,visibility,limit,offset}",title:"DocBlocks index",description:"Search and paginate ContractSpec docs by query, tag, kind, or visibility.",mimeType:"application/json",tags:F},input:Z.object({query:Z.string().optional(),tag:Z.string().optional(),kind:Z.string().optional(),visibility:Z.string().optional(),limit:Z.coerce.number().optional(),offset:Z.coerce.number().optional()}),resolve:async(J)=>({uri:"docs://index",mimeType:"application/json",data:JSON.stringify(H(J),null,2)})})),w.register(B({meta:{uriTemplate:"docs://list",title:"DocBlocks index (legacy alias)",description:"Compatibility alias for the docs index resource.",mimeType:"application/json",tags:F},input:Z.object({}),resolve:async()=>({uri:"docs://list",mimeType:"application/json",data:JSON.stringify(H({}),null,2)})})),w.register(B({meta:{uriTemplate:"docs://doc/{id}",title:"Doc markdown",description:"Fetch a single DocBlock body by id as markdown.",mimeType:"text/markdown",tags:F},input:Z.object({id:Z.string()}),resolve:async({id:J})=>{let Y=S(J);if(!Y)return{uri:`docs://doc/${encodeURIComponent(J)}`,mimeType:"text/plain",data:`DocBlock not found: ${J}`};return{uri:`docs://doc/${encodeURIComponent(J)}`,mimeType:"text/markdown",data:Y.content}}})),w.register(B({meta:{uriTemplate:"docs://route/{routePath}",title:"Doc by route",description:"Resolve a docs route to the matching DocBlock summary and body.",mimeType:"application/json",tags:F},input:Z.object({routePath:Z.string()}),resolve:async({routePath:J})=>({uri:`docs://route/${encodeURIComponent(J)}`,mimeType:"application/json",data:JSON.stringify(b(j,J)??{error:"not_found",route:J},null,2)})})),w.register(B({meta:{uriTemplate:"docs://facets",title:"Docs facets",description:"Counts of available tags, kinds, and visibilities across docs.",mimeType:"application/json",tags:F},input:Z.object({}),resolve:async()=>({uri:"docs://facets",mimeType:"application/json",data:JSON.stringify(h(j),null,2)})})),w.register(B({meta:{uriTemplate:"docs://contract-reference/{key}{?version,type,includeSchema}",title:"Contract reference",description:"Resolve a ContractSpec surface into a docs-ready reference payload.",mimeType:"application/json",tags:F},input:Z.object({key:Z.string(),version:Z.string().optional(),type:Z.string().optional(),includeSchema:Z.coerce.boolean().optional()}),resolve:async({key:J,version:Y,type:N,includeSchema:$})=>({uri:`docs://contract-reference/${encodeURIComponent(J)}`,mimeType:"application/json",data:JSON.stringify(p({key:J,version:Y,type:N,includeSchema:$}),null,2)})})),w}export{Jw as buildDocResources};
4
+ `),...N?{route:N}:{},...H?{schema:H}:{},...J?{policy:J}:{},tags:j.meta.tags??[],owners:j.meta.owners??[],stability:j.meta.stability}}function p(j){let w=j.includeSchema??!1,H=yj(j.type),J=O(j.key,j.version);if(J&&(!H||H==="operation"||H===J.meta.kind))return{reference:k(J,J.meta.kind,w?z(j.key,j.version):void 0,J.policy)};let Y=[{type:"data-view",spec:I(j.key,j.version),schema:w?f(j.key,j.version):void 0},{type:"form",spec:R(j.key,j.version),schema:w?m(j.key,j.version):void 0},{type:"presentation",spec:P(j.key,j.version),schema:w?v(j.key,j.version):void 0},{type:"event",spec:q(j.key,j.version),schema:w?T(j.key,j.version):void 0}];for(let N of Y)if(N.spec&&(!H||H===N.type))return{reference:k(N.spec,N.type,N.schema)};throw Error(`Contract reference not found: ${j.key}`)}import{defineResourceTemplate as B,ResourceRegistry as gj}from"@contractspec/lib.contracts-spec";import Z from"zod";var F=["docs","mcp"];function Kw(j){let w=new gj,H=(J)=>D(j,J);return w.register(B({meta:{uriTemplate:"docs://index",title:"DocBlocks index",description:"Default ContractSpec docs index resource.",mimeType:"application/json",tags:F},input:Z.object({}),resolve:async()=>({uri:"docs://index",mimeType:"application/json",data:JSON.stringify(H({}),null,2)})})),w.register(B({meta:{uriTemplate:"docs://index{?query,tag,kind,visibility,limit,offset}",title:"DocBlocks index",description:"Search and paginate ContractSpec docs by query, tag, kind, or visibility.",mimeType:"application/json",tags:F},input:Z.object({query:Z.string().optional(),tag:Z.string().optional(),kind:Z.string().optional(),visibility:Z.string().optional(),limit:Z.coerce.number().optional(),offset:Z.coerce.number().optional()}),resolve:async(J)=>({uri:"docs://index",mimeType:"application/json",data:JSON.stringify(H(J),null,2)})})),w.register(B({meta:{uriTemplate:"docs://list",title:"DocBlocks index (legacy alias)",description:"Compatibility alias for the docs index resource.",mimeType:"application/json",tags:F},input:Z.object({}),resolve:async()=>({uri:"docs://list",mimeType:"application/json",data:JSON.stringify(H({}),null,2)})})),w.register(B({meta:{uriTemplate:"docs://doc/{id}",title:"Doc markdown",description:"Fetch a single DocBlock body by id as markdown.",mimeType:"text/markdown",tags:F},input:Z.object({id:Z.string()}),resolve:async({id:J})=>{let Y=S(J);if(!Y)return{uri:`docs://doc/${encodeURIComponent(J)}`,mimeType:"text/plain",data:`DocBlock not found: ${J}`};return{uri:`docs://doc/${encodeURIComponent(J)}`,mimeType:"text/markdown",data:Y.content}}})),w.register(B({meta:{uriTemplate:"docs://route/{routePath}",title:"Doc by route",description:"Resolve a docs route to the matching DocBlock summary and body.",mimeType:"application/json",tags:F},input:Z.object({routePath:Z.string()}),resolve:async({routePath:J})=>({uri:`docs://route/${encodeURIComponent(J)}`,mimeType:"application/json",data:JSON.stringify(b(j,J)??{error:"not_found",route:J},null,2)})})),w.register(B({meta:{uriTemplate:"docs://facets",title:"Docs facets",description:"Counts of available tags, kinds, and visibilities across docs.",mimeType:"application/json",tags:F},input:Z.object({}),resolve:async()=>({uri:"docs://facets",mimeType:"application/json",data:JSON.stringify(h(j),null,2)})})),w.register(B({meta:{uriTemplate:"docs://contract-reference/{key}{?version,type,includeSchema}",title:"Contract reference",description:"Resolve a ContractSpec surface into a docs-ready reference payload.",mimeType:"application/json",tags:F},input:Z.object({key:Z.string(),version:Z.string().optional(),type:Z.string().optional(),includeSchema:Z.coerce.boolean().optional()}),resolve:async({key:J,version:Y,type:N,includeSchema:$})=>({uri:`docs://contract-reference/${encodeURIComponent(J)}`,mimeType:"application/json",data:JSON.stringify(p({key:J,version:Y,type:N,includeSchema:$}),null,2)})})),w}export{Kw as buildDocResources};
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{defaultDocRegistry as o}from"@contractspec/lib.contracts-spec/docs";var s=20,t=100;function V(j){return j?.trim().toLowerCase()??""}function O(j){let w=decodeURIComponent(j).trim();if(!w)return"/";return w.startsWith("/")?w:`/${w}`}function r(j){return(Array.isArray(j)?j:j?[j]:[]).map((H)=>V(H)).filter(Boolean)}function e(j){if(!j||Number.isNaN(j))return s;return Math.min(Math.max(j,1),t)}function jj(j){if(!j||Number.isNaN(j))return 0;return Math.max(j,0)}function E({block:j,route:w}){return{id:j.id,title:j.title,summary:j.summary??"",route:w,visibility:j.visibility??"public",kind:j.kind??"reference",version:j.version??"1.0.0",tags:j.tags??[]}}function wj(j,w){if(!w)return 1;let H=w.split(/\s+/).filter(Boolean),J=V(j.block.title),$=V(j.block.id),Z=V(j.block.summary),U=V(j.block.body),K=V(j.route),Q=(j.block.tags??[]).map((Y)=>V(Y)),L=[J,$,Z,U,K,...Q].join(" ");if(H.some((Y)=>!L.includes(Y)))return 0;let X=0;for(let Y of H){if($.includes(Y))X+=8;if(J.includes(Y))X+=7;if(Q.some((B)=>B.includes(Y)))X+=5;if(Z.includes(Y))X+=4;if(K.includes(Y))X+=3;if(U.includes(Y))X+=2}return X}function S(j,w){let H=V(typeof w.query==="string"?w.query:void 0),J=r(w.tag),$=V(typeof w.visibility==="string"?w.visibility:void 0),Z=V(typeof w.kind==="string"?w.kind:void 0),U=e(typeof w.limit==="number"?w.limit:void 0),K=jj(typeof w.offset==="number"?w.offset:void 0),Q=j.map((Y)=>({doc:E(Y),score:wj(Y,H)})).filter(({doc:Y,score:B})=>{let g=H?B>0:!0,u=J.length?J.every((i)=>Y.tags.some((a)=>V(a).includes(i))):!0,n=$?V(Y.visibility)===$:!0,c=Z?V(Y.kind)===Z:!0;return g&&u&&n&&c}).sort((Y,B)=>{if(B.score!==Y.score)return B.score-Y.score;return Y.doc.title.localeCompare(B.doc.title)}),L=Q.slice(K,K+U).map(({doc:Y})=>Y),X=K+L.length<Q.length?K+L.length:void 0;return{docs:L,items:L,total:Q.length,...X!=null?{nextOffset:X}:{}}}function h(j){let w=decodeURIComponent(j),H=o.get(w);if(!H)return;return{doc:E(H),content:String(H.block.body??"")}}function T(j,w){let H=O(w),J=j.find(($)=>O($.route)===H);if(!J)return;return{doc:E(J),content:String(J.block.body??"")}}function v(j){let w=new Map,H=new Map,J=new Map;for(let Z of j){let U=Z.block.kind??"reference",K=Z.block.visibility??"public";H.set(U,(H.get(U)??0)+1),J.set(K,(J.get(K)??0)+1);for(let Q of Z.block.tags??[])w.set(Q,(w.get(Q)??0)+1)}let $=(Z,U)=>[...Z.entries()].sort((K,Q)=>Q[1]-K[1]||K[0].localeCompare(Q[0])).map(([K,Q])=>({[U]:K,count:Q}));return{totalDocs:j.length,tags:$(w,"tag"),kinds:$(H,"kind"),visibilities:$(J,"visibility")}}import{EventRegistry as Hj,OperationSpecRegistry as Jj}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as Yj}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as Zj,ContractReferenceQuery as $j,DocsGenerateCommand as Kj,DocsGeneratedEvent as Qj,DocsIndexDataView as Uj,DocsIndexQuery as Vj,DocsLayoutPresentation as Xj,DocsPublishCommand as Bj,DocsPublishedEvent as Fj,DocsReferencePagePresentation as Lj,DocsSearchForm as Nj,ExampleCatalogDataView as Pj}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as Wj}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as Aj}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as Gj,serializeEventSpec as qj,serializeFormSpec as Mj,serializeOperationSpec as _j,serializePresentationSpec as Ij}from"@contractspec/lib.contracts-spec/serialization";var q=null;function xj(){let j=new Jj;return j.register(Vj).register($j).register(Kj).register(Bj),j}function Ej(){if(!q)q=xj();return q}function R(j,w){return Ej().get(j,w)}var M=null;function Rj(){let j=new Hj;return j.register(Qj).register(Fj),j}function zj(){if(!M)M=Rj();return M}function z(j,w){return zj().get(j,w)}var _=null;function Cj(){let j=new Aj;return j.register(Xj).register(Lj),j}function bj(){if(!_)_=Cj();return _}function C(j,w){return bj().get(j,w)}var I=null;function Dj(){let j=new Yj;return j.register(Uj).register(Zj).register(Pj),j}function Oj(){if(!I)I=Dj();return I}function b(j,w){return Oj().get(j,w)}var x=null;function Sj(){let j=new Wj;return j.register(Nj),j}function hj(){if(!x)x=Sj();return x}function D(j,w){return hj().get(j)}function k(j,w){let H=R(j,w);return _j(H)??void 0}function f(j,w){let H=z(j,w);return qj(H)??void 0}function m(j,w){let H=C(j,w);return Ij(H)??void 0}function y(j,w){let H=b(j,w);return Gj(H)??void 0}function p(j,w){let H=D(j,w);return Mj(H)??void 0}function Tj(){q=null}function vj(){M=null}function kj(){_=null}function fj(){I=null}function mj(){x=null}function Kw(){Tj(),vj(),kj(),fj(),mj()}import{defaultDocRegistry as yj}from"@contractspec/lib.contracts-spec/docs";function pj(j){return j?.trim().toLowerCase()??""}function dj(j){for(let w of j??[]){let H=yj.get(w);if(H)return H.route}return}function d(j,w,H,J){let $=j.meta.title??j.meta.key,Z=dj(j.meta.docId),U=j.meta.description;return{key:j.meta.key,version:j.meta.version,type:w,title:$,description:U,markdown:[`# ${$}`,`- Key: ${j.meta.key}`,`- Type: ${w}`,`- Version: ${j.meta.version}`,Z?`- Docs route: ${Z}`:"",U?`
2
+ var o=Object.defineProperty;var s=(j)=>j;function t(j,w){this[j]=s.bind(null,w)}var Hw=(j,w)=>{for(var H in w)o(j,H,{get:w[H],enumerable:!0,configurable:!0,set:t.bind(w,H)})};var Jw=(j,w)=>()=>(j&&(w=j(j=0)),w);import{defaultDocRegistry as r}from"@contractspec/lib.contracts-spec/docs";var e=20,jj=100;function V(j){return j?.trim().toLowerCase()??""}function O(j){let w=decodeURIComponent(j).trim();if(!w)return"/";return w.startsWith("/")?w:`/${w}`}function wj(j){return(Array.isArray(j)?j:j?[j]:[]).map((H)=>V(H)).filter(Boolean)}function Hj(j){if(!j||Number.isNaN(j))return e;return Math.min(Math.max(j,1),jj)}function Jj(j){if(!j||Number.isNaN(j))return 0;return Math.max(j,0)}function E({block:j,route:w}){return{id:j.id,title:j.title,summary:j.summary??"",route:w,visibility:j.visibility??"public",kind:j.kind??"reference",version:j.version??"1.0.0",tags:j.tags??[]}}function Yj(j,w){if(!w)return 1;let H=w.split(/\s+/).filter(Boolean),J=V(j.block.title),$=V(j.block.id),Z=V(j.block.summary),U=V(j.block.body),K=V(j.route),Q=(j.block.tags??[]).map((Y)=>V(Y)),L=[J,$,Z,U,K,...Q].join(" ");if(H.some((Y)=>!L.includes(Y)))return 0;let X=0;for(let Y of H){if($.includes(Y))X+=8;if(J.includes(Y))X+=7;if(Q.some((B)=>B.includes(Y)))X+=5;if(Z.includes(Y))X+=4;if(K.includes(Y))X+=3;if(U.includes(Y))X+=2}return X}function S(j,w){let H=V(typeof w.query==="string"?w.query:void 0),J=wj(w.tag),$=V(typeof w.visibility==="string"?w.visibility:void 0),Z=V(typeof w.kind==="string"?w.kind:void 0),U=Hj(typeof w.limit==="number"?w.limit:void 0),K=Jj(typeof w.offset==="number"?w.offset:void 0),Q=j.map((Y)=>({doc:E(Y),score:Yj(Y,H)})).filter(({doc:Y,score:B})=>{let g=H?B>0:!0,u=J.length?J.every((i)=>Y.tags.some((a)=>V(a).includes(i))):!0,n=$?V(Y.visibility)===$:!0,c=Z?V(Y.kind)===Z:!0;return g&&u&&n&&c}).sort((Y,B)=>{if(B.score!==Y.score)return B.score-Y.score;return Y.doc.title.localeCompare(B.doc.title)}),L=Q.slice(K,K+U).map(({doc:Y})=>Y),X=K+L.length<Q.length?K+L.length:void 0;return{docs:L,items:L,total:Q.length,...X!=null?{nextOffset:X}:{}}}function h(j){let w=decodeURIComponent(j),H=r.get(w);if(!H)return;return{doc:E(H),content:String(H.block.body??"")}}function T(j,w){let H=O(w),J=j.find(($)=>O($.route)===H);if(!J)return;return{doc:E(J),content:String(J.block.body??"")}}function v(j){let w=new Map,H=new Map,J=new Map;for(let Z of j){let U=Z.block.kind??"reference",K=Z.block.visibility??"public";H.set(U,(H.get(U)??0)+1),J.set(K,(J.get(K)??0)+1);for(let Q of Z.block.tags??[])w.set(Q,(w.get(Q)??0)+1)}let $=(Z,U)=>[...Z.entries()].sort((K,Q)=>Q[1]-K[1]||K[0].localeCompare(Q[0])).map(([K,Q])=>({[U]:K,count:Q}));return{totalDocs:j.length,tags:$(w,"tag"),kinds:$(H,"kind"),visibilities:$(J,"visibility")}}import{EventRegistry as Zj,OperationSpecRegistry as $j}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as Kj}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as Qj,ContractReferenceQuery as Uj,DocsGenerateCommand as Vj,DocsGeneratedEvent as Xj,DocsIndexDataView as Bj,DocsIndexQuery as Fj,DocsLayoutPresentation as Lj,DocsPublishCommand as Nj,DocsPublishedEvent as Pj,DocsReferencePagePresentation as Wj,DocsSearchForm as Aj,ExampleCatalogDataView as Gj}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as qj}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as Mj}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as _j,serializeEventSpec as Ij,serializeFormSpec as xj,serializeOperationSpec as Ej,serializePresentationSpec as Rj}from"@contractspec/lib.contracts-spec/serialization";var q=null;function zj(){let j=new $j;return j.register(Fj).register(Uj).register(Vj).register(Nj),j}function Cj(){if(!q)q=zj();return q}function R(j,w){return Cj().get(j,w)}var M=null;function bj(){let j=new Zj;return j.register(Xj).register(Pj),j}function Dj(){if(!M)M=bj();return M}function z(j,w){return Dj().get(j,w)}var _=null;function Oj(){let j=new Mj;return j.register(Lj).register(Wj),j}function Sj(){if(!_)_=Oj();return _}function C(j,w){return Sj().get(j,w)}var I=null;function hj(){let j=new Kj;return j.register(Bj).register(Qj).register(Gj),j}function Tj(){if(!I)I=hj();return I}function b(j,w){return Tj().get(j,w)}var x=null;function vj(){let j=new qj;return j.register(Aj),j}function kj(){if(!x)x=vj();return x}function D(j,w){return kj().get(j)}function k(j,w){let H=R(j,w);return Ej(H)??void 0}function f(j,w){let H=z(j,w);return Ij(H)??void 0}function m(j,w){let H=C(j,w);return Rj(H)??void 0}function y(j,w){let H=b(j,w);return _j(H)??void 0}function p(j,w){let H=D(j,w);return xj(H)??void 0}function fj(){q=null}function mj(){M=null}function yj(){_=null}function pj(){I=null}function dj(){x=null}function Fw(){fj(),mj(),yj(),pj(),dj()}import{defaultDocRegistry as lj}from"@contractspec/lib.contracts-spec/docs";function gj(j){return j?.trim().toLowerCase()??""}function uj(j){for(let w of j??[]){let H=lj.get(w);if(H)return H.route}return}function d(j,w,H,J){let $=j.meta.title??j.meta.key,Z=uj(j.meta.docId),U=j.meta.description;return{key:j.meta.key,version:j.meta.version,type:w,title:$,description:U,markdown:[`# ${$}`,`- Key: ${j.meta.key}`,`- Type: ${w}`,`- Version: ${j.meta.version}`,Z?`- Docs route: ${Z}`:"",U?`
3
3
  ${U}`:""].filter(Boolean).join(`
4
- `),...Z?{route:Z}:{},...H?{schema:H}:{},...J?{policy:J}:{},tags:j.meta.tags??[],owners:j.meta.owners??[],stability:j.meta.stability}}function l(j){let w=j.includeSchema??!1,H=pj(j.type),J=R(j.key,j.version);if(J&&(!H||H==="operation"||H===J.meta.kind))return{reference:d(J,J.meta.kind,w?k(j.key,j.version):void 0,J.policy)};let $=[{type:"data-view",spec:b(j.key,j.version),schema:w?y(j.key,j.version):void 0},{type:"form",spec:D(j.key,j.version),schema:w?p(j.key,j.version):void 0},{type:"presentation",spec:C(j.key,j.version),schema:w?m(j.key,j.version):void 0},{type:"event",spec:z(j.key,j.version),schema:w?f(j.key,j.version):void 0}];for(let Z of $)if(Z.spec&&(!H||H===Z.type))return{reference:d(Z.spec,Z.type,Z.schema)};throw Error(`Contract reference not found: ${j.key}`)}import{defineCommand as P,defineSchemaModel as N,installOp as W,OperationSpecRegistry as lj}from"@contractspec/lib.contracts-spec";import{ContractReferenceInput as gj,ContractReferenceOutput as uj,DocsIndexInput as nj,DocsIndexOutput as cj}from"@contractspec/lib.contracts-spec/docs";import{ScalarTypeEnum as F}from"@contractspec/lib.schema";var A=["@contractspec"],G=["docs","mcp"],ij=N({name:"DocsGetInput",fields:{id:{type:F.String_unsecure(),isOptional:!1}}}),aj=N({name:"DocsGetOutput",fields:{doc:{type:F.JSON(),isOptional:!1},content:{type:F.String_unsecure(),isOptional:!1}}}),oj=N({name:"DocsResolveRouteInput",fields:{route:{type:F.String_unsecure(),isOptional:!1}}}),sj=N({name:"DocsResolveRouteOutput",fields:{doc:{type:F.JSON(),isOptional:!1},content:{type:F.String_unsecure(),isOptional:!1}}}),tj=N({name:"DocsFacetsInput",fields:{}}),rj=N({name:"DocsFacetsOutput",fields:{facets:{type:F.JSON(),isOptional:!1}}});function Ww(j){let w=new lj;return W(w,P({meta:{key:"docs.search",version:"1.0.0",stability:"beta",owners:A,tags:G,description:"Search ContractSpec docs by query, tag, kind, or visibility.",goal:"Find the most relevant DocBlocks without browsing the full corpus.",context:"Read-only docs MCP search surface."},io:{input:nj,output:cj},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_search-v1_0_0"}}}),async(H)=>S(j,H)),W(w,P({meta:{key:"docs.get",version:"1.0.0",stability:"beta",owners:A,tags:G,description:"Read a single DocBlock by id.",goal:"Fetch the exact markdown content and metadata for a known doc id.",context:"Read-only docs MCP surface."},io:{input:ij,output:aj},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_get-v1_0_0"}}}),async({id:H})=>{let J=h(H);if(!J)throw Error(`DocBlock not found: ${H}`);return J}),W(w,P({meta:{key:"docs.resolveRoute",version:"1.0.0",stability:"beta",owners:A,tags:G,description:"Resolve a docs route to the matching DocBlock.",goal:"Turn a route or URL path into a canonical doc id and markdown body.",context:"Read-only docs MCP surface."},io:{input:oj,output:sj},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_resolve_route-v1_0_0"}}}),async({route:H})=>{let J=T(j,H);if(!J)throw Error(`Doc route not found: ${H}`);return J}),W(w,P({meta:{key:"docs.contract.lookup",version:"1.0.0",stability:"beta",owners:A,tags:G,description:"Resolve a ContractSpec surface into a docs-ready reference payload.",goal:"Get canonical docs metadata, route, and optional schema for a spec key.",context:"Read-only docs MCP surface."},io:{input:gj,output:uj},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_contract_reference-v1_0_0"}}}),async(H)=>l(H)),W(w,P({meta:{key:"docs.list.facets",version:"1.0.0",stability:"beta",owners:A,tags:G,description:"List docs taxonomy facets such as tags, kinds, and visibilities.",goal:"Help agents browse the docs corpus before making targeted reads.",context:"Read-only docs MCP surface."},io:{input:tj,output:rj},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_list_facets-v1_0_0"}}}),async()=>({facets:v(j)})),w}export{Ww as buildDocOps};
4
+ `),...Z?{route:Z}:{},...H?{schema:H}:{},...J?{policy:J}:{},tags:j.meta.tags??[],owners:j.meta.owners??[],stability:j.meta.stability}}function l(j){let w=j.includeSchema??!1,H=gj(j.type),J=R(j.key,j.version);if(J&&(!H||H==="operation"||H===J.meta.kind))return{reference:d(J,J.meta.kind,w?k(j.key,j.version):void 0,J.policy)};let $=[{type:"data-view",spec:b(j.key,j.version),schema:w?y(j.key,j.version):void 0},{type:"form",spec:D(j.key,j.version),schema:w?p(j.key,j.version):void 0},{type:"presentation",spec:C(j.key,j.version),schema:w?m(j.key,j.version):void 0},{type:"event",spec:z(j.key,j.version),schema:w?f(j.key,j.version):void 0}];for(let Z of $)if(Z.spec&&(!H||H===Z.type))return{reference:d(Z.spec,Z.type,Z.schema)};throw Error(`Contract reference not found: ${j.key}`)}import{defineCommand as P,defineSchemaModel as N,installOp as W,OperationSpecRegistry as nj}from"@contractspec/lib.contracts-spec";import{ContractReferenceInput as cj,ContractReferenceOutput as ij,DocsIndexInput as aj,DocsIndexOutput as oj}from"@contractspec/lib.contracts-spec/docs";import{ScalarTypeEnum as F}from"@contractspec/lib.schema";var A=["@contractspec"],G=["docs","mcp"],sj=N({name:"DocsGetInput",fields:{id:{type:F.String_unsecure(),isOptional:!1}}}),tj=N({name:"DocsGetOutput",fields:{doc:{type:F.JSON(),isOptional:!1},content:{type:F.String_unsecure(),isOptional:!1}}}),rj=N({name:"DocsResolveRouteInput",fields:{route:{type:F.String_unsecure(),isOptional:!1}}}),ej=N({name:"DocsResolveRouteOutput",fields:{doc:{type:F.JSON(),isOptional:!1},content:{type:F.String_unsecure(),isOptional:!1}}}),jw=N({name:"DocsFacetsInput",fields:{}}),ww=N({name:"DocsFacetsOutput",fields:{facets:{type:F.JSON(),isOptional:!1}}});function Iw(j){let w=new nj;return W(w,P({meta:{key:"docs.search",version:"1.0.0",stability:"beta",owners:A,tags:G,description:"Search ContractSpec docs by query, tag, kind, or visibility.",goal:"Find the most relevant DocBlocks without browsing the full corpus.",context:"Read-only docs MCP search surface."},io:{input:aj,output:oj},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_search-v1_0_0"}}}),async(H)=>S(j,H)),W(w,P({meta:{key:"docs.get",version:"1.0.0",stability:"beta",owners:A,tags:G,description:"Read a single DocBlock by id.",goal:"Fetch the exact markdown content and metadata for a known doc id.",context:"Read-only docs MCP surface."},io:{input:sj,output:tj},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_get-v1_0_0"}}}),async({id:H})=>{let J=h(H);if(!J)throw Error(`DocBlock not found: ${H}`);return J}),W(w,P({meta:{key:"docs.resolveRoute",version:"1.0.0",stability:"beta",owners:A,tags:G,description:"Resolve a docs route to the matching DocBlock.",goal:"Turn a route or URL path into a canonical doc id and markdown body.",context:"Read-only docs MCP surface."},io:{input:rj,output:ej},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_resolve_route-v1_0_0"}}}),async({route:H})=>{let J=T(j,H);if(!J)throw Error(`Doc route not found: ${H}`);return J}),W(w,P({meta:{key:"docs.contract.lookup",version:"1.0.0",stability:"beta",owners:A,tags:G,description:"Resolve a ContractSpec surface into a docs-ready reference payload.",goal:"Get canonical docs metadata, route, and optional schema for a spec key.",context:"Read-only docs MCP surface."},io:{input:cj,output:ij},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_contract_reference-v1_0_0"}}}),async(H)=>l(H)),W(w,P({meta:{key:"docs.list.facets",version:"1.0.0",stability:"beta",owners:A,tags:G,description:"List docs taxonomy facets such as tags, kinds, and visibilities.",goal:"Help agents browse the docs corpus before making targeted reads.",context:"Read-only docs MCP surface."},io:{input:jw,output:ww},policy:{auth:"anonymous"},transport:{mcp:{toolName:"docs_list_facets-v1_0_0"}}}),async()=>({facets:v(j)})),w}export{Iw as buildDocOps};