@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.
- package/CHANGELOG.md +14 -0
- package/node_modules/@nklisch/pi-clearance/native/clearance-core.darwin-arm64.node +0 -0
- package/node_modules/@nklisch/pi-clearance/native/clearance-core.darwin-x64.node +0 -0
- package/node_modules/@nklisch/pi-clearance/native/clearance-core.linux-arm64-gnu.node +0 -0
- package/node_modules/@nklisch/pi-clearance/native/clearance-core.win32-x64-msvc.node +0 -0
- package/node_modules/@nklisch/pi-plugins/README.md +2 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/adoption-contract.d.ts +0 -6
- package/node_modules/@nklisch/pi-plugins/dist/application/agent-orientation.d.ts +66 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/agent-orientation.js +223 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/agent-orientation.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-trust-continuity.d.ts +1 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-trust-continuity.js +15 -33
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-trust-continuity.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.d.ts +1 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.js +17 -20
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.d.ts +3 -3
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/configuration-service.d.ts +2 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/configuration-service.js +5 -5
- package/node_modules/@nklisch/pi-plugins/dist/application/configuration-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/convergence-service.d.ts +98 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/convergence-service.js +270 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/convergence-service.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/exact-trust-grant-service.d.ts +3 -5
- package/node_modules/@nklisch/pi-plugins/dist/application/exact-trust-grant-service.js +18 -20
- package/node_modules/@nklisch/pi-plugins/dist/application/exact-trust-grant-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/hook-visibility-service.d.ts +1 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/hook-visibility-service.js +3 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/hook-visibility-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/host-observation-contract.d.ts +25 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/host-observation-contract.js +5 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/host-observation-contract.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-service.d.ts +1 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-service.js +3 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/inspection-contract.d.ts +0 -4
- package/node_modules/@nklisch/pi-plugins/dist/application/installed-revision-descriptor.d.ts +0 -4
- package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.d.ts +0 -9
- package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.js +1 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-inspection-contract.d.ts +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.d.ts +4 -7
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.js +88 -122
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-registration-service.d.ts +1 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-registration-service.js +56 -94
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-registration-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-policy-service.d.ts +1 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-policy-service.js +7 -6
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-policy-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.d.ts +3 -4
- package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.js +8 -11
- package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-candidate-inspection.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-candidate-inspection.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-contract.d.ts +7 -6
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-contract.js +4 -5
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-contract.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-dispatcher.js +2 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-dispatcher.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-error.d.ts +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-error.js +2 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-error.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-help.d.ts +5 -3
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-install.d.ts +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-lifecycle.js +4 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-lifecycle.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-mutation-dispatch.js +13 -21
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-mutation-dispatch.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-operation.d.ts +122 -1124
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.d.ts +8 -4
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.js +4 -3
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-progress.d.ts +6 -4
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-read-dispatch.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-read-dispatch.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.d.ts +30 -7
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.js +4 -3
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-safe-projection.d.ts +0 -6
- package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.d.ts +49 -49
- package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.js +10 -10
- package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-failure-presenter.d.ts +0 -5
- package/node_modules/@nklisch/pi-plugins/dist/application/native-failure-presenter.js +13 -11
- package/node_modules/@nklisch/pi-plugins/dist/application/native-failure-presenter.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-contract.d.ts +55 -70
- package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-contract.js +4 -3
- package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-contract.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-service.js +30 -11
- package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-installed-inspection.js +46 -35
- package/node_modules/@nklisch/pi-plugins/dist/application/native-installed-inspection.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.d.ts +362 -1284
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.js +11 -12
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-service.d.ts +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-service.js +4 -26
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-session.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-session.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation.d.ts +79 -235
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation.js +26 -41
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.d.ts +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.js +23 -68
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-target.d.ts +2 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-target.js +0 -18
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-target.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-update.d.ts +0 -4
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-update.js +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-update.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.d.ts +2 -5
- package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.js +5 -5
- package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-update-policy-service.d.ts +1 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/native-update-policy-service.js +4 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/native-update-policy-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-contract.d.ts +30 -57
- package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-contract.js +9 -32
- package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-contract.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.d.ts +57 -75
- package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.js +293 -583
- package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/artifact-gc.d.ts +21 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/artifact-gc.js +2 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/artifact-gc.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/automatic-update-lifecycle.d.ts +5 -6
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/installed-plugin-loader.d.ts +0 -4
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-reload.d.ts +80 -13
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-reload.js +6 -3
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-reload.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/mcp-runtime.d.ts +0 -16
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-control-input.d.ts +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-inspection-evidence.d.ts +4 -4
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/pending-data-deletion.d.ts +26 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/pending-data-deletion.js +8 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/pending-data-deletion.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-contract.d.ts +12 -9
- package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-contract.js +2 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-contract.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-planner.js +1 -10
- package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-planner.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-projection.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-projection.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-service.d.ts +1 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-service.js +6 -10
- package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-state.d.ts +2 -4
- package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-state.js +9 -8
- package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-state.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/state-contract.d.ts +16 -32
- package/node_modules/@nklisch/pi-plugins/dist/application/state-transaction.d.ts +48 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/state-transaction.js +107 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/state-transaction.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.d.ts +1725 -4546
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.js +3 -22
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-lifecycle.d.ts +1 -3
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-lifecycle.js +1 -5
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-lifecycle.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-service.js +33 -122
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-session.d.ts +0 -20
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-session.js +1 -23
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-session.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/update-contract.d.ts +0 -7
- package/node_modules/@nklisch/pi-plugins/dist/application/update-contract.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/update-contract.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/update-notification-service.d.ts +1 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/update-notification-service.js +5 -3
- package/node_modules/@nklisch/pi-plugins/dist/application/update-notification-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-lease-state.d.ts +1 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-lease-state.js +6 -4
- package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-lease-state.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/agent-orientation-facts.d.ts +42 -0
- package/node_modules/@nklisch/pi-plugins/dist/composition/agent-orientation-facts.js +223 -0
- package/node_modules/@nklisch/pi-plugins/dist/composition/agent-orientation-facts.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/composition/automatic-update-lifecycle-adapter.js +12 -18
- package/node_modules/@nklisch/pi-plugins/dist/composition/automatic-update-lifecycle-adapter.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/background-update-coordinator.d.ts +3 -0
- package/node_modules/@nklisch/pi-plugins/dist/composition/background-update-coordinator.js +10 -0
- package/node_modules/@nklisch/pi-plugins/dist/composition/background-update-coordinator.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.d.ts +3 -7
- package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.js +64 -153
- package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-discovery-services.d.ts +2 -3
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-discovery-services.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-mcp-runtime.d.ts +3 -7
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-mcp-runtime.js +4 -8
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-mcp-runtime.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-inspection-service.d.ts +2 -2
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-inspection-service.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-inspection-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-lifecycle-operation-service.d.ts +2 -5
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-lifecycle-operation-service.js +70 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-lifecycle-operation-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-update-management-service.d.ts +1 -2
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-update-management-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.d.ts +12 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.js +177 -66
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-skill-hook-runtime.d.ts +2 -4
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-skill-hook-runtime.js +24 -43
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-skill-hook-runtime.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-trusted-installation-service.d.ts +1 -2
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-trusted-installation-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/host-status-service.d.ts +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/host-status-service.js +4 -4
- package/node_modules/@nklisch/pi-plugins/dist/composition/host-status-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-evidence.d.ts +3 -3
- package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-evidence.js +6 -6
- package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-evidence.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.d.ts +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.js +4 -5
- package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-plugin-host-contract.d.ts +5 -0
- package/node_modules/@nklisch/pi-plugins/dist/composition/plugin-host-paths.d.ts +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/composition/plugin-host-paths.js +6 -0
- package/node_modules/@nklisch/pi-plugins/dist/composition/plugin-host-paths.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.d.ts +15 -0
- package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.js +228 -154
- package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-participant-qualification.d.ts +7 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-participant-qualification.js +17 -4
- package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-participant-qualification.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility-policy.d.ts +0 -4
- package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility.d.ts +0 -6
- package/node_modules/@nklisch/pi-plugins/dist/domain/error-contract.d.ts +0 -6
- package/node_modules/@nklisch/pi-plugins/dist/domain/error-contract.js +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/domain/error-contract.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/domain/errors.d.ts +0 -6
- package/node_modules/@nklisch/pi-plugins/dist/domain/marketplace.d.ts +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/domain/state/config-state.d.ts +2 -6
- package/node_modules/@nklisch/pi-plugins/dist/domain/state/installed-state.d.ts +4 -4
- package/node_modules/@nklisch/pi-plugins/dist/domain/state/installed-state.js +5 -7
- package/node_modules/@nklisch/pi-plugins/dist/domain/state/installed-state.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/domain/state/project-state.d.ts +2 -4
- package/node_modules/@nklisch/pi-plugins/dist/domain/state/references.d.ts +1 -8
- package/node_modules/@nklisch/pi-plugins/dist/domain/state/references.js +0 -9
- package/node_modules/@nklisch/pi-plugins/dist/domain/state/references.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/domain/state/registry.d.ts +4 -8
- package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.d.ts +5 -13
- package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.js +2 -3
- package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/index.d.ts +16 -38
- package/node_modules/@nklisch/pi-plugins/dist/index.js +8 -22
- package/node_modules/@nklisch/pi-plugins/dist/index.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/cleanup/pending-data-deletion.d.ts +8 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/cleanup/pending-data-deletion.js +112 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/cleanup/pending-data-deletion.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/artifact-gc.d.ts +17 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/artifact-gc.js +143 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/artifact-gc.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/create-node-convergence.d.ts +16 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/create-node-convergence.js +14 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/convergence/create-node-convergence.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/immutable-content-store.d.ts +0 -8
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/immutable-content-store.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/immutable-content-store.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/staging-allocator.d.ts +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/staging-allocator.js +1 -24
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/staging-allocator.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/lifecycle-convergence-migration.d.ts +33 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/lifecycle-convergence-migration.js +416 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/lifecycle-convergence-migration.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.d.ts +10 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.js +31 -4
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/agent-orientation-publisher.d.ts +17 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/agent-orientation-publisher.js +81 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/agent-orientation-publisher.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/extension.js +8 -3
- package/node_modules/@nklisch/pi-plugins/dist/pi/extension.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-control-input.js +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-control-input.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-component.js +9 -22
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-component.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-flow.d.ts +2 -2
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.d.ts +2 -2
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.js +7 -7
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-controller.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-controller.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.d.ts +8 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.js +7 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-render.js +6 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-render.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-session.js +11 -22
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-session.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-status.d.ts +1 -2
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-status.js +1 -3
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-status.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-operation-view.js +2 -4
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-operation-view.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/native-control-human.js +5 -7
- package/node_modules/@nklisch/pi-plugins/dist/pi/native-control-human.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/pi-reload-broker.d.ts +6 -6
- package/node_modules/@nklisch/pi-plugins/dist/pi/pi-reload-broker.js +36 -6
- package/node_modules/@nklisch/pi-plugins/dist/pi/pi-reload-broker.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/plain-language.js +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/plain-language.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-command.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-command.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/lifecycle-participant.d.ts +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/mcp-runtime-binding-provider.d.ts +12 -0
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/mcp-runtime-binding-provider.js +43 -0
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/mcp-runtime-binding-provider.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-package.d.ts +12 -1
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-package.js +27 -10
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-package.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-runtime.js +1 -1
- package/node_modules/@nklisch/pi-plugins/package.json +3 -3
- package/package.json +6 -3
- package/node_modules/@nklisch/pi-plugins/dist/application/generation-mutation-coordinator.d.ts +0 -79
- package/node_modules/@nklisch/pi-plugins/dist/application/generation-mutation-coordinator.js +0 -424
- package/node_modules/@nklisch/pi-plugins/dist/application/generation-mutation-coordinator.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/keyed-mutation-scheduler.d.ts +0 -19
- package/node_modules/@nklisch/pi-plugins/dist/application/keyed-mutation-scheduler.js +0 -235
- package/node_modules/@nklisch/pi-plugins/dist/application/keyed-mutation-scheduler.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.d.ts +0 -79
- package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.js +0 -236
- package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/mutation-coordination.d.ts +0 -19
- package/node_modules/@nklisch/pi-plugins/dist/application/mutation-coordination.js +0 -12
- package/node_modules/@nklisch/pi-plugins/dist/application/mutation-coordination.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-uninstall-cleanup.d.ts +0 -25
- package/node_modules/@nklisch/pi-plugins/dist/application/native-uninstall-cleanup.js +0 -39
- package/node_modules/@nklisch/pi-plugins/dist/application/native-uninstall-cleanup.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-transition-store.d.ts +0 -5020
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-transition-store.js +0 -129
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-transition-store.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/mutation-execution-context.d.ts +0 -9
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/mutation-execution-context.js +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/mutation-execution-context.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/recovery-artifacts.d.ts +0 -29
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/recovery-artifacts.js +0 -4
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/recovery-artifacts.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-lease-store.d.ts +0 -65
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-lease-store.js +0 -16
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-lease-store.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-retention-store.d.ts +0 -43
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-retention-store.js +0 -12
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-retention-store.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/scope-lock.d.ts +0 -15
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/scope-lock.js +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/scope-lock.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/recovery-contract.d.ts +0 -1078
- package/node_modules/@nklisch/pi-plugins/dist/application/recovery-contract.js +0 -126
- package/node_modules/@nklisch/pi-plugins/dist/application/recovery-contract.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/recovery-service.d.ts +0 -39
- package/node_modules/@nklisch/pi-plugins/dist/application/recovery-service.js +0 -170
- package/node_modules/@nklisch/pi-plugins/dist/application/recovery-service.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/revision-collection-service.d.ts +0 -52
- package/node_modules/@nklisch/pi-plugins/dist/application/revision-collection-service.js +0 -228
- package/node_modules/@nklisch/pi-plugins/dist/application/revision-collection-service.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/create-node-recovery-adapters.d.ts +0 -23
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/create-node-recovery-adapters.js +0 -82
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/create-node-recovery-adapters.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.d.ts +0 -15
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.js +0 -35
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.d.ts +0 -7
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.js +0 -95
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/recovery-artifact-scanner.d.ts +0 -3
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/recovery-artifact-scanner.js +0 -83
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/recovery-artifact-scanner.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/revision-artifact-store.d.ts +0 -3
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/revision-artifact-store.js +0 -178
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/revision-artifact-store.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.d.ts +0 -7
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.js +0 -73
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.d.ts +0 -28
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.js +0 -445
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/keyed-mutation-scheduler.d.ts +0 -5
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/keyed-mutation-scheduler.js +0 -17
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/keyed-mutation-scheduler.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.d.ts +0 -15
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.js +0 -292
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/revision-lease-provider.d.ts +0 -18
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/revision-lease-provider.js +0 -180
- 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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"}
|
package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.d.ts
DELETED
|
@@ -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 };
|
package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.js
DELETED
|
@@ -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
|
package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.js.map
DELETED
|
@@ -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"}
|