@nklisch/pi-enhanced 0.1.10 → 0.2.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 (390) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/node_modules/@nklisch/pi-clearance/native/clearance-core.darwin-arm64.node +0 -0
  3. package/node_modules/@nklisch/pi-clearance/native/clearance-core.darwin-x64.node +0 -0
  4. package/node_modules/@nklisch/pi-clearance/native/clearance-core.linux-arm64-gnu.node +0 -0
  5. package/node_modules/@nklisch/pi-clearance/native/clearance-core.win32-x64-msvc.node +0 -0
  6. package/node_modules/@nklisch/pi-plugins/README.md +2 -2
  7. package/node_modules/@nklisch/pi-plugins/dist/application/adoption-contract.d.ts +0 -6
  8. package/node_modules/@nklisch/pi-plugins/dist/application/agent-orientation.d.ts +66 -0
  9. package/node_modules/@nklisch/pi-plugins/dist/application/agent-orientation.js +223 -0
  10. package/node_modules/@nklisch/pi-plugins/dist/application/agent-orientation.js.map +1 -0
  11. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-trust-continuity.d.ts +1 -2
  12. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-trust-continuity.js +15 -33
  13. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-trust-continuity.js.map +1 -1
  14. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.d.ts +1 -2
  15. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.js +17 -20
  16. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.js.map +1 -1
  17. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.d.ts +3 -3
  18. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.js +1 -1
  19. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.js.map +1 -1
  20. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-service.d.ts +2 -2
  21. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-service.js +5 -5
  22. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-service.js.map +1 -1
  23. package/node_modules/@nklisch/pi-plugins/dist/application/convergence-service.d.ts +98 -0
  24. package/node_modules/@nklisch/pi-plugins/dist/application/convergence-service.js +270 -0
  25. package/node_modules/@nklisch/pi-plugins/dist/application/convergence-service.js.map +1 -0
  26. package/node_modules/@nklisch/pi-plugins/dist/application/exact-trust-grant-service.d.ts +3 -5
  27. package/node_modules/@nklisch/pi-plugins/dist/application/exact-trust-grant-service.js +18 -20
  28. package/node_modules/@nklisch/pi-plugins/dist/application/exact-trust-grant-service.js.map +1 -1
  29. package/node_modules/@nklisch/pi-plugins/dist/application/hook-visibility-service.d.ts +1 -2
  30. package/node_modules/@nklisch/pi-plugins/dist/application/hook-visibility-service.js +3 -1
  31. package/node_modules/@nklisch/pi-plugins/dist/application/hook-visibility-service.js.map +1 -1
  32. package/node_modules/@nklisch/pi-plugins/dist/application/host-observation-contract.d.ts +25 -1
  33. package/node_modules/@nklisch/pi-plugins/dist/application/host-observation-contract.js +5 -1
  34. package/node_modules/@nklisch/pi-plugins/dist/application/host-observation-contract.js.map +1 -1
  35. package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-service.d.ts +1 -2
  36. package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-service.js +3 -1
  37. package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-service.js.map +1 -1
  38. package/node_modules/@nklisch/pi-plugins/dist/application/inspection-contract.d.ts +0 -4
  39. package/node_modules/@nklisch/pi-plugins/dist/application/installed-revision-descriptor.d.ts +0 -4
  40. package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.d.ts +0 -9
  41. package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.js +1 -2
  42. package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.js.map +1 -1
  43. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-inspection-contract.d.ts +0 -2
  44. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.d.ts +4 -7
  45. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.js +88 -122
  46. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.js.map +1 -1
  47. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-registration-service.d.ts +1 -2
  48. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-registration-service.js +56 -94
  49. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-registration-service.js.map +1 -1
  50. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-policy-service.d.ts +1 -2
  51. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-policy-service.js +7 -6
  52. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-policy-service.js.map +1 -1
  53. package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.d.ts +3 -4
  54. package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.js +8 -11
  55. package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.js.map +1 -1
  56. package/node_modules/@nklisch/pi-plugins/dist/application/native-candidate-inspection.js +1 -1
  57. package/node_modules/@nklisch/pi-plugins/dist/application/native-candidate-inspection.js.map +1 -1
  58. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-contract.d.ts +7 -6
  59. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-contract.js +4 -5
  60. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-contract.js.map +1 -1
  61. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-dispatcher.js +2 -1
  62. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-dispatcher.js.map +1 -1
  63. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-error.d.ts +1 -1
  64. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-error.js +2 -2
  65. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-error.js.map +1 -1
  66. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-help.d.ts +5 -3
  67. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-install.d.ts +1 -1
  68. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-lifecycle.js +4 -1
  69. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-lifecycle.js.map +1 -1
  70. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-mutation-dispatch.js +13 -21
  71. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-mutation-dispatch.js.map +1 -1
  72. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-operation.d.ts +122 -1124
  73. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.d.ts +8 -4
  74. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.js +4 -3
  75. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.js.map +1 -1
  76. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-progress.d.ts +6 -4
  77. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-read-dispatch.js +1 -1
  78. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-read-dispatch.js.map +1 -1
  79. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.d.ts +30 -7
  80. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.js +4 -3
  81. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.js.map +1 -1
  82. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-safe-projection.d.ts +0 -6
  83. package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.d.ts +49 -49
  84. package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.js +10 -10
  85. package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.js.map +1 -1
  86. package/node_modules/@nklisch/pi-plugins/dist/application/native-failure-presenter.d.ts +0 -5
  87. package/node_modules/@nklisch/pi-plugins/dist/application/native-failure-presenter.js +13 -11
  88. package/node_modules/@nklisch/pi-plugins/dist/application/native-failure-presenter.js.map +1 -1
  89. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-contract.d.ts +55 -70
  90. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-contract.js +4 -3
  91. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-contract.js.map +1 -1
  92. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-service.js +30 -11
  93. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-service.js.map +1 -1
  94. package/node_modules/@nklisch/pi-plugins/dist/application/native-installed-inspection.js +46 -35
  95. package/node_modules/@nklisch/pi-plugins/dist/application/native-installed-inspection.js.map +1 -1
  96. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.d.ts +362 -1284
  97. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.js +11 -12
  98. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.js.map +1 -1
  99. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-service.d.ts +1 -1
  100. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-service.js +4 -26
  101. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-service.js.map +1 -1
  102. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-session.js +1 -1
  103. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-session.js.map +1 -1
  104. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation.d.ts +79 -235
  105. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation.js +26 -41
  106. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation.js.map +1 -1
  107. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.d.ts +1 -1
  108. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.js +23 -68
  109. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.js.map +1 -1
  110. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-target.d.ts +2 -2
  111. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-target.js +0 -18
  112. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-target.js.map +1 -1
  113. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-update.d.ts +0 -4
  114. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-update.js +0 -2
  115. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-update.js.map +1 -1
  116. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.d.ts +2 -5
  117. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.js +5 -5
  118. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.js.map +1 -1
  119. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-policy-service.d.ts +1 -2
  120. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-policy-service.js +4 -2
  121. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-policy-service.js.map +1 -1
  122. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-contract.d.ts +30 -57
  123. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-contract.js +9 -32
  124. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-contract.js.map +1 -1
  125. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.d.ts +57 -75
  126. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.js +293 -583
  127. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.js.map +1 -1
  128. package/node_modules/@nklisch/pi-plugins/dist/application/ports/artifact-gc.d.ts +21 -0
  129. package/node_modules/@nklisch/pi-plugins/dist/application/ports/artifact-gc.js +2 -0
  130. package/node_modules/@nklisch/pi-plugins/dist/application/ports/artifact-gc.js.map +1 -0
  131. package/node_modules/@nklisch/pi-plugins/dist/application/ports/automatic-update-lifecycle.d.ts +5 -6
  132. package/node_modules/@nklisch/pi-plugins/dist/application/ports/installed-plugin-loader.d.ts +0 -4
  133. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-reload.d.ts +80 -13
  134. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-reload.js +6 -3
  135. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-reload.js.map +1 -1
  136. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mcp-runtime.d.ts +0 -16
  137. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-control-input.d.ts +1 -1
  138. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-inspection-evidence.d.ts +4 -4
  139. package/node_modules/@nklisch/pi-plugins/dist/application/ports/pending-data-deletion.d.ts +26 -0
  140. package/node_modules/@nklisch/pi-plugins/dist/application/ports/pending-data-deletion.js +8 -0
  141. package/node_modules/@nklisch/pi-plugins/dist/application/ports/pending-data-deletion.js.map +1 -0
  142. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-contract.d.ts +12 -9
  143. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-contract.js +2 -2
  144. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-contract.js.map +1 -1
  145. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-planner.js +1 -10
  146. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-planner.js.map +1 -1
  147. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-projection.js +1 -1
  148. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-projection.js.map +1 -1
  149. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-service.d.ts +1 -2
  150. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-service.js +6 -10
  151. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-service.js.map +1 -1
  152. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-state.d.ts +2 -4
  153. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-state.js +9 -8
  154. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-state.js.map +1 -1
  155. package/node_modules/@nklisch/pi-plugins/dist/application/state-contract.d.ts +16 -32
  156. package/node_modules/@nklisch/pi-plugins/dist/application/state-transaction.d.ts +48 -0
  157. package/node_modules/@nklisch/pi-plugins/dist/application/state-transaction.js +107 -0
  158. package/node_modules/@nklisch/pi-plugins/dist/application/state-transaction.js.map +1 -0
  159. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.d.ts +1725 -4546
  160. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.js +3 -22
  161. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.js.map +1 -1
  162. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-lifecycle.d.ts +1 -3
  163. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-lifecycle.js +1 -5
  164. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-lifecycle.js.map +1 -1
  165. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-service.js +33 -122
  166. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-service.js.map +1 -1
  167. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-session.d.ts +0 -20
  168. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-session.js +1 -23
  169. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-session.js.map +1 -1
  170. package/node_modules/@nklisch/pi-plugins/dist/application/update-contract.d.ts +0 -7
  171. package/node_modules/@nklisch/pi-plugins/dist/application/update-contract.js +1 -1
  172. package/node_modules/@nklisch/pi-plugins/dist/application/update-contract.js.map +1 -1
  173. package/node_modules/@nklisch/pi-plugins/dist/application/update-notification-service.d.ts +1 -2
  174. package/node_modules/@nklisch/pi-plugins/dist/application/update-notification-service.js +5 -3
  175. package/node_modules/@nklisch/pi-plugins/dist/application/update-notification-service.js.map +1 -1
  176. package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-lease-state.d.ts +1 -2
  177. package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-lease-state.js +6 -4
  178. package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-lease-state.js.map +1 -1
  179. package/node_modules/@nklisch/pi-plugins/dist/composition/agent-orientation-facts.d.ts +42 -0
  180. package/node_modules/@nklisch/pi-plugins/dist/composition/agent-orientation-facts.js +223 -0
  181. package/node_modules/@nklisch/pi-plugins/dist/composition/agent-orientation-facts.js.map +1 -0
  182. package/node_modules/@nklisch/pi-plugins/dist/composition/automatic-update-lifecycle-adapter.js +12 -18
  183. package/node_modules/@nklisch/pi-plugins/dist/composition/automatic-update-lifecycle-adapter.js.map +1 -1
  184. package/node_modules/@nklisch/pi-plugins/dist/composition/background-update-coordinator.d.ts +3 -0
  185. package/node_modules/@nklisch/pi-plugins/dist/composition/background-update-coordinator.js +10 -0
  186. package/node_modules/@nklisch/pi-plugins/dist/composition/background-update-coordinator.js.map +1 -1
  187. package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.d.ts +3 -7
  188. package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.js +64 -153
  189. package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.js.map +1 -1
  190. package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-discovery-services.d.ts +2 -3
  191. package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-discovery-services.js.map +1 -1
  192. package/node_modules/@nklisch/pi-plugins/dist/composition/create-mcp-runtime.d.ts +3 -7
  193. package/node_modules/@nklisch/pi-plugins/dist/composition/create-mcp-runtime.js +4 -8
  194. package/node_modules/@nklisch/pi-plugins/dist/composition/create-mcp-runtime.js.map +1 -1
  195. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-inspection-service.d.ts +2 -2
  196. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-inspection-service.js +1 -1
  197. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-inspection-service.js.map +1 -1
  198. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-lifecycle-operation-service.d.ts +2 -5
  199. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-lifecycle-operation-service.js +70 -1
  200. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-lifecycle-operation-service.js.map +1 -1
  201. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-update-management-service.d.ts +1 -2
  202. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-update-management-service.js.map +1 -1
  203. package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.d.ts +12 -1
  204. package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.js +177 -66
  205. package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.js.map +1 -1
  206. package/node_modules/@nklisch/pi-plugins/dist/composition/create-skill-hook-runtime.d.ts +2 -4
  207. package/node_modules/@nklisch/pi-plugins/dist/composition/create-skill-hook-runtime.js +24 -43
  208. package/node_modules/@nklisch/pi-plugins/dist/composition/create-skill-hook-runtime.js.map +1 -1
  209. package/node_modules/@nklisch/pi-plugins/dist/composition/create-trusted-installation-service.d.ts +1 -2
  210. package/node_modules/@nklisch/pi-plugins/dist/composition/create-trusted-installation-service.js.map +1 -1
  211. package/node_modules/@nklisch/pi-plugins/dist/composition/host-status-service.d.ts +1 -1
  212. package/node_modules/@nklisch/pi-plugins/dist/composition/host-status-service.js +4 -4
  213. package/node_modules/@nklisch/pi-plugins/dist/composition/host-status-service.js.map +1 -1
  214. package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-evidence.d.ts +3 -3
  215. package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-evidence.js +6 -6
  216. package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-evidence.js.map +1 -1
  217. package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.d.ts +1 -1
  218. package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.js +4 -5
  219. package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.js.map +1 -1
  220. package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-plugin-host-contract.d.ts +5 -0
  221. package/node_modules/@nklisch/pi-plugins/dist/composition/plugin-host-paths.d.ts +1 -0
  222. package/node_modules/@nklisch/pi-plugins/dist/composition/plugin-host-paths.js +6 -0
  223. package/node_modules/@nklisch/pi-plugins/dist/composition/plugin-host-paths.js.map +1 -1
  224. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.d.ts +15 -0
  225. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.js +228 -154
  226. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.js.map +1 -1
  227. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-participant-qualification.d.ts +7 -1
  228. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-participant-qualification.js +17 -4
  229. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-participant-qualification.js.map +1 -1
  230. package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility-policy.d.ts +0 -4
  231. package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility.d.ts +0 -6
  232. package/node_modules/@nklisch/pi-plugins/dist/domain/error-contract.d.ts +0 -6
  233. package/node_modules/@nklisch/pi-plugins/dist/domain/error-contract.js +0 -2
  234. package/node_modules/@nklisch/pi-plugins/dist/domain/error-contract.js.map +1 -1
  235. package/node_modules/@nklisch/pi-plugins/dist/domain/errors.d.ts +0 -6
  236. package/node_modules/@nklisch/pi-plugins/dist/domain/marketplace.d.ts +0 -2
  237. package/node_modules/@nklisch/pi-plugins/dist/domain/state/config-state.d.ts +2 -6
  238. package/node_modules/@nklisch/pi-plugins/dist/domain/state/installed-state.d.ts +4 -4
  239. package/node_modules/@nklisch/pi-plugins/dist/domain/state/installed-state.js +5 -7
  240. package/node_modules/@nklisch/pi-plugins/dist/domain/state/installed-state.js.map +1 -1
  241. package/node_modules/@nklisch/pi-plugins/dist/domain/state/project-state.d.ts +2 -4
  242. package/node_modules/@nklisch/pi-plugins/dist/domain/state/references.d.ts +1 -8
  243. package/node_modules/@nklisch/pi-plugins/dist/domain/state/references.js +0 -9
  244. package/node_modules/@nklisch/pi-plugins/dist/domain/state/references.js.map +1 -1
  245. package/node_modules/@nklisch/pi-plugins/dist/domain/state/registry.d.ts +4 -8
  246. package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.d.ts +5 -13
  247. package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.js +2 -3
  248. package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.js.map +1 -1
  249. package/node_modules/@nklisch/pi-plugins/dist/index.d.ts +16 -38
  250. package/node_modules/@nklisch/pi-plugins/dist/index.js +8 -22
  251. package/node_modules/@nklisch/pi-plugins/dist/index.js.map +1 -1
  252. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/cleanup/pending-data-deletion.d.ts +8 -0
  253. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/cleanup/pending-data-deletion.js +112 -0
  254. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/cleanup/pending-data-deletion.js.map +1 -0
  255. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/artifact-gc.d.ts +17 -0
  256. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/artifact-gc.js +143 -0
  257. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/artifact-gc.js.map +1 -0
  258. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/create-node-convergence.d.ts +16 -0
  259. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/create-node-convergence.js +14 -0
  260. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/create-node-convergence.js.map +1 -0
  261. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/immutable-content-store.d.ts +0 -8
  262. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/immutable-content-store.js +1 -1
  263. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/immutable-content-store.js.map +1 -1
  264. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/staging-allocator.d.ts +0 -1
  265. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/staging-allocator.js +1 -24
  266. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/staging-allocator.js.map +1 -1
  267. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/lifecycle-convergence-migration.d.ts +33 -0
  268. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/lifecycle-convergence-migration.js +416 -0
  269. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/lifecycle-convergence-migration.js.map +1 -0
  270. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.d.ts +10 -0
  271. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.js +31 -4
  272. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.js.map +1 -1
  273. package/node_modules/@nklisch/pi-plugins/dist/pi/agent-orientation-publisher.d.ts +17 -0
  274. package/node_modules/@nklisch/pi-plugins/dist/pi/agent-orientation-publisher.js +81 -0
  275. package/node_modules/@nklisch/pi-plugins/dist/pi/agent-orientation-publisher.js.map +1 -0
  276. package/node_modules/@nklisch/pi-plugins/dist/pi/extension.js +8 -3
  277. package/node_modules/@nklisch/pi-plugins/dist/pi/extension.js.map +1 -1
  278. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-control-input.js +0 -2
  279. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-control-input.js.map +1 -1
  280. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-component.js +9 -22
  281. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-component.js.map +1 -1
  282. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-flow.d.ts +2 -2
  283. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.d.ts +2 -2
  284. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.js +7 -7
  285. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.js.map +1 -1
  286. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-controller.js +1 -1
  287. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-controller.js.map +1 -1
  288. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.d.ts +8 -0
  289. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.js +7 -0
  290. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.js.map +1 -1
  291. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-render.js +6 -1
  292. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-render.js.map +1 -1
  293. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-session.js +11 -22
  294. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-session.js.map +1 -1
  295. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-status.d.ts +1 -2
  296. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-status.js +1 -3
  297. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-status.js.map +1 -1
  298. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-operation-view.js +2 -4
  299. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-operation-view.js.map +1 -1
  300. package/node_modules/@nklisch/pi-plugins/dist/pi/native-control-human.js +5 -7
  301. package/node_modules/@nklisch/pi-plugins/dist/pi/native-control-human.js.map +1 -1
  302. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-reload-broker.d.ts +6 -6
  303. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-reload-broker.js +36 -6
  304. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-reload-broker.js.map +1 -1
  305. package/node_modules/@nklisch/pi-plugins/dist/pi/plain-language.js +1 -0
  306. package/node_modules/@nklisch/pi-plugins/dist/pi/plain-language.js.map +1 -1
  307. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-command.js +1 -1
  308. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-command.js.map +1 -1
  309. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/lifecycle-participant.d.ts +0 -2
  310. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/mcp-runtime-binding-provider.d.ts +12 -0
  311. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/mcp-runtime-binding-provider.js +43 -0
  312. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/mcp-runtime-binding-provider.js.map +1 -0
  313. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-package.d.ts +12 -1
  314. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-package.js +27 -10
  315. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-package.js.map +1 -1
  316. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-runtime.js +1 -1
  317. package/node_modules/@nklisch/pi-plugins/package.json +3 -3
  318. package/package.json +6 -3
  319. package/node_modules/@nklisch/pi-plugins/dist/application/generation-mutation-coordinator.d.ts +0 -79
  320. package/node_modules/@nklisch/pi-plugins/dist/application/generation-mutation-coordinator.js +0 -424
  321. package/node_modules/@nklisch/pi-plugins/dist/application/generation-mutation-coordinator.js.map +0 -1
  322. package/node_modules/@nklisch/pi-plugins/dist/application/keyed-mutation-scheduler.d.ts +0 -19
  323. package/node_modules/@nklisch/pi-plugins/dist/application/keyed-mutation-scheduler.js +0 -235
  324. package/node_modules/@nklisch/pi-plugins/dist/application/keyed-mutation-scheduler.js.map +0 -1
  325. package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.d.ts +0 -79
  326. package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.js +0 -236
  327. package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.js.map +0 -1
  328. package/node_modules/@nklisch/pi-plugins/dist/application/mutation-coordination.d.ts +0 -19
  329. package/node_modules/@nklisch/pi-plugins/dist/application/mutation-coordination.js +0 -12
  330. package/node_modules/@nklisch/pi-plugins/dist/application/mutation-coordination.js.map +0 -1
  331. package/node_modules/@nklisch/pi-plugins/dist/application/native-uninstall-cleanup.d.ts +0 -25
  332. package/node_modules/@nklisch/pi-plugins/dist/application/native-uninstall-cleanup.js +0 -39
  333. package/node_modules/@nklisch/pi-plugins/dist/application/native-uninstall-cleanup.js.map +0 -1
  334. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-transition-store.d.ts +0 -5020
  335. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-transition-store.js +0 -129
  336. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-transition-store.js.map +0 -1
  337. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mutation-execution-context.d.ts +0 -9
  338. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mutation-execution-context.js +0 -2
  339. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mutation-execution-context.js.map +0 -1
  340. package/node_modules/@nklisch/pi-plugins/dist/application/ports/recovery-artifacts.d.ts +0 -29
  341. package/node_modules/@nklisch/pi-plugins/dist/application/ports/recovery-artifacts.js +0 -4
  342. package/node_modules/@nklisch/pi-plugins/dist/application/ports/recovery-artifacts.js.map +0 -1
  343. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-lease-store.d.ts +0 -65
  344. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-lease-store.js +0 -16
  345. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-lease-store.js.map +0 -1
  346. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-retention-store.d.ts +0 -43
  347. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-retention-store.js +0 -12
  348. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-retention-store.js.map +0 -1
  349. package/node_modules/@nklisch/pi-plugins/dist/application/ports/scope-lock.d.ts +0 -15
  350. package/node_modules/@nklisch/pi-plugins/dist/application/ports/scope-lock.js +0 -2
  351. package/node_modules/@nklisch/pi-plugins/dist/application/ports/scope-lock.js.map +0 -1
  352. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-contract.d.ts +0 -1078
  353. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-contract.js +0 -126
  354. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-contract.js.map +0 -1
  355. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-service.d.ts +0 -39
  356. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-service.js +0 -170
  357. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-service.js.map +0 -1
  358. package/node_modules/@nklisch/pi-plugins/dist/application/revision-collection-service.d.ts +0 -52
  359. package/node_modules/@nklisch/pi-plugins/dist/application/revision-collection-service.js +0 -228
  360. package/node_modules/@nklisch/pi-plugins/dist/application/revision-collection-service.js.map +0 -1
  361. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/create-node-recovery-adapters.d.ts +0 -23
  362. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/create-node-recovery-adapters.js +0 -82
  363. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/create-node-recovery-adapters.js.map +0 -1
  364. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.d.ts +0 -15
  365. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.js +0 -35
  366. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.js.map +0 -1
  367. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.d.ts +0 -7
  368. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.js +0 -95
  369. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.js.map +0 -1
  370. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/recovery-artifact-scanner.d.ts +0 -3
  371. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/recovery-artifact-scanner.js +0 -83
  372. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/recovery-artifact-scanner.js.map +0 -1
  373. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/revision-artifact-store.d.ts +0 -3
  374. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/revision-artifact-store.js +0 -178
  375. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/revision-artifact-store.js.map +0 -1
  376. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.d.ts +0 -7
  377. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.js +0 -73
  378. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.js.map +0 -1
  379. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.d.ts +0 -28
  380. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.js +0 -445
  381. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.js.map +0 -1
  382. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/keyed-mutation-scheduler.d.ts +0 -5
  383. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/keyed-mutation-scheduler.js +0 -17
  384. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/keyed-mutation-scheduler.js.map +0 -1
  385. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.d.ts +0 -15
  386. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.js +0 -292
  387. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.js.map +0 -1
  388. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/revision-lease-provider.d.ts +0 -18
  389. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/revision-lease-provider.js +0 -180
  390. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/revision-lease-provider.js.map +0 -1
@@ -0,0 +1,270 @@
1
+ import { z } from "zod";
2
+ import { runScopedMutation } from "./state-transaction.js";
3
+ import { PENDING_DELETE_GRACE_MS } from "./ports/pending-data-deletion.js";
4
+ import { createInstalledUserStateDocument } from "../domain/state/installed-state.js";
5
+ import { createProjectLocalStateDocument } from "../domain/state/project-state.js";
6
+ import { parseStateMutation } from "./state-contract.js";
7
+ import { contentStoreKeyDigest, createPluginStoreIdentityFromEvidence, createMarketplaceStoreIdentityFromEvidence } from "../domain/content-store.js";
8
+ export const ConvergenceDiagnosticCodeSchema = z.enum([
9
+ "MARKER_REPLAY_FAILED",
10
+ "MARKER_RETAINED",
11
+ "MARKER_SCOPE_UNAVAILABLE",
12
+ "INVENTORY_UNAVAILABLE",
13
+ "STATE_CORRUPT",
14
+ "BUDGET_EXHAUSTED",
15
+ "ORPHAN_RETAINED",
16
+ "PRUNE_FAILED",
17
+ ]);
18
+ export const ConvergenceResultSchema = z.object({
19
+ kind: z.enum(["completed", "deferred", "blocked"]),
20
+ scope: z.union([z.object({ kind: z.literal("user") }).strict(), z.object({ kind: z.literal("project"), projectKey: z.string() }).strict()]).optional(),
21
+ plugin: z.string().optional(),
22
+ code: ConvergenceDiagnosticCodeSchema,
23
+ }).strict().readonly();
24
+ export const ConvergenceReportSchema = z.object({ results: z.array(ConvergenceResultSchema).readonly(), deferred: z.boolean(), processed: z.number().int().nonnegative() }).strict().readonly();
25
+ export const DefaultConvergencePolicy = Object.freeze({ requiredBudgetMs: 2_000, maxItems: 128, stagingGraceMs: 7 * 86_400_000, orphanGraceMs: 7 * 86_400_000 });
26
+ function records(snapshot) { return "installed" in snapshot ? snapshot.installed.plugins : snapshot.project.plugins; }
27
+ function replaceRecords(snapshot, next, sha256) {
28
+ if ("installed" in snapshot) {
29
+ const installed = createInstalledUserStateDocument({ ...snapshot.installed, generation: snapshot.generation, plugins: next }, sha256);
30
+ return parseStateMutation({ scope: snapshot.scope, expectedGeneration: snapshot.generation, replace: { installed } }, sha256);
31
+ }
32
+ const project = createProjectLocalStateDocument({ ...snapshot.project, generation: snapshot.generation, plugins: next }, snapshot.scope, sha256);
33
+ return parseStateMutation({ scope: snapshot.scope, expectedGeneration: snapshot.generation, replace: { project } }, sha256);
34
+ }
35
+ function scopeRef(scope) { return scope.kind === "user" ? { kind: "user" } : { kind: "project", projectKey: scope.projectKey }; }
36
+ function sameScope(left, right) {
37
+ return left.kind === right.kind && (left.kind === "user" || (right.kind === "project" && left.projectKey === right.projectKey));
38
+ }
39
+ function contextForMarker(marker, inventory) {
40
+ return inventory?.scopes.find((candidate) => sameScope(scopeRef(candidate), marker.scope));
41
+ }
42
+ function prunedRecords(snapshot) {
43
+ const current = records(snapshot);
44
+ const next = current.map((record) => {
45
+ const keep = new Set([record.selectedRevision, ...(record.previousRevision === undefined ? [] : [record.previousRevision])]);
46
+ const revisions = record.revisions.filter((revision) => keep.has(revision.revision));
47
+ return revisions.length === record.revisions.length ? record : { ...record, revisions };
48
+ });
49
+ return { records: next, changed: next.some((record, index) => JSON.stringify(record) !== JSON.stringify(current[index])) };
50
+ }
51
+ async function replayMarkers(input) {
52
+ const now = input.now ?? Date.now();
53
+ const results = [];
54
+ const record = (entry) => { results.push(entry); input.onProcessed?.(); };
55
+ for (const marker of await input.markers.list(input.signal)) {
56
+ if (input.shouldStop())
57
+ return { entries: results, exhausted: true };
58
+ input.signal.throwIfAborted();
59
+ const evidence = await input.scopeEvidence(marker);
60
+ if (evidence === "unavailable") {
61
+ record({ marker, outcome: "retained-scope" });
62
+ continue;
63
+ }
64
+ if (evidence === "installed") {
65
+ if (now - marker.requestedAt < PENDING_DELETE_GRACE_MS) {
66
+ record({ marker, outcome: "retained-age" });
67
+ continue;
68
+ }
69
+ try {
70
+ await input.markers.remove(marker);
71
+ record({ marker, outcome: "discarded-installed" });
72
+ }
73
+ catch {
74
+ record({ marker, outcome: "retained-failure" });
75
+ }
76
+ continue;
77
+ }
78
+ try {
79
+ await input.data.remove({ scope: marker.scope, plugin: marker.plugin, dataRef: marker.dataRef, confirmation: "delete-confirmed", capability: {} }, input.signal);
80
+ await input.markers.remove(marker);
81
+ record({ marker, outcome: "deleted" });
82
+ }
83
+ catch {
84
+ record({ marker, outcome: "retained-failure" });
85
+ }
86
+ }
87
+ return { entries: results, exhausted: false };
88
+ }
89
+ export function createConvergenceService(dependencies) {
90
+ if (dependencies === null || typeof dependencies !== "object" || typeof dependencies.state?.read !== "function" || typeof dependencies.state?.commit !== "function" || typeof dependencies.inventory?.discover !== "function" || typeof dependencies.sha256 !== "function")
91
+ throw new TypeError("convergence dependencies are required");
92
+ const policy = { ...DefaultConvergencePolicy, ...(dependencies.policy ?? {}) };
93
+ async function sweep(request) {
94
+ const signal = request.signal ?? new AbortController().signal;
95
+ signal.throwIfAborted();
96
+ const monotonicNow = () => dependencies.clock?.monotonicMilliseconds() ?? Date.now();
97
+ const started = monotonicNow();
98
+ const now = dependencies.clock?.nowEpochMilliseconds() ?? Date.now();
99
+ let processed = 0;
100
+ let deferred = false;
101
+ const results = [];
102
+ const shouldStop = () => processed >= policy.maxItems || monotonicNow() - started >= policy.requiredBudgetMs;
103
+ let inventory;
104
+ try {
105
+ inventory = await dependencies.inventory.discover(signal);
106
+ }
107
+ catch (error) {
108
+ if (signal.aborted)
109
+ throw error;
110
+ deferred = true;
111
+ results.push({ kind: "deferred", code: "INVENTORY_UNAVAILABLE" });
112
+ }
113
+ const discoveredScopes = inventory?.scopes ?? request.scopes;
114
+ if (dependencies.dataRemoval !== undefined) {
115
+ let replayed = 0;
116
+ try {
117
+ const markerResults = await replayMarkers({
118
+ markers: dependencies.pendingDeletes,
119
+ scopeEvidence: async (marker) => {
120
+ const context = contextForMarker(marker, inventory);
121
+ if (context === undefined)
122
+ return "unavailable";
123
+ try {
124
+ const loaded = await dependencies.state.read(context, signal);
125
+ if (!loaded.ok || (loaded.snapshot.corruptions?.length ?? 0) > 0)
126
+ return "unavailable";
127
+ return records(loaded.snapshot).some((record) => record.plugin === marker.plugin) ? "installed" : "absent";
128
+ }
129
+ catch (error) {
130
+ if (signal.aborted)
131
+ throw error;
132
+ return "unavailable";
133
+ }
134
+ },
135
+ data: dependencies.dataRemoval,
136
+ signal,
137
+ now,
138
+ shouldStop: () => processed + replayed >= policy.maxItems || monotonicNow() - started >= policy.requiredBudgetMs,
139
+ onProcessed: () => { replayed += 1; },
140
+ });
141
+ for (const entry of markerResults.entries) {
142
+ processed += 1;
143
+ if (entry.outcome === "retained-age") {
144
+ deferred = true;
145
+ results.push({ kind: "deferred", scope: entry.marker.scope, plugin: entry.marker.plugin, code: "MARKER_RETAINED" });
146
+ }
147
+ else if (entry.outcome === "retained-scope") {
148
+ deferred = true;
149
+ results.push({ kind: "deferred", scope: entry.marker.scope, plugin: entry.marker.plugin, code: "MARKER_SCOPE_UNAVAILABLE" });
150
+ }
151
+ else if (entry.outcome === "retained-failure") {
152
+ deferred = true;
153
+ results.push({ kind: "deferred", scope: entry.marker.scope, plugin: entry.marker.plugin, code: "MARKER_REPLAY_FAILED" });
154
+ }
155
+ }
156
+ if (markerResults.exhausted) {
157
+ deferred = true;
158
+ results.push({ kind: "deferred", code: "BUDGET_EXHAUSTED" });
159
+ }
160
+ }
161
+ catch (error) {
162
+ if (signal.aborted)
163
+ throw error;
164
+ deferred = true;
165
+ results.push({ kind: "deferred", code: "MARKER_REPLAY_FAILED" });
166
+ }
167
+ }
168
+ for (const scope of request.scopes) {
169
+ signal.throwIfAborted();
170
+ if (shouldStop()) {
171
+ deferred = true;
172
+ results.push({ kind: "deferred", scope: scopeRef(scope), code: "BUDGET_EXHAUSTED" });
173
+ break;
174
+ }
175
+ try {
176
+ const mutation = await runScopedMutation(dependencies.state, scope, (snapshot) => {
177
+ const pruned = prunedRecords(snapshot);
178
+ if (!pruned.changed)
179
+ return { kind: "no-op", value: undefined };
180
+ return { kind: "commit", mutation: replaceRecords(snapshot, pruned.records, dependencies.sha256), value: undefined };
181
+ }, signal);
182
+ if (mutation.kind !== "committed" && mutation.kind !== "no-op") {
183
+ deferred = true;
184
+ results.push({ kind: "deferred", scope: scopeRef(scope), code: "PRUNE_FAILED" });
185
+ }
186
+ }
187
+ catch (error) {
188
+ if (signal.aborted)
189
+ throw error;
190
+ deferred = true;
191
+ results.push({ kind: "deferred", scope: scopeRef(scope), code: "PRUNE_FAILED" });
192
+ }
193
+ processed += 1;
194
+ }
195
+ if (dependencies.artifacts !== undefined && !shouldStop()) {
196
+ const referenced = new Set();
197
+ let referenceEvidenceComplete = inventory !== undefined && inventory.complete;
198
+ for (const scope of discoveredScopes) {
199
+ try {
200
+ const loaded = await dependencies.state.read(scope, signal);
201
+ if (!loaded.ok) {
202
+ referenceEvidenceComplete = false;
203
+ continue;
204
+ }
205
+ if ((loaded.snapshot.corruptions?.length ?? 0) > 0)
206
+ referenceEvidenceComplete = false;
207
+ for (const record of records(loaded.snapshot)) {
208
+ for (const revision of record.revisions) {
209
+ const identity = createPluginStoreIdentityFromEvidence({ sourceHash: revision.evidence.source.sourceHash, binding: revision.revision }, dependencies.sha256);
210
+ referenced.add(`revision:${contentStoreKeyDigest(identity)}`);
211
+ }
212
+ }
213
+ const marketplaces = "installed" in loaded.snapshot ? loaded.snapshot.installed.marketplaces : loaded.snapshot.project.marketplaces;
214
+ for (const marketplace of marketplaces) {
215
+ const identity = createMarketplaceStoreIdentityFromEvidence({ sourceHash: marketplace.source.sourceHash, revision: marketplace.source.revision, binding: marketplace.binding }, dependencies.sha256);
216
+ referenced.add(`marketplace:${contentStoreKeyDigest(identity)}`);
217
+ }
218
+ }
219
+ catch (error) {
220
+ if (signal.aborted)
221
+ throw error;
222
+ referenceEvidenceComplete = false;
223
+ }
224
+ }
225
+ const retainKinds = new Set();
226
+ if (!referenceEvidenceComplete) {
227
+ // Missing a scope or an unreadable scope can hide a live reference in
228
+ // each state-backed category. Staging remains independently safe to
229
+ // collect because it is protected by its own grace period.
230
+ retainKinds.add("revision");
231
+ retainKinds.add("marketplace");
232
+ retainKinds.add("projection");
233
+ deferred = true;
234
+ results.push({ kind: "deferred", code: "ORPHAN_RETAINED" });
235
+ }
236
+ let projectionReferences;
237
+ try {
238
+ projectionReferences = dependencies.projectionReferences?.();
239
+ }
240
+ catch {
241
+ projectionReferences = undefined;
242
+ deferred = true;
243
+ results.push({ kind: "deferred", code: "ORPHAN_RETAINED" });
244
+ }
245
+ if (projectionReferences === undefined)
246
+ retainKinds.add("projection");
247
+ else
248
+ for (const key of projectionReferences)
249
+ referenced.add(`projection:${key}`);
250
+ try {
251
+ const gc = await dependencies.artifacts.sweep({ referenced, ...(retainKinds.size === 0 ? {} : { retainKinds: [...retainKinds] }), signal });
252
+ if (gc.deferred || gc.incompleteEvidence)
253
+ deferred = true;
254
+ if (gc.incompleteEvidence && referenceEvidenceComplete)
255
+ results.push({ kind: "deferred", code: "ORPHAN_RETAINED" });
256
+ }
257
+ catch (error) {
258
+ if (signal.aborted)
259
+ throw error;
260
+ deferred = true;
261
+ results.push({ kind: "deferred", code: "ORPHAN_RETAINED" });
262
+ }
263
+ }
264
+ if (shouldStop())
265
+ deferred = true;
266
+ return ConvergenceReportSchema.parse({ results, deferred, processed });
267
+ }
268
+ return Object.freeze({ sweep });
269
+ }
270
+ //# sourceMappingURL=convergence-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convergence-service.js","sourceRoot":"","sources":["../../src/application/convergence-service.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  import { type ScopeContext } from "../domain/state/scope.js";
2
2
  import { type TrustCandidate } from "../domain/trust-policy.js";
3
- import type { GenerationMutationCoordinator } from "./generation-mutation-coordinator.js";
4
3
  import type { LifecycleStateStore } from "./ports/lifecycle-state-store.js";
5
4
  import type { ProjectRootAuthorityPort, TrustedProjectRoot } from "./ports/project-root-authority.js";
6
5
  import { type ProjectTrustPort } from "./ports/project-trust.js";
7
6
  import type { Sha256 } from "../domain/source.js";
8
- import type { Generation } from "../domain/state/config-state.js";
7
+ import { type Generation } from "../domain/state/config-state.js";
9
8
  import type { TrustSubjectRef } from "../domain/state/references.js";
10
9
  export type ExactTrustGrantResult = Readonly<{
11
10
  kind: "recorded" | "already-recorded";
@@ -20,9 +19,8 @@ export type ExactTrustGrantResult = Readonly<{
20
19
  recorded?: true;
21
20
  generation?: Generation;
22
21
  }> | Readonly<{
23
- kind: "recovery-required";
22
+ kind: "unavailable";
24
23
  subject: TrustSubjectRef;
25
- committed?: Generation;
26
24
  }>;
27
25
  export interface ExactTrustGrantService {
28
26
  grant(request: Readonly<{
@@ -33,7 +31,7 @@ export interface ExactTrustGrantService {
33
31
  }
34
32
  export type ExactTrustGrantDependencies = Readonly<{
35
33
  state: LifecycleStateStore;
36
- mutations: GenerationMutationCoordinator;
34
+ mutations: LifecycleStateStore;
37
35
  projectTrust: ProjectTrustPort;
38
36
  projectRoots: ProjectRootAuthorityPort;
39
37
  sha256: Sha256;
@@ -4,8 +4,9 @@ import { createTrustStateDocument } from "../domain/state/trust-state.js";
4
4
  import { createScopeContext, toScopeReference } from "../domain/state/scope.js";
5
5
  import { grantTrust, verifyTrustCandidate } from "../domain/trust-policy.js";
6
6
  import { parseStateMutation } from "./state-contract.js";
7
- import { CommittedMutationCleanupError } from "./generation-mutation-coordinator.js";
7
+ import { runScopedMutation } from "./state-transaction.js";
8
8
  import { ProjectTrustAssessmentSchema } from "./ports/project-trust.js";
9
+ import { GenerationSchema } from "../domain/state/config-state.js";
9
10
  class AlreadyRecorded extends Error {
10
11
  generation;
11
12
  constructor(generation) {
@@ -61,7 +62,7 @@ export function createExactTrustGrantService(dependencies) {
61
62
  return { kind: "project-stale" };
62
63
  }
63
64
  catch {
64
- return { kind: "recovery-required", subject: request.candidate.subject };
65
+ return { kind: "unavailable", subject: request.candidate.subject };
65
66
  }
66
67
  const status = await projectStatus(candidate, scope, request.projectRoot, dependencies, signal);
67
68
  if (status !== "trusted")
@@ -73,39 +74,40 @@ export function createExactTrustGrantService(dependencies) {
73
74
  catch (error) {
74
75
  if (signal.aborted)
75
76
  throw signal.reason ?? error;
76
- return { kind: "recovery-required", subject: candidate.subject };
77
+ return { kind: "unavailable", subject: candidate.subject };
77
78
  }
78
79
  if (!loaded.ok || !("trust" in loaded.snapshot))
79
- return { kind: "recovery-required", subject: candidate.subject };
80
+ return { kind: "unavailable", subject: candidate.subject };
80
81
  if (exactGranted(loaded.snapshot.trust.records, candidate)) {
81
82
  return { kind: "already-recorded", subject: candidate.subject, generation: loaded.snapshot.generation };
82
83
  }
83
84
  const expected = loaded.snapshot.generation;
84
85
  try {
85
- const result = await dependencies.mutations.runPreparedMutation({ scope: { kind: "user" }, plugins: [candidate.evidence.plugin], expectedGeneration: expected }, async (context) => {
86
- if (!("trust" in context.snapshot))
86
+ const result = await runScopedMutation(dependencies.mutations, { kind: "user" }, (snapshot) => {
87
+ if (!("trust" in snapshot))
87
88
  throw new Error("trust authority is not user state");
88
- if (exactGranted(context.snapshot.trust.records, candidate))
89
- throw new AlreadyRecorded(context.snapshot.generation);
89
+ if (exactGranted(snapshot.trust.records, candidate))
90
+ throw new AlreadyRecorded(snapshot.generation);
90
91
  const record = grantTrust(candidate, dependencies.sha256);
91
92
  const records = [
92
- ...context.snapshot.trust.records.filter((entry) => entry.subject !== candidate.subject),
93
+ ...snapshot.trust.records.filter((entry) => entry.subject !== candidate.subject),
93
94
  record,
94
95
  ].sort((left, right) => compareUtf8(left.subject, right.subject));
95
96
  const trust = createTrustStateDocument({
96
97
  schemaVersion: 1,
97
- generation: context.snapshot.generation,
98
+ generation: snapshot.generation,
98
99
  records,
99
100
  }, dependencies.sha256);
100
101
  return {
102
+ kind: "commit",
101
103
  mutation: parseStateMutation({
102
104
  scope: { kind: "user" },
103
- expectedGeneration: context.snapshot.generation,
105
+ expectedGeneration: snapshot.generation,
104
106
  replace: { trust },
105
107
  }, dependencies.sha256),
106
108
  value: candidate.subject,
107
109
  ...(scope.kind === "project" ? {
108
- beforeCommit: async () => {
110
+ recheckAuthority: async () => {
109
111
  const current = await projectStatus(candidate, scope, request.projectRoot, dependencies, signal);
110
112
  if (current !== "trusted")
111
113
  throw Object.assign(new Error(current), { code: current });
@@ -119,17 +121,13 @@ export function createExactTrustGrantService(dependencies) {
119
121
  return { kind: finalStatus, recorded: true, generation: result.snapshot.generation };
120
122
  return { kind: "recorded", subject: candidate.subject, generation: result.snapshot.generation };
121
123
  }
122
- if (result.kind === "stale-generation" || result.kind === "commit-failed") {
123
- return { kind: "stale", expected: result.expected, actual: result.actual };
124
- }
125
- return { kind: "recovery-required", subject: candidate.subject, ...(result.actual === undefined ? {} : { committed: result.actual }) };
124
+ if (result.kind === "stale")
125
+ return { kind: "stale", expected, actual: GenerationSchema.parse(result.actual ?? expected) };
126
+ return { kind: "unavailable", subject: candidate.subject };
126
127
  }
127
128
  catch (error) {
128
129
  if (error instanceof AlreadyRecorded)
129
130
  return { kind: "already-recorded", subject: candidate.subject, generation: error.generation };
130
- if (error instanceof CommittedMutationCleanupError) {
131
- return { kind: "recovery-required", subject: candidate.subject, committed: error.committed.snapshot.generation };
132
- }
133
131
  if (signal.aborted)
134
132
  throw signal.reason ?? error;
135
133
  if (error !== null && typeof error === "object" && "code" in error) {
@@ -137,7 +135,7 @@ export function createExactTrustGrantService(dependencies) {
137
135
  if (code === "project-untrusted" || code === "project-stale")
138
136
  return { kind: code };
139
137
  }
140
- return { kind: "recovery-required", subject: candidate.subject };
138
+ return { kind: "unavailable", subject: candidate.subject };
141
139
  }
142
140
  },
143
141
  };
@@ -1 +1 @@
1
- {"version":3,"file":"exact-trust-grant-service.js","sourceRoot":"","sources":["../../src/application/exact-trust-grant-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exact-trust-grant-service.js","sourceRoot":"","sources":["../../src/application/exact-trust-grant-service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { type HookContextVisibility } from "../domain/hook-visibility.js";
2
2
  import type { Sha256 } from "../domain/source.js";
3
- import type { GenerationMutationCoordinator } from "./generation-mutation-coordinator.js";
4
3
  import type { LifecycleStateStore } from "./ports/lifecycle-state-store.js";
5
4
  import { type NativeHookVisibilityRequest, type NativeHookVisibilityResult } from "./hook-visibility-contract.js";
6
5
  export interface HookVisibilityService {
@@ -11,7 +10,7 @@ export interface HookVisibilityService {
11
10
  }
12
11
  export type HookVisibilityServiceDependencies = Readonly<{
13
12
  state: LifecycleStateStore;
14
- mutations: GenerationMutationCoordinator;
13
+ mutations: LifecycleStateStore;
15
14
  sha256: Sha256;
16
15
  }>;
17
16
  /**
@@ -1,5 +1,6 @@
1
1
  import { HostConfigDocumentSchema } from "../domain/state/config-state.js";
2
2
  import { DefaultHookContextVisibility, HookContextVisibilitySchema } from "../domain/hook-visibility.js";
3
+ import { runScopedMutation } from "./state-transaction.js";
3
4
  import { parseStateMutation } from "./state-contract.js";
4
5
  import { NativeHookVisibilityRequestSchema, NativeHookVisibilityResultSchema, } from "./hook-visibility-contract.js";
5
6
  /**
@@ -35,7 +36,7 @@ export function createHookVisibilityService(dependencies) {
35
36
  return NativeHookVisibilityResultSchema.parse({ kind: "rejected", code: "STATE_UNAVAILABLE" });
36
37
  }
37
38
  const before = loaded.snapshot.config.hooks.contextVisibility;
38
- const result = await dependencies.mutations.runPreparedMutation({ scope: { kind: "user" }, plugins: [], expectedGeneration: loaded.snapshot.generation }, async ({ snapshot }) => {
39
+ const result = await runScopedMutation(dependencies.mutations, { kind: "user" }, (snapshot) => {
39
40
  if (!("config" in snapshot))
40
41
  throw new Error("hook visibility requires user scope");
41
42
  // Same replace pattern as the host precedence service: rebuild the
@@ -47,6 +48,7 @@ export function createHookVisibilityService(dependencies) {
47
48
  hooks: { contextVisibility: visibility },
48
49
  });
49
50
  return {
51
+ kind: "commit",
50
52
  mutation: parseStateMutation({
51
53
  scope: snapshot.scope,
52
54
  expectedGeneration: snapshot.generation,
@@ -1 +1 @@
1
- {"version":3,"file":"hook-visibility-service.js","sourceRoot":"","sources":["../../src/application/hook-visibility-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook-visibility-service.js","sourceRoot":"","sources":["../../src/application/hook-visibility-service.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,14 @@ export declare const HostCapabilitiesSchema: z.ZodReadonly<z.ZodObject<{
41
41
  export type HostCapabilities = z.infer<typeof HostCapabilitiesSchema>;
42
42
  export declare const HostBlockedPluginSchema: z.ZodReadonly<z.ZodObject<{
43
43
  plugin: z.ZodUnion<readonly [z.core.$ZodBranded<z.ZodString, "PluginKey", "out">, z.ZodString]>;
44
+ scope: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
45
+ kind: z.ZodLiteral<"user">;
46
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
47
+ kind: z.ZodLiteral<"project">;
48
+ projectKey: z.core.$ZodBranded<z.ZodString, "ProjectKey", "out">;
49
+ }, z.core.$strict>>], "kind">>;
50
+ selectedRevision: z.ZodOptional<z.ZodString>;
51
+ runningRevision: z.ZodOptional<z.ZodString>;
44
52
  code: z.ZodString;
45
53
  explanation: z.ZodString;
46
54
  }, z.core.$strict>>;
@@ -59,6 +67,14 @@ export declare const HostStartupResultSchema: z.ZodReadonly<z.ZodObject<{
59
67
  }>;
60
68
  blocked: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
61
69
  plugin: z.ZodUnion<readonly [z.core.$ZodBranded<z.ZodString, "PluginKey", "out">, z.ZodString]>;
70
+ scope: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
71
+ kind: z.ZodLiteral<"user">;
72
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
73
+ kind: z.ZodLiteral<"project">;
74
+ projectKey: z.core.$ZodBranded<z.ZodString, "ProjectKey", "out">;
75
+ }, z.core.$strict>>], "kind">>;
76
+ selectedRevision: z.ZodOptional<z.ZodString>;
77
+ runningRevision: z.ZodOptional<z.ZodString>;
62
78
  code: z.ZodString;
63
79
  explanation: z.ZodString;
64
80
  }, z.core.$strict>>>>;
@@ -101,7 +117,7 @@ export declare const HostStatusSnapshotSchema: z.ZodReadonly<z.ZodObject<{
101
117
  ready: "ready";
102
118
  }>;
103
119
  local: z.ZodReadonly<z.ZodObject<{
104
- recovery: z.ZodEnum<{
120
+ convergence: z.ZodEnum<{
105
121
  blocked: "blocked";
106
122
  degraded: "degraded";
107
123
  settled: "settled";
@@ -140,6 +156,14 @@ export declare const HostStatusSnapshotSchema: z.ZodReadonly<z.ZodObject<{
140
156
  }, z.core.$strict>>;
141
157
  blocked: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
142
158
  plugin: z.ZodUnion<readonly [z.core.$ZodBranded<z.ZodString, "PluginKey", "out">, z.ZodString]>;
159
+ scope: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
160
+ kind: z.ZodLiteral<"user">;
161
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
162
+ kind: z.ZodLiteral<"project">;
163
+ projectKey: z.core.$ZodBranded<z.ZodString, "ProjectKey", "out">;
164
+ }, z.core.$strict>>], "kind">>;
165
+ selectedRevision: z.ZodOptional<z.ZodString>;
166
+ runningRevision: z.ZodOptional<z.ZodString>;
143
167
  code: z.ZodString;
144
168
  explanation: z.ZodString;
145
169
  }, z.core.$strict>>>>;
@@ -14,6 +14,10 @@ export const HostCapabilitiesSchema = z.object({
14
14
  }).strict().readonly();
15
15
  export const HostBlockedPluginSchema = z.object({
16
16
  plugin: z.union([PluginKeySchema, z.string().min(1)]),
17
+ /** Scope/revision evidence is present for plugin-local degradation. */
18
+ scope: ScopeReferenceSchema.optional(),
19
+ selectedRevision: z.string().regex(/^sha256:[0-9a-f]{64}$/).optional(),
20
+ runningRevision: z.string().regex(/^sha256:[0-9a-f]{64}$/).optional(),
17
21
  code: z.string().min(1),
18
22
  explanation: z.string().min(1),
19
23
  }).strict().readonly();
@@ -26,7 +30,7 @@ export const HostStartupResultSchema = z.object({
26
30
  export const HostStatusSnapshotSchema = z.object({
27
31
  status: HostReadinessStatusSchema,
28
32
  local: z.object({
29
- recovery: z.enum(["settled", "degraded", "blocked"]),
33
+ convergence: z.enum(["settled", "degraded", "blocked"]),
30
34
  runtime: z.enum(["reconciled", "degraded", "blocked"]),
31
35
  }).strict().readonly(),
32
36
  update: z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"host-observation-contract.js","sourceRoot":"","sources":["../../src/application/host-observation-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-observation-contract.js","sourceRoot":"","sources":["../../src/application/host-observation-contract.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { type HostPrecedence } from "../domain/host-precedence.js";
2
2
  import type { Sha256 } from "../domain/source.js";
3
- import type { GenerationMutationCoordinator } from "./generation-mutation-coordinator.js";
4
3
  import type { LifecycleStateStore } from "./ports/lifecycle-state-store.js";
5
4
  import { type NativeHostPrecedenceRequest, type NativeHostPrecedenceResult } from "./host-precedence-contract.js";
6
5
  export interface HostPrecedenceService {
@@ -16,7 +15,7 @@ export interface HostPrecedenceService {
16
15
  }
17
16
  export type HostPrecedenceServiceDependencies = Readonly<{
18
17
  state: LifecycleStateStore;
19
- mutations: GenerationMutationCoordinator;
18
+ mutations: LifecycleStateStore;
20
19
  sha256: Sha256;
21
20
  }>;
22
21
  /**