@knpkv/control-center 0.1.0
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/LICENSE +21 -0
- package/README.md +309 -0
- package/dist/client/.vite/manifest.json +452 -0
- package/dist/client/assets/ActiveWorkPage-Bvji6Tys.js +2 -0
- package/dist/client/assets/ActiveWorkPage-Bvji6Tys.js.map +1 -0
- package/dist/client/assets/ActiveWorkPage-CxNa23uW.css +1 -0
- package/dist/client/assets/AgentPage-Bom41la2.js +3 -0
- package/dist/client/assets/AgentPage-Bom41la2.js.map +1 -0
- package/dist/client/assets/AgentPage-f6WXQA21.css +1 -0
- package/dist/client/assets/AtlassianOAuthCallbackPage-Cqqgj2o3.css +1 -0
- package/dist/client/assets/AtlassianOAuthCallbackPage-dr-B9-DD.js +2 -0
- package/dist/client/assets/AtlassianOAuthCallbackPage-dr-B9-DD.js.map +1 -0
- package/dist/client/assets/AuthorizedSharePage-C-P-PNfm.js +2 -0
- package/dist/client/assets/AuthorizedSharePage-C-P-PNfm.js.map +1 -0
- package/dist/client/assets/AuthorizedSharePage-DzE_yvHI.css +1 -0
- package/dist/client/assets/BrowserCrypto-BPiuCuW-.js +2 -0
- package/dist/client/assets/BrowserCrypto-BPiuCuW-.js.map +1 -0
- package/dist/client/assets/BrowserSessionHydrator-C8F_LGhg.js +2 -0
- package/dist/client/assets/BrowserSessionHydrator-C8F_LGhg.js.map +1 -0
- package/dist/client/assets/CommandSearch-D6iFcdvj.js +2 -0
- package/dist/client/assets/CommandSearch-D6iFcdvj.js.map +1 -0
- package/dist/client/assets/CommandSearch-Df36xGJc.css +1 -0
- package/dist/client/assets/Dialog-DwSIPb-B-DVn37afM.js +42 -0
- package/dist/client/assets/Dialog-DwSIPb-B-DVn37afM.js.map +1 -0
- package/dist/client/assets/ItemsPage-DsQCbQ11.css +1 -0
- package/dist/client/assets/ItemsPage-x39U11an.js +2 -0
- package/dist/client/assets/ItemsPage-x39U11an.js.map +1 -0
- package/dist/client/assets/PairPage-D5vlz4OG.js +2 -0
- package/dist/client/assets/PairPage-D5vlz4OG.js.map +1 -0
- package/dist/client/assets/PortfolioOverview-DSUabOmm.js +2 -0
- package/dist/client/assets/PortfolioOverview-DSUabOmm.js.map +1 -0
- package/dist/client/assets/PortfolioOverview-nrb6Ebbh.css +1 -0
- package/dist/client/assets/ReleaseRoute-DyDm5s85.js +2 -0
- package/dist/client/assets/ReleaseRoute-DyDm5s85.js.map +1 -0
- package/dist/client/assets/ReleaseRoute-R3GdFaGc.css +1 -0
- package/dist/client/assets/ReleaseWorkset-6gGnZPS8.css +1 -0
- package/dist/client/assets/ReleaseWorkset-BhGacsgb.js +2 -0
- package/dist/client/assets/ReleaseWorkset-BhGacsgb.js.map +1 -0
- package/dist/client/assets/ServicesPage-CoMVH2Si.js +2 -0
- package/dist/client/assets/ServicesPage-CoMVH2Si.js.map +1 -0
- package/dist/client/assets/ServicesPage-D76DN13E.css +1 -0
- package/dist/client/assets/TimelinePage-38jhMz_L.css +1 -0
- package/dist/client/assets/TimelinePage-D8Fj_351.js +2 -0
- package/dist/client/assets/TimelinePage-D8Fj_351.js.map +1 -0
- package/dist/client/assets/WorkspaceEntityLink-BRifdJHn.js +2 -0
- package/dist/client/assets/WorkspaceEntityLink-BRifdJHn.js.map +1 -0
- package/dist/client/assets/WorkspaceEntityRoute-BwpujSqk.css +1 -0
- package/dist/client/assets/WorkspaceEntityRoute-DPci8Q8I.js +30 -0
- package/dist/client/assets/WorkspaceEntityRoute-DPci8Q8I.js.map +1 -0
- package/dist/client/assets/WorkspaceReleaseLayout-CMg2-6IQ.css +1 -0
- package/dist/client/assets/WorkspaceReleaseLayout-DDLdY0rU.js +2 -0
- package/dist/client/assets/WorkspaceReleaseLayout-DDLdY0rU.js.map +1 -0
- package/dist/client/assets/authenticatedMutationClient-D5yD0rch.js +2 -0
- package/dist/client/assets/authenticatedMutationClient-D5yD0rch.js.map +1 -0
- package/dist/client/assets/authorizedShareTransport-Dyj53kJf.js +2 -0
- package/dist/client/assets/authorizedShareTransport-Dyj53kJf.js.map +1 -0
- package/dist/client/assets/client-OmvShYdC.js +12 -0
- package/dist/client/assets/client-OmvShYdC.js.map +1 -0
- package/dist/client/assets/connectionTestTransport-c25QXx7A.js +2 -0
- package/dist/client/assets/connectionTestTransport-c25QXx7A.js.map +1 -0
- package/dist/client/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/dist/client/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
- package/dist/client/assets/index-CkslINEH.css +1 -0
- package/dist/client/assets/index-DLoOV6Hp.js +11 -0
- package/dist/client/assets/index-DLoOV6Hp.js.map +1 -0
- package/dist/client/assets/jsx-runtime-n5LQ9ujS.js +2 -0
- package/dist/client/assets/jsx-runtime-n5LQ9ujS.js.map +1 -0
- package/dist/client/assets/patterns-DEbg7R-A-Cw0A2uKS.js +2 -0
- package/dist/client/assets/patterns-DEbg7R-A-Cw0A2uKS.js.map +1 -0
- package/dist/client/assets/presentPortfolio-CkRqd_zz.js +2 -0
- package/dist/client/assets/presentPortfolio-CkRqd_zz.js.map +1 -0
- package/dist/client/assets/presentWorkspaceItems-BU__8LcC.js +2 -0
- package/dist/client/assets/presentWorkspaceItems-BU__8LcC.js.map +1 -0
- package/dist/client/assets/releasePaths-s-fSbIM-.js +2 -0
- package/dist/client/assets/releasePaths-s-fSbIM-.js.map +1 -0
- package/dist/client/assets/releaseRoutes-DSWkTh-E.js +2 -0
- package/dist/client/assets/releaseRoutes-DSWkTh-E.js.map +1 -0
- package/dist/client/assets/serviceOnboarding-B9pvdyWf.js +2 -0
- package/dist/client/assets/serviceOnboarding-B9pvdyWf.js.map +1 -0
- package/dist/client/assets/useCompactReleasePreview-Ch3XxgJU.js +2 -0
- package/dist/client/assets/useCompactReleasePreview-Ch3XxgJU.js.map +1 -0
- package/dist/client/assets/useWorkspaceItems-D0FuHGto.js +2 -0
- package/dist/client/assets/useWorkspaceItems-D0FuHGto.js.map +1 -0
- package/dist/client/assets/workspaceEntityPaths-xAl2jRFm.js +2 -0
- package/dist/client/assets/workspaceEntityPaths-xAl2jRFm.js.map +1 -0
- package/dist/client/assets/workspaceEntityRoutes-CRcfSq7c.js +2 -0
- package/dist/client/assets/workspaceEntityRoutes-CRcfSq7c.js.map +1 -0
- package/dist/client/build-graph.json +1465 -0
- package/dist/client/index.html +17 -0
- package/dist/server/api/agent.d.ts +652 -0
- package/dist/server/api/agent.d.ts.map +1 -0
- package/dist/server/api/client.d.ts +17 -0
- package/dist/server/api/client.d.ts.map +1 -0
- package/dist/server/api/controlCenterApi.d.ts +16 -0
- package/dist/server/api/controlCenterApi.d.ts.map +1 -0
- package/dist/server/api/deliveryGraph.d.ts +8714 -0
- package/dist/server/api/deliveryGraph.d.ts.map +1 -0
- package/dist/server/api/errors.d.ts +87 -0
- package/dist/server/api/errors.d.ts.map +1 -0
- package/dist/server/api/index.d.ts +14 -0
- package/dist/server/api/index.d.ts.map +1 -0
- package/dist/server/api/index.js +12 -0
- package/dist/server/api/index.js.map +1 -0
- package/dist/server/api/liveEvents.d.ts +1120 -0
- package/dist/server/api/liveEvents.d.ts.map +1 -0
- package/dist/server/api/media.d.ts +30 -0
- package/dist/server/api/media.d.ts.map +1 -0
- package/dist/server/api/plugins.d.ts +1853 -0
- package/dist/server/api/plugins.d.ts.map +1 -0
- package/dist/server/api/portfolio.d.ts +742 -0
- package/dist/server/api/portfolio.d.ts.map +1 -0
- package/dist/server/api/session.d.ts +204 -0
- package/dist/server/api/session.d.ts.map +1 -0
- package/dist/server/api/shares.d.ts +422 -0
- package/dist/server/api/shares.d.ts.map +1 -0
- package/dist/server/api/timeline.d.ts +86 -0
- package/dist/server/api/timeline.d.ts.map +1 -0
- package/dist/server/api/wire.d.ts +4 -0
- package/dist/server/api/wire.d.ts.map +1 -0
- package/dist/server/assets/BindConfig-BjK10BEb.js +15440 -0
- package/dist/server/assets/BindConfig-BjK10BEb.js.map +1 -0
- package/dist/server/assets/controlCenterApi-tZPvRPRH.js +1430 -0
- package/dist/server/assets/controlCenterApi-tZPvRPRH.js.map +1 -0
- package/dist/server/assets/domainEvent-x7yeq-gU.js +2130 -0
- package/dist/server/assets/domainEvent-x7yeq-gU.js.map +1 -0
- package/dist/server/assets/firstPartyServices-Y41P8uke.js +49 -0
- package/dist/server/assets/firstPartyServices-Y41P8uke.js.map +1 -0
- package/dist/server/assets/manualPluginSynchronization-C0aHB4UM.js +1805 -0
- package/dist/server/assets/manualPluginSynchronization-C0aHB4UM.js.map +1 -0
- package/dist/server/assets/portfolioInvalidation-Ds9Xm4_P.js +15463 -0
- package/dist/server/assets/portfolioInvalidation-Ds9Xm4_P.js.map +1 -0
- package/dist/server/assets/readiness-CzU3vjYQ.js +1012 -0
- package/dist/server/assets/readiness-CzU3vjYQ.js.map +1 -0
- package/dist/server/build-graph.json +3948 -0
- package/dist/server/domain/actors.d.ts +147 -0
- package/dist/server/domain/actors.d.ts.map +1 -0
- package/dist/server/domain/authorizedShare.d.ts +24 -0
- package/dist/server/domain/authorizedShare.d.ts.map +1 -0
- package/dist/server/domain/deliveryGraph.d.ts +848 -0
- package/dist/server/domain/deliveryGraph.d.ts.map +1 -0
- package/dist/server/domain/domainEvent.d.ts +50 -0
- package/dist/server/domain/domainEvent.d.ts.map +1 -0
- package/dist/server/domain/firstPartyServices.d.ts +60 -0
- package/dist/server/domain/firstPartyServices.d.ts.map +1 -0
- package/dist/server/domain/freshness.d.ts +367 -0
- package/dist/server/domain/freshness.d.ts.map +1 -0
- package/dist/server/domain/governedAction/bindings.d.ts +264 -0
- package/dist/server/domain/governedAction/bindings.d.ts.map +1 -0
- package/dist/server/domain/governedAction/index.d.ts +6 -0
- package/dist/server/domain/governedAction/index.d.ts.map +1 -0
- package/dist/server/domain/governedAction/lifecycle.d.ts +71 -0
- package/dist/server/domain/governedAction/lifecycle.d.ts.map +1 -0
- package/dist/server/domain/governedAction/model.d.ts +357 -0
- package/dist/server/domain/governedAction/model.d.ts.map +1 -0
- package/dist/server/domain/governedAction/stateMachine.d.ts +450 -0
- package/dist/server/domain/governedAction/stateMachine.d.ts.map +1 -0
- package/dist/server/domain/identifiers.d.ts +110 -0
- package/dist/server/domain/identifiers.d.ts.map +1 -0
- package/dist/server/domain/index.d.ts +26 -0
- package/dist/server/domain/index.d.ts.map +1 -0
- package/dist/server/domain/index.js +52 -0
- package/dist/server/domain/index.js.map +1 -0
- package/dist/server/domain/normalizedIssue.d.ts +223 -0
- package/dist/server/domain/normalizedIssue.d.ts.map +1 -0
- package/dist/server/domain/plugins/actions.d.ts +246 -0
- package/dist/server/domain/plugins/actions.d.ts.map +1 -0
- package/dist/server/domain/plugins/bounds.d.ts +12 -0
- package/dist/server/domain/plugins/bounds.d.ts.map +1 -0
- package/dist/server/domain/plugins/descriptor.d.ts +205 -0
- package/dist/server/domain/plugins/descriptor.d.ts.map +1 -0
- package/dist/server/domain/plugins/discovery.d.ts +39 -0
- package/dist/server/domain/plugins/discovery.d.ts.map +1 -0
- package/dist/server/domain/plugins/events.d.ts +232 -0
- package/dist/server/domain/plugins/events.d.ts.map +1 -0
- package/dist/server/domain/plugins/index.d.ts +11 -0
- package/dist/server/domain/plugins/index.d.ts.map +1 -0
- package/dist/server/domain/readiness/evaluate.d.ts +4 -0
- package/dist/server/domain/readiness/evaluate.d.ts.map +1 -0
- package/dist/server/domain/readiness/index.d.ts +7 -0
- package/dist/server/domain/readiness/index.d.ts.map +1 -0
- package/dist/server/domain/readiness/material.d.ts +114 -0
- package/dist/server/domain/readiness/material.d.ts.map +1 -0
- package/dist/server/domain/readiness/model.d.ts +1736 -0
- package/dist/server/domain/readiness/model.d.ts.map +1 -0
- package/dist/server/domain/readiness/policy.d.ts +73 -0
- package/dist/server/domain/readiness/policy.d.ts.map +1 -0
- package/dist/server/domain/readiness/rollup.d.ts +6 -0
- package/dist/server/domain/readiness/rollup.d.ts.map +1 -0
- package/dist/server/domain/relationshipRepair.d.ts +97 -0
- package/dist/server/domain/relationshipRepair.d.ts.map +1 -0
- package/dist/server/domain/release.d.ts +191 -0
- package/dist/server/domain/release.d.ts.map +1 -0
- package/dist/server/domain/releaseRelay.d.ts +44 -0
- package/dist/server/domain/releaseRelay.d.ts.map +1 -0
- package/dist/server/domain/sourceRevision.d.ts +39 -0
- package/dist/server/domain/sourceRevision.d.ts.map +1 -0
- package/dist/server/domain/timeline.d.ts +105 -0
- package/dist/server/domain/timeline.d.ts.map +1 -0
- package/dist/server/domain/utcTimestamp.d.ts +9 -0
- package/dist/server/domain/utcTimestamp.d.ts.map +1 -0
- package/dist/server/index.d.ts +8 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +7 -0
- package/dist/server/server/DataRootProtocol.d.ts +80 -0
- package/dist/server/server/DataRootProtocol.d.ts.map +1 -0
- package/dist/server/server/agent/AgentJobWorker.d.ts +48 -0
- package/dist/server/server/agent/AgentJobWorker.d.ts.map +1 -0
- package/dist/server/server/agent/AgentRuntimeRegistry.d.ts +17 -0
- package/dist/server/server/agent/AgentRuntimeRegistry.d.ts.map +1 -0
- package/dist/server/server/agent/index.d.ts +4 -0
- package/dist/server/server/agent/index.d.ts.map +1 -0
- package/dist/server/server/api/ApiConfiguration.d.ts +24 -0
- package/dist/server/server/api/ApiConfiguration.d.ts.map +1 -0
- package/dist/server/server/api/ApiMiddleware.d.ts +14 -0
- package/dist/server/server/api/ApiMiddleware.d.ts.map +1 -0
- package/dist/server/server/api/ApplicationServices.d.ts +320 -0
- package/dist/server/server/api/ApplicationServices.d.ts.map +1 -0
- package/dist/server/server/api/ControlCenterApiServer.d.ts +11 -0
- package/dist/server/server/api/ControlCenterApiServer.d.ts.map +1 -0
- package/dist/server/server/api/ErrorMapping.d.ts +29 -0
- package/dist/server/server/api/ErrorMapping.d.ts.map +1 -0
- package/dist/server/server/api/Handlers.d.ts +24 -0
- package/dist/server/server/api/Handlers.d.ts.map +1 -0
- package/dist/server/server/api/LiveStreamAdmission.d.ts +34 -0
- package/dist/server/server/api/LiveStreamAdmission.d.ts.map +1 -0
- package/dist/server/server/api/RequestBoundary.d.ts +17 -0
- package/dist/server/server/api/RequestBoundary.d.ts.map +1 -0
- package/dist/server/server/api/RequestContext.d.ts +38 -0
- package/dist/server/server/api/RequestContext.d.ts.map +1 -0
- package/dist/server/server/api/RequestLimits.d.ts +79 -0
- package/dist/server/server/api/RequestLimits.d.ts.map +1 -0
- package/dist/server/server/api/index.d.ts +9 -0
- package/dist/server/server/api/index.d.ts.map +1 -0
- package/dist/server/server/application/authorizedShares.d.ts +29 -0
- package/dist/server/server/application/authorizedShares.d.ts.map +1 -0
- package/dist/server/server/application/awsResourceDiscovery.d.ts +18 -0
- package/dist/server/server/application/awsResourceDiscovery.d.ts.map +1 -0
- package/dist/server/server/application/connectionOwnership.d.ts +50 -0
- package/dist/server/server/application/connectionOwnership.d.ts.map +1 -0
- package/dist/server/server/application/deliveryGraphInspection.d.ts +59 -0
- package/dist/server/server/application/deliveryGraphInspection.d.ts.map +1 -0
- package/dist/server/server/application/errors.d.ts +10 -0
- package/dist/server/server/application/errors.d.ts.map +1 -0
- package/dist/server/server/application/fakeReleaseNormalization.d.ts +152 -0
- package/dist/server/server/application/fakeReleaseNormalization.d.ts.map +1 -0
- package/dist/server/server/application/index.d.ts +17 -0
- package/dist/server/server/application/index.d.ts.map +1 -0
- package/dist/server/server/application/liveEvents.d.ts +22 -0
- package/dist/server/server/application/liveEvents.d.ts.map +1 -0
- package/dist/server/server/application/manualPluginSynchronization.d.ts +41 -0
- package/dist/server/server/application/manualPluginSynchronization.d.ts.map +1 -0
- package/dist/server/server/application/mediaReads.d.ts +14 -0
- package/dist/server/server/application/mediaReads.d.ts.map +1 -0
- package/dist/server/server/application/normalizedPluginPageMaterialization.d.ts +109 -0
- package/dist/server/server/application/normalizedPluginPageMaterialization.d.ts.map +1 -0
- package/dist/server/server/application/pluginAdministration.d.ts +1318 -0
- package/dist/server/server/application/pluginAdministration.d.ts.map +1 -0
- package/dist/server/server/application/pluginSynchronizationAuthority.d.ts +22 -0
- package/dist/server/server/application/pluginSynchronizationAuthority.d.ts.map +1 -0
- package/dist/server/server/application/portfolioInvalidation.d.ts +35 -0
- package/dist/server/server/application/portfolioInvalidation.d.ts.map +1 -0
- package/dist/server/server/application/portfolioSnapshots.d.ts +12 -0
- package/dist/server/server/application/portfolioSnapshots.d.ts.map +1 -0
- package/dist/server/server/application/readinessDigests.d.ts +3 -0
- package/dist/server/server/application/readinessDigests.d.ts.map +1 -0
- package/dist/server/server/application/relationshipInference.d.ts +57 -0
- package/dist/server/server/application/relationshipInference.d.ts.map +1 -0
- package/dist/server/server/application/relationshipInferenceMaterialization.d.ts +26 -0
- package/dist/server/server/application/relationshipInferenceMaterialization.d.ts.map +1 -0
- package/dist/server/server/application/relationshipRepairProposals.d.ts +41 -0
- package/dist/server/server/application/relationshipRepairProposals.d.ts.map +1 -0
- package/dist/server/server/application/releaseAgent.d.ts +30 -0
- package/dist/server/server/application/releaseAgent.d.ts.map +1 -0
- package/dist/server/server/application/releaseAgentJobs.d.ts +26 -0
- package/dist/server/server/application/releaseAgentJobs.d.ts.map +1 -0
- package/dist/server/server/application/releaseSynchronization.d.ts +55 -0
- package/dist/server/server/application/releaseSynchronization.d.ts.map +1 -0
- package/dist/server/server/application/timelineExportAudits.d.ts +22 -0
- package/dist/server/server/application/timelineExportAudits.d.ts.map +1 -0
- package/dist/server/server/application/timelineExports.d.ts +46 -0
- package/dist/server/server/application/timelineExports.d.ts.map +1 -0
- package/dist/server/server/application/timelineReads.d.ts +29 -0
- package/dist/server/server/application/timelineReads.d.ts.map +1 -0
- package/dist/server/server/auth/Auth.d.ts +169 -0
- package/dist/server/server/auth/Auth.d.ts.map +1 -0
- package/dist/server/server/auth/AuthRepository.d.ts +160 -0
- package/dist/server/server/auth/AuthRepository.d.ts.map +1 -0
- package/dist/server/server/auth/TerminalRecovery.d.ts +35 -0
- package/dist/server/server/auth/TerminalRecovery.d.ts.map +1 -0
- package/dist/server/server/auth/errors.d.ts +31 -0
- package/dist/server/server/auth/errors.d.ts.map +1 -0
- package/dist/server/server/auth/index.d.ts +5 -0
- package/dist/server/server/auth/index.d.ts.map +1 -0
- package/dist/server/server/auth/models.d.ts +63 -0
- package/dist/server/server/auth/models.d.ts.map +1 -0
- package/dist/server/server/cli.d.ts +3 -0
- package/dist/server/server/cli.d.ts.map +1 -0
- package/dist/server/server/cli.js +669 -0
- package/dist/server/server/cli.js.map +1 -0
- package/dist/server/server/cliArguments.d.ts +21 -0
- package/dist/server/server/cliArguments.d.ts.map +1 -0
- package/dist/server/server/cliConfiguration.d.ts +20 -0
- package/dist/server/server/cliConfiguration.d.ts.map +1 -0
- package/dist/server/server/governance/governedActionAuthority.d.ts +54 -0
- package/dist/server/server/governance/governedActionAuthority.d.ts.map +1 -0
- package/dist/server/server/governance/governedActionDigests.d.ts +1348 -0
- package/dist/server/server/governance/governedActionDigests.d.ts.map +1 -0
- package/dist/server/server/governance/internal/GovernedActionExecutionEngine.d.ts +55 -0
- package/dist/server/server/governance/internal/GovernedActionExecutionEngine.d.ts.map +1 -0
- package/dist/server/server/governance/internal/GovernedActionExecutionStore.d.ts +116 -0
- package/dist/server/server/governance/internal/GovernedActionExecutionStore.d.ts.map +1 -0
- package/dist/server/server/governance/internal/GovernedActionPolicyEvaluator.d.ts +120 -0
- package/dist/server/server/governance/internal/GovernedActionPolicyEvaluator.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/begin.d.ts +17 -0
- package/dist/server/server/governance/internal/execution-store/begin.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/current-evidence.d.ts +33 -0
- package/dist/server/server/governance/internal/execution-store/current-evidence.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/current-session.d.ts +29 -0
- package/dist/server/server/governance/internal/execution-store/current-session.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/current-target.d.ts +28 -0
- package/dist/server/server/governance/internal/execution-store/current-target.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/dispatch-inbox.d.ts +20 -0
- package/dist/server/server/governance/internal/execution-store/dispatch-inbox.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/dispatch-outcome.d.ts +78 -0
- package/dist/server/server/governance/internal/execution-store/dispatch-outcome.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/inspect.d.ts +17 -0
- package/dist/server/server/governance/internal/execution-store/inspect.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/live.d.ts +6 -0
- package/dist/server/server/governance/internal/execution-store/live.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/preparation.d.ts +42 -0
- package/dist/server/server/governance/internal/execution-store/preparation.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/provider-outcome-fold.d.ts +33 -0
- package/dist/server/server/governance/internal/execution-store/provider-outcome-fold.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/reconciliation-inbox.d.ts +20 -0
- package/dist/server/server/governance/internal/execution-store/reconciliation-inbox.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/reconciliation-locator.d.ts +5 -0
- package/dist/server/server/governance/internal/execution-store/reconciliation-locator.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/reconciliation-outcome.d.ts +123 -0
- package/dist/server/server/governance/internal/execution-store/reconciliation-outcome.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/record-blocked.d.ts +13 -0
- package/dist/server/server/governance/internal/execution-store/record-blocked.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/record-dispatch.d.ts +12 -0
- package/dist/server/server/governance/internal/execution-store/record-dispatch.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/record-reconciliation.d.ts +12 -0
- package/dist/server/server/governance/internal/execution-store/record-reconciliation.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/record-recovery-unavailable.d.ts +11 -0
- package/dist/server/server/governance/internal/execution-store/record-recovery-unavailable.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/record-unknown.d.ts +11 -0
- package/dist/server/server/governance/internal/execution-store/record-unknown.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/recovery-candidates.d.ts +12 -0
- package/dist/server/server/governance/internal/execution-store/recovery-candidates.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/recovery-claim-expiry.d.ts +9 -0
- package/dist/server/server/governance/internal/execution-store/recovery-claim-expiry.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/recovery-claim.d.ts +465 -0
- package/dist/server/server/governance/internal/execution-store/recovery-claim.d.ts.map +1 -0
- package/dist/server/server/governance/internal/execution-store/tokens.d.ts +52 -0
- package/dist/server/server/governance/internal/execution-store/tokens.d.ts.map +1 -0
- package/dist/server/server/http/StaticApplication.d.ts +8 -0
- package/dist/server/server/http/StaticApplication.d.ts.map +1 -0
- package/dist/server/server/http/index.d.ts +4 -0
- package/dist/server/server/http/index.d.ts.map +1 -0
- package/dist/server/server/http/security/HttpLimits.d.ts +22 -0
- package/dist/server/server/http/security/HttpLimits.d.ts.map +1 -0
- package/dist/server/server/http/security/RequestPolicy.d.ts +26 -0
- package/dist/server/server/http/security/RequestPolicy.d.ts.map +1 -0
- package/dist/server/server/http/security/RichDocument.d.ts +154 -0
- package/dist/server/server/http/security/RichDocument.d.ts.map +1 -0
- package/dist/server/server/http/security/SecurityHeaders.d.ts +7 -0
- package/dist/server/server/http/security/SecurityHeaders.d.ts.map +1 -0
- package/dist/server/server/http/security/StaticAssetStore.d.ts +43 -0
- package/dist/server/server/http/security/StaticAssetStore.d.ts.map +1 -0
- package/dist/server/server/http/security/UrlPolicy.d.ts +30 -0
- package/dist/server/server/http/security/UrlPolicy.d.ts.map +1 -0
- package/dist/server/server/http/security/index.d.ts +8 -0
- package/dist/server/server/http/security/index.d.ts.map +1 -0
- package/dist/server/server/index.d.ts +18 -0
- package/dist/server/server/index.d.ts.map +1 -0
- package/dist/server/server/index.js +583 -0
- package/dist/server/server/index.js.map +1 -0
- package/dist/server/server/observability.d.ts +13 -0
- package/dist/server/server/observability.d.ts.map +1 -0
- package/dist/server/server/persistence/ContentStore.d.ts +86 -0
- package/dist/server/server/persistence/ContentStore.d.ts.map +1 -0
- package/dist/server/server/persistence/Database.d.ts +26 -0
- package/dist/server/server/persistence/Database.d.ts.map +1 -0
- package/dist/server/server/persistence/Persistence.d.ts +7042 -0
- package/dist/server/server/persistence/Persistence.d.ts.map +1 -0
- package/dist/server/server/persistence/PersistenceConfig.d.ts +27 -0
- package/dist/server/server/persistence/PersistenceConfig.d.ts.map +1 -0
- package/dist/server/server/persistence/backup/BackupArchive.d.ts +32 -0
- package/dist/server/server/persistence/backup/BackupArchive.d.ts.map +1 -0
- package/dist/server/server/persistence/backup/BackupArchiveCore.d.ts +23 -0
- package/dist/server/server/persistence/backup/BackupArchiveCore.d.ts.map +1 -0
- package/dist/server/server/persistence/backup/BackupManifest.d.ts +136 -0
- package/dist/server/server/persistence/backup/BackupManifest.d.ts.map +1 -0
- package/dist/server/server/persistence/backup/DatabaseSnapshot.d.ts +53 -0
- package/dist/server/server/persistence/backup/DatabaseSnapshot.d.ts.map +1 -0
- package/dist/server/server/persistence/backup/errors.d.ts +53 -0
- package/dist/server/server/persistence/backup/errors.d.ts.map +1 -0
- package/dist/server/server/persistence/backup/index.d.ts +4 -0
- package/dist/server/server/persistence/backup/index.d.ts.map +1 -0
- package/dist/server/server/persistence/errors.d.ts +99 -0
- package/dist/server/server/persistence/errors.d.ts.map +1 -0
- package/dist/server/server/persistence/governedActionReconciliationLocator.d.ts +14 -0
- package/dist/server/server/persistence/governedActionReconciliationLocator.d.ts.map +1 -0
- package/dist/server/server/persistence/index.d.ts +11 -0
- package/dist/server/server/persistence/index.d.ts.map +1 -0
- package/dist/server/server/persistence/object-store/BlobDigest.d.ts +6 -0
- package/dist/server/server/persistence/object-store/BlobDigest.d.ts.map +1 -0
- package/dist/server/server/persistence/object-store/BlobPath.d.ts +12 -0
- package/dist/server/server/persistence/object-store/BlobPath.d.ts.map +1 -0
- package/dist/server/server/persistence/object-store/BlobPublisher.d.ts +8 -0
- package/dist/server/server/persistence/object-store/BlobPublisher.d.ts.map +1 -0
- package/dist/server/server/persistence/object-store/BlobRef.d.ts +16 -0
- package/dist/server/server/persistence/object-store/BlobRef.d.ts.map +1 -0
- package/dist/server/server/persistence/object-store/BlobStore.d.ts +37 -0
- package/dist/server/server/persistence/object-store/BlobStore.d.ts.map +1 -0
- package/dist/server/server/persistence/object-store/BlobStoreError.d.ts +57 -0
- package/dist/server/server/persistence/object-store/BlobStoreError.d.ts.map +1 -0
- package/dist/server/server/persistence/object-store/BlobStoreTypes.d.ts +28 -0
- package/dist/server/server/persistence/object-store/BlobStoreTypes.d.ts.map +1 -0
- package/dist/server/server/persistence/object-store/OpenedBlob.d.ts +21 -0
- package/dist/server/server/persistence/object-store/OpenedBlob.d.ts.map +1 -0
- package/dist/server/server/persistence/object-store/PinnedDirectory.d.ts +21 -0
- package/dist/server/server/persistence/object-store/PinnedDirectory.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/agentJobModels.d.ts +142 -0
- package/dist/server/server/persistence/repositories/agentJobModels.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/agentJobRepository.d.ts +134 -0
- package/dist/server/server/persistence/repositories/agentJobRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/authorizedShareRepository.d.ts +92 -0
- package/dist/server/server/persistence/repositories/authorizedShareRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/contentBlobMetadataRepository.d.ts +67 -0
- package/dist/server/server/persistence/repositories/contentBlobMetadataRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/delivery-graph/contract.d.ts +2989 -0
- package/dist/server/server/persistence/repositories/delivery-graph/contract.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/delivery-graph/decode.d.ts +566 -0
- package/dist/server/server/persistence/repositories/delivery-graph/decode.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/delivery-graph/integrity.d.ts +16 -0
- package/dist/server/server/persistence/repositories/delivery-graph/integrity.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/delivery-graph/quarantine.d.ts +22 -0
- package/dist/server/server/persistence/repositories/delivery-graph/quarantine.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/delivery-graph/read.d.ts +2147 -0
- package/dist/server/server/persistence/repositories/delivery-graph/read.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/delivery-graph/release-slice.d.ts +16 -0
- package/dist/server/server/persistence/repositories/delivery-graph/release-slice.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/delivery-graph/rows.d.ts +683 -0
- package/dist/server/server/persistence/repositories/delivery-graph/rows.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/delivery-graph/write.d.ts +946 -0
- package/dist/server/server/persistence/repositories/delivery-graph/write.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/deliveryGraphRepository.d.ts +2121 -0
- package/dist/server/server/persistence/repositories/deliveryGraphRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/domainEventModels.d.ts +89 -0
- package/dist/server/server/persistence/repositories/domainEventModels.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/domainEventRepository.d.ts +85 -0
- package/dist/server/server/persistence/repositories/domainEventRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/entityRepository.d.ts +134 -0
- package/dist/server/server/persistence/repositories/entityRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/governed-action/codec.d.ts +1478 -0
- package/dist/server/server/persistence/repositories/governed-action/codec.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/governed-action/contract.d.ts +858 -0
- package/dist/server/server/persistence/repositories/governed-action/contract.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/governed-action/quarantine.d.ts +22 -0
- package/dist/server/server/persistence/repositories/governed-action/quarantine.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/governed-action/read.d.ts +452 -0
- package/dist/server/server/persistence/repositories/governed-action/read.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/governed-action/rows.d.ts +115 -0
- package/dist/server/server/persistence/repositories/governed-action/rows.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/governed-action/transaction.d.ts +457 -0
- package/dist/server/server/persistence/repositories/governed-action/transaction.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/governed-action/write-preparation.d.ts +518 -0
- package/dist/server/server/persistence/repositories/governed-action/write-preparation.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/governed-action/write-replay.d.ts +702 -0
- package/dist/server/server/persistence/repositories/governed-action/write-replay.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/governed-action/write.d.ts +618 -0
- package/dist/server/server/persistence/repositories/governed-action/write.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/governedActionRepository.d.ts +467 -0
- package/dist/server/server/persistence/repositories/governedActionRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/index.d.ts +26 -0
- package/dist/server/server/persistence/repositories/index.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/internal.d.ts +38 -0
- package/dist/server/server/persistence/repositories/internal.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/models.d.ts +420 -0
- package/dist/server/server/persistence/repositories/models.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/peopleRepository.d.ts +407 -0
- package/dist/server/server/persistence/repositories/peopleRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/persistedRowQuarantine.d.ts +20 -0
- package/dist/server/server/persistence/repositories/persistedRowQuarantine.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/pluginConfigurationModels.d.ts +76 -0
- package/dist/server/server/persistence/repositories/pluginConfigurationModels.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/pluginConfigurationRepository.d.ts +179 -0
- package/dist/server/server/persistence/repositories/pluginConfigurationRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/pluginConnectionRepository.d.ts +123 -0
- package/dist/server/server/persistence/repositories/pluginConnectionRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/pluginRuntimeModels.d.ts +195 -0
- package/dist/server/server/persistence/repositories/pluginRuntimeModels.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/pluginRuntimeRepository.d.ts +431 -0
- package/dist/server/server/persistence/repositories/pluginRuntimeRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/providerAccountRepository.d.ts +150 -0
- package/dist/server/server/persistence/repositories/providerAccountRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/quarantineRepository.d.ts +42 -0
- package/dist/server/server/persistence/repositories/quarantineRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/readiness/assessments.d.ts +2679 -0
- package/dist/server/server/persistence/repositories/readiness/assessments.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/readiness/codec.d.ts +1368 -0
- package/dist/server/server/persistence/repositories/readiness/codec.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/readiness/contract.d.ts +3315 -0
- package/dist/server/server/persistence/repositories/readiness/contract.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/readiness/materialization.d.ts +459 -0
- package/dist/server/server/persistence/repositories/readiness/materialization.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/readiness/quarantine.d.ts +22 -0
- package/dist/server/server/persistence/repositories/readiness/quarantine.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/readiness/queue.d.ts +112 -0
- package/dist/server/server/persistence/repositories/readiness/queue.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/readiness/rows.d.ts +169 -0
- package/dist/server/server/persistence/repositories/readiness/rows.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/readiness/rules.d.ts +85 -0
- package/dist/server/server/persistence/repositories/readiness/rules.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/readinessRepository.d.ts +1722 -0
- package/dist/server/server/persistence/repositories/readinessRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/relationshipRepairProposalRepository.d.ts +294 -0
- package/dist/server/server/persistence/repositories/relationshipRepairProposalRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/releaseRepository.d.ts +1062 -0
- package/dist/server/server/persistence/repositories/releaseRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/timelineExportAuditRepository.d.ts +39 -0
- package/dist/server/server/persistence/repositories/timelineExportAuditRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/timelineRepository.d.ts +84 -0
- package/dist/server/server/persistence/repositories/timelineRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/repositories/workspaceRepository.d.ts +52 -0
- package/dist/server/server/persistence/repositories/workspaceRepository.d.ts.map +1 -0
- package/dist/server/server/persistence/schema.d.ts +17 -0
- package/dist/server/server/persistence/schema.d.ts.map +1 -0
- package/dist/server/server/persistence/schemas.d.ts +14 -0
- package/dist/server/server/persistence/schemas.d.ts.map +1 -0
- package/dist/server/server/plugins/AtlassianBasicAuth.d.ts +2 -0
- package/dist/server/server/plugins/AtlassianBasicAuth.d.ts.map +1 -0
- package/dist/server/server/plugins/PluginCapabilityCodecs.d.ts +357 -0
- package/dist/server/server/plugins/PluginCapabilityCodecs.d.ts.map +1 -0
- package/dist/server/server/plugins/PluginConnection.d.ts +28 -0
- package/dist/server/server/plugins/PluginConnection.d.ts.map +1 -0
- package/dist/server/server/plugins/PluginConnectionMap.d.ts +22 -0
- package/dist/server/server/plugins/PluginConnectionMap.d.ts.map +1 -0
- package/dist/server/server/plugins/PluginDefinition.d.ts +9 -0
- package/dist/server/server/plugins/PluginDefinition.d.ts.map +1 -0
- package/dist/server/server/plugins/PluginDefinitionV1.d.ts +11 -0
- package/dist/server/server/plugins/PluginDefinitionV1.d.ts.map +1 -0
- package/dist/server/server/plugins/PluginExecutor.d.ts +14 -0
- package/dist/server/server/plugins/PluginExecutor.d.ts.map +1 -0
- package/dist/server/server/plugins/atlassian/AtlassianOAuthGrants.d.ts +35 -0
- package/dist/server/server/plugins/atlassian/AtlassianOAuthGrants.d.ts.map +1 -0
- package/dist/server/server/plugins/atlassian/AtlassianProfiles.d.ts +39 -0
- package/dist/server/server/plugins/atlassian/AtlassianProfiles.d.ts.map +1 -0
- package/dist/server/server/plugins/catalog/firstPartyServiceCatalog.d.ts +13 -0
- package/dist/server/server/plugins/catalog/firstPartyServiceCatalog.d.ts.map +1 -0
- package/dist/server/server/plugins/clockify/ClockifyReadPlugin.d.ts +78 -0
- package/dist/server/server/plugins/clockify/ClockifyReadPlugin.d.ts.map +1 -0
- package/dist/server/server/plugins/clockify/ClockifyReadProvider.d.ts +2 -0
- package/dist/server/server/plugins/clockify/ClockifyReadProvider.d.ts.map +1 -0
- package/dist/server/server/plugins/clockify/ClockifyTimeEntryNormalization.d.ts +2 -0
- package/dist/server/server/plugins/clockify/ClockifyTimeEntryNormalization.d.ts.map +1 -0
- package/dist/server/server/plugins/clockify/index.d.ts +3 -0
- package/dist/server/server/plugins/clockify/index.d.ts.map +1 -0
- package/dist/server/server/plugins/codecommit/CodeCommitPluginDefinition.d.ts +4 -0
- package/dist/server/server/plugins/codecommit/CodeCommitPluginDefinition.d.ts.map +1 -0
- package/dist/server/server/plugins/codecommit/index.d.ts +3 -0
- package/dist/server/server/plugins/codecommit/index.d.ts.map +1 -0
- package/dist/server/server/plugins/codepipeline/CodePipelinePluginDefinition.d.ts +4 -0
- package/dist/server/server/plugins/codepipeline/CodePipelinePluginDefinition.d.ts.map +1 -0
- package/dist/server/server/plugins/codepipeline/CodePipelineReadClient.d.ts +2 -0
- package/dist/server/server/plugins/codepipeline/CodePipelineReadClient.d.ts.map +1 -0
- package/dist/server/server/plugins/codepipeline/CodePipelineReadProvider.d.ts +2 -0
- package/dist/server/server/plugins/codepipeline/CodePipelineReadProvider.d.ts.map +1 -0
- package/dist/server/server/plugins/codepipeline/index.d.ts +3 -0
- package/dist/server/server/plugins/codepipeline/index.d.ts.map +1 -0
- package/dist/server/server/plugins/confluence/ConfluencePageAdapter.d.ts +2 -0
- package/dist/server/server/plugins/confluence/ConfluencePageAdapter.d.ts.map +1 -0
- package/dist/server/server/plugins/confluence/ConfluencePageClient.d.ts +2 -0
- package/dist/server/server/plugins/confluence/ConfluencePageClient.d.ts.map +1 -0
- package/dist/server/server/plugins/confluence/ConfluencePagePluginDefinition.d.ts +44 -0
- package/dist/server/server/plugins/confluence/ConfluencePagePluginDefinition.d.ts.map +1 -0
- package/dist/server/server/plugins/confluence/ConfluencePageSchemas.d.ts +2 -0
- package/dist/server/server/plugins/confluence/ConfluencePageSchemas.d.ts.map +1 -0
- package/dist/server/server/plugins/confluence/SafeConfluenceMarkdown.d.ts +2 -0
- package/dist/server/server/plugins/confluence/SafeConfluenceMarkdown.d.ts.map +1 -0
- package/dist/server/server/plugins/failures.d.ts +79 -0
- package/dist/server/server/plugins/failures.d.ts.map +1 -0
- package/dist/server/server/plugins/fake/FakePluginDefinition.d.ts +17 -0
- package/dist/server/server/plugins/fake/FakePluginDefinition.d.ts.map +1 -0
- package/dist/server/server/plugins/fake/FakePluginProbe.d.ts +40 -0
- package/dist/server/server/plugins/fake/FakePluginProbe.d.ts.map +1 -0
- package/dist/server/server/plugins/fake/FakePluginScenario.d.ts +46 -0
- package/dist/server/server/plugins/fake/FakePluginScenario.d.ts.map +1 -0
- package/dist/server/server/plugins/firstPartySynchronization.d.ts +7 -0
- package/dist/server/server/plugins/firstPartySynchronization.d.ts.map +1 -0
- package/dist/server/server/plugins/index.d.ts +21 -0
- package/dist/server/server/plugins/index.d.ts.map +1 -0
- package/dist/server/server/plugins/internal/AuthorizedPluginExecutor.d.ts +8 -0
- package/dist/server/server/plugins/internal/AuthorizedPluginExecutor.d.ts.map +1 -0
- package/dist/server/server/plugins/internal/AuthorizedPluginExecutorMap.d.ts +27 -0
- package/dist/server/server/plugins/internal/AuthorizedPluginExecutorMap.d.ts.map +1 -0
- package/dist/server/server/plugins/internal/FirstPartyPluginRuntimeRegistry.d.ts +2 -0
- package/dist/server/server/plugins/internal/FirstPartyPluginRuntimeRegistry.d.ts.map +1 -0
- package/dist/server/server/plugins/internal/PluginRuntime.d.ts +13 -0
- package/dist/server/server/plugins/internal/PluginRuntime.d.ts.map +1 -0
- package/dist/server/server/plugins/internal/PluginRuntimeAuthority.d.ts +154 -0
- package/dist/server/server/plugins/internal/PluginRuntimeAuthority.d.ts.map +1 -0
- package/dist/server/server/plugins/internal/PluginRuntimeAuthorityRepository.d.ts +131 -0
- package/dist/server/server/plugins/internal/PluginRuntimeAuthorityRepository.d.ts.map +1 -0
- package/dist/server/server/plugins/internal/PluginRuntimeAuthoritySource.d.ts +23 -0
- package/dist/server/server/plugins/internal/PluginRuntimeAuthoritySource.d.ts.map +1 -0
- package/dist/server/server/plugins/internal/PluginRuntimeMap.d.ts +23 -0
- package/dist/server/server/plugins/internal/PluginRuntimeMap.d.ts.map +1 -0
- package/dist/server/server/plugins/internal/PluginRuntimeRegistry.d.ts +21 -0
- package/dist/server/server/plugins/internal/PluginRuntimeRegistry.d.ts.map +1 -0
- package/dist/server/server/plugins/jira/JiraIssueNormalization.d.ts +2 -0
- package/dist/server/server/plugins/jira/JiraIssueNormalization.d.ts.map +1 -0
- package/dist/server/server/plugins/jira/JiraReadPlugin.d.ts +74 -0
- package/dist/server/server/plugins/jira/JiraReadPlugin.d.ts.map +1 -0
- package/dist/server/server/plugins/jira/JiraReadProvider.d.ts +7 -0
- package/dist/server/server/plugins/jira/JiraReadProvider.d.ts.map +1 -0
- package/dist/server/server/plugins/jira/index.d.ts +3 -0
- package/dist/server/server/plugins/jira/index.d.ts.map +1 -0
- package/dist/server/server/plugins/negotiation.d.ts +75 -0
- package/dist/server/server/plugins/negotiation.d.ts.map +1 -0
- package/dist/server/server/plugins/retryPolicy.d.ts +28 -0
- package/dist/server/server/plugins/retryPolicy.d.ts.map +1 -0
- package/dist/server/server/readinessDigests.d.ts +103 -0
- package/dist/server/server/readinessDigests.d.ts.map +1 -0
- package/dist/server/server/runtime/Bootstrap.d.ts +39 -0
- package/dist/server/server/runtime/Bootstrap.d.ts.map +1 -0
- package/dist/server/server/runtime/ControlCenterServer.d.ts +57 -0
- package/dist/server/server/runtime/ControlCenterServer.d.ts.map +1 -0
- package/dist/server/server/runtime/DatabaseDrain.d.ts +6 -0
- package/dist/server/server/runtime/DatabaseDrain.d.ts.map +1 -0
- package/dist/server/server/runtime/DomainEventWakeups.d.ts +22 -0
- package/dist/server/server/runtime/DomainEventWakeups.d.ts.map +1 -0
- package/dist/server/server/runtime/FirstPartyPluginRuntime.d.ts +2 -0
- package/dist/server/server/runtime/FirstPartyPluginRuntime.d.ts.map +1 -0
- package/dist/server/server/runtime/GovernedActionExecutionStartup.d.ts +35 -0
- package/dist/server/server/runtime/GovernedActionExecutionStartup.d.ts.map +1 -0
- package/dist/server/server/runtime/NodeTransport.d.ts +57 -0
- package/dist/server/server/runtime/NodeTransport.d.ts.map +1 -0
- package/dist/server/server/runtime/ReleaseSynchronizationStartup.d.ts +44 -0
- package/dist/server/server/runtime/ReleaseSynchronizationStartup.d.ts.map +1 -0
- package/dist/server/server/runtime/RequestUrlBoundary.d.ts +4 -0
- package/dist/server/server/runtime/RequestUrlBoundary.d.ts.map +1 -0
- package/dist/server/server/runtime/ServerLifecycle.d.ts +74 -0
- package/dist/server/server/runtime/ServerLifecycle.d.ts.map +1 -0
- package/dist/server/server/runtime/index.d.ts +9 -0
- package/dist/server/server/runtime/index.d.ts.map +1 -0
- package/dist/server/server/secrets/SecretRef.d.ts +6 -0
- package/dist/server/server/secrets/SecretRef.d.ts.map +1 -0
- package/dist/server/server/secrets/SecretStore.d.ts +39 -0
- package/dist/server/server/secrets/SecretStore.d.ts.map +1 -0
- package/dist/server/server/secrets/SecretStoreError.d.ts +41 -0
- package/dist/server/server/secrets/SecretStoreError.d.ts.map +1 -0
- package/dist/server/server/secrets/index.d.ts +5 -0
- package/dist/server/server/secrets/index.d.ts.map +1 -0
- package/dist/server/server/security/BindConfig.d.ts +51 -0
- package/dist/server/server/security/BindConfig.d.ts.map +1 -0
- package/dist/server/server/security/RequestSecurity.d.ts +84 -0
- package/dist/server/server/security/RequestSecurity.d.ts.map +1 -0
- package/dist/server/server/security/index.d.ts +3 -0
- package/dist/server/server/security/index.d.ts.map +1 -0
- package/package.json +101 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/server/agent/AgentRuntimeRegistry.ts","../../../src/server/agent/AgentJobWorker.ts","../../../src/server/http/security/UrlPolicy.ts","../../../src/server/http/security/RichDocument.ts"],"sourcesContent":["/** Provider-neutral selector seam for server-owned agent runtimes. @module */\nimport type { AgentProviderError, AgentProviderId, AgentRuntimeService } from \"@knpkv/ai-runtime\"\nimport * as Context from \"effect/Context\"\nimport type * as Effect from \"effect/Effect\"\nimport * as Layer from \"effect/Layer\"\n\n/** Selects one configured runtime without exposing provider conditionals to workers. */\nexport interface AgentRuntimeRegistryService {\n readonly select: (\n providerId: AgentProviderId\n ) => Effect.Effect<AgentRuntimeService, AgentProviderError>\n}\n\n/** Server-owned registry for Codex, Claude, and deterministic runtime adapters. */\nexport class AgentRuntimeRegistry extends Context.Service<\n AgentRuntimeRegistry,\n AgentRuntimeRegistryService\n>()(\"@knpkv/control-center/server/agent/AgentRuntimeRegistry\") {}\n\n/** Provides a selector implementation behind the runtime registry seam. */\nexport const agentRuntimeRegistryLayer = (\n select: AgentRuntimeRegistryService[\"select\"]\n): Layer.Layer<AgentRuntimeRegistry> => Layer.succeed(AgentRuntimeRegistry, AgentRuntimeRegistry.of({ select }))\n","/** Run-once durable agent job execution behind one small server-owned interface. @module */\nimport {\n AgentContextMismatchError,\n AgentProviderError,\n AgentRunId,\n type AgentRunRequest,\n type AgentRuntimeError,\n type AgentRuntimeEvent,\n AgentRuntimeProtocolError\n} from \"@knpkv/ai-runtime\"\nimport * as Context from \"effect/Context\"\nimport * as Crypto from \"effect/Crypto\"\nimport * as DateTime from \"effect/DateTime\"\nimport type * as Duration from \"effect/Duration\"\nimport * as Effect from \"effect/Effect\"\nimport * as Encoding from \"effect/Encoding\"\nimport * as Layer from \"effect/Layer\"\nimport * as Option from \"effect/Option\"\nimport * as Ref from \"effect/Ref\"\nimport * as Result from \"effect/Result\"\nimport * as Schema from \"effect/Schema\"\nimport * as Stream from \"effect/Stream\"\n\nimport type { JobId, WorkspaceId } from \"../../domain/identifiers.js\"\nimport {\n AgentJobInputError,\n type AgentLeaseOwner,\n AgentLeaseToken,\n type ClaimedAgentJob\n} from \"../persistence/repositories/agentJobModels.js\"\nimport { AgentJobRepository } from \"../persistence/repositories/agentJobRepository.js\"\nimport { AgentRuntimeRegistry } from \"./AgentRuntimeRegistry.js\"\n\n/** Worker lease policy fixed when the server composes the module. */\nexport interface AgentJobWorkerOptions {\n readonly leaseDuration: Duration.Input\n readonly leaseOwner: AgentLeaseOwner\n}\n\n/** One run-once observation: no work, or one durably terminal job. */\nexport type AgentJobWorkerRunResult =\n | { readonly _tag: \"idle\" }\n | {\n readonly _tag: \"completed\"\n readonly jobId: JobId\n readonly outcome: \"success\" | \"cancelled\" | \"max-steps\"\n }\n | { readonly _tag: \"failed\"; readonly jobId: JobId }\n\nconst AgentRuntimeFailure = Schema.Union([\n AgentContextMismatchError,\n AgentProviderError,\n AgentRuntimeProtocolError\n])\nconst isAgentRuntimeFailure = Schema.is(AgentRuntimeFailure)\nconst isAgentJobInputError = Schema.is(AgentJobInputError)\n\n// JSON string encoding may expand one Unicode code point to six UTF-8 bytes\n// (for example, `\\u0000`). Five thousand leaves more than 2.7 KB for the\n// output-event envelope beneath the repository's 32,768-byte event limit.\nconst MAXIMUM_DURABLE_OUTPUT_CHUNK_CODE_POINTS = 5_000\n\nconst chunkOutputEvent = (event: AgentRuntimeEvent): ReadonlyArray<AgentRuntimeEvent> => {\n if (event._tag !== \"output\") return [event]\n\n const events = new Array<AgentRuntimeEvent>()\n let chunk = \"\"\n let chunkCodePoints = 0\n for (const codePoint of event.text) {\n chunk += codePoint\n chunkCodePoints += 1\n if (chunkCodePoints === MAXIMUM_DURABLE_OUTPUT_CHUNK_CODE_POINTS) {\n events.push({ ...event, text: chunk })\n chunk = \"\"\n chunkCodePoints = 0\n }\n }\n if (chunk.length > 0) events.push({ ...event, text: chunk })\n return events\n}\n\nconst isDurableBoundFailure = (\n failure: unknown\n): failure is AgentJobInputError & {\n readonly reason: \"event-limit-exceeded\" | \"output-limit-exceeded\"\n} =>\n isAgentJobInputError(failure) &&\n (failure.reason === \"event-limit-exceeded\" || failure.reason === \"output-limit-exceeded\")\n\nconst normalizeRuntimeFailure = (\n providerId: ClaimedAgentJob[\"providerId\"],\n failure: AgentRuntimeError\n): AgentProviderError => {\n if (failure._tag === \"AgentProviderError\") {\n return new AgentProviderError({\n providerId,\n phase: failure.phase,\n message: failure.message,\n retryable: failure.retryable\n })\n }\n if (failure._tag === \"AgentContextMismatchError\") {\n return new AgentProviderError({\n providerId,\n phase: \"protocol\",\n message: \"Agent continuation context did not match the claimed job.\",\n retryable: false\n })\n }\n return new AgentProviderError({\n providerId,\n phase: \"protocol\",\n message: `Agent runtime protocol failed (${failure.reason}).`,\n retryable: false\n })\n}\n\nconst normalizeDurableBoundFailure = (\n providerId: ClaimedAgentJob[\"providerId\"],\n failure: AgentJobInputError & {\n readonly reason: \"event-limit-exceeded\" | \"output-limit-exceeded\"\n }\n): AgentProviderError =>\n new AgentProviderError({\n providerId,\n phase: \"protocol\",\n message: failure.reason === \"output-limit-exceeded\"\n ? \"Agent runtime output exceeded the durable attempt limit.\"\n : \"Agent runtime event exceeded the durable event limit.\",\n retryable: false\n })\n\nconst makeAgentJobWorker = Effect.gen(function*() {\n const cryptoService = yield* Crypto.Crypto\n const jobs = yield* AgentJobRepository\n const runtimes = yield* AgentRuntimeRegistry\n\n const failClaim = Effect.fn(\"AgentJobWorker.failClaim\")(function*(\n claim: ClaimedAgentJob,\n error: AgentProviderError\n ) {\n const failedAt = yield* DateTime.now\n yield* jobs.failAttempt({\n workspaceId: claim.workspaceId,\n jobId: claim.jobId,\n attemptSequence: claim.attemptSequence,\n leaseToken: claim.leaseToken,\n error,\n failedAt\n })\n return { _tag: \"failed\", jobId: claim.jobId } satisfies AgentJobWorkerRunResult\n })\n\n const executeClaim = Effect.fn(\"AgentJobWorker.executeClaim\")(function*(claim: ClaimedAgentJob) {\n if (claim.cancellationRequested) {\n const occurredAt = yield* DateTime.now\n yield* jobs.appendEvent({\n workspaceId: claim.workspaceId,\n jobId: claim.jobId,\n attemptSequence: claim.attemptSequence,\n leaseToken: claim.leaseToken,\n event: { _tag: \"completed\", outcome: \"cancelled\", sessionRef: claim.sessionRef },\n occurredAt\n })\n return {\n _tag: \"completed\",\n jobId: claim.jobId,\n outcome: \"cancelled\"\n } satisfies AgentJobWorkerRunResult\n }\n\n const selected = yield* runtimes.select(claim.providerId).pipe(Effect.result)\n if (Result.isFailure(selected)) {\n return yield* failClaim(claim, normalizeRuntimeFailure(claim.providerId, selected.failure))\n }\n\n const terminal = yield* Ref.make<Extract<AgentRuntimeEvent, { readonly _tag: \"completed\" }> | null>(null)\n const continuation: AgentRunRequest[\"continuation\"] = claim.sessionRef === null\n ? { _tag: \"fresh\" }\n : {\n _tag: \"resume\",\n sessionRef: claim.sessionRef,\n contextFingerprint: claim.context.fingerprint\n }\n const request: AgentRunRequest = {\n runId: AgentRunId.make(claim.jobId),\n providerId: claim.providerId,\n model: claim.model,\n access: claim.access,\n prompt: claim.prompt,\n context: claim.context,\n continuation\n }\n const execution = yield* selected.success.run(request).pipe(\n Stream.takeUntil((event) => event._tag === \"completed\"),\n Stream.flatMap((event) => Stream.fromIterable(chunkOutputEvent(event))),\n Stream.runForEach((event) => {\n return DateTime.now.pipe(\n Effect.flatMap((occurredAt) =>\n jobs.appendEvent({\n workspaceId: claim.workspaceId,\n jobId: claim.jobId,\n attemptSequence: claim.attemptSequence,\n leaseToken: claim.leaseToken,\n event,\n occurredAt\n })\n ),\n Effect.andThen(event._tag === \"completed\" ? Ref.set(terminal, event) : Effect.void)\n )\n }),\n Effect.result\n )\n if (Result.isFailure(execution)) {\n const failure = execution.failure\n if (isAgentRuntimeFailure(failure)) {\n return yield* failClaim(claim, normalizeRuntimeFailure(claim.providerId, failure))\n }\n if (isDurableBoundFailure(failure)) {\n return yield* failClaim(claim, normalizeDurableBoundFailure(claim.providerId, failure))\n }\n return yield* Effect.fail(failure)\n }\n\n const completed = yield* Ref.get(terminal)\n if (completed === null) {\n return yield* failClaim(\n claim,\n normalizeRuntimeFailure(\n claim.providerId,\n new AgentRuntimeProtocolError({ reason: \"missing-terminal-event\" })\n )\n )\n }\n return {\n _tag: \"completed\",\n jobId: claim.jobId,\n outcome: completed.outcome\n } satisfies AgentJobWorkerRunResult\n })\n\n return (options: AgentJobWorkerOptions) => ({\n runOnce: Effect.fn(\"AgentJobWorker.runOnce\")(function*(workspaceId: WorkspaceId) {\n const claimedAt = yield* DateTime.now\n const leaseToken = AgentLeaseToken.make(\n Encoding.encodeHex(yield* cryptoService.randomBytes(32))\n )\n const claim = yield* jobs.claimNext({\n workspaceId,\n leaseOwner: options.leaseOwner,\n leaseToken,\n claimedAt,\n leaseExpiresAt: DateTime.addDuration(claimedAt, options.leaseDuration)\n })\n return Option.isNone(claim)\n ? { _tag: \"idle\" } satisfies AgentJobWorkerRunResult\n : yield* executeClaim(claim.value)\n })\n })\n})\n\nexport interface AgentJobWorkerService {\n readonly runOnce: (\n workspaceId: WorkspaceId\n ) => ReturnType<ReturnType<Effect.Success<typeof makeAgentJobWorker>>[\"runOnce\"]>\n}\n\n/** Deep run-once module owning claim, selection, execution, and terminal persistence. */\nexport class AgentJobWorker extends Context.Service<AgentJobWorker, AgentJobWorkerService>()(\n \"@knpkv/control-center/server/agent/AgentJobWorker\"\n) {}\n\n/** Captures worker policy while acquiring persistence, crypto, and runtime selection. */\nexport const agentJobWorkerLayer = (\n options: AgentJobWorkerOptions\n): Layer.Layer<AgentJobWorker, never, AgentJobRepository | AgentRuntimeRegistry | Crypto.Crypto> =>\n Layer.effect(\n AgentJobWorker,\n makeAgentJobWorker.pipe(Effect.map((make) => AgentJobWorker.of(make(options))))\n )\n","import { Schema, SchemaTransformation } from \"effect\"\n\nconst hasNoInvisibleControls = (value: string): boolean =>\n Array.from(value).every((character) => {\n const codePoint = character.codePointAt(0)\n return codePoint !== undefined &&\n !(\n (codePoint >= 0 && codePoint <= 0x1f) ||\n (codePoint >= 0x7f && codePoint <= 0x9f) ||\n (codePoint >= 0x202a && codePoint <= 0x202e) ||\n (codePoint >= 0x2066 && codePoint <= 0x2069)\n )\n })\n\nconst SafeUrlText = Schema.String.check(\n Schema.isTrimmed(),\n Schema.isNonEmpty(),\n Schema.isMaxLength(4_096),\n Schema.makeFilter(hasNoInvisibleControls, { expected: \"a URL without control or bidirectional override characters\" })\n)\n\n/** HTTPS-only URL that may be placed in a browser navigation element. */\nexport const ExternalNavigationUrl = SafeUrlText.pipe(\n Schema.decodeTo(Schema.URL, SchemaTransformation.urlFromString),\n Schema.check(\n Schema.makeFilter(({ protocol }) => protocol === \"https:\", { expected: \"an HTTPS navigation URL\" }),\n Schema.makeFilter(\n ({ password, username }) => password.length === 0 && username.length === 0,\n { expected: \"a navigation URL without embedded credentials\" }\n )\n )\n)\n\n/** Decoded safe external navigation URL. */\nexport type ExternalNavigationUrl = typeof ExternalNavigationUrl.Type\n\n/** HTTPS-only, credential-free URL eligible for explicit egress validation. */\nexport const EgressUrl = SafeUrlText.pipe(\n Schema.decodeTo(Schema.URL, SchemaTransformation.urlFromString),\n Schema.check(\n Schema.makeFilter(({ protocol }) => protocol === \"https:\", { expected: \"an HTTPS egress URL\" }),\n Schema.makeFilter(\n ({ password, username }) => password.length === 0 && username.length === 0,\n { expected: \"an egress URL without embedded credentials\" }\n ),\n Schema.makeFilter(({ hash }) => hash.length === 0, { expected: \"an egress URL without a fragment\" }),\n Schema.makeFilter(({ port }) => port.length === 0 || port === \"443\", {\n expected: \"an egress URL using the default HTTPS port\"\n }),\n Schema.makeFilter(({ hostname }) => hostname.length > 0 && !hostname.endsWith(\".\"), {\n expected: \"an egress URL with a canonical hostname\"\n }),\n Schema.makeFilter(({ hostname }) => !/^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$/u.test(hostname), {\n expected: \"an egress URL using a DNS hostname rather than an IP literal\"\n })\n )\n)\n\n/** Decoded egress URL; this is still not authority to open a socket. */\nexport type EgressUrl = typeof EgressUrl.Type\n\n/** Opaque same-origin reference used by media routes instead of accepting a URL. */\nexport const MediaRef = Schema.String.check(\n Schema.isPattern(/^media_[0-9a-f]{64}$/u, { expected: \"a lowercase SHA-256 media reference\" })\n).pipe(Schema.brand(\"MediaRef\"))\n\n/** Decoded opaque media reference. */\nexport type MediaRef = typeof MediaRef.Type\n\nconst parseIpv4 = (address: string): ReadonlyArray<number> | undefined => {\n const segments = address.split(\".\")\n if (segments.length !== 4) return undefined\n const parsed: Array<number> = []\n for (const segment of segments) {\n if (!/^(?:0|[1-9][0-9]{0,2})$/u.test(segment)) return undefined\n const value = Number(segment)\n if (!Number.isInteger(value) || value > 255) return undefined\n parsed.push(value)\n }\n return parsed\n}\n\nconst isBlockedIpv4 = (segments: ReadonlyArray<number>): boolean => {\n const first = segments[0]\n const second = segments[1]\n const third = segments[2]\n if (first === undefined || second === undefined || third === undefined) return true\n return first === 0 ||\n first === 10 ||\n first === 127 ||\n first >= 224 ||\n (first === 100 && second >= 64 && second <= 127) ||\n (first === 169 && second === 254) ||\n (first === 172 && second >= 16 && second <= 31) ||\n (first === 192 && second === 0 && third === 0) ||\n (first === 192 && second === 0 && third === 2) ||\n (first === 192 && second === 88 && third === 99) ||\n (first === 192 && second === 168) ||\n (first === 198 && (second === 18 || second === 19)) ||\n (first === 198 && second === 51 && third === 100) ||\n (first === 203 && second === 0 && third === 113)\n}\n\nconst parseIpv6 = (address: string): ReadonlyArray<number> | undefined => {\n if (address.includes(\"%\") || address.includes(\".\")) return undefined\n const halves = address.toLowerCase().split(\"::\")\n if (halves.length > 2) return undefined\n const left = halves[0] === \"\" ? [] : halves[0]?.split(\":\") ?? []\n const right = halves.length === 1 || halves[1] === \"\" ? [] : halves[1]?.split(\":\") ?? []\n const isHexSegment = (segment: string): boolean => /^[0-9a-f]{1,4}$/u.test(segment)\n if (!left.every(isHexSegment) || !right.every(isHexSegment)) return undefined\n const missing = 8 - left.length - right.length\n if ((halves.length === 1 && missing !== 0) || (halves.length === 2 && missing < 1)) return undefined\n return [\n ...left.map((segment) => Number.parseInt(segment, 16)),\n ...Array<number>(missing).fill(0),\n ...right.map(\n (segment) => Number.parseInt(segment, 16)\n )\n ]\n}\n\nconst isPublicIpv6 = (segments: ReadonlyArray<number>): boolean => {\n const first = segments[0]\n const second = segments[1]\n if (segments.length !== 8 || first === undefined || second === undefined) return false\n if (first < 0x2000 || first > 0x3fff) return false\n if (first === 0x2001 && second <= 0x01ff) return false\n if (first === 0x2001 && second === 0x0db8) return false\n if (first === 0x2002) return false\n if (first === 0x3fff) return false\n return true\n}\n\n/** Return whether a canonical DNS address is globally routable under the egress policy. */\nexport const isPublicIpAddress = (address: string): boolean => {\n const ipv4 = parseIpv4(address)\n if (ipv4 !== undefined) return !isBlockedIpv4(ipv4)\n const ipv6 = parseIpv6(address)\n return ipv6 !== undefined && isPublicIpv6(ipv6)\n}\n\n/** Canonical public IPv4 or IPv6 address accepted after DNS resolution. */\nexport const PublicIpAddress = Schema.String.check(\n Schema.isTrimmed(),\n Schema.isNonEmpty(),\n Schema.isMaxLength(45),\n Schema.makeFilter(isPublicIpAddress, { expected: \"a canonical globally routable IP address\" })\n).pipe(Schema.brand(\"PublicIpAddress\"))\n\n/** Decoded globally routable IP address. */\nexport type PublicIpAddress = typeof PublicIpAddress.Type\n\nconst CanonicalHostname = Schema.String.check(\n Schema.isTrimmed(),\n Schema.isNonEmpty(),\n Schema.isMaxLength(253),\n Schema.isPattern(/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(?:\\.(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?))*$/u, {\n expected: \"a lowercase canonical DNS hostname\"\n })\n)\n\n/** Socket target created only after URL, allowlist, and DNS validation. */\nexport const ResolvedTarget = Schema.Struct({\n url: EgressUrl,\n hostname: CanonicalHostname,\n port: Schema.Literal(443),\n address: PublicIpAddress,\n family: Schema.Literals([4, 6])\n}).check(\n Schema.makeFilter(({ hostname, url }) => url.hostname === hostname, {\n expected: \"the resolved hostname to match the original URL\"\n }),\n Schema.makeFilter(({ address, family }) => (address.includes(\":\") ? family === 6 : family === 4), {\n expected: \"the address family to match the resolved address\"\n })\n)\n\n/** Decoded DNS-pinned egress target. */\nexport type ResolvedTarget = typeof ResolvedTarget.Type\n","import { Effect, Predicate, Result, Schema } from \"effect\"\n\nimport { ExternalNavigationUrl, MediaRef } from \"./UrlPolicy.js\"\n\nconst MAXIMUM_DEPTH = 20\nconst MAXIMUM_NODES = 10_000\nconst MAXIMUM_TEXT_BYTES = 16 * 1024\nconst MAXIMUM_LINKS = 500\nconst MAXIMUM_MEDIA = 500\nconst MAXIMUM_ENCODED_BYTES = 256 * 1024\n\n/** Public hard limits applied to every canonical rich document. */\nexport const RICH_DOCUMENT_LIMITS = {\n maximumDepth: MAXIMUM_DEPTH,\n maximumNodes: MAXIMUM_NODES,\n maximumTextBytes: MAXIMUM_TEXT_BYTES,\n maximumLinks: MAXIMUM_LINKS,\n maximumMedia: MAXIMUM_MEDIA,\n maximumEncodedBytes: MAXIMUM_ENCODED_BYTES\n}\n\nconst RichTextMark = Schema.Literals([\"bold\", \"italic\", \"strike\", \"code\"])\nconst RichTextMarks = Schema.Array(RichTextMark).check(\n Schema.isMaxLength(4),\n Schema.makeFilter((marks) => new Set(marks).size === marks.length, { expected: \"unique text marks\" })\n)\nconst RichText = Schema.String.check(Schema.isMaxLength(MAXIMUM_TEXT_BYTES))\nconst RichAltText = Schema.String.check(Schema.isMaxLength(500))\nconst RichReference = Schema.String.check(\n Schema.isTrimmed(),\n Schema.isNonEmpty(),\n Schema.isMaxLength(128),\n Schema.isPattern(/^[A-Za-z0-9][A-Za-z0-9:_-]*$/u)\n)\n\n/** Escaped text leaf with a closed set of presentation-only marks. */\nexport interface RichTextNode {\n readonly _tag: \"text\"\n readonly text: string\n readonly marks: ReadonlyArray<\"bold\" | \"italic\" | \"strike\" | \"code\">\n}\n\n/** Explicit inline hard break. */\nexport interface RichHardBreakNode {\n readonly _tag: \"hard-break\"\n}\n\n/** Safe external link whose children cannot contain another link. */\nexport interface RichLinkNode {\n readonly _tag: \"link\"\n readonly href: ExternalNavigationUrl\n readonly children: ReadonlyArray<RichTextNode | RichHardBreakNode>\n}\n\n/** Opaque person or entity mention. */\nexport interface RichMentionNode {\n readonly _tag: \"mention\"\n readonly reference: string\n readonly label: string\n}\n\n/** Bounded emoji text, rendered without provider HTML. */\nexport interface RichEmojiNode {\n readonly _tag: \"emoji\"\n readonly text: string\n}\n\n/** Same-origin opaque media reference. */\nexport interface RichMediaNode {\n readonly _tag: \"media\"\n readonly mediaRef: MediaRef\n readonly alt: string\n}\n\n/** Canonical inline rich node. */\nexport type RichInlineNode =\n | RichTextNode\n | RichHardBreakNode\n | RichLinkNode\n | RichMentionNode\n | RichEmojiNode\n | RichMediaNode\n\ninterface RichLinkNodeEncoded extends Omit<RichLinkNode, \"href\"> {\n readonly href: string\n}\n\ninterface RichMediaNodeEncoded extends Omit<RichMediaNode, \"mediaRef\"> {\n readonly mediaRef: string\n}\n\ntype RichInlineNodeEncoded =\n | RichTextNode\n | RichHardBreakNode\n | RichLinkNodeEncoded\n | RichMentionNode\n | RichEmojiNode\n | RichMediaNodeEncoded\n\nexport const RichTextNode: Schema.Codec<RichTextNode> = Schema.Struct({\n _tag: Schema.Literal(\"text\"),\n text: RichText,\n marks: RichTextMarks\n})\n\nexport const RichHardBreakNode: Schema.Codec<RichHardBreakNode> = Schema.Struct({\n _tag: Schema.Literal(\"hard-break\")\n})\n\nexport const RichLinkNode: Schema.Codec<RichLinkNode, RichLinkNodeEncoded> = Schema.Struct({\n _tag: Schema.Literal(\"link\"),\n href: ExternalNavigationUrl,\n children: Schema.Array(Schema.Union([RichTextNode, RichHardBreakNode]))\n})\n\nexport const RichMentionNode: Schema.Codec<RichMentionNode> = Schema.Struct({\n _tag: Schema.Literal(\"mention\"),\n reference: RichReference,\n label: RichAltText\n})\n\nexport const RichEmojiNode: Schema.Codec<RichEmojiNode> = Schema.Struct({\n _tag: Schema.Literal(\"emoji\"),\n text: Schema.String.check(Schema.isNonEmpty(), Schema.isMaxLength(32))\n})\n\nexport const RichMediaNode: Schema.Codec<RichMediaNode, RichMediaNodeEncoded> = Schema.Struct({\n _tag: Schema.Literal(\"media\"),\n mediaRef: MediaRef,\n alt: RichAltText\n})\n\nexport const RichInlineNode: Schema.Codec<RichInlineNode, RichInlineNodeEncoded> = Schema.Union([\n RichTextNode,\n RichHardBreakNode,\n RichLinkNode,\n RichMentionNode,\n RichEmojiNode,\n RichMediaNode\n])\n\n/** Paragraph block. */\nexport interface RichParagraphNode {\n readonly _tag: \"paragraph\"\n readonly children: ReadonlyArray<RichInlineNode>\n}\n\n/** Heading block with a semantic level. */\nexport interface RichHeadingNode {\n readonly _tag: \"heading\"\n readonly level: number\n readonly children: ReadonlyArray<RichInlineNode>\n}\n\n/** Plain code block; code is never interpreted as HTML. */\nexport interface RichCodeBlockNode {\n readonly _tag: \"code-block\"\n readonly language: string | null\n readonly text: string\n}\n\n/** Horizontal separator block. */\nexport interface RichRuleNode {\n readonly _tag: \"rule\"\n}\n\n/** Block quote containing canonical blocks. */\nexport interface RichBlockQuoteNode {\n readonly _tag: \"blockquote\"\n readonly children: ReadonlyArray<RichBlockNode>\n}\n\n/** List item containing canonical blocks. */\nexport interface RichListItemNode {\n readonly _tag: \"list-item\"\n readonly children: ReadonlyArray<RichBlockNode>\n}\n\n/** Bullet list. */\nexport interface RichBulletListNode {\n readonly _tag: \"bullet-list\"\n readonly children: ReadonlyArray<RichListItemNode>\n}\n\n/** Ordered list with a bounded starting ordinal. */\nexport interface RichOrderedListNode {\n readonly _tag: \"ordered-list\"\n readonly start: number\n readonly children: ReadonlyArray<RichListItemNode>\n}\n\n/** Canonical rich block. */\nexport type RichBlockNode =\n | RichParagraphNode\n | RichHeadingNode\n | RichCodeBlockNode\n | RichRuleNode\n | RichBlockQuoteNode\n | RichBulletListNode\n | RichOrderedListNode\n\ninterface RichParagraphNodeEncoded extends Omit<RichParagraphNode, \"children\"> {\n readonly children: ReadonlyArray<RichInlineNodeEncoded>\n}\n\ninterface RichHeadingNodeEncoded extends Omit<RichHeadingNode, \"children\"> {\n readonly children: ReadonlyArray<RichInlineNodeEncoded>\n}\n\ninterface RichBlockQuoteNodeEncoded extends Omit<RichBlockQuoteNode, \"children\"> {\n readonly children: ReadonlyArray<RichBlockNodeEncoded>\n}\n\ninterface RichListItemNodeEncoded extends Omit<RichListItemNode, \"children\"> {\n readonly children: ReadonlyArray<RichBlockNodeEncoded>\n}\n\ninterface RichBulletListNodeEncoded extends Omit<RichBulletListNode, \"children\"> {\n readonly children: ReadonlyArray<RichListItemNodeEncoded>\n}\n\ninterface RichOrderedListNodeEncoded extends Omit<RichOrderedListNode, \"children\"> {\n readonly children: ReadonlyArray<RichListItemNodeEncoded>\n}\n\ntype RichBlockNodeEncoded =\n | RichParagraphNodeEncoded\n | RichHeadingNodeEncoded\n | RichCodeBlockNode\n | RichRuleNode\n | RichBlockQuoteNodeEncoded\n | RichBulletListNodeEncoded\n | RichOrderedListNodeEncoded\n\nexport const RichParagraphNode: Schema.Codec<RichParagraphNode, RichParagraphNodeEncoded> = Schema.Struct({\n _tag: Schema.Literal(\"paragraph\"),\n children: Schema.Array(RichInlineNode)\n})\n\nexport const RichHeadingNode: Schema.Codec<RichHeadingNode, RichHeadingNodeEncoded> = Schema.Struct({\n _tag: Schema.Literal(\"heading\"),\n level: Schema.Number.check(Schema.isInt(), Schema.isBetween({ minimum: 1, maximum: 6 })),\n children: Schema.Array(RichInlineNode)\n})\n\nexport const RichCodeBlockNode: Schema.Codec<RichCodeBlockNode> = Schema.Struct({\n _tag: Schema.Literal(\"code-block\"),\n language: Schema.NullOr(Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(32))),\n text: RichText\n})\n\nexport const RichRuleNode: Schema.Codec<RichRuleNode> = Schema.Struct({ _tag: Schema.Literal(\"rule\") })\n\nexport const RichListItemNode: Schema.Codec<RichListItemNode, RichListItemNodeEncoded> = Schema.Struct({\n _tag: Schema.Literal(\"list-item\"),\n children: Schema.Array(\n Schema.suspend((): Schema.Codec<RichBlockNode, RichBlockNodeEncoded> => RichBlockNode)\n )\n})\n\nexport const RichBlockQuoteNode: Schema.Codec<RichBlockQuoteNode, RichBlockQuoteNodeEncoded> = Schema.Struct({\n _tag: Schema.Literal(\"blockquote\"),\n children: Schema.Array(\n Schema.suspend((): Schema.Codec<RichBlockNode, RichBlockNodeEncoded> => RichBlockNode)\n )\n})\n\nexport const RichBulletListNode: Schema.Codec<RichBulletListNode, RichBulletListNodeEncoded> = Schema.Struct({\n _tag: Schema.Literal(\"bullet-list\"),\n children: Schema.Array(RichListItemNode)\n})\n\nexport const RichOrderedListNode: Schema.Codec<RichOrderedListNode, RichOrderedListNodeEncoded> = Schema.Struct({\n _tag: Schema.Literal(\"ordered-list\"),\n start: Schema.Number.check(Schema.isInt(), Schema.isBetween({ minimum: 1, maximum: 1_000_000 })),\n children: Schema.Array(RichListItemNode)\n})\n\nexport const RichBlockNode: Schema.Codec<RichBlockNode, RichBlockNodeEncoded> = Schema.Union([\n RichParagraphNode,\n RichHeadingNode,\n RichCodeBlockNode,\n RichRuleNode,\n RichBlockQuoteNode,\n RichBulletListNode,\n RichOrderedListNode\n])\n\n/** Versioned canonical rich document without any raw HTML escape hatch. */\nexport interface RichDocumentV1 {\n readonly _tag: \"rich-document\"\n readonly version: 1\n readonly children: ReadonlyArray<RichBlockNode>\n}\n\ninterface RichDocumentV1Encoded extends Omit<RichDocumentV1, \"children\"> {\n readonly children: ReadonlyArray<RichBlockNodeEncoded>\n}\n\nexport const RichDocumentV1: Schema.Codec<RichDocumentV1, RichDocumentV1Encoded> = Schema.Struct({\n _tag: Schema.Literal(\"rich-document\"),\n version: Schema.Literal(1),\n children: Schema.Array(RichBlockNode)\n})\n\nconst RichDocumentJson = Schema.fromJsonString(RichDocumentV1)\n\n/** Canonical rich content failed schema or resource-limit validation. */\nexport class RichDocumentError extends Schema.TaggedErrorClass<RichDocumentError>()(\"RichDocumentError\", {\n reason: Schema.Literals([\"invalid-document\", \"bounds-exceeded\", \"encoded-size-exceeded\"])\n}) {}\n\ninterface RichBudget {\n nodeCount: number\n linkCount: number\n mediaCount: number\n}\n\nconst textEncoder = new TextEncoder()\n\nconst preflightUnknownTree = (input: unknown): boolean => {\n const stack: Array<{ readonly value: unknown; readonly depth: number }> = [{ value: input, depth: 0 }]\n let nodeCount = 0\n let linkCount = 0\n let mediaCount = 0\n while (stack.length > 0) {\n const current = stack.pop()\n if (current === undefined) break\n if (current.depth > MAXIMUM_DEPTH || !Predicate.isObject(current.value)) return false\n nodeCount += 1\n if (nodeCount > MAXIMUM_NODES) return false\n if (current.value._tag === \"link\") linkCount += 1\n if (current.value._tag === \"media\") mediaCount += 1\n if (linkCount > MAXIMUM_LINKS || mediaCount > MAXIMUM_MEDIA) return false\n const text = current.value.text\n if (typeof text === \"string\" && textEncoder.encode(text).byteLength > MAXIMUM_TEXT_BYTES) return false\n const children = current.value.children\n if (Array.isArray(children)) {\n for (const child of children) stack.push({ value: child, depth: current.depth + 1 })\n }\n }\n return true\n}\n\n/** Validate a canonical document and all structural, text, link, media, and encoded-size bounds. */\nexport const validateRichDocumentV1 = Effect.fn(\"RichDocument.validate\")(function*(input: unknown) {\n if (!preflightUnknownTree(input)) return yield* new RichDocumentError({ reason: \"bounds-exceeded\" })\n const typedResult = Schema.decodeUnknownResult(Schema.toType(RichDocumentV1))(input)\n const document = Result.isSuccess(typedResult)\n ? typedResult.success\n : yield* Schema.decodeUnknownEffect(RichDocumentV1)(input).pipe(\n Effect.mapError(() => new RichDocumentError({ reason: \"invalid-document\" }))\n )\n const encoded = yield* Schema.encodeUnknownEffect(RichDocumentJson)(document).pipe(\n Effect.mapError(() => new RichDocumentError({ reason: \"invalid-document\" }))\n )\n if (textEncoder.encode(encoded).byteLength > MAXIMUM_ENCODED_BYTES) {\n return yield* new RichDocumentError({ reason: \"encoded-size-exceeded\" })\n }\n return document\n})\n\nconst decodeString = (schema: Schema.Codec<string>, input: unknown): string | undefined => {\n const result = Schema.decodeUnknownResult(schema)(input)\n return Result.isSuccess(result) ? result.success : undefined\n}\n\nconst rawChildren = (input: Readonly<Record<PropertyKey, unknown>>): ReadonlyArray<unknown> =>\n Array.isArray(input.children) ? input.children : []\n\nconst addNode = (budget: RichBudget): boolean => {\n if (budget.nodeCount >= MAXIMUM_NODES) return false\n budget.nodeCount += 1\n return true\n}\n\nconst sanitizeLinkChildren = (\n inputs: ReadonlyArray<unknown>,\n budget: RichBudget,\n depth: number\n): ReadonlyArray<RichTextNode | RichHardBreakNode> => {\n const children: Array<RichTextNode | RichHardBreakNode> = []\n for (const input of inputs) {\n if (!Predicate.isObject(input)) continue\n if (input._tag === \"text\") {\n const text = decodeString(RichText, input.text)\n if (text === undefined || !addNode(budget)) continue\n const marksResult = Schema.decodeUnknownResult(RichTextMarks)(input.marks)\n children.push({ _tag: \"text\", text, marks: Result.isSuccess(marksResult) ? marksResult.success : [] })\n } else if (input._tag === \"hard-break\" && addNode(budget) && depth <= MAXIMUM_DEPTH) {\n children.push({ _tag: \"hard-break\" })\n }\n }\n return children\n}\n\nconst sanitizeInline = (\n input: unknown,\n budget: RichBudget,\n depth: number\n): ReadonlyArray<RichInlineNode> => {\n if (depth > MAXIMUM_DEPTH || !Predicate.isObject(input)) return []\n if (input._tag === \"text\") {\n const text = decodeString(RichText, input.text)\n if (text === undefined || !addNode(budget)) return []\n const marksResult = Schema.decodeUnknownResult(RichTextMarks)(input.marks)\n return [{ _tag: \"text\", text, marks: Result.isSuccess(marksResult) ? marksResult.success : [] }]\n }\n if (input._tag === \"hard-break\") return addNode(budget) ? [{ _tag: \"hard-break\" }] : []\n if (input._tag === \"link\") {\n const children = sanitizeLinkChildren(rawChildren(input), budget, depth + 1)\n const href = Schema.decodeUnknownResult(ExternalNavigationUrl)(input.href)\n if (Result.isFailure(href) || budget.linkCount >= MAXIMUM_LINKS || !addNode(budget)) return children\n budget.linkCount += 1\n return [{ _tag: \"link\", href: href.success, children }]\n }\n if (input._tag === \"mention\") {\n const reference = decodeString(RichReference, input.reference)\n const label = decodeString(RichAltText, input.label)\n return reference !== undefined && label !== undefined && addNode(budget)\n ? [{ _tag: \"mention\", reference, label }]\n : []\n }\n if (input._tag === \"emoji\") {\n const text = decodeString(Schema.String.check(Schema.isNonEmpty(), Schema.isMaxLength(32)), input.text)\n return text !== undefined && addNode(budget) ? [{ _tag: \"emoji\", text }] : []\n }\n if (input._tag === \"media\") {\n const mediaRef = Schema.decodeUnknownResult(MediaRef)(input.mediaRef)\n const alt = decodeString(RichAltText, input.alt)\n if (Result.isFailure(mediaRef) || alt === undefined || budget.mediaCount >= MAXIMUM_MEDIA || !addNode(budget)) {\n return []\n }\n budget.mediaCount += 1\n return [{ _tag: \"media\", mediaRef: mediaRef.success, alt }]\n }\n return []\n}\n\nconst sanitizeInlines = (\n inputs: ReadonlyArray<unknown>,\n budget: RichBudget,\n depth: number\n): ReadonlyArray<RichInlineNode> => inputs.flatMap((input) => sanitizeInline(input, budget, depth))\n\nconst sanitizeListItem = (input: unknown, budget: RichBudget, depth: number): RichListItemNode | undefined => {\n if (depth > MAXIMUM_DEPTH || !Predicate.isObject(input) || input._tag !== \"list-item\" || !addNode(budget)) {\n return undefined\n }\n return { _tag: \"list-item\", children: sanitizeBlocks(rawChildren(input), budget, depth + 1) }\n}\n\nconst sanitizeBlock = (input: unknown, budget: RichBudget, depth: number): RichBlockNode | undefined => {\n if (depth > MAXIMUM_DEPTH || !Predicate.isObject(input)) return undefined\n if (input._tag === \"paragraph\" && addNode(budget)) {\n return { _tag: \"paragraph\", children: sanitizeInlines(rawChildren(input), budget, depth + 1) }\n }\n if (input._tag === \"heading\") {\n const level = Schema.decodeUnknownResult(\n Schema.Number.check(Schema.isInt(), Schema.isBetween({ minimum: 1, maximum: 6 }))\n )(input.level)\n return Result.isSuccess(level) && addNode(budget)\n ? { _tag: \"heading\", level: level.success, children: sanitizeInlines(rawChildren(input), budget, depth + 1) }\n : undefined\n }\n if (input._tag === \"code-block\") {\n const text = decodeString(RichText, input.text)\n const language = input.language === null\n ? null\n : decodeString(\n Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(32)),\n input.language\n )\n return text !== undefined && language !== undefined && addNode(budget)\n ? { _tag: \"code-block\", language, text }\n : undefined\n }\n if (input._tag === \"rule\") return addNode(budget) ? { _tag: \"rule\" } : undefined\n if (input._tag === \"blockquote\" && addNode(budget)) {\n return { _tag: \"blockquote\", children: sanitizeBlocks(rawChildren(input), budget, depth + 1) }\n }\n if (input._tag === \"bullet-list\" || input._tag === \"ordered-list\") {\n if (!addNode(budget)) return undefined\n const children = rawChildren(input).flatMap((child) => {\n const sanitized = sanitizeListItem(child, budget, depth + 1)\n return sanitized === undefined ? [] : [sanitized]\n })\n if (input._tag === \"bullet-list\") return { _tag: \"bullet-list\", children }\n const start = Schema.decodeUnknownResult(\n Schema.Number.check(Schema.isInt(), Schema.isBetween({ minimum: 1, maximum: 1_000_000 }))\n )(input.start)\n return Result.isSuccess(start) ? { _tag: \"ordered-list\", start: start.success, children } : undefined\n }\n return undefined\n}\n\nfunction sanitizeBlocks(\n inputs: ReadonlyArray<unknown>,\n budget: RichBudget,\n depth: number\n): ReadonlyArray<RichBlockNode> {\n const blocks: Array<RichBlockNode> = []\n for (const input of inputs) {\n const block = sanitizeBlock(input, budget, depth)\n if (block !== undefined) blocks.push(block)\n if (budget.nodeCount >= MAXIMUM_NODES) break\n }\n return blocks\n}\n\nconst RawRichDocument = Schema.Struct({\n _tag: Schema.Literal(\"rich-document\"),\n version: Schema.Literal(1),\n children: Schema.Array(Schema.Unknown)\n})\n\n/** Drop unsupported/provider-active nodes and return a validated canonical document. */\nexport const sanitizeRichDocumentV1 = Effect.fn(\"RichDocument.sanitize\")(function*(input: unknown) {\n const raw = yield* Schema.decodeUnknownEffect(RawRichDocument)(input).pipe(\n Effect.mapError(() => new RichDocumentError({ reason: \"invalid-document\" }))\n )\n const budget: RichBudget = { nodeCount: 1, linkCount: 0, mediaCount: 0 }\n const document: RichDocumentV1 = {\n _tag: \"rich-document\",\n version: 1,\n children: sanitizeBlocks(raw.children, budget, 1)\n }\n return yield* validateRichDocumentV1(document)\n})\n"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as Config from "effect/Config";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import * as Schema from "effect/Schema";
|
|
4
|
+
declare const ObservabilityConfigurationError_base: Schema.Class<ObservabilityConfigurationError, Schema.TaggedStruct<"ObservabilityConfigurationError", {
|
|
5
|
+
readonly reason: Schema.Literals<readonly ["invalid-endpoint", "unsupported-protocol"]>;
|
|
6
|
+
readonly signal: Schema.Literals<readonly ["logs", "traces"]>;
|
|
7
|
+
}>, import("effect/Cause").YieldableError>;
|
|
8
|
+
declare class ObservabilityConfigurationError extends ObservabilityConfigurationError_base {
|
|
9
|
+
}
|
|
10
|
+
export declare const controlCenterTelemetryLayer: Layer.Layer<never, Config.ConfigError | ObservabilityConfigurationError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
11
|
+
export declare const ControlCenterObservabilityLive: Layer.Layer<never, Config.ConfigError | ObservabilityConfigurationError, never>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=observability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../../src/server/observability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;;;;;AA4CvC,cAAM,+BAAgC,SAAQ,oCAM7C;CAAG;AAoFJ,eAAO,MAAM,2BAA2B,gIAgCnB,CAAA;AAErB,eAAO,MAAM,8BAA8B,iFAAyE,CAAA"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Context, Effect, Layer, Stream } from "effect";
|
|
2
|
+
import type { Success } from "effect/Effect";
|
|
3
|
+
import type { WorkspaceId } from "../../domain/identifiers.js";
|
|
4
|
+
import type { UtcTimestamp } from "../../domain/utcTimestamp.js";
|
|
5
|
+
import { ContentMetadataMismatchError, ReproducibleContentUnavailableError } from "./errors.js";
|
|
6
|
+
import type { BlobDigest } from "./object-store/BlobDigest.js";
|
|
7
|
+
import type { BlobClassification } from "./object-store/BlobRef.js";
|
|
8
|
+
import { BlobStore } from "./object-store/BlobStore.js";
|
|
9
|
+
import type { BlobStoreError } from "./object-store/BlobStoreError.js";
|
|
10
|
+
import type { BlobRange } from "./object-store/BlobStoreTypes.js";
|
|
11
|
+
import { ContentBlobMetadataRepository } from "./repositories/contentBlobMetadataRepository.js";
|
|
12
|
+
import type { ContentBlobMetadata } from "./repositories/models.js";
|
|
13
|
+
/** Metadata supplied when content bytes cross into durable persistence. */
|
|
14
|
+
export interface PutContentInput {
|
|
15
|
+
readonly bytes: Uint8Array;
|
|
16
|
+
readonly classification: BlobClassification;
|
|
17
|
+
readonly mimeType: string | null;
|
|
18
|
+
readonly createdAt: UtcTimestamp;
|
|
19
|
+
}
|
|
20
|
+
/** Result of publishing bytes before their SQL metadata becomes visible. */
|
|
21
|
+
export interface PutContentResult {
|
|
22
|
+
readonly metadata: ContentBlobMetadata;
|
|
23
|
+
readonly stored: boolean;
|
|
24
|
+
}
|
|
25
|
+
declare const makeContentStore: Effect.Effect<{
|
|
26
|
+
put: (workspaceId: string & import("effect/Brand").Brand<"WorkspaceId">, input: PutContentInput) => Effect.Effect<{
|
|
27
|
+
metadata: import("effect/Schema").Struct.ReadonlySide<{
|
|
28
|
+
readonly workspaceId: import("effect/Schema").brand<import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>, "WorkspaceId">;
|
|
29
|
+
readonly digest: import("effect/Schema").brand<import("effect/Schema").String, "BlobDigest">;
|
|
30
|
+
readonly storageClass: import("effect/Schema").Literals<readonly ["durable", "reproducible-cache"]>;
|
|
31
|
+
readonly mimeType: import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Null]>;
|
|
32
|
+
readonly byteLength: import("effect/Schema").Number;
|
|
33
|
+
readonly createdAt: import("effect/Schema").DateTimeUtcFromString;
|
|
34
|
+
readonly lastVerifiedAt: import("effect/Schema").Union<readonly [import("effect/Schema").DateTimeUtcFromString, import("effect/Schema").Null]>;
|
|
35
|
+
}, "Type">;
|
|
36
|
+
stored: boolean;
|
|
37
|
+
}, import("./errors.js").RecordNotFoundError | import("./errors.js").PersistenceOperationError | ContentMetadataMismatchError | import("./errors.js").PersistedRecordError | import("./errors.js").QuarantineWriteError | BlobStoreError, never>;
|
|
38
|
+
getMetadata: (workspaceId: WorkspaceId, digest: BlobDigest) => Effect.Effect<import("effect/Schema").Struct.ReadonlySide<{
|
|
39
|
+
readonly workspaceId: import("effect/Schema").brand<import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>, "WorkspaceId">;
|
|
40
|
+
readonly digest: import("effect/Schema").brand<import("effect/Schema").String, "BlobDigest">;
|
|
41
|
+
readonly storageClass: import("effect/Schema").Literals<readonly ["durable", "reproducible-cache"]>;
|
|
42
|
+
readonly mimeType: import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Null]>;
|
|
43
|
+
readonly byteLength: import("effect/Schema").Number;
|
|
44
|
+
readonly createdAt: import("effect/Schema").DateTimeUtcFromString;
|
|
45
|
+
readonly lastVerifiedAt: import("effect/Schema").Union<readonly [import("effect/Schema").DateTimeUtcFromString, import("effect/Schema").Null]>;
|
|
46
|
+
}, "Type">, import("./errors.js").RecordNotFoundError | import("./errors.js").PersistenceOperationError | import("./errors.js").PersistedRecordError | import("./errors.js").QuarantineWriteError, never>;
|
|
47
|
+
listMetadata: (workspaceId: WorkspaceId) => Effect.Effect<import("effect/Schema").Struct.ReadonlySide<{
|
|
48
|
+
readonly workspaceId: import("effect/Schema").brand<import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>, "WorkspaceId">;
|
|
49
|
+
readonly digest: import("effect/Schema").brand<import("effect/Schema").String, "BlobDigest">;
|
|
50
|
+
readonly storageClass: import("effect/Schema").Literals<readonly ["durable", "reproducible-cache"]>;
|
|
51
|
+
readonly mimeType: import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Null]>;
|
|
52
|
+
readonly byteLength: import("effect/Schema").Number;
|
|
53
|
+
readonly createdAt: import("effect/Schema").DateTimeUtcFromString;
|
|
54
|
+
readonly lastVerifiedAt: import("effect/Schema").Union<readonly [import("effect/Schema").DateTimeUtcFromString, import("effect/Schema").Null]>;
|
|
55
|
+
}, "Type">[], import("./errors.js").PersistenceOperationError | import("./errors.js").QuarantineWriteError, never>;
|
|
56
|
+
readAll: (workspaceId: string & import("effect/Brand").Brand<"WorkspaceId">, digest: string & import("effect/Brand").Brand<"BlobDigest">, maximumBytes?: number | undefined) => Effect.Effect<Uint8Array<ArrayBufferLike>, import("./errors.js").RecordNotFoundError | import("./errors.js").PersistenceOperationError | ReproducibleContentUnavailableError | import("./errors.js").PersistedRecordError | import("./errors.js").QuarantineWriteError | BlobStoreError, never>;
|
|
57
|
+
readRange: (workspaceId: string & import("effect/Brand").Brand<"WorkspaceId">, digest: string & import("effect/Brand").Brand<"BlobDigest">, range: BlobRange) => Effect.Effect<import("./object-store/BlobStoreTypes.js").BlobRangeRead, import("./errors.js").RecordNotFoundError | import("./errors.js").PersistenceOperationError | ReproducibleContentUnavailableError | import("./errors.js").PersistedRecordError | import("./errors.js").QuarantineWriteError | BlobStoreError, never>;
|
|
58
|
+
readStream: (workspaceId: string & import("effect/Brand").Brand<"WorkspaceId">, digest: string & import("effect/Brand").Brand<"BlobDigest">, range?: BlobRange | undefined) => Effect.Effect<{
|
|
59
|
+
bytes: Stream.Stream<Uint8Array<ArrayBufferLike>, ReproducibleContentUnavailableError | BlobStoreError, never>;
|
|
60
|
+
digest: BlobDigest;
|
|
61
|
+
sizeBytes: number;
|
|
62
|
+
integrity: "not-verified";
|
|
63
|
+
}, import("./errors.js").RecordNotFoundError | import("./errors.js").PersistenceOperationError | ReproducibleContentUnavailableError | import("./errors.js").PersistedRecordError | import("./errors.js").QuarantineWriteError | BlobStoreError, never>;
|
|
64
|
+
verify: (workspaceId: string & import("effect/Brand").Brand<"WorkspaceId">, digest: string & import("effect/Brand").Brand<"BlobDigest">, verifiedAt: import("effect/DateTime").Utc) => Effect.Effect<{
|
|
65
|
+
metadata: import("effect/Schema").Struct.ReadonlySide<{
|
|
66
|
+
readonly workspaceId: import("effect/Schema").brand<import("effect/Schema").decodeTo<import("effect/Schema").String, import("effect/Schema").String, never, never>, "WorkspaceId">;
|
|
67
|
+
readonly digest: import("effect/Schema").brand<import("effect/Schema").String, "BlobDigest">;
|
|
68
|
+
readonly storageClass: import("effect/Schema").Literals<readonly ["durable", "reproducible-cache"]>;
|
|
69
|
+
readonly mimeType: import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Null]>;
|
|
70
|
+
readonly byteLength: import("effect/Schema").Number;
|
|
71
|
+
readonly createdAt: import("effect/Schema").DateTimeUtcFromString;
|
|
72
|
+
readonly lastVerifiedAt: import("effect/Schema").Union<readonly [import("effect/Schema").DateTimeUtcFromString, import("effect/Schema").Null]>;
|
|
73
|
+
}, "Type">;
|
|
74
|
+
verification: import("./object-store/BlobStoreTypes.js").BlobVerification;
|
|
75
|
+
}, import("./errors.js").RecordNotFoundError | import("./errors.js").PersistenceOperationError | ContentMetadataMismatchError | ReproducibleContentUnavailableError | import("./errors.js").PersistedRecordError | import("./errors.js").QuarantineWriteError | BlobStoreError, never>;
|
|
76
|
+
}, never, BlobStore | ContentBlobMetadataRepository>;
|
|
77
|
+
/** Durable, workspace-scoped content whose SQL metadata never precedes its bytes. */
|
|
78
|
+
export interface ContentStoreService extends Success<typeof makeContentStore> {
|
|
79
|
+
}
|
|
80
|
+
declare const ContentStore_base: Context.ServiceClass<ContentStore, "@knpkv/control-center/ContentStore", ContentStoreService>;
|
|
81
|
+
/** Public content service combining the owner-only object store and SQL metadata. */
|
|
82
|
+
export declare class ContentStore extends ContentStore_base {
|
|
83
|
+
static readonly layer: Layer.Layer<ContentStore, never, BlobStore | ContentBlobMetadataRepository>;
|
|
84
|
+
}
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=ContentStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentStore.d.ts","sourceRoot":"","sources":["../../../../src/server/persistence/ContentStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAkB,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,4BAA4B,EAAE,mCAAmC,EAAE,MAAM,aAAa,CAAA;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iDAAiD,CAAA;AAC/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,2EAA2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAA;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAA;CACjC;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;IACtC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;AAED,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;+BAIkB,WAAW,UAAU,UAAU;;;;;;;;;gCA0FvC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDAmDzC,CAAA;AAEF,qFAAqF;AACrF,MAAM,WAAW,mBAAoB,SAAQ,OAAO,CAAC,OAAO,gBAAgB,CAAC;CAAG;;AAEhF,qFAAqF;AACrF,qBAAa,YAAa,SAAQ,iBAEjC;IACC,MAAM,CAAC,QAAQ,CAAC,KAAK,8EAA+C;CACrE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Context, Effect, FileSystem, Layer, Path } from "effect";
|
|
2
|
+
import * as SqlClient from "effect/unstable/sql/SqlClient";
|
|
3
|
+
import { SchemaWriteBarrierError } from "./backup/errors.js";
|
|
4
|
+
import { DatabaseInitializationError, type PersistenceConfigError } from "./errors.js";
|
|
5
|
+
/** Busy timeout used for bounded local write contention. */
|
|
6
|
+
export declare const BUSY_TIMEOUT_MILLISECONDS = 5000;
|
|
7
|
+
/** Database operations shared by all workspace-scoped persistence services. */
|
|
8
|
+
export interface DatabaseShape {
|
|
9
|
+
readonly sql: SqlClient.SqlClient;
|
|
10
|
+
readonly transaction: SqlClient.SqlClient["withTransaction"];
|
|
11
|
+
readonly validateSchema: Effect.Effect<void, DatabaseInitializationError>;
|
|
12
|
+
}
|
|
13
|
+
declare const Database_base: Context.ServiceClass<Database, "@knpkv/control-center/server/persistence/Database", DatabaseShape>;
|
|
14
|
+
/** Scoped Control Center database service backed by one shared libSQL client. */
|
|
15
|
+
export declare class Database extends Database_base {
|
|
16
|
+
}
|
|
17
|
+
/** Convert schema transaction defects and interruption into a redacted typed failure. */
|
|
18
|
+
export declare const sandboxSchemaTransaction: <Value, Failure, Requirements>(transaction: Effect.Effect<Value, Failure, Requirements>) => Effect.Effect<Value, Failure | SchemaWriteBarrierError, Requirements>;
|
|
19
|
+
/** Hold SQLite's reserved writer transaction across one fresh-schema operation. */
|
|
20
|
+
export declare const withSchemaWriteBarrier: <Value, Failure, Requirements>(sql: SqlClient.SqlClient, databaseSourceFile: string, operation: Effect.Effect<Value, Failure, Requirements>) => Effect.Effect<Value, Failure | SchemaWriteBarrierError, FileSystem.FileSystem | Requirements>;
|
|
21
|
+
/** Verify that an existing local database has the exact current prototype schema. */
|
|
22
|
+
export declare const validateExistingControlCenterDatabase: (input: unknown) => Effect.Effect<void, PersistenceConfigError | DatabaseInitializationError, never>;
|
|
23
|
+
/** Build a scoped database layer after decoding secret-free local configuration. */
|
|
24
|
+
export declare const databaseLayer: (input: unknown) => Layer.Layer<Database, DatabaseInitializationError | SchemaWriteBarrierError | PersistenceConfigError, FileSystem.FileSystem | Path.Path>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=Database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../../../src/server/persistence/Database.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAU,IAAI,EAAqB,MAAM,QAAQ,CAAA;AACnG,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAE1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,2BAA2B,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAKtF,4DAA4D;AAC5D,eAAO,MAAM,yBAAyB,OAAQ,CAAA;AAQ9C,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,SAAS,CAAA;IACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;IAC5D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAA;CAC1E;;AAED,iFAAiF;AACjF,qBAAa,QAAS,SAAQ,aAE7B;CAAG;AAuEJ,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,GAAI,KAAK,EAAE,OAAO,EAAE,YAAY,EACnE,aAAa,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,KACvD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,EAAE,YAAY,CASpE,CAAA;AAEH,mFAAmF;AACnF,eAAO,MAAM,sBAAsB,GAAI,KAAK,EAAE,OAAO,EAAE,YAAY,EACjE,KAAK,SAAS,CAAC,SAAS,EACxB,oBAAoB,MAAM,EAC1B,WAAW,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,KACrD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,EAAE,UAAU,CAAC,UAAU,GAAG,YAAY,CAS5F,CAAA;AAoDH,qFAAqF;AACrF,eAAO,MAAM,qCAAqC,sGAchD,CAAA;AAEF,oFAAoF;AACpF,eAAO,MAAM,aAAa,GACxB,OAAO,OAAO,KACb,KAAK,CAAC,KAAK,CACZ,QAAQ,EACR,2BAA2B,GAAG,uBAAuB,GAAG,sBAAsB,EAC9E,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAchC,CAAA"}
|