@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,235 +0,0 @@
1
- import { MutationSubjectSchema, } from "./mutation-coordination.js";
2
- import "../domain/state/scope.js";
3
- const encoder = new TextEncoder();
4
- /**
5
- * A callback can retain the scheduler and request another key while it is
6
- * already holding one. Waiting for an overlapping key would deadlock forever,
7
- * so this error is raised at the recursive call site before a waiter exists.
8
- */
9
- export class RecursiveMutationAcquisitionError extends Error {
10
- code = "RECURSIVE_MUTATION_ACQUISITION";
11
- constructor() {
12
- super("mutation scheduler does not permit overlapping recursive acquisition");
13
- this.name = "RecursiveMutationAcquisitionError";
14
- }
15
- }
16
- function assertSignal(signal) {
17
- if (signal === null ||
18
- typeof signal !== "object" ||
19
- typeof signal.addEventListener !== "function" ||
20
- typeof signal.removeEventListener !== "function" ||
21
- typeof signal.aborted !== "boolean") {
22
- throw new TypeError("mutation scheduling requires an AbortSignal");
23
- }
24
- }
25
- function throwIfAborted(signal) {
26
- if (signal.aborted)
27
- throw signal.reason;
28
- }
29
- function field(value) {
30
- return `${encoder.encode(value).byteLength}:${value}`;
31
- }
32
- /**
33
- * This encoding is deliberately length-prefixed. Delimiter concatenation would
34
- * make a future scope/plugin grammar change capable of aliasing two lock keys.
35
- */
36
- function canonicalSubjectKey(subject) {
37
- const scope = subject.scope;
38
- return scope.kind === "user"
39
- ? `scope:${field("user")}|plugin:${field(subject.plugin)}`
40
- : `scope:${field("project")}${field(scope.projectKey)}|plugin:${field(subject.plugin)}`;
41
- }
42
- function canonicalScopeKey(subject) {
43
- return subject.scope.kind === "user"
44
- ? `scope:${field("user")}`
45
- : `scope:${field("project")}${field(subject.scope.projectKey)}`;
46
- }
47
- function compareKeys(left, right) {
48
- const leftBytes = encoder.encode(left);
49
- const rightBytes = encoder.encode(right);
50
- const length = Math.min(leftBytes.byteLength, rightBytes.byteLength);
51
- for (let index = 0; index < length; index += 1) {
52
- const difference = (leftBytes[index] ?? 0) - (rightBytes[index] ?? 0);
53
- if (difference !== 0)
54
- return difference;
55
- }
56
- return leftBytes.byteLength - rightBytes.byteLength;
57
- }
58
- function validateSubjects(input) {
59
- if (!Array.isArray(input))
60
- throw new TypeError("mutation subjects must be an array");
61
- const subjects = input.map((subject) => MutationSubjectSchema.parse(subject));
62
- const scope = subjects[0] === undefined ? undefined : canonicalScopeKey(subjects[0]);
63
- const keys = new Set();
64
- for (const subject of subjects) {
65
- if (scope !== undefined && canonicalScopeKey(subject) !== scope) {
66
- throw new TypeError("a mutation request must contain one scope");
67
- }
68
- const key = canonicalSubjectKey(subject);
69
- if (keys.has(key))
70
- throw new TypeError("a mutation request cannot contain duplicate subjects");
71
- keys.add(key);
72
- }
73
- return [...subjects].sort((left, right) => compareKeys(canonicalSubjectKey(left), canonicalSubjectKey(right)));
74
- }
75
- function removeWaiter(state, waiter) {
76
- const index = state.queue.indexOf(waiter);
77
- if (index !== -1)
78
- state.queue.splice(index, 1);
79
- }
80
- function createSynchronousExecutionContext() {
81
- let currentKeys;
82
- return {
83
- current: () => currentKeys,
84
- run(keys, work) {
85
- const previous = currentKeys;
86
- currentKeys = keys;
87
- try {
88
- return work();
89
- }
90
- finally {
91
- currentKeys = previous;
92
- }
93
- },
94
- };
95
- }
96
- class Scheduler {
97
- execution;
98
- states = new Map();
99
- constructor(execution) {
100
- this.execution = execution;
101
- }
102
- run(subjects, work, signal) {
103
- if (typeof work !== "function")
104
- throw new TypeError("mutation work must be a function");
105
- const validated = validateSubjects(subjects);
106
- const heldKeys = this.execution.current();
107
- if (heldKeys !== undefined && validated.some((subject) => heldKeys.has(canonicalSubjectKey(subject)))) {
108
- throw new RecursiveMutationAcquisitionError();
109
- }
110
- return this.runInternal(validated, work, signal);
111
- }
112
- runInternal(subjects, work, signal) {
113
- assertSignal(signal);
114
- if (typeof work !== "function")
115
- throw new TypeError("mutation work must be a function");
116
- throwIfAborted(signal);
117
- const keys = subjects.map(canonicalSubjectKey);
118
- if (keys.length === 0) {
119
- return Promise.resolve().then(async () => {
120
- throwIfAborted(signal);
121
- return this.execution.run(new Set(this.execution.current() ?? []), work);
122
- });
123
- }
124
- return this.acquire(keys, signal).then(async (waiter) => {
125
- try {
126
- throwIfAborted(signal);
127
- const heldKeys = new Set(this.execution.current() ?? []);
128
- for (const key of keys)
129
- heldKeys.add(key);
130
- return await this.execution.run(heldKeys, work);
131
- }
132
- finally {
133
- this.release(waiter);
134
- }
135
- });
136
- }
137
- acquire(keys, signal) {
138
- let waiter;
139
- const promise = new Promise((resolve, reject) => {
140
- waiter = {
141
- token: Symbol("mutation-owner"),
142
- keys,
143
- resolve: () => resolve(waiter),
144
- reject,
145
- signal,
146
- settled: false,
147
- abortListener: undefined,
148
- };
149
- });
150
- for (const key of keys) {
151
- const state = this.states.get(key) ?? { queue: [], owner: undefined };
152
- this.states.set(key, state);
153
- state.queue.push(waiter);
154
- }
155
- waiter.abortListener = () => this.cancel(waiter);
156
- signal.addEventListener("abort", waiter.abortListener, { once: true });
157
- if (signal.aborted) {
158
- this.cancel(waiter);
159
- }
160
- else {
161
- this.pump(keys);
162
- }
163
- return promise;
164
- }
165
- cancel(waiter) {
166
- if (waiter.settled)
167
- return;
168
- waiter.settled = true;
169
- if (waiter.abortListener !== undefined) {
170
- waiter.signal.removeEventListener("abort", waiter.abortListener);
171
- waiter.abortListener = undefined;
172
- }
173
- for (const key of waiter.keys) {
174
- const state = this.states.get(key);
175
- if (state !== undefined)
176
- removeWaiter(state, waiter);
177
- }
178
- waiter.reject(waiter.signal.reason);
179
- this.pump(waiter.keys);
180
- }
181
- pump(keys) {
182
- for (const key of keys)
183
- this.pumpOne(key);
184
- for (const key of keys)
185
- this.cleanup(key);
186
- }
187
- pumpOne(key) {
188
- const state = this.states.get(key);
189
- const candidate = state?.queue[0];
190
- if (state === undefined || candidate === undefined || state.owner !== undefined)
191
- return;
192
- const ready = candidate.keys.every((candidateKey) => {
193
- const candidateState = this.states.get(candidateKey);
194
- return candidateState !== undefined && candidateState.owner === undefined && candidateState.queue[0] === candidate;
195
- });
196
- if (!ready)
197
- return;
198
- candidate.settled = true;
199
- if (candidate.abortListener !== undefined) {
200
- candidate.signal.removeEventListener("abort", candidate.abortListener);
201
- candidate.abortListener = undefined;
202
- }
203
- for (const candidateKey of candidate.keys) {
204
- const candidateState = this.states.get(candidateKey);
205
- if (candidateState === undefined)
206
- throw new Error("scheduler key state disappeared");
207
- candidateState.queue.shift();
208
- candidateState.owner = candidate;
209
- }
210
- candidate.resolve();
211
- }
212
- release(waiter) {
213
- for (const key of [...waiter.keys].reverse()) {
214
- const state = this.states.get(key);
215
- if (state?.owner === waiter)
216
- state.owner = undefined;
217
- }
218
- this.pump(waiter.keys);
219
- }
220
- cleanup(key) {
221
- const state = this.states.get(key);
222
- if (state !== undefined && state.owner === undefined && state.queue.length === 0) {
223
- this.states.delete(key);
224
- }
225
- }
226
- }
227
- export function createKeyedMutationScheduler(execution) {
228
- const context = execution ?? createSynchronousExecutionContext();
229
- if (context === null || typeof context !== "object" || typeof context.current !== "function" || typeof context.run !== "function") {
230
- throw new TypeError("mutation scheduler execution context is required");
231
- }
232
- return new Scheduler(context);
233
- }
234
- export { canonicalSubjectKey };
235
- //# sourceMappingURL=keyed-mutation-scheduler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyed-mutation-scheduler.js","sourceRoot":"","sources":["../../src/application/keyed-mutation-scheduler.ts"],"names":[],"mappings":"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"}
@@ -1,79 +0,0 @@
1
- import "zod";
2
- import type { Sha256 } from "../domain/source.js";
3
- import { type PluginKey } from "../domain/identity.js";
4
- import { type ScopeContext } from "../domain/state/scope.js";
5
- import { type Generation } from "../domain/state/config-state.js";
6
- import { type InstalledPluginRecord } from "../domain/state/installed-state.js";
7
- import { type GenerationSnapshot } from "./state-contract.js";
8
- import type { GenerationMutationCoordinator } from "./generation-mutation-coordinator.js";
9
- import { type ActivationObservation, type LifecycleReloadPort } from "./ports/lifecycle-reload.js";
10
- import { type LifecycleTransitionRecord, type LifecycleTransitionStore } from "./ports/lifecycle-transition-store.js";
11
- import { type ProjectionExpectation } from "./ports/runtime-projection.js";
12
- import type { LifecycleOperation } from "./plugin-lifecycle-contract.js";
13
- export type LifecycleActivationFailure = Readonly<{
14
- kind: "reload-rejected";
15
- code: "RELOAD_REJECTED";
16
- }> | Readonly<{
17
- kind: "activation-unavailable";
18
- code: "PI_RELOAD_CONTEXT_UNAVAILABLE";
19
- }> | Readonly<{
20
- kind: "observation-mismatch";
21
- code: "OBSERVATION_MISMATCH";
22
- }> | Readonly<{
23
- kind: "adapter-error";
24
- code: "ADAPTER_FAILED" | "ABORTED";
25
- }>;
26
- export type TransitionReconciliationResult = Readonly<{
27
- kind: "completed";
28
- snapshot: GenerationSnapshot;
29
- observation: ActivationObservation;
30
- }> | Readonly<{
31
- kind: "rolled-back";
32
- snapshot: GenerationSnapshot;
33
- observation: ActivationObservation;
34
- failure: LifecycleActivationFailure;
35
- }> | Readonly<{
36
- kind: "recovery-required";
37
- committed?: Generation;
38
- }>;
39
- export type LifecycleTransitionReconcilerDependencies = Readonly<{
40
- mutations: GenerationMutationCoordinator;
41
- state: {
42
- read(scope: ScopeContext, signal: AbortSignal): Promise<import("./state-contract.js").StateLoadResult>;
43
- };
44
- reload: LifecycleReloadPort;
45
- transitions: LifecycleTransitionStore;
46
- sha256: Sha256;
47
- }>;
48
- export type CompleteCommittedTransitionRequest = Readonly<{
49
- operation: LifecycleOperation;
50
- scope: ScopeContext;
51
- plugin: PluginKey;
52
- previous: InstalledPluginRecord | undefined;
53
- candidate: InstalledPluginRecord;
54
- final: InstalledPluginRecord | null;
55
- reference: import("../domain/state/references.js").PendingTransitionRef;
56
- committed: GenerationSnapshot;
57
- candidateProjection: ProjectionExpectation;
58
- previousProjection: ProjectionExpectation;
59
- activation: Readonly<{
60
- ok: true;
61
- observation: ActivationObservation;
62
- } | {
63
- ok: false;
64
- failure: LifecycleActivationFailure;
65
- }>;
66
- }>;
67
- export type RecoverInterruptedTransitionRequest = Readonly<{
68
- scope: ScopeContext;
69
- plugin: PluginKey;
70
- record: LifecycleTransitionRecord;
71
- current: InstalledPluginRecord | null;
72
- observation?: ActivationObservation;
73
- }>;
74
- export declare function createLifecycleTransitionReconciler(dependencies: LifecycleTransitionReconcilerDependencies): LifecycleTransitionReconciler;
75
- export interface LifecycleTransitionReconciler {
76
- completeCommittedTransition(request: CompleteCommittedTransitionRequest, signal: AbortSignal): Promise<TransitionReconciliationResult>;
77
- recoverInterruptedTransition(request: RecoverInterruptedTransitionRequest, signal: AbortSignal): Promise<TransitionReconciliationResult>;
78
- }
79
- export type { ActivationObservation, Generation, InstalledPluginRecord, LifecycleTransitionRecord, PluginKey, ProjectionExpectation };
@@ -1,236 +0,0 @@
1
- import "zod";
2
- import { PluginKeySchema } from "../domain/identity.js";
3
- import { ScopeContextSchema, toScopeReference } from "../domain/state/scope.js";
4
- import {} from "../domain/state/config-state.js";
5
- import { InstalledPluginRecordSchema } from "../domain/state/installed-state.js";
6
- import { createInstalledUserStateDocument } from "../domain/state/installed-state.js";
7
- import { createProjectLocalStateDocument } from "../domain/state/project-state.js";
8
- import { parseStateMutation } from "./state-contract.js";
9
- import { ActivationObservationSchema, LifecycleReloadResultSchema, } from "./ports/lifecycle-reload.js";
10
- import { LifecycleTransitionRecordSchemaV1, } from "./ports/lifecycle-transition-store.js";
11
- import { ProjectionExpectationSchema, } from "./ports/runtime-projection.js";
12
- import { classifyInterruptedTransition, projectionMatchesObservation, stateWithoutPending } from "./recovery-contract.js";
13
- // A lifecycle handoff spans foreground reload plus detached scheduler/notice
14
- // maintenance. Those unrelated writers may advance the shared scope several
15
- // times; each retry is still fenced by the exact pending target and reference.
16
- const MAX_REBASE_ATTEMPTS = 8;
17
- function sameJson(left, right) {
18
- if (Object.is(left, right))
19
- return true;
20
- if (left === null || right === null || typeof left !== "object" || typeof right !== "object")
21
- return false;
22
- if (Array.isArray(left) || Array.isArray(right))
23
- return Array.isArray(left) && Array.isArray(right) && left.length === right.length && left.every((value, index) => sameJson(value, right[index]));
24
- const a = left;
25
- const b = right;
26
- const keys = Object.keys(a);
27
- return keys.length === Object.keys(b).length && keys.every((key) => Object.prototype.hasOwnProperty.call(b, key) && sameJson(a[key], b[key]));
28
- }
29
- function target(snapshot, plugin) {
30
- return "installed" in snapshot ? snapshot.installed.plugins.find((entry) => entry.plugin === plugin) : snapshot.project.plugins.find((entry) => entry.plugin === plugin);
31
- }
32
- function records(snapshot) {
33
- return "installed" in snapshot ? snapshot.installed.plugins : snapshot.project.plugins;
34
- }
35
- function replaceTarget(snapshot, plugin, replacement, sha256) {
36
- const next = records(snapshot).filter((entry) => entry.plugin !== plugin);
37
- if (replacement !== null)
38
- next.push(replacement);
39
- if ("installed" in snapshot) {
40
- const installed = createInstalledUserStateDocument({ ...snapshot.installed, generation: snapshot.generation, plugins: next }, sha256);
41
- return parseStateMutation({ scope: snapshot.scope, expectedGeneration: snapshot.generation, replace: { installed } }, sha256);
42
- }
43
- const project = createProjectLocalStateDocument({ ...snapshot.project, generation: snapshot.generation, plugins: next }, snapshot.scope, sha256);
44
- return parseStateMutation({ scope: snapshot.scope, expectedGeneration: snapshot.generation, replace: { project } }, sha256);
45
- }
46
- function withPending(record, reference) {
47
- return InstalledPluginRecordSchema.parse({ ...stateWithoutPending(record), pendingTransition: reference });
48
- }
49
- function matches(snapshot, plugin, candidate, reference, allowAbsent, final) {
50
- const current = target(snapshot, plugin);
51
- if (current === undefined)
52
- return allowAbsent && final === null;
53
- return current.pendingTransition === reference && sameJson(stateWithoutPending(current), candidate);
54
- }
55
- function safeFailure(error) {
56
- if (error !== null && typeof error === "object" && "name" in error && error.name === "AbortError")
57
- return { kind: "adapter-error", code: "ABORTED" };
58
- return { kind: "adapter-error", code: "ADAPTER_FAILED" };
59
- }
60
- function assertSignal(signal) {
61
- if (signal.aborted)
62
- throw signal.reason ?? new DOMException("The operation was aborted", "AbortError");
63
- }
64
- export function createLifecycleTransitionReconciler(dependencies) {
65
- if (dependencies === null || typeof dependencies !== "object")
66
- throw new TypeError("transition reconciler dependencies are required");
67
- async function load(scope, signal) {
68
- const result = await dependencies.state.read(scope, signal);
69
- return result.ok ? result.snapshot : undefined;
70
- }
71
- async function mutatePending(scope, plugin, candidate, final, reference, committed, mutation, signal, allowAbsent = false) {
72
- let expected = committed.generation;
73
- for (let attempt = 0; attempt < MAX_REBASE_ATTEMPTS; attempt += 1) {
74
- assertSignal(signal);
75
- const result = await dependencies.mutations.runPreparedMutation({ scope, plugins: [plugin], expectedGeneration: expected }, async (context) => {
76
- await context.assertOwned();
77
- if (!matches(context.snapshot, plugin, candidate, reference, allowAbsent, final))
78
- throw new Error("transition target changed");
79
- return { mutation: mutation(context.snapshot), value: undefined };
80
- }, signal);
81
- if (result.kind === "committed")
82
- return result.snapshot;
83
- if (result.kind !== "stale-generation" || attempt + 1 >= MAX_REBASE_ATTEMPTS)
84
- return undefined;
85
- const fresh = await load(scope, signal);
86
- if (fresh === undefined || fresh.generation <= expected || !matches(fresh, plugin, candidate, reference, allowAbsent, final))
87
- return undefined;
88
- expected = fresh.generation;
89
- }
90
- return undefined;
91
- }
92
- async function reloadAndObserve(scope, plugin, reference, expectation, signal) {
93
- try {
94
- const reload = LifecycleReloadResultSchema.parse(await dependencies.reload.reload({ scope: toScopeReference(scope), transition: reference }, signal));
95
- if (reload.kind === "failed")
96
- return { ok: false, failure: { kind: "reload-rejected", code: "RELOAD_REJECTED" } };
97
- const observation = ActivationObservationSchema.parse(await dependencies.reload.observe({ scope: toScopeReference(scope), plugin }, signal));
98
- if (!projectionMatchesObservation(observation, expectation, plugin))
99
- return { ok: false, failure: { kind: "observation-mismatch", code: "OBSERVATION_MISMATCH" } };
100
- return { ok: true, observation };
101
- }
102
- catch (error) {
103
- return { ok: false, failure: safeFailure(error) };
104
- }
105
- }
106
- async function settle(scope, reference, outcome, generation, signal) {
107
- try {
108
- await dependencies.transitions.settle({ scope: toScopeReference(scope), reference, outcome, generation }, signal);
109
- return true;
110
- }
111
- catch {
112
- return false;
113
- }
114
- }
115
- async function markRecovery(scope, reference, generation, signal) {
116
- try {
117
- await dependencies.transitions.settle({ scope: toScopeReference(scope), reference, outcome: "recovery-required", generation }, signal);
118
- }
119
- catch { /* startup will retain the pending state */ }
120
- }
121
- async function restoreAndVerify(request, signal) {
122
- const restored = await mutatePending(request.scope, request.plugin, request.candidate, request.previous ?? null, request.reference, request.committed, (snapshot) => replaceTarget(snapshot, request.plugin, request.previous === undefined ? null : withPending(request.previous, request.reference), dependencies.sha256), signal, request.previous === undefined).catch(() => undefined);
123
- if (restored === undefined) {
124
- await markRecovery(request.scope, request.reference, request.committed.generation, signal);
125
- return { kind: "recovery-required", committed: request.committed.generation };
126
- }
127
- const observed = await reloadAndObserve(request.scope, request.plugin, request.reference, request.previousProjection, signal);
128
- if (!observed.ok) {
129
- await markRecovery(request.scope, request.reference, restored.generation, signal);
130
- return { kind: "recovery-required", committed: restored.generation };
131
- }
132
- const restoredRecord = request.previous === undefined ? request.candidate : request.previous;
133
- const final = await mutatePending(request.scope, request.plugin, restoredRecord, request.previous ?? null, request.reference, restored, (snapshot) => replaceTarget(snapshot, request.plugin, request.previous ?? null, dependencies.sha256), signal, request.previous === undefined).catch(() => undefined);
134
- if (final === undefined || !(await settle(request.scope, request.reference, "rolled-back", final.generation, signal))) {
135
- await markRecovery(request.scope, request.reference, final?.generation ?? restored.generation, signal);
136
- return { kind: "recovery-required", committed: final?.generation ?? restored.generation };
137
- }
138
- return { kind: "rolled-back", snapshot: final, observation: observed.observation, failure: request.failure };
139
- }
140
- async function completeCommittedTransition(request, signal) {
141
- const scope = ScopeContextSchema.parse(request.scope);
142
- const plugin = PluginKeySchema.parse(request.plugin);
143
- const candidate = InstalledPluginRecordSchema.parse(request.candidate);
144
- const final = request.final === null ? null : InstalledPluginRecordSchema.parse(request.final);
145
- const candidateProjection = ProjectionExpectationSchema.parse(request.candidateProjection);
146
- const previousProjection = ProjectionExpectationSchema.parse(request.previousProjection);
147
- if (!request.activation.ok)
148
- return restoreAndVerify({ ...request, scope, plugin, candidate, previousProjection, failure: request.activation.failure }, signal);
149
- const settled = await mutatePending(scope, plugin, candidate, final, request.reference, request.committed, (snapshot) => replaceTarget(snapshot, plugin, final, dependencies.sha256), signal);
150
- const journalSettled = settled === undefined ? false : await settle(scope, request.reference, "completed", settled.generation, signal);
151
- if (settled === undefined || !journalSettled) {
152
- await markRecovery(scope, request.reference, settled?.generation ?? request.committed.generation, signal);
153
- return { kind: "recovery-required", committed: settled?.generation ?? request.committed.generation };
154
- }
155
- return { kind: "completed", snapshot: settled, observation: request.activation.observation };
156
- }
157
- async function recoverInterruptedTransition(request, signal) {
158
- assertSignal(signal);
159
- const record = LifecycleTransitionRecordSchemaV1.parse(request.record);
160
- const scope = ScopeContextSchema.parse(request.scope);
161
- const plugin = PluginKeySchema.parse(request.plugin);
162
- const classification = classifyInterruptedTransition({ record, current: request.current, ...(request.observation === undefined ? {} : { observation: request.observation }) });
163
- const currentSnapshot = await load(scope, signal);
164
- if (currentSnapshot === undefined)
165
- return { kind: "recovery-required" };
166
- const current = target(currentSnapshot, plugin);
167
- if (classification.kind === "conflict")
168
- return { kind: "recovery-required", committed: currentSnapshot.generation };
169
- if (classification.kind === "finalize") {
170
- const currentWithoutPending = current === undefined ? null : stateWithoutPending(current);
171
- const candidate = InstalledPluginRecordSchema.parse(record.candidate);
172
- const final = record.final === null ? null : InstalledPluginRecordSchema.parse(record.final);
173
- // A terminal final state is already settled; only the journal status is
174
- // missing. No state rewrite is needed, and no arbitrary replay is possible.
175
- if (current?.pendingTransition === undefined && (final === null ? currentWithoutPending === null : sameJson(currentWithoutPending, final))) {
176
- if (request.observation === undefined || !projectionMatchesObservation(request.observation, record.candidateProjection, plugin)) {
177
- await markRecovery(scope, record.reference, currentSnapshot.generation, signal);
178
- return { kind: "recovery-required", committed: currentSnapshot.generation };
179
- }
180
- if (await settle(scope, record.reference, "completed", currentSnapshot.generation, signal))
181
- return { kind: "completed", snapshot: currentSnapshot, observation: request.observation };
182
- await markRecovery(scope, record.reference, currentSnapshot.generation, signal);
183
- return { kind: "recovery-required", committed: currentSnapshot.generation };
184
- }
185
- const settled = await mutatePending(scope, plugin, candidate, final, record.reference, currentSnapshot, (snapshot) => replaceTarget(snapshot, plugin, final, dependencies.sha256), signal, final === null).catch(() => undefined);
186
- if (settled === undefined || request.observation === undefined || !projectionMatchesObservation(request.observation, record.candidateProjection, plugin) || !(await settle(scope, record.reference, "completed", settled.generation, signal))) {
187
- await markRecovery(scope, record.reference, settled?.generation ?? currentSnapshot.generation, signal);
188
- return { kind: "recovery-required", committed: settled?.generation ?? currentSnapshot.generation };
189
- }
190
- return { kind: "completed", snapshot: settled, observation: request.observation };
191
- }
192
- const candidate = InstalledPluginRecordSchema.parse(record.candidate);
193
- const previous = record.previous === null ? null : InstalledPluginRecordSchema.parse(record.previous);
194
- if (dependencies.reload.reconcileLocal === undefined || current === undefined) {
195
- await markRecovery(scope, record.reference, currentSnapshot.generation, signal);
196
- return { kind: "recovery-required", committed: currentSnapshot.generation };
197
- }
198
- let observation;
199
- try {
200
- // A fresh process has no successor evidence. Reconcile the conservative
201
- // previous target locally while the pending record remains durable, then
202
- // publish authority only after exact participant observation.
203
- observation = await dependencies.reload.reconcileLocal({
204
- scope,
205
- plugin,
206
- target: previous,
207
- expectation: record.previousProjection,
208
- }, signal);
209
- if (!projectionMatchesObservation(observation, record.previousProjection, plugin))
210
- throw new Error("local recovery observation mismatched");
211
- }
212
- catch {
213
- await markRecovery(scope, record.reference, currentSnapshot.generation, signal);
214
- return { kind: "recovery-required", committed: currentSnapshot.generation };
215
- }
216
- const pendingValue = stateWithoutPending(current);
217
- const expectedPending = sameJson(pendingValue, candidate)
218
- ? candidate
219
- : previous !== null && sameJson(pendingValue, previous)
220
- ? previous
221
- : undefined;
222
- if (expectedPending === undefined) {
223
- await markRecovery(scope, record.reference, currentSnapshot.generation, signal);
224
- return { kind: "recovery-required", committed: currentSnapshot.generation };
225
- }
226
- const final = await mutatePending(scope, plugin, expectedPending, previous, record.reference, currentSnapshot, (snapshot) => replaceTarget(snapshot, plugin, previous, dependencies.sha256), signal, previous === null).catch(() => undefined);
227
- const settlement = final === undefined ? false : await settle(scope, record.reference, "rolled-back", final.generation, signal);
228
- if (final === undefined || !settlement) {
229
- await markRecovery(scope, record.reference, final?.generation ?? currentSnapshot.generation, signal);
230
- return { kind: "recovery-required", committed: final?.generation ?? currentSnapshot.generation };
231
- }
232
- return { kind: "rolled-back", snapshot: final, observation, failure: { kind: "observation-mismatch", code: "OBSERVATION_MISMATCH" } };
233
- }
234
- return Object.freeze({ completeCommittedTransition, recoverInterruptedTransition });
235
- }
236
- //# sourceMappingURL=lifecycle-transition-reconciler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle-transition-reconciler.js","sourceRoot":"","sources":["../../src/application/lifecycle-transition-reconciler.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { z } from "zod";
2
- import { type PluginKey } from "../domain/identity.js";
3
- import { type ScopeReference } from "../domain/state/scope.js";
4
- /** One plugin mutation target, qualified by its user/project scope. */
5
- export declare const MutationSubjectSchema: z.ZodReadonly<z.ZodObject<{
6
- scope: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
7
- kind: z.ZodLiteral<"user">;
8
- }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
9
- kind: z.ZodLiteral<"project">;
10
- projectKey: z.core.$ZodBranded<z.ZodString, "ProjectKey", "out">;
11
- }, z.core.$strict>>], "kind">;
12
- plugin: z.core.$ZodBranded<z.ZodString, "PluginKey", "out">;
13
- }, z.core.$strict>>;
14
- export type MutationSubject = z.infer<typeof MutationSubjectSchema>;
15
- /** Serializes mutation callbacks by canonical scope-qualified plugin key. */
16
- export interface KeyedMutationScheduler {
17
- run<T>(subjects: readonly MutationSubject[], work: () => Promise<T>, signal: AbortSignal): Promise<T>;
18
- }
19
- export type { PluginKey, ScopeReference };
@@ -1,12 +0,0 @@
1
- import { z } from "zod";
2
- import { PluginKeySchema } from "../domain/identity.js";
3
- import { ScopeReferenceSchema, } from "../domain/state/scope.js";
4
- /** One plugin mutation target, qualified by its user/project scope. */
5
- export const MutationSubjectSchema = z
6
- .object({
7
- scope: ScopeReferenceSchema,
8
- plugin: PluginKeySchema,
9
- })
10
- .strict()
11
- .readonly();
12
- //# sourceMappingURL=mutation-coordination.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutation-coordination.js","sourceRoot":"","sources":["../../src/application/mutation-coordination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAkB,MAAM,uBAAuB,CAAC;AACxE,OAAO,EACL,oBAAoB,GAErB,MAAM,0BAA0B,CAAC;AAElC,uEAAuE;AACvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,KAAK,EAAE,oBAAoB;IAC3B,MAAM,EAAE,eAAe;CACxB,CAAC;KACD,MAAM,EAAE;KACR,QAAQ,EAAE,CAAC"}