@nklisch/pi-enhanced 0.1.11 → 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 +8 -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 +1 -1
  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 +6 -0
  228. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-participant-qualification.js +13 -3
  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 +2 -2
  318. package/package.json +3 -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
@@ -1,126 +0,0 @@
1
- import { z } from "zod";
2
- import { PluginKeySchema } from "../domain/identity.js";
3
- import { PendingTransitionRefSchema } from "../domain/state/references.js";
4
- import { ScopeReferenceSchema } from "../domain/state/scope.js";
5
- import { GenerationSchema } from "../domain/state/config-state.js";
6
- import { InstalledPluginRecordSchema } from "../domain/state/installed-state.js";
7
- import { ActivationObservationSchema } from "./ports/lifecycle-reload.js";
8
- import { LifecycleTransitionRecordSchemaV1, } from "./ports/lifecycle-transition-store.js";
9
- import { ProjectionExpectationSchema } from "./ports/runtime-projection.js";
10
- export const RecoveryDiagnosticCodeSchema = z.enum([
11
- "OWNER_LIVE",
12
- "OWNER_UNKNOWN",
13
- "BUDGET_EXHAUSTED",
14
- "STATE_STALE",
15
- "JOURNAL_MISSING",
16
- "JOURNAL_CORRUPT",
17
- "STATE_CORRUPT",
18
- "RECOVERY_CONFLICT",
19
- "PREVIOUS_UNAVAILABLE",
20
- "CLEANUP_FAILED",
21
- ]);
22
- export const RecoveryPolicySchema = z.object({
23
- requiredBudgetMs: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
24
- maxTransitions: z.number().int().positive().max(Number.MAX_SAFE_INTEGER),
25
- abandonedGraceMs: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
26
- }).strict().readonly();
27
- export const DefaultLifecycleRecoveryPolicy = Object.freeze({
28
- requiredBudgetMs: 2_000,
29
- maxTransitions: 128,
30
- abandonedGraceMs: 86_400_000,
31
- });
32
- export const TransitionRecoveryResultSchema = z.discriminatedUnion("kind", [
33
- z.object({ kind: z.literal("finalized"), scope: ScopeReferenceSchema, plugin: PluginKeySchema, reference: PendingTransitionRefSchema, generation: GenerationSchema }).strict().readonly(),
34
- z.object({ kind: z.literal("rolled-back"), scope: ScopeReferenceSchema, plugin: PluginKeySchema, reference: PendingTransitionRefSchema, generation: GenerationSchema }).strict().readonly(),
35
- z.object({ kind: z.literal("abandoned"), scope: ScopeReferenceSchema, plugin: PluginKeySchema, reference: PendingTransitionRefSchema }).strict().readonly(),
36
- z.object({ kind: z.literal("cleanup-completed"), scope: ScopeReferenceSchema, plugin: PluginKeySchema, reference: PendingTransitionRefSchema }).strict().readonly(),
37
- z.object({
38
- kind: z.literal("deferred"),
39
- scope: ScopeReferenceSchema,
40
- plugin: PluginKeySchema.optional(),
41
- reference: PendingTransitionRefSchema.optional(),
42
- code: z.enum(["OWNER_LIVE", "OWNER_UNKNOWN", "BUDGET_EXHAUSTED", "STATE_STALE"]),
43
- }).strict().readonly(),
44
- z.object({
45
- kind: z.literal("blocked"),
46
- scope: ScopeReferenceSchema,
47
- plugin: PluginKeySchema.optional(),
48
- reference: PendingTransitionRefSchema.optional(),
49
- code: z.enum(["JOURNAL_MISSING", "JOURNAL_CORRUPT", "STATE_CORRUPT", "RECOVERY_CONFLICT", "PREVIOUS_UNAVAILABLE", "CLEANUP_FAILED"]),
50
- }).strict().readonly(),
51
- ]);
52
- export const LifecycleRecoveryResultSchema = z.object({
53
- results: z.array(TransitionRecoveryResultSchema).readonly(),
54
- deferred: z.boolean(),
55
- processed: z.number().int().nonnegative(),
56
- }).strict().readonly();
57
- export const RecoveryEvidenceKindSchema = z.enum(["candidate-pending", "previous-pending", "final", "conflict", "missing"]);
58
- export const RecoveryEvidenceSchema = z.object({
59
- kind: RecoveryEvidenceKindSchema,
60
- scope: ScopeReferenceSchema,
61
- plugin: PluginKeySchema,
62
- reference: PendingTransitionRefSchema,
63
- current: InstalledPluginRecordSchema.nullable(),
64
- observation: ActivationObservationSchema.optional(),
65
- }).strict().readonly();
66
- export const RecoveryClassificationSchema = z.discriminatedUnion("kind", [
67
- z.object({ kind: z.literal("finalize"), projection: ProjectionExpectationSchema }).strict().readonly(),
68
- z.object({ kind: z.literal("compensate"), projection: ProjectionExpectationSchema }).strict().readonly(),
69
- z.object({ kind: z.literal("conflict"), code: z.literal("RECOVERY_CONFLICT") }).strict().readonly(),
70
- z.object({ kind: z.literal("blocked"), code: z.literal("PREVIOUS_UNAVAILABLE") }).strict().readonly(),
71
- ]);
72
- function sameJson(left, right) {
73
- if (Object.is(left, right))
74
- return true;
75
- if (left === null || right === null || typeof left !== "object" || typeof right !== "object")
76
- return false;
77
- if (Array.isArray(left) || Array.isArray(right))
78
- return Array.isArray(left) && Array.isArray(right) && left.length === right.length && left.every((value, index) => sameJson(value, right[index]));
79
- const leftRecord = left;
80
- const rightRecord = right;
81
- const keys = Object.keys(leftRecord);
82
- return keys.length === Object.keys(rightRecord).length && keys.every((key) => Object.prototype.hasOwnProperty.call(rightRecord, key) && sameJson(leftRecord[key], rightRecord[key]));
83
- }
84
- export function stateWithoutPending(record) {
85
- const { pendingTransition: _pending, ...value } = record;
86
- return InstalledPluginRecordSchema.parse(value);
87
- }
88
- export function projectionMatchesObservation(observation, expectation, plugin) {
89
- if (expectation.kind === "inactive") {
90
- return observation.kind === "inactive" &&
91
- sameJson(observation.scope, expectation.scope) &&
92
- observation.plugin === plugin &&
93
- observation.projectionDigest === expectation.digest;
94
- }
95
- return observation.kind === "active" &&
96
- sameJson(observation.scope, expectation.projection.scope) &&
97
- observation.plugin === plugin &&
98
- observation.revision === expectation.projection.revision &&
99
- observation.projectionDigest === expectation.projection.digest;
100
- }
101
- /** Classify only exact evidence; a reload return value is intentionally absent. */
102
- export function classifyInterruptedTransition(input) {
103
- const record = LifecycleTransitionRecordSchemaV1.parse(input.record);
104
- const current = input.current === null ? null : InstalledPluginRecordSchema.parse(input.current);
105
- if (current !== null && current.plugin !== record.plugin)
106
- return { kind: "conflict", code: "RECOVERY_CONFLICT" };
107
- const pending = current?.pendingTransition;
108
- const currentWithoutPending = current === null ? null : stateWithoutPending(current);
109
- const isCandidate = currentWithoutPending !== null && sameJson(currentWithoutPending, record.candidate);
110
- const isPrevious = record.previous !== null && currentWithoutPending !== null && sameJson(currentWithoutPending, record.previous);
111
- if (pending === record.reference && isCandidate) {
112
- if (input.observation !== undefined && projectionMatchesObservation(input.observation, record.candidateProjection, record.plugin))
113
- return { kind: "finalize", projection: record.candidateProjection };
114
- return record.previous === null ? { kind: "blocked", code: "PREVIOUS_UNAVAILABLE" } : { kind: "compensate", projection: record.previousProjection };
115
- }
116
- if (pending === record.reference && isPrevious)
117
- return { kind: "compensate", projection: record.previousProjection };
118
- const finalMatches = record.final === null ? current === null : currentWithoutPending !== null && sameJson(currentWithoutPending, record.final);
119
- if (pending === undefined && finalMatches)
120
- return { kind: "finalize", projection: record.candidateProjection };
121
- return { kind: "conflict", code: "RECOVERY_CONFLICT" };
122
- }
123
- export function safeRecoveryResult(input) {
124
- return TransitionRecoveryResultSchema.parse(input);
125
- }
126
- //# sourceMappingURL=recovery-contract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recovery-contract.js","sourceRoot":"","sources":["../../src/application/recovery-contract.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import "zod";
2
- import { type ScopeContext, type ScopeReference } from "../domain/state/scope.js";
3
- import { type PendingTransitionRef } from "../domain/state/references.js";
4
- import { type LifecycleTransitionStore } from "./ports/lifecycle-transition-store.js";
5
- import type { LifecycleStateStore } from "./ports/lifecycle-state-store.js";
6
- import type { LifecycleClock } from "./ports/lifecycle-clock.js";
7
- import type { LifecycleStateInventoryPort } from "./ports/lifecycle-state-inventory.js";
8
- import type { RecoveryArtifactsPort } from "./ports/recovery-artifacts.js";
9
- import type { LifecycleTransitionReconciler } from "./lifecycle-transition-reconciler.js";
10
- import { TransitionRecoveryResultSchema, type LifecycleRecoveryResult, type RecoveryPolicy } from "./recovery-contract.js";
11
- import type { LifecycleReloadPort } from "./ports/lifecycle-reload.js";
12
- import type { NativeUninstallCleanupService } from "./native-uninstall-cleanup.js";
13
- export type LifecycleRecoveryServiceDependencies = Readonly<{
14
- state: LifecycleStateStore;
15
- inventory?: LifecycleStateInventoryPort;
16
- transitions: (scope: ScopeReference) => LifecycleTransitionStore;
17
- reconciler: LifecycleTransitionReconciler;
18
- reload: LifecycleReloadPort;
19
- artifacts?: RecoveryArtifactsPort;
20
- uninstallCleanup?: NativeUninstallCleanupService;
21
- clock?: LifecycleClock;
22
- }>;
23
- export type LifecycleRecoveryServiceRequest = Readonly<{
24
- requiredScopes: readonly ScopeContext[];
25
- /**
26
- * A live reload successor owns these exact transitions. Startup recovery
27
- * must not race that handoff even if predecessor journal ownership has
28
- * already been released during extension disposal.
29
- */
30
- reservedTransitions?: readonly PendingTransitionRef[];
31
- policy?: Partial<RecoveryPolicy>;
32
- }>;
33
- export interface LifecycleRecoveryService {
34
- recover(request: LifecycleRecoveryServiceRequest, signal: AbortSignal): Promise<LifecycleRecoveryResult>;
35
- }
36
- /** Startup reconciliation is deliberately local and bounded; collection is separate best-effort work. */
37
- export declare function createLifecycleRecoveryService(dependencies: LifecycleRecoveryServiceDependencies): LifecycleRecoveryService;
38
- export { TransitionRecoveryResultSchema };
39
- export type { LifecycleRecoveryResult, ScopeContext, ScopeReference };
@@ -1,170 +0,0 @@
1
- import "zod";
2
- import { ScopeContextSchema, toScopeReference } from "../domain/state/scope.js";
3
- import { PluginKeySchema } from "../domain/identity.js";
4
- import { PendingTransitionRefSchema } from "../domain/state/references.js";
5
- import {} from "./ports/lifecycle-transition-store.js";
6
- import { DefaultLifecycleRecoveryPolicy, LifecycleRecoveryResultSchema, RecoveryPolicySchema, TransitionRecoveryResultSchema } from "./recovery-contract.js";
7
- function sortScopes(scopes) { return [...scopes].sort((left, right) => JSON.stringify(left).localeCompare(JSON.stringify(right))); }
8
- function sortResult(left, right) {
9
- return JSON.stringify([left.scope, left.plugin ?? "", left.reference ?? "", left.kind]).localeCompare(JSON.stringify([right.scope, right.plugin ?? "", right.reference ?? "", right.kind]));
10
- }
11
- /** Startup reconciliation is deliberately local and bounded; collection is separate best-effort work. */
12
- export function createLifecycleRecoveryService(dependencies) {
13
- if (dependencies === null || typeof dependencies !== "object")
14
- throw new TypeError("recovery service dependencies are required");
15
- const clock = dependencies.clock ?? {
16
- nowEpochMilliseconds: () => Date.now(),
17
- monotonicMilliseconds: () => globalThis.performance?.now() ?? Date.now(),
18
- };
19
- async function recover(request, signal) {
20
- const policy = RecoveryPolicySchema.parse({ ...DefaultLifecycleRecoveryPolicy, ...(request.policy ?? {}) });
21
- const started = clock.monotonicMilliseconds();
22
- const deadline = started + policy.requiredBudgetMs;
23
- let processed = 0;
24
- let deferred = false;
25
- const results = [];
26
- const reservedTransitions = new Set((request.reservedTransitions ?? []).map((reference) => PendingTransitionRefSchema.parse(reference)));
27
- let scopes = sortScopes(request.requiredScopes.map((scope) => ScopeContextSchema.parse(scope)));
28
- if (scopes.length === 0 && dependencies.inventory !== undefined) {
29
- const inventory = await dependencies.inventory.discover(signal);
30
- scopes = sortScopes(inventory.scopes);
31
- if (!inventory.complete)
32
- deferred = true;
33
- }
34
- for (const scope of scopes) {
35
- if (signal.aborted)
36
- throw signal.reason;
37
- if (clock.monotonicMilliseconds() >= deadline || processed >= policy.maxTransitions) {
38
- deferred = true;
39
- results.push({ kind: "deferred", scope: toScopeReference(scope), code: "BUDGET_EXHAUSTED" });
40
- continue;
41
- }
42
- const scopeReference = toScopeReference(scope);
43
- const loaded = await dependencies.state.read(scope, signal);
44
- if (!loaded.ok) {
45
- deferred = true;
46
- results.push({ kind: "blocked", scope: scopeReference, code: "STATE_CORRUPT" });
47
- continue;
48
- }
49
- const journal = dependencies.transitions(scopeReference);
50
- const collection = journal.list === undefined ? undefined : await journal.list(scopeReference, signal).catch(() => undefined);
51
- if (collection === undefined || !collection.complete) {
52
- deferred = true;
53
- results.push({ kind: "blocked", scope: scopeReference, code: "JOURNAL_CORRUPT" });
54
- continue;
55
- }
56
- const byReference = new Map(collection.entries.map((entry) => [entry.record.reference, entry]));
57
- const pending = ("installed" in loaded.snapshot ? loaded.snapshot.installed.plugins : loaded.snapshot.project.plugins)
58
- .filter((record) => record.pendingTransition !== undefined)
59
- .sort((left, right) => left.plugin.localeCompare(right.plugin));
60
- for (const pluginRecord of pending) {
61
- const reference = PendingTransitionRefSchema.parse(pluginRecord.pendingTransition);
62
- if (reservedTransitions.has(reference))
63
- continue;
64
- if (processed >= policy.maxTransitions || clock.monotonicMilliseconds() >= deadline) {
65
- deferred = true;
66
- results.push({ kind: "deferred", scope: scopeReference, plugin: pluginRecord.plugin, reference, code: "BUDGET_EXHAUSTED" });
67
- continue;
68
- }
69
- processed += 1;
70
- const entry = byReference.get(reference);
71
- if (entry === undefined) {
72
- deferred = true;
73
- results.push({ kind: "blocked", scope: scopeReference, plugin: pluginRecord.plugin, reference, code: "JOURNAL_MISSING" });
74
- continue;
75
- }
76
- if (entry.status.kind === "quarantined") {
77
- deferred = true;
78
- results.push({ kind: "blocked", scope: scopeReference, plugin: pluginRecord.plugin, reference, code: "JOURNAL_CORRUPT" });
79
- continue;
80
- }
81
- const owner = journal.ownerStatus === undefined ? "released" : await journal.ownerStatus(scopeReference, reference, signal).catch(() => "unknown");
82
- if (owner === "live" || owner === "unknown") {
83
- deferred = true;
84
- results.push({ kind: "deferred", scope: scopeReference, plugin: pluginRecord.plugin, reference, code: owner === "live" ? "OWNER_LIVE" : "OWNER_UNKNOWN" });
85
- continue;
86
- }
87
- let observation;
88
- if (entry.record.candidateProjection.kind === "active" && pluginRecord.activation === "enabled") {
89
- observation = await dependencies.reload.observe({ scope: scopeReference, plugin: pluginRecord.plugin }, signal).catch(() => undefined);
90
- }
91
- const reconciled = await dependencies.reconciler.recoverInterruptedTransition({
92
- scope,
93
- plugin: PluginKeySchema.parse(pluginRecord.plugin),
94
- record: entry.record,
95
- current: pluginRecord,
96
- ...(observation === undefined ? {} : { observation }),
97
- }, signal);
98
- if (reconciled.kind === "completed")
99
- results.push({ kind: "finalized", scope: scopeReference, plugin: pluginRecord.plugin, reference, generation: reconciled.snapshot.generation });
100
- else if (reconciled.kind === "rolled-back")
101
- results.push({ kind: "rolled-back", scope: scopeReference, plugin: pluginRecord.plugin, reference, generation: reconciled.snapshot.generation });
102
- else {
103
- deferred = true;
104
- results.push({ kind: "blocked", scope: scopeReference, plugin: pluginRecord.plugin, reference, code: "RECOVERY_CONFLICT" });
105
- await journal.markRecoveryRequired?.({ scope: scopeReference, reference, ...(reconciled.committed === undefined ? {} : { generation: reconciled.committed }), at: clock.nowEpochMilliseconds() }, signal).catch(() => undefined);
106
- }
107
- }
108
- // Terminal uninstall deletion is durable journal work, independent of
109
- // the now-absent installed record. Failure never blocks another plugin.
110
- if (dependencies.uninstallCleanup !== undefined) {
111
- for (const entry of collection.entries.filter((candidate) => candidate.status.kind === "completed" && (candidate.cleanup === "pending-data-delete" || candidate.cleanup === "recovery-required")).sort((left, right) => left.record.reference.localeCompare(right.record.reference))) {
112
- if (processed >= policy.maxTransitions || clock.monotonicMilliseconds() >= deadline) {
113
- deferred = true;
114
- results.push({ kind: "deferred", scope: scopeReference, plugin: entry.record.plugin, reference: entry.record.reference, code: "BUDGET_EXHAUSTED" });
115
- continue;
116
- }
117
- processed += 1;
118
- const cleanup = await dependencies.uninstallCleanup.recover(entry, signal);
119
- if (cleanup.kind === "deleted")
120
- results.push({ kind: "cleanup-completed", scope: scopeReference, plugin: entry.record.plugin, reference: entry.record.reference });
121
- else if (cleanup.kind === "recovery-required") {
122
- deferred = true;
123
- results.push({ kind: "blocked", scope: scopeReference, plugin: entry.record.plugin, reference: entry.record.reference, code: "CLEANUP_FAILED" });
124
- }
125
- }
126
- }
127
- // Unreferenced prepared rows are inert. They are abandoned only after
128
- // owner death and a durable wall-clock grace, never by lease expiry.
129
- for (const entry of collection.entries.filter((candidate) => candidate.status.kind === "prepared").sort((left, right) => left.record.reference.localeCompare(right.record.reference))) {
130
- if (pending.some((record) => record.pendingTransition === entry.record.reference))
131
- continue;
132
- if (processed >= policy.maxTransitions || clock.monotonicMilliseconds() >= deadline) {
133
- deferred = true;
134
- results.push({ kind: "deferred", scope: scopeReference, plugin: entry.record.plugin, reference: entry.record.reference, code: "BUDGET_EXHAUSTED" });
135
- continue;
136
- }
137
- processed += 1;
138
- const owner = journal.ownerStatus === undefined ? "released" : await journal.ownerStatus(scopeReference, entry.record.reference, signal).catch(() => "unknown");
139
- if (owner === "live" || owner === "unknown") {
140
- deferred = true;
141
- results.push({ kind: "deferred", scope: scopeReference, plugin: entry.record.plugin, reference: entry.record.reference, code: owner === "live" ? "OWNER_LIVE" : "OWNER_UNKNOWN" });
142
- continue;
143
- }
144
- if (entry.preparedAt + policy.abandonedGraceMs > clock.nowEpochMilliseconds())
145
- continue;
146
- await journal.settle({ reference: entry.record.reference, outcome: "abandoned", at: clock.nowEpochMilliseconds() }, signal).catch(() => undefined);
147
- results.push({ kind: "abandoned", scope: scopeReference, plugin: entry.record.plugin, reference: entry.record.reference });
148
- }
149
- }
150
- if (!deferred && dependencies.artifacts !== undefined && clock.monotonicMilliseconds() < deadline) {
151
- const scan = await dependencies.artifacts.scan(signal).catch(() => ({ complete: false, candidates: [] }));
152
- if (!scan.complete)
153
- deferred = true;
154
- else
155
- for (const candidate of [...scan.candidates].sort((left, right) => left.kind.localeCompare(right.kind) || left.key.localeCompare(right.key))) {
156
- if (candidate.owner !== "dead" || candidate.createdAt + policy.abandonedGraceMs > clock.nowEpochMilliseconds())
157
- continue;
158
- if (clock.monotonicMilliseconds() >= deadline) {
159
- deferred = true;
160
- break;
161
- }
162
- await dependencies.artifacts.remove(candidate, signal).catch(() => undefined);
163
- }
164
- }
165
- return LifecycleRecoveryResultSchema.parse({ results: results.sort(sortResult), deferred, processed });
166
- }
167
- return Object.freeze({ recover });
168
- }
169
- export { TransitionRecoveryResultSchema };
170
- //# sourceMappingURL=recovery-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recovery-service.js","sourceRoot":"","sources":["../../src/application/recovery-service.ts"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- import { z } from "zod";
2
- import { type ContentStoreKey } from "../domain/content-store.js";
3
- import { type ScopeContext, type ScopeReference } from "../domain/state/scope.js";
4
- import type { GenerationMutationCoordinator } from "./generation-mutation-coordinator.js";
5
- import type { LifecycleStateStore } from "./ports/lifecycle-state-store.js";
6
- import type { LifecycleStateInventoryPort } from "./ports/lifecycle-state-inventory.js";
7
- import type { LifecycleTransitionStore } from "./ports/lifecycle-transition-store.js";
8
- import type { LifecycleClock } from "./ports/lifecycle-clock.js";
9
- import type { RevisionArtifactStore, RetainedArtifactRef } from "./ports/revision-artifact-store.js";
10
- import type { RevisionLeaseStore } from "./ports/revision-lease-store.js";
11
- import type { RevisionRetentionStore } from "./ports/revision-retention-store.js";
12
- import "./recovery-contract.js";
13
- import type { Sha256 } from "../domain/source.js";
14
- export declare const DefaultRevisionCollectionPolicy: Readonly<{
15
- unreferencedGraceMs: 86400000;
16
- terminalJournalRetentionMs: 604800000;
17
- maxArtifactsPerRun: 256;
18
- }>;
19
- export declare const RevisionCollectionPolicySchema: z.ZodReadonly<z.ZodObject<{
20
- unreferencedGraceMs: z.ZodNumber;
21
- terminalJournalRetentionMs: z.ZodNumber;
22
- maxArtifactsPerRun: z.ZodNumber;
23
- }, z.core.$strict>>;
24
- export type RevisionCollectionPolicy = z.infer<typeof RevisionCollectionPolicySchema>;
25
- export declare const RevisionCollectionResultSchema: z.ZodReadonly<z.ZodObject<{
26
- kind: z.ZodEnum<{
27
- collected: "collected";
28
- deferred: "deferred";
29
- }>;
30
- removedArtifacts: z.ZodNumber;
31
- prunedRevisions: z.ZodNumber;
32
- code: z.ZodOptional<z.ZodLiteral<"COLLECTION_DEFERRED">>;
33
- }, z.core.$strict>>;
34
- export type RevisionCollectionResult = z.infer<typeof RevisionCollectionResultSchema>;
35
- export type RevisionCollectionDependencies = Readonly<{
36
- state: LifecycleStateStore;
37
- inventory: LifecycleStateInventoryPort;
38
- transitions: (scope: ScopeReference) => LifecycleTransitionStore;
39
- leases: RevisionLeaseStore;
40
- artifacts: RevisionArtifactStore;
41
- retention: RevisionRetentionStore;
42
- mutations: GenerationMutationCoordinator;
43
- sha256: Sha256;
44
- clock?: LifecycleClock;
45
- }>;
46
- /** Closed-world mark/sweep. Physical deletion is deliberately the last action. */
47
- export declare function createRevisionCollectionService(dependencies: RevisionCollectionDependencies): Readonly<{
48
- collect: (input: Readonly<{
49
- policy?: Partial<RevisionCollectionPolicy>;
50
- }>, signal: AbortSignal) => Promise<RevisionCollectionResult>;
51
- }>;
52
- export type { RetainedArtifactRef, ScopeContext, ScopeReference, ContentStoreKey };