@knpkv/control-center 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (664) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +309 -0
  3. package/dist/client/.vite/manifest.json +452 -0
  4. package/dist/client/assets/ActiveWorkPage-Bvji6Tys.js +2 -0
  5. package/dist/client/assets/ActiveWorkPage-Bvji6Tys.js.map +1 -0
  6. package/dist/client/assets/ActiveWorkPage-CxNa23uW.css +1 -0
  7. package/dist/client/assets/AgentPage-Bom41la2.js +3 -0
  8. package/dist/client/assets/AgentPage-Bom41la2.js.map +1 -0
  9. package/dist/client/assets/AgentPage-f6WXQA21.css +1 -0
  10. package/dist/client/assets/AtlassianOAuthCallbackPage-Cqqgj2o3.css +1 -0
  11. package/dist/client/assets/AtlassianOAuthCallbackPage-dr-B9-DD.js +2 -0
  12. package/dist/client/assets/AtlassianOAuthCallbackPage-dr-B9-DD.js.map +1 -0
  13. package/dist/client/assets/AuthorizedSharePage-C-P-PNfm.js +2 -0
  14. package/dist/client/assets/AuthorizedSharePage-C-P-PNfm.js.map +1 -0
  15. package/dist/client/assets/AuthorizedSharePage-DzE_yvHI.css +1 -0
  16. package/dist/client/assets/BrowserCrypto-BPiuCuW-.js +2 -0
  17. package/dist/client/assets/BrowserCrypto-BPiuCuW-.js.map +1 -0
  18. package/dist/client/assets/BrowserSessionHydrator-C8F_LGhg.js +2 -0
  19. package/dist/client/assets/BrowserSessionHydrator-C8F_LGhg.js.map +1 -0
  20. package/dist/client/assets/CommandSearch-D6iFcdvj.js +2 -0
  21. package/dist/client/assets/CommandSearch-D6iFcdvj.js.map +1 -0
  22. package/dist/client/assets/CommandSearch-Df36xGJc.css +1 -0
  23. package/dist/client/assets/Dialog-DwSIPb-B-DVn37afM.js +42 -0
  24. package/dist/client/assets/Dialog-DwSIPb-B-DVn37afM.js.map +1 -0
  25. package/dist/client/assets/ItemsPage-DsQCbQ11.css +1 -0
  26. package/dist/client/assets/ItemsPage-x39U11an.js +2 -0
  27. package/dist/client/assets/ItemsPage-x39U11an.js.map +1 -0
  28. package/dist/client/assets/PairPage-D5vlz4OG.js +2 -0
  29. package/dist/client/assets/PairPage-D5vlz4OG.js.map +1 -0
  30. package/dist/client/assets/PortfolioOverview-DSUabOmm.js +2 -0
  31. package/dist/client/assets/PortfolioOverview-DSUabOmm.js.map +1 -0
  32. package/dist/client/assets/PortfolioOverview-nrb6Ebbh.css +1 -0
  33. package/dist/client/assets/ReleaseRoute-DyDm5s85.js +2 -0
  34. package/dist/client/assets/ReleaseRoute-DyDm5s85.js.map +1 -0
  35. package/dist/client/assets/ReleaseRoute-R3GdFaGc.css +1 -0
  36. package/dist/client/assets/ReleaseWorkset-6gGnZPS8.css +1 -0
  37. package/dist/client/assets/ReleaseWorkset-BhGacsgb.js +2 -0
  38. package/dist/client/assets/ReleaseWorkset-BhGacsgb.js.map +1 -0
  39. package/dist/client/assets/ServicesPage-CoMVH2Si.js +2 -0
  40. package/dist/client/assets/ServicesPage-CoMVH2Si.js.map +1 -0
  41. package/dist/client/assets/ServicesPage-D76DN13E.css +1 -0
  42. package/dist/client/assets/TimelinePage-38jhMz_L.css +1 -0
  43. package/dist/client/assets/TimelinePage-D8Fj_351.js +2 -0
  44. package/dist/client/assets/TimelinePage-D8Fj_351.js.map +1 -0
  45. package/dist/client/assets/WorkspaceEntityLink-BRifdJHn.js +2 -0
  46. package/dist/client/assets/WorkspaceEntityLink-BRifdJHn.js.map +1 -0
  47. package/dist/client/assets/WorkspaceEntityRoute-BwpujSqk.css +1 -0
  48. package/dist/client/assets/WorkspaceEntityRoute-DPci8Q8I.js +30 -0
  49. package/dist/client/assets/WorkspaceEntityRoute-DPci8Q8I.js.map +1 -0
  50. package/dist/client/assets/WorkspaceReleaseLayout-CMg2-6IQ.css +1 -0
  51. package/dist/client/assets/WorkspaceReleaseLayout-DDLdY0rU.js +2 -0
  52. package/dist/client/assets/WorkspaceReleaseLayout-DDLdY0rU.js.map +1 -0
  53. package/dist/client/assets/authenticatedMutationClient-D5yD0rch.js +2 -0
  54. package/dist/client/assets/authenticatedMutationClient-D5yD0rch.js.map +1 -0
  55. package/dist/client/assets/authorizedShareTransport-Dyj53kJf.js +2 -0
  56. package/dist/client/assets/authorizedShareTransport-Dyj53kJf.js.map +1 -0
  57. package/dist/client/assets/client-OmvShYdC.js +12 -0
  58. package/dist/client/assets/client-OmvShYdC.js.map +1 -0
  59. package/dist/client/assets/connectionTestTransport-c25QXx7A.js +2 -0
  60. package/dist/client/assets/connectionTestTransport-c25QXx7A.js.map +1 -0
  61. package/dist/client/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  62. package/dist/client/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
  63. package/dist/client/assets/index-CkslINEH.css +1 -0
  64. package/dist/client/assets/index-DLoOV6Hp.js +11 -0
  65. package/dist/client/assets/index-DLoOV6Hp.js.map +1 -0
  66. package/dist/client/assets/jsx-runtime-n5LQ9ujS.js +2 -0
  67. package/dist/client/assets/jsx-runtime-n5LQ9ujS.js.map +1 -0
  68. package/dist/client/assets/patterns-DEbg7R-A-Cw0A2uKS.js +2 -0
  69. package/dist/client/assets/patterns-DEbg7R-A-Cw0A2uKS.js.map +1 -0
  70. package/dist/client/assets/presentPortfolio-CkRqd_zz.js +2 -0
  71. package/dist/client/assets/presentPortfolio-CkRqd_zz.js.map +1 -0
  72. package/dist/client/assets/presentWorkspaceItems-BU__8LcC.js +2 -0
  73. package/dist/client/assets/presentWorkspaceItems-BU__8LcC.js.map +1 -0
  74. package/dist/client/assets/releasePaths-s-fSbIM-.js +2 -0
  75. package/dist/client/assets/releasePaths-s-fSbIM-.js.map +1 -0
  76. package/dist/client/assets/releaseRoutes-DSWkTh-E.js +2 -0
  77. package/dist/client/assets/releaseRoutes-DSWkTh-E.js.map +1 -0
  78. package/dist/client/assets/serviceOnboarding-B9pvdyWf.js +2 -0
  79. package/dist/client/assets/serviceOnboarding-B9pvdyWf.js.map +1 -0
  80. package/dist/client/assets/useCompactReleasePreview-Ch3XxgJU.js +2 -0
  81. package/dist/client/assets/useCompactReleasePreview-Ch3XxgJU.js.map +1 -0
  82. package/dist/client/assets/useWorkspaceItems-D0FuHGto.js +2 -0
  83. package/dist/client/assets/useWorkspaceItems-D0FuHGto.js.map +1 -0
  84. package/dist/client/assets/workspaceEntityPaths-xAl2jRFm.js +2 -0
  85. package/dist/client/assets/workspaceEntityPaths-xAl2jRFm.js.map +1 -0
  86. package/dist/client/assets/workspaceEntityRoutes-CRcfSq7c.js +2 -0
  87. package/dist/client/assets/workspaceEntityRoutes-CRcfSq7c.js.map +1 -0
  88. package/dist/client/build-graph.json +1465 -0
  89. package/dist/client/index.html +17 -0
  90. package/dist/server/api/agent.d.ts +652 -0
  91. package/dist/server/api/agent.d.ts.map +1 -0
  92. package/dist/server/api/client.d.ts +17 -0
  93. package/dist/server/api/client.d.ts.map +1 -0
  94. package/dist/server/api/controlCenterApi.d.ts +16 -0
  95. package/dist/server/api/controlCenterApi.d.ts.map +1 -0
  96. package/dist/server/api/deliveryGraph.d.ts +8714 -0
  97. package/dist/server/api/deliveryGraph.d.ts.map +1 -0
  98. package/dist/server/api/errors.d.ts +87 -0
  99. package/dist/server/api/errors.d.ts.map +1 -0
  100. package/dist/server/api/index.d.ts +14 -0
  101. package/dist/server/api/index.d.ts.map +1 -0
  102. package/dist/server/api/index.js +12 -0
  103. package/dist/server/api/index.js.map +1 -0
  104. package/dist/server/api/liveEvents.d.ts +1120 -0
  105. package/dist/server/api/liveEvents.d.ts.map +1 -0
  106. package/dist/server/api/media.d.ts +30 -0
  107. package/dist/server/api/media.d.ts.map +1 -0
  108. package/dist/server/api/plugins.d.ts +1853 -0
  109. package/dist/server/api/plugins.d.ts.map +1 -0
  110. package/dist/server/api/portfolio.d.ts +742 -0
  111. package/dist/server/api/portfolio.d.ts.map +1 -0
  112. package/dist/server/api/session.d.ts +204 -0
  113. package/dist/server/api/session.d.ts.map +1 -0
  114. package/dist/server/api/shares.d.ts +422 -0
  115. package/dist/server/api/shares.d.ts.map +1 -0
  116. package/dist/server/api/timeline.d.ts +86 -0
  117. package/dist/server/api/timeline.d.ts.map +1 -0
  118. package/dist/server/api/wire.d.ts +4 -0
  119. package/dist/server/api/wire.d.ts.map +1 -0
  120. package/dist/server/assets/BindConfig-BjK10BEb.js +15440 -0
  121. package/dist/server/assets/BindConfig-BjK10BEb.js.map +1 -0
  122. package/dist/server/assets/controlCenterApi-tZPvRPRH.js +1430 -0
  123. package/dist/server/assets/controlCenterApi-tZPvRPRH.js.map +1 -0
  124. package/dist/server/assets/domainEvent-x7yeq-gU.js +2130 -0
  125. package/dist/server/assets/domainEvent-x7yeq-gU.js.map +1 -0
  126. package/dist/server/assets/firstPartyServices-Y41P8uke.js +49 -0
  127. package/dist/server/assets/firstPartyServices-Y41P8uke.js.map +1 -0
  128. package/dist/server/assets/manualPluginSynchronization-C0aHB4UM.js +1805 -0
  129. package/dist/server/assets/manualPluginSynchronization-C0aHB4UM.js.map +1 -0
  130. package/dist/server/assets/portfolioInvalidation-Ds9Xm4_P.js +15463 -0
  131. package/dist/server/assets/portfolioInvalidation-Ds9Xm4_P.js.map +1 -0
  132. package/dist/server/assets/readiness-CzU3vjYQ.js +1012 -0
  133. package/dist/server/assets/readiness-CzU3vjYQ.js.map +1 -0
  134. package/dist/server/build-graph.json +3948 -0
  135. package/dist/server/domain/actors.d.ts +147 -0
  136. package/dist/server/domain/actors.d.ts.map +1 -0
  137. package/dist/server/domain/authorizedShare.d.ts +24 -0
  138. package/dist/server/domain/authorizedShare.d.ts.map +1 -0
  139. package/dist/server/domain/deliveryGraph.d.ts +848 -0
  140. package/dist/server/domain/deliveryGraph.d.ts.map +1 -0
  141. package/dist/server/domain/domainEvent.d.ts +50 -0
  142. package/dist/server/domain/domainEvent.d.ts.map +1 -0
  143. package/dist/server/domain/firstPartyServices.d.ts +60 -0
  144. package/dist/server/domain/firstPartyServices.d.ts.map +1 -0
  145. package/dist/server/domain/freshness.d.ts +367 -0
  146. package/dist/server/domain/freshness.d.ts.map +1 -0
  147. package/dist/server/domain/governedAction/bindings.d.ts +264 -0
  148. package/dist/server/domain/governedAction/bindings.d.ts.map +1 -0
  149. package/dist/server/domain/governedAction/index.d.ts +6 -0
  150. package/dist/server/domain/governedAction/index.d.ts.map +1 -0
  151. package/dist/server/domain/governedAction/lifecycle.d.ts +71 -0
  152. package/dist/server/domain/governedAction/lifecycle.d.ts.map +1 -0
  153. package/dist/server/domain/governedAction/model.d.ts +357 -0
  154. package/dist/server/domain/governedAction/model.d.ts.map +1 -0
  155. package/dist/server/domain/governedAction/stateMachine.d.ts +450 -0
  156. package/dist/server/domain/governedAction/stateMachine.d.ts.map +1 -0
  157. package/dist/server/domain/identifiers.d.ts +110 -0
  158. package/dist/server/domain/identifiers.d.ts.map +1 -0
  159. package/dist/server/domain/index.d.ts +26 -0
  160. package/dist/server/domain/index.d.ts.map +1 -0
  161. package/dist/server/domain/index.js +52 -0
  162. package/dist/server/domain/index.js.map +1 -0
  163. package/dist/server/domain/normalizedIssue.d.ts +223 -0
  164. package/dist/server/domain/normalizedIssue.d.ts.map +1 -0
  165. package/dist/server/domain/plugins/actions.d.ts +246 -0
  166. package/dist/server/domain/plugins/actions.d.ts.map +1 -0
  167. package/dist/server/domain/plugins/bounds.d.ts +12 -0
  168. package/dist/server/domain/plugins/bounds.d.ts.map +1 -0
  169. package/dist/server/domain/plugins/descriptor.d.ts +205 -0
  170. package/dist/server/domain/plugins/descriptor.d.ts.map +1 -0
  171. package/dist/server/domain/plugins/discovery.d.ts +39 -0
  172. package/dist/server/domain/plugins/discovery.d.ts.map +1 -0
  173. package/dist/server/domain/plugins/events.d.ts +232 -0
  174. package/dist/server/domain/plugins/events.d.ts.map +1 -0
  175. package/dist/server/domain/plugins/index.d.ts +11 -0
  176. package/dist/server/domain/plugins/index.d.ts.map +1 -0
  177. package/dist/server/domain/readiness/evaluate.d.ts +4 -0
  178. package/dist/server/domain/readiness/evaluate.d.ts.map +1 -0
  179. package/dist/server/domain/readiness/index.d.ts +7 -0
  180. package/dist/server/domain/readiness/index.d.ts.map +1 -0
  181. package/dist/server/domain/readiness/material.d.ts +114 -0
  182. package/dist/server/domain/readiness/material.d.ts.map +1 -0
  183. package/dist/server/domain/readiness/model.d.ts +1736 -0
  184. package/dist/server/domain/readiness/model.d.ts.map +1 -0
  185. package/dist/server/domain/readiness/policy.d.ts +73 -0
  186. package/dist/server/domain/readiness/policy.d.ts.map +1 -0
  187. package/dist/server/domain/readiness/rollup.d.ts +6 -0
  188. package/dist/server/domain/readiness/rollup.d.ts.map +1 -0
  189. package/dist/server/domain/relationshipRepair.d.ts +97 -0
  190. package/dist/server/domain/relationshipRepair.d.ts.map +1 -0
  191. package/dist/server/domain/release.d.ts +191 -0
  192. package/dist/server/domain/release.d.ts.map +1 -0
  193. package/dist/server/domain/releaseRelay.d.ts +44 -0
  194. package/dist/server/domain/releaseRelay.d.ts.map +1 -0
  195. package/dist/server/domain/sourceRevision.d.ts +39 -0
  196. package/dist/server/domain/sourceRevision.d.ts.map +1 -0
  197. package/dist/server/domain/timeline.d.ts +105 -0
  198. package/dist/server/domain/timeline.d.ts.map +1 -0
  199. package/dist/server/domain/utcTimestamp.d.ts +9 -0
  200. package/dist/server/domain/utcTimestamp.d.ts.map +1 -0
  201. package/dist/server/index.d.ts +8 -0
  202. package/dist/server/index.d.ts.map +1 -0
  203. package/dist/server/index.js +7 -0
  204. package/dist/server/server/DataRootProtocol.d.ts +80 -0
  205. package/dist/server/server/DataRootProtocol.d.ts.map +1 -0
  206. package/dist/server/server/agent/AgentJobWorker.d.ts +48 -0
  207. package/dist/server/server/agent/AgentJobWorker.d.ts.map +1 -0
  208. package/dist/server/server/agent/AgentRuntimeRegistry.d.ts +17 -0
  209. package/dist/server/server/agent/AgentRuntimeRegistry.d.ts.map +1 -0
  210. package/dist/server/server/agent/index.d.ts +4 -0
  211. package/dist/server/server/agent/index.d.ts.map +1 -0
  212. package/dist/server/server/api/ApiConfiguration.d.ts +24 -0
  213. package/dist/server/server/api/ApiConfiguration.d.ts.map +1 -0
  214. package/dist/server/server/api/ApiMiddleware.d.ts +14 -0
  215. package/dist/server/server/api/ApiMiddleware.d.ts.map +1 -0
  216. package/dist/server/server/api/ApplicationServices.d.ts +320 -0
  217. package/dist/server/server/api/ApplicationServices.d.ts.map +1 -0
  218. package/dist/server/server/api/ControlCenterApiServer.d.ts +11 -0
  219. package/dist/server/server/api/ControlCenterApiServer.d.ts.map +1 -0
  220. package/dist/server/server/api/ErrorMapping.d.ts +29 -0
  221. package/dist/server/server/api/ErrorMapping.d.ts.map +1 -0
  222. package/dist/server/server/api/Handlers.d.ts +24 -0
  223. package/dist/server/server/api/Handlers.d.ts.map +1 -0
  224. package/dist/server/server/api/LiveStreamAdmission.d.ts +34 -0
  225. package/dist/server/server/api/LiveStreamAdmission.d.ts.map +1 -0
  226. package/dist/server/server/api/RequestBoundary.d.ts +17 -0
  227. package/dist/server/server/api/RequestBoundary.d.ts.map +1 -0
  228. package/dist/server/server/api/RequestContext.d.ts +38 -0
  229. package/dist/server/server/api/RequestContext.d.ts.map +1 -0
  230. package/dist/server/server/api/RequestLimits.d.ts +79 -0
  231. package/dist/server/server/api/RequestLimits.d.ts.map +1 -0
  232. package/dist/server/server/api/index.d.ts +9 -0
  233. package/dist/server/server/api/index.d.ts.map +1 -0
  234. package/dist/server/server/application/authorizedShares.d.ts +29 -0
  235. package/dist/server/server/application/authorizedShares.d.ts.map +1 -0
  236. package/dist/server/server/application/awsResourceDiscovery.d.ts +18 -0
  237. package/dist/server/server/application/awsResourceDiscovery.d.ts.map +1 -0
  238. package/dist/server/server/application/connectionOwnership.d.ts +50 -0
  239. package/dist/server/server/application/connectionOwnership.d.ts.map +1 -0
  240. package/dist/server/server/application/deliveryGraphInspection.d.ts +59 -0
  241. package/dist/server/server/application/deliveryGraphInspection.d.ts.map +1 -0
  242. package/dist/server/server/application/errors.d.ts +10 -0
  243. package/dist/server/server/application/errors.d.ts.map +1 -0
  244. package/dist/server/server/application/fakeReleaseNormalization.d.ts +152 -0
  245. package/dist/server/server/application/fakeReleaseNormalization.d.ts.map +1 -0
  246. package/dist/server/server/application/index.d.ts +17 -0
  247. package/dist/server/server/application/index.d.ts.map +1 -0
  248. package/dist/server/server/application/liveEvents.d.ts +22 -0
  249. package/dist/server/server/application/liveEvents.d.ts.map +1 -0
  250. package/dist/server/server/application/manualPluginSynchronization.d.ts +41 -0
  251. package/dist/server/server/application/manualPluginSynchronization.d.ts.map +1 -0
  252. package/dist/server/server/application/mediaReads.d.ts +14 -0
  253. package/dist/server/server/application/mediaReads.d.ts.map +1 -0
  254. package/dist/server/server/application/normalizedPluginPageMaterialization.d.ts +109 -0
  255. package/dist/server/server/application/normalizedPluginPageMaterialization.d.ts.map +1 -0
  256. package/dist/server/server/application/pluginAdministration.d.ts +1318 -0
  257. package/dist/server/server/application/pluginAdministration.d.ts.map +1 -0
  258. package/dist/server/server/application/pluginSynchronizationAuthority.d.ts +22 -0
  259. package/dist/server/server/application/pluginSynchronizationAuthority.d.ts.map +1 -0
  260. package/dist/server/server/application/portfolioInvalidation.d.ts +35 -0
  261. package/dist/server/server/application/portfolioInvalidation.d.ts.map +1 -0
  262. package/dist/server/server/application/portfolioSnapshots.d.ts +12 -0
  263. package/dist/server/server/application/portfolioSnapshots.d.ts.map +1 -0
  264. package/dist/server/server/application/readinessDigests.d.ts +3 -0
  265. package/dist/server/server/application/readinessDigests.d.ts.map +1 -0
  266. package/dist/server/server/application/relationshipInference.d.ts +57 -0
  267. package/dist/server/server/application/relationshipInference.d.ts.map +1 -0
  268. package/dist/server/server/application/relationshipInferenceMaterialization.d.ts +26 -0
  269. package/dist/server/server/application/relationshipInferenceMaterialization.d.ts.map +1 -0
  270. package/dist/server/server/application/relationshipRepairProposals.d.ts +41 -0
  271. package/dist/server/server/application/relationshipRepairProposals.d.ts.map +1 -0
  272. package/dist/server/server/application/releaseAgent.d.ts +30 -0
  273. package/dist/server/server/application/releaseAgent.d.ts.map +1 -0
  274. package/dist/server/server/application/releaseAgentJobs.d.ts +26 -0
  275. package/dist/server/server/application/releaseAgentJobs.d.ts.map +1 -0
  276. package/dist/server/server/application/releaseSynchronization.d.ts +55 -0
  277. package/dist/server/server/application/releaseSynchronization.d.ts.map +1 -0
  278. package/dist/server/server/application/timelineExportAudits.d.ts +22 -0
  279. package/dist/server/server/application/timelineExportAudits.d.ts.map +1 -0
  280. package/dist/server/server/application/timelineExports.d.ts +46 -0
  281. package/dist/server/server/application/timelineExports.d.ts.map +1 -0
  282. package/dist/server/server/application/timelineReads.d.ts +29 -0
  283. package/dist/server/server/application/timelineReads.d.ts.map +1 -0
  284. package/dist/server/server/auth/Auth.d.ts +169 -0
  285. package/dist/server/server/auth/Auth.d.ts.map +1 -0
  286. package/dist/server/server/auth/AuthRepository.d.ts +160 -0
  287. package/dist/server/server/auth/AuthRepository.d.ts.map +1 -0
  288. package/dist/server/server/auth/TerminalRecovery.d.ts +35 -0
  289. package/dist/server/server/auth/TerminalRecovery.d.ts.map +1 -0
  290. package/dist/server/server/auth/errors.d.ts +31 -0
  291. package/dist/server/server/auth/errors.d.ts.map +1 -0
  292. package/dist/server/server/auth/index.d.ts +5 -0
  293. package/dist/server/server/auth/index.d.ts.map +1 -0
  294. package/dist/server/server/auth/models.d.ts +63 -0
  295. package/dist/server/server/auth/models.d.ts.map +1 -0
  296. package/dist/server/server/cli.d.ts +3 -0
  297. package/dist/server/server/cli.d.ts.map +1 -0
  298. package/dist/server/server/cli.js +669 -0
  299. package/dist/server/server/cli.js.map +1 -0
  300. package/dist/server/server/cliArguments.d.ts +21 -0
  301. package/dist/server/server/cliArguments.d.ts.map +1 -0
  302. package/dist/server/server/cliConfiguration.d.ts +20 -0
  303. package/dist/server/server/cliConfiguration.d.ts.map +1 -0
  304. package/dist/server/server/governance/governedActionAuthority.d.ts +54 -0
  305. package/dist/server/server/governance/governedActionAuthority.d.ts.map +1 -0
  306. package/dist/server/server/governance/governedActionDigests.d.ts +1348 -0
  307. package/dist/server/server/governance/governedActionDigests.d.ts.map +1 -0
  308. package/dist/server/server/governance/internal/GovernedActionExecutionEngine.d.ts +55 -0
  309. package/dist/server/server/governance/internal/GovernedActionExecutionEngine.d.ts.map +1 -0
  310. package/dist/server/server/governance/internal/GovernedActionExecutionStore.d.ts +116 -0
  311. package/dist/server/server/governance/internal/GovernedActionExecutionStore.d.ts.map +1 -0
  312. package/dist/server/server/governance/internal/GovernedActionPolicyEvaluator.d.ts +120 -0
  313. package/dist/server/server/governance/internal/GovernedActionPolicyEvaluator.d.ts.map +1 -0
  314. package/dist/server/server/governance/internal/execution-store/begin.d.ts +17 -0
  315. package/dist/server/server/governance/internal/execution-store/begin.d.ts.map +1 -0
  316. package/dist/server/server/governance/internal/execution-store/current-evidence.d.ts +33 -0
  317. package/dist/server/server/governance/internal/execution-store/current-evidence.d.ts.map +1 -0
  318. package/dist/server/server/governance/internal/execution-store/current-session.d.ts +29 -0
  319. package/dist/server/server/governance/internal/execution-store/current-session.d.ts.map +1 -0
  320. package/dist/server/server/governance/internal/execution-store/current-target.d.ts +28 -0
  321. package/dist/server/server/governance/internal/execution-store/current-target.d.ts.map +1 -0
  322. package/dist/server/server/governance/internal/execution-store/dispatch-inbox.d.ts +20 -0
  323. package/dist/server/server/governance/internal/execution-store/dispatch-inbox.d.ts.map +1 -0
  324. package/dist/server/server/governance/internal/execution-store/dispatch-outcome.d.ts +78 -0
  325. package/dist/server/server/governance/internal/execution-store/dispatch-outcome.d.ts.map +1 -0
  326. package/dist/server/server/governance/internal/execution-store/inspect.d.ts +17 -0
  327. package/dist/server/server/governance/internal/execution-store/inspect.d.ts.map +1 -0
  328. package/dist/server/server/governance/internal/execution-store/live.d.ts +6 -0
  329. package/dist/server/server/governance/internal/execution-store/live.d.ts.map +1 -0
  330. package/dist/server/server/governance/internal/execution-store/preparation.d.ts +42 -0
  331. package/dist/server/server/governance/internal/execution-store/preparation.d.ts.map +1 -0
  332. package/dist/server/server/governance/internal/execution-store/provider-outcome-fold.d.ts +33 -0
  333. package/dist/server/server/governance/internal/execution-store/provider-outcome-fold.d.ts.map +1 -0
  334. package/dist/server/server/governance/internal/execution-store/reconciliation-inbox.d.ts +20 -0
  335. package/dist/server/server/governance/internal/execution-store/reconciliation-inbox.d.ts.map +1 -0
  336. package/dist/server/server/governance/internal/execution-store/reconciliation-locator.d.ts +5 -0
  337. package/dist/server/server/governance/internal/execution-store/reconciliation-locator.d.ts.map +1 -0
  338. package/dist/server/server/governance/internal/execution-store/reconciliation-outcome.d.ts +123 -0
  339. package/dist/server/server/governance/internal/execution-store/reconciliation-outcome.d.ts.map +1 -0
  340. package/dist/server/server/governance/internal/execution-store/record-blocked.d.ts +13 -0
  341. package/dist/server/server/governance/internal/execution-store/record-blocked.d.ts.map +1 -0
  342. package/dist/server/server/governance/internal/execution-store/record-dispatch.d.ts +12 -0
  343. package/dist/server/server/governance/internal/execution-store/record-dispatch.d.ts.map +1 -0
  344. package/dist/server/server/governance/internal/execution-store/record-reconciliation.d.ts +12 -0
  345. package/dist/server/server/governance/internal/execution-store/record-reconciliation.d.ts.map +1 -0
  346. package/dist/server/server/governance/internal/execution-store/record-recovery-unavailable.d.ts +11 -0
  347. package/dist/server/server/governance/internal/execution-store/record-recovery-unavailable.d.ts.map +1 -0
  348. package/dist/server/server/governance/internal/execution-store/record-unknown.d.ts +11 -0
  349. package/dist/server/server/governance/internal/execution-store/record-unknown.d.ts.map +1 -0
  350. package/dist/server/server/governance/internal/execution-store/recovery-candidates.d.ts +12 -0
  351. package/dist/server/server/governance/internal/execution-store/recovery-candidates.d.ts.map +1 -0
  352. package/dist/server/server/governance/internal/execution-store/recovery-claim-expiry.d.ts +9 -0
  353. package/dist/server/server/governance/internal/execution-store/recovery-claim-expiry.d.ts.map +1 -0
  354. package/dist/server/server/governance/internal/execution-store/recovery-claim.d.ts +465 -0
  355. package/dist/server/server/governance/internal/execution-store/recovery-claim.d.ts.map +1 -0
  356. package/dist/server/server/governance/internal/execution-store/tokens.d.ts +52 -0
  357. package/dist/server/server/governance/internal/execution-store/tokens.d.ts.map +1 -0
  358. package/dist/server/server/http/StaticApplication.d.ts +8 -0
  359. package/dist/server/server/http/StaticApplication.d.ts.map +1 -0
  360. package/dist/server/server/http/index.d.ts +4 -0
  361. package/dist/server/server/http/index.d.ts.map +1 -0
  362. package/dist/server/server/http/security/HttpLimits.d.ts +22 -0
  363. package/dist/server/server/http/security/HttpLimits.d.ts.map +1 -0
  364. package/dist/server/server/http/security/RequestPolicy.d.ts +26 -0
  365. package/dist/server/server/http/security/RequestPolicy.d.ts.map +1 -0
  366. package/dist/server/server/http/security/RichDocument.d.ts +154 -0
  367. package/dist/server/server/http/security/RichDocument.d.ts.map +1 -0
  368. package/dist/server/server/http/security/SecurityHeaders.d.ts +7 -0
  369. package/dist/server/server/http/security/SecurityHeaders.d.ts.map +1 -0
  370. package/dist/server/server/http/security/StaticAssetStore.d.ts +43 -0
  371. package/dist/server/server/http/security/StaticAssetStore.d.ts.map +1 -0
  372. package/dist/server/server/http/security/UrlPolicy.d.ts +30 -0
  373. package/dist/server/server/http/security/UrlPolicy.d.ts.map +1 -0
  374. package/dist/server/server/http/security/index.d.ts +8 -0
  375. package/dist/server/server/http/security/index.d.ts.map +1 -0
  376. package/dist/server/server/index.d.ts +18 -0
  377. package/dist/server/server/index.d.ts.map +1 -0
  378. package/dist/server/server/index.js +583 -0
  379. package/dist/server/server/index.js.map +1 -0
  380. package/dist/server/server/observability.d.ts +13 -0
  381. package/dist/server/server/observability.d.ts.map +1 -0
  382. package/dist/server/server/persistence/ContentStore.d.ts +86 -0
  383. package/dist/server/server/persistence/ContentStore.d.ts.map +1 -0
  384. package/dist/server/server/persistence/Database.d.ts +26 -0
  385. package/dist/server/server/persistence/Database.d.ts.map +1 -0
  386. package/dist/server/server/persistence/Persistence.d.ts +7042 -0
  387. package/dist/server/server/persistence/Persistence.d.ts.map +1 -0
  388. package/dist/server/server/persistence/PersistenceConfig.d.ts +27 -0
  389. package/dist/server/server/persistence/PersistenceConfig.d.ts.map +1 -0
  390. package/dist/server/server/persistence/backup/BackupArchive.d.ts +32 -0
  391. package/dist/server/server/persistence/backup/BackupArchive.d.ts.map +1 -0
  392. package/dist/server/server/persistence/backup/BackupArchiveCore.d.ts +23 -0
  393. package/dist/server/server/persistence/backup/BackupArchiveCore.d.ts.map +1 -0
  394. package/dist/server/server/persistence/backup/BackupManifest.d.ts +136 -0
  395. package/dist/server/server/persistence/backup/BackupManifest.d.ts.map +1 -0
  396. package/dist/server/server/persistence/backup/DatabaseSnapshot.d.ts +53 -0
  397. package/dist/server/server/persistence/backup/DatabaseSnapshot.d.ts.map +1 -0
  398. package/dist/server/server/persistence/backup/errors.d.ts +53 -0
  399. package/dist/server/server/persistence/backup/errors.d.ts.map +1 -0
  400. package/dist/server/server/persistence/backup/index.d.ts +4 -0
  401. package/dist/server/server/persistence/backup/index.d.ts.map +1 -0
  402. package/dist/server/server/persistence/errors.d.ts +99 -0
  403. package/dist/server/server/persistence/errors.d.ts.map +1 -0
  404. package/dist/server/server/persistence/governedActionReconciliationLocator.d.ts +14 -0
  405. package/dist/server/server/persistence/governedActionReconciliationLocator.d.ts.map +1 -0
  406. package/dist/server/server/persistence/index.d.ts +11 -0
  407. package/dist/server/server/persistence/index.d.ts.map +1 -0
  408. package/dist/server/server/persistence/object-store/BlobDigest.d.ts +6 -0
  409. package/dist/server/server/persistence/object-store/BlobDigest.d.ts.map +1 -0
  410. package/dist/server/server/persistence/object-store/BlobPath.d.ts +12 -0
  411. package/dist/server/server/persistence/object-store/BlobPath.d.ts.map +1 -0
  412. package/dist/server/server/persistence/object-store/BlobPublisher.d.ts +8 -0
  413. package/dist/server/server/persistence/object-store/BlobPublisher.d.ts.map +1 -0
  414. package/dist/server/server/persistence/object-store/BlobRef.d.ts +16 -0
  415. package/dist/server/server/persistence/object-store/BlobRef.d.ts.map +1 -0
  416. package/dist/server/server/persistence/object-store/BlobStore.d.ts +37 -0
  417. package/dist/server/server/persistence/object-store/BlobStore.d.ts.map +1 -0
  418. package/dist/server/server/persistence/object-store/BlobStoreError.d.ts +57 -0
  419. package/dist/server/server/persistence/object-store/BlobStoreError.d.ts.map +1 -0
  420. package/dist/server/server/persistence/object-store/BlobStoreTypes.d.ts +28 -0
  421. package/dist/server/server/persistence/object-store/BlobStoreTypes.d.ts.map +1 -0
  422. package/dist/server/server/persistence/object-store/OpenedBlob.d.ts +21 -0
  423. package/dist/server/server/persistence/object-store/OpenedBlob.d.ts.map +1 -0
  424. package/dist/server/server/persistence/object-store/PinnedDirectory.d.ts +21 -0
  425. package/dist/server/server/persistence/object-store/PinnedDirectory.d.ts.map +1 -0
  426. package/dist/server/server/persistence/repositories/agentJobModels.d.ts +142 -0
  427. package/dist/server/server/persistence/repositories/agentJobModels.d.ts.map +1 -0
  428. package/dist/server/server/persistence/repositories/agentJobRepository.d.ts +134 -0
  429. package/dist/server/server/persistence/repositories/agentJobRepository.d.ts.map +1 -0
  430. package/dist/server/server/persistence/repositories/authorizedShareRepository.d.ts +92 -0
  431. package/dist/server/server/persistence/repositories/authorizedShareRepository.d.ts.map +1 -0
  432. package/dist/server/server/persistence/repositories/contentBlobMetadataRepository.d.ts +67 -0
  433. package/dist/server/server/persistence/repositories/contentBlobMetadataRepository.d.ts.map +1 -0
  434. package/dist/server/server/persistence/repositories/delivery-graph/contract.d.ts +2989 -0
  435. package/dist/server/server/persistence/repositories/delivery-graph/contract.d.ts.map +1 -0
  436. package/dist/server/server/persistence/repositories/delivery-graph/decode.d.ts +566 -0
  437. package/dist/server/server/persistence/repositories/delivery-graph/decode.d.ts.map +1 -0
  438. package/dist/server/server/persistence/repositories/delivery-graph/integrity.d.ts +16 -0
  439. package/dist/server/server/persistence/repositories/delivery-graph/integrity.d.ts.map +1 -0
  440. package/dist/server/server/persistence/repositories/delivery-graph/quarantine.d.ts +22 -0
  441. package/dist/server/server/persistence/repositories/delivery-graph/quarantine.d.ts.map +1 -0
  442. package/dist/server/server/persistence/repositories/delivery-graph/read.d.ts +2147 -0
  443. package/dist/server/server/persistence/repositories/delivery-graph/read.d.ts.map +1 -0
  444. package/dist/server/server/persistence/repositories/delivery-graph/release-slice.d.ts +16 -0
  445. package/dist/server/server/persistence/repositories/delivery-graph/release-slice.d.ts.map +1 -0
  446. package/dist/server/server/persistence/repositories/delivery-graph/rows.d.ts +683 -0
  447. package/dist/server/server/persistence/repositories/delivery-graph/rows.d.ts.map +1 -0
  448. package/dist/server/server/persistence/repositories/delivery-graph/write.d.ts +946 -0
  449. package/dist/server/server/persistence/repositories/delivery-graph/write.d.ts.map +1 -0
  450. package/dist/server/server/persistence/repositories/deliveryGraphRepository.d.ts +2121 -0
  451. package/dist/server/server/persistence/repositories/deliveryGraphRepository.d.ts.map +1 -0
  452. package/dist/server/server/persistence/repositories/domainEventModels.d.ts +89 -0
  453. package/dist/server/server/persistence/repositories/domainEventModels.d.ts.map +1 -0
  454. package/dist/server/server/persistence/repositories/domainEventRepository.d.ts +85 -0
  455. package/dist/server/server/persistence/repositories/domainEventRepository.d.ts.map +1 -0
  456. package/dist/server/server/persistence/repositories/entityRepository.d.ts +134 -0
  457. package/dist/server/server/persistence/repositories/entityRepository.d.ts.map +1 -0
  458. package/dist/server/server/persistence/repositories/governed-action/codec.d.ts +1478 -0
  459. package/dist/server/server/persistence/repositories/governed-action/codec.d.ts.map +1 -0
  460. package/dist/server/server/persistence/repositories/governed-action/contract.d.ts +858 -0
  461. package/dist/server/server/persistence/repositories/governed-action/contract.d.ts.map +1 -0
  462. package/dist/server/server/persistence/repositories/governed-action/quarantine.d.ts +22 -0
  463. package/dist/server/server/persistence/repositories/governed-action/quarantine.d.ts.map +1 -0
  464. package/dist/server/server/persistence/repositories/governed-action/read.d.ts +452 -0
  465. package/dist/server/server/persistence/repositories/governed-action/read.d.ts.map +1 -0
  466. package/dist/server/server/persistence/repositories/governed-action/rows.d.ts +115 -0
  467. package/dist/server/server/persistence/repositories/governed-action/rows.d.ts.map +1 -0
  468. package/dist/server/server/persistence/repositories/governed-action/transaction.d.ts +457 -0
  469. package/dist/server/server/persistence/repositories/governed-action/transaction.d.ts.map +1 -0
  470. package/dist/server/server/persistence/repositories/governed-action/write-preparation.d.ts +518 -0
  471. package/dist/server/server/persistence/repositories/governed-action/write-preparation.d.ts.map +1 -0
  472. package/dist/server/server/persistence/repositories/governed-action/write-replay.d.ts +702 -0
  473. package/dist/server/server/persistence/repositories/governed-action/write-replay.d.ts.map +1 -0
  474. package/dist/server/server/persistence/repositories/governed-action/write.d.ts +618 -0
  475. package/dist/server/server/persistence/repositories/governed-action/write.d.ts.map +1 -0
  476. package/dist/server/server/persistence/repositories/governedActionRepository.d.ts +467 -0
  477. package/dist/server/server/persistence/repositories/governedActionRepository.d.ts.map +1 -0
  478. package/dist/server/server/persistence/repositories/index.d.ts +26 -0
  479. package/dist/server/server/persistence/repositories/index.d.ts.map +1 -0
  480. package/dist/server/server/persistence/repositories/internal.d.ts +38 -0
  481. package/dist/server/server/persistence/repositories/internal.d.ts.map +1 -0
  482. package/dist/server/server/persistence/repositories/models.d.ts +420 -0
  483. package/dist/server/server/persistence/repositories/models.d.ts.map +1 -0
  484. package/dist/server/server/persistence/repositories/peopleRepository.d.ts +407 -0
  485. package/dist/server/server/persistence/repositories/peopleRepository.d.ts.map +1 -0
  486. package/dist/server/server/persistence/repositories/persistedRowQuarantine.d.ts +20 -0
  487. package/dist/server/server/persistence/repositories/persistedRowQuarantine.d.ts.map +1 -0
  488. package/dist/server/server/persistence/repositories/pluginConfigurationModels.d.ts +76 -0
  489. package/dist/server/server/persistence/repositories/pluginConfigurationModels.d.ts.map +1 -0
  490. package/dist/server/server/persistence/repositories/pluginConfigurationRepository.d.ts +179 -0
  491. package/dist/server/server/persistence/repositories/pluginConfigurationRepository.d.ts.map +1 -0
  492. package/dist/server/server/persistence/repositories/pluginConnectionRepository.d.ts +123 -0
  493. package/dist/server/server/persistence/repositories/pluginConnectionRepository.d.ts.map +1 -0
  494. package/dist/server/server/persistence/repositories/pluginRuntimeModels.d.ts +195 -0
  495. package/dist/server/server/persistence/repositories/pluginRuntimeModels.d.ts.map +1 -0
  496. package/dist/server/server/persistence/repositories/pluginRuntimeRepository.d.ts +431 -0
  497. package/dist/server/server/persistence/repositories/pluginRuntimeRepository.d.ts.map +1 -0
  498. package/dist/server/server/persistence/repositories/providerAccountRepository.d.ts +150 -0
  499. package/dist/server/server/persistence/repositories/providerAccountRepository.d.ts.map +1 -0
  500. package/dist/server/server/persistence/repositories/quarantineRepository.d.ts +42 -0
  501. package/dist/server/server/persistence/repositories/quarantineRepository.d.ts.map +1 -0
  502. package/dist/server/server/persistence/repositories/readiness/assessments.d.ts +2679 -0
  503. package/dist/server/server/persistence/repositories/readiness/assessments.d.ts.map +1 -0
  504. package/dist/server/server/persistence/repositories/readiness/codec.d.ts +1368 -0
  505. package/dist/server/server/persistence/repositories/readiness/codec.d.ts.map +1 -0
  506. package/dist/server/server/persistence/repositories/readiness/contract.d.ts +3315 -0
  507. package/dist/server/server/persistence/repositories/readiness/contract.d.ts.map +1 -0
  508. package/dist/server/server/persistence/repositories/readiness/materialization.d.ts +459 -0
  509. package/dist/server/server/persistence/repositories/readiness/materialization.d.ts.map +1 -0
  510. package/dist/server/server/persistence/repositories/readiness/quarantine.d.ts +22 -0
  511. package/dist/server/server/persistence/repositories/readiness/quarantine.d.ts.map +1 -0
  512. package/dist/server/server/persistence/repositories/readiness/queue.d.ts +112 -0
  513. package/dist/server/server/persistence/repositories/readiness/queue.d.ts.map +1 -0
  514. package/dist/server/server/persistence/repositories/readiness/rows.d.ts +169 -0
  515. package/dist/server/server/persistence/repositories/readiness/rows.d.ts.map +1 -0
  516. package/dist/server/server/persistence/repositories/readiness/rules.d.ts +85 -0
  517. package/dist/server/server/persistence/repositories/readiness/rules.d.ts.map +1 -0
  518. package/dist/server/server/persistence/repositories/readinessRepository.d.ts +1722 -0
  519. package/dist/server/server/persistence/repositories/readinessRepository.d.ts.map +1 -0
  520. package/dist/server/server/persistence/repositories/relationshipRepairProposalRepository.d.ts +294 -0
  521. package/dist/server/server/persistence/repositories/relationshipRepairProposalRepository.d.ts.map +1 -0
  522. package/dist/server/server/persistence/repositories/releaseRepository.d.ts +1062 -0
  523. package/dist/server/server/persistence/repositories/releaseRepository.d.ts.map +1 -0
  524. package/dist/server/server/persistence/repositories/timelineExportAuditRepository.d.ts +39 -0
  525. package/dist/server/server/persistence/repositories/timelineExportAuditRepository.d.ts.map +1 -0
  526. package/dist/server/server/persistence/repositories/timelineRepository.d.ts +84 -0
  527. package/dist/server/server/persistence/repositories/timelineRepository.d.ts.map +1 -0
  528. package/dist/server/server/persistence/repositories/workspaceRepository.d.ts +52 -0
  529. package/dist/server/server/persistence/repositories/workspaceRepository.d.ts.map +1 -0
  530. package/dist/server/server/persistence/schema.d.ts +17 -0
  531. package/dist/server/server/persistence/schema.d.ts.map +1 -0
  532. package/dist/server/server/persistence/schemas.d.ts +14 -0
  533. package/dist/server/server/persistence/schemas.d.ts.map +1 -0
  534. package/dist/server/server/plugins/AtlassianBasicAuth.d.ts +2 -0
  535. package/dist/server/server/plugins/AtlassianBasicAuth.d.ts.map +1 -0
  536. package/dist/server/server/plugins/PluginCapabilityCodecs.d.ts +357 -0
  537. package/dist/server/server/plugins/PluginCapabilityCodecs.d.ts.map +1 -0
  538. package/dist/server/server/plugins/PluginConnection.d.ts +28 -0
  539. package/dist/server/server/plugins/PluginConnection.d.ts.map +1 -0
  540. package/dist/server/server/plugins/PluginConnectionMap.d.ts +22 -0
  541. package/dist/server/server/plugins/PluginConnectionMap.d.ts.map +1 -0
  542. package/dist/server/server/plugins/PluginDefinition.d.ts +9 -0
  543. package/dist/server/server/plugins/PluginDefinition.d.ts.map +1 -0
  544. package/dist/server/server/plugins/PluginDefinitionV1.d.ts +11 -0
  545. package/dist/server/server/plugins/PluginDefinitionV1.d.ts.map +1 -0
  546. package/dist/server/server/plugins/PluginExecutor.d.ts +14 -0
  547. package/dist/server/server/plugins/PluginExecutor.d.ts.map +1 -0
  548. package/dist/server/server/plugins/atlassian/AtlassianOAuthGrants.d.ts +35 -0
  549. package/dist/server/server/plugins/atlassian/AtlassianOAuthGrants.d.ts.map +1 -0
  550. package/dist/server/server/plugins/atlassian/AtlassianProfiles.d.ts +39 -0
  551. package/dist/server/server/plugins/atlassian/AtlassianProfiles.d.ts.map +1 -0
  552. package/dist/server/server/plugins/catalog/firstPartyServiceCatalog.d.ts +13 -0
  553. package/dist/server/server/plugins/catalog/firstPartyServiceCatalog.d.ts.map +1 -0
  554. package/dist/server/server/plugins/clockify/ClockifyReadPlugin.d.ts +78 -0
  555. package/dist/server/server/plugins/clockify/ClockifyReadPlugin.d.ts.map +1 -0
  556. package/dist/server/server/plugins/clockify/ClockifyReadProvider.d.ts +2 -0
  557. package/dist/server/server/plugins/clockify/ClockifyReadProvider.d.ts.map +1 -0
  558. package/dist/server/server/plugins/clockify/ClockifyTimeEntryNormalization.d.ts +2 -0
  559. package/dist/server/server/plugins/clockify/ClockifyTimeEntryNormalization.d.ts.map +1 -0
  560. package/dist/server/server/plugins/clockify/index.d.ts +3 -0
  561. package/dist/server/server/plugins/clockify/index.d.ts.map +1 -0
  562. package/dist/server/server/plugins/codecommit/CodeCommitPluginDefinition.d.ts +4 -0
  563. package/dist/server/server/plugins/codecommit/CodeCommitPluginDefinition.d.ts.map +1 -0
  564. package/dist/server/server/plugins/codecommit/index.d.ts +3 -0
  565. package/dist/server/server/plugins/codecommit/index.d.ts.map +1 -0
  566. package/dist/server/server/plugins/codepipeline/CodePipelinePluginDefinition.d.ts +4 -0
  567. package/dist/server/server/plugins/codepipeline/CodePipelinePluginDefinition.d.ts.map +1 -0
  568. package/dist/server/server/plugins/codepipeline/CodePipelineReadClient.d.ts +2 -0
  569. package/dist/server/server/plugins/codepipeline/CodePipelineReadClient.d.ts.map +1 -0
  570. package/dist/server/server/plugins/codepipeline/CodePipelineReadProvider.d.ts +2 -0
  571. package/dist/server/server/plugins/codepipeline/CodePipelineReadProvider.d.ts.map +1 -0
  572. package/dist/server/server/plugins/codepipeline/index.d.ts +3 -0
  573. package/dist/server/server/plugins/codepipeline/index.d.ts.map +1 -0
  574. package/dist/server/server/plugins/confluence/ConfluencePageAdapter.d.ts +2 -0
  575. package/dist/server/server/plugins/confluence/ConfluencePageAdapter.d.ts.map +1 -0
  576. package/dist/server/server/plugins/confluence/ConfluencePageClient.d.ts +2 -0
  577. package/dist/server/server/plugins/confluence/ConfluencePageClient.d.ts.map +1 -0
  578. package/dist/server/server/plugins/confluence/ConfluencePagePluginDefinition.d.ts +44 -0
  579. package/dist/server/server/plugins/confluence/ConfluencePagePluginDefinition.d.ts.map +1 -0
  580. package/dist/server/server/plugins/confluence/ConfluencePageSchemas.d.ts +2 -0
  581. package/dist/server/server/plugins/confluence/ConfluencePageSchemas.d.ts.map +1 -0
  582. package/dist/server/server/plugins/confluence/SafeConfluenceMarkdown.d.ts +2 -0
  583. package/dist/server/server/plugins/confluence/SafeConfluenceMarkdown.d.ts.map +1 -0
  584. package/dist/server/server/plugins/failures.d.ts +79 -0
  585. package/dist/server/server/plugins/failures.d.ts.map +1 -0
  586. package/dist/server/server/plugins/fake/FakePluginDefinition.d.ts +17 -0
  587. package/dist/server/server/plugins/fake/FakePluginDefinition.d.ts.map +1 -0
  588. package/dist/server/server/plugins/fake/FakePluginProbe.d.ts +40 -0
  589. package/dist/server/server/plugins/fake/FakePluginProbe.d.ts.map +1 -0
  590. package/dist/server/server/plugins/fake/FakePluginScenario.d.ts +46 -0
  591. package/dist/server/server/plugins/fake/FakePluginScenario.d.ts.map +1 -0
  592. package/dist/server/server/plugins/firstPartySynchronization.d.ts +7 -0
  593. package/dist/server/server/plugins/firstPartySynchronization.d.ts.map +1 -0
  594. package/dist/server/server/plugins/index.d.ts +21 -0
  595. package/dist/server/server/plugins/index.d.ts.map +1 -0
  596. package/dist/server/server/plugins/internal/AuthorizedPluginExecutor.d.ts +8 -0
  597. package/dist/server/server/plugins/internal/AuthorizedPluginExecutor.d.ts.map +1 -0
  598. package/dist/server/server/plugins/internal/AuthorizedPluginExecutorMap.d.ts +27 -0
  599. package/dist/server/server/plugins/internal/AuthorizedPluginExecutorMap.d.ts.map +1 -0
  600. package/dist/server/server/plugins/internal/FirstPartyPluginRuntimeRegistry.d.ts +2 -0
  601. package/dist/server/server/plugins/internal/FirstPartyPluginRuntimeRegistry.d.ts.map +1 -0
  602. package/dist/server/server/plugins/internal/PluginRuntime.d.ts +13 -0
  603. package/dist/server/server/plugins/internal/PluginRuntime.d.ts.map +1 -0
  604. package/dist/server/server/plugins/internal/PluginRuntimeAuthority.d.ts +154 -0
  605. package/dist/server/server/plugins/internal/PluginRuntimeAuthority.d.ts.map +1 -0
  606. package/dist/server/server/plugins/internal/PluginRuntimeAuthorityRepository.d.ts +131 -0
  607. package/dist/server/server/plugins/internal/PluginRuntimeAuthorityRepository.d.ts.map +1 -0
  608. package/dist/server/server/plugins/internal/PluginRuntimeAuthoritySource.d.ts +23 -0
  609. package/dist/server/server/plugins/internal/PluginRuntimeAuthoritySource.d.ts.map +1 -0
  610. package/dist/server/server/plugins/internal/PluginRuntimeMap.d.ts +23 -0
  611. package/dist/server/server/plugins/internal/PluginRuntimeMap.d.ts.map +1 -0
  612. package/dist/server/server/plugins/internal/PluginRuntimeRegistry.d.ts +21 -0
  613. package/dist/server/server/plugins/internal/PluginRuntimeRegistry.d.ts.map +1 -0
  614. package/dist/server/server/plugins/jira/JiraIssueNormalization.d.ts +2 -0
  615. package/dist/server/server/plugins/jira/JiraIssueNormalization.d.ts.map +1 -0
  616. package/dist/server/server/plugins/jira/JiraReadPlugin.d.ts +74 -0
  617. package/dist/server/server/plugins/jira/JiraReadPlugin.d.ts.map +1 -0
  618. package/dist/server/server/plugins/jira/JiraReadProvider.d.ts +7 -0
  619. package/dist/server/server/plugins/jira/JiraReadProvider.d.ts.map +1 -0
  620. package/dist/server/server/plugins/jira/index.d.ts +3 -0
  621. package/dist/server/server/plugins/jira/index.d.ts.map +1 -0
  622. package/dist/server/server/plugins/negotiation.d.ts +75 -0
  623. package/dist/server/server/plugins/negotiation.d.ts.map +1 -0
  624. package/dist/server/server/plugins/retryPolicy.d.ts +28 -0
  625. package/dist/server/server/plugins/retryPolicy.d.ts.map +1 -0
  626. package/dist/server/server/readinessDigests.d.ts +103 -0
  627. package/dist/server/server/readinessDigests.d.ts.map +1 -0
  628. package/dist/server/server/runtime/Bootstrap.d.ts +39 -0
  629. package/dist/server/server/runtime/Bootstrap.d.ts.map +1 -0
  630. package/dist/server/server/runtime/ControlCenterServer.d.ts +57 -0
  631. package/dist/server/server/runtime/ControlCenterServer.d.ts.map +1 -0
  632. package/dist/server/server/runtime/DatabaseDrain.d.ts +6 -0
  633. package/dist/server/server/runtime/DatabaseDrain.d.ts.map +1 -0
  634. package/dist/server/server/runtime/DomainEventWakeups.d.ts +22 -0
  635. package/dist/server/server/runtime/DomainEventWakeups.d.ts.map +1 -0
  636. package/dist/server/server/runtime/FirstPartyPluginRuntime.d.ts +2 -0
  637. package/dist/server/server/runtime/FirstPartyPluginRuntime.d.ts.map +1 -0
  638. package/dist/server/server/runtime/GovernedActionExecutionStartup.d.ts +35 -0
  639. package/dist/server/server/runtime/GovernedActionExecutionStartup.d.ts.map +1 -0
  640. package/dist/server/server/runtime/NodeTransport.d.ts +57 -0
  641. package/dist/server/server/runtime/NodeTransport.d.ts.map +1 -0
  642. package/dist/server/server/runtime/ReleaseSynchronizationStartup.d.ts +44 -0
  643. package/dist/server/server/runtime/ReleaseSynchronizationStartup.d.ts.map +1 -0
  644. package/dist/server/server/runtime/RequestUrlBoundary.d.ts +4 -0
  645. package/dist/server/server/runtime/RequestUrlBoundary.d.ts.map +1 -0
  646. package/dist/server/server/runtime/ServerLifecycle.d.ts +74 -0
  647. package/dist/server/server/runtime/ServerLifecycle.d.ts.map +1 -0
  648. package/dist/server/server/runtime/index.d.ts +9 -0
  649. package/dist/server/server/runtime/index.d.ts.map +1 -0
  650. package/dist/server/server/secrets/SecretRef.d.ts +6 -0
  651. package/dist/server/server/secrets/SecretRef.d.ts.map +1 -0
  652. package/dist/server/server/secrets/SecretStore.d.ts +39 -0
  653. package/dist/server/server/secrets/SecretStore.d.ts.map +1 -0
  654. package/dist/server/server/secrets/SecretStoreError.d.ts +41 -0
  655. package/dist/server/server/secrets/SecretStoreError.d.ts.map +1 -0
  656. package/dist/server/server/secrets/index.d.ts +5 -0
  657. package/dist/server/server/secrets/index.d.ts.map +1 -0
  658. package/dist/server/server/security/BindConfig.d.ts +51 -0
  659. package/dist/server/server/security/BindConfig.d.ts.map +1 -0
  660. package/dist/server/server/security/RequestSecurity.d.ts +84 -0
  661. package/dist/server/server/security/RequestSecurity.d.ts.map +1 -0
  662. package/dist/server/server/security/index.d.ts +3 -0
  663. package/dist/server/server/security/index.d.ts.map +1 -0
  664. package/package.json +101 -0
@@ -0,0 +1,1012 @@
1
+ import { Ar as GovernedActionAuthorizationId, Bt as HumanActor, Cn as ReadinessReleaseRevision, Cr as EntityId, Dr as EvidenceId, En as ReadinessRuleVersion, Er as EvidenceClaimId, Fn as compareReadinessText, Fr as PersonId, Gn as deriveReleaseReadinessVerdict, Gr as ShareId, Hn as deriveReleaseReadinessNextEvaluationAt, Hr as ReleaseId, Ir as PluginConnectionId, Kn as readinessDefinitionsShapeIsV1, Kr as WorkspaceId, Mr as GovernedActionTransitionId, Pr as JobId, Rr as ReadinessAssessmentId, Rt as AgentActor, Sr as DomainEventId, Un as deriveReleaseReadinessSourceSummaries, Vn as deriveReleaseReadinessFindings, Wn as deriveReleaseReadinessStages, Wr as SessionId, Wt as Role, _r as SourceUrl, ar as MaximumPluginPayloadBytes, bt as SemanticVersion, cr as hasMaximumPluginJsonBytes, dn as ReadinessFactDefinition, gr as SourceRevision, hn as ReadinessFactObservation, hr as Revision, in as ReadinessArtifactRevision, jr as GovernedActionId, kr as GovernedActionAttemptId, mr as ProviderId, on as ReadinessCandidateDigest, or as MaximumPluginSyncPageBytes, rr as sortedReadinessUnique, sr as PluginPayloadJson, t as DomainEventCorrelationId, tr as readinessPolicyShapeIsV1, vr as VendorImmutableId, wn as ReadinessRuleId, wr as EnvironmentId, yr as UtcTimestamp, yt as PluginId } from "./domainEvent-x7yeq-gU.js";
2
+ import * as Schema from "effect/Schema";
3
+ import * as DateTime from "effect/DateTime";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Result from "effect/Result";
6
+ import * as SchemaGetter from "effect/SchemaGetter";
7
+ import * as Encoding from "effect/Encoding";
8
+ //#region src/domain/authorizedShare.ts
9
+ /** Exact normalized entity scope granted to one authenticated person. */
10
+ var AuthorizedShareTarget = Schema.TaggedStruct("entity", { entityId: EntityId });
11
+ /** Durable authenticated grant with immutable creation and optional revocation evidence. */
12
+ var AuthorizedShareGrant = Schema.Struct({
13
+ workspaceId: WorkspaceId,
14
+ shareId: ShareId,
15
+ target: AuthorizedShareTarget,
16
+ granteePersonId: PersonId,
17
+ createdByPersonId: PersonId,
18
+ createdBySessionId: SessionId,
19
+ createdAt: UtcTimestamp,
20
+ expiresAt: UtcTimestamp,
21
+ revokedAt: Schema.NullOr(UtcTimestamp)
22
+ }).check(Schema.makeFilter(({ createdAt, expiresAt }) => DateTime.Order(createdAt, expiresAt) < 0, { expected: "authorized share expiry after creation" }), Schema.makeFilter(({ createdAt, revokedAt }) => revokedAt === null || DateTime.Order(createdAt, revokedAt) <= 0, { expected: "authorized share revocation at or after creation" }));
23
+ //#endregion
24
+ //#region src/domain/plugins/events.ts
25
+ var boundedOpaque$1 = (name, maximum) => Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(maximum)).pipe(Schema.brand(name));
26
+ /** Stable adapter event identity used to make checkpoint replay idempotent. */
27
+ var PluginEventId = boundedOpaque$1("PluginEventId", 512);
28
+ /** Opaque bounded checkpoint owned by one plugin sync stream. */
29
+ var PluginCheckpointV1 = boundedOpaque$1("PluginCheckpointV1", 2048);
30
+ /** Opaque page cursor for optional paginated reads. */
31
+ var PluginPageCursorV1 = boundedOpaque$1("PluginPageCursorV1", 2048);
32
+ /** Stable entity category emitted without vendor-specific response shapes. */
33
+ var PluginEntityType = boundedOpaque$1("PluginEntityType", 100);
34
+ var SafeSummary$1 = Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(500));
35
+ var MaximumDiffContentBytes = 1048576;
36
+ var MaximumDiffContentBase64Characters = 4 * Math.ceil(MaximumDiffContentBytes / 3);
37
+ var hasSafeRelativePathShape = Schema.makeFilter((value) => {
38
+ if (value.startsWith("/") || value.includes("\\") || /^[a-zA-Z]:/u.test(value)) return false;
39
+ return value.split("/").every((segment) => segment !== "" && segment !== "." && segment !== "..") && Array.from(value).every((character) => {
40
+ const codePoint = character.codePointAt(0);
41
+ return codePoint !== void 0 && !(codePoint >= 0 && codePoint <= 31 || codePoint >= 127 && codePoint <= 159);
42
+ });
43
+ }, { expected: "a normalized provider-relative path without traversal or control characters" });
44
+ var hasMaximumDecodedDiffBytes = Schema.makeFilter((value) => {
45
+ const decoded = Encoding.decodeBase64(value);
46
+ return Result.isSuccess(decoded) && decoded.success.byteLength <= MaximumDiffContentBytes;
47
+ }, { expected: `base64 data decoding to at most ${MaximumDiffContentBytes} bytes` });
48
+ /** Normalized provider-relative path safe to carry across diff and storage boundaries. */
49
+ var PluginRelativePathV1 = Schema.String.check(Schema.isNonEmpty(), Schema.isMaxLength(4096), hasSafeRelativePathShape).pipe(Schema.brand("PluginRelativePathV1"));
50
+ var PluginDiffContentBase64V1 = Schema.String.check(Schema.isMaxLength(MaximumDiffContentBase64Characters), Schema.isBase64(), hasMaximumDecodedDiffBytes);
51
+ var commonEventFields = {
52
+ eventId: PluginEventId,
53
+ observedAt: UtcTimestamp,
54
+ revision: Revision
55
+ };
56
+ var entityReferenceFields = {
57
+ entityType: PluginEntityType,
58
+ vendorImmutableId: VendorImmutableId
59
+ };
60
+ /** Adapter-owned reference to a provider entity; host scope is deliberately absent. */
61
+ var PluginEntityReferenceV1 = Schema.Struct(entityReferenceFields);
62
+ var UpsertEntity = Schema.TaggedStruct("UpsertEntity", {
63
+ ...commonEventFields,
64
+ ...entityReferenceFields,
65
+ sourceUrl: Schema.NullOr(SourceUrl),
66
+ title: SafeSummary$1,
67
+ attributes: Schema.Record(Schema.String.check(Schema.isNonEmpty(), Schema.isMaxLength(200)), Schema.Json).check(hasMaximumPluginJsonBytes(MaximumPluginPayloadBytes))
68
+ });
69
+ var TombstoneEntity = Schema.TaggedStruct("TombstoneEntity", {
70
+ ...commonEventFields,
71
+ ...entityReferenceFields,
72
+ reason: SafeSummary$1
73
+ });
74
+ var AppendEvidence = Schema.TaggedStruct("AppendEvidence", {
75
+ ...commonEventFields,
76
+ evidenceId: boundedOpaque$1("PluginEvidenceId", 512),
77
+ subject: PluginEntityReferenceV1,
78
+ evidenceType: boundedOpaque$1("PluginEvidenceType", 100),
79
+ summary: SafeSummary$1,
80
+ capturedAt: UtcTimestamp,
81
+ data: PluginPayloadJson
82
+ });
83
+ var UpsertPerson = Schema.TaggedStruct("UpsertPerson", {
84
+ ...commonEventFields,
85
+ vendorPersonId: boundedOpaque$1("PluginVendorPersonId", 512),
86
+ displayName: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(200)),
87
+ avatarUrl: Schema.NullOr(SourceUrl),
88
+ active: Schema.Boolean
89
+ });
90
+ var ProposeRelationship = Schema.TaggedStruct("ProposeRelationship", {
91
+ ...commonEventFields,
92
+ relationshipId: boundedOpaque$1("PluginRelationshipId", 512),
93
+ from: PluginEntityReferenceV1,
94
+ to: PluginEntityReferenceV1,
95
+ relationshipType: boundedOpaque$1("PluginRelationshipType", 100),
96
+ confidence: Schema.Number.check(Schema.isBetween({
97
+ minimum: 0,
98
+ maximum: 1
99
+ })),
100
+ evidenceIds: Schema.Array(boundedOpaque$1("PluginRelationshipEvidenceId", 512)).check(Schema.makeFilter((evidenceIds) => evidenceIds.length <= 100, { expected: "at most 100 relationship evidence identities" }), Schema.isUnique())
101
+ });
102
+ /** Vendor-neutral event emitted by a plugin and scoped by the host on ingestion. */
103
+ var NormalizedPluginEventV1 = Schema.Union([
104
+ UpsertEntity,
105
+ TombstoneEntity,
106
+ AppendEvidence,
107
+ UpsertPerson,
108
+ ProposeRelationship
109
+ ]).pipe(Schema.toTaggedUnion("_tag"));
110
+ /** A fully decoded page whose events and checkpoint must commit atomically. */
111
+ var PluginSyncPageV1 = Schema.Struct({
112
+ events: Schema.Array(NormalizedPluginEventV1).check(Schema.makeFilter((events) => events.length <= 500, { expected: "at most 500 normalized plugin events" }), Schema.makeFilter((events) => new Set(events.map(({ eventId }) => eventId)).size === events.length, { expected: "unique normalized plugin event identities within a page" })),
113
+ checkpointAfterPage: PluginCheckpointV1,
114
+ hasMore: Schema.Boolean
115
+ }).check(hasMaximumPluginJsonBytes(MaximumPluginSyncPageBytes)).annotate({ identifier: "PluginSyncPageV1" });
116
+ /** Request to resume a logical plugin stream from an accepted checkpoint. */
117
+ var PluginSyncRequestV1 = Schema.Struct({
118
+ streamKey: boundedOpaque$1("PluginSyncStreamKey", 100),
119
+ checkpoint: Schema.NullOr(PluginCheckpointV1)
120
+ }).annotate({ identifier: "PluginSyncRequestV1" });
121
+ /** Request for one normalized entity by its immutable provider reference. */
122
+ var ReadPluginEntityRequestV1 = PluginEntityReferenceV1;
123
+ var FoundPluginEntity = Schema.TaggedStruct("found", { event: UpsertEntity });
124
+ var MissingPluginEntity = Schema.TaggedStruct("missing", {
125
+ reference: PluginEntityReferenceV1,
126
+ observedAt: UtcTimestamp
127
+ });
128
+ /** Authoritative result of a normalized plugin entity read. */
129
+ var ReadPluginEntityResultV1 = Schema.Union([FoundPluginEntity, MissingPluginEntity]).pipe(Schema.toTaggedUnion("_tag"));
130
+ /** One bounded file-like entry in a complete diff inventory. */
131
+ var PluginDiffInventoryEntryV1 = Schema.Struct({
132
+ path: PluginRelativePathV1,
133
+ previousPath: Schema.NullOr(PluginRelativePathV1),
134
+ status: Schema.Literals([
135
+ "added",
136
+ "modified",
137
+ "deleted",
138
+ "renamed",
139
+ "copied"
140
+ ]),
141
+ binary: Schema.Boolean,
142
+ generated: Schema.Boolean,
143
+ oversized: Schema.Boolean
144
+ });
145
+ /** Request for one page of a complete diff inventory. */
146
+ var DiffInventoryPageRequestV1 = Schema.Struct({
147
+ entity: PluginEntityReferenceV1,
148
+ cursor: Schema.NullOr(PluginPageCursorV1)
149
+ });
150
+ /** A bounded diff inventory page. */
151
+ var DiffInventoryPageV1 = Schema.Struct({
152
+ entries: Schema.Array(PluginDiffInventoryEntryV1).check(Schema.makeFilter((entries) => entries.length <= 500, { expected: "at most 500 diff inventory entries" })),
153
+ nextCursor: Schema.NullOr(PluginPageCursorV1)
154
+ });
155
+ /** Request for a bounded byte range of before/after diff content. */
156
+ var DiffContentRangeRequestV1 = Schema.Struct({
157
+ entity: PluginEntityReferenceV1,
158
+ path: PluginRelativePathV1,
159
+ side: Schema.Literals(["before", "after"]),
160
+ offset: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),
161
+ length: Schema.Int.check(Schema.isBetween({
162
+ minimum: 1,
163
+ maximum: 1048576
164
+ }))
165
+ });
166
+ /** Bounded content range with explicit availability metadata. */
167
+ var DiffContentRangeV1 = Schema.Struct({
168
+ bytesBase64: Schema.NullOr(PluginDiffContentBase64V1),
169
+ totalBytes: Schema.NullOr(Schema.Int.check(Schema.isGreaterThanOrEqualTo(0))),
170
+ unavailableReason: Schema.NullOr(Schema.Literals([
171
+ "binary",
172
+ "generated",
173
+ "oversized",
174
+ "missing",
175
+ "provider-unavailable"
176
+ ]))
177
+ }).check(Schema.makeFilter(({ bytesBase64, totalBytes, unavailableReason }) => unavailableReason === null ? bytesBase64 !== null && totalBytes !== null : bytesBase64 === null, { expected: "available content bytes or an explicit unavailable reason" }));
178
+ //#endregion
179
+ //#region src/domain/plugins/actions.ts
180
+ var boundedOpaque = (name, maximum) => Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(maximum)).pipe(Schema.brand(name));
181
+ var PositiveInteger$2 = Schema.Int.check(Schema.isGreaterThan(0));
182
+ var SafeSummary = Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(1e3));
183
+ /** Lowercase SHA-256 digest of a canonical governed-action payload. */
184
+ var PluginActionPayloadDigest = Schema.String.check(Schema.isPattern(/^[0-9a-f]{64}$/u, { expected: "a lowercase SHA-256 digest" })).pipe(Schema.brand("PluginActionPayloadDigest"));
185
+ /** Opaque provider locator used to reconcile a mutation without replaying it. */
186
+ var PluginActionReconciliationKey = boundedOpaque("PluginActionReconciliationKey", 512);
187
+ /** Opaque provider identity of one accepted or completed mutation. */
188
+ var PluginProviderOperationId = boundedOpaque("PluginProviderOperationId", 512);
189
+ /** Request for a provider-neutral action proposal; it cannot authorize execution. */
190
+ var ProposePluginActionRequestV1 = Schema.Struct({
191
+ actionKind: boundedOpaque("PluginActionKind", 100),
192
+ target: PluginEntityReferenceV1,
193
+ expectedRevision: Revision,
194
+ payload: PluginPayloadJson,
195
+ evidenceIds: Schema.Array(boundedOpaque("PluginActionEvidenceId", 512)).check(Schema.isUnique(), Schema.makeFilter((evidenceIds) => evidenceIds.length <= 100, { expected: "at most 100 action evidence identities" }))
196
+ });
197
+ /** Proposal returned to the host for later policy and human authorization. */
198
+ var PluginActionProposalV1 = Schema.Struct({
199
+ proposalKey: boundedOpaque("PluginActionProposalKey", 512),
200
+ capabilityVersion: PositiveInteger$2,
201
+ request: ProposePluginActionRequestV1,
202
+ payloadDigest: PluginActionPayloadDigest,
203
+ summary: SafeSummary,
204
+ impact: Schema.Struct({
205
+ level: Schema.Literals([
206
+ "low",
207
+ "medium",
208
+ "high",
209
+ "critical"
210
+ ]),
211
+ summary: SafeSummary
212
+ }),
213
+ proposedAt: UtcTimestamp
214
+ });
215
+ /** Host-authorized request accepted only by the sealed internal executor. */
216
+ var AuthorizedPluginActionV1 = Schema.Struct({
217
+ proposal: PluginActionProposalV1,
218
+ idempotencyKey: boundedOpaque("PluginActionIdempotencyKey", 512),
219
+ payloadDigest: PluginActionPayloadDigest,
220
+ authorizationId: boundedOpaque("PluginActionAuthorizationId", 512),
221
+ authorizedAt: UtcTimestamp,
222
+ expiresAt: UtcTimestamp
223
+ }).check(Schema.makeFilter(({ authorizedAt, expiresAt }) => DateTime.Order(authorizedAt, expiresAt) < 0, { expected: "plugin action authorization to expire after it is issued" }), Schema.makeFilter(({ payloadDigest, proposal }) => payloadDigest === proposal.payloadDigest, { expected: "authorized payload digest to match its canonical proposal digest" }));
224
+ var providerReceiptFields = {
225
+ providerOperationId: PluginProviderOperationId,
226
+ safeSummary: SafeSummary,
227
+ observedAt: UtcTimestamp
228
+ };
229
+ /** Accepted provider work that remains unresolved and can be reconciled safely. */
230
+ var PluginAcceptedProviderReceiptV1 = Schema.Struct({
231
+ ...providerReceiptFields,
232
+ status: Schema.Literal("accepted"),
233
+ reconciliationKey: PluginActionReconciliationKey
234
+ });
235
+ /** Terminal provider receipt safe to persist and display without raw response data. */
236
+ var PluginTerminalProviderReceiptV1 = Schema.Struct({
237
+ ...providerReceiptFields,
238
+ status: Schema.Literals([
239
+ "succeeded",
240
+ "failed",
241
+ "cancelled"
242
+ ])
243
+ });
244
+ /** Provider receipt that never represents accepted asynchronous work as terminal. */
245
+ var PluginProviderReceiptV1 = Schema.Union([PluginAcceptedProviderReceiptV1, PluginTerminalProviderReceiptV1]);
246
+ /** Provider preflight that confirms the exact revision is ready for dispatch. */
247
+ var ReadyPluginActionPreflightV1 = Schema.TaggedStruct("ready", {
248
+ checkedRevision: Revision,
249
+ checkedAt: UtcTimestamp
250
+ });
251
+ /** Provider preflight that blocks dispatch with bounded safe reasons. */
252
+ var BlockedPluginActionPreflightV1 = Schema.TaggedStruct("blocked", {
253
+ reasons: Schema.Array(SafeSummary).check(Schema.isNonEmpty(), Schema.makeFilter((reasons) => reasons.length <= 50, { expected: "at most 50 preflight reasons" })),
254
+ checkedAt: UtcTimestamp
255
+ });
256
+ /** Result of the final provider preflight before dispatch. */
257
+ var PluginActionPreflightV1 = Schema.Union([ReadyPluginActionPreflightV1, BlockedPluginActionPreflightV1]).pipe(Schema.toTaggedUnion("_tag"));
258
+ var ConfirmedDispatch = Schema.TaggedStruct("confirmed", { receipt: PluginProviderReceiptV1 });
259
+ var UnknownDispatch = Schema.TaggedStruct("unknown", {
260
+ reconciliationKey: PluginActionReconciliationKey,
261
+ safeSummary: SafeSummary,
262
+ observedAt: UtcTimestamp
263
+ });
264
+ /** Truthful immediate outcome of one authorized provider dispatch. */
265
+ var PluginActionDispatchResultV1 = Schema.Union([ConfirmedDispatch, UnknownDispatch]).pipe(Schema.toTaggedUnion("_tag"));
266
+ /** Request to cancel an action after its durable lifecycle permits cancellation. */
267
+ var PluginActionCancellationRequestV1 = Schema.Struct({
268
+ idempotencyKey: boundedOpaque("PluginCancellationIdempotencyKey", 512),
269
+ providerOperationId: Schema.NullOr(PluginProviderOperationId),
270
+ reconciliationKey: Schema.NullOr(PluginActionReconciliationKey)
271
+ }).check(Schema.makeFilter(({ providerOperationId, reconciliationKey }) => providerOperationId === null !== (reconciliationKey === null), { expected: "exactly one provider operation or reconciliation key" }));
272
+ /** Truthful cancellation response; provider completion may win the race. */
273
+ var PluginActionCancellationResultV1 = Schema.Union([
274
+ Schema.TaggedStruct("cancelled", { receipt: PluginProviderReceiptV1 }).check(Schema.makeFilter(({ receipt }) => receipt.status === "cancelled", { expected: "a cancelled provider receipt" })),
275
+ Schema.TaggedStruct("completed", { receipt: PluginProviderReceiptV1 }).check(Schema.makeFilter(({ receipt }) => receipt.status === "succeeded" || receipt.status === "failed", { expected: "a terminal succeeded or failed provider receipt" })),
276
+ Schema.TaggedStruct("unknown", {
277
+ reconciliationKey: PluginActionReconciliationKey,
278
+ observedAt: UtcTimestamp
279
+ })
280
+ ]).pipe(Schema.toTaggedUnion("_tag"));
281
+ /** Request to reconcile without replay; null locates the mutation by its durable idempotency key. */
282
+ var PluginActionReconciliationRequestV1 = Schema.Struct({
283
+ reconciliationKey: Schema.NullOr(PluginActionReconciliationKey),
284
+ idempotencyKey: boundedOpaque("PluginReconciliationIdempotencyKey", 512),
285
+ payloadDigest: PluginActionPayloadDigest
286
+ });
287
+ /** Reconciled provider state. Cancelled means the mutation provably did not occur. */
288
+ var PluginActionReconciliationResultV1 = Schema.Union([
289
+ Schema.TaggedStruct("pending", { checkedAt: UtcTimestamp }),
290
+ Schema.TaggedStruct("succeeded", { receipt: PluginProviderReceiptV1 }).check(Schema.makeFilter(({ receipt }) => receipt.status === "succeeded", { expected: "a succeeded provider receipt" })),
291
+ Schema.TaggedStruct("failed", { receipt: PluginProviderReceiptV1 }).check(Schema.makeFilter(({ receipt }) => receipt.status === "failed", { expected: "a failed provider receipt" })),
292
+ Schema.TaggedStruct("cancelled", { receipt: PluginProviderReceiptV1 }).check(Schema.makeFilter(({ receipt }) => receipt.status === "cancelled", { expected: "a cancelled provider receipt" }))
293
+ ]).pipe(Schema.toTaggedUnion("_tag"));
294
+ //#endregion
295
+ //#region src/domain/governedAction/model.ts
296
+ var PositiveInteger$1 = Schema.Int.check(Schema.isGreaterThan(0));
297
+ var boundedIdentifier$1 = (name, maximumLength) => Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(maximumLength), Schema.isPattern(/^[A-Za-z0-9._:/-]+$/u, { expected: "a bounded action identifier" })).pipe(Schema.brand(name));
298
+ var sha256Digest = (name) => Schema.String.check(Schema.isPattern(/^sha256:[0-9a-f]{64}$/u, { expected: "a lowercase SHA-256 digest" })).pipe(Schema.brand(name));
299
+ var compareText = (left, right) => left < right ? -1 : left > right ? 1 : 0;
300
+ var isCanonicalText = (values) => values.every((value, index) => index === 0 || compareText(values[index - 1] ?? "", value) < 0);
301
+ /** Digest of every immutable field in a governed action envelope. */
302
+ var GovernedActionEnvelopeDigest = sha256Digest("GovernedActionEnvelopeDigest");
303
+ /** Digest of the canonical evidence-reference set bound to an action. */
304
+ var GovernedActionEvidenceSetDigest = sha256Digest("GovernedActionEvidenceSetDigest");
305
+ /** Digest of a fresh policy evaluation persisted with one exact dispatch attempt. */
306
+ var GovernedActionPolicyEvaluationDigest = sha256Digest("GovernedActionPolicyEvaluationDigest");
307
+ /** Digest of every immutable field in one human action authorization. */
308
+ var GovernedActionAuthorizationDigest = sha256Digest("GovernedActionAuthorizationDigest");
309
+ /** Digest of every immutable field in one durable dispatch attempt. */
310
+ var GovernedActionAttemptDigest = sha256Digest("GovernedActionAttemptDigest");
311
+ /** Digest of the exact versioned policy snapshot used for authorization. */
312
+ var GovernedActionPolicyDigest = sha256Digest("GovernedActionPolicyDigest");
313
+ /** Stable identity of one governed-action policy family. */
314
+ var GovernedActionPolicyId = boundedIdentifier$1("GovernedActionPolicyId", 200);
315
+ /** Workspace-connection scoped key that deduplicates one governed provider mutation. */
316
+ var GovernedActionIdempotencyKey = Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(512)).pipe(Schema.brand("GovernedActionIdempotencyKey"));
317
+ /** Optimistic revision of the exact configured plugin connection authorized for dispatch. */
318
+ var GovernedActionPluginConnectionRevision = PositiveInteger$1.pipe(Schema.brand("GovernedActionPluginConnectionRevision"));
319
+ /** Non-secret digest that changes with configuration, credentials, or resolved provider account. */
320
+ var GovernedActionPluginConnectionAuthorityDigest = sha256Digest("GovernedActionPluginConnectionAuthorityDigest");
321
+ /** Versioned policy and permission snapshot bound into an action proposal. */
322
+ var GovernedActionPolicyBinding = Schema.Struct({
323
+ policyId: GovernedActionPolicyId,
324
+ policyVersion: PositiveInteger$1,
325
+ policyDigest: GovernedActionPolicyDigest,
326
+ requiredPermission: Role
327
+ });
328
+ /** Fresh policy result recomputed immediately before a provider mutation may dispatch. */
329
+ var GovernedActionPolicyEvaluationV1 = Schema.Struct({
330
+ schemaVersion: Schema.Literal(1),
331
+ actionId: GovernedActionId,
332
+ workspaceId: WorkspaceId,
333
+ policy: GovernedActionPolicyBinding,
334
+ payloadDigest: PluginActionPayloadDigest,
335
+ evidenceSetDigest: GovernedActionEvidenceSetDigest,
336
+ expectedRevision: Revision,
337
+ decision: Schema.Literals(["allowed", "denied"]),
338
+ evaluatedAt: UtcTimestamp
339
+ });
340
+ /** Current normalized target and exact provider provenance checked before dispatch. */
341
+ var GovernedActionTargetSnapshotV1 = Schema.Struct({
342
+ workspaceId: WorkspaceId,
343
+ entityId: EntityId,
344
+ entityType: PluginEntityType,
345
+ sourceRevision: SourceRevision
346
+ });
347
+ /** Exact immutable evidence state considered by policy at proposal time. */
348
+ var GovernedActionEvidenceReference = Schema.Struct({
349
+ workspaceId: WorkspaceId,
350
+ evidenceId: EvidenceId,
351
+ evidenceClaimIds: Schema.Array(EvidenceClaimId).check(Schema.isUnique(), Schema.makeFilter(isCanonicalText, { expected: "evidence claim identities in canonical order" }), Schema.makeFilter((evidenceClaimIds) => evidenceClaimIds.length <= 100, { expected: "at most 100 evidence claims per evidence item" })),
352
+ observedAt: UtcTimestamp,
353
+ validUntil: Schema.NullOr(UtcTimestamp),
354
+ currentUntil: Schema.NullOr(UtcTimestamp),
355
+ evaluatedAt: UtcTimestamp,
356
+ source: Schema.Literals([
357
+ "current",
358
+ "stale",
359
+ "missing",
360
+ "unavailable"
361
+ ]),
362
+ validity: Schema.Literals(["valid", "expired"])
363
+ }).check(Schema.makeFilter(({ evaluatedAt, observedAt }) => DateTime.Order(observedAt, evaluatedAt) <= 0, { expected: "evidence evaluation not to precede observation" }), Schema.makeFilter(({ observedAt, validUntil }) => validUntil === null || DateTime.Order(observedAt, validUntil) < 0, { expected: "evidence validity to end after observation" }), Schema.makeFilter(({ currentUntil, observedAt }) => currentUntil === null || DateTime.Order(observedAt, currentUntil) < 0, { expected: "evidence freshness to end after observation" }), Schema.makeFilter(({ currentUntil, evaluatedAt, source }) => {
364
+ if (source === "current") return currentUntil === null || DateTime.Order(evaluatedAt, currentUntil) < 0;
365
+ if (source === "stale") return currentUntil !== null && DateTime.Order(evaluatedAt, currentUntil) >= 0;
366
+ return currentUntil === null;
367
+ }, { expected: "evidence source state to match its evaluation and freshness window" }), Schema.makeFilter(({ evaluatedAt, validUntil, validity }) => {
368
+ return validity === (validUntil === null || DateTime.Order(evaluatedAt, validUntil) < 0 ? "valid" : "expired");
369
+ }, { expected: "evidence validity to match its evaluation and validity window" }));
370
+ /** Human or agent provenance for a proposal; neither form grants execution authority. */
371
+ var GovernedActionProposalOrigin = Schema.TaggedUnion({
372
+ human: {
373
+ actor: HumanActor,
374
+ sessionId: SessionId
375
+ },
376
+ agent: {
377
+ actor: AgentActor,
378
+ jobId: JobId,
379
+ initiatingSessionId: Schema.NullOr(SessionId)
380
+ }
381
+ });
382
+ var canonicalEvidenceReferences = Schema.makeFilter((evidence) => isCanonicalText(evidence.map(({ evidenceId }) => evidenceId)), { expected: "unique evidence references in canonical evidence-id order" });
383
+ /** Bounded canonical set of immutable evidence references used by action authority. */
384
+ var GovernedActionEvidenceSet = Schema.Array(GovernedActionEvidenceReference).check(Schema.makeFilter((evidence) => evidence.length <= 100, { expected: "at most 100 evidence references" }), canonicalEvidenceReferences);
385
+ var governedActionEnvelopeMaterialFields = {
386
+ schemaVersion: Schema.Literal(1),
387
+ actionId: GovernedActionId,
388
+ idempotencyKey: GovernedActionIdempotencyKey,
389
+ workspaceId: WorkspaceId,
390
+ pluginConnectionId: PluginConnectionId,
391
+ pluginConnectionRevision: GovernedActionPluginConnectionRevision,
392
+ pluginConnectionAuthorityDigest: GovernedActionPluginConnectionAuthorityDigest,
393
+ pluginId: PluginId,
394
+ pluginContractVersion: SemanticVersion,
395
+ pluginAdapterVersion: SemanticVersion,
396
+ providerId: ProviderId,
397
+ capability: Schema.Struct({
398
+ capabilityId: Schema.Literal("action.execute"),
399
+ version: PositiveInteger$1
400
+ }),
401
+ targetEntityId: EntityId,
402
+ proposal: PluginActionProposalV1,
403
+ evidence: GovernedActionEvidenceSet,
404
+ evidenceSetDigest: GovernedActionEvidenceSetDigest,
405
+ policy: GovernedActionPolicyBinding,
406
+ origin: GovernedActionProposalOrigin,
407
+ proposalExpiresAt: UtcTimestamp,
408
+ causationId: Schema.NullOr(DomainEventId),
409
+ correlationId: Schema.NullOr(DomainEventCorrelationId)
410
+ };
411
+ /** Complete digest-free material used to derive an immutable action envelope identity. */
412
+ var GovernedActionEnvelopeMaterialV1 = Schema.Struct(governedActionEnvelopeMaterialFields).check(Schema.makeFilter(({ capability, proposal }) => capability.version === proposal.capabilityVersion, { expected: "envelope capability version to match the proposal capability version" }), Schema.makeFilter(({ proposal, proposalExpiresAt }) => DateTime.Order(proposal.proposedAt, proposalExpiresAt) < 0, { expected: "action proposal to expire after it is created" }), Schema.makeFilter(({ evidence, workspaceId }) => evidence.every((reference) => reference.workspaceId === workspaceId), { expected: "every governed-action evidence reference to belong to the action workspace" }));
413
+ /** Immutable, versioned host authority for one proposed provider mutation. */
414
+ var GovernedActionEnvelopeV1 = Schema.Struct({
415
+ ...governedActionEnvelopeMaterialFields,
416
+ envelopeDigest: GovernedActionEnvelopeDigest
417
+ }).check(Schema.makeFilter(({ capability, proposal }) => capability.version === proposal.capabilityVersion, { expected: "envelope capability version to match the proposal capability version" }), Schema.makeFilter(({ proposal, proposalExpiresAt }) => DateTime.Order(proposal.proposedAt, proposalExpiresAt) < 0, { expected: "action proposal to expire after it is created" }), Schema.makeFilter(({ evidence, workspaceId }) => evidence.every((reference) => reference.workspaceId === workspaceId), { expected: "every governed-action evidence reference to belong to the action workspace" }));
418
+ /** Human authorization bound to the complete immutable action and policy inputs. */
419
+ var GovernedActionAuthorizationV1 = Schema.Struct({
420
+ schemaVersion: Schema.Literal(1),
421
+ authorizationId: GovernedActionAuthorizationId,
422
+ actionId: GovernedActionId,
423
+ workspaceId: WorkspaceId,
424
+ pluginConnectionId: PluginConnectionId,
425
+ pluginConnectionRevision: GovernedActionPluginConnectionRevision,
426
+ pluginConnectionAuthorityDigest: GovernedActionPluginConnectionAuthorityDigest,
427
+ actionEnvelopeDigest: GovernedActionEnvelopeDigest,
428
+ idempotencyKey: GovernedActionIdempotencyKey,
429
+ payloadDigest: PluginActionPayloadDigest,
430
+ evidenceSetDigest: GovernedActionEvidenceSetDigest,
431
+ policyDigest: GovernedActionPolicyDigest,
432
+ expectedRevision: Revision,
433
+ capabilityVersion: PositiveInteger$1,
434
+ actor: HumanActor,
435
+ sessionId: SessionId,
436
+ sessionPermission: Role,
437
+ sessionExpiresAt: UtcTimestamp,
438
+ requiredPermission: Role,
439
+ authorizedAt: UtcTimestamp,
440
+ expiresAt: UtcTimestamp
441
+ }).check(Schema.makeFilter(({ authorizedAt, expiresAt }) => DateTime.Order(authorizedAt, expiresAt) < 0, { expected: "governed-action authorization to expire after it is issued" }), Schema.makeFilter(({ expiresAt, sessionExpiresAt }) => DateTime.Order(expiresAt, sessionExpiresAt) <= 0, { expected: "governed-action authorization not to outlive its authenticated session" }));
442
+ /** Durable dispatch intent created only after an exact ready preflight. */
443
+ var GovernedActionAttemptV1 = Schema.Struct({
444
+ schemaVersion: Schema.Literal(1),
445
+ attemptId: GovernedActionAttemptId,
446
+ authorizationId: GovernedActionAuthorizationId,
447
+ actionId: GovernedActionId,
448
+ workspaceId: WorkspaceId,
449
+ pluginConnectionId: PluginConnectionId,
450
+ idempotencyKey: GovernedActionIdempotencyKey,
451
+ attemptNumber: Schema.Literal(1),
452
+ actionEnvelopeDigest: GovernedActionEnvelopeDigest,
453
+ expectedRevision: Revision,
454
+ policyEvaluationDigest: GovernedActionPolicyEvaluationDigest,
455
+ preflight: ReadyPluginActionPreflightV1,
456
+ startedAt: UtcTimestamp
457
+ }).check(Schema.makeFilter(({ expectedRevision, preflight }) => expectedRevision === preflight.checkedRevision, { expected: "dispatch intent revision to match the ready preflight revision" }), Schema.makeFilter(({ preflight, startedAt }) => DateTime.Order(preflight.checkedAt, startedAt) <= 0, { expected: "dispatch intent not to precede its ready preflight" }));
458
+ //#endregion
459
+ //#region src/domain/governedAction/bindings.ts
460
+ /** Closed reasons why durable authorization or dispatch intent does not match its action. */
461
+ var GovernedActionAuthorityMismatch = Schema.Literals([
462
+ "authorization-action-mismatch",
463
+ "authorization-workspace-mismatch",
464
+ "authorization-connection-mismatch",
465
+ "authorization-connection-revision-mismatch",
466
+ "authorization-connection-authority-mismatch",
467
+ "authorization-envelope-mismatch",
468
+ "authorization-idempotency-mismatch",
469
+ "authorization-payload-mismatch",
470
+ "authorization-evidence-mismatch",
471
+ "authorization-policy-mismatch",
472
+ "authorization-revision-mismatch",
473
+ "authorization-capability-mismatch",
474
+ "authorization-permission-mismatch",
475
+ "authorization-outside-proposal-window",
476
+ "authorization-expired",
477
+ "authorization-session-expired",
478
+ "evidence-not-current",
479
+ "evidence-set-changed",
480
+ "evidence-workspace-mismatch",
481
+ "session-id-mismatch",
482
+ "session-actor-mismatch",
483
+ "session-workspace-mismatch",
484
+ "session-permission-mismatch",
485
+ "session-revoked",
486
+ "authorization-session-chronology",
487
+ "current-plugin-connection-mismatch",
488
+ "current-plugin-workspace-mismatch",
489
+ "current-plugin-provider-mismatch",
490
+ "current-plugin-revision-mismatch",
491
+ "current-plugin-authority-mismatch",
492
+ "current-plugin-unavailable",
493
+ "current-plugin-mismatch",
494
+ "current-capability-unavailable",
495
+ "current-capability-version-mismatch",
496
+ "current-policy-denied",
497
+ "current-policy-mismatch",
498
+ "current-target-workspace-mismatch",
499
+ "current-target-entity-mismatch",
500
+ "current-target-type-mismatch",
501
+ "current-target-source-mismatch",
502
+ "current-target-revision-mismatch",
503
+ "attempt-action-mismatch",
504
+ "attempt-authorization-mismatch",
505
+ "attempt-workspace-mismatch",
506
+ "attempt-connection-mismatch",
507
+ "attempt-envelope-mismatch",
508
+ "attempt-idempotency-mismatch",
509
+ "attempt-policy-evaluation-mismatch",
510
+ "attempt-revision-mismatch",
511
+ "attempt-outside-authorization-window"
512
+ ]);
513
+ /** Complete aggregate authority checked immediately before durable dispatch intent. */
514
+ var GovernedActionAuthorityBindingInput = Schema.Struct({
515
+ envelope: GovernedActionEnvelopeV1,
516
+ authorization: GovernedActionAuthorizationV1,
517
+ attempt: GovernedActionAttemptV1,
518
+ evaluatedAt: UtcTimestamp
519
+ });
520
+ /** Immutable authorization inputs that can be verified before a dispatch attempt exists. */
521
+ var GovernedActionAuthorizationBindingInput = Schema.Struct({
522
+ envelope: GovernedActionEnvelopeV1,
523
+ authorization: GovernedActionAuthorizationV1
524
+ });
525
+ /** Explicit V1 permission implication: workspace owner or an exact scoped role. */
526
+ var governedActionPermissionGrants = (sessionPermission, requiredPermission) => sessionPermission === "workspace-owner" || sessionPermission === requiredPermission;
527
+ /** Return every fail-closed mismatch between an envelope and its human grant. */
528
+ var governedActionAuthorizationMismatches = ({ authorization, envelope }) => {
529
+ const mismatches = [];
530
+ const addMismatch = (condition, mismatch) => {
531
+ if (condition) mismatches.push(mismatch);
532
+ };
533
+ addMismatch(authorization.actionId !== envelope.actionId, "authorization-action-mismatch");
534
+ addMismatch(authorization.workspaceId !== envelope.workspaceId, "authorization-workspace-mismatch");
535
+ addMismatch(authorization.pluginConnectionId !== envelope.pluginConnectionId, "authorization-connection-mismatch");
536
+ addMismatch(authorization.pluginConnectionRevision !== envelope.pluginConnectionRevision, "authorization-connection-revision-mismatch");
537
+ addMismatch(authorization.pluginConnectionAuthorityDigest !== envelope.pluginConnectionAuthorityDigest, "authorization-connection-authority-mismatch");
538
+ addMismatch(authorization.actionEnvelopeDigest !== envelope.envelopeDigest, "authorization-envelope-mismatch");
539
+ addMismatch(authorization.idempotencyKey !== envelope.idempotencyKey, "authorization-idempotency-mismatch");
540
+ addMismatch(authorization.payloadDigest !== envelope.proposal.payloadDigest, "authorization-payload-mismatch");
541
+ addMismatch(authorization.evidenceSetDigest !== envelope.evidenceSetDigest, "authorization-evidence-mismatch");
542
+ addMismatch(authorization.policyDigest !== envelope.policy.policyDigest, "authorization-policy-mismatch");
543
+ addMismatch(authorization.expectedRevision !== envelope.proposal.request.expectedRevision, "authorization-revision-mismatch");
544
+ addMismatch(authorization.capabilityVersion !== envelope.capability.version, "authorization-capability-mismatch");
545
+ addMismatch(authorization.requiredPermission !== envelope.policy.requiredPermission, "authorization-permission-mismatch");
546
+ addMismatch(!governedActionPermissionGrants(authorization.sessionPermission, authorization.requiredPermission), "authorization-permission-mismatch");
547
+ addMismatch(DateTime.Order(authorization.authorizedAt, envelope.proposal.proposedAt) < 0 || DateTime.Order(authorization.authorizedAt, envelope.proposalExpiresAt) >= 0 || DateTime.Order(authorization.expiresAt, envelope.proposalExpiresAt) > 0, "authorization-outside-proposal-window");
548
+ return mismatches;
549
+ };
550
+ /** Whether a human grant is attributable to its exact immutable authorize transition. */
551
+ var governedActionAuthorizationMatchesTransition = (authorization, transition) => transition.command._tag === "authorize" && transition.command.authorizationId === authorization.authorizationId && transition.actionId === authorization.actionId && transition.workspaceId === authorization.workspaceId && transition.actionEnvelopeDigest === authorization.actionEnvelopeDigest && DateTime.Order(transition.occurredAt, authorization.authorizedAt) === 0 && transition.cause._tag === "human" && transition.cause.actor.personId === authorization.actor.personId && transition.cause.sessionId === authorization.sessionId;
552
+ /** Return every fail-closed mismatch between an envelope, human grant, and dispatch intent. */
553
+ var governedActionAuthorityMismatches = ({ attempt, authorization, envelope, evaluatedAt }) => {
554
+ const mismatches = [...governedActionAuthorizationMismatches({
555
+ authorization,
556
+ envelope
557
+ })];
558
+ const addMismatch = (condition, mismatch) => {
559
+ if (condition) mismatches.push(mismatch);
560
+ };
561
+ addMismatch(DateTime.Order(evaluatedAt, authorization.expiresAt) >= 0 || DateTime.Order(evaluatedAt, envelope.proposalExpiresAt) >= 0, "authorization-expired");
562
+ addMismatch(DateTime.Order(evaluatedAt, authorization.sessionExpiresAt) >= 0, "authorization-session-expired");
563
+ addMismatch(envelope.evidence.some(({ currentUntil, source, validUntil }) => source !== "current" || currentUntil !== null && DateTime.Order(evaluatedAt, currentUntil) >= 0 || validUntil !== null && DateTime.Order(evaluatedAt, validUntil) >= 0), "evidence-not-current");
564
+ addMismatch(attempt.actionId !== envelope.actionId, "attempt-action-mismatch");
565
+ addMismatch(attempt.authorizationId !== authorization.authorizationId, "attempt-authorization-mismatch");
566
+ addMismatch(attempt.workspaceId !== envelope.workspaceId, "attempt-workspace-mismatch");
567
+ addMismatch(attempt.pluginConnectionId !== envelope.pluginConnectionId, "attempt-connection-mismatch");
568
+ addMismatch(attempt.actionEnvelopeDigest !== envelope.envelopeDigest, "attempt-envelope-mismatch");
569
+ addMismatch(attempt.idempotencyKey !== envelope.idempotencyKey, "attempt-idempotency-mismatch");
570
+ addMismatch(attempt.expectedRevision !== envelope.proposal.request.expectedRevision, "attempt-revision-mismatch");
571
+ addMismatch(DateTime.Order(attempt.preflight.checkedAt, authorization.authorizedAt) < 0 || DateTime.Order(attempt.startedAt, authorization.authorizedAt) < 0 || DateTime.Order(attempt.startedAt, authorization.expiresAt) >= 0 || DateTime.Order(attempt.startedAt, envelope.proposalExpiresAt) >= 0 || DateTime.Order(attempt.startedAt, evaluatedAt) > 0, "attempt-outside-authorization-window");
572
+ return mismatches;
573
+ };
574
+ //#endregion
575
+ //#region src/domain/governedAction/stateMachine.ts
576
+ var PositiveInteger = Schema.Int.check(Schema.isGreaterThan(0));
577
+ var SafeReason = Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(1e3));
578
+ var boundedIdentifier = (name, maximumLength) => Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(maximumLength), Schema.isPattern(/^[A-Za-z0-9._:/-]+$/u, { expected: "a bounded action identifier" })).pipe(Schema.brand(name));
579
+ /** Complete persisted lifecycle states for a governed action. */
580
+ var GovernedActionState = Schema.Literals([
581
+ "proposed",
582
+ "authorized",
583
+ "denied",
584
+ "expired",
585
+ "cancelled",
586
+ "started",
587
+ "cancel-requested",
588
+ "cancel-requested-unknown",
589
+ "succeeded",
590
+ "failed",
591
+ "unknown"
592
+ ]);
593
+ /** Stable identity supplied by a caller to deduplicate one lifecycle command. */
594
+ var GovernedActionCommandId = boundedIdentifier("GovernedActionCommandId", 512);
595
+ /** Digest of one canonical transition command used to reject changed command retries. */
596
+ var GovernedActionCommandDigest = Schema.String.check(Schema.isPattern(/^sha256:[0-9a-f]{64}$/u, { expected: "a lowercase SHA-256 digest" })).pipe(Schema.brand("GovernedActionCommandDigest"));
597
+ /** Digest of every immutable field in one governed-action transition. */
598
+ var GovernedActionTransitionDigest = Schema.String.check(Schema.isPattern(/^sha256:[0-9a-f]{64}$/u, { expected: "a lowercase SHA-256 digest" })).pipe(Schema.brand("GovernedActionTransitionDigest"));
599
+ /** Closed reason why authorization or preflight failed without calling a provider. */
600
+ var GovernedActionDenialReason = Schema.Literals([
601
+ "revision-changed",
602
+ "evidence-stale",
603
+ "evidence-invalid",
604
+ "policy-denied",
605
+ "session-invalid",
606
+ "capability-changed",
607
+ "plugin-unavailable",
608
+ "preflight-blocked"
609
+ ]);
610
+ /** Unknown provider outcome that is either safely reconcilable or explicitly manual. */
611
+ var GovernedActionUnknownOutcome = Schema.TaggedUnion({
612
+ reconcilable: {
613
+ reconciliationKey: PluginActionReconciliationKey,
614
+ observedAt: UtcTimestamp,
615
+ safeSummary: SafeReason
616
+ },
617
+ manual: {
618
+ observedAt: UtcTimestamp,
619
+ safeSummary: SafeReason,
620
+ reason: Schema.Literals([
621
+ "dispatch-deadline-exceeded",
622
+ "interrupted-after-intent",
623
+ "provider-defect-after-intent",
624
+ "malformed-provider-result",
625
+ "receipt-persistence-failed",
626
+ "missing-reconciliation-locator"
627
+ ])
628
+ }
629
+ });
630
+ var SucceededReceipt = PluginTerminalProviderReceiptV1.check(Schema.makeFilter(({ status }) => status === "succeeded", { expected: "a succeeded provider receipt" }));
631
+ var FailedReceipt = PluginTerminalProviderReceiptV1.check(Schema.makeFilter(({ status }) => status === "failed", { expected: "a failed provider receipt" }));
632
+ var CancelledReceipt = PluginTerminalProviderReceiptV1.check(Schema.makeFilter(({ status }) => status === "cancelled", { expected: "a cancelled provider receipt" }));
633
+ /** Whether a terminal receipt came from dispatch or reconciliation by provider/idempotency identity. */
634
+ var GovernedActionOutcomeSource = Schema.TaggedUnion({
635
+ direct: {},
636
+ providerOperation: { providerOperationId: PluginProviderOperationId },
637
+ reconciliation: { reconciliationKey: Schema.NullOr(PluginActionReconciliationKey) }
638
+ });
639
+ /** Closed commands that may append one governed-action lifecycle transition. */
640
+ var GovernedActionTransitionCommand = Schema.TaggedUnion({
641
+ propose: {},
642
+ authorize: { authorizationId: GovernedActionAuthorizationId },
643
+ deny: {
644
+ reason: GovernedActionDenialReason,
645
+ safeSummary: SafeReason
646
+ },
647
+ expire: { reason: Schema.Literals(["proposal-expired", "authorization-expired"]) },
648
+ cancel: { safeSummary: SafeReason },
649
+ start: { attemptId: GovernedActionAttemptId },
650
+ requestCancellation: { safeSummary: SafeReason },
651
+ recordAccepted: { receipt: PluginAcceptedProviderReceiptV1 },
652
+ recordSucceeded: {
653
+ receipt: SucceededReceipt,
654
+ source: GovernedActionOutcomeSource
655
+ },
656
+ recordFailed: {
657
+ receipt: FailedReceipt,
658
+ source: GovernedActionOutcomeSource
659
+ },
660
+ recordUnknown: { outcome: GovernedActionUnknownOutcome },
661
+ recordCancelled: {
662
+ receipt: CancelledReceipt,
663
+ source: GovernedActionOutcomeSource
664
+ },
665
+ reconciliationPending: {
666
+ checkedAt: UtcTimestamp,
667
+ reconciliationKey: Schema.NullOr(PluginActionReconciliationKey)
668
+ }
669
+ });
670
+ /** Attributable human, agent, or internal component responsible for a transition. */
671
+ var GovernedActionTransitionCause = Schema.TaggedUnion({
672
+ human: {
673
+ actor: HumanActor,
674
+ sessionId: SessionId
675
+ },
676
+ agent: {
677
+ actor: AgentActor,
678
+ jobId: JobId
679
+ },
680
+ system: { component: boundedIdentifier("GovernedActionSystemComponent", 200) }
681
+ });
682
+ var canRecordTerminalOutcome = (currentState, source) => currentState === "started" || currentState === "cancel-requested" || (currentState === "unknown" || currentState === "cancel-requested-unknown") && source._tag === "reconciliation";
683
+ /**
684
+ * Resolve a lifecycle command without side effects.
685
+ * A null result means the command is not legal from the supplied state.
686
+ */
687
+ var reduceGovernedActionState = (currentState, command) => {
688
+ switch (command._tag) {
689
+ case "propose": return currentState === null ? "proposed" : null;
690
+ case "authorize": return currentState === "proposed" ? "authorized" : null;
691
+ case "deny": return currentState === "proposed" || currentState === "authorized" ? "denied" : null;
692
+ case "expire": return currentState === "proposed" || currentState === "authorized" ? "expired" : null;
693
+ case "cancel": return currentState === "proposed" || currentState === "authorized" ? "cancelled" : null;
694
+ case "start": return currentState === "authorized" ? "started" : null;
695
+ case "requestCancellation": return currentState === "started" ? "cancel-requested" : currentState === "unknown" ? "cancel-requested-unknown" : null;
696
+ case "recordAccepted": return currentState === "started" || currentState === "cancel-requested" ? currentState : null;
697
+ case "recordUnknown": return currentState === "started" ? "unknown" : currentState === "cancel-requested" ? "cancel-requested-unknown" : null;
698
+ case "recordSucceeded": return canRecordTerminalOutcome(currentState, command.source) ? "succeeded" : null;
699
+ case "recordFailed": return canRecordTerminalOutcome(currentState, command.source) ? "failed" : null;
700
+ case "recordCancelled": return canRecordTerminalOutcome(currentState, command.source) ? "cancelled" : null;
701
+ case "reconciliationPending": return currentState === "started" || currentState === "cancel-requested" || currentState === "unknown" || currentState === "cancel-requested-unknown" ? currentState : null;
702
+ }
703
+ };
704
+ /** Whether a governed action has reached a state that cannot execute more provider work. */
705
+ var isGovernedActionTerminalState = (state) => state === "denied" || state === "expired" || state === "cancelled" || state === "succeeded" || state === "failed";
706
+ var commandCauseIsAllowed = (command, cause) => {
707
+ switch (cause._tag) {
708
+ case "agent": return command._tag === "propose";
709
+ case "human": return command._tag === "propose" || command._tag === "authorize" || command._tag === "deny" || command._tag === "cancel" || command._tag === "requestCancellation";
710
+ case "system": return command._tag === "deny" || command._tag === "expire" || command._tag === "cancel" || command._tag === "start" || command._tag === "requestCancellation" || command._tag === "recordAccepted" || command._tag === "recordSucceeded" || command._tag === "recordFailed" || command._tag === "recordUnknown" || command._tag === "recordCancelled" || command._tag === "reconciliationPending";
711
+ }
712
+ };
713
+ var governedActionTransitionMaterialFields = {
714
+ schemaVersion: Schema.Literal(1),
715
+ transitionId: GovernedActionTransitionId,
716
+ previousTransitionId: Schema.NullOr(GovernedActionTransitionId),
717
+ commandId: GovernedActionCommandId,
718
+ actionId: GovernedActionId,
719
+ workspaceId: WorkspaceId,
720
+ sequence: PositiveInteger,
721
+ fromState: Schema.NullOr(GovernedActionState),
722
+ toState: GovernedActionState,
723
+ actionEnvelopeDigest: GovernedActionEnvelopeDigest,
724
+ command: GovernedActionTransitionCommand,
725
+ cause: GovernedActionTransitionCause,
726
+ occurredAt: UtcTimestamp,
727
+ causationId: Schema.NullOr(DomainEventId),
728
+ correlationId: Schema.NullOr(DomainEventCorrelationId)
729
+ };
730
+ /** Digest-free transition fields used only by the trusted transition constructor. */
731
+ var GovernedActionTransitionMaterialV1 = Schema.Struct(governedActionTransitionMaterialFields).check(Schema.makeFilter(({ command, fromState, toState }) => reduceGovernedActionState(fromState, command) === toState, { expected: "a legal governed-action state transition" }), Schema.makeFilter(({ cause, command }) => commandCauseIsAllowed(command, cause), { expected: "transition cause to have authority for the command" }), Schema.makeFilter(({ fromState, previousTransitionId, sequence }) => sequence === 1 ? fromState === null && previousTransitionId === null : fromState !== null && previousTransitionId !== null, { expected: "the first transition to be the only transition without a predecessor" }));
732
+ /** Immutable append-only audit record for one legal lifecycle command. */
733
+ var GovernedActionTransitionV1 = Schema.Struct({
734
+ ...governedActionTransitionMaterialFields,
735
+ commandDigest: GovernedActionCommandDigest
736
+ }).check(Schema.makeFilter(({ command, fromState, toState }) => reduceGovernedActionState(fromState, command) === toState, { expected: "a legal governed-action state transition" }), Schema.makeFilter(({ cause, command }) => commandCauseIsAllowed(command, cause), { expected: "transition cause to have authority for the command" }), Schema.makeFilter(({ fromState, previousTransitionId, sequence }) => sequence === 1 ? fromState === null && previousTransitionId === null : fromState !== null && previousTransitionId !== null, { expected: "the first transition to be the only transition without a predecessor" }));
737
+ //#endregion
738
+ //#region src/domain/governedAction/lifecycle.ts
739
+ /** Provider identity retained by the durable action head across async and ambiguous work. */
740
+ var GovernedActionProviderLineage = Schema.TaggedUnion({
741
+ none: {},
742
+ accepted: { receipt: PluginAcceptedProviderReceiptV1 },
743
+ reconcilable: {
744
+ providerOperationId: Schema.NullOr(PluginProviderOperationId),
745
+ reconciliationKey: PluginActionReconciliationKey
746
+ },
747
+ manual: { providerOperationId: Schema.NullOr(PluginProviderOperationId) },
748
+ terminal: { receipt: PluginTerminalProviderReceiptV1 }
749
+ });
750
+ var stateMatchesLineage = (state, lineage) => {
751
+ switch (state) {
752
+ case "proposed":
753
+ case "authorized":
754
+ case "denied":
755
+ case "expired": return lineage._tag === "none";
756
+ case "cancelled": return lineage._tag === "none" || lineage._tag === "terminal" && lineage.receipt.status === "cancelled";
757
+ case "started":
758
+ case "cancel-requested": return lineage._tag === "none" || lineage._tag === "accepted";
759
+ case "unknown":
760
+ case "cancel-requested-unknown": return lineage._tag === "reconcilable" || lineage._tag === "manual";
761
+ case "succeeded": return lineage._tag === "terminal" && lineage.receipt.status === "succeeded";
762
+ case "failed": return lineage._tag === "terminal" && lineage.receipt.status === "failed";
763
+ }
764
+ };
765
+ /** Durable lifecycle state plus the exact provider identity needed for safe recovery. */
766
+ var GovernedActionLifecycleHeadV1 = Schema.Struct({
767
+ state: GovernedActionState,
768
+ lineage: GovernedActionProviderLineage
769
+ }).check(Schema.makeFilter(({ lineage, state }) => stateMatchesLineage(state, lineage), { expected: "governed-action state and provider lineage to agree" }));
770
+ var providerOperationIdFromLineage = (lineage) => {
771
+ switch (lineage._tag) {
772
+ case "accepted": return lineage.receipt.providerOperationId;
773
+ case "reconcilable":
774
+ case "manual": return lineage.providerOperationId;
775
+ case "none":
776
+ case "terminal": return null;
777
+ }
778
+ };
779
+ var reconciliationKeyFromLineage = (lineage) => {
780
+ switch (lineage._tag) {
781
+ case "accepted": return lineage.receipt.reconciliationKey;
782
+ case "reconcilable": return lineage.reconciliationKey;
783
+ case "none":
784
+ case "manual":
785
+ case "terminal": return null;
786
+ }
787
+ };
788
+ var unknownLineage = (current, command) => {
789
+ const providerOperationId = providerOperationIdFromLineage(current);
790
+ if (command.outcome._tag === "reconcilable") return {
791
+ _tag: "reconcilable",
792
+ providerOperationId,
793
+ reconciliationKey: command.outcome.reconciliationKey
794
+ };
795
+ const retainedReconciliationKey = reconciliationKeyFromLineage(current);
796
+ return retainedReconciliationKey === null ? {
797
+ _tag: "manual",
798
+ providerOperationId
799
+ } : {
800
+ _tag: "reconcilable",
801
+ providerOperationId,
802
+ reconciliationKey: retainedReconciliationKey
803
+ };
804
+ };
805
+ var acceptedReceiptMatches = (lineage, command) => lineage._tag === "none" || lineage._tag === "accepted" && lineage.receipt.providerOperationId === command.receipt.providerOperationId && lineage.receipt.reconciliationKey === command.receipt.reconciliationKey;
806
+ /** Null is the action envelope's immutable idempotency identity, never a missing provider key. */
807
+ var reconciliationLocatorMatches = (lineage, reconciliationKey) => reconciliationKey === null ? lineage._tag === "none" || lineage._tag === "manual" : reconciliationKeyFromLineage(lineage) === reconciliationKey;
808
+ var terminalSourceMatches = (lineage, command) => {
809
+ const providerOperationId = providerOperationIdFromLineage(lineage);
810
+ switch (command.source._tag) {
811
+ case "direct": return lineage._tag === "none";
812
+ case "providerOperation": return providerOperationId !== null && command.source.providerOperationId === providerOperationId && command.receipt.providerOperationId === providerOperationId;
813
+ case "reconciliation": return reconciliationLocatorMatches(lineage, command.source.reconciliationKey) && (providerOperationId === null || command.receipt.providerOperationId === providerOperationId);
814
+ }
815
+ };
816
+ var reconciliationPendingMatches = (lineage, command) => reconciliationLocatorMatches(lineage, command.reconciliationKey);
817
+ /**
818
+ * Advance a durable lifecycle head while retaining and matching opaque provider identity.
819
+ * A null result rejects illegal edges, fabricated locators, and unrelated receipts.
820
+ */
821
+ var advanceGovernedActionLifecycle = (current, command) => {
822
+ const nextState = reduceGovernedActionState(current?.state ?? null, command);
823
+ if (nextState === null) return null;
824
+ const currentLineage = current?.lineage ?? { _tag: "none" };
825
+ switch (command._tag) {
826
+ case "recordAccepted": return acceptedReceiptMatches(currentLineage, command) ? {
827
+ state: nextState,
828
+ lineage: {
829
+ _tag: "accepted",
830
+ receipt: command.receipt
831
+ }
832
+ } : null;
833
+ case "recordUnknown": return {
834
+ state: nextState,
835
+ lineage: unknownLineage(currentLineage, command)
836
+ };
837
+ case "recordSucceeded":
838
+ case "recordFailed":
839
+ case "recordCancelled": return terminalSourceMatches(currentLineage, command) ? {
840
+ state: nextState,
841
+ lineage: {
842
+ _tag: "terminal",
843
+ receipt: command.receipt
844
+ }
845
+ } : null;
846
+ case "reconciliationPending": return reconciliationPendingMatches(currentLineage, command) ? {
847
+ state: nextState,
848
+ lineage: currentLineage
849
+ } : null;
850
+ case "propose":
851
+ case "authorize":
852
+ case "deny":
853
+ case "expire":
854
+ case "cancel":
855
+ case "start":
856
+ case "requestCancellation": return {
857
+ state: nextState,
858
+ lineage: currentLineage
859
+ };
860
+ }
861
+ };
862
+ //#endregion
863
+ //#region src/domain/plugins/discovery.ts
864
+ var SafeProviderIdentifier = Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(512));
865
+ var SafeProviderLabel = Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(200));
866
+ var SafeDiscoveryEndpointUrl = SourceUrl.pipe(Schema.check(Schema.makeFilter(({ hash, search }) => hash.length === 0 && search.length === 0, { expected: "a provider endpoint URL without query parameters or fragments" })));
867
+ var ProviderContainer = Schema.Struct({
868
+ providerImmutableId: SafeProviderIdentifier,
869
+ displayName: SafeProviderLabel
870
+ });
871
+ var NullableProviderContainer = Schema.NullOr(ProviderContainer);
872
+ /** Secret-free provider endpoint advertised during connection discovery. */
873
+ var PluginDiscoveryEndpointV1 = Schema.Struct({
874
+ kind: Schema.Literals([
875
+ "api",
876
+ "web",
877
+ "graphql",
878
+ "webhook"
879
+ ]),
880
+ url: SafeDiscoveryEndpointUrl,
881
+ label: Schema.NullOr(SafeProviderLabel)
882
+ });
883
+ /**
884
+ * Safe connection metadata discovered from the provider.
885
+ * Credentials, raw headers, and provider response bodies are deliberately absent.
886
+ */
887
+ var PluginDiscoveryV1 = Schema.Struct({
888
+ account: NullableProviderContainer,
889
+ workspace: NullableProviderContainer,
890
+ resource: Schema.optional(NullableProviderContainer).pipe(Schema.decodeTo(Schema.toType(NullableProviderContainer), {
891
+ decode: SchemaGetter.withDefault(Effect.succeed(null)),
892
+ encode: SchemaGetter.required()
893
+ })),
894
+ endpoints: Schema.Array(PluginDiscoveryEndpointV1).check(Schema.makeFilter((endpoints) => endpoints.length <= 20, { expected: "at most 20 safe provider endpoints" })),
895
+ discoveredAt: UtcTimestamp
896
+ }).annotate({ identifier: "PluginDiscoveryV1" });
897
+ //#endregion
898
+ //#region src/domain/readiness/material.ts
899
+ var unique = (values) => new Set(values).size === values.length;
900
+ var CandidateMaterialBase = {
901
+ workspaceId: WorkspaceId,
902
+ releaseRevision: ReadinessReleaseRevision,
903
+ artifactRevision: ReadinessArtifactRevision
904
+ };
905
+ var readinessFactsAreValid = (input) => {
906
+ const definitionsById = new Map(input.definitions.map((definition) => [definition.factId, definition]));
907
+ return unique(input.definitions.map(({ factId }) => factId)) && unique(input.observations.map(({ factId }) => factId)) && input.observations.every((observation) => definitionsById.get(observation.factId)?.kind === observation.state._tag) && readinessPolicyShapeIsV1(input.definitions, input.observations) && input.observations.reduce((total, observation) => total + observation.evidence.length, 0) <= 512;
908
+ };
909
+ /** Digest-free, complete material for one target-environment candidate. */
910
+ var EnvironmentReadinessCandidateMaterial = Schema.Struct({
911
+ ...CandidateMaterialBase,
912
+ scope: Schema.TaggedStruct("environment", {
913
+ releaseId: ReleaseId,
914
+ environmentId: EnvironmentId
915
+ }),
916
+ complete: Schema.Boolean,
917
+ definitions: Schema.Array(ReadinessFactDefinition).check(Schema.isMaxLength(512)),
918
+ observations: Schema.Array(ReadinessFactObservation).check(Schema.isMaxLength(512))
919
+ }).check(Schema.makeFilter(readinessFactsAreValid, { expected: "complete, unique, evidence-bounded V1 readiness candidate material" }));
920
+ /** Exact child assessment bound into a release-scope candidate. */
921
+ var ReleaseReadinessChildMaterial = Schema.Struct({
922
+ assessmentId: ReadinessAssessmentId,
923
+ environmentId: EnvironmentId,
924
+ candidateDigest: ReadinessCandidateDigest
925
+ });
926
+ /** Digest-free material for one release candidate and its exact environment assessments. */
927
+ var ReleaseReadinessCandidateMaterial = Schema.Struct({
928
+ ...CandidateMaterialBase,
929
+ scope: Schema.TaggedStruct("release", { releaseId: ReleaseId }),
930
+ environments: Schema.NonEmptyArray(ReleaseReadinessChildMaterial).check(Schema.isMaxLength(512))
931
+ }).check(Schema.makeFilter(({ environments }) => unique(environments.map(({ environmentId }) => environmentId)), { expected: "release candidate environment identities to be unique" }), Schema.makeFilter(({ environments }) => unique(environments.map(({ assessmentId }) => assessmentId)), { expected: "release candidate assessment identities to be unique" }));
932
+ /** Digest-free immutable readiness-rule snapshot. */
933
+ var ReadinessRuleMaterial = Schema.Struct({
934
+ ruleId: ReadinessRuleId,
935
+ version: ReadinessRuleVersion,
936
+ definitions: Schema.Array(ReadinessFactDefinition).check(Schema.isNonEmpty(), Schema.isMaxLength(512))
937
+ }).check(Schema.makeFilter(({ definitions }) => unique(definitions.map(({ factId }) => factId)), { expected: "readiness rule fact identities to be unique" }), Schema.makeFilter(({ definitions }) => readinessDefinitionsShapeIsV1(definitions), { expected: "readiness rule material to contain the complete V1 policy shape" }));
938
+ var normalizeDefinitions = (definitions) => [...definitions].sort((left, right) => compareReadinessText(left.factId, right.factId));
939
+ var normalizeObservations = (observations) => observations.map((observation) => ({
940
+ ...observation,
941
+ evidence: [...observation.evidence].sort((left, right) => compareReadinessText(left.evidenceId, right.evidenceId))
942
+ })).sort((left, right) => compareReadinessText(left.factId, right.factId));
943
+ /** Return the only JSON ordering accepted for environment-candidate hashing. */
944
+ var normalizeEnvironmentReadinessCandidateMaterial = (material) => ({
945
+ ...material,
946
+ definitions: normalizeDefinitions(material.definitions),
947
+ observations: normalizeObservations(material.observations)
948
+ });
949
+ /** Return the only JSON ordering accepted for release-candidate hashing. */
950
+ var normalizeReleaseReadinessCandidateMaterial = (material) => {
951
+ const [first, ...remaining] = material.environments;
952
+ const environments = [first, ...remaining];
953
+ environments.sort((left, right) => compareReadinessText(left.environmentId, right.environmentId));
954
+ return {
955
+ ...material,
956
+ environments
957
+ };
958
+ };
959
+ /** Return the only JSON ordering accepted for rule hashing. */
960
+ var normalizeReadinessRuleMaterial = (material) => ({
961
+ ...material,
962
+ definitions: normalizeDefinitions(material.definitions)
963
+ });
964
+ //#endregion
965
+ //#region src/domain/readiness/rollup.ts
966
+ /** Exact compact projection retained when an environment is rolled into a release. */
967
+ var summarizeEnvironmentReadiness = (assessment) => ({
968
+ assessmentId: assessment.assessmentId,
969
+ environmentId: assessment.candidate.scope.environmentId,
970
+ candidateDigest: assessment.candidate.digest,
971
+ inputComplete: assessment.inputComplete,
972
+ facts: assessment.facts,
973
+ nextEvaluationAt: assessment.nextEvaluationAt,
974
+ verdict: assessment.verdict,
975
+ stages: assessment.stages,
976
+ blockers: assessment.blockers,
977
+ warnings: assessment.warnings,
978
+ gaps: assessment.gaps,
979
+ sourceFreshness: assessment.sourceFreshness,
980
+ evidenceIds: assessment.evidenceIds
981
+ });
982
+ /** Pure deterministic roll-up of current target-environment assessments. */
983
+ var rollUpReleaseReadiness = (input) => {
984
+ const environments = input.environments.slice().sort((left, right) => {
985
+ return compareReadinessText(left.candidate.scope.environmentId, right.candidate.scope.environmentId);
986
+ });
987
+ const first = environments.reduce((earliest, assessment) => compareReadinessText(assessment.candidate.scope.environmentId, earliest.candidate.scope.environmentId) < 0 ? assessment : earliest, input.environments[0]);
988
+ const environmentSummaries = [summarizeEnvironmentReadiness(first), ...environments.filter((assessment) => assessment !== first).map(summarizeEnvironmentReadiness)];
989
+ const findings = deriveReleaseReadinessFindings(environmentSummaries);
990
+ return {
991
+ _tag: "release",
992
+ assessmentId: input.assessmentId,
993
+ previousAssessmentId: input.previousAssessmentId,
994
+ candidate: input.candidate,
995
+ rule: first.rule,
996
+ derivationVersion: first.derivationVersion,
997
+ evaluatedAt: input.evaluatedAt,
998
+ nextEvaluationAt: deriveReleaseReadinessNextEvaluationAt(environmentSummaries),
999
+ verdict: deriveReleaseReadinessVerdict(environmentSummaries),
1000
+ stages: deriveReleaseReadinessStages(environmentSummaries),
1001
+ environments: environmentSummaries,
1002
+ blockers: findings.blockers,
1003
+ warnings: findings.warnings,
1004
+ gaps: findings.gaps,
1005
+ sourceFreshness: deriveReleaseReadinessSourceSummaries(environmentSummaries),
1006
+ evidenceIds: sortedReadinessUnique(environments.flatMap(({ evidenceIds }) => evidenceIds))
1007
+ };
1008
+ };
1009
+ //#endregion
1010
+ export { GovernedActionProposalOrigin as $, GovernedActionAuthorizationBindingInput as A, PluginSyncPageV1 as At, GovernedActionEnvelopeMaterialV1 as B, GovernedActionTransitionMaterialV1 as C, PluginCheckpointV1 as Ct, reduceGovernedActionState as D, PluginEventId as Dt, isGovernedActionTerminalState as E, PluginEntityType as Et, GovernedActionAttemptDigest as F, AuthorizedShareTarget as Ft, GovernedActionIdempotencyKey as G, GovernedActionEvidenceReference as H, GovernedActionAttemptV1 as I, GovernedActionPolicyBinding as J, GovernedActionPluginConnectionAuthorityDigest as K, GovernedActionAuthorizationDigest as L, governedActionAuthorizationMatchesTransition as M, ReadPluginEntityRequestV1 as Mt, governedActionAuthorizationMismatches as N, ReadPluginEntityResultV1 as Nt, GovernedActionAuthorityBindingInput as O, PluginPageCursorV1 as Ot, governedActionPermissionGrants as P, AuthorizedShareGrant as Pt, GovernedActionPolicyId as Q, GovernedActionAuthorizationV1 as R, GovernedActionTransitionDigest as S, NormalizedPluginEventV1 as St, GovernedActionUnknownOutcome as T, PluginEntityReferenceV1 as Tt, GovernedActionEvidenceSet as U, GovernedActionEnvelopeV1 as V, GovernedActionEvidenceSetDigest as W, GovernedActionPolicyEvaluationDigest as X, GovernedActionPolicyDigest as Y, GovernedActionPolicyEvaluationV1 as Z, GovernedActionDenialReason as _, ReadyPluginActionPreflightV1 as _t, ReleaseReadinessCandidateMaterial as a, PluginActionCancellationResultV1 as at, GovernedActionTransitionCause as b, DiffInventoryPageRequestV1 as bt, normalizeReadinessRuleMaterial as c, PluginActionPreflightV1 as ct, PluginDiscoveryV1 as d, PluginActionReconciliationRequestV1 as dt, GovernedActionTargetSnapshotV1 as et, GovernedActionLifecycleHeadV1 as f, PluginActionReconciliationResultV1 as ft, GovernedActionCommandId as g, ProposePluginActionRequestV1 as gt, GovernedActionCommandDigest as h, PluginTerminalProviderReceiptV1 as ht, ReadinessRuleMaterial as i, PluginActionCancellationRequestV1 as it, governedActionAuthorityMismatches as j, PluginSyncRequestV1 as jt, GovernedActionAuthorityMismatch as k, PluginRelativePathV1 as kt, normalizeReleaseReadinessCandidateMaterial as l, PluginActionProposalV1 as lt, advanceGovernedActionLifecycle as m, PluginProviderReceiptV1 as mt, summarizeEnvironmentReadiness as n, BlockedPluginActionPreflightV1 as nt, ReleaseReadinessChildMaterial as o, PluginActionDispatchResultV1 as ot, GovernedActionProviderLineage as p, PluginProviderOperationId as pt, GovernedActionPluginConnectionRevision as q, EnvironmentReadinessCandidateMaterial as r, PluginAcceptedProviderReceiptV1 as rt, normalizeEnvironmentReadinessCandidateMaterial as s, PluginActionPayloadDigest as st, rollUpReleaseReadiness as t, AuthorizedPluginActionV1 as tt, PluginDiscoveryEndpointV1 as u, PluginActionReconciliationKey as ut, GovernedActionOutcomeSource as v, DiffContentRangeRequestV1 as vt, GovernedActionTransitionV1 as w, PluginDiffInventoryEntryV1 as wt, GovernedActionTransitionCommand as x, DiffInventoryPageV1 as xt, GovernedActionState as y, DiffContentRangeV1 as yt, GovernedActionEnvelopeDigest as z };
1011
+
1012
+ //# sourceMappingURL=readiness-CzU3vjYQ.js.map