@knpkv/control-center 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/README.md +52 -9
  2. package/dist/client/.vite/manifest.json +183 -170
  3. package/dist/client/assets/{ActiveWorkPage-DJQgGZeV.js → ActiveWorkPage-Dd1mxPrq.js} +2 -2
  4. package/dist/client/assets/{ActiveWorkPage-DJQgGZeV.js.map → ActiveWorkPage-Dd1mxPrq.js.map} +1 -1
  5. package/dist/client/assets/AgentPage-C3LThgPZ.js +3 -0
  6. package/dist/client/assets/AgentPage-C3LThgPZ.js.map +1 -0
  7. package/dist/client/assets/{AtlassianOAuthCallbackPage-D1F1xE_2.js → AtlassianOAuthCallbackPage-BPoF6oKf.js} +2 -2
  8. package/dist/client/assets/{AtlassianOAuthCallbackPage-D1F1xE_2.js.map → AtlassianOAuthCallbackPage-BPoF6oKf.js.map} +1 -1
  9. package/dist/client/assets/AuthorizedSharePage-jjqu6W_f.js +2 -0
  10. package/dist/client/assets/AuthorizedSharePage-jjqu6W_f.js.map +1 -0
  11. package/dist/client/assets/BrowserCrypto-BMbjhcvP.js +2 -0
  12. package/dist/client/assets/{BrowserCrypto-DVWR7DFd.js.map → BrowserCrypto-BMbjhcvP.js.map} +1 -1
  13. package/dist/client/assets/BrowserSessionHydrator-BC1ymLkL.js +2 -0
  14. package/dist/client/assets/BrowserSessionHydrator-BC1ymLkL.js.map +1 -0
  15. package/dist/client/assets/CommandSearch-WwAVDrD9.js +2 -0
  16. package/dist/client/assets/{CommandSearch-CP_QCbkm.js.map → CommandSearch-WwAVDrD9.js.map} +1 -1
  17. package/dist/client/assets/ItemsPage-CKK_KkJ2.js +2 -0
  18. package/dist/client/assets/{ItemsPage-BGFUkRL2.js.map → ItemsPage-CKK_KkJ2.js.map} +1 -1
  19. package/dist/client/assets/{PairPage-DIgzx0K2.js → PairPage-DA6cmyqF.js} +2 -2
  20. package/dist/client/assets/{PairPage-DIgzx0K2.js.map → PairPage-DA6cmyqF.js.map} +1 -1
  21. package/dist/client/assets/PortfolioOverview-CEI4gpXi.js +2 -0
  22. package/dist/client/assets/PortfolioOverview-CEI4gpXi.js.map +1 -0
  23. package/dist/client/assets/PullRequestReviewPanel-D7AKnwL-.js +6 -0
  24. package/dist/client/assets/PullRequestReviewPanel-D7AKnwL-.js.map +1 -0
  25. package/dist/client/assets/ReleaseRoute-CbPW3qUT.js +2 -0
  26. package/dist/client/assets/{ReleaseRoute-DXJ8Jg60.js.map → ReleaseRoute-CbPW3qUT.js.map} +1 -1
  27. package/dist/client/assets/ReleaseWorkset-BluAe7Sq.js +2 -0
  28. package/dist/client/assets/{ReleaseWorkset-Dtzalmji.js.map → ReleaseWorkset-BluAe7Sq.js.map} +1 -1
  29. package/dist/client/assets/ServicesPage-_B89DAvG.js +2 -0
  30. package/dist/client/assets/ServicesPage-_B89DAvG.js.map +1 -0
  31. package/dist/client/assets/TimelinePage-DvpgD8AY.js +2 -0
  32. package/dist/client/assets/TimelinePage-DvpgD8AY.js.map +1 -0
  33. package/dist/client/assets/WorkspaceEntityLink-DPj6MKI2.js +2 -0
  34. package/dist/client/assets/{WorkspaceEntityLink-AdZ_T-Wk.js.map → WorkspaceEntityLink-DPj6MKI2.js.map} +1 -1
  35. package/dist/client/assets/WorkspaceEntityRoute-B01fxxB3.js +3 -0
  36. package/dist/client/assets/WorkspaceEntityRoute-B01fxxB3.js.map +1 -0
  37. package/dist/client/assets/{WorkspaceHomeLink-XbKSPths.js → WorkspaceHomeLink-CkJfzO25.js} +2 -2
  38. package/dist/client/assets/{WorkspaceHomeLink-XbKSPths.js.map → WorkspaceHomeLink-CkJfzO25.js.map} +1 -1
  39. package/dist/client/assets/WorkspacePullRequestDetails-HwDgp12e.js +3 -0
  40. package/dist/client/assets/WorkspacePullRequestDetails-HwDgp12e.js.map +1 -0
  41. package/dist/client/assets/{WorkspaceReleaseLayout-cfboC5Qh.js → WorkspaceReleaseLayout-CGHi8eoo.js} +2 -2
  42. package/dist/client/assets/{WorkspaceReleaseLayout-cfboC5Qh.js.map → WorkspaceReleaseLayout-CGHi8eoo.js.map} +1 -1
  43. package/dist/client/assets/{WorkspaceSettingsPage-Fy7Wx8Y2.js → WorkspaceSettingsPage-DyoGiGJG.js} +2 -2
  44. package/dist/client/assets/{WorkspaceSettingsPage-Fy7Wx8Y2.js.map → WorkspaceSettingsPage-DyoGiGJG.js.map} +1 -1
  45. package/dist/client/assets/agent-api-CeONl_8w.js +19 -0
  46. package/dist/client/assets/agent-api-CeONl_8w.js.map +1 -0
  47. package/dist/client/assets/authenticatedMutationClient-DYaieXUe.js +2 -0
  48. package/dist/client/assets/{authenticatedMutationClient-Ccwguc3i.js.map → authenticatedMutationClient-DYaieXUe.js.map} +1 -1
  49. package/dist/client/assets/authorizedShareTransport-cxBoQzQ2.js +2 -0
  50. package/dist/client/assets/{authorizedShareTransport-DZHgFEkh.js.map → authorizedShareTransport-cxBoQzQ2.js.map} +1 -1
  51. package/dist/client/assets/client-DKS82kT_.js +5 -0
  52. package/dist/client/assets/client-DKS82kT_.js.map +1 -0
  53. package/dist/client/assets/connectionTestTransport-I_Ga9UNs.js +2 -0
  54. package/dist/client/assets/{connectionTestTransport-BQ55d6Me.js.map → connectionTestTransport-I_Ga9UNs.js.map} +1 -1
  55. package/dist/client/assets/index-C7_FDTU7.js +11 -0
  56. package/dist/client/assets/index-C7_FDTU7.js.map +1 -0
  57. package/dist/client/assets/{patterns-5N-j-AD2-BwypFm-e.js → patterns-5N-j-AD2-B9qgekXA.js} +2 -2
  58. package/dist/client/assets/{patterns-5N-j-AD2-BwypFm-e.js.map → patterns-5N-j-AD2-B9qgekXA.js.map} +1 -1
  59. package/dist/client/assets/{presentPortfolio-D3ZIcnqt.js → presentPortfolio-C_JsoSWg.js} +2 -2
  60. package/dist/client/assets/presentPortfolio-C_JsoSWg.js.map +1 -0
  61. package/dist/client/assets/{presentWorkspaceItems-Bmh4oEbH.js → presentWorkspaceItems-DboAfwGc.js} +2 -2
  62. package/dist/client/assets/{presentWorkspaceItems-Bmh4oEbH.js.map → presentWorkspaceItems-DboAfwGc.js.map} +1 -1
  63. package/dist/client/assets/{pullRequestReviewFailures-S74M-fOk.js → pullRequestReviewFailures-DHmYwffV.js} +2 -2
  64. package/dist/client/assets/{pullRequestReviewFailures-S74M-fOk.js.map → pullRequestReviewFailures-DHmYwffV.js.map} +1 -1
  65. package/dist/client/assets/pullRequestReviewThreadReplay-Vy1k53qE.js +2 -0
  66. package/dist/client/assets/pullRequestReviewThreadReplay-Vy1k53qE.js.map +1 -0
  67. package/dist/client/assets/releaseRoutes-t9uCfs5T.js +2 -0
  68. package/dist/client/assets/{releaseRoutes-BCuIdZyA.js.map → releaseRoutes-t9uCfs5T.js.map} +1 -1
  69. package/dist/client/assets/serviceOnboarding-DLINCon7.js +2 -0
  70. package/dist/client/assets/{serviceOnboarding-Jg_0yNjf.js.map → serviceOnboarding-DLINCon7.js.map} +1 -1
  71. package/dist/client/assets/{useWorkspaceDefaultLanding-CzlDdEF-.js → useWorkspaceDefaultLanding-CC5ImHkL.js} +3 -3
  72. package/dist/client/assets/{useWorkspaceDefaultLanding-CzlDdEF-.js.map → useWorkspaceDefaultLanding-CC5ImHkL.js.map} +1 -1
  73. package/dist/client/assets/{useWorkspaceItems-Cd3MPke2.js → useWorkspaceItems-B1X-JNwq.js} +2 -2
  74. package/dist/client/assets/{useWorkspaceItems-Cd3MPke2.js.map → useWorkspaceItems-B1X-JNwq.js.map} +1 -1
  75. package/dist/client/assets/workspaceEntityRoutes-2TejMrzb.js +2 -0
  76. package/dist/client/assets/workspaceEntityRoutes-2TejMrzb.js.map +1 -0
  77. package/dist/client/assets/workspaceScrollCapture-BsjcWVsk.js +2 -0
  78. package/dist/client/assets/workspaceScrollCapture-BsjcWVsk.js.map +1 -0
  79. package/dist/client/assets/workspaceSettingsTransport-Dw2hueXv.js +2 -0
  80. package/dist/client/assets/{workspaceSettingsTransport-CZWYL5T7.js.map → workspaceSettingsTransport-Dw2hueXv.js.map} +1 -1
  81. package/dist/client/build-graph.json +17 -0
  82. package/dist/client/index.html +1 -1
  83. package/dist/server/api/agent.d.ts +563 -44
  84. package/dist/server/api/agent.d.ts.map +1 -1
  85. package/dist/server/api/deliveryGraph.d.ts +454 -454
  86. package/dist/server/api/index.d.ts +1 -1
  87. package/dist/server/api/index.d.ts.map +1 -1
  88. package/dist/server/api/index.js +4 -4
  89. package/dist/server/api/liveEvents.d.ts +20 -0
  90. package/dist/server/api/liveEvents.d.ts.map +1 -1
  91. package/dist/server/api/portfolio.d.ts +23 -0
  92. package/dist/server/api/portfolio.d.ts.map +1 -1
  93. package/dist/server/api/shares.d.ts +2 -2
  94. package/dist/server/assets/{BindConfig-DIsf2Rnh.js → BindConfig-Bj282xDC.js} +2094 -290
  95. package/dist/server/assets/BindConfig-Bj282xDC.js.map +1 -0
  96. package/dist/server/assets/{CodePipelineStateDecoder-CVf1A2zG.js → CodePipelineStateDecoder-CNiFRgSi.js} +2 -2
  97. package/dist/server/assets/{CodePipelineStateDecoder-CVf1A2zG.js.map → CodePipelineStateDecoder-CNiFRgSi.js.map} +1 -1
  98. package/dist/server/assets/{agent-CyZ40zs1.js → agent-ZvwskOQu.js} +160 -10
  99. package/dist/server/assets/agent-ZvwskOQu.js.map +1 -0
  100. package/dist/server/assets/{controlCenterApi-ZUX3Y-LE.js → controlCenterApi-5j3gOXgE.js} +5 -5
  101. package/dist/server/assets/{controlCenterApi-ZUX3Y-LE.js.map → controlCenterApi-5j3gOXgE.js.map} +1 -1
  102. package/dist/server/assets/{descriptor-CKtTnhef.js → descriptor-CCvNzSZL.js} +10 -10
  103. package/dist/server/assets/{descriptor-CKtTnhef.js.map → descriptor-CCvNzSZL.js.map} +1 -1
  104. package/dist/server/assets/{failures-mgYDkUZy.js → failures-CesHLYbN.js} +2 -2
  105. package/dist/server/assets/{failures-mgYDkUZy.js.map → failures-CesHLYbN.js.map} +1 -1
  106. package/dist/server/assets/{firstPartyServices-D7b8BOek.js → firstPartyServices-Cdzjcs2H.js} +2 -2
  107. package/dist/server/assets/{firstPartyServices-D7b8BOek.js.map → firstPartyServices-Cdzjcs2H.js.map} +1 -1
  108. package/dist/server/assets/{manualPluginSynchronization-DFlhKvav.js → manualPluginSynchronization-CzIhZ_Dw.js} +5 -5
  109. package/dist/server/assets/{manualPluginSynchronization-DFlhKvav.js.map → manualPluginSynchronization-CzIhZ_Dw.js.map} +1 -1
  110. package/dist/server/assets/{plugins-D__oMDpI.js → plugins-DiPrfzV8.js} +2 -2
  111. package/dist/server/assets/{plugins-D__oMDpI.js.map → plugins-DiPrfzV8.js.map} +1 -1
  112. package/dist/server/assets/{readiness-BhA-Nr9c.js → readiness-BtntBhDj.js} +3 -3
  113. package/dist/server/assets/{readiness-BhA-Nr9c.js.map → readiness-BtntBhDj.js.map} +1 -1
  114. package/dist/server/assets/{relationshipInferenceMaterialization-DYBcaWhQ.js → relationshipInferenceMaterialization-CR6xyMNL.js} +1121 -159
  115. package/dist/server/assets/relationshipInferenceMaterialization-CR6xyMNL.js.map +1 -0
  116. package/dist/server/assets/{workspaceSettings-BE713Oe8.js → workspaceSettings-C2Zsk6RI.js} +2784 -2700
  117. package/dist/server/assets/workspaceSettings-C2Zsk6RI.js.map +1 -0
  118. package/dist/server/build-graph.json +117 -4
  119. package/dist/server/domain/actors.d.ts +12 -12
  120. package/dist/server/domain/deliveryGraph.d.ts +49 -49
  121. package/dist/server/domain/governedAction/bindings.d.ts +24 -12
  122. package/dist/server/domain/governedAction/bindings.d.ts.map +1 -1
  123. package/dist/server/domain/governedAction/lifecycle.d.ts +8 -8
  124. package/dist/server/domain/governedAction/model.d.ts +39 -18
  125. package/dist/server/domain/governedAction/model.d.ts.map +1 -1
  126. package/dist/server/domain/governedAction/stateMachine.d.ts +34 -34
  127. package/dist/server/domain/index.js +6 -6
  128. package/dist/server/domain/normalizedIssue.d.ts +1 -1
  129. package/dist/server/domain/prReview.d.ts +38 -0
  130. package/dist/server/domain/prReview.d.ts.map +1 -1
  131. package/dist/server/domain/prReviewReconciliation.d.ts +56 -0
  132. package/dist/server/domain/prReviewReconciliation.d.ts.map +1 -0
  133. package/dist/server/domain/prReviewRevision.d.ts +1 -0
  134. package/dist/server/domain/prReviewRevision.d.ts.map +1 -1
  135. package/dist/server/domain/readiness/model.d.ts +3 -3
  136. package/dist/server/domain/release.d.ts +3 -3
  137. package/dist/server/domain/releasePublication.d.ts +4 -0
  138. package/dist/server/domain/releasePublication.d.ts.map +1 -0
  139. package/dist/server/index.js +8 -8
  140. package/dist/server/server/agent/AgentJobWorker.d.ts +10 -1
  141. package/dist/server/server/agent/AgentJobWorker.d.ts.map +1 -1
  142. package/dist/server/server/agent/ReleaseAgentPrompt.d.ts.map +1 -1
  143. package/dist/server/server/agent/internal/AgentJobTaskExecutor.d.ts +4 -3
  144. package/dist/server/server/agent/internal/AgentJobTaskExecutor.d.ts.map +1 -1
  145. package/dist/server/server/agent/internal/PrReviewSandboxSession.d.ts +17 -1
  146. package/dist/server/server/agent/internal/PrReviewSandboxSession.d.ts.map +1 -1
  147. package/dist/server/server/agent/internal/PrReviewTaskExecutor.d.ts +76 -2
  148. package/dist/server/server/agent/internal/PrReviewTaskExecutor.d.ts.map +1 -1
  149. package/dist/server/server/agent/internal/PrReviewTelemetry.d.ts +27 -0
  150. package/dist/server/server/agent/internal/PrReviewTelemetry.d.ts.map +1 -0
  151. package/dist/server/server/api/ApplicationServices.d.ts +39 -5
  152. package/dist/server/server/api/ApplicationServices.d.ts.map +1 -1
  153. package/dist/server/server/api/Handlers.d.ts.map +1 -1
  154. package/dist/server/server/api/RequestBoundary.d.ts.map +1 -1
  155. package/dist/server/server/application/GovernedReviewSuggestionPublicationGateway.d.ts.map +1 -1
  156. package/dist/server/server/application/ReviewSuggestionPublicationGateway.d.ts +4 -0
  157. package/dist/server/server/application/ReviewSuggestionPublicationGateway.d.ts.map +1 -1
  158. package/dist/server/server/application/index.d.ts +1 -0
  159. package/dist/server/server/application/index.d.ts.map +1 -1
  160. package/dist/server/server/application/liveEvents.d.ts.map +1 -1
  161. package/dist/server/server/application/pipelineExecutionProjection.d.ts +6 -6
  162. package/dist/server/server/application/portfolioSnapshots.d.ts +2014 -4
  163. package/dist/server/server/application/portfolioSnapshots.d.ts.map +1 -1
  164. package/dist/server/server/application/pullRequestReviews.d.ts.map +1 -1
  165. package/dist/server/server/application/releaseAgent.d.ts +11 -3
  166. package/dist/server/server/application/releaseAgent.d.ts.map +1 -1
  167. package/dist/server/server/application/releasePublicationIntent.d.ts +7 -0
  168. package/dist/server/server/application/releasePublicationIntent.d.ts.map +1 -0
  169. package/dist/server/server/application/releasePublicationMetadata.d.ts +61 -0
  170. package/dist/server/server/application/releasePublicationMetadata.d.ts.map +1 -0
  171. package/dist/server/server/application/releasePublicationSubmissions.d.ts +3699 -0
  172. package/dist/server/server/application/releasePublicationSubmissions.d.ts.map +1 -0
  173. package/dist/server/server/application/releaseSynchronization.d.ts.map +1 -1
  174. package/dist/server/server/cli.js +8 -8
  175. package/dist/server/server/cli.js.map +1 -1
  176. package/dist/server/server/governance/governedActionDigests.d.ts +233 -218
  177. package/dist/server/server/governance/governedActionDigests.d.ts.map +1 -1
  178. package/dist/server/server/governance/internal/GovernedActionExecutionEngine.d.ts +3 -4
  179. package/dist/server/server/governance/internal/GovernedActionExecutionEngine.d.ts.map +1 -1
  180. package/dist/server/server/governance/internal/execution-store/begin.d.ts.map +1 -1
  181. package/dist/server/server/governance/internal/execution-store/dispatch-inbox.d.ts +1 -1
  182. package/dist/server/server/governance/internal/execution-store/dispatch-outcome.d.ts +8 -8
  183. package/dist/server/server/governance/internal/execution-store/provider-outcome-fold.d.ts +2 -2
  184. package/dist/server/server/governance/internal/execution-store/reconciliation-inbox.d.ts +1 -1
  185. package/dist/server/server/governance/internal/execution-store/recovery-claim.d.ts +36 -30
  186. package/dist/server/server/governance/internal/execution-store/recovery-claim.d.ts.map +1 -1
  187. package/dist/server/server/index.js +5 -5
  188. package/dist/server/server/internal/codepipeline-state-probe.js +1 -1
  189. package/dist/server/server/persistence/Database.d.ts +1 -1
  190. package/dist/server/server/persistence/Database.d.ts.map +1 -1
  191. package/dist/server/server/persistence/Persistence.d.ts +1539 -577
  192. package/dist/server/server/persistence/Persistence.d.ts.map +1 -1
  193. package/dist/server/server/persistence/backup/BackupArchive.d.ts.map +1 -1
  194. package/dist/server/server/persistence/repositories/agentJobModels.d.ts +345 -8
  195. package/dist/server/server/persistence/repositories/agentJobModels.d.ts.map +1 -1
  196. package/dist/server/server/persistence/repositories/agentJobRepository.d.ts +654 -192
  197. package/dist/server/server/persistence/repositories/agentJobRepository.d.ts.map +1 -1
  198. package/dist/server/server/persistence/repositories/delivery-graph/contract.d.ts +138 -138
  199. package/dist/server/server/persistence/repositories/delivery-graph/decode.d.ts +25 -25
  200. package/dist/server/server/persistence/repositories/delivery-graph/read.d.ts +111 -111
  201. package/dist/server/server/persistence/repositories/delivery-graph/rows.d.ts +27 -27
  202. package/dist/server/server/persistence/repositories/delivery-graph/write.d.ts +48 -48
  203. package/dist/server/server/persistence/repositories/deliveryGraphRepository.d.ts +111 -111
  204. package/dist/server/server/persistence/repositories/governed-action/codec.d.ts +255 -234
  205. package/dist/server/server/persistence/repositories/governed-action/codec.d.ts.map +1 -1
  206. package/dist/server/server/persistence/repositories/governed-action/contract.d.ts +66 -46
  207. package/dist/server/server/persistence/repositories/governed-action/contract.d.ts.map +1 -1
  208. package/dist/server/server/persistence/repositories/governed-action/read.d.ts +664 -190
  209. package/dist/server/server/persistence/repositories/governed-action/read.d.ts.map +1 -1
  210. package/dist/server/server/persistence/repositories/governed-action/transaction.d.ts +676 -206
  211. package/dist/server/server/persistence/repositories/governed-action/transaction.d.ts.map +1 -1
  212. package/dist/server/server/persistence/repositories/governed-action/write-preparation.d.ts +37 -31
  213. package/dist/server/server/persistence/repositories/governed-action/write-preparation.d.ts.map +1 -1
  214. package/dist/server/server/persistence/repositories/governed-action/write-replay.d.ts +44 -32
  215. package/dist/server/server/persistence/repositories/governed-action/write-replay.d.ts.map +1 -1
  216. package/dist/server/server/persistence/repositories/governed-action/write.d.ts +44 -32
  217. package/dist/server/server/persistence/repositories/governed-action/write.d.ts.map +1 -1
  218. package/dist/server/server/persistence/repositories/governedActionRepository.d.ts +674 -205
  219. package/dist/server/server/persistence/repositories/governedActionRepository.d.ts.map +1 -1
  220. package/dist/server/server/persistence/repositories/internal/reviewSuggestionRevisions.d.ts +85 -4
  221. package/dist/server/server/persistence/repositories/internal/reviewSuggestionRevisions.d.ts.map +1 -1
  222. package/dist/server/server/persistence/repositories/models.d.ts +9 -9
  223. package/dist/server/server/persistence/repositories/peopleRepository.d.ts +36 -36
  224. package/dist/server/server/persistence/repositories/providerAccountRepository.d.ts +1 -1
  225. package/dist/server/server/persistence/repositories/readiness/assessments.d.ts +6 -6
  226. package/dist/server/server/persistence/repositories/readiness/contract.d.ts +450 -450
  227. package/dist/server/server/persistence/repositories/readiness/queue.d.ts +14 -14
  228. package/dist/server/server/persistence/repositories/readinessRepository.d.ts +7 -7
  229. package/dist/server/server/persistence/repositories/releaseRepository.d.ts +18 -18
  230. package/dist/server/server/persistence/repositories/retentionRepository.d.ts.map +1 -1
  231. package/dist/server/server/persistence/repositories/timelineRepository.d.ts +4 -4
  232. package/dist/server/server/plugins/atlassian/AtlassianOAuthGrants.d.ts.map +1 -1
  233. package/dist/server/server/plugins/atlassian/AtlassianOAuthScopes.d.ts +9 -0
  234. package/dist/server/server/plugins/atlassian/AtlassianOAuthScopes.d.ts.map +1 -0
  235. package/dist/server/server/plugins/atlassian/AtlassianProfiles.d.ts.map +1 -1
  236. package/dist/server/server/plugins/codecommit/CodeCommitPluginDefinition.d.ts.map +1 -1
  237. package/dist/server/server/plugins/jira/JiraReadPlugin.d.ts +2 -2
  238. package/dist/server/server/plugins/jira/JiraReadPlugin.d.ts.map +1 -1
  239. package/dist/server/server/plugins/jira/JiraReadProvider.d.ts.map +1 -1
  240. package/dist/server/server/plugins/jira/JiraReleaseVersionLimits.d.ts +8 -0
  241. package/dist/server/server/plugins/jira/JiraReleaseVersionLimits.d.ts.map +1 -0
  242. package/dist/server/server/plugins/jira/index.d.ts +1 -1
  243. package/dist/server/server/plugins/jira/index.d.ts.map +1 -1
  244. package/dist/server/server/runtime/Bootstrap.d.ts +1 -1
  245. package/dist/server/server/runtime/Bootstrap.d.ts.map +1 -1
  246. package/dist/server/server/runtime/ControlCenterServer.d.ts +3 -3
  247. package/dist/server/server/runtime/ControlCenterServer.d.ts.map +1 -1
  248. package/dist/server/server/runtime/PrReviewWorkerStartup.d.ts +11 -1
  249. package/dist/server/server/runtime/PrReviewWorkerStartup.d.ts.map +1 -1
  250. package/dist/server/server/runtime/RetentionStartup.d.ts.map +1 -1
  251. package/dist/server/server/runtime/ServerLifecycle.d.ts.map +1 -1
  252. package/dist/server/server/secrets/SecretStore.d.ts.map +1 -1
  253. package/package.json +9 -8
  254. package/dist/client/assets/AgentPage-DGL93TJU.js +0 -3
  255. package/dist/client/assets/AgentPage-DGL93TJU.js.map +0 -1
  256. package/dist/client/assets/AuthorizedSharePage-DCQUFY2I.js +0 -2
  257. package/dist/client/assets/AuthorizedSharePage-DCQUFY2I.js.map +0 -1
  258. package/dist/client/assets/BrowserCrypto-DVWR7DFd.js +0 -2
  259. package/dist/client/assets/BrowserSessionHydrator-DE46feEX.js +0 -2
  260. package/dist/client/assets/BrowserSessionHydrator-DE46feEX.js.map +0 -1
  261. package/dist/client/assets/CommandSearch-CP_QCbkm.js +0 -2
  262. package/dist/client/assets/ItemsPage-BGFUkRL2.js +0 -2
  263. package/dist/client/assets/PortfolioOverview-D45rk8Hl.js +0 -2
  264. package/dist/client/assets/PortfolioOverview-D45rk8Hl.js.map +0 -1
  265. package/dist/client/assets/PullRequestReviewPanel-CqPtjhVW.js +0 -6
  266. package/dist/client/assets/PullRequestReviewPanel-CqPtjhVW.js.map +0 -1
  267. package/dist/client/assets/ReleaseRoute-DXJ8Jg60.js +0 -2
  268. package/dist/client/assets/ReleaseWorkset-Dtzalmji.js +0 -2
  269. package/dist/client/assets/ServicesPage-DGcUjd2H.js +0 -2
  270. package/dist/client/assets/ServicesPage-DGcUjd2H.js.map +0 -1
  271. package/dist/client/assets/TimelinePage-Bq1RTQlP.js +0 -2
  272. package/dist/client/assets/TimelinePage-Bq1RTQlP.js.map +0 -1
  273. package/dist/client/assets/WorkspaceEntityLink-AdZ_T-Wk.js +0 -2
  274. package/dist/client/assets/WorkspaceEntityRoute-Bxxnc8us.js +0 -3
  275. package/dist/client/assets/WorkspaceEntityRoute-Bxxnc8us.js.map +0 -1
  276. package/dist/client/assets/WorkspacePullRequestDetails-BErJ5bk8.js +0 -3
  277. package/dist/client/assets/WorkspacePullRequestDetails-BErJ5bk8.js.map +0 -1
  278. package/dist/client/assets/agent-api-QVqt4a0O.js +0 -19
  279. package/dist/client/assets/agent-api-QVqt4a0O.js.map +0 -1
  280. package/dist/client/assets/authenticatedMutationClient-Ccwguc3i.js +0 -2
  281. package/dist/client/assets/authorizedShareTransport-DZHgFEkh.js +0 -2
  282. package/dist/client/assets/client-D27unen8.js +0 -5
  283. package/dist/client/assets/client-D27unen8.js.map +0 -1
  284. package/dist/client/assets/connectionTestTransport-BQ55d6Me.js +0 -2
  285. package/dist/client/assets/index-j5ze816l.js +0 -11
  286. package/dist/client/assets/index-j5ze816l.js.map +0 -1
  287. package/dist/client/assets/presentPortfolio-D3ZIcnqt.js.map +0 -1
  288. package/dist/client/assets/pullRequestReviewThreadReplay-oljKM7Xz.js +0 -2
  289. package/dist/client/assets/pullRequestReviewThreadReplay-oljKM7Xz.js.map +0 -1
  290. package/dist/client/assets/releaseRoutes-BCuIdZyA.js +0 -2
  291. package/dist/client/assets/serviceOnboarding-Jg_0yNjf.js +0 -2
  292. package/dist/client/assets/workspaceScrollCapture-CJ4QUptr.js +0 -2
  293. package/dist/client/assets/workspaceScrollCapture-CJ4QUptr.js.map +0 -1
  294. package/dist/client/assets/workspaceSettingsTransport-CZWYL5T7.js +0 -2
  295. package/dist/server/assets/BindConfig-DIsf2Rnh.js.map +0 -1
  296. package/dist/server/assets/agent-CyZ40zs1.js.map +0 -1
  297. package/dist/server/assets/relationshipInferenceMaterialization-DYBcaWhQ.js.map +0 -1
  298. package/dist/server/assets/workspaceSettings-BE713Oe8.js.map +0 -1
package/README.md CHANGED
@@ -31,7 +31,7 @@ delivery evidence as one connected release.
31
31
 
32
32
  | Target | Largest measured artifact | Measured raw / gzip | Per-artifact raw / gzip budget |
33
33
  | ------ | --------------------------- | ------------------------: | -----------------------------: |
34
- | Client | generated API client chunk | 221,593 / 66,543 bytes | 235,000 / 70,000 bytes |
34
+ | Client | generated API client chunk | 251,169 / 74,462 bytes | 260,000 / 80,000 bytes |
35
35
  | Server | shared `BindConfig-*` chunk | 1,583,001 / 273,567 bytes | 1,650,000 / 290,000 bytes |
36
36
 
37
37
  These initial ceilings were measured from a production build on 2026-07-19 and leave roughly four to six percent headroom, enough for build variance while rejecting meaningful per-file growth. The server chunk was about 6.87 MB raw and 1.09 MB gzip before the server build externalized declared runtime dependencies. Vite had followed linked workspace packages into their transitive graphs, including `confluence-to-markdown`'s Atlaskit schema/transformer, AJV, Markdown, and ProseMirror dependencies, `control-center-sql`'s query parser, and the broad `codecommit-core` root barrel. The server now keeps dependencies as runtime imports and uses narrow CodeCommit subpaths.
@@ -49,6 +49,34 @@ pnpm --filter @knpkv/control-center start
49
49
 
50
50
  The first run prints a single-use pairing code and listens at `http://127.0.0.1:4173`. Durable data, content, and owner-only secrets live under `.control-center` by default; set `CONTROL_CENTER_DATA_ROOT` to choose another owner-controlled directory.
51
51
 
52
+ ### Real Atlassian OAuth acceptance journey
53
+
54
+ The full interactive Jira + Confluence OAuth journey is opt-in because it requires a human Atlassian
55
+ consent and access to a real site. Register the callback URL
56
+ `http://127.0.0.1:<temporary-port>/services/oauth/atlassian/callback` in the OAuth app, then run:
57
+
58
+ ```sh
59
+ CONTROL_CENTER_TEST_ATLASSIAN_OAUTH=1 \
60
+ CONTROL_CENTER_TEST_ATLASSIAN_PORT=4173 \
61
+ CONTROL_CENTER_TEST_ATLASSIAN_CLIENT_ID=... \
62
+ CONTROL_CENTER_TEST_ATLASSIAN_CLIENT_SECRET=... \
63
+ CONTROL_CENTER_TEST_ATLASSIAN_PROJECT_ID=... \
64
+ CONTROL_CENTER_TEST_ATLASSIAN_SPACE_ID=... \
65
+ CONTROL_CENTER_TEST_ATLASSIAN_PAGE_ID=... \
66
+ CONTROL_CENTER_TEST_ATLASSIAN_EXPECTED_ACCOUNT_EMAIL=... \
67
+ CONTROL_CENTER_TEST_ATLASSIAN_EXPECTED_SITE_URL=https://example.atlassian.net/ \
68
+ pnpm --filter @knpkv/control-center test:e2e:atlassian-oauth
69
+ ```
70
+
71
+ The command starts a fresh temporary server and data root on the configured fixed port, pairs through
72
+ the browser, waits for the operator to complete Atlassian sign-in and consent, selects one site, creates
73
+ both provider connections, and runs both connection checks. Register the callback using the same port
74
+ before starting the command. The client secret is used only as masked form input; the test disables
75
+ screenshots and traces, verifies the canonical profile contains credentials, and checks browser
76
+ storage, SQL/WAL/journal files, Playwright artifacts, and server output for the client/provider
77
+ credentials. It removes the temporary data, auth, and configuration roots on success or failure.
78
+ Provider tokens remain server-private and are never returned to browser storage or SQL.
79
+
52
80
  ### Local OpenTelemetry
53
81
 
54
82
  Control Center can export Effect traces and structured logs to an OTLP/HTTP collector. Export is opt-in and disabled unless the corresponding OpenTelemetry exporters are enabled. Metrics are not exported in this initial slice.
@@ -183,16 +211,31 @@ and uses only the disposable clone. Codex disables project-document and exec-pol
183
211
  reviewed head; Claude disables project, local, and user setting sources so its `CLAUDE.md` files are
184
212
  review content rather than executable instructions, and safe mode disables automatic project-memory
185
213
  discovery. Every path validates structured output and exact
186
- diff evidence on the trusted host. Sandbox names are server-private, remain within sbx's 63-character
214
+ diff evidence on the trusted host. Sandbox names use a server-private compact workspace-scoped prefix and remain within sbx's 63-character
187
215
  limit, and begin with the configured worker workspace's
188
- `cc-pr-review-<compact-workspace-id>-` prefix. Startup removes only crash leftovers in that owned
189
- namespace; foreign-workspace and legacy unscoped names are not removed automatically.
216
+ `cc-pr-review-<compact-workspace-id>-` prefix. Startup retains live names in that owned namespace
217
+ for recovery inspection and never removes foreign-workspace or legacy unscoped names automatically.
218
+ When no owned live sandbox remains, active review jobs receive a durable interrupted result with
219
+ partial evidence and a later operator retry creates a new immutable run.
190
220
  While a review is running, the worker renews its durable lease and
191
221
  observes cancellation; cancellation
192
222
  interrupts the scoped checkout, sandbox, and model work before durably completing the job as cancelled.
193
223
  `CONTROL_CENTER_PR_REVIEW_BUDGET_MILLIS` and
194
224
  `CONTROL_CENTER_PR_REVIEW_MAXIMUM_DURATION_MILLIS` both default to 1,200,000 milliseconds. The maximum
195
225
  session duration should be at least the selected Review Agent Profile budget.
226
+ The worker enforces the selected budget independently of provider process limits. An operator may extend
227
+ one running review once by one profile budget; the extension is durable and visible to the worker after
228
+ restart. Cancellation and budget expiry retain the last validated partial report, mark the run unable to
229
+ conclude, and leave any retained suggestions as advice-only because unexplored project areas remain.
230
+
231
+ Provider parity is enforced at the Review Sandbox boundary: native Codex and Claude receive the same
232
+ immutable checkout, bounded review prompt, structured report schema, exact diff anchoring, activity,
233
+ and cleanup contract. The deterministic executor tests exercise that shared request shape for both
234
+ providers; the installed-runtime fixture additionally runs full-project discovery, a command, a write,
235
+ diff generation, and a structured JSON result without credentials. Run that fixture deliberately with
236
+ `pnpm --filter @knpkv/control-center test:sbx:real`; it requires Docker and `sbx`, but does not require
237
+ AWS, Codex, Claude, or provider API credentials. The real authenticated Codex CLI smoke remains an
238
+ explicit separate opt-in in `@knpkv/ai-codex`.
196
239
 
197
240
  The launch dialog shows the exact head, selected Review Agent Profile, budget, network policy, and sbx
198
241
  runtime before enqueue. The selected model explores the complete project inside the Review Sandbox.
@@ -384,11 +427,11 @@ The exported `PluginConnection` service contains reads, health, sync, complete-d
384
427
 
385
428
  ### CodeCommit read adapter
386
429
 
387
- The production CodeCommit adapter exports an opaque `CodeCommitPluginDefinition` from `@knpkv/control-center/server`. One connection configures an AWS profile, region, and repository name. It negotiates `entity.read@1`, `sync.incremental@1`, `diff.inventory@2`, and `diff.content@2` (while retaining the v1 codecs for persisted descriptors), then normalizes pull requests with immutable PR/base/head revisions and complete cursor-based changed-file pages. Diff v2 requires the synchronized provider revision and immutable base/head commits; the authenticated application resolves those coordinates from the workspace-scoped canonical projection rather than accepting them from the browser. Provider output is decoded by `@knpkv/codecommit-core` before it enters the vendor-neutral plugin contract; raw AWS types and causes do not cross the adapter.
430
+ The production CodeCommit adapter exports an opaque `CodeCommitPluginDefinition` from `@knpkv/control-center/server`. One connection configures an AWS profile, region, and repository name. It negotiates `entity.read@1`, `sync.incremental@1`, `diff.inventory@2`, and `diff.content@2` (while retaining the v1 codecs for persisted descriptors), then normalizes pull requests with immutable PR/base/head revisions and complete cursor-based changed-file pages. Its governed review actions support exact-head create, update, and reply comment mutations plus native approval state changes; every mutation remains behind the human-confirmed action flow. Diff v2 requires the synchronized provider revision and immutable base/head commits; the authenticated application resolves those coordinates from the workspace-scoped canonical projection rather than accepting them from the browser. Provider output is decoded by `@knpkv/codecommit-core` before it enters the vendor-neutral plugin contract; raw AWS types and causes do not cross the adapter.
388
431
 
389
432
  Authenticated diff APIs collect at most 500 files and 100 provider pages before returning `ready`; partial inventories never masquerade as complete. Every file receives a stable exact-revision anchor. Content reads resubmit that anchor with the normalized status and previous path in a bounded read-only POST payload, keeping maximum-length rename identities out of the request URL. The application verifies the canonical identity before the provider selects the exact entry from the stored commits, so synchronized historical revisions remain readable after the live pull request advances. Text content is fetched only for the selected before/after side in ranges of at most one MiB. Binary, generated, oversized, and missing content remain explicit inventory/workbench states; authentication, throttling, timeout, and provider outages remain typed failures and retain the normal safe-read retry policy.
390
433
 
391
- This milestone remains read-only. It does not expose comments, commits/history, checks, merge, or any ungoverned provider mutation capability. Provider credentials and AWS response types stay behind the scoped server runtime and never enter browser state or diff URLs.
434
+ This milestone's synchronized entity data remains read-only and does not expose comment reads, commits/history, checks, or merge. Only the governed create, update, and reply comment mutations and approval actions described above are exposed; no ungoverned provider mutation capability exists. Provider credentials and AWS response types stay behind the scoped server runtime and never enter browser state or diff URLs.
392
435
 
393
436
  ### AWS CodePipeline adapter
394
437
 
@@ -404,7 +447,7 @@ The canonical CodePipeline entity page is a read-first execution flight recorder
404
447
 
405
448
  ### Jira issue adapter
406
449
 
407
- `makeJiraReadPluginRuntime` from `@knpkv/control-center/server` builds the production Jira adapter around the shared Schema-validated `JiraApiClient`. It negotiates bounded project synchronization, `entity.read` for `jira.issue`, and revision-inspected governed proposals for comments, reply fallbacks, exact fix-version assignments, and typed issue links. Every proposal preserves the exact `jira.issue` target identity and records the inspected issue revision. Jira provider writes are unnegotiated until Jira offers atomic provider revision guards or the product adopts explicit append-only authorization semantics.
450
+ `makeJiraReadPluginRuntime` from `@knpkv/control-center/server` builds the production Jira adapter around the shared Schema-validated `JiraApiClient`. It negotiates bounded project synchronization, `entity.read` for `jira.issue`, revision-inspected governed proposals for comments, reply fallbacks, exact fix-version assignments, and typed issue links, plus a separately governed `create-release-version` action. Every issue proposal preserves the exact `jira.issue` target identity and records the inspected issue revision. Jira issue provider writes remain disabled until Jira offers a documented, verified provider-enforced atomic revision precondition for the exact target revision; append-only authorization is not a substitute for that guard. The release-version action is create-only and project-scoped: it never edits an existing issue or version, checks for an exact existing name before dispatch, and reconciles ambiguous outcomes by that name. Its durable canonical request is the governed-action `envelope_json`: the payload persists only `projectId`, exact `name`, and release `description`; the production identity also binds the workspace, selected connection and its verified Atlassian site, release, source-revision digest, immutable project destination, and canonical payload digest. Provider credentials remain server-private and are never durable payload fields.
408
451
 
409
452
  The secret-free runtime configuration requires an HTTPS Jira Cloud tenant root `webBaseUrl` under `atlassian.net`, its stable Atlassian cloud `siteId`, the immutable `projectId` followed by this connection, an activity `pageSize` from 1 to 50, a `maximumPages` limit from 1 to 5, and a per-request `operationTimeoutMillis` from 1,000 to 120,000. Discovery verifies the project through Jira before it can become a followed resource, and entity reads fail closed when an issue belongs to another project. Authentication remains in the externally supplied `JiraApiClient` layer, so tokens never enter plugin configuration.
410
453
 
@@ -412,7 +455,7 @@ OAuth profiles provide the verified cloud ID used to share one Atlassian site ac
412
455
 
413
456
  An issue read fetches the issue, comments, and changelog through interruptible Effect operations. Pagination stops at the configured bound and records explicit comment/history truncation flags. The normalized issue attributes include description and environment text, workflow metadata, release versions, parent and subtasks, comments, history, and deduplicated collaborators with roles and avatar URLs. If fixed issue fields would cross the payload cap, optional arrays and presentation fields are omitted deterministically and named in `truncatedFields`. OpenAPI, HTTP, timeout, authentication, authorization, rate-limit, outage, and adapter-schema failures are translated to the closed plugin failure taxonomy without retaining raw provider causes.
414
457
 
415
- These proposals are useful for review and authorization workflows, but this adapter does not execute or reconcile them. Jira Cloud's issue-comment API does not expose portable threaded replies, so a reply proposal is rendered as a normal comment headed with the inspected parent comment ID; a missing parent blocks the proposal. Issue-link proposals require an explicit direction and retain Jira's canonical inward and outward labels: `outward` means the target issue points to the linked issue, while `inward` means the linked issue points to the target issue. Workflow transitions and description replacement remain unsupported, and all comment, fix-version, and issue-link provider mutations stay disabled behind the proposal boundary.
458
+ The issue-targeted proposals are useful for review and authorization workflows, but this adapter does not execute or reconcile them. Jira Cloud's issue-comment API does not expose portable threaded replies, so a reply proposal is rendered as a normal comment headed with the inspected parent comment ID; a missing parent blocks the proposal. Issue-link proposals require an explicit direction and retain Jira's canonical inward and outward labels: `outward` means the target issue points to the linked issue, while `inward` means the linked issue points to the target issue. Workflow transitions and description replacement remain unsupported, and all comment, fix-version, and issue-link provider mutations stay disabled behind the proposal boundary. Separately, Relay can execute and reconcile create-only Jira project-version publication after an explicit workspace-owner confirmation.
416
459
 
417
460
  ### Confluence page adapter
418
461
 
@@ -530,7 +573,7 @@ Configured connections can be enabled or disabled directly from Services through
530
573
 
531
574
  Catalog field metadata marks adapter settings separately from credential fields. Jira and Confluence prefer one shared local Atlassian OAuth profile. An owner can start PKCE-protected Atlassian sign-in for the intended provider set from Services, return to the session-bound callback route, and explicitly choose one accessible site. Control Center requests only the intended providers' scope union and writes the selected token once to its canonical machine-local `control-center` profile store; both Jira and Confluence runtimes resolve that same credential record when its granted scopes support them. Before writing, it rechecks the canonical store's OAuth client configuration. A populated canonical store with a missing or different client configuration rejects completion without changing the store, while an empty canonical store receives the shared configuration and token. The first-run client secret crosses one bounded CSRF-protected request and is never returned, persisted in browser storage, or written to SQL; provider tokens never enter the browser or SQL. Existing `jira-cli` and `confluence-to-markdown` profiles remain discoverable as provider-specific legacy profiles rather than being merged into a shared credential, and an explicit API-token fallback retains the `email` and `apiToken` secret-store path. OAuth fills the stable Atlassian cloud ID automatically; API-token setup requires the same site ID explicitly.
532
575
 
533
- Create one shared Atlassian OAuth app for Control Center on the server machine. Add `<public-origin>/services/oauth/atlassian/callback` as its callback URL and enable the complete scope union requested by the Jira and Confluence integrations: `read:jira-work`, `write:jira-work`, `read:jira-user`, `manage:jira-project`, `manage:jira-configuration`, `read:page:confluence`, `write:page:confluence`, `delete:page:confluence`, `read:attachment:confluence`, `write:attachment:confluence`, `read:me`, and `offline_access`.
576
+ Create one shared Atlassian OAuth app for Control Center on the server machine. Add `<public-origin>/services/oauth/atlassian/callback` as its callback URL. Enable Jira's governed release-version publication scopes (`read:jira-work`, `manage:jira-project`, `read:jira-user`, `read:me`, `offline_access`) and the Confluence integration's documented scopes (`read:page:confluence`, `write:page:confluence`, `delete:page:confluence`, `read:attachment:confluence`, `write:attachment:confluence`). Jira authority is limited to create-only project-version publication; Jira issue edits remain proposal-only.
534
577
 
535
578
  Choose **Sign in with Atlassian** in Services. When no OAuth app has been configured, Control Center shows its exact callback URL and accepts the client ID and secret inline. The CSRF-protected server stores them directly in the machine-local `control-center` auth store before continuing sign-in; neither the Jira nor Confluence CLI needs to be installed or configured. Credentials can be corrected after a failed first exchange while the canonical store has no profiles. Once a profile is saved, the existing configuration is reused and cannot be silently replaced. Matching legacy CLI configurations remain a compatibility fallback only. Non-loopback callbacks use the trusted HTTPS proxy or direct-TLS setup described above; insecure LAN mode cannot configure providers. A grant expires after ten minutes, is bound to the initiating workspace and browser session, and is consumed once at code exchange and once at site selection. Token expiry remains anchored to the provider exchange response even when site selection or a safe completion retry occurs later.
536
579