@aotter/mantle-runtime 0.0.11-alpha.73 → 0.1.0-alpha.10
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/README.md +37 -4
- package/dist/MantleRuntime.d.ts +96 -0
- package/dist/MantleRuntime.d.ts.map +1 -0
- package/dist/MantleRuntime.js +197 -0
- package/dist/MantleRuntime.js.map +1 -0
- package/dist/domain/model/EntryRow.d.ts +2 -2
- package/dist/domain/model/HandlerContext.d.ts +3 -4
- package/dist/domain/model/HandlerContext.d.ts.map +1 -1
- package/dist/domain/model/PreparedMantleRevision.d.ts +14 -0
- package/dist/domain/model/PreparedMantleRevision.d.ts.map +1 -0
- package/dist/domain/model/PreparedMantleRevision.js +8 -0
- package/dist/domain/model/PreparedMantleRevision.js.map +1 -0
- package/dist/domain/model/index.d.ts +1 -2
- package/dist/domain/model/index.d.ts.map +1 -1
- package/dist/domain/model/index.js +0 -1
- package/dist/domain/model/index.js.map +1 -1
- package/dist/domain/port/Clock.d.ts +1 -2
- package/dist/domain/port/Clock.d.ts.map +1 -1
- package/dist/domain/port/Clock.js.map +1 -1
- package/dist/domain/port/DatabaseDriver.d.ts +13 -21
- package/dist/domain/port/DatabaseDriver.d.ts.map +1 -1
- package/dist/domain/port/EntryReader.d.ts +1 -1
- package/dist/domain/port/EntryReader.d.ts.map +1 -1
- package/dist/domain/port/EntryRepository.d.ts +19 -4
- package/dist/domain/port/EntryRepository.d.ts.map +1 -1
- package/dist/domain/port/HandlerRegistry.d.ts +1 -1
- package/dist/domain/port/IdGenerator.d.ts +3 -4
- package/dist/domain/port/IdGenerator.d.ts.map +1 -1
- package/dist/domain/port/IdGenerator.js.map +1 -1
- package/dist/domain/port/MantleStorageAdapter.d.ts +23 -0
- package/dist/domain/port/MantleStorageAdapter.d.ts.map +1 -0
- package/dist/domain/port/MantleStorageAdapter.js +2 -0
- package/dist/domain/port/MantleStorageAdapter.js.map +1 -0
- package/dist/domain/port/SiteConfigRepository.d.ts +12 -10
- package/dist/domain/port/SiteConfigRepository.d.ts.map +1 -1
- package/dist/domain/port/ViewQueryExecutor.d.ts +29 -0
- package/dist/domain/port/ViewQueryExecutor.d.ts.map +1 -0
- package/dist/domain/port/ViewQueryExecutor.js +2 -0
- package/dist/domain/port/ViewQueryExecutor.js.map +1 -0
- package/dist/domain/port/index.d.ts +5 -4
- package/dist/domain/port/index.d.ts.map +1 -1
- package/dist/domain/port/index.js.map +1 -1
- package/dist/domain/service/LocaleNegotiator.d.ts.map +1 -1
- package/dist/domain/service/LocaleNegotiator.js +2 -2
- package/dist/domain/service/LocaleNegotiator.js.map +1 -1
- package/dist/domain/service/RuntimePlanCompiler.d.ts +89 -0
- package/dist/domain/service/RuntimePlanCompiler.d.ts.map +1 -0
- package/dist/domain/service/RuntimePlanCompiler.js +230 -0
- package/dist/domain/service/RuntimePlanCompiler.js.map +1 -0
- package/dist/domain/service/TriggerIndex.d.ts +5 -3
- package/dist/domain/service/TriggerIndex.d.ts.map +1 -1
- package/dist/domain/service/TriggerIndex.js +16 -4
- package/dist/domain/service/TriggerIndex.js.map +1 -1
- package/dist/domain/service/ViewParamCoercer.d.ts +1 -1
- package/dist/domain/service/ViewParamCoercer.js +1 -1
- package/dist/domain/service/index.d.ts +1 -10
- package/dist/domain/service/index.d.ts.map +1 -1
- package/dist/domain/service/index.js +1 -10
- package/dist/domain/service/index.js.map +1 -1
- package/dist/domain/service/io/EntryDeleteGuard.js +1 -1
- package/dist/domain/service/io/EntryDeleteGuard.js.map +1 -1
- package/dist/domain/service/io/EntryWriteGuard.d.ts +4 -3
- package/dist/domain/service/io/EntryWriteGuard.d.ts.map +1 -1
- package/dist/domain/service/io/EntryWriteGuard.js +3 -6
- package/dist/domain/service/io/EntryWriteGuard.js.map +1 -1
- package/dist/domain/service/io/JoinedEntryReader.d.ts +2 -3
- package/dist/domain/service/io/JoinedEntryReader.d.ts.map +1 -1
- package/dist/domain/service/io/JoinedEntryReader.js +2 -3
- package/dist/domain/service/io/JoinedEntryReader.js.map +1 -1
- package/dist/index.d.ts +17 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -12
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/boot/SqliteMigrationRunner.d.ts +10 -0
- package/dist/infrastructure/boot/SqliteMigrationRunner.d.ts.map +1 -0
- package/dist/infrastructure/boot/SqliteMigrationRunner.js +41 -0
- package/dist/infrastructure/boot/SqliteMigrationRunner.js.map +1 -0
- package/dist/infrastructure/boot/bootState.d.ts +9 -0
- package/dist/infrastructure/boot/bootState.d.ts.map +1 -0
- package/dist/infrastructure/boot/bootState.js +32 -0
- package/dist/infrastructure/boot/bootState.js.map +1 -0
- package/dist/infrastructure/boot/canonicalMigrations.d.ts +2 -0
- package/dist/infrastructure/boot/canonicalMigrations.d.ts.map +1 -1
- package/dist/infrastructure/boot/canonicalMigrations.js +181 -88
- package/dist/infrastructure/boot/canonicalMigrations.js.map +1 -1
- package/dist/infrastructure/boot/index.d.ts +3 -1
- package/dist/infrastructure/boot/index.d.ts.map +1 -1
- package/dist/infrastructure/boot/index.js +3 -1
- package/dist/infrastructure/boot/index.js.map +1 -1
- package/dist/infrastructure/http/createMantleRequestHandler.d.ts +12 -0
- package/dist/infrastructure/http/createMantleRequestHandler.d.ts.map +1 -0
- package/dist/infrastructure/http/createMantleRequestHandler.js +127 -0
- package/dist/infrastructure/http/createMantleRequestHandler.js.map +1 -0
- package/dist/infrastructure/index.d.ts +0 -1
- package/dist/infrastructure/index.d.ts.map +1 -1
- package/dist/infrastructure/index.js +0 -1
- package/dist/infrastructure/index.js.map +1 -1
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts +18 -23
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts.map +1 -1
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js +64 -39
- package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js.map +1 -1
- package/dist/infrastructure/mcp/McpToolCatalog.d.ts.map +1 -1
- package/dist/infrastructure/mcp/McpToolCatalog.js +84 -19
- package/dist/infrastructure/mcp/McpToolCatalog.js.map +1 -1
- package/dist/infrastructure/mcp/index.d.ts +1 -1
- package/dist/infrastructure/mcp/index.d.ts.map +1 -1
- package/dist/infrastructure/mcp/index.js.map +1 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts +4 -8
- package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts.map +1 -1
- package/dist/infrastructure/persistence/DatabaseEntryRepository.js +80 -35
- package/dist/infrastructure/persistence/DatabaseEntryRepository.js.map +1 -1
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.d.ts.map +1 -1
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js +39 -31
- package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js.map +1 -1
- package/dist/infrastructure/persistence/Pagination.d.ts +5 -0
- package/dist/infrastructure/persistence/Pagination.d.ts.map +1 -1
- package/dist/infrastructure/persistence/Pagination.js +49 -0
- package/dist/infrastructure/persistence/Pagination.js.map +1 -1
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.d.ts +22 -0
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.d.ts.map +1 -0
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.js +86 -0
- package/dist/infrastructure/storage/SqliteMantleStorageAdapter.js.map +1 -0
- package/dist/{domain/service/ViewSqlCompiler.d.ts → infrastructure/storage/SqliteViewCompiler.d.ts} +12 -10
- package/dist/infrastructure/storage/SqliteViewCompiler.d.ts.map +1 -0
- package/dist/infrastructure/storage/SqliteViewCompiler.js +307 -0
- package/dist/infrastructure/storage/SqliteViewCompiler.js.map +1 -0
- package/dist/infrastructure/testing/IndexCoverageHarness.d.ts +2 -2
- package/dist/infrastructure/testing/IndexCoverageHarness.d.ts.map +1 -1
- package/dist/infrastructure/testing/IndexCoverageHarness.js +10 -9
- package/dist/infrastructure/testing/IndexCoverageHarness.js.map +1 -1
- package/dist/usecase/boot/ValidateBootUseCase.d.ts +16 -35
- package/dist/usecase/boot/ValidateBootUseCase.d.ts.map +1 -1
- package/dist/usecase/boot/ValidateBootUseCase.js +79 -254
- package/dist/usecase/boot/ValidateBootUseCase.js.map +1 -1
- package/dist/usecase/boot/index.d.ts +1 -1
- package/dist/usecase/boot/index.d.ts.map +1 -1
- package/dist/usecase/boot/index.js +1 -1
- package/dist/usecase/boot/index.js.map +1 -1
- package/dist/usecase/content/ArchiveUseCase.d.ts +2 -4
- package/dist/usecase/content/ArchiveUseCase.d.ts.map +1 -1
- package/dist/usecase/content/ArchiveUseCase.js +2 -6
- package/dist/usecase/content/ArchiveUseCase.js.map +1 -1
- package/dist/usecase/content/CreateDraftUseCase.d.ts +5 -4
- package/dist/usecase/content/CreateDraftUseCase.d.ts.map +1 -1
- package/dist/usecase/content/CreateDraftUseCase.js +10 -7
- package/dist/usecase/content/CreateDraftUseCase.js.map +1 -1
- package/dist/usecase/content/DeleteEntryUseCase.d.ts +3 -5
- package/dist/usecase/content/DeleteEntryUseCase.d.ts.map +1 -1
- package/dist/usecase/content/DeleteEntryUseCase.js +3 -5
- package/dist/usecase/content/DeleteEntryUseCase.js.map +1 -1
- package/dist/usecase/content/ListEntriesUseCase.d.ts.map +1 -1
- package/dist/usecase/content/ListEntriesUseCase.js +30 -3
- package/dist/usecase/content/ListEntriesUseCase.js.map +1 -1
- package/dist/usecase/content/RequestPublishUseCase.d.ts +6 -15
- package/dist/usecase/content/RequestPublishUseCase.d.ts.map +1 -1
- package/dist/usecase/content/RequestPublishUseCase.js +7 -26
- package/dist/usecase/content/RequestPublishUseCase.js.map +1 -1
- package/dist/usecase/content/UnpublishUseCase.d.ts +1 -3
- package/dist/usecase/content/UnpublishUseCase.d.ts.map +1 -1
- package/dist/usecase/content/UnpublishUseCase.js +1 -5
- package/dist/usecase/content/UnpublishUseCase.js.map +1 -1
- package/dist/usecase/content/UpdateDraftUseCase.d.ts +4 -3
- package/dist/usecase/content/UpdateDraftUseCase.d.ts.map +1 -1
- package/dist/usecase/content/UpdateDraftUseCase.js +9 -6
- package/dist/usecase/content/UpdateDraftUseCase.js.map +1 -1
- package/dist/usecase/content/diagnostics.d.ts +1 -0
- package/dist/usecase/content/diagnostics.d.ts.map +1 -1
- package/dist/usecase/content/diagnostics.js +10 -0
- package/dist/usecase/content/diagnostics.js.map +1 -1
- package/dist/usecase/dto/content/index.d.ts +10 -1
- package/dist/usecase/dto/content/index.d.ts.map +1 -1
- package/dist/usecase/dto/index.d.ts +0 -1
- package/dist/usecase/dto/index.d.ts.map +1 -1
- package/dist/usecase/dto/index.js +0 -1
- package/dist/usecase/dto/index.js.map +1 -1
- package/dist/usecase/dto/view/ExecuteViewRequest.d.ts +2 -2
- package/dist/usecase/dto/view/ExecuteViewRequest.d.ts.map +1 -1
- package/dist/usecase/index.d.ts +0 -1
- package/dist/usecase/index.d.ts.map +1 -1
- package/dist/usecase/index.js +0 -1
- package/dist/usecase/index.js.map +1 -1
- package/dist/usecase/media/diagnostics.js +1 -1
- package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts +5 -4
- package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts.map +1 -1
- package/dist/usecase/procedure/InvokeBuiltinUseCase.js +8 -4
- package/dist/usecase/procedure/InvokeBuiltinUseCase.js.map +1 -1
- package/dist/usecase/site/UpdateSiteSettingsUseCase.d.ts +4 -5
- package/dist/usecase/site/UpdateSiteSettingsUseCase.d.ts.map +1 -1
- package/dist/usecase/site/UpdateSiteSettingsUseCase.js +36 -6
- package/dist/usecase/site/UpdateSiteSettingsUseCase.js.map +1 -1
- package/dist/usecase/view/ExecuteViewUseCase.d.ts +8 -16
- package/dist/usecase/view/ExecuteViewUseCase.d.ts.map +1 -1
- package/dist/usecase/view/ExecuteViewUseCase.js +24 -94
- package/dist/usecase/view/ExecuteViewUseCase.js.map +1 -1
- package/dist/usecase/view/index.d.ts +2 -1
- package/dist/usecase/view/index.d.ts.map +1 -1
- package/dist/usecase/view/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/domain/model/SeoMeta.d.ts +0 -47
- package/dist/domain/model/SeoMeta.d.ts.map +0 -1
- package/dist/domain/model/SeoMeta.js +0 -2
- package/dist/domain/model/SeoMeta.js.map +0 -1
- package/dist/domain/model/TemplateRegistry.d.ts +0 -50
- package/dist/domain/model/TemplateRegistry.d.ts.map +0 -1
- package/dist/domain/model/TemplateRegistry.js +0 -17
- package/dist/domain/model/TemplateRegistry.js.map +0 -1
- package/dist/domain/port/AssetServer.d.ts +0 -21
- package/dist/domain/port/AssetServer.d.ts.map +0 -1
- package/dist/domain/port/AssetServer.js +0 -2
- package/dist/domain/port/AssetServer.js.map +0 -1
- package/dist/domain/port/KvCache.d.ts +0 -34
- package/dist/domain/port/KvCache.d.ts.map +0 -1
- package/dist/domain/port/KvCache.js +0 -2
- package/dist/domain/port/KvCache.js.map +0 -1
- package/dist/domain/port/PublishOrchestrator.d.ts +0 -26
- package/dist/domain/port/PublishOrchestrator.d.ts.map +0 -1
- package/dist/domain/port/PublishOrchestrator.js +0 -2
- package/dist/domain/port/PublishOrchestrator.js.map +0 -1
- package/dist/domain/service/AbsoluteUrl.d.ts +0 -6
- package/dist/domain/service/AbsoluteUrl.d.ts.map +0 -1
- package/dist/domain/service/AbsoluteUrl.js +0 -33
- package/dist/domain/service/AbsoluteUrl.js.map +0 -1
- package/dist/domain/service/HtmlEscaping.d.ts +0 -2
- package/dist/domain/service/HtmlEscaping.d.ts.map +0 -1
- package/dist/domain/service/HtmlEscaping.js +0 -9
- package/dist/domain/service/HtmlEscaping.js.map +0 -1
- package/dist/domain/service/HtmlRenderer.d.ts +0 -36
- package/dist/domain/service/HtmlRenderer.d.ts.map +0 -1
- package/dist/domain/service/HtmlRenderer.js +0 -78
- package/dist/domain/service/HtmlRenderer.js.map +0 -1
- package/dist/domain/service/MarkdownSerializer.d.ts +0 -48
- package/dist/domain/service/MarkdownSerializer.d.ts.map +0 -1
- package/dist/domain/service/MarkdownSerializer.js +0 -109
- package/dist/domain/service/MarkdownSerializer.js.map +0 -1
- package/dist/domain/service/McpToolNaming.d.ts +0 -31
- package/dist/domain/service/McpToolNaming.d.ts.map +0 -1
- package/dist/domain/service/McpToolNaming.js +0 -48
- package/dist/domain/service/McpToolNaming.js.map +0 -1
- package/dist/domain/service/PreviewBanner.d.ts +0 -10
- package/dist/domain/service/PreviewBanner.d.ts.map +0 -1
- package/dist/domain/service/PreviewBanner.js +0 -30
- package/dist/domain/service/PreviewBanner.js.map +0 -1
- package/dist/domain/service/PublicPathResolver.d.ts +0 -41
- package/dist/domain/service/PublicPathResolver.d.ts.map +0 -1
- package/dist/domain/service/PublicPathResolver.js +0 -24
- package/dist/domain/service/PublicPathResolver.js.map +0 -1
- package/dist/domain/service/PublishKeys.d.ts +0 -42
- package/dist/domain/service/PublishKeys.d.ts.map +0 -1
- package/dist/domain/service/PublishKeys.js +0 -71
- package/dist/domain/service/PublishKeys.js.map +0 -1
- package/dist/domain/service/SeoMetaComposer.d.ts +0 -47
- package/dist/domain/service/SeoMetaComposer.d.ts.map +0 -1
- package/dist/domain/service/SeoMetaComposer.js +0 -164
- package/dist/domain/service/SeoMetaComposer.js.map +0 -1
- package/dist/domain/service/SitemapSerializer.d.ts +0 -19
- package/dist/domain/service/SitemapSerializer.d.ts.map +0 -1
- package/dist/domain/service/SitemapSerializer.js +0 -27
- package/dist/domain/service/SitemapSerializer.js.map +0 -1
- package/dist/domain/service/ViewSqlCompiler.d.ts.map +0 -1
- package/dist/domain/service/ViewSqlCompiler.js +0 -193
- package/dist/domain/service/ViewSqlCompiler.js.map +0 -1
- package/dist/domain/service/io/MediaAssetReferences.d.ts +0 -13
- package/dist/domain/service/io/MediaAssetReferences.d.ts.map +0 -1
- package/dist/domain/service/io/MediaAssetReferences.js +0 -48
- package/dist/domain/service/io/MediaAssetReferences.js.map +0 -1
- package/dist/infrastructure/render/HtmlPublishOrchestrator.d.ts +0 -38
- package/dist/infrastructure/render/HtmlPublishOrchestrator.d.ts.map +0 -1
- package/dist/infrastructure/render/HtmlPublishOrchestrator.js +0 -129
- package/dist/infrastructure/render/HtmlPublishOrchestrator.js.map +0 -1
- package/dist/infrastructure/render/index.d.ts +0 -2
- package/dist/infrastructure/render/index.d.ts.map +0 -1
- package/dist/infrastructure/render/index.js +0 -2
- package/dist/infrastructure/render/index.js.map +0 -1
- package/dist/runtime.d.ts +0 -150
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js +0 -181
- package/dist/runtime.js.map +0 -1
- package/dist/usecase/content/ContentPublishEffects.d.ts +0 -11
- package/dist/usecase/content/ContentPublishEffects.d.ts.map +0 -1
- package/dist/usecase/content/ContentPublishEffects.js +0 -21
- package/dist/usecase/content/ContentPublishEffects.js.map +0 -1
- package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.d.ts +0 -14
- package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.d.ts.map +0 -1
- package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.js +0 -2
- package/dist/usecase/dto/render/ComposeEntrySeoMetaRequest.js.map +0 -1
- package/dist/usecase/dto/render/ComposeLlmsTxtRequest.d.ts +0 -8
- package/dist/usecase/dto/render/ComposeLlmsTxtRequest.d.ts.map +0 -1
- package/dist/usecase/dto/render/ComposeLlmsTxtRequest.js +0 -2
- package/dist/usecase/dto/render/ComposeLlmsTxtRequest.js.map +0 -1
- package/dist/usecase/dto/render/ComposeSitemapRequest.d.ts +0 -11
- package/dist/usecase/dto/render/ComposeSitemapRequest.d.ts.map +0 -1
- package/dist/usecase/dto/render/ComposeSitemapRequest.js +0 -2
- package/dist/usecase/dto/render/ComposeSitemapRequest.js.map +0 -1
- package/dist/usecase/dto/render/PreviewEntryRequest.d.ts +0 -13
- package/dist/usecase/dto/render/PreviewEntryRequest.d.ts.map +0 -1
- package/dist/usecase/dto/render/PreviewEntryRequest.js +0 -2
- package/dist/usecase/dto/render/PreviewEntryRequest.js.map +0 -1
- package/dist/usecase/dto/render/RenderEntryLiveRequest.d.ts +0 -14
- package/dist/usecase/dto/render/RenderEntryLiveRequest.d.ts.map +0 -1
- package/dist/usecase/dto/render/RenderEntryLiveRequest.js +0 -2
- package/dist/usecase/dto/render/RenderEntryLiveRequest.js.map +0 -1
- package/dist/usecase/dto/render/RenderListLiveRequest.d.ts +0 -11
- package/dist/usecase/dto/render/RenderListLiveRequest.d.ts.map +0 -1
- package/dist/usecase/dto/render/RenderListLiveRequest.js +0 -2
- package/dist/usecase/dto/render/RenderListLiveRequest.js.map +0 -1
- package/dist/usecase/dto/render/index.d.ts +0 -7
- package/dist/usecase/dto/render/index.d.ts.map +0 -1
- package/dist/usecase/dto/render/index.js +0 -7
- package/dist/usecase/dto/render/index.js.map +0 -1
- package/dist/usecase/render/ComposeEntrySeoMetaUseCase.d.ts +0 -28
- package/dist/usecase/render/ComposeEntrySeoMetaUseCase.d.ts.map +0 -1
- package/dist/usecase/render/ComposeEntrySeoMetaUseCase.js +0 -59
- package/dist/usecase/render/ComposeEntrySeoMetaUseCase.js.map +0 -1
- package/dist/usecase/render/ComposeLlmsTxtUseCase.d.ts +0 -19
- package/dist/usecase/render/ComposeLlmsTxtUseCase.d.ts.map +0 -1
- package/dist/usecase/render/ComposeLlmsTxtUseCase.js +0 -39
- package/dist/usecase/render/ComposeLlmsTxtUseCase.js.map +0 -1
- package/dist/usecase/render/ComposeSitemapUseCase.d.ts +0 -15
- package/dist/usecase/render/ComposeSitemapUseCase.d.ts.map +0 -1
- package/dist/usecase/render/ComposeSitemapUseCase.js +0 -28
- package/dist/usecase/render/ComposeSitemapUseCase.js.map +0 -1
- package/dist/usecase/render/PreviewEntryUseCase.d.ts +0 -28
- package/dist/usecase/render/PreviewEntryUseCase.d.ts.map +0 -1
- package/dist/usecase/render/PreviewEntryUseCase.js +0 -72
- package/dist/usecase/render/PreviewEntryUseCase.js.map +0 -1
- package/dist/usecase/render/RenderEntryLiveUseCase.d.ts +0 -37
- package/dist/usecase/render/RenderEntryLiveUseCase.d.ts.map +0 -1
- package/dist/usecase/render/RenderEntryLiveUseCase.js +0 -63
- package/dist/usecase/render/RenderEntryLiveUseCase.js.map +0 -1
- package/dist/usecase/render/RenderListLiveUseCase.d.ts +0 -25
- package/dist/usecase/render/RenderListLiveUseCase.d.ts.map +0 -1
- package/dist/usecase/render/RenderListLiveUseCase.js +0 -45
- package/dist/usecase/render/RenderListLiveUseCase.js.map +0 -1
- package/dist/usecase/render/index.d.ts +0 -7
- package/dist/usecase/render/index.d.ts.map +0 -1
- package/dist/usecase/render/index.js +0 -7
- package/dist/usecase/render/index.js.map +0 -1
|
@@ -1,28 +1,21 @@
|
|
|
1
|
-
import { type MediaPurposePolicy, type ProcedureManifest, type SchemaManifest, type
|
|
1
|
+
import { type MediaPurposePolicy, type ProcedureManifest, type SchemaManifest, type SiteIcon, type ViewManifest } from "@aotter/mantle-spec";
|
|
2
2
|
import type { HandlerContext } from "../../domain/model/HandlerContext.js";
|
|
3
3
|
import { ArchiveUseCase, CreateDraftUseCase, DeleteEntryUseCase, GetEntryUseCase, ListEntriesUseCase, RequestPublishUseCase, UnpublishUseCase, UpdateDraftUseCase } from "../../usecase/content/index.js";
|
|
4
4
|
import { CommitMediaUploadUseCase, CreateMediaUploadUseCase } from "../../usecase/media/index.js";
|
|
5
5
|
import { ExecuteViewUseCase } from "../../usecase/view/index.js";
|
|
6
6
|
import { InvokeProcedureUseCase } from "../../usecase/procedure/InvokeProcedureUseCase.js";
|
|
7
7
|
import { type McpToolSurface } from "./McpToolCatalog.js";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
readonly
|
|
13
|
-
|
|
14
|
-
readonly
|
|
15
|
-
readonly userId: string;
|
|
16
|
-
readonly role: StaffRole;
|
|
17
|
-
} | null;
|
|
18
|
-
/** OAuth client/token metadata. Optional keeps callers compiled
|
|
19
|
-
* against older adapters working; the compatibility scope remains
|
|
20
|
-
* `mcp` when no explicit scope list is supplied. */
|
|
21
|
-
readonly clientId?: string | null;
|
|
22
|
-
readonly credentialId?: string | null;
|
|
23
|
-
readonly scopes?: readonly string[];
|
|
8
|
+
export declare const MCP_PROTOCOL_VERSION = "2025-11-25";
|
|
9
|
+
export interface McpServerInfo {
|
|
10
|
+
readonly name: string;
|
|
11
|
+
readonly title?: string;
|
|
12
|
+
readonly description?: string;
|
|
13
|
+
readonly websiteUrl?: string;
|
|
14
|
+
readonly icons?: readonly SiteIcon[];
|
|
24
15
|
}
|
|
25
|
-
|
|
16
|
+
/** JSON-RPC dispatcher for the MCP transport. Env-agnostic; the
|
|
17
|
+
* adapter resolves the caller's identity and hands `dispatch` the same
|
|
18
|
+
* normalized `HandlerContext` used by HTTP transports. */
|
|
26
19
|
/**
|
|
27
20
|
* The use-case bag the dispatcher needs. Adapter constructs this once
|
|
28
21
|
* per isolate from the runtime's pre-built use cases (the runtime's
|
|
@@ -37,12 +30,12 @@ export interface McpUseCases {
|
|
|
37
30
|
readonly unpublish: UnpublishUseCase;
|
|
38
31
|
readonly archive: ArchiveUseCase;
|
|
39
32
|
readonly deleteEntry: DeleteEntryUseCase;
|
|
40
|
-
readonly executeView?: ExecuteViewUseCase
|
|
33
|
+
readonly executeView?: Pick<ExecuteViewUseCase, "execute">;
|
|
41
34
|
/** Optional. When set together with `options.procedures`, MCP
|
|
42
35
|
* Triggers (#281) route through here. The dispatcher evaluates the
|
|
43
|
-
* Procedure's `requires.auth` against the
|
|
36
|
+
* Procedure's `requires.auth` against the HandlerContext before
|
|
44
37
|
* invoking. */
|
|
45
|
-
readonly invokeProcedure?: InvokeProcedureUseCase
|
|
38
|
+
readonly invokeProcedure?: Pick<InvokeProcedureUseCase, "execute">;
|
|
46
39
|
/** Optional. When set, `create_media_upload` and
|
|
47
40
|
* `commit_media_upload` appear in the catalog and route here.
|
|
48
41
|
* `purposes` is the declared taxonomy (#272 shape — name +
|
|
@@ -66,6 +59,7 @@ export declare class McpJsonRpcDispatcher {
|
|
|
66
59
|
* segment from the tool name and recovers the canonical
|
|
67
60
|
* collection name. */
|
|
68
61
|
private readonly schemaBySegment;
|
|
62
|
+
private readonly readOnlyCollections;
|
|
69
63
|
private readonly viewBySegment;
|
|
70
64
|
/** tool-name → Procedure manifest, for MCP triggers (#281). */
|
|
71
65
|
private readonly procedureByToolName;
|
|
@@ -76,10 +70,11 @@ export declare class McpJsonRpcDispatcher {
|
|
|
76
70
|
* `Trigger.source.kind: "mcp"` (#281). Adapter pre-filters
|
|
77
71
|
* by surface; dispatcher trusts the slice. */
|
|
78
72
|
readonly procedures?: ReadonlyArray<ProcedureManifest>;
|
|
73
|
+
readonly serverInfo?: McpServerInfo;
|
|
79
74
|
});
|
|
80
|
-
dispatch(req: Request,
|
|
75
|
+
dispatch(req: Request, ctx: HandlerContext): Promise<Response>;
|
|
81
76
|
private handleToolCall;
|
|
82
77
|
private dispatchToolByName;
|
|
78
|
+
private assertEntryMutable;
|
|
83
79
|
}
|
|
84
|
-
export {};
|
|
85
80
|
//# sourceMappingURL=McpJsonRpcDispatcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpJsonRpcDispatcher.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/mcp/McpJsonRpcDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"McpJsonRpcDispatcher.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/mcp/McpJsonRpcDispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { DiagnosticError, redactForWire, } from "@aotter/mantle-spec";
|
|
2
|
-
import { mcpToolNameSegment } from "
|
|
1
|
+
import { DiagnosticError, redactForWire, runtimeDiagnostic, } from "@aotter/mantle-spec";
|
|
2
|
+
import { mcpToolNameSegment } from "@aotter/mantle-spec";
|
|
3
3
|
import { CREATE_DRAFT_PREFIX, CREATE_RECORD_PREFIX, QUERY_VIEW_PREFIX, UPDATE_DRAFT_PREFIX, UPDATE_RECORD_PREFIX, buildMcpToolCatalog, extractCollectionSegment, } from "./McpToolCatalog.js";
|
|
4
4
|
import { jsonRpcError, jsonRpcOk, jsonRpcOkRaw, } from "./McpResponses.js";
|
|
5
5
|
import packageJson from "../../../package.json" with { type: "json" };
|
|
6
|
+
export const MCP_PROTOCOL_VERSION = "2025-11-25";
|
|
6
7
|
export class McpJsonRpcDispatcher {
|
|
7
8
|
useCases;
|
|
8
9
|
schemas;
|
|
@@ -15,6 +16,7 @@ export class McpJsonRpcDispatcher {
|
|
|
15
16
|
* segment from the tool name and recovers the canonical
|
|
16
17
|
* collection name. */
|
|
17
18
|
schemaBySegment;
|
|
19
|
+
readOnlyCollections;
|
|
18
20
|
viewBySegment;
|
|
19
21
|
/** tool-name → Procedure manifest, for MCP triggers (#281). */
|
|
20
22
|
procedureByToolName;
|
|
@@ -31,6 +33,7 @@ export class McpJsonRpcDispatcher {
|
|
|
31
33
|
});
|
|
32
34
|
this.catalogWireJson = `{"tools":${JSON.stringify(this.catalog)}}`;
|
|
33
35
|
this.catalogToolNames = new Set(this.catalog.map((tool) => tool.name));
|
|
36
|
+
this.readOnlyCollections = new Set(schemas.filter((schema) => schema.spec.schema.readOnly === true).map((schema) => schema.metadata.name));
|
|
34
37
|
const map = new Map();
|
|
35
38
|
for (const s of schemas)
|
|
36
39
|
map.set(mcpToolNameSegment(s.metadata.name), s.metadata.name);
|
|
@@ -45,12 +48,9 @@ export class McpJsonRpcDispatcher {
|
|
|
45
48
|
}
|
|
46
49
|
this.procedureByToolName = procs;
|
|
47
50
|
}
|
|
48
|
-
async dispatch(req,
|
|
49
|
-
if (req.method === "GET") {
|
|
50
|
-
return new Response("MCP endpoint — POST JSON-RPC here.", { status: 200 });
|
|
51
|
-
}
|
|
51
|
+
async dispatch(req, ctx) {
|
|
52
52
|
if (req.method !== "POST") {
|
|
53
|
-
return new Response("method not allowed", { status: 405 });
|
|
53
|
+
return new Response("method not allowed", { status: 405, headers: { allow: "POST" } });
|
|
54
54
|
}
|
|
55
55
|
let body;
|
|
56
56
|
try {
|
|
@@ -59,23 +59,38 @@ export class McpJsonRpcDispatcher {
|
|
|
59
59
|
catch {
|
|
60
60
|
return jsonRpcError(null, -32700, "parse error");
|
|
61
61
|
}
|
|
62
|
+
if (!body
|
|
63
|
+
|| typeof body !== "object"
|
|
64
|
+
|| Array.isArray(body)
|
|
65
|
+
|| body.jsonrpc !== "2.0"
|
|
66
|
+
|| typeof body.method !== "string") {
|
|
67
|
+
return jsonRpcError(null, -32600, "invalid request");
|
|
68
|
+
}
|
|
62
69
|
const { id = null, method, params } = body;
|
|
70
|
+
if (method !== "initialize" && req.headers.get("mcp-protocol-version") !== MCP_PROTOCOL_VERSION) {
|
|
71
|
+
return new Response(`MCP-Protocol-Version must be ${MCP_PROTOCOL_VERSION}.`, { status: 400 });
|
|
72
|
+
}
|
|
63
73
|
switch (method) {
|
|
64
74
|
case "initialize":
|
|
65
75
|
return jsonRpcOk(id, {
|
|
66
|
-
protocolVersion:
|
|
76
|
+
protocolVersion: MCP_PROTOCOL_VERSION,
|
|
67
77
|
capabilities: { tools: { listChanged: false } },
|
|
68
|
-
serverInfo: {
|
|
78
|
+
serverInfo: {
|
|
79
|
+
...(this.options.serverInfo ?? { name: "aotter.mantle" }),
|
|
80
|
+
version: packageJson.version,
|
|
81
|
+
},
|
|
69
82
|
});
|
|
83
|
+
case "notifications/initialized":
|
|
84
|
+
return new Response(null, { status: 202 });
|
|
70
85
|
case "tools/list":
|
|
71
86
|
return jsonRpcOkRaw(id, this.catalogWireJson);
|
|
72
87
|
case "tools/call":
|
|
73
|
-
return this.handleToolCall(id, params,
|
|
88
|
+
return this.handleToolCall(id, params, ctx);
|
|
74
89
|
default:
|
|
75
90
|
return jsonRpcError(id, -32601, `unknown method: ${method}`);
|
|
76
91
|
}
|
|
77
92
|
}
|
|
78
|
-
async handleToolCall(reqId, params,
|
|
93
|
+
async handleToolCall(reqId, params, ctx) {
|
|
79
94
|
const p = params;
|
|
80
95
|
if (!p || typeof p.name !== "string") {
|
|
81
96
|
return jsonRpcError(reqId, -32602, "missing tool name");
|
|
@@ -85,7 +100,7 @@ export class McpJsonRpcDispatcher {
|
|
|
85
100
|
return jsonRpcError(reqId, -32601, `unknown tool: ${p.name}`);
|
|
86
101
|
}
|
|
87
102
|
try {
|
|
88
|
-
const result = await this.dispatchToolByName(p.name, args,
|
|
103
|
+
const result = await this.dispatchToolByName(p.name, args, ctx);
|
|
89
104
|
if (result === UNKNOWN_TOOL) {
|
|
90
105
|
return jsonRpcError(reqId, -32601, `unknown tool: ${p.name}`);
|
|
91
106
|
}
|
|
@@ -107,7 +122,7 @@ export class McpJsonRpcDispatcher {
|
|
|
107
122
|
return jsonRpcError(reqId, -32000, "Internal error.");
|
|
108
123
|
}
|
|
109
124
|
}
|
|
110
|
-
async dispatchToolByName(name, args,
|
|
125
|
+
async dispatchToolByName(name, args, ctx) {
|
|
111
126
|
// Procedure-derived MCP tools (#281). Check first on every
|
|
112
127
|
// surface — a Procedure's tool name lives in the same namespace
|
|
113
128
|
// as the per-collection / per-view tools, and the catalog
|
|
@@ -120,7 +135,7 @@ export class McpJsonRpcDispatcher {
|
|
|
120
135
|
const result = await this.useCases.invokeProcedure.execute({
|
|
121
136
|
procedure,
|
|
122
137
|
input: args,
|
|
123
|
-
ctx
|
|
138
|
+
ctx,
|
|
124
139
|
pathPrefix: `MCP ${name}`,
|
|
125
140
|
});
|
|
126
141
|
if (!result.ok)
|
|
@@ -135,8 +150,8 @@ export class McpJsonRpcDispatcher {
|
|
|
135
150
|
const view = this.viewBySegment.get(viewSegment);
|
|
136
151
|
if (!view || !this.useCases.executeView)
|
|
137
152
|
return UNKNOWN_TOOL;
|
|
138
|
-
//
|
|
139
|
-
//
|
|
153
|
+
// Use the adapter-normalized caller so the executeView use case can
|
|
154
|
+
// evaluate `requires.auth.all`. Without
|
|
140
155
|
// this, every auth-gated public-surface View returned
|
|
141
156
|
// UNAUTHENTICATED for every caller including authenticated staff.
|
|
142
157
|
const result = await this.useCases.executeView.execute({
|
|
@@ -147,7 +162,7 @@ export class McpJsonRpcDispatcher {
|
|
|
147
162
|
show: typeof args["show"] === "number" ? args["show"] : undefined,
|
|
148
163
|
},
|
|
149
164
|
pathPrefix: `MCP ${name}`,
|
|
150
|
-
ctx
|
|
165
|
+
ctx,
|
|
151
166
|
});
|
|
152
167
|
if (!result.ok)
|
|
153
168
|
throw new DiagnosticError(result.diagnostic);
|
|
@@ -156,7 +171,6 @@ export class McpJsonRpcDispatcher {
|
|
|
156
171
|
if ((this.options.surface ?? "staff") === "public") {
|
|
157
172
|
return UNKNOWN_TOOL;
|
|
158
173
|
}
|
|
159
|
-
const hookCtx = ctxFromAuth(auth, requestContext);
|
|
160
174
|
switch (name) {
|
|
161
175
|
case "list_entries": {
|
|
162
176
|
const collection = args["collection"];
|
|
@@ -168,8 +182,16 @@ export class McpJsonRpcDispatcher {
|
|
|
168
182
|
return this.useCases.listEntries.executePage({
|
|
169
183
|
collection,
|
|
170
184
|
status: args["status"],
|
|
185
|
+
search: typeof args["search"] === "string" ? args["search"] : undefined,
|
|
186
|
+
sort: typeof args["sort"] === "string"
|
|
187
|
+
? {
|
|
188
|
+
field: args["sort"],
|
|
189
|
+
direction: args["direction"] === "asc" ? "asc" : "desc",
|
|
190
|
+
}
|
|
191
|
+
: undefined,
|
|
171
192
|
limit: typeof args["limit"] === "number" ? args["limit"] : undefined,
|
|
172
193
|
cursor: typeof args["cursor"] === "string" ? args["cursor"] : undefined,
|
|
194
|
+
cursorDirection: args["cursorDirection"] === "backward" ? "backward" : "forward",
|
|
173
195
|
});
|
|
174
196
|
}
|
|
175
197
|
case "get_entry": {
|
|
@@ -182,9 +204,10 @@ export class McpJsonRpcDispatcher {
|
|
|
182
204
|
const id = args["id"];
|
|
183
205
|
if (typeof id !== "string")
|
|
184
206
|
return MISSING_ARG;
|
|
207
|
+
await this.assertEntryMutable(id, name);
|
|
185
208
|
return this.useCases.requestPublish.execute({
|
|
186
209
|
id,
|
|
187
|
-
ctx
|
|
210
|
+
ctx,
|
|
188
211
|
originalInput: args,
|
|
189
212
|
});
|
|
190
213
|
}
|
|
@@ -192,9 +215,10 @@ export class McpJsonRpcDispatcher {
|
|
|
192
215
|
const id = args["id"];
|
|
193
216
|
if (typeof id !== "string")
|
|
194
217
|
return MISSING_ARG;
|
|
218
|
+
await this.assertEntryMutable(id, name);
|
|
195
219
|
return this.useCases.unpublish.execute({
|
|
196
220
|
id,
|
|
197
|
-
ctx
|
|
221
|
+
ctx,
|
|
198
222
|
originalInput: args,
|
|
199
223
|
});
|
|
200
224
|
}
|
|
@@ -202,9 +226,10 @@ export class McpJsonRpcDispatcher {
|
|
|
202
226
|
const id = args["id"];
|
|
203
227
|
if (typeof id !== "string")
|
|
204
228
|
return MISSING_ARG;
|
|
229
|
+
await this.assertEntryMutable(id, name);
|
|
205
230
|
return this.useCases.archive.execute({
|
|
206
231
|
id,
|
|
207
|
-
ctx
|
|
232
|
+
ctx,
|
|
208
233
|
originalInput: args,
|
|
209
234
|
});
|
|
210
235
|
}
|
|
@@ -212,9 +237,10 @@ export class McpJsonRpcDispatcher {
|
|
|
212
237
|
const id = args["id"];
|
|
213
238
|
if (typeof id !== "string")
|
|
214
239
|
return MISSING_ARG;
|
|
240
|
+
await this.assertEntryMutable(id, name);
|
|
215
241
|
return this.useCases.deleteEntry.execute({
|
|
216
242
|
id,
|
|
217
|
-
ctx
|
|
243
|
+
ctx,
|
|
218
244
|
originalInput: args,
|
|
219
245
|
});
|
|
220
246
|
}
|
|
@@ -280,8 +306,8 @@ export class McpJsonRpcDispatcher {
|
|
|
280
306
|
return this.useCases.createDraft.execute({
|
|
281
307
|
collection,
|
|
282
308
|
data,
|
|
283
|
-
authorId:
|
|
284
|
-
ctx
|
|
309
|
+
authorId: ctx.user?.id ?? null,
|
|
310
|
+
ctx,
|
|
285
311
|
originalInput: data,
|
|
286
312
|
});
|
|
287
313
|
}
|
|
@@ -303,7 +329,7 @@ export class McpJsonRpcDispatcher {
|
|
|
303
329
|
id,
|
|
304
330
|
expectedVersion: expected,
|
|
305
331
|
data,
|
|
306
|
-
ctx
|
|
332
|
+
ctx,
|
|
307
333
|
originalInput: data,
|
|
308
334
|
});
|
|
309
335
|
}
|
|
@@ -311,23 +337,22 @@ export class McpJsonRpcDispatcher {
|
|
|
311
337
|
}
|
|
312
338
|
}
|
|
313
339
|
}
|
|
340
|
+
async assertEntryMutable(id, toolName) {
|
|
341
|
+
const entry = await this.useCases.getEntry.execute({ id });
|
|
342
|
+
if (!this.readOnlyCollections.has(entry.collection))
|
|
343
|
+
return;
|
|
344
|
+
throw new DiagnosticError(runtimeDiagnostic({
|
|
345
|
+
code: "CONFLICT",
|
|
346
|
+
severity: "error",
|
|
347
|
+
path: `MCP ${toolName}`,
|
|
348
|
+
value: entry.collection,
|
|
349
|
+
expected: "a Schema without root readOnly: true",
|
|
350
|
+
message: `Schema '${entry.collection}' is read-only on generic authoring surfaces; use its declared Procedures.`,
|
|
351
|
+
}));
|
|
352
|
+
}
|
|
314
353
|
}
|
|
315
354
|
const UNKNOWN_TOOL = Symbol("unknown-tool");
|
|
316
355
|
const MISSING_ARG = Symbol("missing-arg");
|
|
317
|
-
function ctxFromAuth(auth, requestContext) {
|
|
318
|
-
return {
|
|
319
|
-
user: { id: auth.userId },
|
|
320
|
-
staff: auth.staff ? { id: auth.staff.userId, role: auth.staff.role } : null,
|
|
321
|
-
auth: {
|
|
322
|
-
credential: "oauth",
|
|
323
|
-
credentialId: auth.credentialId ?? null,
|
|
324
|
-
clientId: auth.clientId ?? null,
|
|
325
|
-
scopes: auth.scopes ?? ["mcp"],
|
|
326
|
-
},
|
|
327
|
-
env: requestContext.env ?? {},
|
|
328
|
-
...(requestContext.waitUntil ? { waitUntil: requestContext.waitUntil } : {}),
|
|
329
|
-
};
|
|
330
|
-
}
|
|
331
356
|
/**
|
|
332
357
|
* Strip the `id` + `expected_version` envelope keys before passing
|
|
333
358
|
* the rest to the chokepoint as `data`. Per-collection update tools
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpJsonRpcDispatcher.js","sourceRoot":"","sources":["../../../src/infrastructure/mcp/McpJsonRpcDispatcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"McpJsonRpcDispatcher.js","sourceRoot":"","sources":["../../../src/infrastructure/mcp/McpJsonRpcDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,GAOlB,MAAM,qBAAqB,CAAC;AAiB7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,GAGzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,SAAS,EACT,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AA8CjD,MAAM,OAAO,oBAAoB;IAeZ;IACA;IACA;IAhBF,OAAO,CAA+B;IACtC,eAAe,CAAS;IACxB,gBAAgB,CAAsB;IACvD;;;2BAGuB;IACN,eAAe,CAA8B;IAC7C,mBAAmB,CAAsB;IACzC,aAAa,CAAoC;IAClE,+DAA+D;IAC9C,mBAAmB,CAAyC;IAE7E,YACmB,QAAqB,EACrB,OAAsC,EACtC,UAQb,EAAE;QAVW,aAAQ,GAAR,QAAQ,CAAa;QACrB,YAAO,GAAP,OAAO,CAA+B;QACtC,YAAO,GAAP,OAAO,CAQlB;QAEN,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE;YAC1C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO;YACnC,YAAY,EAAE,QAAQ,CAAC,KAAK,KAAK,SAAS;YAC1C,aAAa,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ;YACvC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QACnE,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,mBAAmB,GAAG,IAAI,GAAG,CAChC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CACvG,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvF,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE;YAAE,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;QACnD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YACzC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,GAAY,EACZ,GAAmB;QAEnB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1B,OAAO,IAAI,QAAQ,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,IAA0F,CAAC;QAC/F,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAgB,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QACnD,CAAC;QACD,IACE,CAAC,IAAI;eACF,OAAO,IAAI,KAAK,QAAQ;eACxB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;eACnB,IAAI,CAAC,OAAO,KAAK,KAAK;eACtB,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAClC,CAAC;YACD,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAE3C,IAAI,MAAM,KAAK,YAAY,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,oBAAoB,EAAE,CAAC;YAChG,OAAO,IAAI,QAAQ,CAAC,gCAAgC,oBAAoB,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAChG,CAAC;QAED,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,YAAY;gBACf,OAAO,SAAS,CAAC,EAAE,EAAE;oBACnB,eAAe,EAAE,oBAAoB;oBACrC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE;oBAC/C,UAAU,EAAE;wBACV,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;wBACzD,OAAO,EAAE,WAAW,CAAC,OAAO;qBAC7B;iBACF,CAAC,CAAC;YACL,KAAK,2BAA2B;gBAC9B,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7C,KAAK,YAAY;gBACf,OAAO,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAChD,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC9C;gBACE,OAAO,YAAY,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,mBAAmB,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,KAAc,EACd,MAAe,EACf,GAAmB;QAEnB,MAAM,CAAC,GAAG,MAA4E,CAAC;QACvF,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAChE,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;gBAC5B,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC3B,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,SAAS,CAAC,KAAK,EAAE;gBACtB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;aAC1D,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,eAAe,EAAE,CAAC;gBACjC,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACxF,CAAC;YACD,4DAA4D;YAC5D,gEAAgE;YAChE,8CAA8C;YAC9C,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,CAAC,CAAC,CAAC;YACrE,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,IAAY,EACZ,IAA6B,EAC7B,GAAmB;QAEnB,2DAA2D;QAC3D,gEAAgE;QAChE,0DAA0D;QAC1D,gEAAgE;QAChE,QAAQ;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe;gBAAE,OAAO,YAAY,CAAC;YACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC;gBACzD,SAAS;gBACT,KAAK,EAAE,IAAI;gBACX,GAAG;gBACH,UAAU,EAAE,OAAO,IAAI,EAAE;aAC1B,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAED,iEAAiE;QACjE,+DAA+D;QAC/D,+DAA+D;QAC/D,MAAM,WAAW,GAAG,wBAAwB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACtE,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW;gBAAE,OAAO,YAAY,CAAC;YAC7D,oEAAoE;YACpE,wCAAwC;YACxC,sDAAsD;YACtD,kEAAkE;YAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;gBACrD,IAAI;gBACJ,OAAO,EAAE;oBACP,MAAM,EAAE,qBAAqB,CAAC,IAAI,CAAC;oBACnC,IAAI,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;oBACjE,IAAI,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;iBAClE;gBACD,UAAU,EAAE,OAAO,IAAI,EAAE;gBACzB,GAAG;aACJ,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;gBACtC,IAAI,OAAO,UAAU,KAAK,QAAQ;oBAAE,OAAO,WAAW,CAAC;gBACvD,0DAA0D;gBAC1D,yDAAyD;gBACzD,iCAAiC;gBACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC;oBAC3C,UAAU;oBACV,MAAM,EAAE,IAAI,CAAC,QAAQ,CAA6B;oBAClD,MAAM,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;oBACvE,IAAI,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ;wBACpC,CAAC,CAAC;4BACE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;4BACnB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;yBACxD;wBACH,CAAC,CAAC,SAAS;oBACb,KAAK,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;oBACpE,MAAM,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;oBACvE,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;iBACjF,CAAC,CAAC;YACL,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,IAAI,OAAO,EAAE,KAAK,QAAQ;oBAAE,OAAO,WAAW,CAAC;gBAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,IAAI,OAAO,EAAE,KAAK,QAAQ;oBAAE,OAAO,WAAW,CAAC;gBAC/C,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC1C,EAAE;oBACF,GAAG;oBACH,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;YACL,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,IAAI,OAAO,EAAE,KAAK,QAAQ;oBAAE,OAAO,WAAW,CAAC;gBAC/C,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;oBACrC,EAAE;oBACF,GAAG;oBACH,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;YACL,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,IAAI,OAAO,EAAE,KAAK,QAAQ;oBAAE,OAAO,WAAW,CAAC;gBAC/C,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;oBACnC,EAAE;oBACF,GAAG;oBACH,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;YACL,CAAC;YACD,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,IAAI,OAAO,EAAE,KAAK,QAAQ;oBAAE,OAAO,WAAW,CAAC;gBAC/C,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;oBACvC,EAAE;oBACF,GAAG;oBACH,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;YACL,CAAC;YACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK;oBAAE,OAAO,YAAY,CAAC;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;gBAClC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;gBACrC,IACE,OAAO,QAAQ,KAAK,QAAQ;oBAC5B,OAAO,OAAO,KAAK,QAAQ;oBAC3B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,CAAC;oBACD,OAAO,WAAW,CAAC;gBACrB,CAAC;gBACD,MAAM,QAAQ,GAIT,EAAE,CAAC;gBACR,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;oBAC9B,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;wBAAE,OAAO,WAAW,CAAC;oBAChE,MAAM,CAAC,GAAG,GAA8B,CAAC;oBACzC,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;oBAC/B,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;oBAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;oBACvB,IACE,OAAO,QAAQ,KAAK,QAAQ;wBAC5B,OAAO,QAAQ,KAAK,QAAQ;wBAC5B,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;wBAC/B,QAAQ,IAAI,CAAC;wBACb,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,UAAU,CAAC,EACnE,CAAC;wBACD,OAAO,WAAW,CAAC;oBACrB,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,CAAC;gBACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;oBAC9C,QAAQ;oBACR,OAAO;oBACP,QAAQ;oBACR,GAAG,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC9D,OAAO,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC3E,CAAC,CAAC;YACL,CAAC;YACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK;oBAAE,OAAO,YAAY,CAAC;gBAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC5C,IAAI,OAAO,aAAa,KAAK,QAAQ;oBAAE,OAAO,WAAW,CAAC;gBAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;oBAC9C,aAAa;oBACb,GAAG,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC9D,OAAO,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC3E,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,4DAA4D;gBAC5D,6DAA6D;gBAC7D,6BAA6B;gBAC7B,MAAM,aAAa,GACjB,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,CAAC;oBACnD,wBAAwB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;gBACvD,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAC3D,IAAI,CAAC,UAAU;wBAAE,OAAO,YAAY,CAAC;oBACrC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;wBACvC,UAAU;wBACV,IAAI;wBACJ,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI;wBAC9B,GAAG;wBACH,aAAa,EAAE,IAAI;qBACpB,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,aAAa,GACjB,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,CAAC;oBACnD,wBAAwB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;gBACvD,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAC3D,IAAI,CAAC,UAAU;wBAAE,OAAO,YAAY,CAAC;oBACrC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAC1C,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;wBAAE,OAAO,WAAW,CAAC;oBAC/E,2DAA2D;oBAC3D,4DAA4D;oBAC5D,qCAAqC;oBACrC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;wBACvC,EAAE;wBACF,eAAe,EAAE,QAAQ;wBACzB,IAAI;wBACJ,GAAG;wBACH,aAAa,EAAE,IAAI;qBACpB,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,EAAU,EAAE,QAAgB;QAC3D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;YAAE,OAAO;QAC5D,MAAM,IAAI,eAAe,CAAC,iBAAiB,CAAC;YAC1C,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,OAAO,QAAQ,EAAE;YACvB,KAAK,EAAE,KAAK,CAAC,UAAU;YACvB,QAAQ,EAAE,sCAAsC;YAChD,OAAO,EAAE,WAAW,KAAK,CAAC,UAAU,4EAA4E;SACjH,CAAC,CAAC,CAAC;IACN,CAAC;CACF;AAED,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,iBAAiB,GAAsB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;AACxE,SAAS,iBAAiB,CAAC,IAA6B;IACtD,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,SAAS;QAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,sBAAsB,GAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACnE,SAAS,qBAAqB,CAAC,IAA6B;IAC1D,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,SAAS;QACjD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpToolCatalog.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/mcp/McpToolCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"McpToolCatalog.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/mcp/McpToolCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/C;AAED,eAAO,MAAM,wBAAwB,EAAE,iBAiBtC,CAAC;AAqGF,eAAO,MAAM,aAAa,EAAE,SAAS,iBAAiB,EAgErD,CAAC;AAEF,eAAO,MAAM,mBAAmB,kBAA0B,CAAC;AAC3D,eAAO,MAAM,mBAAmB,kBAA0B,CAAC;AAC3D,eAAO,MAAM,oBAAoB,mBAA2B,CAAC;AAC7D,eAAO,MAAM,oBAAoB,mBAA2B,CAAC;AAC7D,eAAO,MAAM,iBAAiB,gBAAwB,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC;;uCAEmC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;sDAKkD;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACvD;gEAC4D;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAC7C;;;gDAG4C;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;CACxD;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,EACtC,IAAI,GAAE,uBAA4B,GACjC,SAAS,iBAAiB,EAAE,CAmB9B;AAiED;;sBAEsB;AACtB;oEACoE;AACpE,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAIf"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { MANTLE_BIND_KEYWORD, expandPolicyRequired, resolveLifecycle, resolveLocalizedText, } from "@aotter/mantle-spec";
|
|
2
|
-
import { mcpToolNameSegment } from "../../domain/service/McpToolNaming.js";
|
|
1
|
+
import { MANTLE_BIND_KEYWORD, MCP_CREATE_DRAFT_PREFIX, MCP_CREATE_RECORD_PREFIX, MCP_QUERY_VIEW_PREFIX, MCP_UPDATE_DRAFT_PREFIX, MCP_UPDATE_RECORD_PREFIX, mcpToolNameSegment, expandPolicyRequired, resolveLifecycle, resolveLocalizedText, } from "@aotter/mantle-spec";
|
|
3
2
|
export const COMMIT_MEDIA_UPLOAD_TOOL = {
|
|
4
3
|
name: "commit_media_upload",
|
|
5
4
|
description: "Commit a previously-PUT variant bundle. Verifies every variant landed at the storage backend (HEAD + bytes per declared mime) and writes the committed MediaAsset to the media_assets table. Returns the asset with its variants populated; write the returned MediaAsset.id into the relevant media asset id field via the authoring tools. Only registered when the runtime has a media storage adapter bound and a media.purposes taxonomy declared.",
|
|
@@ -98,14 +97,18 @@ function buildCreateMediaUploadTool(mediaPurposes = []) {
|
|
|
98
97
|
export const GENERIC_TOOLS = [
|
|
99
98
|
{
|
|
100
99
|
name: "list_entries",
|
|
101
|
-
description: "
|
|
100
|
+
description: "Search, sort, and page through entries in a collection. Result is { rows, previousCursor?, nextCursor? }; cursors are opaque.",
|
|
102
101
|
inputSchema: {
|
|
103
102
|
type: "object",
|
|
104
103
|
properties: {
|
|
105
104
|
collection: { type: "string" },
|
|
106
105
|
status: { type: "string", enum: ["draft", "published", "archived"] },
|
|
106
|
+
search: { type: "string", description: "Substring matched against entry id and the Schema's searchableFields." },
|
|
107
|
+
sort: { type: "string", description: "id, status, updatedAt, or a Schema-indexed required scalar field." },
|
|
108
|
+
direction: { type: "string", enum: ["asc", "desc"] },
|
|
107
109
|
limit: { type: "number" },
|
|
108
110
|
cursor: { type: "string", description: "Opaque continuation token from a previous list_entries response." },
|
|
111
|
+
cursorDirection: { type: "string", enum: ["forward", "backward"] },
|
|
109
112
|
},
|
|
110
113
|
required: ["collection"],
|
|
111
114
|
},
|
|
@@ -121,7 +124,7 @@ export const GENERIC_TOOLS = [
|
|
|
121
124
|
},
|
|
122
125
|
{
|
|
123
126
|
name: "request_publish",
|
|
124
|
-
description: "Publish a draft
|
|
127
|
+
description: "Publish a draft immediately. Not available for operational records.",
|
|
125
128
|
inputSchema: {
|
|
126
129
|
type: "object",
|
|
127
130
|
properties: { id: { type: "string" } },
|
|
@@ -130,7 +133,7 @@ export const GENERIC_TOOLS = [
|
|
|
130
133
|
},
|
|
131
134
|
{
|
|
132
135
|
name: "unpublish_entry",
|
|
133
|
-
description: "Unpublish a content entry back to draft before editing. Not available for
|
|
136
|
+
description: "Unpublish a content entry back to draft before editing. Not available for operational records.",
|
|
134
137
|
inputSchema: {
|
|
135
138
|
type: "object",
|
|
136
139
|
properties: { id: { type: "string" } },
|
|
@@ -139,7 +142,7 @@ export const GENERIC_TOOLS = [
|
|
|
139
142
|
},
|
|
140
143
|
{
|
|
141
144
|
name: "archive_entry",
|
|
142
|
-
description: "Archive a content entry. Not available for
|
|
145
|
+
description: "Archive a content entry. Not available for operational records.",
|
|
143
146
|
inputSchema: {
|
|
144
147
|
type: "object",
|
|
145
148
|
properties: { id: { type: "string" } },
|
|
@@ -148,7 +151,7 @@ export const GENERIC_TOOLS = [
|
|
|
148
151
|
},
|
|
149
152
|
{
|
|
150
153
|
name: "delete_entry",
|
|
151
|
-
description: "Permanently delete an entry.
|
|
154
|
+
description: "Permanently delete an entry. For content lifecycles, prefer archive_entry when reversibility matters.",
|
|
152
155
|
inputSchema: {
|
|
153
156
|
type: "object",
|
|
154
157
|
properties: { id: { type: "string" } },
|
|
@@ -156,28 +159,89 @@ export const GENERIC_TOOLS = [
|
|
|
156
159
|
},
|
|
157
160
|
},
|
|
158
161
|
];
|
|
159
|
-
export const CREATE_DRAFT_PREFIX =
|
|
160
|
-
export const UPDATE_DRAFT_PREFIX =
|
|
161
|
-
export const CREATE_RECORD_PREFIX =
|
|
162
|
-
export const UPDATE_RECORD_PREFIX =
|
|
163
|
-
export const QUERY_VIEW_PREFIX =
|
|
162
|
+
export const CREATE_DRAFT_PREFIX = MCP_CREATE_DRAFT_PREFIX;
|
|
163
|
+
export const UPDATE_DRAFT_PREFIX = MCP_UPDATE_DRAFT_PREFIX;
|
|
164
|
+
export const CREATE_RECORD_PREFIX = MCP_CREATE_RECORD_PREFIX;
|
|
165
|
+
export const UPDATE_RECORD_PREFIX = MCP_UPDATE_RECORD_PREFIX;
|
|
166
|
+
export const QUERY_VIEW_PREFIX = MCP_QUERY_VIEW_PREFIX;
|
|
164
167
|
export function buildMcpToolCatalog(schemas, opts = {}) {
|
|
165
168
|
const surface = opts.surface ?? "staff";
|
|
166
169
|
const procedureTools = (opts.procedures ?? []).map(buildProcedureTool);
|
|
167
170
|
if (surface === "public") {
|
|
168
|
-
return
|
|
171
|
+
return collapseToolSchemaAnnotations([
|
|
172
|
+
...(opts.views ?? []).map(buildQueryViewTool),
|
|
173
|
+
...procedureTools,
|
|
174
|
+
]);
|
|
169
175
|
}
|
|
170
176
|
const out = [...GENERIC_TOOLS];
|
|
171
177
|
if (opts.mediaEnabled)
|
|
172
178
|
out.push(...buildMediaTools(opts.mediaPurposes ?? []));
|
|
173
179
|
for (const s of schemas) {
|
|
180
|
+
if (s.spec.schema.readOnly === true)
|
|
181
|
+
continue;
|
|
174
182
|
out.push(buildCreateTool(s));
|
|
175
183
|
out.push(buildUpdateTool(s));
|
|
176
184
|
}
|
|
177
185
|
out.push(...(opts.views ?? []).map(buildQueryViewTool));
|
|
178
186
|
out.push(...procedureTools);
|
|
187
|
+
return collapseToolSchemaAnnotations(out);
|
|
188
|
+
}
|
|
189
|
+
function collapseToolSchemaAnnotations(tools) {
|
|
190
|
+
return tools.map((tool) => ({
|
|
191
|
+
...tool,
|
|
192
|
+
inputSchema: collapseSchemaAnnotations(tool.inputSchema),
|
|
193
|
+
}));
|
|
194
|
+
}
|
|
195
|
+
function collapseSchemaAnnotations(schema) {
|
|
196
|
+
const out = { ...schema };
|
|
197
|
+
for (const keyword of ["title", "description"]) {
|
|
198
|
+
const value = schema[keyword];
|
|
199
|
+
if (value !== undefined)
|
|
200
|
+
out[keyword] = resolveLocalizedText(value, "en");
|
|
201
|
+
}
|
|
202
|
+
for (const keyword of [
|
|
203
|
+
"properties",
|
|
204
|
+
"patternProperties",
|
|
205
|
+
"dependentSchemas",
|
|
206
|
+
"$defs",
|
|
207
|
+
"definitions",
|
|
208
|
+
]) {
|
|
209
|
+
const children = schema[keyword];
|
|
210
|
+
if (!isRecord(children))
|
|
211
|
+
continue;
|
|
212
|
+
out[keyword] = Object.fromEntries(Object.entries(children).map(([name, child]) => [
|
|
213
|
+
name,
|
|
214
|
+
isRecord(child) ? collapseSchemaAnnotations(child) : child,
|
|
215
|
+
]));
|
|
216
|
+
}
|
|
217
|
+
for (const keyword of [
|
|
218
|
+
"additionalProperties",
|
|
219
|
+
"unevaluatedProperties",
|
|
220
|
+
"unevaluatedItems",
|
|
221
|
+
"propertyNames",
|
|
222
|
+
"items",
|
|
223
|
+
"contains",
|
|
224
|
+
"not",
|
|
225
|
+
"if",
|
|
226
|
+
"then",
|
|
227
|
+
"else",
|
|
228
|
+
"contentSchema",
|
|
229
|
+
]) {
|
|
230
|
+
const child = schema[keyword];
|
|
231
|
+
if (isRecord(child))
|
|
232
|
+
out[keyword] = collapseSchemaAnnotations(child);
|
|
233
|
+
}
|
|
234
|
+
for (const keyword of ["prefixItems", "allOf", "anyOf", "oneOf"]) {
|
|
235
|
+
const children = schema[keyword];
|
|
236
|
+
if (!Array.isArray(children))
|
|
237
|
+
continue;
|
|
238
|
+
out[keyword] = children.map((child) => isRecord(child) ? collapseSchemaAnnotations(child) : child);
|
|
239
|
+
}
|
|
179
240
|
return out;
|
|
180
241
|
}
|
|
242
|
+
function isRecord(value) {
|
|
243
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
244
|
+
}
|
|
181
245
|
/** Re-export the naming util from `domain/service/` so existing
|
|
182
246
|
* consumers of `McpToolCatalog` (the dispatcher) keep their import
|
|
183
247
|
* surface stable. */
|
|
@@ -198,7 +262,7 @@ function buildCreateTool(schema) {
|
|
|
198
262
|
if (required.length > 0)
|
|
199
263
|
inputSchema["required"] = required;
|
|
200
264
|
return {
|
|
201
|
-
name: `${resolveLifecycle(schema) === "
|
|
265
|
+
name: `${resolveLifecycle(schema) === "operational" ? CREATE_RECORD_PREFIX : CREATE_DRAFT_PREFIX}${mcpToolNameSegment(schema.metadata.name)}`,
|
|
202
266
|
description: describeCreateTool(schema),
|
|
203
267
|
inputSchema,
|
|
204
268
|
};
|
|
@@ -218,14 +282,15 @@ function buildUpdateTool(schema) {
|
|
|
218
282
|
required: ["id", "expected_version", ...required],
|
|
219
283
|
};
|
|
220
284
|
return {
|
|
221
|
-
name: `${resolveLifecycle(schema) === "
|
|
285
|
+
name: `${resolveLifecycle(schema) === "operational" ? UPDATE_RECORD_PREFIX : UPDATE_DRAFT_PREFIX}${mcpToolNameSegment(schema.metadata.name)}`,
|
|
222
286
|
description: describeUpdateTool(schema),
|
|
223
287
|
inputSchema,
|
|
224
288
|
};
|
|
225
289
|
}
|
|
226
290
|
/**
|
|
227
291
|
* Per-Procedure MCP tool factory (#281). The Procedure's `input`
|
|
228
|
-
* JSON Schema becomes the tool's `inputSchema
|
|
292
|
+
* JSON Schema becomes the tool's `inputSchema`; localized schema
|
|
293
|
+
* annotations are collapsed at the catalog boundary. The
|
|
229
294
|
* description comes from `input.description` when set, otherwise a
|
|
230
295
|
* generic stub naming the Procedure. `output` is not surfaced — MCP
|
|
231
296
|
* clients infer the response shape from the `tools/call` result.
|
|
@@ -266,7 +331,7 @@ function buildQueryViewTool(view) {
|
|
|
266
331
|
inputSchema["required"] = params.required;
|
|
267
332
|
return {
|
|
268
333
|
name: `${QUERY_VIEW_PREFIX}${mcpToolNameSegment(view.metadata.name)}`,
|
|
269
|
-
description: `Query ${
|
|
334
|
+
description: `Query ${view.spec.surface} View '${view.metadata.name}'.${authorizationSummary(view.spec.requires)}`,
|
|
270
335
|
inputSchema,
|
|
271
336
|
};
|
|
272
337
|
}
|
|
@@ -288,13 +353,13 @@ function authorizationSummary(requires) {
|
|
|
288
353
|
return parts.length ? ` Authorization: ${parts.join("; ")}.` : "";
|
|
289
354
|
}
|
|
290
355
|
function describeCreateTool(schema) {
|
|
291
|
-
const base = resolveLifecycle(schema) === "
|
|
356
|
+
const base = resolveLifecycle(schema) === "operational"
|
|
292
357
|
? `Create a live operational record in '${schema.metadata.name}'.`
|
|
293
358
|
: `Create a new draft entry in '${schema.metadata.name}'.`;
|
|
294
359
|
return schema.spec.description ? `${base} ${schema.spec.description}`.trim() : base;
|
|
295
360
|
}
|
|
296
361
|
function describeUpdateTool(schema) {
|
|
297
|
-
return resolveLifecycle(schema) === "
|
|
362
|
+
return resolveLifecycle(schema) === "operational"
|
|
298
363
|
? `Update an operational record in '${schema.metadata.name}' with optimistic-concurrency check.`
|
|
299
364
|
: `Update a draft entry in '${schema.metadata.name}' with optimistic-concurrency check.`;
|
|
300
365
|
}
|