@contractspec/bundle.library 3.8.10 → 3.8.12
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.
- package/.turbo/turbo-build.log +606 -594
- package/CHANGELOG.md +59 -0
- package/dist/application/context-storage/index.js +1 -28
- package/dist/application/index.js +13 -2133
- package/dist/application/mcp/cliMcp.js +4 -452
- package/dist/application/mcp/common.js +1 -193
- package/dist/application/mcp/contractsMcp.js +2 -549
- package/dist/application/mcp/contractsMcpResources.js +2 -123
- package/dist/application/mcp/contractsMcpTools.js +1 -199
- package/dist/application/mcp/docsMcp.catalog.js +3 -381
- package/dist/application/mcp/docsMcp.data.js +1 -147
- package/dist/application/mcp/docsMcp.js +6 -1039
- package/dist/application/mcp/docsMcp.prompts.js +6 -521
- package/dist/application/mcp/docsMcp.reference.js +3 -235
- package/dist/application/mcp/docsMcp.resources.js +3 -519
- package/dist/application/mcp/docsMcp.tools.js +3 -518
- package/dist/application/mcp/index.js +13 -2106
- package/dist/application/mcp/internalMcp.js +2 -410
- package/dist/application/mcp/normalizeMcpRequest.js +1 -21
- package/dist/application/mcp/providerRankingMcp.js +1 -530
- package/dist/bundles/LibraryBundle.js +1 -138
- package/dist/bundles/index.js +1 -138
- package/dist/components/docs/DocsIndexPage.js +2 -912
- package/dist/components/docs/advanced/AdvancedMCPPage.js +4 -271
- package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -107
- package/dist/components/docs/advanced/AdvancedRenderersPage.js +2 -118
- package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -92
- package/dist/components/docs/advanced/AdvancedTelemetryPage.js +2 -373
- package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -99
- package/dist/components/docs/advanced/index.js +10 -1055
- package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +6 -243
- package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +3 -160
- package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -259
- package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -374
- package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -166
- package/dist/components/docs/architecture/ArchitectureOverviewPage.js +1 -143
- package/dist/components/docs/architecture/index.js +20 -1340
- package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -245
- package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -230
- package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -245
- package/dist/components/docs/comparison/ComparisonOverviewPage.js +1 -202
- package/dist/components/docs/comparison/ComparisonWindmillPage.js +1 -254
- package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -339
- package/dist/components/docs/comparison/index.js +1 -1510
- package/dist/components/docs/docsManifest.js +1 -611
- package/dist/components/docs/docsManifest.test.d.ts +1 -0
- package/dist/components/docs/ecosystem/IntegrationsPage.js +2 -103
- package/dist/components/docs/ecosystem/PluginsPage.js +13 -179
- package/dist/components/docs/ecosystem/RegistryPage.js +7 -100
- package/dist/components/docs/ecosystem/TemplatesPage.js +3 -141
- package/dist/components/docs/ecosystem/ecosystem.docblocks.js +2 -48
- package/dist/components/docs/ecosystem/index.js +23 -569
- package/dist/components/docs/examples/DocsExamplesPage.js +4 -124
- package/dist/components/docs/examples/ExampleShowcasePage.js +4 -244
- package/dist/components/docs/examples/exampleShowcaseData.js +4 -39
- package/dist/components/docs/examples/index.js +4 -330
- package/dist/components/docs/generated/docs-index.generated.js +1 -5
- package/dist/components/docs/generated/index.js +1 -74
- package/dist/components/docs/generated/loader.js +1 -74
- package/dist/components/docs/getting-started/CLIPage.js +4 -271
- package/dist/components/docs/getting-started/CompatibilityPage.js +1 -173
- package/dist/components/docs/getting-started/DataViewTutorialPage.js +4 -134
- package/dist/components/docs/getting-started/DeveloperToolsPage.js +1 -194
- package/dist/components/docs/getting-started/HelloWorldPage.js +5 -183
- package/dist/components/docs/getting-started/InstallationPage.js +3 -154
- package/dist/components/docs/getting-started/StartHerePage.js +2 -129
- package/dist/components/docs/getting-started/TroubleshootingPage.js +2 -168
- package/dist/components/docs/getting-started/VSCodeExtensionPage.js +1 -432
- package/dist/components/docs/getting-started/getting-started.docblocks.js +4 -41
- package/dist/components/docs/getting-started/index.js +18 -1869
- package/dist/components/docs/guides/GuideCIDiffGatingPage.js +2 -196
- package/dist/components/docs/guides/GuideConnectInRepoPage.d.ts +1 -0
- package/dist/components/docs/guides/GuideConnectInRepoPage.js +44 -0
- package/dist/components/docs/guides/GuideContractTypesPage.js +6 -541
- package/dist/components/docs/guides/GuideDocsPipelinePage.js +3 -207
- package/dist/components/docs/guides/GuideFirstModuleBundlePage.d.ts +1 -0
- package/dist/components/docs/guides/GuideFirstModuleBundlePage.js +76 -0
- package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -209
- package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.d.ts +1 -0
- package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.js +70 -0
- package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -754
- package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -268
- package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +4 -196
- package/dist/components/docs/guides/GuidesIndexPage.js +2 -169
- package/dist/components/docs/guides/guides.docblocks.js +11 -75
- package/dist/components/docs/guides/index.d.ts +3 -0
- package/dist/components/docs/guides/index.js +213 -2428
- package/dist/components/docs/index.js +542 -24310
- package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -42
- package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -105
- package/dist/components/docs/integrations/IntegrationsGithubPage.js +3 -142
- package/dist/components/docs/integrations/IntegrationsGmailPage.js +3 -109
- package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -79
- package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +3 -146
- package/dist/components/docs/integrations/IntegrationsMistralPage.js +5 -150
- package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +5 -140
- package/dist/components/docs/integrations/IntegrationsOverviewPage.js +1 -160
- package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +4 -218
- package/dist/components/docs/integrations/IntegrationsPowensPage.js +4 -300
- package/dist/components/docs/integrations/IntegrationsQdrantPage.js +5 -111
- package/dist/components/docs/integrations/IntegrationsResendPage.js +3 -102
- package/dist/components/docs/integrations/IntegrationsS3Page.js +4 -124
- package/dist/components/docs/integrations/IntegrationsSlackPage.js +3 -144
- package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +7 -290
- package/dist/components/docs/integrations/IntegrationsStripePage.js +6 -327
- package/dist/components/docs/integrations/IntegrationsTwilioPage.js +3 -128
- package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -146
- package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -156
- package/dist/components/docs/integrations/index.js +52 -3100
- package/dist/components/docs/intent/ContractFirstApiPage.js +2 -126
- package/dist/components/docs/intent/DeterministicCodegenPage.js +2 -148
- package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +7 -207
- package/dist/components/docs/intent/OpenapiAlternativePage.js +3 -201
- package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +4 -144
- package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -126
- package/dist/components/docs/intent/index.js +15 -1135
- package/dist/components/docs/intent/intent-pages.docblocks.js +1 -201
- package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +6 -750
- package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +4 -175
- package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +1 -116
- package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +8 -391
- package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +6 -302
- package/dist/components/docs/knowledge/index.js +21 -1730
- package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +3 -198
- package/dist/components/docs/libraries/LibrariesAiAgentPage.js +3 -141
- package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +4 -80
- package/dist/components/docs/libraries/LibrariesContentGenPage.js +2 -100
- package/dist/components/docs/libraries/LibrariesContractsPage.js +2 -284
- package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +3 -112
- package/dist/components/docs/libraries/LibrariesDataBackendPage.js +2 -166
- package/dist/components/docs/libraries/LibrariesDataViewsPage.js +3 -186
- package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +4 -279
- package/dist/components/docs/libraries/LibrariesEvolutionPage.js +4 -127
- package/dist/components/docs/libraries/LibrariesGraphQLPage.js +2 -173
- package/dist/components/docs/libraries/LibrariesGrowthPage.js +3 -88
- package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -108
- package/dist/components/docs/libraries/LibrariesObservabilityPage.js +5 -130
- package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -110
- package/dist/components/docs/libraries/LibrariesOverviewPage.js +1 -170
- package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +4 -114
- package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -132
- package/dist/components/docs/libraries/LibrariesResiliencePage.js +4 -120
- package/dist/components/docs/libraries/LibrariesRuntimePage.js +2 -200
- package/dist/components/docs/libraries/LibrariesSLOPage.js +3 -116
- package/dist/components/docs/libraries/LibrariesSchemaPage.js +3 -273
- package/dist/components/docs/libraries/LibrariesSupportBotPage.js +3 -134
- package/dist/components/docs/libraries/LibrariesTestingPage.js +3 -133
- package/dist/components/docs/libraries/LibrariesUIKitPage.js +2 -230
- package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -88
- package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +2 -181
- package/dist/components/docs/libraries/index.js +54 -4147
- package/dist/components/docs/manifesto/ManifestoPage.js +1 -86
- package/dist/components/docs/ops/AutoEvolutionOpsPage.js +2 -132
- package/dist/components/docs/ops/DistributedTracingOpsPage.js +2 -71
- package/dist/components/docs/ops/index.js +3 -202
- package/dist/components/docs/ops/ops-lifecycle.docblocks.js +3 -38
- package/dist/components/docs/ops/ops-runbooks-a.docblocks.js +3 -94
- package/dist/components/docs/ops/ops-runbooks-b.docblocks.js +3 -76
- package/dist/components/docs/ops/ops-slo-tenant.docblocks.js +3 -76
- package/dist/components/docs/ops/ops-top.docs.js +2 -17
- package/dist/components/docs/ops/ops.docs.js +10 -302
- package/dist/components/docs/product/product.docblocks.js +5 -72
- package/dist/components/docs/reference/DocsMarkdownContent.js +2 -196
- package/dist/components/docs/reference/DocsReferenceContent.js +3 -256
- package/dist/components/docs/reference/DocsReferenceIndexClient.js +2 -127
- package/dist/components/docs/reference/DocsReferenceIndexPage.js +2 -206
- package/dist/components/docs/reference/DocsReferencePage.js +3 -265
- package/dist/components/docs/reference/docsMarkdownParser.js +2 -92
- package/dist/components/docs/reference/index.js +4 -470
- package/dist/components/docs/safety/SafetyAuditingPage.js +2 -350
- package/dist/components/docs/safety/SafetyMigrationsPage.js +2 -359
- package/dist/components/docs/safety/SafetyOverviewPage.js +1 -101
- package/dist/components/docs/safety/SafetyPDPPage.js +2 -301
- package/dist/components/docs/safety/SafetySecurityTrustPage.js +1 -206
- package/dist/components/docs/safety/SafetySigningPage.js +3 -90
- package/dist/components/docs/safety/SafetyTenantIsolationPage.js +2 -79
- package/dist/components/docs/safety/index.js +7 -1480
- package/dist/components/docs/shared/StudioPrompt.js +1 -31
- package/dist/components/docs/specs/SpecsBuilderControlPlanePage.d.ts +1 -0
- package/dist/components/docs/specs/SpecsBuilderControlPlanePage.js +34 -0
- package/dist/components/docs/specs/SpecsCapabilitiesPage.js +2 -158
- package/dist/components/docs/specs/SpecsConnectPage.d.ts +1 -0
- package/dist/components/docs/specs/SpecsConnectPage.js +8 -0
- package/dist/components/docs/specs/SpecsDataViewsPage.js +2 -260
- package/dist/components/docs/specs/SpecsModuleBundlesPage.d.ts +1 -0
- package/dist/components/docs/specs/SpecsModuleBundlesPage.js +67 -0
- package/dist/components/docs/specs/SpecsOverlaysPage.js +2 -372
- package/dist/components/docs/specs/SpecsOverviewPage.js +1 -186
- package/dist/components/docs/specs/SpecsPolicyPage.js +3 -420
- package/dist/components/docs/specs/SpecsWorkflowsPage.js +2 -325
- package/dist/components/docs/specs/index.d.ts +3 -0
- package/dist/components/docs/specs/index.js +109 -1715
- package/dist/components/docs/studio/StudioBYOKPage.js +1 -26
- package/dist/components/docs/studio/StudioDeploymentsPage.js +1 -26
- package/dist/components/docs/studio/StudioGettingStartedPage.js +1 -26
- package/dist/components/docs/studio/StudioIntegrationsPage.js +1 -26
- package/dist/components/docs/studio/StudioOverviewPage.js +1 -157
- package/dist/components/docs/studio/StudioVisualBuilderPage.js +1 -26
- package/dist/components/docs/studio/index.js +1 -282
- package/dist/components/docs/tech/contracts/tech-docs.docblocks.js +2 -19
- package/dist/components/integrations/index.js +2 -600
- package/dist/components/integrations/molecules/IntegrationCard.js +1 -100
- package/dist/components/integrations/organisms/IntegrationMarketplace.js +1 -214
- package/dist/components/integrations/organisms/IntegrationSettings.js +2 -284
- package/dist/components/integrations/organisms/KnowledgeSourceList.js +1 -103
- package/dist/components/legal/PrivacyTemplate.js +1 -1025
- package/dist/components/legal/TermsTemplate.js +1 -941
- package/dist/components/legal/index.js +1 -1963
- package/dist/components/shared/FeatureGateNotice.js +1 -38
- package/dist/components/shared/index.js +1 -38
- package/dist/components/shell/WorkspaceHeader.js +1 -100
- package/dist/components/shell/WorkspaceProjectShellLayout.js +1 -222
- package/dist/components/shell/WorkspaceShellRenderer.js +1 -228
- package/dist/components/shell/WorkspaceSidebar.js +1 -68
- package/dist/components/shell/index.js +1 -287
- package/dist/components/templates/engine/index.js +1 -39
- package/dist/components/templates/index.js +11 -965
- package/dist/components/templates/messaging/ConversationList.js +2 -83
- package/dist/components/templates/messaging/MessageComposer.js +4 -150
- package/dist/components/templates/messaging/MessageThread.js +3 -83
- package/dist/components/templates/messaging/MessagingWorkspace.js +5 -265
- package/dist/components/templates/messaging/index.js +5 -269
- package/dist/components/templates/recipes/LanguageSwitcher.js +1 -16
- package/dist/components/templates/recipes/RecipeCard.js +1 -80
- package/dist/components/templates/recipes/RecipeDetail.js +1 -74
- package/dist/components/templates/recipes/RecipeList.js +3 -245
- package/dist/components/templates/recipes/index.js +3 -248
- package/dist/components/templates/todos/FilterBar.js +1 -107
- package/dist/components/templates/todos/TaskForm.js +2 -158
- package/dist/components/templates/todos/TaskItem.js +1 -77
- package/dist/components/templates/todos/TaskList.js +5 -449
- package/dist/components/templates/todos/index.js +5 -452
- package/dist/config/contractspec-blueprint.js +1 -123
- package/dist/config/contractspec-branding.js +1 -44
- package/dist/config/contractspec-routes.js +1 -24
- package/dist/config/index.js +1 -126
- package/dist/features/contracts-registry.js +1 -178
- package/dist/features/docs/docs.contracts.js +1 -17
- package/dist/features/docs/index.js +1 -17
- package/dist/features/docs.feature.js +1 -33
- package/dist/features/index.js +1 -315
- package/dist/features/mcp.feature.js +1 -30
- package/dist/features/presentations.feature.js +1 -33
- package/dist/features/registry.js +1 -116
- package/dist/index.js +556 -28593
- package/dist/infrastructure/elysia/index.js +1 -35
- package/dist/infrastructure/elysia/logger.js +1 -35
- package/dist/infrastructure/index.js +1 -35
- package/dist/libs/email/client.js +1 -114
- package/dist/libs/email/contact.js +12 -165
- package/dist/libs/email/newsletter.js +6 -167
- package/dist/libs/email/types.js +0 -2
- package/dist/libs/email/utils.js +2 -8
- package/dist/libs/email/waitlist-application.js +28 -209
- package/dist/libs/email/waitlist.js +6 -167
- package/dist/libs/email.js +46 -363
- package/dist/libs/posthog/client.js +1 -63
- package/dist/libs/posthog/native.js +1 -23
- package/dist/libs/posthog/server.js +1 -13
- package/dist/libs/pricing-examples.js +1 -18
- package/dist/node/application/context-storage/index.js +1 -28
- package/dist/node/application/index.js +13 -2133
- package/dist/node/application/mcp/cliMcp.js +4 -452
- package/dist/node/application/mcp/common.js +1 -193
- package/dist/node/application/mcp/contractsMcp.js +2 -549
- package/dist/node/application/mcp/contractsMcpResources.js +2 -123
- package/dist/node/application/mcp/contractsMcpTools.js +1 -199
- package/dist/node/application/mcp/docsMcp.catalog.js +3 -381
- package/dist/node/application/mcp/docsMcp.data.js +1 -147
- package/dist/node/application/mcp/docsMcp.js +6 -1039
- package/dist/node/application/mcp/docsMcp.prompts.js +6 -521
- package/dist/node/application/mcp/docsMcp.reference.js +3 -235
- package/dist/node/application/mcp/docsMcp.resources.js +3 -519
- package/dist/node/application/mcp/docsMcp.tools.js +3 -518
- package/dist/node/application/mcp/index.js +13 -2106
- package/dist/node/application/mcp/internalMcp.js +2 -410
- package/dist/node/application/mcp/normalizeMcpRequest.js +1 -21
- package/dist/node/application/mcp/providerRankingMcp.js +1 -530
- package/dist/node/bundles/LibraryBundle.js +1 -138
- package/dist/node/bundles/index.js +1 -138
- package/dist/node/components/docs/DocsIndexPage.js +2 -912
- package/dist/node/components/docs/advanced/AdvancedMCPPage.js +4 -271
- package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -107
- package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +2 -118
- package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -92
- package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +2 -373
- package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -99
- package/dist/node/components/docs/advanced/index.js +10 -1055
- package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +6 -243
- package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +3 -160
- package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -259
- package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -374
- package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -166
- package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +1 -143
- package/dist/node/components/docs/architecture/index.js +20 -1340
- package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -245
- package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -230
- package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -245
- package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +1 -202
- package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +1 -254
- package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -339
- package/dist/node/components/docs/comparison/index.js +1 -1510
- package/dist/node/components/docs/docsManifest.js +1 -611
- package/dist/node/components/docs/ecosystem/IntegrationsPage.js +2 -103
- package/dist/node/components/docs/ecosystem/PluginsPage.js +13 -179
- package/dist/node/components/docs/ecosystem/RegistryPage.js +7 -100
- package/dist/node/components/docs/ecosystem/TemplatesPage.js +3 -141
- package/dist/node/components/docs/ecosystem/ecosystem.docblocks.js +2 -48
- package/dist/node/components/docs/ecosystem/index.js +23 -569
- package/dist/node/components/docs/examples/DocsExamplesPage.js +4 -124
- package/dist/node/components/docs/examples/ExampleShowcasePage.js +4 -244
- package/dist/node/components/docs/examples/exampleShowcaseData.js +4 -39
- package/dist/node/components/docs/examples/index.js +4 -330
- package/dist/node/components/docs/generated/docs-index.generated.js +1 -5
- package/dist/node/components/docs/generated/index.js +1 -74
- package/dist/node/components/docs/generated/loader.js +1 -74
- package/dist/node/components/docs/getting-started/CLIPage.js +4 -271
- package/dist/node/components/docs/getting-started/CompatibilityPage.js +1 -173
- package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +4 -134
- package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +1 -194
- package/dist/node/components/docs/getting-started/HelloWorldPage.js +5 -183
- package/dist/node/components/docs/getting-started/InstallationPage.js +3 -154
- package/dist/node/components/docs/getting-started/StartHerePage.js +2 -129
- package/dist/node/components/docs/getting-started/TroubleshootingPage.js +2 -168
- package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +1 -432
- package/dist/node/components/docs/getting-started/getting-started.docblocks.js +4 -41
- package/dist/node/components/docs/getting-started/index.js +18 -1869
- package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +2 -196
- package/dist/node/components/docs/guides/GuideConnectInRepoPage.js +43 -0
- package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -541
- package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +3 -207
- package/dist/node/components/docs/guides/GuideFirstModuleBundlePage.js +75 -0
- package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -209
- package/dist/node/components/docs/guides/GuideHostBuilderWorkbenchPage.js +69 -0
- package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -754
- package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -268
- package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +4 -196
- package/dist/node/components/docs/guides/GuidesIndexPage.js +2 -169
- package/dist/node/components/docs/guides/guides.docblocks.js +11 -75
- package/dist/node/components/docs/guides/index.js +213 -2428
- package/dist/node/components/docs/index.js +542 -24310
- package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -42
- package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -105
- package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +3 -142
- package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +3 -109
- package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -79
- package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +3 -146
- package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +5 -150
- package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +5 -140
- package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +1 -160
- package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +4 -218
- package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +4 -300
- package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +5 -111
- package/dist/node/components/docs/integrations/IntegrationsResendPage.js +3 -102
- package/dist/node/components/docs/integrations/IntegrationsS3Page.js +4 -124
- package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +3 -144
- package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +7 -290
- package/dist/node/components/docs/integrations/IntegrationsStripePage.js +6 -327
- package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +3 -128
- package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -146
- package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -156
- package/dist/node/components/docs/integrations/index.js +52 -3100
- package/dist/node/components/docs/intent/ContractFirstApiPage.js +2 -126
- package/dist/node/components/docs/intent/DeterministicCodegenPage.js +2 -148
- package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +7 -207
- package/dist/node/components/docs/intent/OpenapiAlternativePage.js +3 -201
- package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +4 -144
- package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -126
- package/dist/node/components/docs/intent/index.js +15 -1135
- package/dist/node/components/docs/intent/intent-pages.docblocks.js +1 -201
- package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +6 -750
- package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +4 -175
- package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +1 -116
- package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +8 -391
- package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +6 -302
- package/dist/node/components/docs/knowledge/index.js +21 -1730
- package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +3 -198
- package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +3 -141
- package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +4 -80
- package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +2 -100
- package/dist/node/components/docs/libraries/LibrariesContractsPage.js +2 -284
- package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +3 -112
- package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +2 -166
- package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +3 -186
- package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +4 -279
- package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +4 -127
- package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +2 -173
- package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +3 -88
- package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -108
- package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +5 -130
- package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -110
- package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +1 -170
- package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +4 -114
- package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -132
- package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +4 -120
- package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +2 -200
- package/dist/node/components/docs/libraries/LibrariesSLOPage.js +3 -116
- package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +3 -273
- package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +3 -134
- package/dist/node/components/docs/libraries/LibrariesTestingPage.js +3 -133
- package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +2 -230
- package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -88
- package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +2 -181
- package/dist/node/components/docs/libraries/index.js +54 -4147
- package/dist/node/components/docs/manifesto/ManifestoPage.js +1 -86
- package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +2 -132
- package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +2 -71
- package/dist/node/components/docs/ops/index.js +3 -202
- package/dist/node/components/docs/ops/ops-lifecycle.docblocks.js +3 -38
- package/dist/node/components/docs/ops/ops-runbooks-a.docblocks.js +3 -94
- package/dist/node/components/docs/ops/ops-runbooks-b.docblocks.js +3 -76
- package/dist/node/components/docs/ops/ops-slo-tenant.docblocks.js +3 -76
- package/dist/node/components/docs/ops/ops-top.docs.js +2 -17
- package/dist/node/components/docs/ops/ops.docs.js +10 -302
- package/dist/node/components/docs/product/product.docblocks.js +5 -72
- package/dist/node/components/docs/reference/DocsMarkdownContent.js +2 -196
- package/dist/node/components/docs/reference/DocsReferenceContent.js +3 -256
- package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +2 -127
- package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +2 -206
- package/dist/node/components/docs/reference/DocsReferencePage.js +3 -265
- package/dist/node/components/docs/reference/docsMarkdownParser.js +2 -92
- package/dist/node/components/docs/reference/index.js +4 -470
- package/dist/node/components/docs/safety/SafetyAuditingPage.js +2 -350
- package/dist/node/components/docs/safety/SafetyMigrationsPage.js +2 -359
- package/dist/node/components/docs/safety/SafetyOverviewPage.js +1 -101
- package/dist/node/components/docs/safety/SafetyPDPPage.js +2 -301
- package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +1 -206
- package/dist/node/components/docs/safety/SafetySigningPage.js +3 -90
- package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +2 -79
- package/dist/node/components/docs/safety/index.js +7 -1480
- package/dist/node/components/docs/shared/StudioPrompt.js +1 -31
- package/dist/node/components/docs/specs/SpecsBuilderControlPlanePage.js +33 -0
- package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +2 -158
- package/dist/node/components/docs/specs/SpecsConnectPage.js +7 -0
- package/dist/node/components/docs/specs/SpecsDataViewsPage.js +2 -260
- package/dist/node/components/docs/specs/SpecsModuleBundlesPage.js +66 -0
- package/dist/node/components/docs/specs/SpecsOverlaysPage.js +2 -372
- package/dist/node/components/docs/specs/SpecsOverviewPage.js +1 -186
- package/dist/node/components/docs/specs/SpecsPolicyPage.js +3 -420
- package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +2 -325
- package/dist/node/components/docs/specs/index.js +109 -1715
- package/dist/node/components/docs/studio/StudioBYOKPage.js +1 -26
- package/dist/node/components/docs/studio/StudioDeploymentsPage.js +1 -26
- package/dist/node/components/docs/studio/StudioGettingStartedPage.js +1 -26
- package/dist/node/components/docs/studio/StudioIntegrationsPage.js +1 -26
- package/dist/node/components/docs/studio/StudioOverviewPage.js +1 -157
- package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +1 -26
- package/dist/node/components/docs/studio/index.js +1 -282
- package/dist/node/components/docs/tech/contracts/tech-docs.docblocks.js +2 -19
- package/dist/node/components/integrations/index.js +2 -600
- package/dist/node/components/integrations/molecules/IntegrationCard.js +1 -100
- package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +1 -214
- package/dist/node/components/integrations/organisms/IntegrationSettings.js +2 -284
- package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +1 -103
- package/dist/node/components/legal/PrivacyTemplate.js +1 -1025
- package/dist/node/components/legal/TermsTemplate.js +1 -941
- package/dist/node/components/legal/index.js +1 -1963
- package/dist/node/components/shared/FeatureGateNotice.js +1 -38
- package/dist/node/components/shared/index.js +1 -38
- package/dist/node/components/shell/WorkspaceHeader.js +1 -100
- package/dist/node/components/shell/WorkspaceProjectShellLayout.js +1 -222
- package/dist/node/components/shell/WorkspaceShellRenderer.js +1 -228
- package/dist/node/components/shell/WorkspaceSidebar.js +1 -68
- package/dist/node/components/shell/index.js +1 -287
- package/dist/node/components/templates/engine/index.js +1 -39
- package/dist/node/components/templates/index.js +11 -965
- package/dist/node/components/templates/messaging/ConversationList.js +2 -83
- package/dist/node/components/templates/messaging/MessageComposer.js +4 -150
- package/dist/node/components/templates/messaging/MessageThread.js +3 -83
- package/dist/node/components/templates/messaging/MessagingWorkspace.js +5 -265
- package/dist/node/components/templates/messaging/index.js +5 -269
- package/dist/node/components/templates/recipes/LanguageSwitcher.js +1 -16
- package/dist/node/components/templates/recipes/RecipeCard.js +1 -80
- package/dist/node/components/templates/recipes/RecipeDetail.js +1 -74
- package/dist/node/components/templates/recipes/RecipeList.js +3 -245
- package/dist/node/components/templates/recipes/index.js +3 -248
- package/dist/node/components/templates/todos/FilterBar.js +1 -107
- package/dist/node/components/templates/todos/TaskForm.js +2 -158
- package/dist/node/components/templates/todos/TaskItem.js +1 -77
- package/dist/node/components/templates/todos/TaskList.js +5 -449
- package/dist/node/components/templates/todos/index.js +5 -452
- package/dist/node/config/contractspec-blueprint.js +1 -123
- package/dist/node/config/contractspec-branding.js +1 -44
- package/dist/node/config/contractspec-routes.js +1 -24
- package/dist/node/config/index.js +1 -126
- package/dist/node/features/contracts-registry.js +1 -178
- package/dist/node/features/docs/docs.contracts.js +1 -17
- package/dist/node/features/docs/index.js +1 -17
- package/dist/node/features/docs.feature.js +1 -33
- package/dist/node/features/index.js +1 -315
- package/dist/node/features/mcp.feature.js +1 -30
- package/dist/node/features/presentations.feature.js +1 -33
- package/dist/node/features/registry.js +1 -116
- package/dist/node/index.js +556 -28593
- package/dist/node/infrastructure/elysia/index.js +1 -35
- package/dist/node/infrastructure/elysia/logger.js +1 -35
- package/dist/node/infrastructure/index.js +1 -35
- package/dist/node/libs/email/client.js +1 -114
- package/dist/node/libs/email/contact.js +12 -165
- package/dist/node/libs/email/newsletter.js +6 -167
- package/dist/node/libs/email/types.js +0 -2
- package/dist/node/libs/email/utils.js +2 -8
- package/dist/node/libs/email/waitlist-application.js +28 -209
- package/dist/node/libs/email/waitlist.js +6 -167
- package/dist/node/libs/email.js +46 -363
- package/dist/node/libs/posthog/client.js +1 -63
- package/dist/node/libs/posthog/native.js +1 -23
- package/dist/node/libs/posthog/server.js +1 -13
- package/dist/node/libs/pricing-examples.js +1 -18
- package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -97
- package/dist/node/presentation/features/atoms/FeatureIcon/index.js +1 -97
- package/dist/node/presentation/features/atoms/index.js +1 -97
- package/dist/node/presentation/features/hooks/index.js +1 -397
- package/dist/node/presentation/features/hooks/useContractsRegistry.js +1 -289
- package/dist/node/presentation/features/hooks/useFeatureFilters.js +1 -75
- package/dist/node/presentation/features/hooks/useFeatureRegistry.js +1 -147
- package/dist/node/presentation/features/hooks/useRelatedDocs.js +1 -28
- package/dist/node/presentation/features/index.js +1 -3063
- package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -366
- package/dist/node/presentation/features/molecules/FeatureCard/index.js +1 -366
- package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -50
- package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -50
- package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -92
- package/dist/node/presentation/features/molecules/FeatureFilters/index.js +1 -92
- package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -176
- package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +1 -176
- package/dist/node/presentation/features/molecules/index.js +1 -505
- package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +1 -304
- package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -154
- package/dist/node/presentation/features/organisms/FeatureDetail/index.js +1 -154
- package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -909
- package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +1 -909
- package/dist/node/presentation/features/organisms/FeatureEventsList.js +1 -302
- package/dist/node/presentation/features/organisms/FeatureFormsList.js +1 -302
- package/dist/node/presentation/features/organisms/FeatureOperationsList.js +1 -180
- package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +1 -304
- package/dist/node/presentation/features/organisms/index.js +1 -1359
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -332
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -332
- package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -342
- package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -342
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -303
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -303
- package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -340
- package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +1 -340
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -329
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -329
- package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -340
- package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +1 -340
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -302
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -302
- package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -218
- package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -218
- package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -187
- package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -187
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -306
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -306
- package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -342
- package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -342
- package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -97
- package/dist/presentation/features/atoms/FeatureIcon/index.js +1 -97
- package/dist/presentation/features/atoms/index.js +1 -97
- package/dist/presentation/features/hooks/index.js +1 -397
- package/dist/presentation/features/hooks/useContractsRegistry.js +1 -289
- package/dist/presentation/features/hooks/useFeatureFilters.js +1 -75
- package/dist/presentation/features/hooks/useFeatureRegistry.js +1 -147
- package/dist/presentation/features/hooks/useRelatedDocs.js +1 -28
- package/dist/presentation/features/index.js +1 -3063
- package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -366
- package/dist/presentation/features/molecules/FeatureCard/index.js +1 -366
- package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -50
- package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -50
- package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -92
- package/dist/presentation/features/molecules/FeatureFilters/index.js +1 -92
- package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -176
- package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +1 -176
- package/dist/presentation/features/molecules/index.js +1 -505
- package/dist/presentation/features/organisms/FeatureDataViewsList.js +1 -304
- package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -154
- package/dist/presentation/features/organisms/FeatureDetail/index.js +1 -154
- package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -909
- package/dist/presentation/features/organisms/FeatureDiscovery/index.js +1 -909
- package/dist/presentation/features/organisms/FeatureEventsList.js +1 -302
- package/dist/presentation/features/organisms/FeatureFormsList.js +1 -302
- package/dist/presentation/features/organisms/FeatureOperationsList.js +1 -180
- package/dist/presentation/features/organisms/FeaturePresentationsList.js +1 -304
- package/dist/presentation/features/organisms/index.js +1 -1359
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -332
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -332
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -342
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -342
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -303
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -303
- package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -340
- package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +1 -340
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -329
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -329
- package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -340
- package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +1 -340
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -302
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -302
- package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -218
- package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -218
- package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -187
- package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -187
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -306
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -306
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -342
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -342
- package/package.json +103 -31
- package/src/components/docs/DocsIndexPage.tsx +55 -0
- package/src/components/docs/architecture/ArchitectureControlPlanePage.tsx +19 -0
- package/src/components/docs/architecture/ArchitectureOverviewPage.tsx +34 -0
- package/src/components/docs/docsManifest.test.ts +70 -0
- package/src/components/docs/docsManifest.ts +71 -1
- package/src/components/docs/ecosystem/PluginsPage.tsx +24 -10
- package/src/components/docs/ecosystem/RegistryPage.tsx +11 -6
- package/src/components/docs/generated/docs-index._common.json +206 -273
- package/src/components/docs/generated/docs-index.control-plane.json +18 -0
- package/src/components/docs/generated/docs-index.defineExample.json +10 -0
- package/src/components/docs/generated/docs-index.manifest.json +22 -12
- package/src/components/docs/generated/docs-index.platform-acp.json +64 -0
- package/src/components/docs/generated/docs-index.platform-agent.json +89 -1
- package/src/components/docs/generated/docs-index.platform-context.json +48 -0
- package/src/components/docs/generated/docs-index.platform-control-plane.json +72 -0
- package/src/components/docs/generated/docs-index.platform-database.json +40 -0
- package/src/components/docs/generated/docs-index.platform-docs.json +64 -0
- package/src/components/docs/generated/docs-index.platform-provider-ranking.json +89 -1
- package/src/components/docs/generated/docs-index.pocket-family-office.json +8 -0
- package/src/components/docs/generated/docs-index.unknown.json +8 -0
- package/src/components/docs/guides/GuideConnectInRepoPage.tsx +184 -0
- package/src/components/docs/guides/GuideFirstModuleBundlePage.tsx +182 -0
- package/src/components/docs/guides/GuideHostBuilderWorkbenchPage.tsx +230 -0
- package/src/components/docs/guides/GuidesIndexPage.tsx +21 -0
- package/src/components/docs/guides/index.ts +3 -0
- package/src/components/docs/specs/SpecsBuilderControlPlanePage.tsx +210 -0
- package/src/components/docs/specs/SpecsConnectPage.tsx +162 -0
- package/src/components/docs/specs/SpecsModuleBundlesPage.tsx +223 -0
- package/src/components/docs/specs/SpecsOverlaysPage.tsx +20 -0
- package/src/components/docs/specs/SpecsOverviewPage.tsx +44 -0
- package/src/components/docs/specs/index.ts +3 -0
- package/src/components/docs/studio/StudioOverviewPage.tsx +26 -0
- package/src/infrastructure/elysia/logger.ts +11 -3
|
@@ -1,55 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
import Link from "@contractspec/lib.ui-link";
|
|
3
|
-
import { ChevronRight } from "lucide-react";
|
|
4
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
-
function IntegrationsS3Page() {
|
|
6
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
7
|
-
className: "space-y-8",
|
|
8
|
-
children: [
|
|
9
|
-
/* @__PURE__ */ jsxs("div", {
|
|
10
|
-
className: "space-y-4",
|
|
11
|
-
children: [
|
|
12
|
-
/* @__PURE__ */ jsx("h1", {
|
|
13
|
-
className: "font-bold text-4xl",
|
|
14
|
-
children: "S3-Compatible Storage"
|
|
15
|
-
}),
|
|
16
|
-
/* @__PURE__ */ jsx("p", {
|
|
17
|
-
className: "text-muted-foreground",
|
|
18
|
-
children: "Store files, images, and documents using any S3-compatible object storage service including AWS S3, Scaleway Object Storage, MinIO, DigitalOcean Spaces, and more."
|
|
19
|
-
})
|
|
20
|
-
]
|
|
21
|
-
}),
|
|
22
|
-
/* @__PURE__ */ jsxs("div", {
|
|
23
|
-
className: "space-y-4",
|
|
24
|
-
children: [
|
|
25
|
-
/* @__PURE__ */ jsx("h2", {
|
|
26
|
-
className: "font-bold text-2xl",
|
|
27
|
-
children: "Setup"
|
|
28
|
-
}),
|
|
29
|
-
/* @__PURE__ */ jsx("div", {
|
|
30
|
-
className: "overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",
|
|
31
|
-
children: /* @__PURE__ */ jsx("pre", {
|
|
32
|
-
children: `# .env
|
|
1
|
+
import z from"@contractspec/lib.ui-link";import{ChevronRight as A}from"lucide-react";import{jsx as q,jsxs as y}from"react/jsx-runtime";function E(){return y("div",{className:"space-y-8",children:[y("div",{className:"space-y-4",children:[q("h1",{className:"font-bold text-4xl",children:"S3-Compatible Storage"}),q("p",{className:"text-muted-foreground",children:"Store files, images, and documents using any S3-compatible object storage service including AWS S3, Scaleway Object Storage, MinIO, DigitalOcean Spaces, and more."})]}),y("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"Setup"}),q("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:q("pre",{children:`# .env
|
|
33
2
|
S3_ENDPOINT=https://s3.fr-par.scw.cloud
|
|
34
3
|
S3_ACCESS_KEY_ID=...
|
|
35
4
|
S3_SECRET_ACCESS_KEY=...
|
|
36
5
|
S3_BUCKET=my-bucket
|
|
37
|
-
S3_REGION=fr-par`
|
|
38
|
-
})
|
|
39
|
-
})
|
|
40
|
-
]
|
|
41
|
-
}),
|
|
42
|
-
/* @__PURE__ */ jsxs("div", {
|
|
43
|
-
className: "space-y-4",
|
|
44
|
-
children: [
|
|
45
|
-
/* @__PURE__ */ jsx("h2", {
|
|
46
|
-
className: "font-bold text-2xl",
|
|
47
|
-
children: "Uploading files"
|
|
48
|
-
}),
|
|
49
|
-
/* @__PURE__ */ jsx("div", {
|
|
50
|
-
className: "overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",
|
|
51
|
-
children: /* @__PURE__ */ jsx("pre", {
|
|
52
|
-
children: `capabilityId: s3-upload
|
|
6
|
+
S3_REGION=fr-par`})})]}),y("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"Uploading files"}),q("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:q("pre",{children:`capabilityId: s3-upload
|
|
53
7
|
provider:
|
|
54
8
|
type: s3
|
|
55
9
|
operation: upload
|
|
@@ -71,22 +25,7 @@ outputs:
|
|
|
71
25
|
url:
|
|
72
26
|
type: string
|
|
73
27
|
etag:
|
|
74
|
-
type: string`
|
|
75
|
-
})
|
|
76
|
-
})
|
|
77
|
-
]
|
|
78
|
-
}),
|
|
79
|
-
/* @__PURE__ */ jsxs("div", {
|
|
80
|
-
className: "space-y-4",
|
|
81
|
-
children: [
|
|
82
|
-
/* @__PURE__ */ jsx("h2", {
|
|
83
|
-
className: "font-bold text-2xl",
|
|
84
|
-
children: "Generating presigned URLs"
|
|
85
|
-
}),
|
|
86
|
-
/* @__PURE__ */ jsx("div", {
|
|
87
|
-
className: "overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",
|
|
88
|
-
children: /* @__PURE__ */ jsx("pre", {
|
|
89
|
-
children: `capabilityId: s3-presigned-url
|
|
28
|
+
type: string`})})]}),y("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"Generating presigned URLs"}),q("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:q("pre",{children:`capabilityId: s3-presigned-url
|
|
90
29
|
provider:
|
|
91
30
|
type: s3
|
|
92
31
|
operation: getPresignedUrl
|
|
@@ -101,63 +40,4 @@ inputs:
|
|
|
101
40
|
|
|
102
41
|
outputs:
|
|
103
42
|
url:
|
|
104
|
-
type: string`
|
|
105
|
-
})
|
|
106
|
-
})
|
|
107
|
-
]
|
|
108
|
-
}),
|
|
109
|
-
/* @__PURE__ */ jsxs("div", {
|
|
110
|
-
className: "space-y-4",
|
|
111
|
-
children: [
|
|
112
|
-
/* @__PURE__ */ jsx("h2", {
|
|
113
|
-
className: "font-bold text-2xl",
|
|
114
|
-
children: "Best practices"
|
|
115
|
-
}),
|
|
116
|
-
/* @__PURE__ */ jsxs("ul", {
|
|
117
|
-
className: "list-inside list-disc space-y-2 text-muted-foreground",
|
|
118
|
-
children: [
|
|
119
|
-
/* @__PURE__ */ jsx("li", {
|
|
120
|
-
children: "Use presigned URLs for secure, temporary access"
|
|
121
|
-
}),
|
|
122
|
-
/* @__PURE__ */ jsx("li", {
|
|
123
|
-
children: "Set appropriate CORS policies for browser uploads"
|
|
124
|
-
}),
|
|
125
|
-
/* @__PURE__ */ jsx("li", {
|
|
126
|
-
children: "Enable versioning for important files"
|
|
127
|
-
}),
|
|
128
|
-
/* @__PURE__ */ jsx("li", {
|
|
129
|
-
children: "Use lifecycle policies to archive old files"
|
|
130
|
-
}),
|
|
131
|
-
/* @__PURE__ */ jsx("li", {
|
|
132
|
-
children: "Organize files with a clear key structure"
|
|
133
|
-
})
|
|
134
|
-
]
|
|
135
|
-
})
|
|
136
|
-
]
|
|
137
|
-
}),
|
|
138
|
-
/* @__PURE__ */ jsxs("div", {
|
|
139
|
-
className: "flex items-center gap-4 pt-4",
|
|
140
|
-
children: [
|
|
141
|
-
/* @__PURE__ */ jsx(Link, {
|
|
142
|
-
href: "/docs/integrations/qdrant",
|
|
143
|
-
className: "btn-ghost",
|
|
144
|
-
children: "Previous: Qdrant"
|
|
145
|
-
}),
|
|
146
|
-
/* @__PURE__ */ jsxs(Link, {
|
|
147
|
-
href: "/docs/integrations/twilio",
|
|
148
|
-
className: "btn-primary",
|
|
149
|
-
children: [
|
|
150
|
-
"Next: Twilio ",
|
|
151
|
-
/* @__PURE__ */ jsx(ChevronRight, {
|
|
152
|
-
size: 16
|
|
153
|
-
})
|
|
154
|
-
]
|
|
155
|
-
})
|
|
156
|
-
]
|
|
157
|
-
})
|
|
158
|
-
]
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
export {
|
|
162
|
-
IntegrationsS3Page
|
|
163
|
-
};
|
|
43
|
+
type: string`})})]}),y("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"Best practices"}),y("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[q("li",{children:"Use presigned URLs for secure, temporary access"}),q("li",{children:"Set appropriate CORS policies for browser uploads"}),q("li",{children:"Enable versioning for important files"}),q("li",{children:"Use lifecycle policies to archive old files"}),q("li",{children:"Organize files with a clear key structure"})]})]}),y("div",{className:"flex items-center gap-4 pt-4",children:[q(z,{href:"/docs/integrations/qdrant",className:"btn-ghost",children:"Previous: Qdrant"}),y(z,{href:"/docs/integrations/twilio",className:"btn-primary",children:["Next: Twilio ",q(A,{size:16})]})]})]})}export{E as IntegrationsS3Page};
|
|
@@ -1,35 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import Link from "@contractspec/lib.ui-link";
|
|
3
|
-
import { ChevronRight } from "lucide-react";
|
|
4
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
-
function IntegrationsSlackPage() {
|
|
6
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
7
|
-
className: "space-y-8",
|
|
8
|
-
children: [
|
|
9
|
-
/* @__PURE__ */ jsxs("div", {
|
|
10
|
-
className: "space-y-4",
|
|
11
|
-
children: [
|
|
12
|
-
/* @__PURE__ */ jsx("h1", {
|
|
13
|
-
className: "font-bold text-4xl",
|
|
14
|
-
children: "Slack Messaging"
|
|
15
|
-
}),
|
|
16
|
-
/* @__PURE__ */ jsx("p", {
|
|
17
|
-
className: "text-muted-foreground",
|
|
18
|
-
children: "ContractSpec supports signed Slack event ingestion and outbox-backed outbound replies through the channel runtime."
|
|
19
|
-
})
|
|
20
|
-
]
|
|
21
|
-
}),
|
|
22
|
-
/* @__PURE__ */ jsxs("div", {
|
|
23
|
-
className: "space-y-4",
|
|
24
|
-
children: [
|
|
25
|
-
/* @__PURE__ */ jsx("h2", {
|
|
26
|
-
className: "font-bold text-2xl",
|
|
27
|
-
children: "Required secrets and config"
|
|
28
|
-
}),
|
|
29
|
-
/* @__PURE__ */ jsx("div", {
|
|
30
|
-
className: "overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",
|
|
31
|
-
children: /* @__PURE__ */ jsx("pre", {
|
|
32
|
-
children: `// secret payload
|
|
1
|
+
import t from"@contractspec/lib.ui-link";import{ChevronRight as o}from"lucide-react";import{jsx as e,jsxs as a}from"react/jsx-runtime";function d(){return a("div",{className:"space-y-8",children:[a("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"Slack Messaging"}),e("p",{className:"text-muted-foreground",children:"ContractSpec supports signed Slack event ingestion and outbox-backed outbound replies through the channel runtime."})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Required secrets and config"}),e("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:e("pre",{children:`// secret payload
|
|
33
2
|
{
|
|
34
3
|
"botToken": "xoxb-...",
|
|
35
4
|
"signingSecret": "..."
|
|
@@ -39,61 +8,7 @@ function IntegrationsSlackPage() {
|
|
|
39
8
|
{
|
|
40
9
|
"defaultChannelId": "C0123456789",
|
|
41
10
|
"apiBaseUrl": "https://slack.com/api"
|
|
42
|
-
}`
|
|
43
|
-
})
|
|
44
|
-
})
|
|
45
|
-
]
|
|
46
|
-
}),
|
|
47
|
-
/* @__PURE__ */ jsxs("div", {
|
|
48
|
-
className: "space-y-4",
|
|
49
|
-
children: [
|
|
50
|
-
/* @__PURE__ */ jsx("h2", {
|
|
51
|
-
className: "font-bold text-2xl",
|
|
52
|
-
children: "Webhook ingress"
|
|
53
|
-
}),
|
|
54
|
-
/* @__PURE__ */ jsxs("ul", {
|
|
55
|
-
className: "list-inside list-disc space-y-2 text-muted-foreground",
|
|
56
|
-
children: [
|
|
57
|
-
/* @__PURE__ */ jsxs("li", {
|
|
58
|
-
children: [
|
|
59
|
-
"Inbound events are accepted on",
|
|
60
|
-
" ",
|
|
61
|
-
/* @__PURE__ */ jsx("code", {
|
|
62
|
-
className: "rounded bg-background/50 px-2 py-1",
|
|
63
|
-
children: "/webhooks/slack/events"
|
|
64
|
-
}),
|
|
65
|
-
"."
|
|
66
|
-
]
|
|
67
|
-
}),
|
|
68
|
-
/* @__PURE__ */ jsxs("li", {
|
|
69
|
-
children: [
|
|
70
|
-
"Requests are validated with Slack signatures (",
|
|
71
|
-
/* @__PURE__ */ jsx("code", {
|
|
72
|
-
className: "rounded bg-background/50 px-2 py-1",
|
|
73
|
-
children: "x-slack-signature"
|
|
74
|
-
}),
|
|
75
|
-
" ",
|
|
76
|
-
"+ timestamp tolerance)."
|
|
77
|
-
]
|
|
78
|
-
}),
|
|
79
|
-
/* @__PURE__ */ jsx("li", {
|
|
80
|
-
children: "Normalized events are deduplicated and persisted before any outbound side effects."
|
|
81
|
-
})
|
|
82
|
-
]
|
|
83
|
-
})
|
|
84
|
-
]
|
|
85
|
-
}),
|
|
86
|
-
/* @__PURE__ */ jsxs("div", {
|
|
87
|
-
className: "space-y-4",
|
|
88
|
-
children: [
|
|
89
|
-
/* @__PURE__ */ jsx("h2", {
|
|
90
|
-
className: "font-bold text-2xl",
|
|
91
|
-
children: "Workspace routing and dispatch"
|
|
92
|
-
}),
|
|
93
|
-
/* @__PURE__ */ jsx("div", {
|
|
94
|
-
className: "overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",
|
|
95
|
-
children: /* @__PURE__ */ jsx("pre", {
|
|
96
|
-
children: `# Workspace mapping (recommended)
|
|
11
|
+
}`})})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Webhook ingress"}),a("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[a("li",{children:["Inbound events are accepted on"," ",e("code",{className:"rounded bg-background/50 px-2 py-1",children:"/webhooks/slack/events"}),"."]}),a("li",{children:["Requests are validated with Slack signatures (",e("code",{className:"rounded bg-background/50 px-2 py-1",children:"x-slack-signature"})," ","+ timestamp tolerance)."]}),e("li",{children:"Normalized events are deduplicated and persisted before any outbound side effects."})]})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Workspace routing and dispatch"}),e("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:e("pre",{children:`# Workspace mapping (recommended)
|
|
97
12
|
CHANNEL_WORKSPACE_MAP_SLACK={"T123":"workspace-acme"}
|
|
98
13
|
|
|
99
14
|
# Dispatch protection
|
|
@@ -101,60 +16,4 @@ CHANNEL_DISPATCH_TOKEN=...
|
|
|
101
16
|
|
|
102
17
|
# Optional scheduler
|
|
103
18
|
CHANNEL_DISPATCH_INTERVAL_MS=120000
|
|
104
|
-
CHANNEL_DISPATCH_RUN_ON_START=1`
|
|
105
|
-
})
|
|
106
|
-
})
|
|
107
|
-
]
|
|
108
|
-
}),
|
|
109
|
-
/* @__PURE__ */ jsxs("div", {
|
|
110
|
-
className: "space-y-4",
|
|
111
|
-
children: [
|
|
112
|
-
/* @__PURE__ */ jsx("h2", {
|
|
113
|
-
className: "font-bold text-2xl",
|
|
114
|
-
children: "Best practices"
|
|
115
|
-
}),
|
|
116
|
-
/* @__PURE__ */ jsxs("ul", {
|
|
117
|
-
className: "list-inside list-disc space-y-2 text-muted-foreground",
|
|
118
|
-
children: [
|
|
119
|
-
/* @__PURE__ */ jsx("li", {
|
|
120
|
-
children: "Keep bot tokens and signing secrets in a managed secret provider."
|
|
121
|
-
}),
|
|
122
|
-
/* @__PURE__ */ jsx("li", {
|
|
123
|
-
children: "Use workspace mapping to prevent cross-tenant event leakage."
|
|
124
|
-
}),
|
|
125
|
-
/* @__PURE__ */ jsx("li", {
|
|
126
|
-
children: "Keep dispatch asynchronous so webhook handlers stay fast and reliable."
|
|
127
|
-
}),
|
|
128
|
-
/* @__PURE__ */ jsx("li", {
|
|
129
|
-
children: "Monitor telemetry for ingest, decision, outbox, and dispatch stages."
|
|
130
|
-
})
|
|
131
|
-
]
|
|
132
|
-
})
|
|
133
|
-
]
|
|
134
|
-
}),
|
|
135
|
-
/* @__PURE__ */ jsxs("div", {
|
|
136
|
-
className: "flex items-center gap-4 pt-4",
|
|
137
|
-
children: [
|
|
138
|
-
/* @__PURE__ */ jsx(Link, {
|
|
139
|
-
href: "/docs/integrations/twilio",
|
|
140
|
-
className: "btn-ghost",
|
|
141
|
-
children: "Previous: Twilio SMS"
|
|
142
|
-
}),
|
|
143
|
-
/* @__PURE__ */ jsxs(Link, {
|
|
144
|
-
href: "/docs/integrations/github",
|
|
145
|
-
className: "btn-primary",
|
|
146
|
-
children: [
|
|
147
|
-
"Next: GitHub Messaging ",
|
|
148
|
-
/* @__PURE__ */ jsx(ChevronRight, {
|
|
149
|
-
size: 16
|
|
150
|
-
})
|
|
151
|
-
]
|
|
152
|
-
})
|
|
153
|
-
]
|
|
154
|
-
})
|
|
155
|
-
]
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
export {
|
|
159
|
-
IntegrationsSlackPage
|
|
160
|
-
};
|
|
19
|
+
CHANNEL_DISPATCH_RUN_ON_START=1`})})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Best practices"}),a("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[e("li",{children:"Keep bot tokens and signing secrets in a managed secret provider."}),e("li",{children:"Use workspace mapping to prevent cross-tenant event leakage."}),e("li",{children:"Keep dispatch asynchronous so webhook handlers stay fast and reliable."}),e("li",{children:"Monitor telemetry for ingest, decision, outbox, and dispatch stages."})]})]}),a("div",{className:"flex items-center gap-4 pt-4",children:[e(t,{href:"/docs/integrations/twilio",className:"btn-ghost",children:"Previous: Twilio SMS"}),a(t,{href:"/docs/integrations/github",className:"btn-primary",children:["Next: GitHub Messaging ",e(o,{size:16})]})]})]})}export{d as IntegrationsSlackPage};
|
|
@@ -1,45 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import Link from "@contractspec/lib.ui-link";
|
|
3
|
-
import { ChevronRight } from "lucide-react";
|
|
4
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
-
function IntegrationsSpecModelPage() {
|
|
6
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
7
|
-
className: "space-y-8",
|
|
8
|
-
children: [
|
|
9
|
-
/* @__PURE__ */ jsxs("div", {
|
|
10
|
-
className: "space-y-4",
|
|
11
|
-
children: [
|
|
12
|
-
/* @__PURE__ */ jsx("h1", {
|
|
13
|
-
className: "font-bold text-4xl",
|
|
14
|
-
children: "Integration Spec Model"
|
|
15
|
-
}),
|
|
16
|
-
/* @__PURE__ */ jsx("p", {
|
|
17
|
-
className: "text-muted-foreground",
|
|
18
|
-
children: "Integrations in ContractSpec are defined through typed specifications that declare capabilities, configuration requirements, and connection details. This page covers IntegrationSpec and IntegrationConnection."
|
|
19
|
-
})
|
|
20
|
-
]
|
|
21
|
-
}),
|
|
22
|
-
/* @__PURE__ */ jsxs("div", {
|
|
23
|
-
className: "space-y-4",
|
|
24
|
-
children: [
|
|
25
|
-
/* @__PURE__ */ jsx("h2", {
|
|
26
|
-
className: "font-bold text-2xl",
|
|
27
|
-
children: "IntegrationSpec"
|
|
28
|
-
}),
|
|
29
|
-
/* @__PURE__ */ jsxs("p", {
|
|
30
|
-
className: "text-muted-foreground",
|
|
31
|
-
children: [
|
|
32
|
-
"The ",
|
|
33
|
-
/* @__PURE__ */ jsx("strong", {
|
|
34
|
-
children: "IntegrationSpec"
|
|
35
|
-
}),
|
|
36
|
-
" is a global definition of an integration provider. It declares what the integration provides and what it requires."
|
|
37
|
-
]
|
|
38
|
-
}),
|
|
39
|
-
/* @__PURE__ */ jsx("div", {
|
|
40
|
-
className: "overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",
|
|
41
|
-
children: /* @__PURE__ */ jsx("pre", {
|
|
42
|
-
children: `type IntegrationSpec = {
|
|
1
|
+
import w from"@contractspec/lib.ui-link";import{ChevronRight as y}from"lucide-react";import{jsx as f,jsxs as q}from"react/jsx-runtime";function B(){return q("div",{className:"space-y-8",children:[q("div",{className:"space-y-4",children:[f("h1",{className:"font-bold text-4xl",children:"Integration Spec Model"}),f("p",{className:"text-muted-foreground",children:"Integrations in ContractSpec are defined through typed specifications that declare capabilities, configuration requirements, and connection details. This page covers IntegrationSpec and IntegrationConnection."})]}),q("div",{className:"space-y-4",children:[f("h2",{className:"font-bold text-2xl",children:"IntegrationSpec"}),q("p",{className:"text-muted-foreground",children:["The ",f("strong",{children:"IntegrationSpec"})," is a global definition of an integration provider. It declares what the integration provides and what it requires."]}),f("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:f("pre",{children:`type IntegrationSpec = {
|
|
43
2
|
id: string;
|
|
44
3
|
label: string;
|
|
45
4
|
description: string;
|
|
@@ -92,22 +51,7 @@ function IntegrationsSpecModelPage() {
|
|
|
92
51
|
version: string;
|
|
93
52
|
createdAt: string;
|
|
94
53
|
updatedAt: string;
|
|
95
|
-
};`
|
|
96
|
-
})
|
|
97
|
-
})
|
|
98
|
-
]
|
|
99
|
-
}),
|
|
100
|
-
/* @__PURE__ */ jsxs("div", {
|
|
101
|
-
className: "space-y-4",
|
|
102
|
-
children: [
|
|
103
|
-
/* @__PURE__ */ jsx("h2", {
|
|
104
|
-
className: "font-bold text-2xl",
|
|
105
|
-
children: "Example: Stripe IntegrationSpec"
|
|
106
|
-
}),
|
|
107
|
-
/* @__PURE__ */ jsx("div", {
|
|
108
|
-
className: "overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",
|
|
109
|
-
children: /* @__PURE__ */ jsx("pre", {
|
|
110
|
-
children: `{
|
|
54
|
+
};`})})]}),q("div",{className:"space-y-4",children:[f("h2",{className:"font-bold text-2xl",children:"Example: Stripe IntegrationSpec"}),f("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:f("pre",{children:`{
|
|
111
55
|
id: "stripe",
|
|
112
56
|
label: "Stripe",
|
|
113
57
|
description: "Payment processing and subscription management",
|
|
@@ -172,32 +116,7 @@ function IntegrationsSpecModelPage() {
|
|
|
172
116
|
docsUrl: "https://docs.contractspec.com/integrations/stripe",
|
|
173
117
|
setupGuideUrl: "https://stripe.com/docs/keys",
|
|
174
118
|
version: "1.0.0"
|
|
175
|
-
}`
|
|
176
|
-
})
|
|
177
|
-
})
|
|
178
|
-
]
|
|
179
|
-
}),
|
|
180
|
-
/* @__PURE__ */ jsxs("div", {
|
|
181
|
-
className: "space-y-4",
|
|
182
|
-
children: [
|
|
183
|
-
/* @__PURE__ */ jsx("h2", {
|
|
184
|
-
className: "font-bold text-2xl",
|
|
185
|
-
children: "IntegrationConnection"
|
|
186
|
-
}),
|
|
187
|
-
/* @__PURE__ */ jsxs("p", {
|
|
188
|
-
className: "text-muted-foreground",
|
|
189
|
-
children: [
|
|
190
|
-
"An ",
|
|
191
|
-
/* @__PURE__ */ jsx("strong", {
|
|
192
|
-
children: "IntegrationConnection"
|
|
193
|
-
}),
|
|
194
|
-
" is a per-tenant instance of an integration with configured credentials and environment settings."
|
|
195
|
-
]
|
|
196
|
-
}),
|
|
197
|
-
/* @__PURE__ */ jsx("div", {
|
|
198
|
-
className: "overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",
|
|
199
|
-
children: /* @__PURE__ */ jsx("pre", {
|
|
200
|
-
children: `type IntegrationConnection = {
|
|
119
|
+
}`})})]}),q("div",{className:"space-y-4",children:[f("h2",{className:"font-bold text-2xl",children:"IntegrationConnection"}),q("p",{className:"text-muted-foreground",children:["An ",f("strong",{children:"IntegrationConnection"})," is a per-tenant instance of an integration with configured credentials and environment settings."]}),f("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:f("pre",{children:`type IntegrationConnection = {
|
|
201
120
|
id: string;
|
|
202
121
|
tenantId: string;
|
|
203
122
|
integrationId: string;
|
|
@@ -221,22 +140,7 @@ function IntegrationsSpecModelPage() {
|
|
|
221
140
|
createdAt: string;
|
|
222
141
|
updatedAt: string;
|
|
223
142
|
createdBy: string;
|
|
224
|
-
};`
|
|
225
|
-
})
|
|
226
|
-
})
|
|
227
|
-
]
|
|
228
|
-
}),
|
|
229
|
-
/* @__PURE__ */ jsxs("div", {
|
|
230
|
-
className: "space-y-4",
|
|
231
|
-
children: [
|
|
232
|
-
/* @__PURE__ */ jsx("h2", {
|
|
233
|
-
className: "font-bold text-2xl",
|
|
234
|
-
children: "Example: Stripe IntegrationConnection"
|
|
235
|
-
}),
|
|
236
|
-
/* @__PURE__ */ jsx("div", {
|
|
237
|
-
className: "overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",
|
|
238
|
-
children: /* @__PURE__ */ jsx("pre", {
|
|
239
|
-
children: `// Production connection
|
|
143
|
+
};`})})]}),q("div",{className:"space-y-4",children:[f("h2",{className:"font-bold text-2xl",children:"Example: Stripe IntegrationConnection"}),f("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:f("pre",{children:`// Production connection
|
|
240
144
|
{
|
|
241
145
|
id: "conn_stripe_acme_prod",
|
|
242
146
|
tenantId: "acme-corp",
|
|
@@ -270,26 +174,7 @@ function IntegrationsSpecModelPage() {
|
|
|
270
174
|
createdAt: "2025-01-01T00:00:00Z",
|
|
271
175
|
updatedAt: "2025-01-15T10:25:00Z",
|
|
272
176
|
createdBy: "dev@acme.com"
|
|
273
|
-
}`
|
|
274
|
-
})
|
|
275
|
-
})
|
|
276
|
-
]
|
|
277
|
-
}),
|
|
278
|
-
/* @__PURE__ */ jsxs("div", {
|
|
279
|
-
className: "space-y-4",
|
|
280
|
-
children: [
|
|
281
|
-
/* @__PURE__ */ jsx("h2", {
|
|
282
|
-
className: "font-bold text-2xl",
|
|
283
|
-
children: "Example: Messaging IntegrationConnection"
|
|
284
|
-
}),
|
|
285
|
-
/* @__PURE__ */ jsx("p", {
|
|
286
|
-
className: "text-muted-foreground",
|
|
287
|
-
children: "Messaging providers use the same spec + connection model, then route inbound events through the channel runtime for signature validation, idempotent ingestion, policy decisions, and outbox-backed dispatch."
|
|
288
|
-
}),
|
|
289
|
-
/* @__PURE__ */ jsx("div", {
|
|
290
|
-
className: "overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",
|
|
291
|
-
children: /* @__PURE__ */ jsx("pre", {
|
|
292
|
-
children: `{
|
|
177
|
+
}`})})]}),q("div",{className:"space-y-4",children:[f("h2",{className:"font-bold text-2xl",children:"Example: Messaging IntegrationConnection"}),f("p",{className:"text-muted-foreground",children:"Messaging providers use the same spec + connection model, then route inbound events through the channel runtime for signature validation, idempotent ingestion, policy decisions, and outbox-backed dispatch."}),f("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:f("pre",{children:`{
|
|
293
178
|
id: "conn_slack_acme_prod",
|
|
294
179
|
tenantId: "acme-corp",
|
|
295
180
|
integrationId: "messaging.slack",
|
|
@@ -306,26 +191,7 @@ function IntegrationsSpecModelPage() {
|
|
|
306
191
|
{
|
|
307
192
|
"botToken": "xoxb-...",
|
|
308
193
|
"signingSecret": "..."
|
|
309
|
-
}`
|
|
310
|
-
})
|
|
311
|
-
})
|
|
312
|
-
]
|
|
313
|
-
}),
|
|
314
|
-
/* @__PURE__ */ jsxs("div", {
|
|
315
|
-
className: "space-y-4",
|
|
316
|
-
children: [
|
|
317
|
-
/* @__PURE__ */ jsx("h2", {
|
|
318
|
-
className: "font-bold text-2xl",
|
|
319
|
-
children: "Health transport strategy config"
|
|
320
|
-
}),
|
|
321
|
-
/* @__PURE__ */ jsx("p", {
|
|
322
|
-
className: "text-muted-foreground",
|
|
323
|
-
children: "Health providers support deterministic transport routing and explicit unofficial gating in connection config."
|
|
324
|
-
}),
|
|
325
|
-
/* @__PURE__ */ jsx("div", {
|
|
326
|
-
className: "overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",
|
|
327
|
-
children: /* @__PURE__ */ jsx("pre", {
|
|
328
|
-
children: `{
|
|
194
|
+
}`})})]}),q("div",{className:"space-y-4",children:[f("h2",{className:"font-bold text-2xl",children:"Health transport strategy config"}),f("p",{className:"text-muted-foreground",children:"Health providers support deterministic transport routing and explicit unofficial gating in connection config."}),f("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:f("pre",{children:`{
|
|
329
195
|
"defaultTransport": "official-api",
|
|
330
196
|
"strategyOrder": ["official-api", "aggregator-api", "unofficial"],
|
|
331
197
|
"allowUnofficial": false,
|
|
@@ -342,153 +208,4 @@ function IntegrationsSpecModelPage() {
|
|
|
342
208
|
"clientSecret": "...",
|
|
343
209
|
"tokenExpiresAt": "2026-02-01T00:00:00.000Z",
|
|
344
210
|
"mcpAccessToken": "..."
|
|
345
|
-
}`
|
|
346
|
-
})
|
|
347
|
-
})
|
|
348
|
-
]
|
|
349
|
-
}),
|
|
350
|
-
/* @__PURE__ */ jsxs("div", {
|
|
351
|
-
className: "space-y-4",
|
|
352
|
-
children: [
|
|
353
|
-
/* @__PURE__ */ jsx("h2", {
|
|
354
|
-
className: "font-bold text-2xl",
|
|
355
|
-
children: "Health checks"
|
|
356
|
-
}),
|
|
357
|
-
/* @__PURE__ */ jsx("p", {
|
|
358
|
-
className: "text-muted-foreground",
|
|
359
|
-
children: "IntegrationConnections are periodically health-checked to ensure they remain valid:"
|
|
360
|
-
}),
|
|
361
|
-
/* @__PURE__ */ jsxs("ul", {
|
|
362
|
-
className: "list-inside list-disc space-y-2 text-muted-foreground",
|
|
363
|
-
children: [
|
|
364
|
-
/* @__PURE__ */ jsxs("li", {
|
|
365
|
-
children: [
|
|
366
|
-
/* @__PURE__ */ jsx("strong", {
|
|
367
|
-
children: "API key validation"
|
|
368
|
-
}),
|
|
369
|
-
" - Test that credentials are still valid"
|
|
370
|
-
]
|
|
371
|
-
}),
|
|
372
|
-
/* @__PURE__ */ jsxs("li", {
|
|
373
|
-
children: [
|
|
374
|
-
/* @__PURE__ */ jsx("strong", {
|
|
375
|
-
children: "Connectivity check"
|
|
376
|
-
}),
|
|
377
|
-
" - Verify network access to the provider"
|
|
378
|
-
]
|
|
379
|
-
}),
|
|
380
|
-
/* @__PURE__ */ jsxs("li", {
|
|
381
|
-
children: [
|
|
382
|
-
/* @__PURE__ */ jsx("strong", {
|
|
383
|
-
children: "Permission verification"
|
|
384
|
-
}),
|
|
385
|
-
" - Ensure required scopes are granted"
|
|
386
|
-
]
|
|
387
|
-
}),
|
|
388
|
-
/* @__PURE__ */ jsxs("li", {
|
|
389
|
-
children: [
|
|
390
|
-
/* @__PURE__ */ jsx("strong", {
|
|
391
|
-
children: "Webhook validation"
|
|
392
|
-
}),
|
|
393
|
-
" - Test webhook endpoint reachability"
|
|
394
|
-
]
|
|
395
|
-
})
|
|
396
|
-
]
|
|
397
|
-
}),
|
|
398
|
-
/* @__PURE__ */ jsx("p", {
|
|
399
|
-
className: "text-muted-foreground",
|
|
400
|
-
children: 'Failed health checks update the connection status to "error" and trigger alerts.'
|
|
401
|
-
})
|
|
402
|
-
]
|
|
403
|
-
}),
|
|
404
|
-
/* @__PURE__ */ jsxs("div", {
|
|
405
|
-
className: "space-y-4",
|
|
406
|
-
children: [
|
|
407
|
-
/* @__PURE__ */ jsx("h2", {
|
|
408
|
-
className: "font-bold text-2xl",
|
|
409
|
-
children: "Secret management"
|
|
410
|
-
}),
|
|
411
|
-
/* @__PURE__ */ jsx("p", {
|
|
412
|
-
className: "text-muted-foreground",
|
|
413
|
-
children: "Secrets (API keys, tokens) are never stored in plaintext:"
|
|
414
|
-
}),
|
|
415
|
-
/* @__PURE__ */ jsxs("ol", {
|
|
416
|
-
className: "list-inside list-decimal space-y-2 text-muted-foreground",
|
|
417
|
-
children: [
|
|
418
|
-
/* @__PURE__ */ jsx("li", {
|
|
419
|
-
children: "User provides secrets through secure UI or API"
|
|
420
|
-
}),
|
|
421
|
-
/* @__PURE__ */ jsx("li", {
|
|
422
|
-
children: "Secrets are encrypted using tenant-specific keys"
|
|
423
|
-
}),
|
|
424
|
-
/* @__PURE__ */ jsx("li", {
|
|
425
|
-
children: "Encrypted secrets are stored in secure vault (e.g., AWS Secrets Manager)"
|
|
426
|
-
}),
|
|
427
|
-
/* @__PURE__ */ jsx("li", {
|
|
428
|
-
children: "IntegrationConnection stores only a reference (secretRef)"
|
|
429
|
-
}),
|
|
430
|
-
/* @__PURE__ */ jsx("li", {
|
|
431
|
-
children: "At runtime, secrets are decrypted on-demand and never logged"
|
|
432
|
-
})
|
|
433
|
-
]
|
|
434
|
-
})
|
|
435
|
-
]
|
|
436
|
-
}),
|
|
437
|
-
/* @__PURE__ */ jsxs("div", {
|
|
438
|
-
className: "space-y-4",
|
|
439
|
-
children: [
|
|
440
|
-
/* @__PURE__ */ jsx("h2", {
|
|
441
|
-
className: "font-bold text-2xl",
|
|
442
|
-
children: "Best practices"
|
|
443
|
-
}),
|
|
444
|
-
/* @__PURE__ */ jsxs("ul", {
|
|
445
|
-
className: "list-inside list-disc space-y-2 text-muted-foreground",
|
|
446
|
-
children: [
|
|
447
|
-
/* @__PURE__ */ jsx("li", {
|
|
448
|
-
children: "Always maintain separate sandbox and production connections"
|
|
449
|
-
}),
|
|
450
|
-
/* @__PURE__ */ jsx("li", {
|
|
451
|
-
children: "Use descriptive connection IDs that include tenant and environment"
|
|
452
|
-
}),
|
|
453
|
-
/* @__PURE__ */ jsx("li", {
|
|
454
|
-
children: "Monitor health check status and set up alerts for failures"
|
|
455
|
-
}),
|
|
456
|
-
/* @__PURE__ */ jsx("li", {
|
|
457
|
-
children: "Rotate secrets regularly and update secretRef accordingly"
|
|
458
|
-
}),
|
|
459
|
-
/* @__PURE__ */ jsx("li", {
|
|
460
|
-
children: "Document the purpose and ownership of each connection"
|
|
461
|
-
}),
|
|
462
|
-
/* @__PURE__ */ jsx("li", {
|
|
463
|
-
children: "Test connections in sandbox before enabling in production"
|
|
464
|
-
})
|
|
465
|
-
]
|
|
466
|
-
})
|
|
467
|
-
]
|
|
468
|
-
}),
|
|
469
|
-
/* @__PURE__ */ jsxs("div", {
|
|
470
|
-
className: "flex items-center gap-4 pt-4",
|
|
471
|
-
children: [
|
|
472
|
-
/* @__PURE__ */ jsx(Link, {
|
|
473
|
-
href: "/docs/integrations",
|
|
474
|
-
className: "btn-ghost",
|
|
475
|
-
children: "Back to Integrations"
|
|
476
|
-
}),
|
|
477
|
-
/* @__PURE__ */ jsxs(Link, {
|
|
478
|
-
href: "/docs/architecture/integration-binding",
|
|
479
|
-
className: "btn-primary",
|
|
480
|
-
children: [
|
|
481
|
-
"Integration Binding ",
|
|
482
|
-
/* @__PURE__ */ jsx(ChevronRight, {
|
|
483
|
-
size: 16
|
|
484
|
-
})
|
|
485
|
-
]
|
|
486
|
-
})
|
|
487
|
-
]
|
|
488
|
-
})
|
|
489
|
-
]
|
|
490
|
-
});
|
|
491
|
-
}
|
|
492
|
-
export {
|
|
493
|
-
IntegrationsSpecModelPage
|
|
494
|
-
};
|
|
211
|
+
}`})})]}),q("div",{className:"space-y-4",children:[f("h2",{className:"font-bold text-2xl",children:"Health checks"}),f("p",{className:"text-muted-foreground",children:"IntegrationConnections are periodically health-checked to ensure they remain valid:"}),q("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[q("li",{children:[f("strong",{children:"API key validation"})," - Test that credentials are still valid"]}),q("li",{children:[f("strong",{children:"Connectivity check"})," - Verify network access to the provider"]}),q("li",{children:[f("strong",{children:"Permission verification"})," - Ensure required scopes are granted"]}),q("li",{children:[f("strong",{children:"Webhook validation"})," - Test webhook endpoint reachability"]})]}),f("p",{className:"text-muted-foreground",children:'Failed health checks update the connection status to "error" and trigger alerts.'})]}),q("div",{className:"space-y-4",children:[f("h2",{className:"font-bold text-2xl",children:"Secret management"}),f("p",{className:"text-muted-foreground",children:"Secrets (API keys, tokens) are never stored in plaintext:"}),q("ol",{className:"list-inside list-decimal space-y-2 text-muted-foreground",children:[f("li",{children:"User provides secrets through secure UI or API"}),f("li",{children:"Secrets are encrypted using tenant-specific keys"}),f("li",{children:"Encrypted secrets are stored in secure vault (e.g., AWS Secrets Manager)"}),f("li",{children:"IntegrationConnection stores only a reference (secretRef)"}),f("li",{children:"At runtime, secrets are decrypted on-demand and never logged"})]})]}),q("div",{className:"space-y-4",children:[f("h2",{className:"font-bold text-2xl",children:"Best practices"}),q("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[f("li",{children:"Always maintain separate sandbox and production connections"}),f("li",{children:"Use descriptive connection IDs that include tenant and environment"}),f("li",{children:"Monitor health check status and set up alerts for failures"}),f("li",{children:"Rotate secrets regularly and update secretRef accordingly"}),f("li",{children:"Document the purpose and ownership of each connection"}),f("li",{children:"Test connections in sandbox before enabling in production"})]})]}),q("div",{className:"flex items-center gap-4 pt-4",children:[f(w,{href:"/docs/integrations",className:"btn-ghost",children:"Back to Integrations"}),q(w,{href:"/docs/architecture/integration-binding",className:"btn-primary",children:["Integration Binding ",f(y,{size:16})]})]})]})}export{B as IntegrationsSpecModelPage};
|