@knpkv/control-center 0.3.0 → 0.4.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/README.md +52 -9
- package/dist/client/.vite/manifest.json +183 -170
- package/dist/client/assets/{ActiveWorkPage-DJQgGZeV.js → ActiveWorkPage-Dd1mxPrq.js} +2 -2
- package/dist/client/assets/{ActiveWorkPage-DJQgGZeV.js.map → ActiveWorkPage-Dd1mxPrq.js.map} +1 -1
- package/dist/client/assets/AgentPage-C3LThgPZ.js +3 -0
- package/dist/client/assets/AgentPage-C3LThgPZ.js.map +1 -0
- package/dist/client/assets/{AtlassianOAuthCallbackPage-D1F1xE_2.js → AtlassianOAuthCallbackPage-BPoF6oKf.js} +2 -2
- package/dist/client/assets/{AtlassianOAuthCallbackPage-D1F1xE_2.js.map → AtlassianOAuthCallbackPage-BPoF6oKf.js.map} +1 -1
- package/dist/client/assets/AuthorizedSharePage-jjqu6W_f.js +2 -0
- package/dist/client/assets/AuthorizedSharePage-jjqu6W_f.js.map +1 -0
- package/dist/client/assets/BrowserCrypto-BMbjhcvP.js +2 -0
- package/dist/client/assets/{BrowserCrypto-DVWR7DFd.js.map → BrowserCrypto-BMbjhcvP.js.map} +1 -1
- package/dist/client/assets/BrowserSessionHydrator-BC1ymLkL.js +2 -0
- package/dist/client/assets/BrowserSessionHydrator-BC1ymLkL.js.map +1 -0
- package/dist/client/assets/CommandSearch-WwAVDrD9.js +2 -0
- package/dist/client/assets/{CommandSearch-CP_QCbkm.js.map → CommandSearch-WwAVDrD9.js.map} +1 -1
- package/dist/client/assets/ItemsPage-CKK_KkJ2.js +2 -0
- package/dist/client/assets/{ItemsPage-BGFUkRL2.js.map → ItemsPage-CKK_KkJ2.js.map} +1 -1
- package/dist/client/assets/{PairPage-DIgzx0K2.js → PairPage-DA6cmyqF.js} +2 -2
- package/dist/client/assets/{PairPage-DIgzx0K2.js.map → PairPage-DA6cmyqF.js.map} +1 -1
- package/dist/client/assets/PortfolioOverview-CEI4gpXi.js +2 -0
- package/dist/client/assets/PortfolioOverview-CEI4gpXi.js.map +1 -0
- package/dist/client/assets/PullRequestReviewPanel-D7AKnwL-.js +6 -0
- package/dist/client/assets/PullRequestReviewPanel-D7AKnwL-.js.map +1 -0
- package/dist/client/assets/ReleaseRoute-CbPW3qUT.js +2 -0
- package/dist/client/assets/{ReleaseRoute-DXJ8Jg60.js.map → ReleaseRoute-CbPW3qUT.js.map} +1 -1
- package/dist/client/assets/ReleaseWorkset-BluAe7Sq.js +2 -0
- package/dist/client/assets/{ReleaseWorkset-Dtzalmji.js.map → ReleaseWorkset-BluAe7Sq.js.map} +1 -1
- package/dist/client/assets/ServicesPage-_B89DAvG.js +2 -0
- package/dist/client/assets/ServicesPage-_B89DAvG.js.map +1 -0
- package/dist/client/assets/TimelinePage-DvpgD8AY.js +2 -0
- package/dist/client/assets/TimelinePage-DvpgD8AY.js.map +1 -0
- package/dist/client/assets/WorkspaceEntityLink-DPj6MKI2.js +2 -0
- package/dist/client/assets/{WorkspaceEntityLink-AdZ_T-Wk.js.map → WorkspaceEntityLink-DPj6MKI2.js.map} +1 -1
- package/dist/client/assets/WorkspaceEntityRoute-B01fxxB3.js +3 -0
- package/dist/client/assets/WorkspaceEntityRoute-B01fxxB3.js.map +1 -0
- package/dist/client/assets/{WorkspaceHomeLink-XbKSPths.js → WorkspaceHomeLink-CkJfzO25.js} +2 -2
- package/dist/client/assets/{WorkspaceHomeLink-XbKSPths.js.map → WorkspaceHomeLink-CkJfzO25.js.map} +1 -1
- package/dist/client/assets/WorkspacePullRequestDetails-HwDgp12e.js +3 -0
- package/dist/client/assets/WorkspacePullRequestDetails-HwDgp12e.js.map +1 -0
- package/dist/client/assets/{WorkspaceReleaseLayout-cfboC5Qh.js → WorkspaceReleaseLayout-CGHi8eoo.js} +2 -2
- package/dist/client/assets/{WorkspaceReleaseLayout-cfboC5Qh.js.map → WorkspaceReleaseLayout-CGHi8eoo.js.map} +1 -1
- package/dist/client/assets/{WorkspaceSettingsPage-Fy7Wx8Y2.js → WorkspaceSettingsPage-DyoGiGJG.js} +2 -2
- package/dist/client/assets/{WorkspaceSettingsPage-Fy7Wx8Y2.js.map → WorkspaceSettingsPage-DyoGiGJG.js.map} +1 -1
- package/dist/client/assets/agent-api-CeONl_8w.js +19 -0
- package/dist/client/assets/agent-api-CeONl_8w.js.map +1 -0
- package/dist/client/assets/authenticatedMutationClient-DYaieXUe.js +2 -0
- package/dist/client/assets/{authenticatedMutationClient-Ccwguc3i.js.map → authenticatedMutationClient-DYaieXUe.js.map} +1 -1
- package/dist/client/assets/authorizedShareTransport-cxBoQzQ2.js +2 -0
- package/dist/client/assets/{authorizedShareTransport-DZHgFEkh.js.map → authorizedShareTransport-cxBoQzQ2.js.map} +1 -1
- package/dist/client/assets/client-DKS82kT_.js +5 -0
- package/dist/client/assets/client-DKS82kT_.js.map +1 -0
- package/dist/client/assets/connectionTestTransport-I_Ga9UNs.js +2 -0
- package/dist/client/assets/{connectionTestTransport-BQ55d6Me.js.map → connectionTestTransport-I_Ga9UNs.js.map} +1 -1
- package/dist/client/assets/index-C7_FDTU7.js +11 -0
- package/dist/client/assets/index-C7_FDTU7.js.map +1 -0
- package/dist/client/assets/{patterns-5N-j-AD2-BwypFm-e.js → patterns-5N-j-AD2-B9qgekXA.js} +2 -2
- package/dist/client/assets/{patterns-5N-j-AD2-BwypFm-e.js.map → patterns-5N-j-AD2-B9qgekXA.js.map} +1 -1
- package/dist/client/assets/{presentPortfolio-D3ZIcnqt.js → presentPortfolio-C_JsoSWg.js} +2 -2
- package/dist/client/assets/presentPortfolio-C_JsoSWg.js.map +1 -0
- package/dist/client/assets/{presentWorkspaceItems-Bmh4oEbH.js → presentWorkspaceItems-DboAfwGc.js} +2 -2
- package/dist/client/assets/{presentWorkspaceItems-Bmh4oEbH.js.map → presentWorkspaceItems-DboAfwGc.js.map} +1 -1
- package/dist/client/assets/{pullRequestReviewFailures-S74M-fOk.js → pullRequestReviewFailures-DHmYwffV.js} +2 -2
- package/dist/client/assets/{pullRequestReviewFailures-S74M-fOk.js.map → pullRequestReviewFailures-DHmYwffV.js.map} +1 -1
- package/dist/client/assets/pullRequestReviewThreadReplay-Vy1k53qE.js +2 -0
- package/dist/client/assets/pullRequestReviewThreadReplay-Vy1k53qE.js.map +1 -0
- package/dist/client/assets/releaseRoutes-t9uCfs5T.js +2 -0
- package/dist/client/assets/{releaseRoutes-BCuIdZyA.js.map → releaseRoutes-t9uCfs5T.js.map} +1 -1
- package/dist/client/assets/serviceOnboarding-DLINCon7.js +2 -0
- package/dist/client/assets/{serviceOnboarding-Jg_0yNjf.js.map → serviceOnboarding-DLINCon7.js.map} +1 -1
- package/dist/client/assets/{useWorkspaceDefaultLanding-CzlDdEF-.js → useWorkspaceDefaultLanding-CC5ImHkL.js} +3 -3
- package/dist/client/assets/{useWorkspaceDefaultLanding-CzlDdEF-.js.map → useWorkspaceDefaultLanding-CC5ImHkL.js.map} +1 -1
- package/dist/client/assets/{useWorkspaceItems-Cd3MPke2.js → useWorkspaceItems-B1X-JNwq.js} +2 -2
- package/dist/client/assets/{useWorkspaceItems-Cd3MPke2.js.map → useWorkspaceItems-B1X-JNwq.js.map} +1 -1
- package/dist/client/assets/workspaceEntityRoutes-2TejMrzb.js +2 -0
- package/dist/client/assets/workspaceEntityRoutes-2TejMrzb.js.map +1 -0
- package/dist/client/assets/workspaceScrollCapture-BsjcWVsk.js +2 -0
- package/dist/client/assets/workspaceScrollCapture-BsjcWVsk.js.map +1 -0
- package/dist/client/assets/workspaceSettingsTransport-Dw2hueXv.js +2 -0
- package/dist/client/assets/{workspaceSettingsTransport-CZWYL5T7.js.map → workspaceSettingsTransport-Dw2hueXv.js.map} +1 -1
- package/dist/client/build-graph.json +17 -0
- package/dist/client/index.html +1 -1
- package/dist/server/api/agent.d.ts +563 -44
- package/dist/server/api/agent.d.ts.map +1 -1
- package/dist/server/api/deliveryGraph.d.ts +454 -454
- package/dist/server/api/index.d.ts +1 -1
- package/dist/server/api/index.d.ts.map +1 -1
- package/dist/server/api/index.js +4 -4
- package/dist/server/api/liveEvents.d.ts +20 -0
- package/dist/server/api/liveEvents.d.ts.map +1 -1
- package/dist/server/api/portfolio.d.ts +23 -0
- package/dist/server/api/portfolio.d.ts.map +1 -1
- package/dist/server/api/shares.d.ts +2 -2
- package/dist/server/assets/{BindConfig-DIsf2Rnh.js → BindConfig-Bj282xDC.js} +2094 -290
- package/dist/server/assets/BindConfig-Bj282xDC.js.map +1 -0
- package/dist/server/assets/{CodePipelineStateDecoder-CVf1A2zG.js → CodePipelineStateDecoder-CNiFRgSi.js} +2 -2
- package/dist/server/assets/{CodePipelineStateDecoder-CVf1A2zG.js.map → CodePipelineStateDecoder-CNiFRgSi.js.map} +1 -1
- package/dist/server/assets/{agent-CyZ40zs1.js → agent-ZvwskOQu.js} +160 -10
- package/dist/server/assets/agent-ZvwskOQu.js.map +1 -0
- package/dist/server/assets/{controlCenterApi-ZUX3Y-LE.js → controlCenterApi-5j3gOXgE.js} +5 -5
- package/dist/server/assets/{controlCenterApi-ZUX3Y-LE.js.map → controlCenterApi-5j3gOXgE.js.map} +1 -1
- package/dist/server/assets/{descriptor-CKtTnhef.js → descriptor-CCvNzSZL.js} +10 -10
- package/dist/server/assets/{descriptor-CKtTnhef.js.map → descriptor-CCvNzSZL.js.map} +1 -1
- package/dist/server/assets/{failures-mgYDkUZy.js → failures-CesHLYbN.js} +2 -2
- package/dist/server/assets/{failures-mgYDkUZy.js.map → failures-CesHLYbN.js.map} +1 -1
- package/dist/server/assets/{firstPartyServices-D7b8BOek.js → firstPartyServices-Cdzjcs2H.js} +2 -2
- package/dist/server/assets/{firstPartyServices-D7b8BOek.js.map → firstPartyServices-Cdzjcs2H.js.map} +1 -1
- package/dist/server/assets/{manualPluginSynchronization-DFlhKvav.js → manualPluginSynchronization-CzIhZ_Dw.js} +5 -5
- package/dist/server/assets/{manualPluginSynchronization-DFlhKvav.js.map → manualPluginSynchronization-CzIhZ_Dw.js.map} +1 -1
- package/dist/server/assets/{plugins-D__oMDpI.js → plugins-DiPrfzV8.js} +2 -2
- package/dist/server/assets/{plugins-D__oMDpI.js.map → plugins-DiPrfzV8.js.map} +1 -1
- package/dist/server/assets/{readiness-BhA-Nr9c.js → readiness-BtntBhDj.js} +3 -3
- package/dist/server/assets/{readiness-BhA-Nr9c.js.map → readiness-BtntBhDj.js.map} +1 -1
- package/dist/server/assets/{relationshipInferenceMaterialization-DYBcaWhQ.js → relationshipInferenceMaterialization-CR6xyMNL.js} +1121 -159
- package/dist/server/assets/relationshipInferenceMaterialization-CR6xyMNL.js.map +1 -0
- package/dist/server/assets/{workspaceSettings-BE713Oe8.js → workspaceSettings-C2Zsk6RI.js} +2784 -2700
- package/dist/server/assets/workspaceSettings-C2Zsk6RI.js.map +1 -0
- package/dist/server/build-graph.json +117 -4
- package/dist/server/domain/actors.d.ts +12 -12
- package/dist/server/domain/deliveryGraph.d.ts +49 -49
- package/dist/server/domain/governedAction/bindings.d.ts +24 -12
- package/dist/server/domain/governedAction/bindings.d.ts.map +1 -1
- package/dist/server/domain/governedAction/lifecycle.d.ts +8 -8
- package/dist/server/domain/governedAction/model.d.ts +39 -18
- package/dist/server/domain/governedAction/model.d.ts.map +1 -1
- package/dist/server/domain/governedAction/stateMachine.d.ts +34 -34
- package/dist/server/domain/index.js +6 -6
- package/dist/server/domain/normalizedIssue.d.ts +1 -1
- package/dist/server/domain/prReview.d.ts +38 -0
- package/dist/server/domain/prReview.d.ts.map +1 -1
- package/dist/server/domain/prReviewReconciliation.d.ts +56 -0
- package/dist/server/domain/prReviewReconciliation.d.ts.map +1 -0
- package/dist/server/domain/prReviewRevision.d.ts +1 -0
- package/dist/server/domain/prReviewRevision.d.ts.map +1 -1
- package/dist/server/domain/readiness/model.d.ts +3 -3
- package/dist/server/domain/release.d.ts +3 -3
- package/dist/server/domain/releasePublication.d.ts +4 -0
- package/dist/server/domain/releasePublication.d.ts.map +1 -0
- package/dist/server/index.js +8 -8
- package/dist/server/server/agent/AgentJobWorker.d.ts +10 -1
- package/dist/server/server/agent/AgentJobWorker.d.ts.map +1 -1
- package/dist/server/server/agent/ReleaseAgentPrompt.d.ts.map +1 -1
- package/dist/server/server/agent/internal/AgentJobTaskExecutor.d.ts +4 -3
- package/dist/server/server/agent/internal/AgentJobTaskExecutor.d.ts.map +1 -1
- package/dist/server/server/agent/internal/PrReviewSandboxSession.d.ts +17 -1
- package/dist/server/server/agent/internal/PrReviewSandboxSession.d.ts.map +1 -1
- package/dist/server/server/agent/internal/PrReviewTaskExecutor.d.ts +76 -2
- package/dist/server/server/agent/internal/PrReviewTaskExecutor.d.ts.map +1 -1
- package/dist/server/server/agent/internal/PrReviewTelemetry.d.ts +27 -0
- package/dist/server/server/agent/internal/PrReviewTelemetry.d.ts.map +1 -0
- package/dist/server/server/api/ApplicationServices.d.ts +39 -5
- package/dist/server/server/api/ApplicationServices.d.ts.map +1 -1
- package/dist/server/server/api/Handlers.d.ts.map +1 -1
- package/dist/server/server/api/RequestBoundary.d.ts.map +1 -1
- package/dist/server/server/application/GovernedReviewSuggestionPublicationGateway.d.ts.map +1 -1
- package/dist/server/server/application/ReviewSuggestionPublicationGateway.d.ts +4 -0
- package/dist/server/server/application/ReviewSuggestionPublicationGateway.d.ts.map +1 -1
- package/dist/server/server/application/index.d.ts +1 -0
- package/dist/server/server/application/index.d.ts.map +1 -1
- package/dist/server/server/application/liveEvents.d.ts.map +1 -1
- package/dist/server/server/application/pipelineExecutionProjection.d.ts +6 -6
- package/dist/server/server/application/portfolioSnapshots.d.ts +2014 -4
- package/dist/server/server/application/portfolioSnapshots.d.ts.map +1 -1
- package/dist/server/server/application/pullRequestReviews.d.ts.map +1 -1
- package/dist/server/server/application/releaseAgent.d.ts +11 -3
- package/dist/server/server/application/releaseAgent.d.ts.map +1 -1
- package/dist/server/server/application/releasePublicationIntent.d.ts +7 -0
- package/dist/server/server/application/releasePublicationIntent.d.ts.map +1 -0
- package/dist/server/server/application/releasePublicationMetadata.d.ts +61 -0
- package/dist/server/server/application/releasePublicationMetadata.d.ts.map +1 -0
- package/dist/server/server/application/releasePublicationSubmissions.d.ts +3699 -0
- package/dist/server/server/application/releasePublicationSubmissions.d.ts.map +1 -0
- package/dist/server/server/application/releaseSynchronization.d.ts.map +1 -1
- package/dist/server/server/cli.js +8 -8
- package/dist/server/server/cli.js.map +1 -1
- package/dist/server/server/governance/governedActionDigests.d.ts +233 -218
- package/dist/server/server/governance/governedActionDigests.d.ts.map +1 -1
- package/dist/server/server/governance/internal/GovernedActionExecutionEngine.d.ts +3 -4
- package/dist/server/server/governance/internal/GovernedActionExecutionEngine.d.ts.map +1 -1
- package/dist/server/server/governance/internal/execution-store/begin.d.ts.map +1 -1
- package/dist/server/server/governance/internal/execution-store/dispatch-inbox.d.ts +1 -1
- package/dist/server/server/governance/internal/execution-store/dispatch-outcome.d.ts +8 -8
- package/dist/server/server/governance/internal/execution-store/provider-outcome-fold.d.ts +2 -2
- package/dist/server/server/governance/internal/execution-store/reconciliation-inbox.d.ts +1 -1
- package/dist/server/server/governance/internal/execution-store/recovery-claim.d.ts +36 -30
- package/dist/server/server/governance/internal/execution-store/recovery-claim.d.ts.map +1 -1
- package/dist/server/server/index.js +5 -5
- package/dist/server/server/internal/codepipeline-state-probe.js +1 -1
- package/dist/server/server/persistence/Database.d.ts +1 -1
- package/dist/server/server/persistence/Database.d.ts.map +1 -1
- package/dist/server/server/persistence/Persistence.d.ts +1539 -577
- package/dist/server/server/persistence/Persistence.d.ts.map +1 -1
- package/dist/server/server/persistence/backup/BackupArchive.d.ts.map +1 -1
- package/dist/server/server/persistence/repositories/agentJobModels.d.ts +345 -8
- package/dist/server/server/persistence/repositories/agentJobModels.d.ts.map +1 -1
- package/dist/server/server/persistence/repositories/agentJobRepository.d.ts +654 -192
- package/dist/server/server/persistence/repositories/agentJobRepository.d.ts.map +1 -1
- package/dist/server/server/persistence/repositories/delivery-graph/contract.d.ts +138 -138
- package/dist/server/server/persistence/repositories/delivery-graph/decode.d.ts +25 -25
- package/dist/server/server/persistence/repositories/delivery-graph/read.d.ts +111 -111
- package/dist/server/server/persistence/repositories/delivery-graph/rows.d.ts +27 -27
- package/dist/server/server/persistence/repositories/delivery-graph/write.d.ts +48 -48
- package/dist/server/server/persistence/repositories/deliveryGraphRepository.d.ts +111 -111
- package/dist/server/server/persistence/repositories/governed-action/codec.d.ts +255 -234
- package/dist/server/server/persistence/repositories/governed-action/codec.d.ts.map +1 -1
- package/dist/server/server/persistence/repositories/governed-action/contract.d.ts +66 -46
- package/dist/server/server/persistence/repositories/governed-action/contract.d.ts.map +1 -1
- package/dist/server/server/persistence/repositories/governed-action/read.d.ts +664 -190
- package/dist/server/server/persistence/repositories/governed-action/read.d.ts.map +1 -1
- package/dist/server/server/persistence/repositories/governed-action/transaction.d.ts +676 -206
- package/dist/server/server/persistence/repositories/governed-action/transaction.d.ts.map +1 -1
- package/dist/server/server/persistence/repositories/governed-action/write-preparation.d.ts +37 -31
- package/dist/server/server/persistence/repositories/governed-action/write-preparation.d.ts.map +1 -1
- package/dist/server/server/persistence/repositories/governed-action/write-replay.d.ts +44 -32
- package/dist/server/server/persistence/repositories/governed-action/write-replay.d.ts.map +1 -1
- package/dist/server/server/persistence/repositories/governed-action/write.d.ts +44 -32
- package/dist/server/server/persistence/repositories/governed-action/write.d.ts.map +1 -1
- package/dist/server/server/persistence/repositories/governedActionRepository.d.ts +674 -205
- package/dist/server/server/persistence/repositories/governedActionRepository.d.ts.map +1 -1
- package/dist/server/server/persistence/repositories/internal/reviewSuggestionRevisions.d.ts +85 -4
- package/dist/server/server/persistence/repositories/internal/reviewSuggestionRevisions.d.ts.map +1 -1
- package/dist/server/server/persistence/repositories/models.d.ts +9 -9
- package/dist/server/server/persistence/repositories/peopleRepository.d.ts +36 -36
- package/dist/server/server/persistence/repositories/providerAccountRepository.d.ts +1 -1
- package/dist/server/server/persistence/repositories/readiness/assessments.d.ts +6 -6
- package/dist/server/server/persistence/repositories/readiness/contract.d.ts +450 -450
- package/dist/server/server/persistence/repositories/readiness/queue.d.ts +14 -14
- package/dist/server/server/persistence/repositories/readinessRepository.d.ts +7 -7
- package/dist/server/server/persistence/repositories/releaseRepository.d.ts +18 -18
- package/dist/server/server/persistence/repositories/retentionRepository.d.ts.map +1 -1
- package/dist/server/server/persistence/repositories/timelineRepository.d.ts +4 -4
- package/dist/server/server/plugins/atlassian/AtlassianOAuthGrants.d.ts.map +1 -1
- package/dist/server/server/plugins/atlassian/AtlassianOAuthScopes.d.ts +9 -0
- package/dist/server/server/plugins/atlassian/AtlassianOAuthScopes.d.ts.map +1 -0
- package/dist/server/server/plugins/atlassian/AtlassianProfiles.d.ts.map +1 -1
- package/dist/server/server/plugins/codecommit/CodeCommitPluginDefinition.d.ts.map +1 -1
- package/dist/server/server/plugins/jira/JiraReadPlugin.d.ts +2 -2
- package/dist/server/server/plugins/jira/JiraReadPlugin.d.ts.map +1 -1
- package/dist/server/server/plugins/jira/JiraReadProvider.d.ts.map +1 -1
- package/dist/server/server/plugins/jira/JiraReleaseVersionLimits.d.ts +8 -0
- package/dist/server/server/plugins/jira/JiraReleaseVersionLimits.d.ts.map +1 -0
- package/dist/server/server/plugins/jira/index.d.ts +1 -1
- package/dist/server/server/plugins/jira/index.d.ts.map +1 -1
- package/dist/server/server/runtime/Bootstrap.d.ts +1 -1
- package/dist/server/server/runtime/Bootstrap.d.ts.map +1 -1
- package/dist/server/server/runtime/ControlCenterServer.d.ts +3 -3
- package/dist/server/server/runtime/ControlCenterServer.d.ts.map +1 -1
- package/dist/server/server/runtime/PrReviewWorkerStartup.d.ts +11 -1
- package/dist/server/server/runtime/PrReviewWorkerStartup.d.ts.map +1 -1
- package/dist/server/server/runtime/RetentionStartup.d.ts.map +1 -1
- package/dist/server/server/runtime/ServerLifecycle.d.ts.map +1 -1
- package/dist/server/server/secrets/SecretStore.d.ts.map +1 -1
- package/package.json +9 -8
- package/dist/client/assets/AgentPage-DGL93TJU.js +0 -3
- package/dist/client/assets/AgentPage-DGL93TJU.js.map +0 -1
- package/dist/client/assets/AuthorizedSharePage-DCQUFY2I.js +0 -2
- package/dist/client/assets/AuthorizedSharePage-DCQUFY2I.js.map +0 -1
- package/dist/client/assets/BrowserCrypto-DVWR7DFd.js +0 -2
- package/dist/client/assets/BrowserSessionHydrator-DE46feEX.js +0 -2
- package/dist/client/assets/BrowserSessionHydrator-DE46feEX.js.map +0 -1
- package/dist/client/assets/CommandSearch-CP_QCbkm.js +0 -2
- package/dist/client/assets/ItemsPage-BGFUkRL2.js +0 -2
- package/dist/client/assets/PortfolioOverview-D45rk8Hl.js +0 -2
- package/dist/client/assets/PortfolioOverview-D45rk8Hl.js.map +0 -1
- package/dist/client/assets/PullRequestReviewPanel-CqPtjhVW.js +0 -6
- package/dist/client/assets/PullRequestReviewPanel-CqPtjhVW.js.map +0 -1
- package/dist/client/assets/ReleaseRoute-DXJ8Jg60.js +0 -2
- package/dist/client/assets/ReleaseWorkset-Dtzalmji.js +0 -2
- package/dist/client/assets/ServicesPage-DGcUjd2H.js +0 -2
- package/dist/client/assets/ServicesPage-DGcUjd2H.js.map +0 -1
- package/dist/client/assets/TimelinePage-Bq1RTQlP.js +0 -2
- package/dist/client/assets/TimelinePage-Bq1RTQlP.js.map +0 -1
- package/dist/client/assets/WorkspaceEntityLink-AdZ_T-Wk.js +0 -2
- package/dist/client/assets/WorkspaceEntityRoute-Bxxnc8us.js +0 -3
- package/dist/client/assets/WorkspaceEntityRoute-Bxxnc8us.js.map +0 -1
- package/dist/client/assets/WorkspacePullRequestDetails-BErJ5bk8.js +0 -3
- package/dist/client/assets/WorkspacePullRequestDetails-BErJ5bk8.js.map +0 -1
- package/dist/client/assets/agent-api-QVqt4a0O.js +0 -19
- package/dist/client/assets/agent-api-QVqt4a0O.js.map +0 -1
- package/dist/client/assets/authenticatedMutationClient-Ccwguc3i.js +0 -2
- package/dist/client/assets/authorizedShareTransport-DZHgFEkh.js +0 -2
- package/dist/client/assets/client-D27unen8.js +0 -5
- package/dist/client/assets/client-D27unen8.js.map +0 -1
- package/dist/client/assets/connectionTestTransport-BQ55d6Me.js +0 -2
- package/dist/client/assets/index-j5ze816l.js +0 -11
- package/dist/client/assets/index-j5ze816l.js.map +0 -1
- package/dist/client/assets/presentPortfolio-D3ZIcnqt.js.map +0 -1
- package/dist/client/assets/pullRequestReviewThreadReplay-oljKM7Xz.js +0 -2
- package/dist/client/assets/pullRequestReviewThreadReplay-oljKM7Xz.js.map +0 -1
- package/dist/client/assets/releaseRoutes-BCuIdZyA.js +0 -2
- package/dist/client/assets/serviceOnboarding-Jg_0yNjf.js +0 -2
- package/dist/client/assets/workspaceScrollCapture-CJ4QUptr.js +0 -2
- package/dist/client/assets/workspaceScrollCapture-CJ4QUptr.js.map +0 -1
- package/dist/client/assets/workspaceSettingsTransport-CZWYL5T7.js +0 -2
- package/dist/server/assets/BindConfig-DIsf2Rnh.js.map +0 -1
- package/dist/server/assets/agent-CyZ40zs1.js.map +0 -1
- package/dist/server/assets/relationshipInferenceMaterialization-DYBcaWhQ.js.map +0 -1
- package/dist/server/assets/workspaceSettings-BE713Oe8.js.map +0 -1
package/dist/server/assets/{controlCenterApi-ZUX3Y-LE.js.map → controlCenterApi-5j3gOXgE.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controlCenterApi-ZUX3Y-LE.js","names":[],"sources":["../../../src/api/codepipeline.ts","../../../src/api/deliveryGraph.ts","../../../src/api/diff.ts","../../../src/api/liveEvents.ts","../../../src/api/media.ts","../../../src/api/shares.ts","../../../src/api/timeline.ts","../../../src/api/workspaceSettings.ts","../../../src/api/controlCenterApi.ts"],"sourcesContent":["import * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from \"effect/unstable/httpapi\"\n\nimport { PluginConnectionId } from \"../domain/identifiers.js\"\nimport {\n PluginPipelineArtifactRangeRequestV1,\n PluginPipelineLogPageRequestV1,\n PluginPipelineLogPageV1\n} from \"../domain/plugins/index.js\"\nimport {\n ConflictApiError,\n ForbiddenApiError,\n NotFoundApiError,\n RateLimitedApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { SessionCookieAuth } from \"./session.js\"\n\n/** Workspace-scoped request for one bounded CodePipeline action log page. */\nexport const CodePipelineLogReadRequest = Schema.Struct({\n pluginConnectionId: PluginConnectionId,\n request: PluginPipelineLogPageRequestV1\n})\n\n/** Workspace-scoped request for one bounded CodePipeline action artifact range. */\nexport const CodePipelineArtifactReadRequest = Schema.Struct({\n pluginConnectionId: PluginConnectionId,\n request: PluginPipelineArtifactRangeRequestV1\n})\n\nconst readErrors = [\n UnauthorizedApiError,\n ForbiddenApiError,\n NotFoundApiError,\n ConflictApiError,\n RateLimitedApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n]\n\nconst logs = HttpApiEndpoint.post(\"logs\", \"/logs\", {\n payload: CodePipelineLogReadRequest,\n success: PluginPipelineLogPageV1,\n error: readErrors\n}).middleware(SessionCookieAuth)\n\nconst artifactStream = HttpApiSchema.StreamUint8Array({ contentType: \"application/octet-stream\" })\nconst artifact = HttpApiEndpoint.post(\"artifact\", \"/artifact\", {\n payload: CodePipelineArtifactReadRequest,\n success: [\n artifactStream,\n artifactStream.pipe(HttpApiSchema.status(206)),\n artifactStream.pipe(HttpApiSchema.status(416))\n ],\n error: readErrors\n}).middleware(SessionCookieAuth)\n\n/** Authenticated workspace-scoped CodePipeline evidence proxy. */\nexport class CodePipelineApiGroup extends HttpApiGroup.make(\"codepipeline\")\n .add(logs)\n .add(artifact)\n .prefix(\"/api/v1/codepipeline\")\n{}\n","import * as Effect from \"effect/Effect\"\nimport * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup } from \"effect/unstable/httpapi\"\n\nimport { PersonSourceIdentity, Role } from \"../domain/actors.js\"\nimport {\n DeliveryEntityKind,\n DeliveryEntityProjection,\n DeliveryEntityService,\n DeliveryEntityStatusGroup,\n DeliveryNode,\n DeliveryRelationship,\n EvidenceClaim,\n EvidenceItem,\n LedgerRevision\n} from \"../domain/deliveryGraph.js\"\nimport { Freshness } from \"../domain/freshness.js\"\nimport { GovernedActionState } from \"../domain/governedAction/index.js\"\nimport {\n EntityId,\n EnvironmentId,\n EvidenceId,\n GovernedActionId,\n PersonId,\n RelationshipId,\n RelationshipRepairProposalId,\n RelationshipRepairReviewId,\n ReleaseId\n} from \"../domain/identifiers.js\"\nimport {\n RelationshipRepairApplication,\n RelationshipRepairDisposition,\n RelationshipRepairProposal,\n RelationshipRepairRationale,\n RelationshipRepairReviewDecision\n} from \"../domain/relationshipRepair.js\"\nimport { Revision, SourceRevision } from \"../domain/sourceRevision.js\"\nimport { TimelineEvent } from \"../domain/timeline.js\"\nimport { UtcTimestamp } from \"../domain/utcTimestamp.js\"\nimport {\n ConflictApiError,\n ForbiddenApiError,\n InvalidRequestApiError,\n NotFoundApiError,\n PayloadTooLargeApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { SessionCookieAuth, SessionMutationAuth } from \"./session.js\"\nimport { CanonicalNonNegativeIntegerFromString } from \"./wire.js\"\n\nexport const MAXIMUM_RELEASE_SLICE_RECORDS = 500\nexport const MAXIMUM_WORKSPACE_ENTITY_PROJECTIONS = 500\nexport const MAXIMUM_WORKSPACE_ENTITY_RELEASES = 500\nexport const MAXIMUM_WORKSPACE_ENTITY_OWNERS = 20\nexport const MAXIMUM_WORKSPACE_OWNER_OPTIONS = 200\nexport const MAXIMUM_WORKSPACE_OWNER_ROLES = 16\nexport const MAXIMUM_WORKSPACE_ENTITY_RELATIONSHIPS = 100\nexport const MAXIMUM_WORKSPACE_ENTITY_ACTIVITY = 20\nconst MAXIMUM_RELATIONSHIP_HISTORY = 200\nconst MAXIMUM_EVIDENCE_CLAIMS = 200\nexport const MAXIMUM_REPAIR_PROPOSALS = 128\n\nconst boundedArray = <T, E, RD, RE>(schema: Schema.Codec<T, E, RD, RE>, maximum: number) =>\n Schema.Array(schema).check(Schema.isMaxLength(maximum))\n\n/** One persisted entity projection with its ledger observation time. */\nexport const InspectedEntityProjection = Schema.Struct({\n projection: DeliveryEntityProjection,\n recordedAt: UtcTimestamp\n}).annotate({ identifier: \"InspectedEntityProjection\" })\n\n/** Bounded deterministic graph prefix; `truncated` explicitly reports incomplete material. */\nexport const ReleaseDeliveryGraphInspection = Schema.Struct({\n releaseId: ReleaseId,\n environmentId: Schema.NullOr(EnvironmentId),\n truncated: Schema.Boolean,\n nodes: boundedArray(DeliveryNode, MAXIMUM_RELEASE_SLICE_RECORDS),\n entityProjections: boundedArray(InspectedEntityProjection, MAXIMUM_RELEASE_SLICE_RECORDS),\n relationships: boundedArray(DeliveryRelationship, MAXIMUM_RELEASE_SLICE_RECORDS),\n evidenceClaims: boundedArray(EvidenceClaim, MAXIMUM_RELEASE_SLICE_RECORDS),\n evidenceItems: boundedArray(EvidenceItem, MAXIMUM_RELEASE_SLICE_RECORDS)\n}).annotate({ identifier: \"ReleaseDeliveryGraphInspection\" })\n\n/** Decoded release delivery-graph inspection. */\nexport type ReleaseDeliveryGraphInspection = typeof ReleaseDeliveryGraphInspection.Type\n\nconst WorkspaceEntityReleaseIds = Schema.Array(ReleaseId).check(\n Schema.isUnique(),\n Schema.isMaxLength(MAXIMUM_WORKSPACE_ENTITY_RELEASES),\n Schema.makeFilter(\n (releaseIds) =>\n releaseIds.every((releaseId, index) => {\n const previous = releaseIds[index - 1]\n return index === 0 || (previous !== undefined && previous < releaseId)\n }),\n { expected: \"sorted workspace entity release identifiers\" }\n )\n)\n\n/** Compact canonical human identity assigned to one current workspace entity. */\nexport const WorkspaceEntityOwner = Schema.Struct({\n avatarFallback: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(4)),\n displayName: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(200)),\n personId: PersonId,\n roles: boundedArray(Role, MAXIMUM_WORKSPACE_OWNER_ROLES).check(Schema.isMinLength(1)),\n sourceIdentities: Schema.optionalKey(boundedArray(PersonSourceIdentity, MAXIMUM_WORKSPACE_OWNER_ROLES))\n}).annotate({ identifier: \"WorkspaceEntityOwner\" })\n\n/** Decoded entity owner identity. */\nexport type WorkspaceEntityOwner = typeof WorkspaceEntityOwner.Type\n\nconst WorkspaceEntityOwners = boundedArray(WorkspaceEntityOwner, MAXIMUM_WORKSPACE_ENTITY_OWNERS)\nconst WorkspaceOwnerOptions = boundedArray(WorkspaceEntityOwner, MAXIMUM_WORKSPACE_OWNER_OPTIONS)\n\n/** One current workspace entity projection and every bounded current release membership. */\nexport const WorkspaceEntityProjection = Schema.Struct({\n canonicalReleaseId: Schema.NullOr(ReleaseId),\n owners: WorkspaceEntityOwners,\n ownersTruncated: Schema.Boolean,\n releaseIds: WorkspaceEntityReleaseIds,\n releaseMembershipsTruncated: Schema.Boolean,\n projection: DeliveryEntityProjection,\n recordedAt: UtcTimestamp\n}).check(\n Schema.makeFilter(\n ({ canonicalReleaseId, releaseIds }) => canonicalReleaseId === (releaseIds[0] ?? null),\n { expected: \"canonical release identifier to be the first current release membership\" }\n ),\n Schema.makeFilter(\n ({ releaseIds, releaseMembershipsTruncated }) =>\n !releaseMembershipsTruncated || releaseIds.length === MAXIMUM_WORKSPACE_ENTITY_RELEASES,\n { expected: \"truncated workspace release memberships to contain the complete bounded prefix\" }\n ),\n Schema.makeFilter(\n ({ owners, ownersTruncated }) => !ownersTruncated || owners.length === MAXIMUM_WORKSPACE_ENTITY_OWNERS,\n { expected: \"truncated workspace owners to contain the complete bounded prefix\" }\n )\n).annotate({ identifier: \"WorkspaceEntityProjection\" })\n\n/** Bounded workspace-wide index of current present normalized entities. */\nexport const WorkspaceEntityProjectionIndex = Schema.Struct({\n matchedCount: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),\n ownerOptions: WorkspaceOwnerOptions,\n ownerOptionsTruncated: Schema.Boolean,\n totalCount: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),\n truncated: Schema.Boolean,\n items: boundedArray(WorkspaceEntityProjection, MAXIMUM_WORKSPACE_ENTITY_PROJECTIONS)\n}).check(\n Schema.makeFilter(\n ({ ownerOptions, ownerOptionsTruncated }) =>\n !ownerOptionsTruncated || ownerOptions.length === MAXIMUM_WORKSPACE_OWNER_OPTIONS,\n { expected: \"truncated workspace owner options to contain the complete bounded prefix\" }\n )\n).annotate({ identifier: \"WorkspaceEntityProjectionIndex\" })\n\n/** Decoded workspace-wide current entity index. */\nexport type WorkspaceEntityProjectionIndex = typeof WorkspaceEntityProjectionIndex.Type\n\n/** Complete bounded graph closure surrounding one exact normalized entity. */\nexport const WorkspaceEntityGraph = Schema.Struct({\n truncated: Schema.Boolean,\n nodes: boundedArray(DeliveryNode, MAXIMUM_WORKSPACE_ENTITY_RELATIONSHIPS * 2),\n relatedEntityProjections: boundedArray(\n InspectedEntityProjection,\n MAXIMUM_WORKSPACE_ENTITY_RELATIONSHIPS\n ),\n relationships: boundedArray(DeliveryRelationship, MAXIMUM_WORKSPACE_ENTITY_RELATIONSHIPS),\n evidenceClaims: boundedArray(EvidenceClaim, MAXIMUM_WORKSPACE_ENTITY_RELATIONSHIPS * 2),\n evidenceItems: boundedArray(EvidenceItem, MAXIMUM_WORKSPACE_ENTITY_RELATIONSHIPS * 2)\n}).annotate({ identifier: \"WorkspaceEntityGraph\" })\n\n/** Decoded exact entity graph closure. */\nexport type WorkspaceEntityGraph = typeof WorkspaceEntityGraph.Type\n\n/** Bounded attributable activity for one exact normalized entity. */\nexport const WorkspaceEntityActivity = Schema.Struct({\n truncated: Schema.Boolean,\n events: boundedArray(TimelineEvent, MAXIMUM_WORKSPACE_ENTITY_ACTIVITY)\n}).annotate({ identifier: \"WorkspaceEntityActivity\" })\n\n/** Decoded exact entity activity. */\nexport type WorkspaceEntityActivity = typeof WorkspaceEntityActivity.Type\n\n/** Current revision-scoped Control Center approval for a Clockify entry. */\nexport const ClockifyApproval = Schema.Struct({\n actionId: GovernedActionId,\n decision: Schema.Literals([\"approved\", \"rejected\"]),\n rationale: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(1_000)),\n decidedAt: UtcTimestamp\n}).annotate({ identifier: \"ClockifyApproval\" })\n\n/** Decoded browser-safe Clockify approval projection. */\nexport type ClockifyApproval = typeof ClockifyApproval.Type\n\n/** Canonical provider-neutral full-page read model for one workspace entity. */\nexport const WorkspaceEntityInspection = Schema.Struct({\n entity: WorkspaceEntityProjection,\n source: SourceRevision,\n isSourceCurrent: Schema.Boolean,\n sourceActionsAvailable: Schema.Boolean.pipe(\n Schema.withDecodingDefaultTypeKey(Effect.succeed(false))\n ),\n freshness: Schema.NullOr(Freshness),\n clockifyApproval: Schema.NullOr(ClockifyApproval).pipe(\n Schema.withDecodingDefaultTypeKey(Effect.succeed(null))\n ),\n graph: WorkspaceEntityGraph,\n activity: WorkspaceEntityActivity\n}).annotate({ identifier: \"WorkspaceEntityInspection\" })\n\n/** Decoded canonical workspace entity read model. */\nexport type WorkspaceEntityInspection = typeof WorkspaceEntityInspection.Type\n\n/** Bounded immutable lifecycle history for one relationship, newest first. */\nexport const RelationshipHistoryInspection = Schema.Struct({\n relationshipId: RelationshipId,\n revisions: boundedArray(DeliveryRelationship, MAXIMUM_RELATIONSHIP_HISTORY)\n}).annotate({ identifier: \"RelationshipHistoryInspection\" })\n\n/** Decoded relationship lifecycle history. */\nexport type RelationshipHistoryInspection = typeof RelationshipHistoryInspection.Type\n\n/** One immutable evidence item and every bounded claim attributed to it. */\nexport const EvidenceInspection = Schema.Struct({\n evidence: EvidenceItem,\n claims: boundedArray(EvidenceClaim, MAXIMUM_EVIDENCE_CLAIMS)\n}).annotate({ identifier: \"EvidenceInspection\" })\n\n/** Decoded evidence inspection. */\nexport type EvidenceInspection = typeof EvidenceInspection.Type\n\n/** Read-only repair suggestion derived from one current incomplete relationship. */\nexport const RelationshipRepairCandidate = Schema.Struct({\n relationship: DeliveryRelationship,\n suggestedDisposition: Schema.Literals([\"link\", \"verify\", \"reject\"]),\n explanation: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(1_000)),\n impact: Schema.Struct({\n releaseId: ReleaseId,\n environmentId: Schema.NullOr(EnvironmentId)\n }),\n requiredPermission: Schema.Literal(\"workspace-owner\")\n}).annotate({ identifier: \"RelationshipRepairCandidate\" })\n\n/** Decoded read-only relationship repair suggestion. */\nexport type RelationshipRepairCandidate = typeof RelationshipRepairCandidate.Type\n\n/** Bounded candidate discovery result; discovery never mutates the relationship ledger. */\nexport const RelationshipRepairCandidates = Schema.Struct({\n releaseId: ReleaseId,\n environmentId: Schema.NullOr(EnvironmentId),\n truncated: Schema.Boolean,\n candidates: boundedArray(RelationshipRepairCandidate, MAXIMUM_RELEASE_SLICE_RECORDS)\n}).annotate({ identifier: \"RelationshipRepairCandidates\" })\n\n/** Decoded relationship repair candidate discovery result. */\nexport type RelationshipRepairCandidates = typeof RelationshipRepairCandidates.Type\n\n/** Non-mutating proposal input with the optimistic precondition required by a future apply step. */\nexport const RelationshipRepairProposalDraft = Schema.Struct({\n candidate: RelationshipRepairCandidate,\n precondition: Schema.Struct({\n relationshipId: RelationshipId,\n expectedRevision: LedgerRevision\n }),\n proposal: Schema.Struct({\n disposition: Schema.Literals([\"link\", \"verify\", \"reject\"]),\n rationale: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(1_000))\n })\n}).annotate({ identifier: \"RelationshipRepairProposalDraft\" })\n\n/** Decoded read-only relationship repair proposal draft. */\nexport type RelationshipRepairProposalDraft = typeof RelationshipRepairProposalDraft.Type\n\n/** Idempotent intent for creating a durable proposal from one exact repair candidate. */\nexport const CreateRelationshipRepairProposalRequest = Schema.Struct({\n proposalId: RelationshipRepairProposal.fields.proposalId,\n environmentId: RelationshipRepairProposal.fields.environmentId,\n expectedRevision: RelationshipRepairProposal.fields.expectedRevision,\n disposition: RelationshipRepairDisposition,\n rationale: RelationshipRepairRationale\n}).annotate({ identifier: \"CreateRelationshipRepairProposalRequest\" })\n\n/** Decoded relationship-repair proposal creation request. */\nexport type CreateRelationshipRepairProposalRequest = typeof CreateRelationshipRepairProposalRequest.Type\n\n/** Bounded newest-first proposal page for one release/environment scope. */\nexport const RelationshipRepairProposalList = Schema.Struct({\n releaseId: ReleaseId,\n environmentId: Schema.NullOr(EnvironmentId),\n status: Schema.NullOr(RelationshipRepairProposal.fields.status),\n truncated: Schema.Boolean,\n proposals: boundedArray(RelationshipRepairProposal, MAXIMUM_REPAIR_PROPOSALS),\n applications: boundedArray(RelationshipRepairApplication, MAXIMUM_REPAIR_PROPOSALS)\n}).annotate({ identifier: \"RelationshipRepairProposalList\" })\n\n/** Decoded bounded relationship-repair proposal page. */\nexport type RelationshipRepairProposalList = typeof RelationshipRepairProposalList.Type\n\n/** Idempotent immutable review command for one pending proposal. */\nexport const ReviewRelationshipRepairProposalRequest = Schema.Struct({\n reviewId: RelationshipRepairReviewId,\n decision: RelationshipRepairReviewDecision,\n rationale: RelationshipRepairRationale\n}).annotate({ identifier: \"ReviewRelationshipRepairProposalRequest\" })\n\n/** Decoded relationship-repair review request. */\nexport type ReviewRelationshipRepairProposalRequest = typeof ReviewRelationshipRepairProposalRequest.Type\n\n/** Applied proposal together with the immutable relationship revision it appended. */\nexport const ApplyRelationshipRepairProposalResponse = Schema.Struct({\n application: RelationshipRepairApplication,\n relationship: DeliveryRelationship\n}).annotate({ identifier: \"ApplyRelationshipRepairProposalResponse\" })\n\n/** Decoded approved-proposal application response. */\nexport type ApplyRelationshipRepairProposalResponse = typeof ApplyRelationshipRepairProposalResponse.Type\n\nconst readErrors = [\n UnauthorizedApiError,\n ForbiddenApiError,\n NotFoundApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n]\n\nconst releaseSlice = HttpApiEndpoint.get(\"releaseSlice\", \"/api/v1/relationships/releases/:releaseId\", {\n params: { releaseId: ReleaseId },\n query: { environmentId: Schema.optionalKey(EnvironmentId) },\n success: ReleaseDeliveryGraphInspection,\n error: readErrors\n}).middleware(SessionCookieAuth)\n\nconst workspaceEntityProjections = HttpApiEndpoint.get(\n \"workspaceEntityProjections\",\n \"/api/v1/items\",\n {\n query: {\n q: Schema.optionalKey(\n Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(200))\n ),\n owner: Schema.optionalKey(PersonId),\n service: Schema.optionalKey(DeliveryEntityService),\n status: Schema.optionalKey(DeliveryEntityStatusGroup),\n type: Schema.optionalKey(DeliveryEntityKind)\n },\n success: WorkspaceEntityProjectionIndex,\n error: readErrors\n }\n).middleware(SessionCookieAuth)\n\nconst workspaceEntity = HttpApiEndpoint.get(\"workspaceEntity\", \"/api/v1/items/:entityId\", {\n params: { entityId: EntityId },\n success: WorkspaceEntityInspection,\n error: readErrors\n}).middleware(SessionCookieAuth)\n\n/** Human-confirmed governed action against one exact Clockify source revision. */\nexport const SubmitClockifyActionRequest = Schema.TaggedUnion({\n \"correct-association\": {\n expectedRevision: Revision,\n jiraIssueKey: Schema.String.check(\n Schema.isTrimmed(),\n Schema.isPattern(/^[A-Z][A-Z0-9]*-[1-9][0-9]*$/u),\n Schema.isMaxLength(100)\n )\n },\n \"record-approval\": {\n expectedRevision: Revision,\n decision: Schema.Literals([\"approved\", \"rejected\"]),\n rationale: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(1_000))\n }\n})\nexport type SubmitClockifyActionRequest = typeof SubmitClockifyActionRequest.Type\n\n/** Durable identity and resulting lifecycle state of a submitted Clockify action. */\nexport const SubmitClockifyActionResponse = Schema.Struct({\n actionId: GovernedActionId,\n state: GovernedActionState\n})\nexport type SubmitClockifyActionResponse = typeof SubmitClockifyActionResponse.Type\n\nconst submitClockifyAction = HttpApiEndpoint.post(\n \"submitClockifyAction\",\n \"/api/v1/items/:entityId/clockify-actions\",\n {\n params: { entityId: EntityId },\n payload: SubmitClockifyActionRequest,\n success: SubmitClockifyActionResponse,\n error: [\n ...readErrors,\n InvalidRequestApiError,\n ConflictApiError\n ]\n }\n)\n .middleware(SessionCookieAuth)\n .middleware(SessionMutationAuth)\n\nconst relationship = HttpApiEndpoint.get(\"relationship\", \"/api/v1/relationships/:relationshipId\", {\n params: { relationshipId: RelationshipId },\n query: {\n revision: Schema.optionalKey(CanonicalNonNegativeIntegerFromString.pipe(Schema.decodeTo(LedgerRevision)))\n },\n success: DeliveryRelationship,\n error: readErrors\n}).middleware(SessionCookieAuth)\n\nconst repairCandidates = HttpApiEndpoint.get(\n \"repairCandidates\",\n \"/api/v1/relationships/releases/:releaseId/repair-candidates\",\n {\n params: { releaseId: ReleaseId },\n query: { environmentId: Schema.optionalKey(EnvironmentId) },\n success: RelationshipRepairCandidates,\n error: readErrors\n }\n).middleware(SessionCookieAuth)\n\nconst repairProposalDraft = HttpApiEndpoint.get(\n \"repairProposalDraft\",\n \"/api/v1/relationships/releases/:releaseId/repair-candidates/:relationshipId/proposal-draft\",\n {\n params: { releaseId: ReleaseId, relationshipId: RelationshipId },\n query: {\n environmentId: Schema.optionalKey(EnvironmentId),\n revision: CanonicalNonNegativeIntegerFromString.pipe(Schema.decodeTo(LedgerRevision))\n },\n success: RelationshipRepairProposalDraft,\n error: readErrors\n }\n).middleware(SessionCookieAuth)\n\nconst createRepairProposal = HttpApiEndpoint.post(\n \"createRepairProposal\",\n \"/api/v1/relationships/releases/:releaseId/repair-candidates/:relationshipId/proposals\",\n {\n params: { releaseId: ReleaseId, relationshipId: RelationshipId },\n payload: CreateRelationshipRepairProposalRequest,\n success: RelationshipRepairProposal,\n error: [\n ...readErrors,\n InvalidRequestApiError,\n ConflictApiError,\n PayloadTooLargeApiError\n ]\n }\n)\n .middleware(SessionCookieAuth)\n .middleware(SessionMutationAuth)\n\nconst listRepairProposals = HttpApiEndpoint.get(\n \"listRepairProposals\",\n \"/api/v1/relationships/releases/:releaseId/repair-proposals\",\n {\n params: { releaseId: ReleaseId },\n query: {\n environmentId: Schema.optionalKey(EnvironmentId),\n status: Schema.optionalKey(RelationshipRepairProposal.fields.status)\n },\n success: RelationshipRepairProposalList,\n error: readErrors\n }\n).middleware(SessionCookieAuth)\n\nconst getRepairProposal = HttpApiEndpoint.get(\n \"getRepairProposal\",\n \"/api/v1/relationships/repair-proposals/:proposalId\",\n {\n params: { proposalId: RelationshipRepairProposalId },\n success: RelationshipRepairProposal,\n error: readErrors\n }\n).middleware(SessionCookieAuth)\n\nconst reviewRepairProposal = HttpApiEndpoint.post(\n \"reviewRepairProposal\",\n \"/api/v1/relationships/repair-proposals/:proposalId/reviews\",\n {\n params: { proposalId: RelationshipRepairProposalId },\n payload: ReviewRelationshipRepairProposalRequest,\n success: RelationshipRepairProposal,\n error: [\n ...readErrors,\n InvalidRequestApiError,\n ConflictApiError,\n PayloadTooLargeApiError\n ]\n }\n)\n .middleware(SessionCookieAuth)\n .middleware(SessionMutationAuth)\n\nconst applyRepairProposal = HttpApiEndpoint.post(\n \"applyRepairProposal\",\n \"/api/v1/relationships/repair-proposals/:proposalId/applications\",\n {\n params: { proposalId: RelationshipRepairProposalId },\n success: ApplyRelationshipRepairProposalResponse,\n error: [\n ...readErrors,\n InvalidRequestApiError,\n ConflictApiError\n ]\n }\n)\n .middleware(SessionCookieAuth)\n .middleware(SessionMutationAuth)\n\nconst relationshipHistory = HttpApiEndpoint.get(\n \"relationshipHistory\",\n \"/api/v1/relationships/:relationshipId/history\",\n {\n params: { relationshipId: RelationshipId },\n success: RelationshipHistoryInspection,\n error: readErrors\n }\n).middleware(SessionCookieAuth)\n\nconst evidence = HttpApiEndpoint.get(\"evidence\", \"/api/v1/evidence/:evidenceId\", {\n params: { evidenceId: EvidenceId },\n success: EvidenceInspection,\n error: readErrors\n}).middleware(SessionCookieAuth)\n\n/** Authenticated, workspace-safe delivery relationship and evidence inspection. */\nexport class DeliveryGraphApiGroup extends HttpApiGroup.make(\"deliveryGraph\")\n .add(\n workspaceEntityProjections,\n workspaceEntity,\n submitClockifyAction,\n releaseSlice,\n repairCandidates,\n repairProposalDraft,\n createRepairProposal,\n listRepairProposals,\n getRepairProposal,\n reviewRepairProposal,\n applyRepairProposal,\n relationship,\n relationshipHistory,\n evidence\n )\n{}\n","import * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup } from \"effect/unstable/httpapi\"\n\nimport { PluginConnectionId } from \"../domain/identifiers.js\"\nimport { PluginDiffInventoryEntryV1 } from \"../domain/plugins/events.js\"\nimport { Revision, VendorImmutableId } from \"../domain/sourceRevision.js\"\nimport {\n ConflictApiError,\n ForbiddenApiError,\n InvalidRequestApiError,\n NotFoundApiError,\n PayloadTooLargeApiError,\n RateLimitedApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { SessionCookieAuth } from \"./session.js\"\n\nconst MaximumCompleteDiffFiles = 500\n\n/** Lowercase SHA-256 digest of canonical exact-revision diff-file identity. */\nexport const DiffFileAnchor = Schema.String.check(\n Schema.isPattern(/^sha256:[0-9a-f]{64}$/u, { expected: \"a lowercase SHA-256 diff-file anchor\" })\n).pipe(Schema.brand(\"DiffFileAnchor\"))\n\n/** Decoded stable diff-file anchor. */\nexport type DiffFileAnchor = typeof DiffFileAnchor.Type\n\n/** One file from a completely indexed immutable pull-request revision. */\nexport const CompleteDiffInventoryEntry = Schema.Struct({\n ...PluginDiffInventoryEntryV1.fields,\n anchor: DiffFileAnchor\n}).annotate({ identifier: \"CompleteDiffInventoryEntry\" })\n\n/** Decoded complete-inventory entry. */\nexport type CompleteDiffInventoryEntry = typeof CompleteDiffInventoryEntry.Type\n\n/** Complete bounded inventory; `ready` is emitted only after pagination ends. */\nexport const CompleteDiffInventory = Schema.Struct({\n entries: Schema.Array(CompleteDiffInventoryEntry).check(\n Schema.makeFilter((entries) => entries.length <= MaximumCompleteDiffFiles, {\n expected: `at most ${MaximumCompleteDiffFiles} changed files`\n })\n ),\n ready: Schema.Literal(true)\n}).annotate({ identifier: \"CompleteDiffInventory\" })\n\n/** Decoded complete immutable inventory. */\nexport type CompleteDiffInventory = typeof CompleteDiffInventory.Type\n\nconst BoundedOffset = Schema.Int.pipe(\n Schema.check(Schema.isGreaterThanOrEqualTo(0)),\n Schema.check(Schema.isLessThanOrEqualTo(1_048_576))\n)\nconst BoundedLength = Schema.Int.pipe(\n Schema.check(Schema.isBetween({ minimum: 1, maximum: 1_048_576 }))\n)\nconst DiffPath = PluginDiffInventoryEntryV1.fields.path\n\n/** Browser-safe lazy content result for one immutable side and range. */\nexport const CompleteDiffContentRange = Schema.Struct({\n bytesBase64: Schema.NullOr(Schema.String.check(Schema.isMaxLength(1_398_104))),\n totalBytes: Schema.NullOr(Schema.Int.check(Schema.isGreaterThanOrEqualTo(0))),\n unavailableReason: Schema.NullOr(\n Schema.Literals([\"binary\", \"generated\", \"oversized\", \"missing\", \"provider-unavailable\"])\n )\n})\n .check(\n Schema.makeFilter(\n ({ bytesBase64, totalBytes, unavailableReason }) =>\n unavailableReason === null ? bytesBase64 !== null && totalBytes !== null : bytesBase64 === null,\n { expected: \"available bounded content or an explicit unavailable reason\" }\n )\n )\n .annotate({ identifier: \"CompleteDiffContentRange\" })\n\n/** Decoded lazy content response. */\nexport type CompleteDiffContentRange = typeof CompleteDiffContentRange.Type\n\nconst diffReadErrors = [\n InvalidRequestApiError,\n UnauthorizedApiError,\n ForbiddenApiError,\n NotFoundApiError,\n ConflictApiError,\n RateLimitedApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n]\n\nconst inventory = HttpApiEndpoint.get(\"inventory\", \"/:pluginConnectionId/pull-requests/:vendorImmutableId/inventory\", {\n params: Schema.Struct({ pluginConnectionId: PluginConnectionId, vendorImmutableId: VendorImmutableId }),\n query: Schema.Struct({ revision: Revision }),\n success: CompleteDiffInventory,\n error: diffReadErrors\n}).middleware(SessionCookieAuth)\n\nexport const CompleteDiffContentRequest = Schema.Struct({\n revision: Revision,\n anchor: DiffFileAnchor,\n path: DiffPath,\n previousPath: Schema.NullOr(DiffPath),\n status: PluginDiffInventoryEntryV1.fields.status,\n side: Schema.Literals([\"before\", \"after\"]),\n offset: BoundedOffset,\n length: BoundedLength\n}).annotate({ identifier: \"CompleteDiffContentRequest\" })\n\n/** Decoded bounded content-read payload. */\nexport type CompleteDiffContentRequest = typeof CompleteDiffContentRequest.Type\n\nconst content = HttpApiEndpoint.post(\"content\", \"/:pluginConnectionId/pull-requests/:vendorImmutableId/content\", {\n params: Schema.Struct({ pluginConnectionId: PluginConnectionId, vendorImmutableId: VendorImmutableId }),\n payload: CompleteDiffContentRequest,\n success: CompleteDiffContentRange,\n error: [...diffReadErrors, PayloadTooLargeApiError]\n}).middleware(SessionCookieAuth)\n\n/** Authenticated, workspace-scoped, bounded complete-diff reads. */\nexport class DiffApiGroup extends HttpApiGroup.make(\"diff\").add(inventory).add(content).prefix(\"/api/v1/diffs\") {}\n","import * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from \"effect/unstable/httpapi\"\n\nimport { PortfolioInvalidatedEventV1 } from \"../domain/domainEvent.js\"\nimport { EventCursor } from \"../domain/identifiers.js\"\nimport { UtcTimestamp } from \"../domain/utcTimestamp.js\"\nimport {\n ForbiddenApiError,\n InvalidRequestApiError,\n RateLimitedApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { PortfolioSnapshot } from \"./portfolio.js\"\nimport { SessionCookieAuth } from \"./session.js\"\nimport { CanonicalNonNegativeIntegerFromString } from \"./wire.js\"\n\n/** URL/header representation of a nonnegative workspace event cursor. */\nexport const EventCursorFromString = CanonicalNonNegativeIntegerFromString.pipe(Schema.decodeTo(EventCursor))\n\n/** Replay boundary telling a client to replace local state with an authoritative snapshot. */\nexport const StreamResetRequired = Schema.Struct({\n reason: Schema.Literals([\"retention\", \"cursor-ahead\", \"gap\", \"replay-budget\"]),\n requestedCursor: EventCursor,\n headCursor: EventCursor,\n prunedThroughCursor: EventCursor\n}).annotate({ identifier: \"StreamResetRequired\" })\n\n/** Decoded reset instruction carried by the live event stream. */\nexport type StreamResetRequired = typeof StreamResetRequired.Type\n\n/** Keepalive payload that reports the latest durable cursor without advancing EventSource state. */\nexport const StreamHeartbeat = Schema.Struct({\n eventCursor: EventCursor,\n sentAt: UtcTimestamp\n}).annotate({ identifier: \"StreamHeartbeat\" })\n\n/** Decoded keepalive payload carried by the live event stream. */\nexport type StreamHeartbeat = typeof StreamHeartbeat.Type\n\n/** Authoritative portfolio replacement emitted first and after replay reset. */\nexport const PortfolioSnapshotLiveEvent = Schema.Struct({\n id: EventCursorFromString,\n event: Schema.Literal(\"portfolio.snapshot\"),\n data: Schema.fromJsonString(PortfolioSnapshot)\n}).annotate({ identifier: \"PortfolioSnapshotLiveEvent\" })\n\n/** Decoded authoritative portfolio stream event. */\nexport type PortfolioSnapshotLiveEvent = typeof PortfolioSnapshotLiveEvent.Type\n\n/** Durable notification that a browser should refresh its portfolio projection. */\nexport const PortfolioInvalidatedLiveEvent = Schema.Struct({\n id: EventCursorFromString,\n event: Schema.Literal(\"portfolio.invalidated\"),\n data: Schema.fromJsonString(PortfolioInvalidatedEventV1)\n}).annotate({ identifier: \"PortfolioInvalidatedLiveEvent\" })\n\n/** Decoded portfolio invalidation stream event. */\nexport type PortfolioInvalidatedLiveEvent = typeof PortfolioInvalidatedLiveEvent.Type\n\n/** Replay-gap instruction; it deliberately has no SSE ID so it cannot advance resume state. */\nexport const StreamResetRequiredLiveEvent = Schema.Struct({\n id: Schema.optionalKey(Schema.Undefined),\n event: Schema.Literal(\"stream.reset-required\"),\n data: Schema.fromJsonString(StreamResetRequired)\n}).annotate({ identifier: \"StreamResetRequiredLiveEvent\" })\n\n/** Decoded replay-gap stream event. */\nexport type StreamResetRequiredLiveEvent = typeof StreamResetRequiredLiveEvent.Type\n\n/** Keepalive event; it deliberately has no SSE ID so it cannot advance resume state. */\nexport const StreamHeartbeatLiveEvent = Schema.Struct({\n id: Schema.optionalKey(Schema.Undefined),\n event: Schema.Literal(\"stream.heartbeat\"),\n data: Schema.fromJsonString(StreamHeartbeat)\n}).annotate({ identifier: \"StreamHeartbeatLiveEvent\" })\n\n/** Decoded keepalive stream event. */\nexport type StreamHeartbeatLiveEvent = typeof StreamHeartbeatLiveEvent.Type\n\n/** Closed browser-safe union emitted by the authenticated live event stream. */\nexport const ControlCenterLiveEvent = Schema.Union([\n PortfolioSnapshotLiveEvent,\n PortfolioInvalidatedLiveEvent,\n StreamResetRequiredLiveEvent,\n StreamHeartbeatLiveEvent\n]).annotate({ identifier: \"ControlCenterLiveEvent\" })\n\n/** Decoded browser-safe live event. */\nexport type ControlCenterLiveEvent = typeof ControlCenterLiveEvent.Type\n\nconst stream = HttpApiEndpoint.get(\"stream\", \"/api/v1/events\", {\n query: {\n after: Schema.optionalKey(EventCursorFromString)\n },\n headers: {\n \"last-event-id\": Schema.optionalKey(EventCursorFromString)\n },\n success: HttpApiSchema.StreamSse({ events: ControlCenterLiveEvent }),\n error: [\n InvalidRequestApiError,\n UnauthorizedApiError,\n ForbiddenApiError,\n RateLimitedApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n ]\n}).middleware(SessionCookieAuth)\n\n/** Authenticated resumable stream of workspace-local Control Center events. */\nexport class LiveEventsApiGroup extends HttpApiGroup.make(\"liveEvents\").add(stream) {}\n","import * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from \"effect/unstable/httpapi\"\n\nimport {\n CorrelationId,\n ForbiddenApiError,\n NotFoundApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { SessionCookieAuth } from \"./session.js\"\nimport { CanonicalNonNegativeIntegerFromString } from \"./wire.js\"\n\n/** Workspace-scoped opaque media reference that reveals neither provider URLs nor local storage keys. */\nexport const OpaqueMediaId = Schema.String.check(\n Schema.isPattern(/^media_[0-9a-f]{64}$/u, { expected: \"an opaque SHA-256 media identifier\" })\n).pipe(Schema.brand(\"OpaqueMediaId\"))\n\n/** Decoded opaque media identifier. */\nexport type OpaqueMediaId = typeof OpaqueMediaId.Type\n\n/** Closed set of inert raster formats accepted at the authenticated media boundary. */\nexport const SafeMediaContentType = Schema.Literals([\n \"image/avif\",\n \"image/jpeg\",\n \"image/png\",\n \"image/webp\"\n])\n\n/** Decoded safe raster media content type. */\nexport type SafeMediaContentType = typeof SafeMediaContentType.Type\n\n/** Security and metadata headers required on authenticated opaque media responses. */\nexport const MediaResponseHeaders = Schema.Struct({\n \"x-correlation-id\": CorrelationId,\n \"content-type\": SafeMediaContentType,\n \"content-length\": CanonicalNonNegativeIntegerFromString,\n \"cache-control\": Schema.Literal(\"private, no-store\"),\n \"x-content-type-options\": Schema.Literal(\"nosniff\")\n}).annotate({ identifier: \"MediaResponseHeaders\" })\n\n/** Decoded opaque media response headers. */\nexport type MediaResponseHeaders = typeof MediaResponseHeaders.Type\n\nconst read = HttpApiEndpoint.get(\"read\", \"/:mediaId\", {\n params: Schema.Struct({ mediaId: OpaqueMediaId }),\n success: HttpApiSchema.StreamUint8Array({ contentType: \"application/octet-stream\" }),\n error: [\n UnauthorizedApiError,\n ForbiddenApiError,\n NotFoundApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n ]\n}).middleware(SessionCookieAuth)\n\n/** Authenticated, workspace-resolved opaque media contract. */\nexport class MediaApiGroup extends HttpApiGroup.make(\"media\").add(read).prefix(\"/api/v1/media\") {}\n","import * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from \"effect/unstable/httpapi\"\n\nimport { EntityId, PersonId, ShareId, WorkspaceId } from \"../domain/identifiers.js\"\nimport { UtcTimestamp } from \"../domain/utcTimestamp.js\"\nimport { InspectedEntityProjection } from \"./deliveryGraph.js\"\nimport {\n ConflictApiError,\n ForbiddenApiError,\n InvalidRequestApiError,\n NotFoundApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { SessionCookieAuth, SessionMutationAuth } from \"./session.js\"\n\n/** Owner-authored intent for one exact entity share grant. */\nexport const CreateAuthorizedShareRequest = Schema.Struct({\n shareId: ShareId,\n entityId: EntityId,\n granteePersonId: PersonId,\n expiresAt: UtcTimestamp\n})\n\n/** Decoded authorized-share creation request. */\nexport type CreateAuthorizedShareRequest = typeof CreateAuthorizedShareRequest.Type\n\n/** Secret-free grant metadata returned to authenticated callers. */\nexport const AuthorizedShareSummary = Schema.Struct({\n shareId: ShareId,\n entityId: EntityId,\n granteePersonId: PersonId,\n createdAt: UtcTimestamp,\n expiresAt: UtcTimestamp,\n revokedAt: Schema.NullOr(UtcTimestamp)\n}).annotate({ identifier: \"AuthorizedShareSummary\" })\n\n/** Decoded secret-free authorized-share metadata. */\nexport type AuthorizedShareSummary = typeof AuthorizedShareSummary.Type\n\n/** Exact current entity projection resolved without relationships or release context. */\nexport const AuthorizedShareResolution = Schema.Struct({\n share: AuthorizedShareSummary,\n item: InspectedEntityProjection\n}).annotate({ identifier: \"AuthorizedShareResolution\" })\n\n/** Decoded authorized-share resolution. */\nexport type AuthorizedShareResolution = typeof AuthorizedShareResolution.Type\n\nconst authenticatedErrors = [\n UnauthorizedApiError,\n ForbiddenApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n]\n\nconst create = HttpApiEndpoint.post(\"create\", \"/\", {\n payload: CreateAuthorizedShareRequest,\n success: AuthorizedShareSummary,\n error: [...authenticatedErrors, InvalidRequestApiError, NotFoundApiError, ConflictApiError]\n})\n .middleware(SessionCookieAuth)\n .middleware(SessionMutationAuth)\n\nconst resolve = HttpApiEndpoint.get(\"resolve\", \"/:workspaceId/:shareId\", {\n params: Schema.Struct({ workspaceId: WorkspaceId, shareId: ShareId }),\n success: AuthorizedShareResolution,\n error: [...authenticatedErrors, NotFoundApiError]\n}).middleware(SessionCookieAuth)\n\nconst revoke = HttpApiEndpoint.delete(\"revoke\", \"/:workspaceId/:shareId\", {\n params: Schema.Struct({ workspaceId: WorkspaceId, shareId: ShareId }),\n success: HttpApiSchema.NoContent,\n error: [...authenticatedErrors, NotFoundApiError]\n})\n .middleware(SessionCookieAuth)\n .middleware(SessionMutationAuth)\n\n/** Exact-scope authenticated entity-share contract. */\nexport class SharesApiGroup extends HttpApiGroup.make(\"shares\")\n .add(create, resolve, revoke)\n .prefix(\"/api/v1/shares\")\n{}\n","import * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from \"effect/unstable/httpapi\"\n\nimport { TimelineActorKind, TimelineCursor, TimelineEventDetail, TimelinePage } from \"../domain/timeline.js\"\nimport { UtcTimestamp } from \"../domain/utcTimestamp.js\"\nimport {\n ForbiddenApiError,\n InvalidRequestApiError,\n NotFoundApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { SessionCookieAuth } from \"./session.js\"\nimport { CanonicalNonNegativeIntegerFromString } from \"./wire.js\"\n\nconst TimelinePageSizeFromString = CanonicalNonNegativeIntegerFromString.pipe(\n Schema.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(100))\n)\n\n/** Hard caller-selected event bound for one Timeline download. */\nexport const TimelineExportLimitFromString = CanonicalNonNegativeIntegerFromString.pipe(\n Schema.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(1_000))\n)\n\n/** Content types emitted by the bounded Timeline download endpoints. */\nexport const TimelineExportContentType = Schema.Literals([\n \"application/json; charset=utf-8\",\n \"text/csv; charset=utf-8\"\n])\n\n/** Security, download, and truncation headers on a Timeline export response. */\nexport const TimelineExportResponseHeaders = Schema.Struct({\n \"cache-control\": Schema.Literal(\"private, no-store\"),\n \"content-disposition\": Schema.Literals([\n \"attachment; filename=\\\"timeline-export.csv\\\"\",\n \"attachment; filename=\\\"timeline-export.json\\\"\"\n ]),\n \"content-type\": TimelineExportContentType,\n \"x-content-type-options\": Schema.Literal(\"nosniff\"),\n \"x-timeline-export-count\": CanonicalNonNegativeIntegerFromString,\n \"x-timeline-export-limit\": TimelineExportLimitFromString,\n \"x-timeline-export-truncated\": Schema.Literals([\"false\", \"true\"])\n}).annotate({ identifier: \"TimelineExportResponseHeaders\" })\n\nconst exportQuery = {\n actor: Schema.optionalKey(TimelineActorKind),\n from: Schema.optionalKey(UtcTimestamp),\n limit: TimelineExportLimitFromString,\n to: Schema.optionalKey(UtcTimestamp)\n}\n\nconst timelineErrors: readonly [\n typeof InvalidRequestApiError,\n typeof UnauthorizedApiError,\n typeof ForbiddenApiError,\n typeof RequestTimedOutApiError,\n typeof ServiceUnavailableApiError\n] = [\n InvalidRequestApiError,\n UnauthorizedApiError,\n ForbiddenApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n]\n\nconst page = HttpApiEndpoint.get(\"page\", \"/api/v1/timeline\", {\n query: {\n actor: Schema.optionalKey(TimelineActorKind),\n beforeEventKey: Schema.optionalKey(Schema.String.check(Schema.isNonEmpty(), Schema.isMaxLength(1_024))),\n beforeOccurredAt: Schema.optionalKey(UtcTimestamp),\n from: Schema.optionalKey(UtcTimestamp),\n limit: Schema.optionalKey(TimelinePageSizeFromString),\n to: Schema.optionalKey(UtcTimestamp)\n },\n success: TimelinePage,\n error: timelineErrors\n}).middleware(SessionCookieAuth)\n\nconst detail = HttpApiEndpoint.get(\"detail\", \"/api/v1/timeline/events/:eventKey\", {\n params: { eventKey: TimelineCursor.fields.eventKey },\n success: TimelineEventDetail,\n error: [\n InvalidRequestApiError,\n UnauthorizedApiError,\n ForbiddenApiError,\n NotFoundApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n ]\n}).middleware(SessionCookieAuth)\n\nconst exportCsv = HttpApiEndpoint.get(\"exportCsv\", \"/api/v1/timeline/export.csv\", {\n query: exportQuery,\n success: HttpApiSchema.StreamUint8Array({ contentType: \"text/csv; charset=utf-8\" }),\n error: timelineErrors\n}).middleware(SessionCookieAuth)\n\nconst exportJson = HttpApiEndpoint.get(\"exportJson\", \"/api/v1/timeline/export.json\", {\n query: exportQuery,\n success: HttpApiSchema.StreamUint8Array({ contentType: \"application/json; charset=utf-8\" }),\n error: timelineErrors\n}).middleware(SessionCookieAuth)\n\n/** Authenticated, workspace-scoped durable activity Timeline. */\nexport class TimelineApiGroup extends HttpApiGroup.make(\"timeline\")\n .add(page)\n .add(detail)\n .add(exportCsv)\n .add(exportJson)\n{}\n","import * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup } from \"effect/unstable/httpapi\"\n\nimport { PersonId, WorkspaceId, WorkspaceSettingsMutationId } from \"../domain/identifiers.js\"\nimport { UtcTimestamp } from \"../domain/utcTimestamp.js\"\nimport { GovernedWorkspaceSettingsSections, WorkspaceSettingsV1 } from \"../domain/workspaceSettings.js\"\nimport {\n ConflictApiError,\n ForbiddenApiError,\n InvalidRequestApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { SessionCookieAuth, SessionMutationAuth } from \"./session.js\"\n\n/** Positive optimistic-concurrency revision of the workspace settings aggregate. */\nexport const WorkspaceSettingsRevision = Schema.Int.check(\n Schema.isGreaterThan(0)\n).pipe(Schema.brand(\"WorkspaceSettingsRevision\"))\n\n/** Decoded workspace-settings revision. */\nexport type WorkspaceSettingsRevision = typeof WorkspaceSettingsRevision.Type\n\n/** Strong browser-visible validator for one exact settings revision. */\nexport const WorkspaceSettingsEtag = Schema.String.check(\n Schema.isPattern(/^\"workspace-settings-v1-[1-9][0-9]*\"$/u, {\n expected: \"a strong version-one workspace-settings ETag\"\n })\n).pipe(Schema.brand(\"WorkspaceSettingsEtag\"))\n\n/** Decoded workspace-settings ETag. */\nexport type WorkspaceSettingsEtag = typeof WorkspaceSettingsEtag.Type\n\n/** Construct the strong validator returned with one settings revision. */\nexport const workspaceSettingsEtag = (\n revision: WorkspaceSettingsRevision\n): WorkspaceSettingsEtag => WorkspaceSettingsEtag.make(`\"workspace-settings-v1-${String(revision)}\"`)\n\n/** Server-authoritative settings document returned to authenticated workspace sessions. */\nexport const WorkspaceSettingsReadModel = Schema.Struct({\n workspaceId: WorkspaceId,\n revision: WorkspaceSettingsRevision,\n etag: WorkspaceSettingsEtag,\n settings: WorkspaceSettingsV1,\n createdAt: UtcTimestamp,\n updatedAt: UtcTimestamp,\n updatedByPersonId: Schema.NullOr(PersonId)\n}).annotate({ identifier: \"WorkspaceSettingsReadModel\" })\n\n/** Decoded workspace-settings read model. */\nexport type WorkspaceSettingsReadModel = typeof WorkspaceSettingsReadModel.Type\n\n/** Safe workspace presentation defaults shared with every authenticated collaborator. */\nexport const WorkspacePresentationReadModel = Schema.Struct({\n workspaceId: WorkspaceId,\n revision: WorkspaceSettingsRevision,\n presentation: WorkspaceSettingsV1.fields.presentation\n}).annotate({ identifier: \"WorkspacePresentationReadModel\" })\n\n/** Decoded collaborator-safe workspace presentation projection. */\nexport type WorkspacePresentationReadModel = typeof WorkspacePresentationReadModel.Type\n\n/** Complete compare-and-swap replacement of one workspace settings document. */\nexport const UpdateWorkspaceSettingsRequest = Schema.Struct({\n mutationId: WorkspaceSettingsMutationId,\n expectedRevision: WorkspaceSettingsRevision,\n settings: WorkspaceSettingsV1,\n acknowledgedGovernedSections: GovernedWorkspaceSettingsSections\n}).annotate({ identifier: \"UpdateWorkspaceSettingsRequest\" })\n\n/** Decoded workspace-settings replacement request. */\nexport type UpdateWorkspaceSettingsRequest = typeof UpdateWorkspaceSettingsRequest.Type\n\nconst authenticatedErrors = [\n UnauthorizedApiError,\n ForbiddenApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n]\n\nconst read = HttpApiEndpoint.get(\"read\", \"/\", {\n success: WorkspaceSettingsReadModel,\n error: authenticatedErrors\n}).middleware(SessionCookieAuth)\n\nconst readPresentation = HttpApiEndpoint.get(\"readPresentation\", \"/presentation\", {\n success: WorkspacePresentationReadModel,\n error: authenticatedErrors\n}).middleware(SessionCookieAuth)\n\nconst update = HttpApiEndpoint.put(\"update\", \"/\", {\n payload: UpdateWorkspaceSettingsRequest,\n success: WorkspaceSettingsReadModel,\n error: [...authenticatedErrors, InvalidRequestApiError, ConflictApiError]\n})\n .middleware(SessionCookieAuth)\n .middleware(SessionMutationAuth)\n\n/** Authenticated workspace settings read and concurrency-safe mutation contract. */\nexport class WorkspaceSettingsApiGroup extends HttpApiGroup.make(\"workspaceSettings\")\n .add(read, readPresentation, update)\n .prefix(\"/api/v1/settings\")\n{}\n","import { HttpApi } from \"effect/unstable/httpapi\"\n\nimport { AgentApiGroup } from \"./agent.js\"\nimport { CodePipelineApiGroup } from \"./codepipeline.js\"\nimport { DeliveryGraphApiGroup } from \"./deliveryGraph.js\"\nimport { DiffApiGroup } from \"./diff.js\"\nimport { LiveEventsApiGroup } from \"./liveEvents.js\"\nimport { MediaApiGroup } from \"./media.js\"\nimport { PluginsApiGroup } from \"./plugins.js\"\nimport { PortfolioApiGroup } from \"./portfolio.js\"\nimport { SessionApiGroup } from \"./session.js\"\nimport { SharesApiGroup } from \"./shares.js\"\nimport { TimelineApiGroup } from \"./timeline.js\"\nimport { WorkspaceSettingsApiGroup } from \"./workspaceSettings.js\"\n\n/** Browser-safe authenticated HTTP contract shared by the generated client and server implementation. */\nexport class ControlCenterApi extends HttpApi.make(\"ControlCenterApi\")\n .add(SessionApiGroup)\n .add(SharesApiGroup)\n .add(PluginsApiGroup)\n .add(PortfolioApiGroup)\n .add(DeliveryGraphApiGroup)\n .add(DiffApiGroup)\n .add(CodePipelineApiGroup)\n .add(MediaApiGroup)\n .add(LiveEventsApiGroup)\n .add(TimelineApiGroup)\n .add(WorkspaceSettingsApiGroup)\n .add(AgentApiGroup)\n{}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"controlCenterApi-5j3gOXgE.js","names":[],"sources":["../../../src/api/codepipeline.ts","../../../src/api/deliveryGraph.ts","../../../src/api/diff.ts","../../../src/api/liveEvents.ts","../../../src/api/media.ts","../../../src/api/shares.ts","../../../src/api/timeline.ts","../../../src/api/workspaceSettings.ts","../../../src/api/controlCenterApi.ts"],"sourcesContent":["import * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from \"effect/unstable/httpapi\"\n\nimport { PluginConnectionId } from \"../domain/identifiers.js\"\nimport {\n PluginPipelineArtifactRangeRequestV1,\n PluginPipelineLogPageRequestV1,\n PluginPipelineLogPageV1\n} from \"../domain/plugins/index.js\"\nimport {\n ConflictApiError,\n ForbiddenApiError,\n NotFoundApiError,\n RateLimitedApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { SessionCookieAuth } from \"./session.js\"\n\n/** Workspace-scoped request for one bounded CodePipeline action log page. */\nexport const CodePipelineLogReadRequest = Schema.Struct({\n pluginConnectionId: PluginConnectionId,\n request: PluginPipelineLogPageRequestV1\n})\n\n/** Workspace-scoped request for one bounded CodePipeline action artifact range. */\nexport const CodePipelineArtifactReadRequest = Schema.Struct({\n pluginConnectionId: PluginConnectionId,\n request: PluginPipelineArtifactRangeRequestV1\n})\n\nconst readErrors = [\n UnauthorizedApiError,\n ForbiddenApiError,\n NotFoundApiError,\n ConflictApiError,\n RateLimitedApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n]\n\nconst logs = HttpApiEndpoint.post(\"logs\", \"/logs\", {\n payload: CodePipelineLogReadRequest,\n success: PluginPipelineLogPageV1,\n error: readErrors\n}).middleware(SessionCookieAuth)\n\nconst artifactStream = HttpApiSchema.StreamUint8Array({ contentType: \"application/octet-stream\" })\nconst artifact = HttpApiEndpoint.post(\"artifact\", \"/artifact\", {\n payload: CodePipelineArtifactReadRequest,\n success: [\n artifactStream,\n artifactStream.pipe(HttpApiSchema.status(206)),\n artifactStream.pipe(HttpApiSchema.status(416))\n ],\n error: readErrors\n}).middleware(SessionCookieAuth)\n\n/** Authenticated workspace-scoped CodePipeline evidence proxy. */\nexport class CodePipelineApiGroup extends HttpApiGroup.make(\"codepipeline\")\n .add(logs)\n .add(artifact)\n .prefix(\"/api/v1/codepipeline\")\n{}\n","import * as Effect from \"effect/Effect\"\nimport * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup } from \"effect/unstable/httpapi\"\n\nimport { PersonSourceIdentity, Role } from \"../domain/actors.js\"\nimport {\n DeliveryEntityKind,\n DeliveryEntityProjection,\n DeliveryEntityService,\n DeliveryEntityStatusGroup,\n DeliveryNode,\n DeliveryRelationship,\n EvidenceClaim,\n EvidenceItem,\n LedgerRevision\n} from \"../domain/deliveryGraph.js\"\nimport { Freshness } from \"../domain/freshness.js\"\nimport { GovernedActionState } from \"../domain/governedAction/index.js\"\nimport {\n EntityId,\n EnvironmentId,\n EvidenceId,\n GovernedActionId,\n PersonId,\n RelationshipId,\n RelationshipRepairProposalId,\n RelationshipRepairReviewId,\n ReleaseId\n} from \"../domain/identifiers.js\"\nimport {\n RelationshipRepairApplication,\n RelationshipRepairDisposition,\n RelationshipRepairProposal,\n RelationshipRepairRationale,\n RelationshipRepairReviewDecision\n} from \"../domain/relationshipRepair.js\"\nimport { Revision, SourceRevision } from \"../domain/sourceRevision.js\"\nimport { TimelineEvent } from \"../domain/timeline.js\"\nimport { UtcTimestamp } from \"../domain/utcTimestamp.js\"\nimport {\n ConflictApiError,\n ForbiddenApiError,\n InvalidRequestApiError,\n NotFoundApiError,\n PayloadTooLargeApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { SessionCookieAuth, SessionMutationAuth } from \"./session.js\"\nimport { CanonicalNonNegativeIntegerFromString } from \"./wire.js\"\n\nexport const MAXIMUM_RELEASE_SLICE_RECORDS = 500\nexport const MAXIMUM_WORKSPACE_ENTITY_PROJECTIONS = 500\nexport const MAXIMUM_WORKSPACE_ENTITY_RELEASES = 500\nexport const MAXIMUM_WORKSPACE_ENTITY_OWNERS = 20\nexport const MAXIMUM_WORKSPACE_OWNER_OPTIONS = 200\nexport const MAXIMUM_WORKSPACE_OWNER_ROLES = 16\nexport const MAXIMUM_WORKSPACE_ENTITY_RELATIONSHIPS = 100\nexport const MAXIMUM_WORKSPACE_ENTITY_ACTIVITY = 20\nconst MAXIMUM_RELATIONSHIP_HISTORY = 200\nconst MAXIMUM_EVIDENCE_CLAIMS = 200\nexport const MAXIMUM_REPAIR_PROPOSALS = 128\n\nconst boundedArray = <T, E, RD, RE>(schema: Schema.Codec<T, E, RD, RE>, maximum: number) =>\n Schema.Array(schema).check(Schema.isMaxLength(maximum))\n\n/** One persisted entity projection with its ledger observation time. */\nexport const InspectedEntityProjection = Schema.Struct({\n projection: DeliveryEntityProjection,\n recordedAt: UtcTimestamp\n}).annotate({ identifier: \"InspectedEntityProjection\" })\n\n/** Bounded deterministic graph prefix; `truncated` explicitly reports incomplete material. */\nexport const ReleaseDeliveryGraphInspection = Schema.Struct({\n releaseId: ReleaseId,\n environmentId: Schema.NullOr(EnvironmentId),\n truncated: Schema.Boolean,\n nodes: boundedArray(DeliveryNode, MAXIMUM_RELEASE_SLICE_RECORDS),\n entityProjections: boundedArray(InspectedEntityProjection, MAXIMUM_RELEASE_SLICE_RECORDS),\n relationships: boundedArray(DeliveryRelationship, MAXIMUM_RELEASE_SLICE_RECORDS),\n evidenceClaims: boundedArray(EvidenceClaim, MAXIMUM_RELEASE_SLICE_RECORDS),\n evidenceItems: boundedArray(EvidenceItem, MAXIMUM_RELEASE_SLICE_RECORDS)\n}).annotate({ identifier: \"ReleaseDeliveryGraphInspection\" })\n\n/** Decoded release delivery-graph inspection. */\nexport type ReleaseDeliveryGraphInspection = typeof ReleaseDeliveryGraphInspection.Type\n\nconst WorkspaceEntityReleaseIds = Schema.Array(ReleaseId).check(\n Schema.isUnique(),\n Schema.isMaxLength(MAXIMUM_WORKSPACE_ENTITY_RELEASES),\n Schema.makeFilter(\n (releaseIds) =>\n releaseIds.every((releaseId, index) => {\n const previous = releaseIds[index - 1]\n return index === 0 || (previous !== undefined && previous < releaseId)\n }),\n { expected: \"sorted workspace entity release identifiers\" }\n )\n)\n\n/** Compact canonical human identity assigned to one current workspace entity. */\nexport const WorkspaceEntityOwner = Schema.Struct({\n avatarFallback: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(4)),\n displayName: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(200)),\n personId: PersonId,\n roles: boundedArray(Role, MAXIMUM_WORKSPACE_OWNER_ROLES).check(Schema.isMinLength(1)),\n sourceIdentities: Schema.optionalKey(boundedArray(PersonSourceIdentity, MAXIMUM_WORKSPACE_OWNER_ROLES))\n}).annotate({ identifier: \"WorkspaceEntityOwner\" })\n\n/** Decoded entity owner identity. */\nexport type WorkspaceEntityOwner = typeof WorkspaceEntityOwner.Type\n\nconst WorkspaceEntityOwners = boundedArray(WorkspaceEntityOwner, MAXIMUM_WORKSPACE_ENTITY_OWNERS)\nconst WorkspaceOwnerOptions = boundedArray(WorkspaceEntityOwner, MAXIMUM_WORKSPACE_OWNER_OPTIONS)\n\n/** One current workspace entity projection and every bounded current release membership. */\nexport const WorkspaceEntityProjection = Schema.Struct({\n canonicalReleaseId: Schema.NullOr(ReleaseId),\n owners: WorkspaceEntityOwners,\n ownersTruncated: Schema.Boolean,\n releaseIds: WorkspaceEntityReleaseIds,\n releaseMembershipsTruncated: Schema.Boolean,\n projection: DeliveryEntityProjection,\n recordedAt: UtcTimestamp\n}).check(\n Schema.makeFilter(\n ({ canonicalReleaseId, releaseIds }) => canonicalReleaseId === (releaseIds[0] ?? null),\n { expected: \"canonical release identifier to be the first current release membership\" }\n ),\n Schema.makeFilter(\n ({ releaseIds, releaseMembershipsTruncated }) =>\n !releaseMembershipsTruncated || releaseIds.length === MAXIMUM_WORKSPACE_ENTITY_RELEASES,\n { expected: \"truncated workspace release memberships to contain the complete bounded prefix\" }\n ),\n Schema.makeFilter(\n ({ owners, ownersTruncated }) => !ownersTruncated || owners.length === MAXIMUM_WORKSPACE_ENTITY_OWNERS,\n { expected: \"truncated workspace owners to contain the complete bounded prefix\" }\n )\n).annotate({ identifier: \"WorkspaceEntityProjection\" })\n\n/** Bounded workspace-wide index of current present normalized entities. */\nexport const WorkspaceEntityProjectionIndex = Schema.Struct({\n matchedCount: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),\n ownerOptions: WorkspaceOwnerOptions,\n ownerOptionsTruncated: Schema.Boolean,\n totalCount: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),\n truncated: Schema.Boolean,\n items: boundedArray(WorkspaceEntityProjection, MAXIMUM_WORKSPACE_ENTITY_PROJECTIONS)\n}).check(\n Schema.makeFilter(\n ({ ownerOptions, ownerOptionsTruncated }) =>\n !ownerOptionsTruncated || ownerOptions.length === MAXIMUM_WORKSPACE_OWNER_OPTIONS,\n { expected: \"truncated workspace owner options to contain the complete bounded prefix\" }\n )\n).annotate({ identifier: \"WorkspaceEntityProjectionIndex\" })\n\n/** Decoded workspace-wide current entity index. */\nexport type WorkspaceEntityProjectionIndex = typeof WorkspaceEntityProjectionIndex.Type\n\n/** Complete bounded graph closure surrounding one exact normalized entity. */\nexport const WorkspaceEntityGraph = Schema.Struct({\n truncated: Schema.Boolean,\n nodes: boundedArray(DeliveryNode, MAXIMUM_WORKSPACE_ENTITY_RELATIONSHIPS * 2),\n relatedEntityProjections: boundedArray(\n InspectedEntityProjection,\n MAXIMUM_WORKSPACE_ENTITY_RELATIONSHIPS\n ),\n relationships: boundedArray(DeliveryRelationship, MAXIMUM_WORKSPACE_ENTITY_RELATIONSHIPS),\n evidenceClaims: boundedArray(EvidenceClaim, MAXIMUM_WORKSPACE_ENTITY_RELATIONSHIPS * 2),\n evidenceItems: boundedArray(EvidenceItem, MAXIMUM_WORKSPACE_ENTITY_RELATIONSHIPS * 2)\n}).annotate({ identifier: \"WorkspaceEntityGraph\" })\n\n/** Decoded exact entity graph closure. */\nexport type WorkspaceEntityGraph = typeof WorkspaceEntityGraph.Type\n\n/** Bounded attributable activity for one exact normalized entity. */\nexport const WorkspaceEntityActivity = Schema.Struct({\n truncated: Schema.Boolean,\n events: boundedArray(TimelineEvent, MAXIMUM_WORKSPACE_ENTITY_ACTIVITY)\n}).annotate({ identifier: \"WorkspaceEntityActivity\" })\n\n/** Decoded exact entity activity. */\nexport type WorkspaceEntityActivity = typeof WorkspaceEntityActivity.Type\n\n/** Current revision-scoped Control Center approval for a Clockify entry. */\nexport const ClockifyApproval = Schema.Struct({\n actionId: GovernedActionId,\n decision: Schema.Literals([\"approved\", \"rejected\"]),\n rationale: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(1_000)),\n decidedAt: UtcTimestamp\n}).annotate({ identifier: \"ClockifyApproval\" })\n\n/** Decoded browser-safe Clockify approval projection. */\nexport type ClockifyApproval = typeof ClockifyApproval.Type\n\n/** Canonical provider-neutral full-page read model for one workspace entity. */\nexport const WorkspaceEntityInspection = Schema.Struct({\n entity: WorkspaceEntityProjection,\n source: SourceRevision,\n isSourceCurrent: Schema.Boolean,\n sourceActionsAvailable: Schema.Boolean.pipe(\n Schema.withDecodingDefaultTypeKey(Effect.succeed(false))\n ),\n freshness: Schema.NullOr(Freshness),\n clockifyApproval: Schema.NullOr(ClockifyApproval).pipe(\n Schema.withDecodingDefaultTypeKey(Effect.succeed(null))\n ),\n graph: WorkspaceEntityGraph,\n activity: WorkspaceEntityActivity\n}).annotate({ identifier: \"WorkspaceEntityInspection\" })\n\n/** Decoded canonical workspace entity read model. */\nexport type WorkspaceEntityInspection = typeof WorkspaceEntityInspection.Type\n\n/** Bounded immutable lifecycle history for one relationship, newest first. */\nexport const RelationshipHistoryInspection = Schema.Struct({\n relationshipId: RelationshipId,\n revisions: boundedArray(DeliveryRelationship, MAXIMUM_RELATIONSHIP_HISTORY)\n}).annotate({ identifier: \"RelationshipHistoryInspection\" })\n\n/** Decoded relationship lifecycle history. */\nexport type RelationshipHistoryInspection = typeof RelationshipHistoryInspection.Type\n\n/** One immutable evidence item and every bounded claim attributed to it. */\nexport const EvidenceInspection = Schema.Struct({\n evidence: EvidenceItem,\n claims: boundedArray(EvidenceClaim, MAXIMUM_EVIDENCE_CLAIMS)\n}).annotate({ identifier: \"EvidenceInspection\" })\n\n/** Decoded evidence inspection. */\nexport type EvidenceInspection = typeof EvidenceInspection.Type\n\n/** Read-only repair suggestion derived from one current incomplete relationship. */\nexport const RelationshipRepairCandidate = Schema.Struct({\n relationship: DeliveryRelationship,\n suggestedDisposition: Schema.Literals([\"link\", \"verify\", \"reject\"]),\n explanation: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(1_000)),\n impact: Schema.Struct({\n releaseId: ReleaseId,\n environmentId: Schema.NullOr(EnvironmentId)\n }),\n requiredPermission: Schema.Literal(\"workspace-owner\")\n}).annotate({ identifier: \"RelationshipRepairCandidate\" })\n\n/** Decoded read-only relationship repair suggestion. */\nexport type RelationshipRepairCandidate = typeof RelationshipRepairCandidate.Type\n\n/** Bounded candidate discovery result; discovery never mutates the relationship ledger. */\nexport const RelationshipRepairCandidates = Schema.Struct({\n releaseId: ReleaseId,\n environmentId: Schema.NullOr(EnvironmentId),\n truncated: Schema.Boolean,\n candidates: boundedArray(RelationshipRepairCandidate, MAXIMUM_RELEASE_SLICE_RECORDS)\n}).annotate({ identifier: \"RelationshipRepairCandidates\" })\n\n/** Decoded relationship repair candidate discovery result. */\nexport type RelationshipRepairCandidates = typeof RelationshipRepairCandidates.Type\n\n/** Non-mutating proposal input with the optimistic precondition required by a future apply step. */\nexport const RelationshipRepairProposalDraft = Schema.Struct({\n candidate: RelationshipRepairCandidate,\n precondition: Schema.Struct({\n relationshipId: RelationshipId,\n expectedRevision: LedgerRevision\n }),\n proposal: Schema.Struct({\n disposition: Schema.Literals([\"link\", \"verify\", \"reject\"]),\n rationale: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(1_000))\n })\n}).annotate({ identifier: \"RelationshipRepairProposalDraft\" })\n\n/** Decoded read-only relationship repair proposal draft. */\nexport type RelationshipRepairProposalDraft = typeof RelationshipRepairProposalDraft.Type\n\n/** Idempotent intent for creating a durable proposal from one exact repair candidate. */\nexport const CreateRelationshipRepairProposalRequest = Schema.Struct({\n proposalId: RelationshipRepairProposal.fields.proposalId,\n environmentId: RelationshipRepairProposal.fields.environmentId,\n expectedRevision: RelationshipRepairProposal.fields.expectedRevision,\n disposition: RelationshipRepairDisposition,\n rationale: RelationshipRepairRationale\n}).annotate({ identifier: \"CreateRelationshipRepairProposalRequest\" })\n\n/** Decoded relationship-repair proposal creation request. */\nexport type CreateRelationshipRepairProposalRequest = typeof CreateRelationshipRepairProposalRequest.Type\n\n/** Bounded newest-first proposal page for one release/environment scope. */\nexport const RelationshipRepairProposalList = Schema.Struct({\n releaseId: ReleaseId,\n environmentId: Schema.NullOr(EnvironmentId),\n status: Schema.NullOr(RelationshipRepairProposal.fields.status),\n truncated: Schema.Boolean,\n proposals: boundedArray(RelationshipRepairProposal, MAXIMUM_REPAIR_PROPOSALS),\n applications: boundedArray(RelationshipRepairApplication, MAXIMUM_REPAIR_PROPOSALS)\n}).annotate({ identifier: \"RelationshipRepairProposalList\" })\n\n/** Decoded bounded relationship-repair proposal page. */\nexport type RelationshipRepairProposalList = typeof RelationshipRepairProposalList.Type\n\n/** Idempotent immutable review command for one pending proposal. */\nexport const ReviewRelationshipRepairProposalRequest = Schema.Struct({\n reviewId: RelationshipRepairReviewId,\n decision: RelationshipRepairReviewDecision,\n rationale: RelationshipRepairRationale\n}).annotate({ identifier: \"ReviewRelationshipRepairProposalRequest\" })\n\n/** Decoded relationship-repair review request. */\nexport type ReviewRelationshipRepairProposalRequest = typeof ReviewRelationshipRepairProposalRequest.Type\n\n/** Applied proposal together with the immutable relationship revision it appended. */\nexport const ApplyRelationshipRepairProposalResponse = Schema.Struct({\n application: RelationshipRepairApplication,\n relationship: DeliveryRelationship\n}).annotate({ identifier: \"ApplyRelationshipRepairProposalResponse\" })\n\n/** Decoded approved-proposal application response. */\nexport type ApplyRelationshipRepairProposalResponse = typeof ApplyRelationshipRepairProposalResponse.Type\n\nconst readErrors = [\n UnauthorizedApiError,\n ForbiddenApiError,\n NotFoundApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n]\n\nconst releaseSlice = HttpApiEndpoint.get(\"releaseSlice\", \"/api/v1/relationships/releases/:releaseId\", {\n params: { releaseId: ReleaseId },\n query: { environmentId: Schema.optionalKey(EnvironmentId) },\n success: ReleaseDeliveryGraphInspection,\n error: readErrors\n}).middleware(SessionCookieAuth)\n\nconst workspaceEntityProjections = HttpApiEndpoint.get(\n \"workspaceEntityProjections\",\n \"/api/v1/items\",\n {\n query: {\n q: Schema.optionalKey(\n Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(200))\n ),\n owner: Schema.optionalKey(PersonId),\n service: Schema.optionalKey(DeliveryEntityService),\n status: Schema.optionalKey(DeliveryEntityStatusGroup),\n type: Schema.optionalKey(DeliveryEntityKind)\n },\n success: WorkspaceEntityProjectionIndex,\n error: readErrors\n }\n).middleware(SessionCookieAuth)\n\nconst workspaceEntity = HttpApiEndpoint.get(\"workspaceEntity\", \"/api/v1/items/:entityId\", {\n params: { entityId: EntityId },\n success: WorkspaceEntityInspection,\n error: readErrors\n}).middleware(SessionCookieAuth)\n\n/** Human-confirmed governed action against one exact Clockify source revision. */\nexport const SubmitClockifyActionRequest = Schema.TaggedUnion({\n \"correct-association\": {\n expectedRevision: Revision,\n jiraIssueKey: Schema.String.check(\n Schema.isTrimmed(),\n Schema.isPattern(/^[A-Z][A-Z0-9]*-[1-9][0-9]*$/u),\n Schema.isMaxLength(100)\n )\n },\n \"record-approval\": {\n expectedRevision: Revision,\n decision: Schema.Literals([\"approved\", \"rejected\"]),\n rationale: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(1_000))\n }\n})\nexport type SubmitClockifyActionRequest = typeof SubmitClockifyActionRequest.Type\n\n/** Durable identity and resulting lifecycle state of a submitted Clockify action. */\nexport const SubmitClockifyActionResponse = Schema.Struct({\n actionId: GovernedActionId,\n state: GovernedActionState\n})\nexport type SubmitClockifyActionResponse = typeof SubmitClockifyActionResponse.Type\n\nconst submitClockifyAction = HttpApiEndpoint.post(\n \"submitClockifyAction\",\n \"/api/v1/items/:entityId/clockify-actions\",\n {\n params: { entityId: EntityId },\n payload: SubmitClockifyActionRequest,\n success: SubmitClockifyActionResponse,\n error: [\n ...readErrors,\n InvalidRequestApiError,\n ConflictApiError\n ]\n }\n)\n .middleware(SessionCookieAuth)\n .middleware(SessionMutationAuth)\n\nconst relationship = HttpApiEndpoint.get(\"relationship\", \"/api/v1/relationships/:relationshipId\", {\n params: { relationshipId: RelationshipId },\n query: {\n revision: Schema.optionalKey(CanonicalNonNegativeIntegerFromString.pipe(Schema.decodeTo(LedgerRevision)))\n },\n success: DeliveryRelationship,\n error: readErrors\n}).middleware(SessionCookieAuth)\n\nconst repairCandidates = HttpApiEndpoint.get(\n \"repairCandidates\",\n \"/api/v1/relationships/releases/:releaseId/repair-candidates\",\n {\n params: { releaseId: ReleaseId },\n query: { environmentId: Schema.optionalKey(EnvironmentId) },\n success: RelationshipRepairCandidates,\n error: readErrors\n }\n).middleware(SessionCookieAuth)\n\nconst repairProposalDraft = HttpApiEndpoint.get(\n \"repairProposalDraft\",\n \"/api/v1/relationships/releases/:releaseId/repair-candidates/:relationshipId/proposal-draft\",\n {\n params: { releaseId: ReleaseId, relationshipId: RelationshipId },\n query: {\n environmentId: Schema.optionalKey(EnvironmentId),\n revision: CanonicalNonNegativeIntegerFromString.pipe(Schema.decodeTo(LedgerRevision))\n },\n success: RelationshipRepairProposalDraft,\n error: readErrors\n }\n).middleware(SessionCookieAuth)\n\nconst createRepairProposal = HttpApiEndpoint.post(\n \"createRepairProposal\",\n \"/api/v1/relationships/releases/:releaseId/repair-candidates/:relationshipId/proposals\",\n {\n params: { releaseId: ReleaseId, relationshipId: RelationshipId },\n payload: CreateRelationshipRepairProposalRequest,\n success: RelationshipRepairProposal,\n error: [\n ...readErrors,\n InvalidRequestApiError,\n ConflictApiError,\n PayloadTooLargeApiError\n ]\n }\n)\n .middleware(SessionCookieAuth)\n .middleware(SessionMutationAuth)\n\nconst listRepairProposals = HttpApiEndpoint.get(\n \"listRepairProposals\",\n \"/api/v1/relationships/releases/:releaseId/repair-proposals\",\n {\n params: { releaseId: ReleaseId },\n query: {\n environmentId: Schema.optionalKey(EnvironmentId),\n status: Schema.optionalKey(RelationshipRepairProposal.fields.status)\n },\n success: RelationshipRepairProposalList,\n error: readErrors\n }\n).middleware(SessionCookieAuth)\n\nconst getRepairProposal = HttpApiEndpoint.get(\n \"getRepairProposal\",\n \"/api/v1/relationships/repair-proposals/:proposalId\",\n {\n params: { proposalId: RelationshipRepairProposalId },\n success: RelationshipRepairProposal,\n error: readErrors\n }\n).middleware(SessionCookieAuth)\n\nconst reviewRepairProposal = HttpApiEndpoint.post(\n \"reviewRepairProposal\",\n \"/api/v1/relationships/repair-proposals/:proposalId/reviews\",\n {\n params: { proposalId: RelationshipRepairProposalId },\n payload: ReviewRelationshipRepairProposalRequest,\n success: RelationshipRepairProposal,\n error: [\n ...readErrors,\n InvalidRequestApiError,\n ConflictApiError,\n PayloadTooLargeApiError\n ]\n }\n)\n .middleware(SessionCookieAuth)\n .middleware(SessionMutationAuth)\n\nconst applyRepairProposal = HttpApiEndpoint.post(\n \"applyRepairProposal\",\n \"/api/v1/relationships/repair-proposals/:proposalId/applications\",\n {\n params: { proposalId: RelationshipRepairProposalId },\n success: ApplyRelationshipRepairProposalResponse,\n error: [\n ...readErrors,\n InvalidRequestApiError,\n ConflictApiError\n ]\n }\n)\n .middleware(SessionCookieAuth)\n .middleware(SessionMutationAuth)\n\nconst relationshipHistory = HttpApiEndpoint.get(\n \"relationshipHistory\",\n \"/api/v1/relationships/:relationshipId/history\",\n {\n params: { relationshipId: RelationshipId },\n success: RelationshipHistoryInspection,\n error: readErrors\n }\n).middleware(SessionCookieAuth)\n\nconst evidence = HttpApiEndpoint.get(\"evidence\", \"/api/v1/evidence/:evidenceId\", {\n params: { evidenceId: EvidenceId },\n success: EvidenceInspection,\n error: readErrors\n}).middleware(SessionCookieAuth)\n\n/** Authenticated, workspace-safe delivery relationship and evidence inspection. */\nexport class DeliveryGraphApiGroup extends HttpApiGroup.make(\"deliveryGraph\")\n .add(\n workspaceEntityProjections,\n workspaceEntity,\n submitClockifyAction,\n releaseSlice,\n repairCandidates,\n repairProposalDraft,\n createRepairProposal,\n listRepairProposals,\n getRepairProposal,\n reviewRepairProposal,\n applyRepairProposal,\n relationship,\n relationshipHistory,\n evidence\n )\n{}\n","import * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup } from \"effect/unstable/httpapi\"\n\nimport { PluginConnectionId } from \"../domain/identifiers.js\"\nimport { PluginDiffInventoryEntryV1 } from \"../domain/plugins/events.js\"\nimport { Revision, VendorImmutableId } from \"../domain/sourceRevision.js\"\nimport {\n ConflictApiError,\n ForbiddenApiError,\n InvalidRequestApiError,\n NotFoundApiError,\n PayloadTooLargeApiError,\n RateLimitedApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { SessionCookieAuth } from \"./session.js\"\n\nconst MaximumCompleteDiffFiles = 500\n\n/** Lowercase SHA-256 digest of canonical exact-revision diff-file identity. */\nexport const DiffFileAnchor = Schema.String.check(\n Schema.isPattern(/^sha256:[0-9a-f]{64}$/u, { expected: \"a lowercase SHA-256 diff-file anchor\" })\n).pipe(Schema.brand(\"DiffFileAnchor\"))\n\n/** Decoded stable diff-file anchor. */\nexport type DiffFileAnchor = typeof DiffFileAnchor.Type\n\n/** One file from a completely indexed immutable pull-request revision. */\nexport const CompleteDiffInventoryEntry = Schema.Struct({\n ...PluginDiffInventoryEntryV1.fields,\n anchor: DiffFileAnchor\n}).annotate({ identifier: \"CompleteDiffInventoryEntry\" })\n\n/** Decoded complete-inventory entry. */\nexport type CompleteDiffInventoryEntry = typeof CompleteDiffInventoryEntry.Type\n\n/** Complete bounded inventory; `ready` is emitted only after pagination ends. */\nexport const CompleteDiffInventory = Schema.Struct({\n entries: Schema.Array(CompleteDiffInventoryEntry).check(\n Schema.makeFilter((entries) => entries.length <= MaximumCompleteDiffFiles, {\n expected: `at most ${MaximumCompleteDiffFiles} changed files`\n })\n ),\n ready: Schema.Literal(true)\n}).annotate({ identifier: \"CompleteDiffInventory\" })\n\n/** Decoded complete immutable inventory. */\nexport type CompleteDiffInventory = typeof CompleteDiffInventory.Type\n\nconst BoundedOffset = Schema.Int.pipe(\n Schema.check(Schema.isGreaterThanOrEqualTo(0)),\n Schema.check(Schema.isLessThanOrEqualTo(1_048_576))\n)\nconst BoundedLength = Schema.Int.pipe(\n Schema.check(Schema.isBetween({ minimum: 1, maximum: 1_048_576 }))\n)\nconst DiffPath = PluginDiffInventoryEntryV1.fields.path\n\n/** Browser-safe lazy content result for one immutable side and range. */\nexport const CompleteDiffContentRange = Schema.Struct({\n bytesBase64: Schema.NullOr(Schema.String.check(Schema.isMaxLength(1_398_104))),\n totalBytes: Schema.NullOr(Schema.Int.check(Schema.isGreaterThanOrEqualTo(0))),\n unavailableReason: Schema.NullOr(\n Schema.Literals([\"binary\", \"generated\", \"oversized\", \"missing\", \"provider-unavailable\"])\n )\n})\n .check(\n Schema.makeFilter(\n ({ bytesBase64, totalBytes, unavailableReason }) =>\n unavailableReason === null ? bytesBase64 !== null && totalBytes !== null : bytesBase64 === null,\n { expected: \"available bounded content or an explicit unavailable reason\" }\n )\n )\n .annotate({ identifier: \"CompleteDiffContentRange\" })\n\n/** Decoded lazy content response. */\nexport type CompleteDiffContentRange = typeof CompleteDiffContentRange.Type\n\nconst diffReadErrors = [\n InvalidRequestApiError,\n UnauthorizedApiError,\n ForbiddenApiError,\n NotFoundApiError,\n ConflictApiError,\n RateLimitedApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n]\n\nconst inventory = HttpApiEndpoint.get(\"inventory\", \"/:pluginConnectionId/pull-requests/:vendorImmutableId/inventory\", {\n params: Schema.Struct({ pluginConnectionId: PluginConnectionId, vendorImmutableId: VendorImmutableId }),\n query: Schema.Struct({ revision: Revision }),\n success: CompleteDiffInventory,\n error: diffReadErrors\n}).middleware(SessionCookieAuth)\n\nexport const CompleteDiffContentRequest = Schema.Struct({\n revision: Revision,\n anchor: DiffFileAnchor,\n path: DiffPath,\n previousPath: Schema.NullOr(DiffPath),\n status: PluginDiffInventoryEntryV1.fields.status,\n side: Schema.Literals([\"before\", \"after\"]),\n offset: BoundedOffset,\n length: BoundedLength\n}).annotate({ identifier: \"CompleteDiffContentRequest\" })\n\n/** Decoded bounded content-read payload. */\nexport type CompleteDiffContentRequest = typeof CompleteDiffContentRequest.Type\n\nconst content = HttpApiEndpoint.post(\"content\", \"/:pluginConnectionId/pull-requests/:vendorImmutableId/content\", {\n params: Schema.Struct({ pluginConnectionId: PluginConnectionId, vendorImmutableId: VendorImmutableId }),\n payload: CompleteDiffContentRequest,\n success: CompleteDiffContentRange,\n error: [...diffReadErrors, PayloadTooLargeApiError]\n}).middleware(SessionCookieAuth)\n\n/** Authenticated, workspace-scoped, bounded complete-diff reads. */\nexport class DiffApiGroup extends HttpApiGroup.make(\"diff\").add(inventory).add(content).prefix(\"/api/v1/diffs\") {}\n","import * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from \"effect/unstable/httpapi\"\n\nimport { PortfolioInvalidatedEventV1 } from \"../domain/domainEvent.js\"\nimport { EventCursor } from \"../domain/identifiers.js\"\nimport { UtcTimestamp } from \"../domain/utcTimestamp.js\"\nimport {\n ForbiddenApiError,\n InvalidRequestApiError,\n RateLimitedApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { PortfolioSnapshot } from \"./portfolio.js\"\nimport { SessionCookieAuth } from \"./session.js\"\nimport { CanonicalNonNegativeIntegerFromString } from \"./wire.js\"\n\n/** URL/header representation of a nonnegative workspace event cursor. */\nexport const EventCursorFromString = CanonicalNonNegativeIntegerFromString.pipe(Schema.decodeTo(EventCursor))\n\n/** Replay boundary telling a client to replace local state with an authoritative snapshot. */\nexport const StreamResetRequired = Schema.Struct({\n reason: Schema.Literals([\"retention\", \"cursor-ahead\", \"gap\", \"replay-budget\"]),\n requestedCursor: EventCursor,\n headCursor: EventCursor,\n prunedThroughCursor: EventCursor\n}).annotate({ identifier: \"StreamResetRequired\" })\n\n/** Decoded reset instruction carried by the live event stream. */\nexport type StreamResetRequired = typeof StreamResetRequired.Type\n\n/** Keepalive payload that reports the latest durable cursor without advancing EventSource state. */\nexport const StreamHeartbeat = Schema.Struct({\n eventCursor: EventCursor,\n sentAt: UtcTimestamp\n}).annotate({ identifier: \"StreamHeartbeat\" })\n\n/** Decoded keepalive payload carried by the live event stream. */\nexport type StreamHeartbeat = typeof StreamHeartbeat.Type\n\n/** Authoritative portfolio replacement emitted first and after replay reset. */\nexport const PortfolioSnapshotLiveEvent = Schema.Struct({\n id: EventCursorFromString,\n event: Schema.Literal(\"portfolio.snapshot\"),\n data: Schema.fromJsonString(PortfolioSnapshot)\n}).annotate({ identifier: \"PortfolioSnapshotLiveEvent\" })\n\n/** Decoded authoritative portfolio stream event. */\nexport type PortfolioSnapshotLiveEvent = typeof PortfolioSnapshotLiveEvent.Type\n\n/** Durable notification that a browser should refresh its portfolio projection. */\nexport const PortfolioInvalidatedLiveEvent = Schema.Struct({\n id: EventCursorFromString,\n event: Schema.Literal(\"portfolio.invalidated\"),\n data: Schema.fromJsonString(PortfolioInvalidatedEventV1)\n}).annotate({ identifier: \"PortfolioInvalidatedLiveEvent\" })\n\n/** Decoded portfolio invalidation stream event. */\nexport type PortfolioInvalidatedLiveEvent = typeof PortfolioInvalidatedLiveEvent.Type\n\n/** Replay-gap instruction; it deliberately has no SSE ID so it cannot advance resume state. */\nexport const StreamResetRequiredLiveEvent = Schema.Struct({\n id: Schema.optionalKey(Schema.Undefined),\n event: Schema.Literal(\"stream.reset-required\"),\n data: Schema.fromJsonString(StreamResetRequired)\n}).annotate({ identifier: \"StreamResetRequiredLiveEvent\" })\n\n/** Decoded replay-gap stream event. */\nexport type StreamResetRequiredLiveEvent = typeof StreamResetRequiredLiveEvent.Type\n\n/** Keepalive event; it deliberately has no SSE ID so it cannot advance resume state. */\nexport const StreamHeartbeatLiveEvent = Schema.Struct({\n id: Schema.optionalKey(Schema.Undefined),\n event: Schema.Literal(\"stream.heartbeat\"),\n data: Schema.fromJsonString(StreamHeartbeat)\n}).annotate({ identifier: \"StreamHeartbeatLiveEvent\" })\n\n/** Decoded keepalive stream event. */\nexport type StreamHeartbeatLiveEvent = typeof StreamHeartbeatLiveEvent.Type\n\n/** Closed browser-safe union emitted by the authenticated live event stream. */\nexport const ControlCenterLiveEvent = Schema.Union([\n PortfolioSnapshotLiveEvent,\n PortfolioInvalidatedLiveEvent,\n StreamResetRequiredLiveEvent,\n StreamHeartbeatLiveEvent\n]).annotate({ identifier: \"ControlCenterLiveEvent\" })\n\n/** Decoded browser-safe live event. */\nexport type ControlCenterLiveEvent = typeof ControlCenterLiveEvent.Type\n\nconst stream = HttpApiEndpoint.get(\"stream\", \"/api/v1/events\", {\n query: {\n after: Schema.optionalKey(EventCursorFromString)\n },\n headers: {\n \"last-event-id\": Schema.optionalKey(EventCursorFromString)\n },\n success: HttpApiSchema.StreamSse({ events: ControlCenterLiveEvent }),\n error: [\n InvalidRequestApiError,\n UnauthorizedApiError,\n ForbiddenApiError,\n RateLimitedApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n ]\n}).middleware(SessionCookieAuth)\n\n/** Authenticated resumable stream of workspace-local Control Center events. */\nexport class LiveEventsApiGroup extends HttpApiGroup.make(\"liveEvents\").add(stream) {}\n","import * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from \"effect/unstable/httpapi\"\n\nimport {\n CorrelationId,\n ForbiddenApiError,\n NotFoundApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { SessionCookieAuth } from \"./session.js\"\nimport { CanonicalNonNegativeIntegerFromString } from \"./wire.js\"\n\n/** Workspace-scoped opaque media reference that reveals neither provider URLs nor local storage keys. */\nexport const OpaqueMediaId = Schema.String.check(\n Schema.isPattern(/^media_[0-9a-f]{64}$/u, { expected: \"an opaque SHA-256 media identifier\" })\n).pipe(Schema.brand(\"OpaqueMediaId\"))\n\n/** Decoded opaque media identifier. */\nexport type OpaqueMediaId = typeof OpaqueMediaId.Type\n\n/** Closed set of inert raster formats accepted at the authenticated media boundary. */\nexport const SafeMediaContentType = Schema.Literals([\n \"image/avif\",\n \"image/jpeg\",\n \"image/png\",\n \"image/webp\"\n])\n\n/** Decoded safe raster media content type. */\nexport type SafeMediaContentType = typeof SafeMediaContentType.Type\n\n/** Security and metadata headers required on authenticated opaque media responses. */\nexport const MediaResponseHeaders = Schema.Struct({\n \"x-correlation-id\": CorrelationId,\n \"content-type\": SafeMediaContentType,\n \"content-length\": CanonicalNonNegativeIntegerFromString,\n \"cache-control\": Schema.Literal(\"private, no-store\"),\n \"x-content-type-options\": Schema.Literal(\"nosniff\")\n}).annotate({ identifier: \"MediaResponseHeaders\" })\n\n/** Decoded opaque media response headers. */\nexport type MediaResponseHeaders = typeof MediaResponseHeaders.Type\n\nconst read = HttpApiEndpoint.get(\"read\", \"/:mediaId\", {\n params: Schema.Struct({ mediaId: OpaqueMediaId }),\n success: HttpApiSchema.StreamUint8Array({ contentType: \"application/octet-stream\" }),\n error: [\n UnauthorizedApiError,\n ForbiddenApiError,\n NotFoundApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n ]\n}).middleware(SessionCookieAuth)\n\n/** Authenticated, workspace-resolved opaque media contract. */\nexport class MediaApiGroup extends HttpApiGroup.make(\"media\").add(read).prefix(\"/api/v1/media\") {}\n","import * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from \"effect/unstable/httpapi\"\n\nimport { EntityId, PersonId, ShareId, WorkspaceId } from \"../domain/identifiers.js\"\nimport { UtcTimestamp } from \"../domain/utcTimestamp.js\"\nimport { InspectedEntityProjection } from \"./deliveryGraph.js\"\nimport {\n ConflictApiError,\n ForbiddenApiError,\n InvalidRequestApiError,\n NotFoundApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { SessionCookieAuth, SessionMutationAuth } from \"./session.js\"\n\n/** Owner-authored intent for one exact entity share grant. */\nexport const CreateAuthorizedShareRequest = Schema.Struct({\n shareId: ShareId,\n entityId: EntityId,\n granteePersonId: PersonId,\n expiresAt: UtcTimestamp\n})\n\n/** Decoded authorized-share creation request. */\nexport type CreateAuthorizedShareRequest = typeof CreateAuthorizedShareRequest.Type\n\n/** Secret-free grant metadata returned to authenticated callers. */\nexport const AuthorizedShareSummary = Schema.Struct({\n shareId: ShareId,\n entityId: EntityId,\n granteePersonId: PersonId,\n createdAt: UtcTimestamp,\n expiresAt: UtcTimestamp,\n revokedAt: Schema.NullOr(UtcTimestamp)\n}).annotate({ identifier: \"AuthorizedShareSummary\" })\n\n/** Decoded secret-free authorized-share metadata. */\nexport type AuthorizedShareSummary = typeof AuthorizedShareSummary.Type\n\n/** Exact current entity projection resolved without relationships or release context. */\nexport const AuthorizedShareResolution = Schema.Struct({\n share: AuthorizedShareSummary,\n item: InspectedEntityProjection\n}).annotate({ identifier: \"AuthorizedShareResolution\" })\n\n/** Decoded authorized-share resolution. */\nexport type AuthorizedShareResolution = typeof AuthorizedShareResolution.Type\n\nconst authenticatedErrors = [\n UnauthorizedApiError,\n ForbiddenApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n]\n\nconst create = HttpApiEndpoint.post(\"create\", \"/\", {\n payload: CreateAuthorizedShareRequest,\n success: AuthorizedShareSummary,\n error: [...authenticatedErrors, InvalidRequestApiError, NotFoundApiError, ConflictApiError]\n})\n .middleware(SessionCookieAuth)\n .middleware(SessionMutationAuth)\n\nconst resolve = HttpApiEndpoint.get(\"resolve\", \"/:workspaceId/:shareId\", {\n params: Schema.Struct({ workspaceId: WorkspaceId, shareId: ShareId }),\n success: AuthorizedShareResolution,\n error: [...authenticatedErrors, NotFoundApiError]\n}).middleware(SessionCookieAuth)\n\nconst revoke = HttpApiEndpoint.delete(\"revoke\", \"/:workspaceId/:shareId\", {\n params: Schema.Struct({ workspaceId: WorkspaceId, shareId: ShareId }),\n success: HttpApiSchema.NoContent,\n error: [...authenticatedErrors, NotFoundApiError]\n})\n .middleware(SessionCookieAuth)\n .middleware(SessionMutationAuth)\n\n/** Exact-scope authenticated entity-share contract. */\nexport class SharesApiGroup extends HttpApiGroup.make(\"shares\")\n .add(create, resolve, revoke)\n .prefix(\"/api/v1/shares\")\n{}\n","import * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from \"effect/unstable/httpapi\"\n\nimport { TimelineActorKind, TimelineCursor, TimelineEventDetail, TimelinePage } from \"../domain/timeline.js\"\nimport { UtcTimestamp } from \"../domain/utcTimestamp.js\"\nimport {\n ForbiddenApiError,\n InvalidRequestApiError,\n NotFoundApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { SessionCookieAuth } from \"./session.js\"\nimport { CanonicalNonNegativeIntegerFromString } from \"./wire.js\"\n\nconst TimelinePageSizeFromString = CanonicalNonNegativeIntegerFromString.pipe(\n Schema.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(100))\n)\n\n/** Hard caller-selected event bound for one Timeline download. */\nexport const TimelineExportLimitFromString = CanonicalNonNegativeIntegerFromString.pipe(\n Schema.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(1_000))\n)\n\n/** Content types emitted by the bounded Timeline download endpoints. */\nexport const TimelineExportContentType = Schema.Literals([\n \"application/json; charset=utf-8\",\n \"text/csv; charset=utf-8\"\n])\n\n/** Security, download, and truncation headers on a Timeline export response. */\nexport const TimelineExportResponseHeaders = Schema.Struct({\n \"cache-control\": Schema.Literal(\"private, no-store\"),\n \"content-disposition\": Schema.Literals([\n \"attachment; filename=\\\"timeline-export.csv\\\"\",\n \"attachment; filename=\\\"timeline-export.json\\\"\"\n ]),\n \"content-type\": TimelineExportContentType,\n \"x-content-type-options\": Schema.Literal(\"nosniff\"),\n \"x-timeline-export-count\": CanonicalNonNegativeIntegerFromString,\n \"x-timeline-export-limit\": TimelineExportLimitFromString,\n \"x-timeline-export-truncated\": Schema.Literals([\"false\", \"true\"])\n}).annotate({ identifier: \"TimelineExportResponseHeaders\" })\n\nconst exportQuery = {\n actor: Schema.optionalKey(TimelineActorKind),\n from: Schema.optionalKey(UtcTimestamp),\n limit: TimelineExportLimitFromString,\n to: Schema.optionalKey(UtcTimestamp)\n}\n\nconst timelineErrors: readonly [\n typeof InvalidRequestApiError,\n typeof UnauthorizedApiError,\n typeof ForbiddenApiError,\n typeof RequestTimedOutApiError,\n typeof ServiceUnavailableApiError\n] = [\n InvalidRequestApiError,\n UnauthorizedApiError,\n ForbiddenApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n]\n\nconst page = HttpApiEndpoint.get(\"page\", \"/api/v1/timeline\", {\n query: {\n actor: Schema.optionalKey(TimelineActorKind),\n beforeEventKey: Schema.optionalKey(Schema.String.check(Schema.isNonEmpty(), Schema.isMaxLength(1_024))),\n beforeOccurredAt: Schema.optionalKey(UtcTimestamp),\n from: Schema.optionalKey(UtcTimestamp),\n limit: Schema.optionalKey(TimelinePageSizeFromString),\n to: Schema.optionalKey(UtcTimestamp)\n },\n success: TimelinePage,\n error: timelineErrors\n}).middleware(SessionCookieAuth)\n\nconst detail = HttpApiEndpoint.get(\"detail\", \"/api/v1/timeline/events/:eventKey\", {\n params: { eventKey: TimelineCursor.fields.eventKey },\n success: TimelineEventDetail,\n error: [\n InvalidRequestApiError,\n UnauthorizedApiError,\n ForbiddenApiError,\n NotFoundApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n ]\n}).middleware(SessionCookieAuth)\n\nconst exportCsv = HttpApiEndpoint.get(\"exportCsv\", \"/api/v1/timeline/export.csv\", {\n query: exportQuery,\n success: HttpApiSchema.StreamUint8Array({ contentType: \"text/csv; charset=utf-8\" }),\n error: timelineErrors\n}).middleware(SessionCookieAuth)\n\nconst exportJson = HttpApiEndpoint.get(\"exportJson\", \"/api/v1/timeline/export.json\", {\n query: exportQuery,\n success: HttpApiSchema.StreamUint8Array({ contentType: \"application/json; charset=utf-8\" }),\n error: timelineErrors\n}).middleware(SessionCookieAuth)\n\n/** Authenticated, workspace-scoped durable activity Timeline. */\nexport class TimelineApiGroup extends HttpApiGroup.make(\"timeline\")\n .add(page)\n .add(detail)\n .add(exportCsv)\n .add(exportJson)\n{}\n","import * as Schema from \"effect/Schema\"\nimport { HttpApiEndpoint, HttpApiGroup } from \"effect/unstable/httpapi\"\n\nimport { PersonId, WorkspaceId, WorkspaceSettingsMutationId } from \"../domain/identifiers.js\"\nimport { UtcTimestamp } from \"../domain/utcTimestamp.js\"\nimport { GovernedWorkspaceSettingsSections, WorkspaceSettingsV1 } from \"../domain/workspaceSettings.js\"\nimport {\n ConflictApiError,\n ForbiddenApiError,\n InvalidRequestApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError,\n UnauthorizedApiError\n} from \"./errors.js\"\nimport { SessionCookieAuth, SessionMutationAuth } from \"./session.js\"\n\n/** Positive optimistic-concurrency revision of the workspace settings aggregate. */\nexport const WorkspaceSettingsRevision = Schema.Int.check(\n Schema.isGreaterThan(0)\n).pipe(Schema.brand(\"WorkspaceSettingsRevision\"))\n\n/** Decoded workspace-settings revision. */\nexport type WorkspaceSettingsRevision = typeof WorkspaceSettingsRevision.Type\n\n/** Strong browser-visible validator for one exact settings revision. */\nexport const WorkspaceSettingsEtag = Schema.String.check(\n Schema.isPattern(/^\"workspace-settings-v1-[1-9][0-9]*\"$/u, {\n expected: \"a strong version-one workspace-settings ETag\"\n })\n).pipe(Schema.brand(\"WorkspaceSettingsEtag\"))\n\n/** Decoded workspace-settings ETag. */\nexport type WorkspaceSettingsEtag = typeof WorkspaceSettingsEtag.Type\n\n/** Construct the strong validator returned with one settings revision. */\nexport const workspaceSettingsEtag = (\n revision: WorkspaceSettingsRevision\n): WorkspaceSettingsEtag => WorkspaceSettingsEtag.make(`\"workspace-settings-v1-${String(revision)}\"`)\n\n/** Server-authoritative settings document returned to authenticated workspace sessions. */\nexport const WorkspaceSettingsReadModel = Schema.Struct({\n workspaceId: WorkspaceId,\n revision: WorkspaceSettingsRevision,\n etag: WorkspaceSettingsEtag,\n settings: WorkspaceSettingsV1,\n createdAt: UtcTimestamp,\n updatedAt: UtcTimestamp,\n updatedByPersonId: Schema.NullOr(PersonId)\n}).annotate({ identifier: \"WorkspaceSettingsReadModel\" })\n\n/** Decoded workspace-settings read model. */\nexport type WorkspaceSettingsReadModel = typeof WorkspaceSettingsReadModel.Type\n\n/** Safe workspace presentation defaults shared with every authenticated collaborator. */\nexport const WorkspacePresentationReadModel = Schema.Struct({\n workspaceId: WorkspaceId,\n revision: WorkspaceSettingsRevision,\n presentation: WorkspaceSettingsV1.fields.presentation\n}).annotate({ identifier: \"WorkspacePresentationReadModel\" })\n\n/** Decoded collaborator-safe workspace presentation projection. */\nexport type WorkspacePresentationReadModel = typeof WorkspacePresentationReadModel.Type\n\n/** Complete compare-and-swap replacement of one workspace settings document. */\nexport const UpdateWorkspaceSettingsRequest = Schema.Struct({\n mutationId: WorkspaceSettingsMutationId,\n expectedRevision: WorkspaceSettingsRevision,\n settings: WorkspaceSettingsV1,\n acknowledgedGovernedSections: GovernedWorkspaceSettingsSections\n}).annotate({ identifier: \"UpdateWorkspaceSettingsRequest\" })\n\n/** Decoded workspace-settings replacement request. */\nexport type UpdateWorkspaceSettingsRequest = typeof UpdateWorkspaceSettingsRequest.Type\n\nconst authenticatedErrors = [\n UnauthorizedApiError,\n ForbiddenApiError,\n RequestTimedOutApiError,\n ServiceUnavailableApiError\n]\n\nconst read = HttpApiEndpoint.get(\"read\", \"/\", {\n success: WorkspaceSettingsReadModel,\n error: authenticatedErrors\n}).middleware(SessionCookieAuth)\n\nconst readPresentation = HttpApiEndpoint.get(\"readPresentation\", \"/presentation\", {\n success: WorkspacePresentationReadModel,\n error: authenticatedErrors\n}).middleware(SessionCookieAuth)\n\nconst update = HttpApiEndpoint.put(\"update\", \"/\", {\n payload: UpdateWorkspaceSettingsRequest,\n success: WorkspaceSettingsReadModel,\n error: [...authenticatedErrors, InvalidRequestApiError, ConflictApiError]\n})\n .middleware(SessionCookieAuth)\n .middleware(SessionMutationAuth)\n\n/** Authenticated workspace settings read and concurrency-safe mutation contract. */\nexport class WorkspaceSettingsApiGroup extends HttpApiGroup.make(\"workspaceSettings\")\n .add(read, readPresentation, update)\n .prefix(\"/api/v1/settings\")\n{}\n","import { HttpApi } from \"effect/unstable/httpapi\"\n\nimport { AgentApiGroup } from \"./agent.js\"\nimport { CodePipelineApiGroup } from \"./codepipeline.js\"\nimport { DeliveryGraphApiGroup } from \"./deliveryGraph.js\"\nimport { DiffApiGroup } from \"./diff.js\"\nimport { LiveEventsApiGroup } from \"./liveEvents.js\"\nimport { MediaApiGroup } from \"./media.js\"\nimport { PluginsApiGroup } from \"./plugins.js\"\nimport { PortfolioApiGroup } from \"./portfolio.js\"\nimport { SessionApiGroup } from \"./session.js\"\nimport { SharesApiGroup } from \"./shares.js\"\nimport { TimelineApiGroup } from \"./timeline.js\"\nimport { WorkspaceSettingsApiGroup } from \"./workspaceSettings.js\"\n\n/** Browser-safe authenticated HTTP contract shared by the generated client and server implementation. */\nexport class ControlCenterApi extends HttpApi.make(\"ControlCenterApi\")\n .add(SessionApiGroup)\n .add(SharesApiGroup)\n .add(PluginsApiGroup)\n .add(PortfolioApiGroup)\n .add(DeliveryGraphApiGroup)\n .add(DiffApiGroup)\n .add(CodePipelineApiGroup)\n .add(MediaApiGroup)\n .add(LiveEventsApiGroup)\n .add(TimelineApiGroup)\n .add(WorkspaceSettingsApiGroup)\n .add(AgentApiGroup)\n{}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import * as Schema$1 from "effect/Schema";
|
|
2
|
-
import { DateTime, Schema, SchemaTransformation } from "effect";
|
|
3
2
|
import * as DateTime$1 from "effect/DateTime";
|
|
3
|
+
import { DateTime, Schema, SchemaTransformation } from "effect";
|
|
4
4
|
import * as Encoding$1 from "effect/Encoding";
|
|
5
5
|
import * as Result$1 from "effect/Result";
|
|
6
|
+
//#region src/domain/utcTimestamp.ts
|
|
7
|
+
/**
|
|
8
|
+
* Codec for instants that normalizes accepted ISO-8601 input to UTC and encodes
|
|
9
|
+
* it as a canonical UTC ISO-8601 string.
|
|
10
|
+
*/
|
|
11
|
+
var UtcTimestamp = Schema.DateTimeUtcFromString.annotate({ identifier: "UtcTimestamp" });
|
|
12
|
+
//#endregion
|
|
6
13
|
//#region src/domain/identifiers.ts
|
|
7
14
|
var CANONICAL_LOWERCASE_UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
|
|
8
15
|
var canonicalUuid7 = (brand) => Schema.String.check(Schema.isUUID(7)).pipe(Schema.decodeTo(Schema.String.check(Schema.isUUID(7), Schema.isPattern(CANONICAL_LOWERCASE_UUID_PATTERN, { expected: "a canonical lowercase UUID v7" })), SchemaTransformation.toLowerCase()), Schema.brand(brand));
|
|
@@ -69,13 +76,6 @@ var GovernedActionAttemptId = canonicalUuid7("GovernedActionAttemptId");
|
|
|
69
76
|
/** Canonical idempotency identity of one workspace-settings mutation. */
|
|
70
77
|
var WorkspaceSettingsMutationId = canonicalUuid7("WorkspaceSettingsMutationId");
|
|
71
78
|
//#endregion
|
|
72
|
-
//#region src/domain/utcTimestamp.ts
|
|
73
|
-
/**
|
|
74
|
-
* Codec for instants that normalizes accepted ISO-8601 input to UTC and encodes
|
|
75
|
-
* it as a canonical UTC ISO-8601 string.
|
|
76
|
-
*/
|
|
77
|
-
var UtcTimestamp = Schema.DateTimeUtcFromString.annotate({ identifier: "UtcTimestamp" });
|
|
78
|
-
//#endregion
|
|
79
79
|
//#region src/domain/sourceRevision.ts
|
|
80
80
|
var boundedOpaqueSourceValue = Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(512));
|
|
81
81
|
/** Stable persisted provider names, independent of package abbreviations. */
|
|
@@ -537,6 +537,6 @@ var NegotiatedPluginDescriptorV1 = Schema$1.Struct({
|
|
|
537
537
|
capabilities: Schema$1.Array(NegotiatedPluginCapabilityV1).check(Schema$1.isNonEmpty(), Schema$1.makeFilter((capabilities) => capabilities.length <= 32, { expected: "at most 32 negotiated plugin capabilities" }), Schema$1.makeFilter((capabilities) => new Set(capabilities.map(({ capabilityId }) => capabilityId)).size === capabilities.length, { expected: "unique negotiated plugin capabilities" }))
|
|
538
538
|
}).annotate({ identifier: "NegotiatedPluginDescriptorV1" });
|
|
539
539
|
//#endregion
|
|
540
|
-
export { SourceRevision as $, DiffInventoryPageRequestV1 as A,
|
|
540
|
+
export { SourceRevision as $, DiffInventoryPageRequestV1 as A, ShareId as At, PluginRelativePathV1 as B, PluginProviderReceiptV1 as C, RelationshipRepairProposalId as Ct, DiffContentRangeRequestV1 as D, ReviewSuggestionPublicationReservationId as Dt, ReadyPluginActionPreflightV1 as E, ReviewCommandArtifactId as Et, PluginDiffInventoryEntryV1 as F, MaximumPluginDescriptorBytes as G, PluginSyncRequestV1 as H, PluginEntityReferenceV1 as I, PluginPayloadJson as J, MaximumPluginPayloadBytes as K, PluginEntityType as L, DiffInventoryPageV1 as M, WorkspaceSettingsMutationId as Mt, NormalizedPluginEventV1 as N, UtcTimestamp as Nt, DiffContentRangeRequestV2 as O, RoleAssignmentId as Ot, PluginCheckpointV1 as P, Revision as Q, PluginEventId as R, PluginProviderOperationId as S, RelationshipId as St, ProposePluginActionRequestV1 as T, ReleaseId as Tt, ReadPluginEntityRequestV1 as U, PluginSyncPageV1 as V, ReadPluginEntityResultV1 as W, NormalizationSchemaVersion as X, hasMaximumPluginJsonBytes as Y, ProviderId as Z, PluginActionPreflightV1 as _, PersonId as _t, PluginConfigurationFieldV1 as a, EntityId as at, PluginActionReconciliationRequestV1 as b, ProviderAccountId as bt, SemanticVersion as c, EvidenceClaimId as ct, PluginAcceptedProviderReceiptV1 as d, GovernedActionAttemptId as dt, SourceUrl as et, PluginActionActorIdentityV1 as f, GovernedActionAuthorizationId as ft, PluginActionPayloadDigest as g, JobId as gt, PluginActionDispatchResultV1 as h, GraphNodeId as ht, PluginCapabilityOfferV1 as i, DomainEventId as it, DiffInventoryPageRequestV2 as j, WorkspaceId as jt, DiffContentRangeV1 as k, SessionId as kt, AuthorizedPluginActionV1 as l, EvidenceId as lt, PluginActionCancellationResultV1 as m, GovernedActionTransitionId as mt, NegotiatedPluginDescriptorV1 as n, AgentId as nt, PluginDescriptorV1 as o, EnvironmentId as ot, PluginActionCancellationRequestV1 as p, GovernedActionId as pt, MaximumPluginSyncPageBytes as q, PluginCapabilityId as r, AgentThreadId as rt, PluginId as s, EventCursor as st, NegotiatedPluginCapabilityV1 as t, VendorImmutableId as tt, BlockedPluginActionPreflightV1 as u, FollowedResourceId as ut, PluginActionProposalV1 as v, PluginConnectionId as vt, PluginTerminalProviderReceiptV1 as w, RelationshipRepairReviewId as wt, PluginActionReconciliationResultV1 as x, ReadinessAssessmentId as xt, PluginActionReconciliationKey as y, PrReviewSuggestionRevisionId as yt, PluginPageCursorV1 as z };
|
|
541
541
|
|
|
542
|
-
//# sourceMappingURL=descriptor-
|
|
542
|
+
//# sourceMappingURL=descriptor-CCvNzSZL.js.map
|