create-principles-disciple 1.146.4 → 1.146.6

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 (308) hide show
  1. package/_release/product-identity.json +1 -1
  2. package/package.json +3 -3
  3. package/release-manager/package.json +3 -3
  4. package/console/dist/ui/App.d.ts +0 -1
  5. package/console/dist/ui/App.js +0 -172
  6. package/console/dist/ui/api.d.ts +0 -611
  7. package/console/dist/ui/api.js +0 -1094
  8. package/console/dist/ui/components/auth/login-form.d.ts +0 -4
  9. package/console/dist/ui/components/auth/login-form.js +0 -142
  10. package/console/dist/ui/components/auth/splash-screen.d.ts +0 -9
  11. package/console/dist/ui/components/auth/splash-screen.js +0 -22
  12. package/console/dist/ui/components/error-boundary.d.ts +0 -15
  13. package/console/dist/ui/components/error-boundary.js +0 -30
  14. package/console/dist/ui/components/focus/daily-thought-card.d.ts +0 -1
  15. package/console/dist/ui/components/focus/daily-thought-card.js +0 -41
  16. package/console/dist/ui/components/language-switcher.d.ts +0 -2
  17. package/console/dist/ui/components/language-switcher.js +0 -17
  18. package/console/dist/ui/components/layout/app-sidebar.d.ts +0 -27
  19. package/console/dist/ui/components/layout/app-sidebar.js +0 -128
  20. package/console/dist/ui/components/layout/page-loading.d.ts +0 -13
  21. package/console/dist/ui/components/layout/page-loading.js +0 -14
  22. package/console/dist/ui/components/layout/page-shell.d.ts +0 -12
  23. package/console/dist/ui/components/layout/page-shell.js +0 -11
  24. package/console/dist/ui/components/layout/section-title.d.ts +0 -10
  25. package/console/dist/ui/components/layout/section-title.js +0 -9
  26. package/console/dist/ui/components/notifications/NotificationProvider.d.ts +0 -14
  27. package/console/dist/ui/components/notifications/NotificationProvider.js +0 -136
  28. package/console/dist/ui/components/notifications/favicon-badge.d.ts +0 -3
  29. package/console/dist/ui/components/notifications/favicon-badge.js +0 -68
  30. package/console/dist/ui/components/notifications/notification-reducer.d.ts +0 -9
  31. package/console/dist/ui/components/notifications/notification-reducer.js +0 -9
  32. package/console/dist/ui/components/notifications/sound-storage.d.ts +0 -3
  33. package/console/dist/ui/components/notifications/sound-storage.js +0 -37
  34. package/console/dist/ui/components/notifications/useNotifications.d.ts +0 -1
  35. package/console/dist/ui/components/notifications/useNotifications.js +0 -9
  36. package/console/dist/ui/components/onboarding/CircuitDiagram.d.ts +0 -8
  37. package/console/dist/ui/components/onboarding/CircuitDiagram.js +0 -18
  38. package/console/dist/ui/components/onboarding/DemoResultView.d.ts +0 -22
  39. package/console/dist/ui/components/onboarding/DemoResultView.js +0 -33
  40. package/console/dist/ui/components/onboarding/SlashCommandsCard.d.ts +0 -16
  41. package/console/dist/ui/components/onboarding/SlashCommandsCard.js +0 -20
  42. package/console/dist/ui/components/onboarding/slashCommands.d.ts +0 -20
  43. package/console/dist/ui/components/onboarding/slashCommands.js +0 -22
  44. package/console/dist/ui/components/receipts/ReceiptCoverageDisclosure.d.ts +0 -6
  45. package/console/dist/ui/components/receipts/ReceiptCoverageDisclosure.js +0 -66
  46. package/console/dist/ui/components/theme-provider.d.ts +0 -14
  47. package/console/dist/ui/components/theme-provider.js +0 -40
  48. package/console/dist/ui/components/theme-toggle.d.ts +0 -2
  49. package/console/dist/ui/components/theme-toggle.js +0 -11
  50. package/console/dist/ui/components/ui/alert-dialog.d.ts +0 -20
  51. package/console/dist/ui/components/ui/alert-dialog.js +0 -26
  52. package/console/dist/ui/components/ui/badge.d.ts +0 -9
  53. package/console/dist/ui/components/ui/badge.js +0 -22
  54. package/console/dist/ui/components/ui/button.d.ts +0 -11
  55. package/console/dist/ui/components/ui/button.js +0 -34
  56. package/console/dist/ui/components/ui/card.d.ts +0 -8
  57. package/console/dist/ui/components/ui/card.js +0 -16
  58. package/console/dist/ui/components/ui/charts.d.ts +0 -51
  59. package/console/dist/ui/components/ui/charts.js +0 -72
  60. package/console/dist/ui/components/ui/dialog.d.ts +0 -19
  61. package/console/dist/ui/components/ui/dialog.js +0 -22
  62. package/console/dist/ui/components/ui/input.d.ts +0 -3
  63. package/console/dist/ui/components/ui/input.js +0 -8
  64. package/console/dist/ui/components/ui/markdown.d.ts +0 -24
  65. package/console/dist/ui/components/ui/markdown.js +0 -119
  66. package/console/dist/ui/components/ui/progress-bar.d.ts +0 -20
  67. package/console/dist/ui/components/ui/progress-bar.js +0 -38
  68. package/console/dist/ui/components/ui/select.d.ts +0 -13
  69. package/console/dist/ui/components/ui/select.js +0 -26
  70. package/console/dist/ui/components/ui/separator.d.ts +0 -3
  71. package/console/dist/ui/components/ui/separator.js +0 -6
  72. package/console/dist/ui/components/ui/sheet.d.ts +0 -25
  73. package/console/dist/ui/components/ui/sheet.js +0 -37
  74. package/console/dist/ui/components/ui/shiny-text.d.ts +0 -28
  75. package/console/dist/ui/components/ui/shiny-text.js +0 -46
  76. package/console/dist/ui/components/ui/skeleton.d.ts +0 -3
  77. package/console/dist/ui/components/ui/skeleton.js +0 -6
  78. package/console/dist/ui/components/ui/sonner.d.ts +0 -3
  79. package/console/dist/ui/components/ui/sonner.js +0 -13
  80. package/console/dist/ui/components/ui/tooltip.d.ts +0 -7
  81. package/console/dist/ui/components/ui/tooltip.js +0 -10
  82. package/console/dist/ui/data/daily-thoughts.d.ts +0 -15
  83. package/console/dist/ui/data/daily-thoughts.js +0 -164
  84. package/console/dist/ui/hooks/useNotificationSound.d.ts +0 -12
  85. package/console/dist/ui/hooks/useNotificationSound.js +0 -74
  86. package/console/dist/ui/i18n/en.json +0 -2399
  87. package/console/dist/ui/i18n/index.d.ts +0 -2
  88. package/console/dist/ui/i18n/index.js +0 -32
  89. package/console/dist/ui/i18n/zh-CN.json +0 -2399
  90. package/console/dist/ui/main.d.ts +0 -1
  91. package/console/dist/ui/main.js +0 -9
  92. package/console/dist/ui/pages/ReportProblemValidators.d.ts +0 -144
  93. package/console/dist/ui/pages/ReportProblemValidators.js +0 -418
  94. package/console/dist/ui/pages/activation/ActivationPage.d.ts +0 -1
  95. package/console/dist/ui/pages/activation/ActivationPage.js +0 -512
  96. package/console/dist/ui/pages/activation/ActivationValidators.d.ts +0 -20
  97. package/console/dist/ui/pages/activation/ActivationValidators.js +0 -160
  98. package/console/dist/ui/pages/control-center/AgentCard.d.ts +0 -31
  99. package/console/dist/ui/pages/control-center/AgentCard.js +0 -212
  100. package/console/dist/ui/pages/control-center/AgentGroup.d.ts +0 -26
  101. package/console/dist/ui/pages/control-center/AgentGroup.js +0 -38
  102. package/console/dist/ui/pages/control-center/ControlCenterPage.d.ts +0 -1
  103. package/console/dist/ui/pages/control-center/ControlCenterPage.js +0 -509
  104. package/console/dist/ui/pages/control-center/DesignGatePanel.d.ts +0 -1
  105. package/console/dist/ui/pages/control-center/DesignGatePanel.js +0 -137
  106. package/console/dist/ui/pages/control-center/RuntimeProfileManager.d.ts +0 -31
  107. package/console/dist/ui/pages/control-center/RuntimeProfileManager.js +0 -199
  108. package/console/dist/ui/pages/control-center/WorkflowDiagram.d.ts +0 -17
  109. package/console/dist/ui/pages/control-center/WorkflowDiagram.js +0 -55
  110. package/console/dist/ui/pages/debt/DebtPage.d.ts +0 -2
  111. package/console/dist/ui/pages/debt/DebtPage.js +0 -222
  112. package/console/dist/ui/pages/design-system/DesignSystemPage.d.ts +0 -2
  113. package/console/dist/ui/pages/design-system/DesignSystemPage.js +0 -30
  114. package/console/dist/ui/pages/examiner/ExaminerPage.d.ts +0 -15
  115. package/console/dist/ui/pages/examiner/ExaminerPage.js +0 -158
  116. package/console/dist/ui/pages/failed-tasks/FailedTasksPage.d.ts +0 -1
  117. package/console/dist/ui/pages/failed-tasks/FailedTasksPage.js +0 -421
  118. package/console/dist/ui/pages/focus/ApprovalSubjectReading.d.ts +0 -24
  119. package/console/dist/ui/pages/focus/ApprovalSubjectReading.js +0 -133
  120. package/console/dist/ui/pages/focus/FocusPage.d.ts +0 -123
  121. package/console/dist/ui/pages/focus/FocusPage.js +0 -567
  122. package/console/dist/ui/pages/focus/OwnerDecisionCard.d.ts +0 -9
  123. package/console/dist/ui/pages/focus/OwnerDecisionCard.js +0 -111
  124. package/console/dist/ui/pages/focus/OwnerWorkbench.d.ts +0 -19
  125. package/console/dist/ui/pages/focus/OwnerWorkbench.js +0 -75
  126. package/console/dist/ui/pages/focus/RuleCandidateBindingPanel.d.ts +0 -34
  127. package/console/dist/ui/pages/focus/RuleCandidateBindingPanel.js +0 -298
  128. package/console/dist/ui/pages/focus/focus-validation.d.ts +0 -40
  129. package/console/dist/ui/pages/focus/focus-validation.js +0 -211
  130. package/console/dist/ui/pages/intent/IntentOnboarding.d.ts +0 -67
  131. package/console/dist/ui/pages/intent/IntentOnboarding.js +0 -289
  132. package/console/dist/ui/pages/intent/IntentPage.d.ts +0 -1
  133. package/console/dist/ui/pages/intent/IntentPage.js +0 -252
  134. package/console/dist/ui/pages/pain/PainEvidenceValidators.d.ts +0 -59
  135. package/console/dist/ui/pages/pain/PainEvidenceValidators.js +0 -125
  136. package/console/dist/ui/pages/pain/PainPage.d.ts +0 -1
  137. package/console/dist/ui/pages/pain/PainPage.js +0 -420
  138. package/console/dist/ui/pages/pain/pain-card-helpers.d.ts +0 -175
  139. package/console/dist/ui/pages/pain/pain-card-helpers.js +0 -181
  140. package/console/dist/ui/pages/principles/CorePrinciplesPage.d.ts +0 -10
  141. package/console/dist/ui/pages/principles/CorePrinciplesPage.js +0 -59
  142. package/console/dist/ui/pages/principles/PrincipleDetailPage.d.ts +0 -60
  143. package/console/dist/ui/pages/principles/PrincipleDetailPage.js +0 -602
  144. package/console/dist/ui/pages/principles/PrinciplesPage.d.ts +0 -1
  145. package/console/dist/ui/pages/principles/PrinciplesPage.js +0 -327
  146. package/console/dist/ui/pages/principles/PrinciplesViewNav.d.ts +0 -8
  147. package/console/dist/ui/pages/principles/PrinciplesViewNav.js +0 -15
  148. package/console/dist/ui/pages/report-problem/ReportProblemPage.d.ts +0 -1
  149. package/console/dist/ui/pages/report-problem/ReportProblemPage.js +0 -467
  150. package/console/dist/ui/pages/settings/SettingsPage.d.ts +0 -4
  151. package/console/dist/ui/pages/settings/SettingsPage.js +0 -457
  152. package/console/dist/ui/pages/settings/UpdatePage.d.ts +0 -1
  153. package/console/dist/ui/pages/settings/UpdatePage.js +0 -215
  154. package/console/dist/ui/pages/welcome/WelcomePage.d.ts +0 -5
  155. package/console/dist/ui/pages/welcome/WelcomePage.js +0 -187
  156. package/console/dist/ui/utils/agent-metadata.d.ts +0 -71
  157. package/console/dist/ui/utils/agent-metadata.js +0 -284
  158. package/console/dist/ui/utils/approval-review.d.ts +0 -30
  159. package/console/dist/ui/utils/approval-review.js +0 -50
  160. package/console/dist/ui/utils/approval-warning-localization.d.ts +0 -34
  161. package/console/dist/ui/utils/approval-warning-localization.js +0 -148
  162. package/console/dist/ui/utils/attention-presentation.d.ts +0 -35
  163. package/console/dist/ui/utils/attention-presentation.js +0 -46
  164. package/console/dist/ui/utils/blocker-localization.d.ts +0 -23
  165. package/console/dist/ui/utils/blocker-localization.js +0 -36
  166. package/console/dist/ui/utils/control-center-helpers.d.ts +0 -79
  167. package/console/dist/ui/utils/control-center-helpers.js +0 -189
  168. package/console/dist/ui/utils/enum-labels.d.ts +0 -50
  169. package/console/dist/ui/utils/enum-labels.js +0 -171
  170. package/console/dist/ui/utils/format-date.d.ts +0 -11
  171. package/console/dist/ui/utils/format-date.js +0 -17
  172. package/console/dist/ui/utils/onboarding-state.d.ts +0 -25
  173. package/console/dist/ui/utils/onboarding-state.js +0 -77
  174. package/console/dist/ui/utils/reading-layout.d.ts +0 -20
  175. package/console/dist/ui/utils/reading-layout.js +0 -46
  176. package/console/dist/ui/utils/rule-binding-validators.d.ts +0 -13
  177. package/console/dist/ui/utils/rule-binding-validators.js +0 -188
  178. package/console/dist/ui/utils/runtime-mode.d.ts +0 -11
  179. package/console/dist/ui/utils/runtime-mode.js +0 -11
  180. package/console/dist/ui/utils/token-storage.d.ts +0 -22
  181. package/console/dist/ui/utils/token-storage.js +0 -47
  182. package/console/dist/ui/utils/validators.d.ts +0 -1178
  183. package/console/dist/ui/utils/validators.js +0 -3297
  184. package/release-manager/dist/bootstrap-entry.d.ts +0 -2
  185. package/release-manager/dist/bootstrap-entry.d.ts.map +0 -1
  186. package/release-manager/dist/bootstrap-entry.js.map +0 -1
  187. package/release-manager/dist/i18n.d.ts +0 -6
  188. package/release-manager/dist/i18n.d.ts.map +0 -1
  189. package/release-manager/dist/i18n.js.map +0 -1
  190. package/release-manager/dist/index.d.ts +0 -7
  191. package/release-manager/dist/index.d.ts.map +0 -1
  192. package/release-manager/dist/index.js +0 -656
  193. package/release-manager/dist/index.js.map +0 -1
  194. package/release-manager/dist/installer.d.ts +0 -629
  195. package/release-manager/dist/installer.d.ts.map +0 -1
  196. package/release-manager/dist/installer.js.map +0 -1
  197. package/release-manager/dist/installers/codex-host-installer.d.ts +0 -39
  198. package/release-manager/dist/installers/codex-host-installer.d.ts.map +0 -1
  199. package/release-manager/dist/installers/codex-host-installer.js.map +0 -1
  200. package/release-manager/dist/installers/index.d.ts +0 -51
  201. package/release-manager/dist/installers/index.d.ts.map +0 -1
  202. package/release-manager/dist/installers/index.js.map +0 -1
  203. package/release-manager/dist/installers/openclaw-host-installer.d.ts +0 -14
  204. package/release-manager/dist/installers/openclaw-host-installer.d.ts.map +0 -1
  205. package/release-manager/dist/installers/openclaw-host-installer.js.map +0 -1
  206. package/release-manager/dist/installers/workbuddy-host-installer.d.ts +0 -335
  207. package/release-manager/dist/installers/workbuddy-host-installer.d.ts.map +0 -1
  208. package/release-manager/dist/installers/workbuddy-host-installer.js.map +0 -1
  209. package/release-manager/dist/mvp-config.d.ts +0 -233
  210. package/release-manager/dist/mvp-config.d.ts.map +0 -1
  211. package/release-manager/dist/mvp-config.js.map +0 -1
  212. package/release-manager/dist/prompts.d.ts +0 -43
  213. package/release-manager/dist/prompts.d.ts.map +0 -1
  214. package/release-manager/dist/prompts.js +0 -268
  215. package/release-manager/dist/prompts.js.map +0 -1
  216. package/release-manager/dist/skill-language.d.ts +0 -32
  217. package/release-manager/dist/skill-language.d.ts.map +0 -1
  218. package/release-manager/dist/skill-language.js.map +0 -1
  219. package/release-manager/dist/uninstaller.d.ts +0 -68
  220. package/release-manager/dist/uninstaller.d.ts.map +0 -1
  221. package/release-manager/dist/uninstaller.js +0 -746
  222. package/release-manager/dist/uninstaller.js.map +0 -1
  223. package/release-manager/dist/update/apply-payload.d.ts +0 -143
  224. package/release-manager/dist/update/apply-payload.d.ts.map +0 -1
  225. package/release-manager/dist/update/apply-payload.js.map +0 -1
  226. package/release-manager/dist/update/atomic-file.d.ts +0 -35
  227. package/release-manager/dist/update/atomic-file.d.ts.map +0 -1
  228. package/release-manager/dist/update/atomic-file.js.map +0 -1
  229. package/release-manager/dist/update/bootstrap-executor.d.ts +0 -21
  230. package/release-manager/dist/update/bootstrap-executor.d.ts.map +0 -1
  231. package/release-manager/dist/update/bootstrap-executor.js.map +0 -1
  232. package/release-manager/dist/update/bootstrap-protocol.d.ts +0 -56
  233. package/release-manager/dist/update/bootstrap-protocol.d.ts.map +0 -1
  234. package/release-manager/dist/update/bootstrap-protocol.js.map +0 -1
  235. package/release-manager/dist/update/channel-metadata.d.ts +0 -28
  236. package/release-manager/dist/update/channel-metadata.d.ts.map +0 -1
  237. package/release-manager/dist/update/channel-metadata.js.map +0 -1
  238. package/release-manager/dist/update/channel-promotion.d.ts +0 -39
  239. package/release-manager/dist/update/channel-promotion.d.ts.map +0 -1
  240. package/release-manager/dist/update/channel-promotion.js +0 -55
  241. package/release-manager/dist/update/channel-promotion.js.map +0 -1
  242. package/release-manager/dist/update/console-surface.d.ts +0 -19
  243. package/release-manager/dist/update/console-surface.d.ts.map +0 -1
  244. package/release-manager/dist/update/console-surface.js.map +0 -1
  245. package/release-manager/dist/update/data-compatibility.d.ts +0 -35
  246. package/release-manager/dist/update/data-compatibility.d.ts.map +0 -1
  247. package/release-manager/dist/update/data-compatibility.js +0 -45
  248. package/release-manager/dist/update/data-compatibility.js.map +0 -1
  249. package/release-manager/dist/update/install-layout.d.ts +0 -105
  250. package/release-manager/dist/update/install-layout.d.ts.map +0 -1
  251. package/release-manager/dist/update/install-layout.js.map +0 -1
  252. package/release-manager/dist/update/product-identity.d.ts +0 -70
  253. package/release-manager/dist/update/product-identity.d.ts.map +0 -1
  254. package/release-manager/dist/update/product-identity.js.map +0 -1
  255. package/release-manager/dist/update/release-asset-manifest.d.ts +0 -31
  256. package/release-manager/dist/update/release-asset-manifest.d.ts.map +0 -1
  257. package/release-manager/dist/update/release-asset-manifest.js.map +0 -1
  258. package/release-manager/dist/update/release-identity.d.ts +0 -33
  259. package/release-manager/dist/update/release-identity.d.ts.map +0 -1
  260. package/release-manager/dist/update/release-identity.js.map +0 -1
  261. package/release-manager/dist/update/release-manager-authority.d.ts +0 -39
  262. package/release-manager/dist/update/release-manager-authority.d.ts.map +0 -1
  263. package/release-manager/dist/update/release-manager-authority.js.map +0 -1
  264. package/release-manager/dist/update/release-manager.d.ts +0 -156
  265. package/release-manager/dist/update/release-manager.d.ts.map +0 -1
  266. package/release-manager/dist/update/release-manager.js.map +0 -1
  267. package/release-manager/dist/update/release-metadata-publisher.d.ts +0 -199
  268. package/release-manager/dist/update/release-metadata-publisher.d.ts.map +0 -1
  269. package/release-manager/dist/update/release-metadata-publisher.js +0 -478
  270. package/release-manager/dist/update/release-metadata-publisher.js.map +0 -1
  271. package/release-manager/dist/update/release-metadata-source.d.ts +0 -85
  272. package/release-manager/dist/update/release-metadata-source.d.ts.map +0 -1
  273. package/release-manager/dist/update/release-metadata-source.js.map +0 -1
  274. package/release-manager/dist/update/release-metadata.d.ts +0 -60
  275. package/release-manager/dist/update/release-metadata.d.ts.map +0 -1
  276. package/release-manager/dist/update/release-metadata.js.map +0 -1
  277. package/release-manager/dist/update/release-policy.d.ts +0 -51
  278. package/release-manager/dist/update/release-policy.d.ts.map +0 -1
  279. package/release-manager/dist/update/release-policy.js.map +0 -1
  280. package/release-manager/dist/update/rollback-policy.d.ts +0 -56
  281. package/release-manager/dist/update/rollback-policy.d.ts.map +0 -1
  282. package/release-manager/dist/update/rollback-policy.js +0 -61
  283. package/release-manager/dist/update/rollback-policy.js.map +0 -1
  284. package/release-manager/dist/update/transaction-journal.d.ts +0 -212
  285. package/release-manager/dist/update/transaction-journal.d.ts.map +0 -1
  286. package/release-manager/dist/update/transaction-journal.js.map +0 -1
  287. package/release-manager/dist/update/trust-metadata.d.ts +0 -55
  288. package/release-manager/dist/update/trust-metadata.d.ts.map +0 -1
  289. package/release-manager/dist/update/trust-metadata.js.map +0 -1
  290. package/release-manager/dist/update/trust-root-provisioning.d.ts +0 -99
  291. package/release-manager/dist/update/trust-root-provisioning.d.ts.map +0 -1
  292. package/release-manager/dist/update/trust-root-provisioning.js.map +0 -1
  293. package/release-manager/dist/update/update-history.d.ts +0 -46
  294. package/release-manager/dist/update/update-history.d.ts.map +0 -1
  295. package/release-manager/dist/update/update-history.js +0 -123
  296. package/release-manager/dist/update/update-history.js.map +0 -1
  297. package/release-manager/dist/utils/config-file-io.d.ts +0 -34
  298. package/release-manager/dist/utils/config-file-io.d.ts.map +0 -1
  299. package/release-manager/dist/utils/config-file-io.js.map +0 -1
  300. package/release-manager/dist/utils/env.d.ts +0 -94
  301. package/release-manager/dist/utils/env.d.ts.map +0 -1
  302. package/release-manager/dist/utils/env.js.map +0 -1
  303. package/release-manager/dist/utils/logger.d.ts +0 -15
  304. package/release-manager/dist/utils/logger.d.ts.map +0 -1
  305. package/release-manager/dist/utils/logger.js.map +0 -1
  306. package/release-manager/dist/utils/workspace-divergence.d.ts +0 -36
  307. package/release-manager/dist/utils/workspace-divergence.d.ts.map +0 -1
  308. package/release-manager/dist/utils/workspace-divergence.js.map +0 -1
@@ -1,60 +0,0 @@
1
- /**
2
- * Strict Release Metadata contract (SPEC §4.2).
3
- *
4
- * Release Metadata is immutable after publication. It records product
5
- * version, release ID, source commit, asset digests, supported platforms,
6
- * minimum bootstrap version, compatibility constraints, and the publication
7
- * sequence. Signed envelopes arrive as `unknown`; nothing is trusted until
8
- * this validator accepts it. Required fields fail loud (rc-3), elements are
9
- * validated (rc-4), and own-property access is used throughout (rc-5).
10
- */
11
- import { type ReleaseAssetIdentity } from './release-identity.js';
12
- export declare const RELEASE_METADATA_SCHEMA_VERSION = 1;
13
- export interface ReleaseMetadata {
14
- readonly schemaVersion: number;
15
- readonly productVersion: string;
16
- readonly releaseId: string;
17
- readonly sourceCommit: string;
18
- readonly metadataDigest: string;
19
- readonly minBootstrapVersion: string;
20
- readonly publicationSequence: number;
21
- readonly expiresAt: string;
22
- readonly assets: readonly (ReleaseAssetIdentity & {
23
- /** PRI-854 (option A): where the bytes are served from (signed). */
24
- readonly url?: string;
25
- })[];
26
- readonly compatibility: {
27
- readonly dataSchemaForwardReadableFrom: string;
28
- };
29
- }
30
- export type ReleaseMetadataErrorCode = 'release_metadata_invalid' | 'release_metadata_identity_mismatch';
31
- export declare class ReleaseMetadataError extends Error {
32
- readonly code: ReleaseMetadataErrorCode;
33
- readonly field: string;
34
- constructor(code: ReleaseMetadataErrorCode, field: string, message: string);
35
- }
36
- /**
37
- * Field-by-field strict parse. Rejects unknown top-level fields so a future
38
- * schema change fails loud instead of silently dropping meaning.
39
- */
40
- export declare function parseReleaseMetadata(value: unknown): ReleaseMetadata;
41
- /**
42
- * Verifies the internal identity chain: recomputing the release ID from the
43
- * metadata's own content must reproduce `releaseId`, and the canonical
44
- * document digest must reproduce `metadataDigest`. A metadata document whose
45
- * identity does not close is refuse-before-activation (SPEC §4.3).
46
- */
47
- export declare function verifyReleaseMetadataIdentity(metadata: ReleaseMetadata): void;
48
- export declare function isReleaseMetadataExpired(metadata: ReleaseMetadata, now?: Date): boolean;
49
- /** Builds a well-formed metadata document from identity inputs (producer side). */
50
- export declare function buildReleaseMetadata(input: {
51
- productVersion: string;
52
- sourceCommit: string;
53
- minBootstrapVersion: string;
54
- publicationSequence: number;
55
- expiresAt: string;
56
- assets: readonly ReleaseAssetIdentity[];
57
- dataSchemaForwardReadableFrom: string;
58
- }): ReleaseMetadata;
59
- export declare function isReleaseMetadata(value: unknown): value is ReleaseMetadata;
60
- //# sourceMappingURL=release-metadata.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"release-metadata.d.ts","sourceRoot":"","sources":["../../src/update/release-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,oBAAoB,GAAG;QAChD,oEAAoE;QACpE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,EAAE,CAAC;IACL,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;KAChD,CAAC;CACH;AAED,MAAM,MAAM,wBAAwB,GAChC,0BAA0B,GAC1B,oCAAoC,CAAC;AAEzC,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,YAAY,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAKzE;CACF;AA2DD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CA6FpE;AAgBD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAsB7E;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAEnG;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxC,6BAA6B,EAAE,MAAM,CAAC;CACvC,GAAG,eAAe,CAkBlB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAS1E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"release-metadata.js","sourceRoot":"","sources":["../../src/update/release-metadata.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- /**
2
- * Release advancement preflight policy (SPEC §4.3, §9, §13).
3
- *
4
- * Pure decisions over already-validated metadata: publication sequence
5
- * monotonicity, the explicit downgrade policy, channel pointer integrity,
6
- * expiry, and bootstrap compatibility. Every refusal carries a stable reason
7
- * code and an Owner-visible next action (rc-9) and must happen BEFORE any
8
- * installation state is mutated (ERR-074 guard placement).
9
- */
10
- import type { ChannelMetadata } from './channel-metadata.js';
11
- import type { ReleaseMetadata } from './release-metadata.js';
12
- export type ReleasePolicyRefusalReason = 'channel_pointer_mismatch' | 'release_metadata_expired' | 'channel_metadata_expired' | 'sequence_regression' | 'downgrade_blocked' | 'bootstrap_too_old';
13
- export interface ReleasePolicyRefusal {
14
- readonly allowed: false;
15
- readonly reason: ReleasePolicyRefusalReason;
16
- readonly message: string;
17
- readonly nextAction: string;
18
- }
19
- export interface ReleasePolicyAllowance {
20
- readonly allowed: true;
21
- readonly direction: 'update' | 'reinstall' | 'explicit_downgrade';
22
- }
23
- export type ReleasePolicyDecision = ReleasePolicyRefusal | ReleasePolicyAllowance;
24
- export interface CurrentInstallationState {
25
- readonly productVersion: string;
26
- readonly releaseId: string;
27
- readonly publicationSequence: number;
28
- readonly bootstrapVersion: string;
29
- /** Releases previously confirmed on this installation (rollback-safe targets). */
30
- readonly previouslyConfirmedReleaseIds: readonly string[];
31
- }
32
- /**
33
- * The channel pointer must reference exactly this release metadata document
34
- * (SPEC §4.3: "Channel Metadata references the exact Release Metadata digest").
35
- */
36
- export declare function verifyChannelPointer(channel: ChannelMetadata, release: ReleaseMetadata): ReleasePolicyRefusal | null;
37
- /**
38
- * Full advancement decision. `allowExplicitDowngrade` is the Owner's explicit
39
- * confirmation flag; even with it, the target must be a previously confirmed
40
- * release — arbitrary downgrades to unseen releases stay refused because their
41
- * data compatibility window is unproven (SPEC §10).
42
- */
43
- export declare function evaluateReleaseAdvancement(input: {
44
- channel: ChannelMetadata;
45
- candidate: ReleaseMetadata;
46
- current: CurrentInstallationState | null;
47
- bootstrapVersion: string;
48
- now?: Date;
49
- allowExplicitDowngrade?: boolean;
50
- }): ReleasePolicyDecision;
51
- //# sourceMappingURL=release-policy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"release-policy.d.ts","sourceRoot":"","sources":["../../src/update/release-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D,MAAM,MAAM,0BAA0B,GAClC,0BAA0B,GAC1B,0BAA0B,GAC1B,0BAA0B,GAC1B,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,CAAC;AAExB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,WAAW,GAAG,oBAAoB,CAAC;CACnE;AAED,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAElF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,kFAAkF;IAClF,QAAQ,CAAC,6BAA6B,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,oBAAoB,GAAG,IAAI,CAkBpH;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,eAAe,CAAC;IAC3B,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,GAAG,qBAAqB,CAmExB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"release-policy.js","sourceRoot":"","sources":["../../src/update/release-policy.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- /**
2
- * Host coordination and automatic-rollback policy (SPEC §9).
3
- *
4
- * One global active release per installation. Only hosts that were RUNNING
5
- * before activation must restart and complete the handshake — hosts that
6
- * were already stopped are not failures. If any previously-running host
7
- * cannot start the same release, every affected host returns to the prior
8
- * release: a split-brain component mix must never become active.
9
- *
10
- * Attribution rules:
11
- * - Deterministic failures attributable to the new release (entrypoint load,
12
- * handshake mismatch, startup crash) qualify for automatic rollback.
13
- * - Network unavailability, empty business data, and unrelated
14
- * external-service failures do NOT — they would roll back a healthy
15
- * release for environmental noise.
16
- *
17
- * At most ONE automatic rollback per transaction. A second deterministic
18
- * failure opens the circuit breaker: the last confirmed release stays
19
- * active and an explicit Owner action is required.
20
- */
21
- export type HostHandshakeOutcome = {
22
- readonly kind: 'passed';
23
- } | {
24
- readonly kind: 'not_restarted';
25
- } | {
26
- readonly kind: 'failed';
27
- readonly failureClass: HostFailureClass;
28
- readonly detail: string;
29
- };
30
- export type HostFailureClass = 'deterministic_start_failure' | 'handshake_mismatch' | 'network_unavailable' | 'external_service_unavailable' | 'unknown';
31
- export interface HostObservation {
32
- readonly hostId: string;
33
- readonly wasRunningBeforeActivation: boolean;
34
- readonly outcome: HostHandshakeOutcome;
35
- }
36
- export type RollbackDecision = {
37
- readonly action: 'confirm';
38
- readonly reason: string;
39
- } | {
40
- readonly action: 'retry_handshake';
41
- readonly reason: string;
42
- readonly nextAction: string;
43
- } | {
44
- readonly action: 'auto_rollback';
45
- readonly reason: string;
46
- readonly hosts: readonly string[];
47
- } | {
48
- readonly action: 'circuit_breaker_open';
49
- readonly reason: string;
50
- readonly nextAction: string;
51
- };
52
- export declare function decideHostCoordination(input: {
53
- observations: readonly HostObservation[];
54
- autoRollbackAlreadyUsed: boolean;
55
- }): RollbackDecision;
56
- //# sourceMappingURL=rollback-policy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rollback-policy.d.ts","sourceRoot":"","sources":["../../src/update/rollback-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAClC;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,MAAM,MAAM,gBAAgB,GACxB,6BAA6B,GAC7B,oBAAoB,GACpB,qBAAqB,GACrB,8BAA8B,GAC9B,SAAS,CAAC;AAEd,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;CACxC;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC5F;IAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAChG;IAAE,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAItG,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,YAAY,EAAE,SAAS,eAAe,EAAE,CAAC;IACzC,uBAAuB,EAAE,OAAO,CAAC;CAClC,GAAG,gBAAgB,CA2CnB"}
@@ -1,61 +0,0 @@
1
- /**
2
- * Host coordination and automatic-rollback policy (SPEC §9).
3
- *
4
- * One global active release per installation. Only hosts that were RUNNING
5
- * before activation must restart and complete the handshake — hosts that
6
- * were already stopped are not failures. If any previously-running host
7
- * cannot start the same release, every affected host returns to the prior
8
- * release: a split-brain component mix must never become active.
9
- *
10
- * Attribution rules:
11
- * - Deterministic failures attributable to the new release (entrypoint load,
12
- * handshake mismatch, startup crash) qualify for automatic rollback.
13
- * - Network unavailability, empty business data, and unrelated
14
- * external-service failures do NOT — they would roll back a healthy
15
- * release for environmental noise.
16
- *
17
- * At most ONE automatic rollback per transaction. A second deterministic
18
- * failure opens the circuit breaker: the last confirmed release stays
19
- * active and an explicit Owner action is required.
20
- */
21
- const DETERMINISTIC_CLASSES = new Set(['deterministic_start_failure', 'handshake_mismatch']);
22
- export function decideHostCoordination(input) {
23
- const { observations, autoRollbackAlreadyUsed } = input;
24
- if (observations.length === 0) {
25
- return { action: 'confirm', reason: 'no hosts required coordination' };
26
- }
27
- const mustRestart = observations.filter((observation) => observation.wasRunningBeforeActivation);
28
- if (mustRestart.length === 0) {
29
- return { action: 'confirm', reason: 'no hosts were running before activation; nothing to restart' };
30
- }
31
- const deterministicFailures = mustRestart.filter((observation) => observation.outcome.kind === 'failed'
32
- && DETERMINISTIC_CLASSES.has(observation.outcome.failureClass));
33
- const environmentalFailures = mustRestart.filter((observation) => observation.outcome.kind === 'failed'
34
- && !DETERMINISTIC_CLASSES.has(observation.outcome.failureClass));
35
- const pending = mustRestart.filter((observation) => observation.outcome.kind === 'not_restarted');
36
- if (deterministicFailures.length > 0) {
37
- const failingHosts = deterministicFailures.map((observation) => observation.hostId);
38
- if (autoRollbackAlreadyUsed) {
39
- return {
40
- action: 'circuit_breaker_open',
41
- reason: `A second deterministic failure followed the transaction's single automatic rollback (hosts: ${failingHosts.join(', ')}).`,
42
- nextAction: 'The last confirmed release remains active. Inspect the failing host logs under ~/.pd/logs, fix the cause, and run an explicit update or rollback operation.',
43
- };
44
- }
45
- return {
46
- action: 'auto_rollback',
47
- reason: `Deterministic startup failures attributable to the new release (hosts: ${failingHosts.join(', ')}); all affected hosts return to the previous confirmed release to avoid split brain.`,
48
- hosts: failingHosts,
49
- };
50
- }
51
- if (environmentalFailures.length > 0 || pending.length > 0) {
52
- const affected = [...environmentalFailures, ...pending].map((observation) => observation.hostId);
53
- return {
54
- action: 'retry_handshake',
55
- reason: `Non-deterministic conditions (network / external service / still restarting) on hosts: ${affected.join(', ')}. These do not qualify for automatic rollback.`,
56
- nextAction: 'Retry the release handshake for the affected hosts. The release stays activated-but-unconfirmed until every previously running host passes or a deterministic failure appears.',
57
- };
58
- }
59
- return { action: 'confirm', reason: 'every previously running host completed the release handshake' };
60
- }
61
- //# sourceMappingURL=rollback-policy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rollback-policy.js","sourceRoot":"","sources":["../../src/update/rollback-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AA0BH,MAAM,qBAAqB,GAAkC,IAAI,GAAG,CAAC,CAAC,6BAA6B,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAE5H,MAAM,UAAU,sBAAsB,CAAC,KAGtC;IACC,MAAM,EAAE,YAAY,EAAE,uBAAuB,EAAE,GAAG,KAAK,CAAC;IACxD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;IACzE,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;IACjG,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,6DAA6D,EAAE,CAAC;IACtG,CAAC;IAED,MAAM,qBAAqB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ;WAClG,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAClE,MAAM,qBAAqB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ;WAClG,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IAElG,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpF,IAAI,uBAAuB,EAAE,CAAC;YAC5B,OAAO;gBACL,MAAM,EAAE,sBAAsB;gBAC9B,MAAM,EAAE,+FAA+F,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAClI,UAAU,EAAE,6JAA6J;aAC1K,CAAC;QACJ,CAAC;QACD,OAAO;YACL,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,0EAA0E,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,sFAAsF;YAC/L,KAAK,EAAE,YAAY;SACpB,CAAC;IACJ,CAAC;IAED,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,CAAC,GAAG,qBAAqB,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjG,OAAO;YACL,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,0FAA0F,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,gDAAgD;YACrK,UAAU,EAAE,gLAAgL;SAC7L,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,+DAA+D,EAAE,CAAC;AACxG,CAAC"}
@@ -1,212 +0,0 @@
1
- /**
2
- * Transaction journal and recovery (SPEC §8, §14.3).
3
- *
4
- * An update follows a persisted state machine:
5
- *
6
- * planned -> downloaded -> verified -> staged -> probed
7
- * -> activated -> host_verified -> confirmed
8
- * -> rolled_back | refused | failed
9
- *
10
- * EVERY transition is appended (and fsynced) to the transaction journal
11
- * BEFORE the side effect it describes. On restart, recovery reconciles any
12
- * unfinished transaction: the outcome is always old-confirmed, new-confirmed,
13
- * or an explicit safe refusal — never a hybrid.
14
- */
15
- export declare const TRANSACTION_STATES: readonly ['planned', 'downloaded', 'verified', 'staged', 'probed', 'activated', 'host_verified', 'confirmed', 'rolled_back', 'refused', 'failed'];
16
- export type TransactionState = typeof TRANSACTION_STATES[number];
17
- export type TransactionKind = 'update' | 'reinstall' | 'explicit_downgrade' | 'rollback' | 'legacy_migration' | 'recovery';
18
- /**
19
- * Provenance of a transition's `releaseMetadataDigest` (PRI-664 review):
20
- * - `manifest` — sha256 of the self-contained asset manifest (whole-payload identity)
21
- * - `package_manifest` — sha256 of the bundled component package manifest
22
- * - `fallback` — synthetic digest (identity data unavailable); readable but NOT verifiable
23
- * - `signed_channel` — PRI-698 Phase 1: digest bound in the TUF-signed channel document
24
- * (ReleaseManager apply orchestration identity chain)
25
- */
26
- export declare const RELEASE_METADATA_DIGEST_SOURCES: readonly ['manifest', 'package_manifest', 'fallback', 'signed_channel'];
27
- export type ReleaseMetadataDigestSource = typeof RELEASE_METADATA_DIGEST_SOURCES[number];
28
- export interface JournalTransition {
29
- readonly at: string;
30
- readonly from: TransactionState | null;
31
- readonly to: TransactionState;
32
- readonly transactionId: string;
33
- readonly releaseId: string;
34
- readonly productVersion: string;
35
- /**
36
- * PRI-926: the product version this update started FROM, recorded once on
37
- * the transaction's first (planned) transition from the active record.
38
- * Absent on journals written before PRI-926 and on later transitions —
39
- * absence is the visible fromVersion-unavailable marker for Owner-facing
40
- * history reconciliation, never a placeholder value.
41
- */
42
- readonly preUpdateProductVersion?: string;
43
- /**
44
- * Embedded product identity provenance (SPEC §12): the source commit stamped
45
- * into the installed payload. Absent on legacy payloads/journals without an
46
- * embedded stamp — absence is the visible provenance-unavailable marker and
47
- * must never be replaced by a placeholder value.
48
- */
49
- readonly sourceCommit?: string;
50
- readonly releaseMetadataDigest: string;
51
- /** Optional provenance marker; absent on journals written before PRI-664 review. */
52
- readonly releaseMetadataDigestSource?: ReleaseMetadataDigestSource;
53
- readonly generation: number;
54
- readonly detail?: string;
55
- }
56
- export interface ActiveRecord {
57
- readonly schemaVersion: 1;
58
- readonly generation: number;
59
- readonly releaseId: string;
60
- readonly releaseMetadataDigest: string;
61
- readonly previousReleaseId: string | null;
62
- readonly transactionId: string;
63
- readonly productVersion: string;
64
- /** Embedded provenance: stamped source commit; absent on legacy records. */
65
- readonly sourceCommit?: string;
66
- }
67
- export declare class TransactionJournalError extends Error {
68
- readonly code: string;
69
- constructor(code: string, message: string);
70
- }
71
- export interface RecoveryAwareJournalRead {
72
- readonly transitions: readonly JournalTransition[];
73
- /**
74
- * True when the final physical journal record was a torn (unparseable,
75
- * unterminated) write — its transition never durably committed and is
76
- * EXCLUDED from `transitions`. Physical repair (truncation) belongs to an
77
- * explicit recovery operation, never to this reader.
78
- */
79
- readonly tornTailDetected: boolean;
80
- }
81
- /** Reads and strictly validates the whole journal (fail loud on any tear). */
82
- export declare function readTransactionJournal(journalPath: string): readonly JournalTransition[];
83
- /** True when the state ends a transaction (no further transition may follow). */
84
- export declare function isTerminalTransactionState(state: TransactionState): boolean;
85
- /**
86
- * Recovery-aware journal reader (crash contract, SPEC §8).
87
- *
88
- * The writer appends `JSON + '\n'` and fsyncs. A crash mid-append can leave a
89
- * TORN final record: unparseable JSON without a trailing newline. Such a
90
- * record never durably committed, so recovery drops it. Everything else is
91
- * strict: a malformed line anywhere else (including a complete-but-invalid
92
- * final line that DOES end with a newline) fails loud, because a complete
93
- * write with bad content is corruption, not a torn write.
94
- */
95
- export declare function readTransactionJournalForRecovery(journalPath: string): RecoveryAwareJournalRead;
96
- export interface AppendJournalTransitionOptions {
97
- /**
98
- * O_EXCL create: fail with EEXIST if the journal file already exists. Used
99
- * for the FIRST transition of a transaction so two concurrent writers cannot
100
- * both open the same journal volume and each append a `planned` line — that
101
- * duplicate would break whole-file sequence validation forever
102
- * (journal_sequence_broken). This closes the TOCTOU window an `existsSync`
103
- * pre-check cannot: the create-or-fail is atomic at the OS level.
104
- */
105
- readonly exclusive?: boolean;
106
- }
107
- /**
108
- * Appends one transition durably (append + fsync) BEFORE the caller performs
109
- * the side effect the transition describes. Journal-first ordering is what
110
- * makes crash recovery sound.
111
- */
112
- export declare function appendJournalTransition(journalPath: string, transition: JournalTransition, options?: AppendJournalTransitionOptions): void;
113
- export interface ActiveRecordWrite {
114
- readonly generation: number;
115
- readonly releaseId: string;
116
- readonly releaseMetadataDigest: string;
117
- readonly previousReleaseId: string | null;
118
- readonly transactionId: string;
119
- readonly productVersion: string;
120
- /** Embedded provenance: stamped source commit; omit for legacy payloads. */
121
- readonly sourceCommit?: string;
122
- }
123
- /** Serializes + atomically replaces active.json (see atomic-file adapter). */
124
- export declare function writeActiveRecord(recordPath: string, write: ActiveRecordWrite): void;
125
- /** Strict active.json reader; returns null when absent. */
126
- export declare function readActiveRecord(recordPath: string): ActiveRecord | null;
127
- export type RecoveryOutcome = {
128
- readonly kind: 'old_confirmed';
129
- readonly releaseId: string | null;
130
- readonly generation: number | null;
131
- readonly reason: string;
132
- } | {
133
- readonly kind: 'new_confirmed';
134
- readonly releaseId: string;
135
- readonly generation: number;
136
- readonly reason: string;
137
- } | {
138
- readonly kind: 'explicit_refusal';
139
- readonly reason: string;
140
- readonly nextAction: string;
141
- };
142
- /**
143
- * Reconciles ONE transaction against the active record after a crash. The
144
- * invariant: the result is old-confirmed, new-confirmed, or an explicit
145
- * refusal — never a hybrid release (SPEC §18-4).
146
- *
147
- * Rules:
148
- * - No journal activity for this transaction → nothing to reconcile.
149
- * - Journal reached `confirmed` → new release stands.
150
- * - Journal never reached `activated` → old release stands (nothing was
151
- * swapped); staging residue is cleaned up by the caller.
152
- * - Journal reached `activated` (or later, unconfirmed) but active.json does
153
- * not carry this transaction's generation → the crash interrupted the
154
- * active-record write. The active record IS the previously confirmed
155
- * release (PRI-922: there is no separate previous slot; the sole pointer is
156
- * the authority), so recovery re-points to it; a hybrid (new code, old
157
- * pointer) is never activated. If there is no active record at all, refuse
158
- * explicitly and demand the official installer.
159
- */
160
- export declare function recoverUnfinishedTransaction(input: {
161
- transitions: readonly JournalTransition[];
162
- activeRecord: ActiveRecord | null;
163
- transactionId: string;
164
- }): RecoveryOutcome;
165
- /**
166
- * PRI-1069/1070 (G1 P0-4, SPEC v1.2 §17): machine-readable detail prefixes the
167
- * installer writes on a terminal `failed` when the PHYSICAL install was left
168
- * inconsistent — `restore_incomplete:` (a restore ran but a tree did not land
169
- * or could not be proven back), `restore_deferred:` (destructive restore
170
- * withheld because a child process could not be confirmed exited), or
171
- * `install_residue:` (fresh-install cleanup could not remove everything this
172
- * run deployed). Recovery surfaces must NOT skip such transactions merely
173
- * because their journal is terminal — that wholesale skip is how the
174
- * PRI-1069 half-restored runtime stayed invisible.
175
- */
176
- export declare const RESTORE_INCONSISTENCY_MARKER: RegExp;
177
- /**
178
- * The sidecar that marks a recovery-pending failed transaction as RESOLVED.
179
- * Journals are append-only and end at exactly one terminal state, so recovery
180
- * completion cannot be written into the old journal file; a separate record
181
- * keyed by the recovered transaction id is the smallest auditable fact.
182
- */
183
- export interface RecoveryResolution {
184
- readonly schemaVersion: 1;
185
- /** The failed transaction this record closes out. */
186
- readonly resolvedTransactionId: string;
187
- /** The install/transaction that physically restored (or superseded) it. */
188
- readonly resolvedByTransactionId: string;
189
- readonly resolvedAt: string;
190
- }
191
- /** True when a resolution record exists for the given failed transaction. */
192
- export declare function hasRecoveryResolution(transactionsDir: string, transactionId: string): boolean;
193
- /**
194
- * Records that a recovery-pending failed transaction has been physically
195
- * recovered by a later completed install. Written ONLY after that install
196
- * journaled `confirmed` — never speculatively (the alarm must persist until
197
- * real physical recovery evidence exists).
198
- */
199
- export declare function writeRecoveryResolution(transactionsDir: string, input: {
200
- resolvedTransactionId: string;
201
- resolvedByTransactionId: string;
202
- }): void;
203
- /**
204
- * Scans the transactions directory (read-only) for terminal `failed` journals
205
- * whose final detail carries a restore-inconsistency marker and that have no
206
- * resolution record yet — the exact set recovery surfaces must keep visible
207
- * and the set a recovering install must NOT prune backups against.
208
- * Unreadable journals are skipped (the strict reader can reject torn or
209
- * corrupt files; those are already reported by the recovery surfaces).
210
- */
211
- export declare function findRecoveryPendingTransactionIds(transactionsDir: string): string[];
212
- //# sourceMappingURL=transaction-journal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction-journal.d.ts","sourceRoot":"","sources":["../../src/update/transaction-journal.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction-journal.js","sourceRoot":"","sources":["../../src/update/transaction-journal.ts"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- import { type Fetcher } from 'tuf-js';
2
- export type ReleaseTrustErrorCode = 'invalid_request' | 'metadata_refresh_failed' | 'target_not_found' | 'target_identity_mismatch' | 'target_integrity_missing';
3
- interface ReleaseTrustErrorOptions {
4
- code: ReleaseTrustErrorCode;
5
- message: string;
6
- nextAction: string;
7
- cause?: unknown;
8
- }
9
- export declare class ReleaseTrustError extends Error {
10
- readonly code: ReleaseTrustErrorCode;
11
- readonly nextAction: string;
12
- constructor(options: ReleaseTrustErrorOptions);
13
- }
14
- export interface ResolveTrustedReleaseTargetOptions {
15
- metadataDir: string;
16
- metadataBaseUrl: string;
17
- targetPath: string;
18
- expectedChannel: string;
19
- expectedPlatform: string;
20
- fetcher?: Fetcher;
21
- }
22
- export interface TrustedReleaseTarget {
23
- artifactSha256: string;
24
- artifactSize: number;
25
- channel: string;
26
- platform: string;
27
- releaseId: string;
28
- targetPath: string;
29
- }
30
- /**
31
- * Resolves a release target only after the official TUF client verifies the
32
- * trusted-root → timestamp → snapshot → targets metadata chain.
33
- *
34
- * This module deliberately does not download or install the target. Phase 1
35
- * uses it as an independently testable trust boundary before update execution
36
- * is wired to the new release system.
37
- */
38
- export declare function resolveTrustedReleaseTarget(options: ResolveTrustedReleaseTargetOptions): Promise<TrustedReleaseTarget>;
39
- export interface DownloadTrustedReleasePayloadOptions {
40
- metadataDir: string;
41
- metadataBaseUrl: string;
42
- targetPath: string;
43
- destinationPath: string;
44
- fetcher?: Fetcher;
45
- }
46
- /**
47
- * Downloads a trusted target to an exact destination path. The TUF client
48
- * verifies length + digest DURING the download; a mismatch aborts and the
49
- * partial file never reaches the destination. The destination is replaced
50
- * atomically only after verification (temp file + rename in the same
51
- * directory).
52
- */
53
- export declare function downloadTrustedReleasePayload(options: DownloadTrustedReleasePayloadOptions): Promise<void>;
54
- export {};
55
- //# sourceMappingURL=trust-metadata.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trust-metadata.d.ts","sourceRoot":"","sources":["../../src/update/trust-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,QAAQ,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAC7B,iBAAiB,GACjB,yBAAyB,GACzB,kBAAkB,GAClB,0BAA0B,GAC1B,0BAA0B,CAAC;AAE/B,UAAU,wBAAwB;IAChC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,YAAY,OAAO,EAAE,wBAAwB,EAK5C;CACF;AAED,MAAM,WAAW,kCAAkC;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AA4CD;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,oBAAoB,CAAC,CAoD/B;AAOD,MAAM,WAAW,oCAAoC;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,IAAI,CAAC,CAoDf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"trust-metadata.js","sourceRoot":"","sources":["../../src/update/trust-metadata.ts"],"names":[],"mappings":"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"}