@nklisch/pi-enhanced 0.1.10 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/node_modules/@nklisch/pi-clearance/native/clearance-core.darwin-arm64.node +0 -0
  3. package/node_modules/@nklisch/pi-clearance/native/clearance-core.darwin-x64.node +0 -0
  4. package/node_modules/@nklisch/pi-clearance/native/clearance-core.linux-arm64-gnu.node +0 -0
  5. package/node_modules/@nklisch/pi-clearance/native/clearance-core.win32-x64-msvc.node +0 -0
  6. package/node_modules/@nklisch/pi-plugins/README.md +2 -2
  7. package/node_modules/@nklisch/pi-plugins/dist/application/adoption-contract.d.ts +0 -6
  8. package/node_modules/@nklisch/pi-plugins/dist/application/agent-orientation.d.ts +66 -0
  9. package/node_modules/@nklisch/pi-plugins/dist/application/agent-orientation.js +223 -0
  10. package/node_modules/@nklisch/pi-plugins/dist/application/agent-orientation.js.map +1 -0
  11. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-trust-continuity.d.ts +1 -2
  12. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-trust-continuity.js +15 -33
  13. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-trust-continuity.js.map +1 -1
  14. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.d.ts +1 -2
  15. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.js +17 -20
  16. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.js.map +1 -1
  17. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.d.ts +3 -3
  18. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.js +1 -1
  19. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.js.map +1 -1
  20. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-service.d.ts +2 -2
  21. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-service.js +5 -5
  22. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-service.js.map +1 -1
  23. package/node_modules/@nklisch/pi-plugins/dist/application/convergence-service.d.ts +98 -0
  24. package/node_modules/@nklisch/pi-plugins/dist/application/convergence-service.js +270 -0
  25. package/node_modules/@nklisch/pi-plugins/dist/application/convergence-service.js.map +1 -0
  26. package/node_modules/@nklisch/pi-plugins/dist/application/exact-trust-grant-service.d.ts +3 -5
  27. package/node_modules/@nklisch/pi-plugins/dist/application/exact-trust-grant-service.js +18 -20
  28. package/node_modules/@nklisch/pi-plugins/dist/application/exact-trust-grant-service.js.map +1 -1
  29. package/node_modules/@nklisch/pi-plugins/dist/application/hook-visibility-service.d.ts +1 -2
  30. package/node_modules/@nklisch/pi-plugins/dist/application/hook-visibility-service.js +3 -1
  31. package/node_modules/@nklisch/pi-plugins/dist/application/hook-visibility-service.js.map +1 -1
  32. package/node_modules/@nklisch/pi-plugins/dist/application/host-observation-contract.d.ts +25 -1
  33. package/node_modules/@nklisch/pi-plugins/dist/application/host-observation-contract.js +5 -1
  34. package/node_modules/@nklisch/pi-plugins/dist/application/host-observation-contract.js.map +1 -1
  35. package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-service.d.ts +1 -2
  36. package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-service.js +3 -1
  37. package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-service.js.map +1 -1
  38. package/node_modules/@nklisch/pi-plugins/dist/application/inspection-contract.d.ts +0 -4
  39. package/node_modules/@nklisch/pi-plugins/dist/application/installed-revision-descriptor.d.ts +0 -4
  40. package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.d.ts +0 -9
  41. package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.js +1 -2
  42. package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.js.map +1 -1
  43. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-inspection-contract.d.ts +0 -2
  44. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.d.ts +4 -7
  45. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.js +88 -122
  46. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.js.map +1 -1
  47. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-registration-service.d.ts +1 -2
  48. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-registration-service.js +56 -94
  49. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-registration-service.js.map +1 -1
  50. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-policy-service.d.ts +1 -2
  51. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-policy-service.js +7 -6
  52. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-policy-service.js.map +1 -1
  53. package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.d.ts +3 -4
  54. package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.js +8 -11
  55. package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.js.map +1 -1
  56. package/node_modules/@nklisch/pi-plugins/dist/application/native-candidate-inspection.js +1 -1
  57. package/node_modules/@nklisch/pi-plugins/dist/application/native-candidate-inspection.js.map +1 -1
  58. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-contract.d.ts +7 -6
  59. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-contract.js +4 -5
  60. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-contract.js.map +1 -1
  61. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-dispatcher.js +2 -1
  62. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-dispatcher.js.map +1 -1
  63. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-error.d.ts +1 -1
  64. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-error.js +2 -2
  65. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-error.js.map +1 -1
  66. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-help.d.ts +5 -3
  67. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-install.d.ts +1 -1
  68. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-lifecycle.js +4 -1
  69. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-lifecycle.js.map +1 -1
  70. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-mutation-dispatch.js +13 -21
  71. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-mutation-dispatch.js.map +1 -1
  72. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-operation.d.ts +122 -1124
  73. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.d.ts +8 -4
  74. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.js +4 -3
  75. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.js.map +1 -1
  76. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-progress.d.ts +6 -4
  77. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-read-dispatch.js +1 -1
  78. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-read-dispatch.js.map +1 -1
  79. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.d.ts +30 -7
  80. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.js +4 -3
  81. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.js.map +1 -1
  82. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-safe-projection.d.ts +0 -6
  83. package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.d.ts +49 -49
  84. package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.js +10 -10
  85. package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.js.map +1 -1
  86. package/node_modules/@nklisch/pi-plugins/dist/application/native-failure-presenter.d.ts +0 -5
  87. package/node_modules/@nklisch/pi-plugins/dist/application/native-failure-presenter.js +13 -11
  88. package/node_modules/@nklisch/pi-plugins/dist/application/native-failure-presenter.js.map +1 -1
  89. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-contract.d.ts +55 -70
  90. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-contract.js +4 -3
  91. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-contract.js.map +1 -1
  92. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-service.js +30 -11
  93. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-service.js.map +1 -1
  94. package/node_modules/@nklisch/pi-plugins/dist/application/native-installed-inspection.js +46 -35
  95. package/node_modules/@nklisch/pi-plugins/dist/application/native-installed-inspection.js.map +1 -1
  96. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.d.ts +362 -1284
  97. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.js +11 -12
  98. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.js.map +1 -1
  99. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-service.d.ts +1 -1
  100. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-service.js +4 -26
  101. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-service.js.map +1 -1
  102. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-session.js +1 -1
  103. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-session.js.map +1 -1
  104. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation.d.ts +79 -235
  105. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation.js +26 -41
  106. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation.js.map +1 -1
  107. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.d.ts +1 -1
  108. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.js +23 -68
  109. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.js.map +1 -1
  110. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-target.d.ts +2 -2
  111. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-target.js +0 -18
  112. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-target.js.map +1 -1
  113. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-update.d.ts +0 -4
  114. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-update.js +0 -2
  115. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-update.js.map +1 -1
  116. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.d.ts +2 -5
  117. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.js +5 -5
  118. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.js.map +1 -1
  119. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-policy-service.d.ts +1 -2
  120. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-policy-service.js +4 -2
  121. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-policy-service.js.map +1 -1
  122. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-contract.d.ts +30 -57
  123. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-contract.js +9 -32
  124. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-contract.js.map +1 -1
  125. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.d.ts +57 -75
  126. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.js +293 -583
  127. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.js.map +1 -1
  128. package/node_modules/@nklisch/pi-plugins/dist/application/ports/artifact-gc.d.ts +21 -0
  129. package/node_modules/@nklisch/pi-plugins/dist/application/ports/artifact-gc.js +2 -0
  130. package/node_modules/@nklisch/pi-plugins/dist/application/ports/artifact-gc.js.map +1 -0
  131. package/node_modules/@nklisch/pi-plugins/dist/application/ports/automatic-update-lifecycle.d.ts +5 -6
  132. package/node_modules/@nklisch/pi-plugins/dist/application/ports/installed-plugin-loader.d.ts +0 -4
  133. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-reload.d.ts +80 -13
  134. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-reload.js +6 -3
  135. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-reload.js.map +1 -1
  136. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mcp-runtime.d.ts +0 -16
  137. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-control-input.d.ts +1 -1
  138. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-inspection-evidence.d.ts +4 -4
  139. package/node_modules/@nklisch/pi-plugins/dist/application/ports/pending-data-deletion.d.ts +26 -0
  140. package/node_modules/@nklisch/pi-plugins/dist/application/ports/pending-data-deletion.js +8 -0
  141. package/node_modules/@nklisch/pi-plugins/dist/application/ports/pending-data-deletion.js.map +1 -0
  142. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-contract.d.ts +12 -9
  143. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-contract.js +2 -2
  144. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-contract.js.map +1 -1
  145. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-planner.js +1 -10
  146. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-planner.js.map +1 -1
  147. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-projection.js +1 -1
  148. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-projection.js.map +1 -1
  149. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-service.d.ts +1 -2
  150. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-service.js +6 -10
  151. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-service.js.map +1 -1
  152. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-state.d.ts +2 -4
  153. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-state.js +9 -8
  154. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-state.js.map +1 -1
  155. package/node_modules/@nklisch/pi-plugins/dist/application/state-contract.d.ts +16 -32
  156. package/node_modules/@nklisch/pi-plugins/dist/application/state-transaction.d.ts +48 -0
  157. package/node_modules/@nklisch/pi-plugins/dist/application/state-transaction.js +107 -0
  158. package/node_modules/@nklisch/pi-plugins/dist/application/state-transaction.js.map +1 -0
  159. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.d.ts +1725 -4546
  160. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.js +3 -22
  161. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.js.map +1 -1
  162. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-lifecycle.d.ts +1 -3
  163. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-lifecycle.js +1 -5
  164. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-lifecycle.js.map +1 -1
  165. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-service.js +33 -122
  166. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-service.js.map +1 -1
  167. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-session.d.ts +0 -20
  168. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-session.js +1 -23
  169. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-session.js.map +1 -1
  170. package/node_modules/@nklisch/pi-plugins/dist/application/update-contract.d.ts +0 -7
  171. package/node_modules/@nklisch/pi-plugins/dist/application/update-contract.js +1 -1
  172. package/node_modules/@nklisch/pi-plugins/dist/application/update-contract.js.map +1 -1
  173. package/node_modules/@nklisch/pi-plugins/dist/application/update-notification-service.d.ts +1 -2
  174. package/node_modules/@nklisch/pi-plugins/dist/application/update-notification-service.js +5 -3
  175. package/node_modules/@nklisch/pi-plugins/dist/application/update-notification-service.js.map +1 -1
  176. package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-lease-state.d.ts +1 -2
  177. package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-lease-state.js +6 -4
  178. package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-lease-state.js.map +1 -1
  179. package/node_modules/@nklisch/pi-plugins/dist/composition/agent-orientation-facts.d.ts +42 -0
  180. package/node_modules/@nklisch/pi-plugins/dist/composition/agent-orientation-facts.js +223 -0
  181. package/node_modules/@nklisch/pi-plugins/dist/composition/agent-orientation-facts.js.map +1 -0
  182. package/node_modules/@nklisch/pi-plugins/dist/composition/automatic-update-lifecycle-adapter.js +12 -18
  183. package/node_modules/@nklisch/pi-plugins/dist/composition/automatic-update-lifecycle-adapter.js.map +1 -1
  184. package/node_modules/@nklisch/pi-plugins/dist/composition/background-update-coordinator.d.ts +3 -0
  185. package/node_modules/@nklisch/pi-plugins/dist/composition/background-update-coordinator.js +10 -0
  186. package/node_modules/@nklisch/pi-plugins/dist/composition/background-update-coordinator.js.map +1 -1
  187. package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.d.ts +3 -7
  188. package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.js +64 -153
  189. package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.js.map +1 -1
  190. package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-discovery-services.d.ts +2 -3
  191. package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-discovery-services.js.map +1 -1
  192. package/node_modules/@nklisch/pi-plugins/dist/composition/create-mcp-runtime.d.ts +3 -7
  193. package/node_modules/@nklisch/pi-plugins/dist/composition/create-mcp-runtime.js +4 -8
  194. package/node_modules/@nklisch/pi-plugins/dist/composition/create-mcp-runtime.js.map +1 -1
  195. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-inspection-service.d.ts +2 -2
  196. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-inspection-service.js +1 -1
  197. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-inspection-service.js.map +1 -1
  198. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-lifecycle-operation-service.d.ts +2 -5
  199. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-lifecycle-operation-service.js +70 -1
  200. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-lifecycle-operation-service.js.map +1 -1
  201. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-update-management-service.d.ts +1 -2
  202. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-update-management-service.js.map +1 -1
  203. package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.d.ts +12 -1
  204. package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.js +177 -66
  205. package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.js.map +1 -1
  206. package/node_modules/@nklisch/pi-plugins/dist/composition/create-skill-hook-runtime.d.ts +2 -4
  207. package/node_modules/@nklisch/pi-plugins/dist/composition/create-skill-hook-runtime.js +24 -43
  208. package/node_modules/@nklisch/pi-plugins/dist/composition/create-skill-hook-runtime.js.map +1 -1
  209. package/node_modules/@nklisch/pi-plugins/dist/composition/create-trusted-installation-service.d.ts +1 -2
  210. package/node_modules/@nklisch/pi-plugins/dist/composition/create-trusted-installation-service.js.map +1 -1
  211. package/node_modules/@nklisch/pi-plugins/dist/composition/host-status-service.d.ts +1 -1
  212. package/node_modules/@nklisch/pi-plugins/dist/composition/host-status-service.js +4 -4
  213. package/node_modules/@nklisch/pi-plugins/dist/composition/host-status-service.js.map +1 -1
  214. package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-evidence.d.ts +3 -3
  215. package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-evidence.js +6 -6
  216. package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-evidence.js.map +1 -1
  217. package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.d.ts +1 -1
  218. package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.js +4 -5
  219. package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.js.map +1 -1
  220. package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-plugin-host-contract.d.ts +5 -0
  221. package/node_modules/@nklisch/pi-plugins/dist/composition/plugin-host-paths.d.ts +1 -0
  222. package/node_modules/@nklisch/pi-plugins/dist/composition/plugin-host-paths.js +6 -0
  223. package/node_modules/@nklisch/pi-plugins/dist/composition/plugin-host-paths.js.map +1 -1
  224. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.d.ts +15 -0
  225. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.js +228 -154
  226. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.js.map +1 -1
  227. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-participant-qualification.d.ts +7 -1
  228. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-participant-qualification.js +17 -4
  229. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-participant-qualification.js.map +1 -1
  230. package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility-policy.d.ts +0 -4
  231. package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility.d.ts +0 -6
  232. package/node_modules/@nklisch/pi-plugins/dist/domain/error-contract.d.ts +0 -6
  233. package/node_modules/@nklisch/pi-plugins/dist/domain/error-contract.js +0 -2
  234. package/node_modules/@nklisch/pi-plugins/dist/domain/error-contract.js.map +1 -1
  235. package/node_modules/@nklisch/pi-plugins/dist/domain/errors.d.ts +0 -6
  236. package/node_modules/@nklisch/pi-plugins/dist/domain/marketplace.d.ts +0 -2
  237. package/node_modules/@nklisch/pi-plugins/dist/domain/state/config-state.d.ts +2 -6
  238. package/node_modules/@nklisch/pi-plugins/dist/domain/state/installed-state.d.ts +4 -4
  239. package/node_modules/@nklisch/pi-plugins/dist/domain/state/installed-state.js +5 -7
  240. package/node_modules/@nklisch/pi-plugins/dist/domain/state/installed-state.js.map +1 -1
  241. package/node_modules/@nklisch/pi-plugins/dist/domain/state/project-state.d.ts +2 -4
  242. package/node_modules/@nklisch/pi-plugins/dist/domain/state/references.d.ts +1 -8
  243. package/node_modules/@nklisch/pi-plugins/dist/domain/state/references.js +0 -9
  244. package/node_modules/@nklisch/pi-plugins/dist/domain/state/references.js.map +1 -1
  245. package/node_modules/@nklisch/pi-plugins/dist/domain/state/registry.d.ts +4 -8
  246. package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.d.ts +5 -13
  247. package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.js +2 -3
  248. package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.js.map +1 -1
  249. package/node_modules/@nklisch/pi-plugins/dist/index.d.ts +16 -38
  250. package/node_modules/@nklisch/pi-plugins/dist/index.js +8 -22
  251. package/node_modules/@nklisch/pi-plugins/dist/index.js.map +1 -1
  252. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/cleanup/pending-data-deletion.d.ts +8 -0
  253. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/cleanup/pending-data-deletion.js +112 -0
  254. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/cleanup/pending-data-deletion.js.map +1 -0
  255. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/artifact-gc.d.ts +17 -0
  256. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/artifact-gc.js +143 -0
  257. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/artifact-gc.js.map +1 -0
  258. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/create-node-convergence.d.ts +16 -0
  259. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/create-node-convergence.js +14 -0
  260. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/create-node-convergence.js.map +1 -0
  261. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/immutable-content-store.d.ts +0 -8
  262. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/immutable-content-store.js +1 -1
  263. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/immutable-content-store.js.map +1 -1
  264. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/staging-allocator.d.ts +0 -1
  265. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/staging-allocator.js +1 -24
  266. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/staging-allocator.js.map +1 -1
  267. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/lifecycle-convergence-migration.d.ts +33 -0
  268. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/lifecycle-convergence-migration.js +416 -0
  269. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/lifecycle-convergence-migration.js.map +1 -0
  270. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.d.ts +10 -0
  271. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.js +31 -4
  272. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.js.map +1 -1
  273. package/node_modules/@nklisch/pi-plugins/dist/pi/agent-orientation-publisher.d.ts +17 -0
  274. package/node_modules/@nklisch/pi-plugins/dist/pi/agent-orientation-publisher.js +81 -0
  275. package/node_modules/@nklisch/pi-plugins/dist/pi/agent-orientation-publisher.js.map +1 -0
  276. package/node_modules/@nklisch/pi-plugins/dist/pi/extension.js +8 -3
  277. package/node_modules/@nklisch/pi-plugins/dist/pi/extension.js.map +1 -1
  278. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-control-input.js +0 -2
  279. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-control-input.js.map +1 -1
  280. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-component.js +9 -22
  281. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-component.js.map +1 -1
  282. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-flow.d.ts +2 -2
  283. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.d.ts +2 -2
  284. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.js +7 -7
  285. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.js.map +1 -1
  286. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-controller.js +1 -1
  287. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-controller.js.map +1 -1
  288. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.d.ts +8 -0
  289. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.js +7 -0
  290. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.js.map +1 -1
  291. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-render.js +6 -1
  292. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-render.js.map +1 -1
  293. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-session.js +11 -22
  294. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-session.js.map +1 -1
  295. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-status.d.ts +1 -2
  296. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-status.js +1 -3
  297. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-status.js.map +1 -1
  298. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-operation-view.js +2 -4
  299. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-operation-view.js.map +1 -1
  300. package/node_modules/@nklisch/pi-plugins/dist/pi/native-control-human.js +5 -7
  301. package/node_modules/@nklisch/pi-plugins/dist/pi/native-control-human.js.map +1 -1
  302. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-reload-broker.d.ts +6 -6
  303. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-reload-broker.js +36 -6
  304. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-reload-broker.js.map +1 -1
  305. package/node_modules/@nklisch/pi-plugins/dist/pi/plain-language.js +1 -0
  306. package/node_modules/@nklisch/pi-plugins/dist/pi/plain-language.js.map +1 -1
  307. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-command.js +1 -1
  308. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-command.js.map +1 -1
  309. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/lifecycle-participant.d.ts +0 -2
  310. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/mcp-runtime-binding-provider.d.ts +12 -0
  311. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/mcp-runtime-binding-provider.js +43 -0
  312. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/mcp-runtime-binding-provider.js.map +1 -0
  313. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-package.d.ts +12 -1
  314. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-package.js +27 -10
  315. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-package.js.map +1 -1
  316. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-runtime.js +1 -1
  317. package/node_modules/@nklisch/pi-plugins/package.json +3 -3
  318. package/package.json +6 -3
  319. package/node_modules/@nklisch/pi-plugins/dist/application/generation-mutation-coordinator.d.ts +0 -79
  320. package/node_modules/@nklisch/pi-plugins/dist/application/generation-mutation-coordinator.js +0 -424
  321. package/node_modules/@nklisch/pi-plugins/dist/application/generation-mutation-coordinator.js.map +0 -1
  322. package/node_modules/@nklisch/pi-plugins/dist/application/keyed-mutation-scheduler.d.ts +0 -19
  323. package/node_modules/@nklisch/pi-plugins/dist/application/keyed-mutation-scheduler.js +0 -235
  324. package/node_modules/@nklisch/pi-plugins/dist/application/keyed-mutation-scheduler.js.map +0 -1
  325. package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.d.ts +0 -79
  326. package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.js +0 -236
  327. package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.js.map +0 -1
  328. package/node_modules/@nklisch/pi-plugins/dist/application/mutation-coordination.d.ts +0 -19
  329. package/node_modules/@nklisch/pi-plugins/dist/application/mutation-coordination.js +0 -12
  330. package/node_modules/@nklisch/pi-plugins/dist/application/mutation-coordination.js.map +0 -1
  331. package/node_modules/@nklisch/pi-plugins/dist/application/native-uninstall-cleanup.d.ts +0 -25
  332. package/node_modules/@nklisch/pi-plugins/dist/application/native-uninstall-cleanup.js +0 -39
  333. package/node_modules/@nklisch/pi-plugins/dist/application/native-uninstall-cleanup.js.map +0 -1
  334. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-transition-store.d.ts +0 -5020
  335. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-transition-store.js +0 -129
  336. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-transition-store.js.map +0 -1
  337. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mutation-execution-context.d.ts +0 -9
  338. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mutation-execution-context.js +0 -2
  339. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mutation-execution-context.js.map +0 -1
  340. package/node_modules/@nklisch/pi-plugins/dist/application/ports/recovery-artifacts.d.ts +0 -29
  341. package/node_modules/@nklisch/pi-plugins/dist/application/ports/recovery-artifacts.js +0 -4
  342. package/node_modules/@nklisch/pi-plugins/dist/application/ports/recovery-artifacts.js.map +0 -1
  343. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-lease-store.d.ts +0 -65
  344. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-lease-store.js +0 -16
  345. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-lease-store.js.map +0 -1
  346. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-retention-store.d.ts +0 -43
  347. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-retention-store.js +0 -12
  348. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-retention-store.js.map +0 -1
  349. package/node_modules/@nklisch/pi-plugins/dist/application/ports/scope-lock.d.ts +0 -15
  350. package/node_modules/@nklisch/pi-plugins/dist/application/ports/scope-lock.js +0 -2
  351. package/node_modules/@nklisch/pi-plugins/dist/application/ports/scope-lock.js.map +0 -1
  352. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-contract.d.ts +0 -1078
  353. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-contract.js +0 -126
  354. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-contract.js.map +0 -1
  355. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-service.d.ts +0 -39
  356. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-service.js +0 -170
  357. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-service.js.map +0 -1
  358. package/node_modules/@nklisch/pi-plugins/dist/application/revision-collection-service.d.ts +0 -52
  359. package/node_modules/@nklisch/pi-plugins/dist/application/revision-collection-service.js +0 -228
  360. package/node_modules/@nklisch/pi-plugins/dist/application/revision-collection-service.js.map +0 -1
  361. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/create-node-recovery-adapters.d.ts +0 -23
  362. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/create-node-recovery-adapters.js +0 -82
  363. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/create-node-recovery-adapters.js.map +0 -1
  364. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.d.ts +0 -15
  365. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.js +0 -35
  366. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.js.map +0 -1
  367. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.d.ts +0 -7
  368. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.js +0 -95
  369. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.js.map +0 -1
  370. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/recovery-artifact-scanner.d.ts +0 -3
  371. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/recovery-artifact-scanner.js +0 -83
  372. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/recovery-artifact-scanner.js.map +0 -1
  373. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/revision-artifact-store.d.ts +0 -3
  374. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/revision-artifact-store.js +0 -178
  375. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/revision-artifact-store.js.map +0 -1
  376. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.d.ts +0 -7
  377. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.js +0 -73
  378. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.js.map +0 -1
  379. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.d.ts +0 -28
  380. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.js +0 -445
  381. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.js.map +0 -1
  382. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/keyed-mutation-scheduler.d.ts +0 -5
  383. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/keyed-mutation-scheduler.js +0 -17
  384. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/keyed-mutation-scheduler.js.map +0 -1
  385. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.d.ts +0 -15
  386. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.js +0 -292
  387. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.js.map +0 -1
  388. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/revision-lease-provider.d.ts +0 -18
  389. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/revision-lease-provider.js +0 -180
  390. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/revision-lease-provider.js.map +0 -1
@@ -13,7 +13,6 @@ type AllocationRecord = Readonly<{
13
13
  ino: number;
14
14
  parentCapability: ContentStoreLayout["rootCapabilities"]["stagingRoot"];
15
15
  }>;
16
- export declare function stagingOwnerSidecarPath(root: string): string;
17
16
  /**
18
17
  * Allocate only below the layout's private staging root. The WeakMap is a
19
18
  * capability boundary: copying the visible slot/token fields does not create
@@ -1,10 +1,9 @@
1
1
  import { randomBytes as nodeRandomBytes } from "node:crypto";
2
- import { lstat, mkdir, chmod, realpath, readdir, writeFile, rename, unlink } from "node:fs/promises";
2
+ import { lstat, mkdir, chmod, realpath, readdir } from "node:fs/promises";
3
3
  import { dirname, resolve } from "node:path";
4
4
  import { DomainContractError, ErrorCodeRegistry } from "../../domain/errors.js";
5
5
  import { assertLayoutRoot, assertOwnedDirectory, stagingAllocationPath, } from "./content-store-layout.js";
6
6
  import { removePreparedTree } from "./prepared-tree-cleanup.js";
7
- import { readProcessStartToken } from "../process/process-identity.js";
8
7
  function allocationError(code, operation, message, cause) {
9
8
  return new DomainContractError({
10
9
  code: ErrorCodeRegistry[code === "STAGING_ALLOCATION_INVALID" ? "stagingAllocationInvalid" : "adapterFailed"],
@@ -18,24 +17,6 @@ function throwIfAborted(signal) {
18
17
  if (signal.aborted)
19
18
  throw signal.reason ?? new DOMException("The operation was aborted", "AbortError");
20
19
  }
21
- export function stagingOwnerSidecarPath(root) { return `${root}.owner`; }
22
- async function writeOwnerSidecar(root) {
23
- const startToken = readProcessStartToken(process.pid);
24
- if (startToken === undefined)
25
- throw new Error("staging allocation cannot establish process identity");
26
- const sidecar = stagingOwnerSidecarPath(root);
27
- const temporary = `${sidecar}.${nodeRandomBytes(8).toString("hex")}.tmp`;
28
- await writeFile(temporary, JSON.stringify({ protocol: "pi-plugin-host-staging-owner", version: 1, pid: process.pid, startToken, nonce: nodeRandomBytes(16).toString("hex"), createdAt: Date.now() }), { flag: "wx", mode: 0o600 });
29
- try {
30
- await rename(temporary, sidecar);
31
- }
32
- catch (error) {
33
- await unlink(temporary).catch(() => undefined);
34
- throw error;
35
- }
36
- }
37
- async function removeOwnerSidecar(root) { await unlink(stagingOwnerSidecarPath(root)).catch((error) => { if (error.code !== "ENOENT")
38
- throw error; }); }
39
20
  function allocationIdFromBytes(bytes) {
40
21
  if (!(bytes instanceof Uint8Array) || bytes.byteLength !== 16) {
41
22
  throw new TypeError("staging random source must return 16 bytes");
@@ -118,7 +99,6 @@ export function createStagingAllocator(layout, options = {}) {
118
99
  if ((await readdir(root)).length !== 0)
119
100
  throw new Error("staging allocation is not empty");
120
101
  await assertOwnedDirectory(root, "allocateStaging", allocationIdentity, layout.rootCapabilities.stagingRoot);
121
- await writeOwnerSidecar(canonical);
122
102
  const allocation = Object.freeze({
123
103
  slot: Object.freeze({ root: canonical }),
124
104
  allocationId,
@@ -139,7 +119,6 @@ export function createStagingAllocator(layout, options = {}) {
139
119
  if (allocationIdentity !== undefined) {
140
120
  await removePreparedTree(root, allocationIdentity, layout.rootCapabilities.stagingRoot).catch(() => undefined);
141
121
  }
142
- await removeOwnerSidecar(root).catch(() => undefined);
143
122
  if (signal.aborted)
144
123
  throw signal.reason ?? new DOMException("The operation was aborted", "AbortError");
145
124
  throw allocationError("ADAPTER_FAILED", "allocateStaging", "staging allocation could not be verified", error);
@@ -168,12 +147,10 @@ export function createStagingAllocator(layout, options = {}) {
168
147
  // A missing path is the one safe idempotent retry. Confirm the parent
169
148
  // still has the adapter's canonical identity before forgetting it.
170
149
  await assertLayoutRoot(layout, "stagingRoot", "discardStaging");
171
- await removeOwnerSidecar(record.root);
172
150
  return;
173
151
  }
174
152
  try {
175
153
  await removePreparedTree(record.root, { dev: record.dev, ino: record.ino }, record.parentCapability);
176
- await removeOwnerSidecar(record.root);
177
154
  await assertLayoutRoot(layout, "stagingRoot", "discardStaging");
178
155
  }
179
156
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"staging-allocator.js","sourceRoot":"","sources":["../../../src/infrastructure/filesystem/staging-allocator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"staging-allocator.js","sourceRoot":"","sources":["../../../src/infrastructure/filesystem/staging-allocator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { type ScopeReference } from "../../domain/state/scope.js";
2
+ import type { Sha256 } from "../../domain/source.js";
3
+ type StateMigrationOutcome = Readonly<{
4
+ path: string;
5
+ scope?: ScopeReference;
6
+ changed: boolean;
7
+ deferred: boolean;
8
+ error?: string;
9
+ }>;
10
+ export type LifecycleConvergenceMigrationReport = Readonly<{
11
+ scopes: readonly StateMigrationOutcome[];
12
+ harvestedMarkers: number;
13
+ deletedLegacyDatabases: number;
14
+ deferred: boolean;
15
+ }>;
16
+ export type LifecycleConvergenceMigrationOptions = Readonly<{
17
+ stateRoot: string;
18
+ stateDatabase(scope: ScopeReference): string;
19
+ hostRoot: string;
20
+ sha256: Sha256;
21
+ /** U1 keeps the legacy field shipped; U2 enables this before removing it. */
22
+ enabled?: boolean;
23
+ signal?: AbortSignal;
24
+ }>;
25
+ /**
26
+ * Detect-and-do migration. State scopes are isolated deliberately: a broken
27
+ * legacy scope is left untouched and remains readable as corrupt-but-
28
+ * recoverable evidence, while healthy sibling scopes and journal cleanup run.
29
+ */
30
+ export declare function runLifecycleConvergenceMigration(input: LifecycleConvergenceMigrationOptions): Promise<LifecycleConvergenceMigrationReport>;
31
+ /** Short alias for callers that describe startup as a migration step. */
32
+ export declare const migrateLifecycleConvergence: typeof runLifecycleConvergenceMigration;
33
+ export {};
@@ -0,0 +1,416 @@
1
+ import { DatabaseSync } from "node:sqlite";
2
+ import { mkdir, readdir, rmdir, stat, unlink } from "node:fs/promises";
3
+ import { join, resolve } from "node:path";
4
+ import { JsonValueSchema } from "../../domain/schema.js";
5
+ import { decodeStateDocument, encodeStateDocument, hashStateDocument, } from "../../domain/state/codec.js";
6
+ import { GenerationSchema } from "../../domain/state/config-state.js";
7
+ import { StatePointersDocumentSchema, createStatePointersDocument } from "../../domain/state/pointers.js";
8
+ import { deriveStateBlobRef, PluginDataRefSchema } from "../../domain/state/references.js";
9
+ import { createScopeContext, ScopeReferenceSchema, toScopeReference } from "../../domain/state/scope.js";
10
+ import { PluginKeySchema } from "../../domain/identity.js";
11
+ import { createPendingDeleteMarkerStore } from "../cleanup/pending-data-deletion.js";
12
+ const STATE_PROTOCOL = "pi-plugin-host-lifecycle-state";
13
+ const STATE_PROTOCOL_VERSION = 1;
14
+ const JOURNAL_DIRECTORY = join("recovery", "journal", "v1");
15
+ const LEGACY_DATABASE_DIRECTORIES = [
16
+ join("recovery", "leases", "v1"),
17
+ join("recovery", "retention", "v1"),
18
+ join("locks", "v1"),
19
+ ];
20
+ function isMissing(error) {
21
+ return typeof error === "object" && error !== null && error.code === "ENOENT";
22
+ }
23
+ function abort(signal) {
24
+ signal?.throwIfAborted();
25
+ }
26
+ function isRecord(value) {
27
+ return value !== null && typeof value === "object" && !Array.isArray(value);
28
+ }
29
+ function isScopeEqual(left, right) {
30
+ return left.kind === right.kind && (left.kind === "user" || (right.kind === "project" && left.projectKey === right.projectKey));
31
+ }
32
+ function stateScope(database, sha256) {
33
+ const row = database.prepare("SELECT protocol, version, scope_json FROM protocol WHERE singleton = 1").get();
34
+ if (row?.protocol !== STATE_PROTOCOL || row.version !== STATE_PROTOCOL_VERSION)
35
+ throw new Error("lifecycle state protocol is invalid");
36
+ return createScopeContext(JSON.parse(String(row.scope_json)), sha256);
37
+ }
38
+ function stripPendingTransition(raw) {
39
+ if (!isRecord(raw) || !Array.isArray(raw.plugins))
40
+ return { value: raw, changed: false };
41
+ let changed = false;
42
+ const plugins = raw.plugins.map((candidate) => {
43
+ if (!isRecord(candidate) || !Object.prototype.hasOwnProperty.call(candidate, "pendingTransition"))
44
+ return candidate;
45
+ changed = true;
46
+ const { pendingTransition: _legacy, ...withoutPending } = candidate;
47
+ return withoutPending;
48
+ });
49
+ return changed ? { value: { ...raw, plugins }, changed } : { value: raw, changed: false };
50
+ }
51
+ function decodeForGeneration(kind, raw, scope, generation, sha256) {
52
+ switch (kind) {
53
+ case "hostConfig": return decodeStateDocument("hostConfig", raw, { scope, generation, sha256 }).value;
54
+ case "installedUser": return decodeStateDocument("installedUser", raw, { scope, generation, sha256 }).value;
55
+ case "trust": return decodeStateDocument("trust", raw, { scope, generation, sha256 }).value;
56
+ case "projectLocal": return decodeStateDocument("projectLocal", raw, { scope, generation, sha256 }).value;
57
+ }
58
+ }
59
+ function encodeForGeneration(kind, value, scope, generation, sha256) {
60
+ switch (kind) {
61
+ case "hostConfig": return encodeStateDocument("hostConfig", value, { scope, generation, sha256 });
62
+ case "installedUser": return encodeStateDocument("installedUser", value, { scope, generation, sha256 });
63
+ case "trust": return encodeStateDocument("trust", value, { scope, generation, sha256 });
64
+ case "projectLocal": return encodeStateDocument("projectLocal", value, { scope, generation, sha256 });
65
+ }
66
+ }
67
+ function assertRawDigest(raw, expected, sha256) {
68
+ const value = JsonValueSchema.parse(raw);
69
+ if (hashStateDocument(value, sha256) !== expected)
70
+ throw new Error("state blob digest does not match before migration");
71
+ }
72
+ function migrateStateScope(path, sha256) {
73
+ let database;
74
+ let scope;
75
+ try {
76
+ database = new DatabaseSync(path, { allowExtension: false, defensive: true, readOnly: false, timeout: 0 });
77
+ database.exec("PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 0;");
78
+ scope = toScopeReference(stateScope(database, sha256));
79
+ database.exec("BEGIN IMMEDIATE");
80
+ const current = database.prepare("SELECT generation, pointer_json FROM current_pointer WHERE singleton = 1").get();
81
+ if (current === undefined)
82
+ throw new Error("lifecycle state current pointer is missing");
83
+ const generation = GenerationSchema.parse(current.generation);
84
+ const pointer = StatePointersDocumentSchema.parse(JSON.parse(String(current.pointer_json)));
85
+ if (!isScopeEqual(pointer.scope, scope))
86
+ throw new Error("lifecycle state pointer scope does not match protocol");
87
+ const rawByKind = new Map();
88
+ const changedKinds = new Set();
89
+ for (const entry of pointer.documents) {
90
+ const row = database.prepare("SELECT blob_ref, kind, generation, digest, document FROM state_blobs WHERE blob_ref = ?").get(entry.blob);
91
+ if (row === undefined || row.blob_ref !== entry.blob || row.kind !== entry.kind || row.generation !== generation || row.digest !== entry.digest) {
92
+ throw new Error(`state blob ${entry.kind} is missing or inconsistent`);
93
+ }
94
+ const raw = JSON.parse(String(row.document));
95
+ assertRawDigest(raw, entry.digest, sha256);
96
+ const stripped = entry.kind === "installedUser" || entry.kind === "projectLocal" ? stripPendingTransition(raw) : { value: raw, changed: false };
97
+ rawByKind.set(entry.kind, stripped.value);
98
+ if (stripped.changed)
99
+ changedKinds.add(entry.kind);
100
+ }
101
+ if (changedKinds.size === 0) {
102
+ database.exec("COMMIT");
103
+ return { path, scope, changed: false, deferred: false };
104
+ }
105
+ const next = GenerationSchema.parse(generation + 1);
106
+ const encoded = pointer.documents.map((entry) => {
107
+ const decoded = decodeForGeneration(entry.kind, rawByKind.get(entry.kind), pointer.scope.kind === "user"
108
+ ? createScopeContext({ kind: "user" }, sha256)
109
+ : createScopeContext(pointer.scope, sha256), generation, sha256);
110
+ const nextValue = isRecord(decoded) ? { ...decoded, generation: next } : decoded;
111
+ const document = encodeForGeneration(entry.kind, nextValue, pointer.scope.kind === "user"
112
+ ? createScopeContext({ kind: "user" }, sha256)
113
+ : createScopeContext(pointer.scope, sha256), next, sha256);
114
+ const digest = hashStateDocument(document, sha256);
115
+ const blob = deriveStateBlobRef({ scope: pointer.scope, generation: next, kind: entry.kind, digest }, sha256);
116
+ return { kind: entry.kind, generation: next, blob, digest, document: JSON.stringify(document) };
117
+ });
118
+ for (const entry of encoded) {
119
+ database.prepare("INSERT INTO state_blobs(blob_ref, kind, generation, digest, document) VALUES (?, ?, ?, ?, ?)")
120
+ .run(entry.blob, entry.kind, entry.generation, entry.digest, entry.document);
121
+ }
122
+ const nextPointer = createStatePointersDocument({
123
+ schemaVersion: 1,
124
+ scope: pointer.scope,
125
+ generation: next,
126
+ previousGeneration: generation,
127
+ documents: encoded.map(({ kind, generation: entryGeneration, blob, digest }) => ({ kind, generation: entryGeneration, blob, digest })),
128
+ });
129
+ const pointerJson = JSON.stringify(nextPointer);
130
+ database.prepare("INSERT INTO generation_pointers(generation, pointer_json) VALUES (?, ?)").run(next, pointerJson);
131
+ database.prepare("UPDATE current_pointer SET generation = ?, pointer_json = ? WHERE singleton = 1").run(next, pointerJson);
132
+ database.prepare("DELETE FROM generation_pointers WHERE generation < ?").run(next - 1);
133
+ database.prepare("DELETE FROM state_blobs WHERE generation < ?").run(next - 1);
134
+ database.exec("COMMIT");
135
+ return { path, scope, changed: true, deferred: false };
136
+ }
137
+ catch (error) {
138
+ try {
139
+ if (database?.isTransaction)
140
+ database.exec("ROLLBACK");
141
+ }
142
+ catch { /* preserve the migration failure */ }
143
+ return { path, ...(scope === undefined ? {} : { scope }), changed: false, deferred: true, error: error instanceof Error ? error.message : String(error) };
144
+ }
145
+ finally {
146
+ try {
147
+ database?.close();
148
+ }
149
+ catch { /* preserve the migration result */ }
150
+ }
151
+ }
152
+ function journalMarker(row) {
153
+ const record = JSON.parse(String(row.record_json));
154
+ if (!isRecord(record))
155
+ throw new Error("journal record is not an object");
156
+ const scope = ScopeReferenceSchema.parse(record.scope);
157
+ const plugin = String(record.plugin);
158
+ const previous = record.previous;
159
+ if (!isRecord(previous) || !Array.isArray(previous.revisions))
160
+ throw new Error("journal uninstall previous state is missing");
161
+ const selectedRevision = String(previous.selectedRevision);
162
+ const selected = previous.revisions.find((revision) => isRecord(revision) && revision.revision === selectedRevision);
163
+ if (!isRecord(selected) || typeof selected.dataRef !== "string")
164
+ throw new Error("journal uninstall data reference is missing");
165
+ // Parsing here is intentionally minimal: the state codec remains the
166
+ // authority for installed records, while this queue only needs deletion facts.
167
+ return {
168
+ scope,
169
+ plugin: PluginKeySchema.parse(plugin),
170
+ dataRef: PluginDataRefSchema.parse(selected.dataRef),
171
+ requestedAt: typeof row.status_at === "number" ? row.status_at : Date.now(),
172
+ };
173
+ }
174
+ async function harvestJournals(hostRoot, signal) {
175
+ const journalRoot = join(hostRoot, JOURNAL_DIRECTORY);
176
+ let names;
177
+ try {
178
+ names = await readdir(journalRoot);
179
+ }
180
+ catch (error) {
181
+ if (isMissing(error))
182
+ return { markers: 0, deleted: 0, complete: true };
183
+ return { markers: 0, deleted: 0, complete: false };
184
+ }
185
+ const markerStore = createPendingDeleteMarkerStore({ root: join(hostRoot, "cleanup", "v1", "pending-deletes") });
186
+ let markers = 0;
187
+ let deleted = 0;
188
+ let complete = true;
189
+ const seenReferences = new Set();
190
+ for (const name of names.filter((entry) => entry.endsWith(".sqlite")).sort()) {
191
+ abort(signal);
192
+ const path = join(journalRoot, name);
193
+ let database;
194
+ try {
195
+ database = new DatabaseSync(path, { allowExtension: false, defensive: true, readOnly: true, timeout: 0 });
196
+ const rows = database.prepare("SELECT reference, record_json, status, cleanup_status, status_at FROM lifecycle_transitions WHERE cleanup_status = 'pending-data-delete' AND status = 'completed' ORDER BY reference").all();
197
+ for (const row of rows) {
198
+ abort(signal);
199
+ const reference = String(row.reference);
200
+ if (seenReferences.has(reference))
201
+ continue;
202
+ seenReferences.add(reference);
203
+ await markerStore.create(journalMarker(row));
204
+ markers += 1;
205
+ }
206
+ }
207
+ catch (error) {
208
+ if (signal?.aborted)
209
+ throw error;
210
+ complete = false;
211
+ try {
212
+ database?.close();
213
+ }
214
+ catch { /* retain the journal and continue with siblings */ }
215
+ continue;
216
+ }
217
+ try {
218
+ database?.close();
219
+ }
220
+ catch {
221
+ complete = false;
222
+ continue;
223
+ }
224
+ try {
225
+ await unlink(path);
226
+ deleted += 1;
227
+ }
228
+ catch (error) {
229
+ if (!isMissing(error))
230
+ complete = false;
231
+ }
232
+ }
233
+ return { markers, deleted, complete };
234
+ }
235
+ async function removeLegacyDatabases(hostRoot) {
236
+ let removed = 0;
237
+ let complete = true;
238
+ for (const relative of LEGACY_DATABASE_DIRECTORIES) {
239
+ const directory = join(hostRoot, relative);
240
+ let names;
241
+ try {
242
+ names = await readdir(directory);
243
+ }
244
+ catch (error) {
245
+ if (isMissing(error))
246
+ continue;
247
+ complete = false;
248
+ continue;
249
+ }
250
+ for (const name of names.filter((entry) => entry.endsWith(".sqlite"))) {
251
+ try {
252
+ await unlink(join(directory, name));
253
+ removed += 1;
254
+ }
255
+ catch (error) {
256
+ if (!isMissing(error))
257
+ complete = false;
258
+ }
259
+ }
260
+ }
261
+ return { removed, complete };
262
+ }
263
+ async function removeLegacySidecars(root, removeEmptyDirectories = false) {
264
+ let entries;
265
+ try {
266
+ entries = await readdir(root, { withFileTypes: true });
267
+ }
268
+ catch (error) {
269
+ if (isMissing(error))
270
+ return true;
271
+ return false;
272
+ }
273
+ let complete = true;
274
+ for (const entry of entries) {
275
+ const path = join(root, entry.name);
276
+ if (entry.isDirectory()) {
277
+ complete = await removeLegacySidecars(path, removeEmptyDirectories) && complete;
278
+ if (removeEmptyDirectories) {
279
+ try {
280
+ await rmdir(path);
281
+ }
282
+ catch (error) {
283
+ if (!isMissing(error) && error.code !== "ENOTEMPTY")
284
+ complete = false;
285
+ }
286
+ }
287
+ continue;
288
+ }
289
+ if (entry.name.endsWith(".owner") || entry.name === ".identity" || entry.name === ".sqlite-root.identity") {
290
+ try {
291
+ await unlink(path);
292
+ }
293
+ catch (error) {
294
+ if (!isMissing(error))
295
+ complete = false;
296
+ }
297
+ }
298
+ }
299
+ return complete;
300
+ }
301
+ async function removeRootSidecars(root) {
302
+ let entries;
303
+ try {
304
+ entries = await readdir(root, { withFileTypes: true });
305
+ }
306
+ catch (error) {
307
+ if (isMissing(error))
308
+ return true;
309
+ return false;
310
+ }
311
+ let complete = true;
312
+ for (const entry of entries) {
313
+ if (entry.isDirectory())
314
+ continue;
315
+ if (entry.name.endsWith(".owner") || entry.name === ".identity" || entry.name === ".sqlite-root.identity") {
316
+ try {
317
+ await unlink(join(root, entry.name));
318
+ }
319
+ catch (error) {
320
+ if (!isMissing(error))
321
+ complete = false;
322
+ }
323
+ }
324
+ }
325
+ return complete;
326
+ }
327
+ /**
328
+ * Detect-and-do migration. State scopes are isolated deliberately: a broken
329
+ * legacy scope is left untouched and remains readable as corrupt-but-
330
+ * recoverable evidence, while healthy sibling scopes and journal cleanup run.
331
+ */
332
+ export async function runLifecycleConvergenceMigration(input) {
333
+ if (input === null || typeof input !== "object" || typeof input.stateRoot !== "string" || typeof input.hostRoot !== "string" || typeof input.stateDatabase !== "function" || typeof input.sha256 !== "function") {
334
+ throw new TypeError("lifecycle convergence migration options are required");
335
+ }
336
+ const signal = input.signal;
337
+ abort(signal);
338
+ if (input.enabled === false) {
339
+ return Object.freeze({ scopes: Object.freeze([]), harvestedMarkers: 0, deletedLegacyDatabases: 0, deferred: false });
340
+ }
341
+ await mkdir(input.stateRoot, { recursive: true, mode: 0o700 });
342
+ let names;
343
+ let deferred = false;
344
+ try {
345
+ names = await readdir(input.stateRoot);
346
+ }
347
+ catch (error) {
348
+ if (isMissing(error))
349
+ names = [];
350
+ else {
351
+ names = [];
352
+ deferred = true;
353
+ }
354
+ }
355
+ const scopes = [];
356
+ for (const name of names.filter((entry) => entry === "user.sqlite" || /^project-[0-9a-f]{64}\.sqlite$/u.test(entry)).sort()) {
357
+ abort(signal);
358
+ const path = join(input.stateRoot, name);
359
+ let file;
360
+ try {
361
+ file = await stat(path);
362
+ }
363
+ catch (error) {
364
+ if (!isMissing(error))
365
+ deferred = true;
366
+ continue;
367
+ }
368
+ if (!file.isFile())
369
+ continue;
370
+ scopes.push(migrateStateScope(path, input.sha256));
371
+ }
372
+ const resolvedHostRoot = resolve(input.hostRoot);
373
+ const harvested = await harvestJournals(resolvedHostRoot, signal);
374
+ let deletedLegacyDatabases = harvested.deleted;
375
+ deferred ||= !harvested.complete;
376
+ if (harvested.complete) {
377
+ const legacyDatabases = await removeLegacyDatabases(resolvedHostRoot);
378
+ deletedLegacyDatabases += legacyDatabases.removed;
379
+ deferred ||= !legacyDatabases.complete;
380
+ // Cleanup is best effort by design. A locked or unreadable legacy file is
381
+ // retained for the next startup instead of preventing healthy scopes from
382
+ // opening.
383
+ const rootSidecarsComplete = await removeRootSidecars(resolvedHostRoot);
384
+ deferred ||= !rootSidecarsComplete;
385
+ // Only retired roots are recursively pruned. The state root is created
386
+ // before this migration and must remain available for the first adapter
387
+ // open, even when it has no databases yet.
388
+ const recoveryRoot = join(resolvedHostRoot, "recovery");
389
+ const recoveryCleanupComplete = await removeLegacySidecars(recoveryRoot, true);
390
+ deferred ||= !recoveryCleanupComplete;
391
+ try {
392
+ await rmdir(recoveryRoot);
393
+ }
394
+ catch (error) {
395
+ if (!isMissing(error) && error.code !== "ENOTEMPTY")
396
+ deferred = true;
397
+ }
398
+ const lockCleanupComplete = await removeLegacySidecars(join(resolvedHostRoot, "locks"), true);
399
+ deferred ||= !lockCleanupComplete;
400
+ // Owner sidecars are one level below the two legacy staging roots; avoid
401
+ // walking published content on every migration check.
402
+ const stagingSidecarsComplete = await removeRootSidecars(join(resolvedHostRoot, "staging", "v1"));
403
+ deferred ||= !stagingSidecarsComplete;
404
+ const projectionSidecarsComplete = await removeRootSidecars(join(resolvedHostRoot, "generated", "v1", ".staging"));
405
+ deferred ||= !projectionSidecarsComplete;
406
+ }
407
+ return Object.freeze({
408
+ scopes: Object.freeze(scopes.map((entry) => Object.freeze(entry))),
409
+ harvestedMarkers: harvested.markers,
410
+ deletedLegacyDatabases,
411
+ deferred: deferred || scopes.some((entry) => entry.deferred),
412
+ });
413
+ }
414
+ /** Short alias for callers that describe startup as a migration step. */
415
+ export const migrateLifecycleConvergence = runLifecycleConvergenceMigration;
416
+ //# sourceMappingURL=lifecycle-convergence-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-convergence-migration.js","sourceRoot":"","sources":["../../../src/infrastructure/state/lifecycle-convergence-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,GAElB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,2BAA2B,EAA4B,MAAM,gCAAgC,CAAC;AACpI,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,gBAAgB,EAA0C,MAAM,6BAA6B,CAAC;AAEjJ,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,8BAA8B,EAA4B,MAAM,qCAAqC,CAAC;AAE/G,MAAM,cAAc,GAAG,gCAAgC,CAAC;AACxD,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC5D,MAAM,2BAA2B,GAAG;IAClC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC;IAChC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;CACX,CAAC;AA6BX,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC3G,CAAC;AAED,SAAS,KAAK,CAAC,MAA+B;IAC5C,MAAM,EAAE,cAAc,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,YAAY,CAAC,IAAoB,EAAE,KAAqB;IAC/D,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;AAClI,CAAC;AAED,SAAS,UAAU,CAAC,QAAsB,EAAE,MAAc;IACxD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,wEAAwE,CAAC,CAAC,GAAG,EAA2B,CAAC;IACtI,IAAI,GAAG,EAAE,QAAQ,KAAK,cAAc,IAAI,GAAG,CAAC,OAAO,KAAK,sBAAsB;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACvI,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAY;IAC1C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAC5C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC;YAAE,OAAO,SAAS,CAAC;QACpH,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,SAAS,CAAC;QACpE,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5F,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAyB,EAAE,GAAY,EAAE,KAAmB,EAAE,UAAsB,EAAE,MAAc;IAC/H,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,YAAY,EAAE,OAAO,mBAAmB,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;QACtG,KAAK,eAAe,EAAE,OAAO,mBAAmB,CAAC,eAAe,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;QAC5G,KAAK,OAAO,EAAE,OAAO,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;QAC5F,KAAK,cAAc,EAAE,OAAO,mBAAmB,CAAC,cAAc,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;IAC5G,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAyB,EAAE,KAAc,EAAE,KAAmB,EAAE,UAAsB,EAAE,MAAc;IACjI,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,YAAY,EAAE,OAAO,mBAAmB,CAAC,YAAY,EAAE,KAAuC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACpI,KAAK,eAAe,EAAE,OAAO,mBAAmB,CAAC,eAAe,EAAE,KAA0C,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7I,KAAK,OAAO,EAAE,OAAO,mBAAmB,CAAC,OAAO,EAAE,KAAkC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACrH,KAAK,cAAc,EAAE,OAAO,mBAAmB,CAAC,cAAc,EAAE,KAAyC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5I,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,GAAY,EAAE,QAAgB,EAAE,MAAc;IACrE,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;AAC1H,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,MAAc;IACrD,IAAI,QAAkC,CAAC;IACvC,IAAI,KAAiC,CAAC;IACtC,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3G,QAAQ,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACpE,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,0EAA0E,CAAC,CAAC,GAAG,EAA2B,CAAC;QAC5I,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAElH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAgC,CAAC;QAC1D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,yFAAyF,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAA0B,CAAC;YACjK,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;gBAChJ,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,IAAI,6BAA6B,CAAC,CAAC;YACzE,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7C,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAChJ,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,QAAQ,CAAC,OAAO;gBAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC1D,CAAC;QAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9C,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM;gBACtG,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC;gBAC9C,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACjF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM;gBACvF,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC;gBAC9C,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9G,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClG,CAAC,CAAC,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,QAAQ,CAAC,OAAO,CAAC,8FAA8F,CAAC;iBAC7G,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,WAAW,GAAG,2BAA2B,CAAC;YAC9C,aAAa,EAAE,CAAC;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,IAAI;YAChB,kBAAkB,EAAE,UAAU;YAC9B,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;SACvI,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAChD,QAAQ,CAAC,OAAO,CAAC,yEAAyE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACnH,QAAQ,CAAC,OAAO,CAAC,iFAAiF,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC3H,QAAQ,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACvF,QAAQ,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAC/E,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC;YAAC,IAAI,QAAQ,EAAE,aAAa;gBAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,oCAAoC,CAAC,CAAC;QAC9G,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5J,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,mCAAmC,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAc;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC9H,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,KAAK,gBAAgB,CAAC,CAAC;IACrH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChI,qEAAqE;IACrE,+EAA+E;IAC/E,OAAO;QACL,KAAK;QACL,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC;QACrC,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QACpD,WAAW,EAAE,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;KAC5E,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,MAA+B;IAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACtD,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QAAC,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IAAC,CAAC;IAC3C,OAAO,KAAK,EAAE,CAAC;QAAC,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAAC,CAAC;IAC9I,MAAM,WAAW,GAAG,8BAA8B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACjH,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7E,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,QAAkC,CAAC;QACvC,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1G,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,sLAAsL,CAAC,CAAC,GAAG,EAAiB,CAAC;YAC3O,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,KAAK,CAAC,MAAM,CAAC,CAAC;gBACd,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACxC,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,SAAS;gBAC5C,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC9B,MAAM,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,EAAE,OAAO;gBAAE,MAAM,KAAK,CAAC;YACjC,QAAQ,GAAG,KAAK,CAAC;YACjB,IAAI,CAAC;gBAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,mDAAmD,CAAC,CAAC;YACxF,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;QAAC,CAAC;QAC1B,MAAM,CAAC;YAAC,QAAQ,GAAG,KAAK,CAAC;YAAC,SAAS;QAAC,CAAC;QACrC,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC,CAAC;QAAC,CAAC;QACzC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAAE,QAAQ,GAAG,KAAK,CAAC;QAAC,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,QAAgB;IACnD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,KAAK,MAAM,QAAQ,IAAI,2BAA2B,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,KAAe,CAAC;QACpB,IAAI,CAAC;YAAC,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QACzC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAI,SAAS,CAAC,KAAK,CAAC;gBAAE,SAAS;YAAC,QAAQ,GAAG,KAAK,CAAC;YAAC,SAAS;QAAC,CAAC;QAC7E,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC;gBAAC,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAC,CAAC;YAAC,CAAC;YAC1D,OAAO,KAAK,EAAE,CAAC;gBAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;oBAAE,QAAQ,GAAG,KAAK,CAAC;YAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,IAAY,EAAE,sBAAsB,GAAG,KAAK;IAC9E,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QAAC,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;IAC/D,OAAO,KAAK,EAAE,CAAC;QAAC,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IAClE,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,sBAAsB,CAAC,IAAI,QAAQ,CAAC;YAChF,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;gBAAC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAK,KAA+B,CAAC,IAAI,KAAK,WAAW;wBAAE,QAAQ,GAAG,KAAK,CAAC;gBAAC,CAAC;YAChJ,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAC1G,IAAI,CAAC;gBAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;oBAAE,QAAQ,GAAG,KAAK,CAAC;YAAC,CAAC;QACxF,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,IAAY;IAC5C,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QAAC,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;IAC/D,OAAO,KAAK,EAAE,CAAC;QAAC,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IAClE,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QAClC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAC1G,IAAI,CAAC;gBAAC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;oBAAE,QAAQ,GAAG,KAAK,CAAC;YAAC,CAAC;QAC1G,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,KAA2C;IAChG,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAChN,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,KAAK,CAAC,MAAM,CAAC,CAAC;IACd,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACvH,CAAC;IACD,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,IAAI,KAAe,CAAC;IACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC;QAAC,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAAC,CAAC;IAC/C,OAAO,KAAK,EAAE,CAAC;QAAC,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,KAAK,GAAG,EAAE,CAAC;aAAM,CAAC;YAAC,KAAK,GAAG,EAAE,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC;QAAC,CAAC;IAAC,CAAC;IACzF,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,aAAa,IAAI,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5H,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YAAC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAChC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAAE,QAAQ,GAAG,IAAI,CAAC;YAAC,SAAS;QAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE,SAAS;QAC7B,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAClE,IAAI,sBAAsB,GAAG,SAAS,CAAC,OAAO,CAAC;IAC/C,QAAQ,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC;IACjC,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,MAAM,eAAe,GAAG,MAAM,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;QACtE,sBAAsB,IAAI,eAAe,CAAC,OAAO,CAAC;QAClD,QAAQ,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC;QACvC,0EAA0E;QAC1E,0EAA0E;QAC1E,WAAW;QACX,MAAM,oBAAoB,GAAG,MAAM,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QACxE,QAAQ,KAAK,CAAC,oBAAoB,CAAC;QACnC,uEAAuE;QACvE,wEAAwE;QACxE,2CAA2C;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QACxD,MAAM,uBAAuB,GAAG,MAAM,oBAAoB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC/E,QAAQ,KAAK,CAAC,uBAAuB,CAAC;QACtC,IAAI,CAAC;YAAC,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAK,KAA+B,CAAC,IAAI,KAAK,WAAW;gBAAE,QAAQ,GAAG,IAAI,CAAC;QAAC,CAAC;QACrJ,MAAM,mBAAmB,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9F,QAAQ,KAAK,CAAC,mBAAmB,CAAC;QAClC,yEAAyE;QACzE,sDAAsD;QACtD,MAAM,uBAAuB,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QAClG,QAAQ,KAAK,CAAC,uBAAuB,CAAC;QACtC,MAAM,0BAA0B,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;QACnH,QAAQ,KAAK,CAAC,0BAA0B,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,gBAAgB,EAAE,SAAS,CAAC,OAAO;QACnC,sBAAsB;QACtB,QAAQ,EAAE,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC7D,CAAC,CAAC;AACL,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,MAAM,2BAA2B,GAAG,gCAAgC,CAAC"}
@@ -2,6 +2,14 @@ import type { LifecycleStateInventoryPort } from "../../application/ports/lifecy
2
2
  import type { LifecycleStateStore } from "../../application/ports/lifecycle-state-store.js";
3
3
  import { toScopeReference, type ScopeContext } from "../../domain/state/scope.js";
4
4
  import type { Sha256 } from "../../domain/source.js";
5
+ import { type LifecycleConvergenceMigrationReport } from "./lifecycle-convergence-migration.js";
6
+ export declare const LIFECYCLE_STATE_BUSY_RETRY_BUDGET = 24;
7
+ export declare class LifecycleStateBusyError extends Error {
8
+ readonly code: "STATE_BUSY";
9
+ readonly attempts: number;
10
+ readonly operation: "read" | "commit";
11
+ constructor(operation: "read" | "commit", attempts: number, cause?: unknown);
12
+ }
5
13
  export declare class LifecycleStateAdapterError extends Error {
6
14
  readonly code: "STATE_CORRUPT" | "STATE_ADAPTER_FAILED";
7
15
  constructor(code: LifecycleStateAdapterError["code"], message: string, cause?: unknown);
@@ -12,11 +20,13 @@ export declare class LifecycleStateAdapterError extends Error {
12
20
  }
13
21
  type LifecycleStatePathPlan = Readonly<{
14
22
  stateRoot: string;
23
+ hostRoot?: string;
15
24
  stateDatabase(scope: ReturnType<typeof toScopeReference>): string;
16
25
  }>;
17
26
  export type NodeLifecycleStateAdapters = Readonly<{
18
27
  state: LifecycleStateStore;
19
28
  inventory: LifecycleStateInventoryPort;
29
+ migration: LifecycleConvergenceMigrationReport;
20
30
  close(): Promise<void>;
21
31
  }>;
22
32
  export declare function createNodeLifecycleStateAdapters(input: Readonly<{