@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,83 +0,0 @@
1
- import { lstat, readdir, readFile } from "node:fs/promises";
2
- import { join } from "node:path";
3
- import { assertLayoutRoot } from "../filesystem/content-store-layout.js";
4
- import { removePreparedTree } from "../filesystem/prepared-tree-cleanup.js";
5
- import { classifyProcessIdentity } from "../process/process-identity.js";
6
- function parseSidecar(input) {
7
- if (input === null || typeof input !== "object" || Array.isArray(input))
8
- throw new Error("owner sidecar is invalid");
9
- const value = input;
10
- if (Object.keys(value).length !== 6 || value.protocol !== "pi-plugin-host-staging-owner" || value.version !== 1 || typeof value.pid !== "number" || !Number.isSafeInteger(value.pid) || value.pid <= 0 || typeof value.startToken !== "string" || !/^(?:\d+|fallback:\d+)$/.test(value.startToken) || typeof value.nonce !== "string" || !/^[0-9a-f]{32}$/.test(value.nonce) || typeof value.createdAt !== "number" || !Number.isSafeInteger(value.createdAt) || value.createdAt < 0)
11
- throw new Error("owner sidecar is invalid");
12
- return value;
13
- }
14
- export function createRecoveryArtifactScanner(layout) {
15
- const capabilities = new WeakMap();
16
- async function scanRoot(root, parent, kind) {
17
- await assertLayoutRoot(layout, kind === "staging" ? "stagingRoot" : "projectionStagingRoot", "scanRecoveryArtifacts");
18
- const result = [];
19
- let names;
20
- try {
21
- names = await readdir(root);
22
- }
23
- catch {
24
- return result;
25
- }
26
- for (const name of names.sort()) {
27
- if (!/^[0-9a-f]{32}$/.test(name))
28
- continue;
29
- const path = join(root, name);
30
- const sidecarPath = `${path}.owner`;
31
- try {
32
- const stat = await lstat(path);
33
- const sidecar = parseSidecar(JSON.parse(await readFile(sidecarPath, "utf8")));
34
- if (!stat.isDirectory() || stat.isSymbolicLink())
35
- continue;
36
- const status = classifyProcessIdentity({ pid: sidecar.pid, startToken: sidecar.startToken });
37
- const capability = Object.freeze({});
38
- const candidate = Object.freeze({ kind, key: name, owner: status, createdAt: sidecar.createdAt, capability });
39
- capabilities.set(capability, { candidate, root: path, identity: { dev: stat.dev, ino: stat.ino }, parent, sidecar });
40
- result.push(candidate);
41
- }
42
- catch {
43
- // Missing or malformed ownership evidence is intentionally invisible to
44
- // deletion; the caller's complete scan still reports it as incomplete.
45
- }
46
- }
47
- return result;
48
- }
49
- async function scan(signal) {
50
- if (signal.aborted)
51
- throw signal.reason;
52
- const candidates = [
53
- ...await scanRoot(layout.stagingRoot, layout.rootCapabilities.stagingRoot, "staging"),
54
- ...await scanRoot(layout.projectionStagingRoot, layout.rootCapabilities.projectionStagingRoot, "projection-staging"),
55
- ].sort((left, right) => left.kind.localeCompare(right.kind) || left.key.localeCompare(right.key));
56
- return { complete: true, candidates };
57
- }
58
- async function remove(candidate, signal) {
59
- if (signal.aborted)
60
- throw signal.reason;
61
- const record = candidate !== null && typeof candidate === "object" ? capabilities.get(candidate.capability) : undefined;
62
- if (record === undefined || record.candidate !== candidate)
63
- throw new Error("recovery artifact capability is not owned by this scanner");
64
- if (candidate.owner !== "dead")
65
- throw new Error("recovery artifact owner is not proven dead");
66
- const current = await lstat(record.root).catch((error) => { if (error.code === "ENOENT")
67
- return undefined; throw error; });
68
- if (current === undefined)
69
- return "already-absent";
70
- if (!current.isDirectory() || current.isSymbolicLink() || current.dev !== record.identity.dev || current.ino !== record.identity.ino)
71
- throw new Error("recovery artifact identity changed");
72
- const sidecar = parseSidecar(JSON.parse(await readFile(`${record.root}.owner`, "utf8")));
73
- if (sidecar.pid !== record.sidecar.pid || sidecar.startToken !== record.sidecar.startToken || sidecar.nonce !== record.sidecar.nonce || classifyProcessIdentity({ pid: sidecar.pid, startToken: sidecar.startToken }) !== "dead")
74
- throw new Error("recovery artifact ownership changed");
75
- await assertLayoutRoot(layout, record.candidate.kind === "staging" ? "stagingRoot" : "projectionStagingRoot", "removeRecoveryArtifact");
76
- const result = await removePreparedTree(record.root, record.identity, record.parent);
77
- await import("node:fs/promises").then(({ unlink }) => unlink(`${record.root}.owner`).catch((error) => { if (error.code !== "ENOENT")
78
- throw error; }));
79
- return result;
80
- }
81
- return Object.freeze({ scan, remove });
82
- }
83
- //# sourceMappingURL=recovery-artifact-scanner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recovery-artifact-scanner.js","sourceRoot":"","sources":["../../../src/infrastructure/recovery/recovery-artifact-scanner.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { ContentStoreLayout } from "../filesystem/content-store-layout.js";
2
- import type { RevisionArtifactStore } from "../../application/ports/revision-artifact-store.js";
3
- export declare function createRevisionArtifactStore(layout: ContentStoreLayout, sha256: (bytes: Uint8Array) => Uint8Array): RevisionArtifactStore;
@@ -1,178 +0,0 @@
1
- import { lstat, readdir, unlink } from "node:fs/promises";
2
- import { basename, join } from "node:path";
3
- import { assertLayoutRoot } from "../filesystem/content-store-layout.js";
4
- import { inspectPublishedRevision } from "../filesystem/immutable-content-store.js";
5
- import { inspectPublishedProjection } from "../filesystem/runtime-root-store.js";
6
- import { removePreparedTree } from "../filesystem/prepared-tree-cleanup.js";
7
- import { ContentStoreIdentitySchema, MarketplaceStoreKeySchema, PluginStoreKeySchema } from "../../domain/content-store.js";
8
- import { ProjectionRootRefSchema } from "../../domain/state/references.js";
9
- export function createRevisionArtifactStore(layout, sha256) {
10
- const owned = new WeakMap();
11
- async function scanStore(root, parent, kind) {
12
- await assertLayoutRoot(layout, kind === "plugin" ? "pluginStoreRoot" : "marketplaceStoreRoot", "scanRevisionArtifacts");
13
- const artifacts = [];
14
- const names = (await readdir(root)).sort();
15
- const referencedPayloads = new Set();
16
- let complete = true;
17
- for (const name of names) {
18
- if (!/^[0-9a-f]{64}$/.test(name))
19
- continue;
20
- const publication = join(root, name);
21
- try {
22
- const publicationStat = await lstat(publication);
23
- if ((!publicationStat.isDirectory() && !publicationStat.isFile()) || publicationStat.isSymbolicLink()) {
24
- complete = false;
25
- continue;
26
- }
27
- const inspected = await inspectPublishedRevision(publication, sha256);
28
- const payloadStat = await lstat(inspected.root);
29
- if (!payloadStat.isDirectory() || payloadStat.isSymbolicLink()) {
30
- complete = false;
31
- continue;
32
- }
33
- const identity = ContentStoreIdentitySchema.parse(inspected.identity);
34
- if (identity.kind !== kind) {
35
- complete = false;
36
- continue;
37
- }
38
- const reference = kind === "plugin"
39
- ? identity.kind === "plugin" ? { kind: "plugin", key: PluginStoreKeySchema.parse(identity.key) } : undefined
40
- : identity.kind === "marketplace" ? { kind: "marketplace", key: MarketplaceStoreKeySchema.parse(identity.key) } : undefined;
41
- if (reference === undefined) {
42
- complete = false;
43
- continue;
44
- }
45
- if (inspected.root !== publication)
46
- referencedPayloads.add(basename(inspected.root));
47
- const capability = Object.freeze({});
48
- const candidate = Object.freeze({ kind, key: name, reference, capability });
49
- owned.set(capability, {
50
- candidate,
51
- publication,
52
- publicationIdentity: { dev: publicationStat.dev, ino: publicationStat.ino },
53
- payload: inspected.root,
54
- payloadIdentity: { dev: payloadStat.dev, ino: payloadStat.ino },
55
- parent,
56
- });
57
- artifacts.push(candidate);
58
- }
59
- catch {
60
- complete = false;
61
- }
62
- }
63
- for (const name of names) {
64
- if (name.startsWith(".payload-") && referencedPayloads.has(name))
65
- continue;
66
- if (/^[0-9a-f]{64}$/.test(name))
67
- continue;
68
- // Hidden, unreferenced payloads can be crash residue or an in-flight
69
- // publication. They are never exposed as revisions and conservatively
70
- // make this collection scan incomplete until recovery proves ownership.
71
- complete = false;
72
- }
73
- return { artifacts, complete };
74
- }
75
- async function scanProjections() {
76
- await assertLayoutRoot(layout, "generatedRoot", "scanRevisionArtifacts");
77
- const artifacts = [];
78
- const names = (await readdir(layout.generatedRoot)).sort();
79
- const referencedPayloads = new Set();
80
- let complete = true;
81
- for (const name of names) {
82
- if (!/^[0-9a-f]{64}$/.test(name))
83
- continue;
84
- const path = join(layout.generatedRoot, name);
85
- try {
86
- const publicationStat = await lstat(path);
87
- if ((!publicationStat.isDirectory() && !publicationStat.isFile()) || publicationStat.isSymbolicLink()) {
88
- complete = false;
89
- continue;
90
- }
91
- const inspected = await inspectPublishedProjection(path, sha256);
92
- const payloadStat = await lstat(inspected.root);
93
- if (!payloadStat.isDirectory() || payloadStat.isSymbolicLink()) {
94
- complete = false;
95
- continue;
96
- }
97
- const reference = { kind: "projection", reference: ProjectionRootRefSchema.parse(inspected.metadata.projectionRef) };
98
- if (inspected.root !== path)
99
- referencedPayloads.add(basename(inspected.root));
100
- const capability = Object.freeze({});
101
- const candidate = Object.freeze({ kind: "projection", key: name, reference, capability });
102
- owned.set(capability, {
103
- candidate,
104
- publication: path,
105
- publicationIdentity: { dev: publicationStat.dev, ino: publicationStat.ino },
106
- payload: inspected.root,
107
- payloadIdentity: { dev: payloadStat.dev, ino: payloadStat.ino },
108
- parent: layout.rootCapabilities.generatedRoot,
109
- });
110
- artifacts.push(candidate);
111
- }
112
- catch {
113
- complete = false;
114
- }
115
- }
116
- for (const name of names) {
117
- if (name === ".staging" || /^[0-9a-f]{64}$/.test(name) || name.startsWith(".payload-") && referencedPayloads.has(name))
118
- continue;
119
- complete = false;
120
- }
121
- return { artifacts, complete };
122
- }
123
- async function scan(signal) {
124
- if (signal.aborted)
125
- throw signal.reason;
126
- const marketplace = await scanStore(layout.marketplaceStoreRoot, layout.rootCapabilities.marketplaceStoreRoot, "marketplace");
127
- const plugin = await scanStore(layout.pluginStoreRoot, layout.rootCapabilities.pluginStoreRoot, "plugin");
128
- const projections = await scanProjections();
129
- return {
130
- complete: marketplace.complete && plugin.complete && projections.complete,
131
- artifacts: [...marketplace.artifacts, ...plugin.artifacts, ...projections.artifacts]
132
- .sort((a, b) => a.kind.localeCompare(b.kind) || a.key.localeCompare(b.key)),
133
- };
134
- }
135
- async function remove(candidate, signal) {
136
- if (signal.aborted)
137
- throw signal.reason;
138
- const record = owned.get(candidate.capability);
139
- if (record === undefined || record.candidate !== candidate)
140
- throw new Error("revision artifact capability is not owned");
141
- const current = await lstat(record.publication).catch((error) => {
142
- if (error.code === "ENOENT")
143
- return undefined;
144
- throw error;
145
- });
146
- if (current === undefined)
147
- return "already-absent";
148
- if (current.isSymbolicLink() || current.dev !== record.publicationIdentity.dev || current.ino !== record.publicationIdentity.ino) {
149
- throw new Error("revision artifact identity changed");
150
- }
151
- await assertLayoutRoot(layout, record.candidate.kind === "plugin" ? "pluginStoreRoot" : record.candidate.kind === "marketplace" ? "marketplaceStoreRoot" : "generatedRoot", "removeRevisionArtifact");
152
- if (record.candidate.kind === "projection") {
153
- const inspected = await inspectPublishedProjection(record.publication, sha256);
154
- if (inspected.root !== record.payload)
155
- throw new Error("revision artifact identity changed");
156
- const payloadStat = await lstat(record.payload);
157
- if (!payloadStat.isDirectory() || payloadStat.isSymbolicLink() || payloadStat.dev !== record.payloadIdentity.dev || payloadStat.ino !== record.payloadIdentity.ino) {
158
- throw new Error("revision artifact payload identity changed");
159
- }
160
- if (record.publication !== record.payload)
161
- await unlink(record.publication);
162
- return removePreparedTree(record.payload, record.payloadIdentity, record.parent);
163
- }
164
- const inspected = await inspectPublishedRevision(record.publication, sha256);
165
- if (record.candidate.reference.kind === "projection" || inspected.identity.key !== record.candidate.reference.key || inspected.root !== record.payload) {
166
- throw new Error("revision artifact identity changed");
167
- }
168
- const payloadStat = await lstat(record.payload);
169
- if (!payloadStat.isDirectory() || payloadStat.isSymbolicLink() || payloadStat.dev !== record.payloadIdentity.dev || payloadStat.ino !== record.payloadIdentity.ino) {
170
- throw new Error("revision artifact payload identity changed");
171
- }
172
- if (record.publication !== record.payload)
173
- await unlink(record.publication);
174
- return removePreparedTree(record.payload, record.payloadIdentity, record.parent);
175
- }
176
- return Object.freeze({ scan, remove });
177
- }
178
- //# sourceMappingURL=revision-artifact-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"revision-artifact-store.js","sourceRoot":"","sources":["../../../src/infrastructure/recovery/revision-artifact-store.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { type RevisionRetentionStore } from "../../application/ports/revision-retention-store.js";
2
- export declare function createSqliteRevisionRetention(options: Readonly<{
3
- hostRoot: string;
4
- verifyLocalFilesystem?: (root: string) => Promise<void>;
5
- }>): Promise<RevisionRetentionStore & Readonly<{
6
- close(): Promise<void>;
7
- }>>;
@@ -1,73 +0,0 @@
1
- import { join } from "node:path";
2
- import { RetainedArtifactRefSchema } from "../../application/ports/revision-artifact-store.js";
3
- import { RevisionRetentionSnapshotSchema } from "../../application/ports/revision-retention-store.js";
4
- import { EpochMillisecondsSchema } from "../../application/ports/lifecycle-clock.js";
5
- import { ensurePrivateLockRoot, verifyLocalFilesystemCapability } from "../state/local-lock-filesystem.js";
6
- import { openSqliteDatabase } from "../state/sqlite-open.js";
7
- function key(ref) { return JSON.stringify(ref); }
8
- function abort(signal) { if (signal.aborted)
9
- throw signal.reason; }
10
- export async function createSqliteRevisionRetention(options) {
11
- const root = await ensurePrivateLockRoot(join(options.hostRoot, "recovery", "retention", "v1"));
12
- await (options.verifyLocalFilesystem ?? verifyLocalFilesystemCapability)(root);
13
- const path = join(root, "retention.sqlite");
14
- const handle = await openSqliteDatabase({
15
- path,
16
- signal: new AbortController().signal,
17
- configure(database) {
18
- database.exec("PRAGMA journal_mode = DELETE; PRAGMA synchronous = FULL; PRAGMA foreign_keys = ON; PRAGMA trusted_schema = OFF;");
19
- },
20
- initialize(database) {
21
- database.exec("CREATE TABLE retention_marks (reference TEXT PRIMARY KEY NOT NULL, first_unreferenced_at INTEGER NOT NULL) STRICT;");
22
- },
23
- validate(database) {
24
- const rows = database.prepare("SELECT name, type FROM sqlite_master WHERE name NOT LIKE 'sqlite_%' ORDER BY name").all();
25
- if (JSON.stringify(rows) !== JSON.stringify([{ name: "retention_marks", type: "table" }]))
26
- throw new Error("revision retention schema is invalid");
27
- },
28
- });
29
- const database = handle.database;
30
- const store = {
31
- async reconcile(request, signal) {
32
- abort(signal);
33
- const at = EpochMillisecondsSchema.parse(request.completeScanAt);
34
- const referenced = new Set(request.referenced.map((ref) => key(RetainedArtifactRefSchema.parse(ref))));
35
- const observed = new Map(request.observed.map((ref) => [key(RetainedArtifactRefSchema.parse(ref)), RetainedArtifactRefSchema.parse(ref)]));
36
- database.exec("BEGIN IMMEDIATE");
37
- try {
38
- const rows = database.prepare("SELECT reference, first_unreferenced_at FROM retention_marks ORDER BY reference").all();
39
- for (const row of rows)
40
- if (referenced.has(row.reference) || !observed.has(row.reference))
41
- database.prepare("DELETE FROM retention_marks WHERE reference = ?").run(row.reference);
42
- for (const [ref] of observed)
43
- if (!referenced.has(ref))
44
- database.prepare("INSERT OR IGNORE INTO retention_marks(reference, first_unreferenced_at) VALUES (?, ?)").run(ref, at);
45
- database.exec("COMMIT");
46
- }
47
- catch (error) {
48
- try {
49
- database.exec("ROLLBACK");
50
- }
51
- catch { /* preserve primary */ }
52
- throw error;
53
- }
54
- const marks = database.prepare("SELECT reference, first_unreferenced_at FROM retention_marks ORDER BY reference").all().map((row) => ({ reference: RetainedArtifactRefSchema.parse(JSON.parse(row.reference)), firstUnreferencedAt: row.first_unreferenced_at }));
55
- return RevisionRetentionSnapshotSchema.parse({ complete: true, marks });
56
- },
57
- async markRemoved(reference, _at, signal) {
58
- abort(signal);
59
- database.prepare("DELETE FROM retention_marks WHERE reference = ?").run(key(RetainedArtifactRefSchema.parse(reference)));
60
- },
61
- };
62
- let closed = false;
63
- return Object.freeze({
64
- ...store,
65
- async close() {
66
- if (closed)
67
- return;
68
- closed = true;
69
- handle.close();
70
- },
71
- });
72
- }
73
- //# sourceMappingURL=sqlite-revision-retention.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite-revision-retention.js","sourceRoot":"","sources":["../../../src/infrastructure/recovery/sqlite-revision-retention.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import { z } from "zod";
2
- import { type ScopeReference } from "../../domain/state/scope.js";
3
- import { type PendingTransitionRef } from "../../domain/state/references.js";
4
- import { type LifecycleTransitionStore } from "../../application/ports/lifecycle-transition-store.js";
5
- import { type RecoveryFilesystem } from "./local-recovery-filesystem.js";
6
- declare const PROTOCOL = "pi-plugin-host-recovery-journal";
7
- export type OwnerStatus = "live" | "dead" | "unknown" | "released";
8
- declare const OwnerSchema: z.ZodObject<{
9
- pid: z.ZodNumber;
10
- startToken: z.ZodString;
11
- nonce: z.ZodString;
12
- }, z.core.$strict>;
13
- export type SqliteTransitionJournalOptions = Readonly<{
14
- filesystem: RecoveryFilesystem;
15
- }>;
16
- export type SqliteTransitionJournal = LifecycleTransitionStore & Readonly<{
17
- ownerStatus(scope: ScopeReference, reference: PendingTransitionRef, signal: AbortSignal): Promise<OwnerStatus>;
18
- releaseOwnership(request: Readonly<{
19
- scope: ScopeReference;
20
- reference: PendingTransitionRef;
21
- }>, signal: AbortSignal): Promise<"released" | "retained" | "missing">;
22
- }>;
23
- export declare function createSqliteTransitionJournal(options: SqliteTransitionJournalOptions): SqliteTransitionJournal;
24
- export declare function createNodeTransitionJournal(options: Readonly<{
25
- hostRoot: string;
26
- verifyLocalFilesystem?: (root: string) => Promise<void>;
27
- }>): Promise<SqliteTransitionJournal>;
28
- export { OwnerSchema, PROTOCOL as RecoveryJournalProtocol };