@nklisch/pi-enhanced 0.1.1 → 0.1.2
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/node_modules/@nklisch/pi-conveniences/package.json +5 -2
- package/node_modules/@nklisch/pi-fff-compat/package.json +5 -2
- package/node_modules/@nklisch/pi-plugins/README.md +16 -13
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.d.ts +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.js +15 -21
- 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 +0 -3
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.js +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.d.ts +110 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.js +186 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.d.ts +3 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-plugin-probe.d.ts +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-plugin-probe.js +38 -11
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-plugin-probe.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.d.ts +2 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.js +22 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.d.ts +11 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.js +58 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-contract.d.ts +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-dispatcher.js +1 -0
- 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-help.d.ts +3 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-mutation-dispatch.js +38 -2
- 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 +2505 -2439
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.d.ts +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.js +2 -1
- 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 +2 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.d.ts +23 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.js +5 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.d.ts +12 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.js +2 -1
- 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.js +1 -1
- 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 +5 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-installed-inspection.js +7 -2
- 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 +464 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.js +3 -2
- 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-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 +77 -11
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.js +3 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.d.ts +11 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.js +9 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.d.ts +22 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.js +21 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/automatic-update-lifecycle.d.ts +4 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-control-applications.d.ts +2 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.d.ts +15 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.js +1 -1
- 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-service.js +4 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/automatic-update-lifecycle-adapter.js +88 -80
- package/node_modules/@nklisch/pi-plugins/dist/composition/automatic-update-lifecycle-adapter.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.js +32 -4
- package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-update-management-service.d.ts +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-update-management-service.js +0 -1
- 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.js +43 -9
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.js +4 -3
- 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 +2 -2
- package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.js +21 -7
- package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-session-environment.d.ts +23 -0
- package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-session-environment.js +30 -0
- package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-session-environment.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.js +2 -0
- package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/index.d.ts +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/index.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/project/node-project-root-resolver.js +8 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/project/node-project-root-resolver.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.d.ts +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.js +3 -52
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.js +6 -8
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.js +6 -6
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.js +4 -49
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.js +9 -18
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-open.d.ts +23 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-open.js +80 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-open.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.d.ts +1 -11
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.js +59 -593
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/extension.js +2 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/extension.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-component.js +2 -2
- 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-manager-actions.d.ts +7 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.js +26 -2
- 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-commands.d.ts +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-commands.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-commands.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-component.d.ts +4 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-component.js +24 -2
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-component.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-controller.js +9 -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 +4 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.js +5 -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.d.ts +3 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-render.js +20 -12
- 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 +43 -14
- 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-operation-view.js +13 -8
- 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 +2 -2
- 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 +2 -2
- package/node_modules/@nklisch/pi-plugins/dist/pi/pi-trust-review.d.ts +8 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/pi-trust-review.js +93 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/pi-trust-review.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-command.js +3 -3
- package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-command.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-manager-lifecycle.d.ts +2 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-manager-lifecycle.js +8 -2
- package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-manager-lifecycle.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/launch-value-provider.js +24 -0
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/launch-value-provider.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-package.js +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 +2 -2
- package/package.json +7 -7
- package/node_modules/@nklisch/pi-conveniences/extensions/agents-context.test.ts +0 -140
- package/node_modules/@nklisch/pi-conveniences/extensions/context-window-footer.test.ts +0 -30
- package/node_modules/@nklisch/pi-conveniences/extensions/exit.test.ts +0 -44
- package/node_modules/@nklisch/pi-conveniences/extensions/model-list.test.ts +0 -34
- package/node_modules/@nklisch/pi-fff-compat/extensions/fff-compat-search.test.ts +0 -76
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-activation-context.d.ts +0 -4
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-activation-context.js +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-activation-context.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/identity-bound-sqlite.d.ts +0 -22
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/identity-bound-sqlite.js +0 -256
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/identity-bound-sqlite.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nklisch/pi-conveniences",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Small drop-in quality-of-life conveniences for Pi — /exit, .agents/AGENTS.md context loading, context-window footer, and subagent model listing.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "nklisch"
|
|
@@ -44,5 +44,8 @@
|
|
|
44
44
|
"@earendil-works/pi-ai": "0.82.0",
|
|
45
45
|
"@earendil-works/pi-coding-agent": "0.82.0",
|
|
46
46
|
"@earendil-works/pi-tui": "0.82.0"
|
|
47
|
-
}
|
|
47
|
+
},
|
|
48
|
+
"files": [
|
|
49
|
+
"extensions"
|
|
50
|
+
]
|
|
48
51
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nklisch/pi-fff-compat",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Fast FFF-backed file search through Pi-native find/grep semantics — glob-only file lookup and exact regex/literal grep with no fuzzy fallback.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "nklisch"
|
|
@@ -47,5 +47,8 @@
|
|
|
47
47
|
},
|
|
48
48
|
"scripts": {
|
|
49
49
|
"test": "bun test extensions/*.test.ts"
|
|
50
|
-
}
|
|
50
|
+
},
|
|
51
|
+
"files": [
|
|
52
|
+
"extensions"
|
|
53
|
+
]
|
|
51
54
|
}
|
|
@@ -8,7 +8,7 @@ Native plugin management for [Pi](https://github.com/badlogic/pi-mono), with com
|
|
|
8
8
|
- transactional install, enable, disable, update, recovery, and uninstall;
|
|
9
9
|
- Agent Skills and command-hook activation;
|
|
10
10
|
- receipt-qualified MCP and subagent lifecycle integration;
|
|
11
|
-
- deterministic `/
|
|
11
|
+
- deterministic `/plugins` commands and a Pi-native interactive manager;
|
|
12
12
|
- offline-safe startup, update policy, diagnostics, and multiprocess coordination.
|
|
13
13
|
|
|
14
14
|
## Requirements
|
|
@@ -22,24 +22,27 @@ Native plugin management for [Pi](https://github.com/badlogic/pi-mono), with com
|
|
|
22
22
|
pi install npm:@nklisch/pi-plugins
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
Then start Pi and run `/
|
|
25
|
+
Then start Pi and run `/plugins`. The manager uses the same progressive list footprint as Pi settings: choose **My Plugins**, **Discover**, **Sources**, **Updates**, or **Health**, then drill into an item and its available actions. Escape returns one level. On a clean installation, open Sources and choose **Add Source**, or use:
|
|
26
26
|
|
|
27
27
|
```text
|
|
28
|
-
/
|
|
29
|
-
/
|
|
28
|
+
/plugins marketplace add nklisch/skills
|
|
29
|
+
/plugins add <plugin@marketplace> --scope user
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
`/
|
|
32
|
+
`/plugins add` adds the complete plugin to the selected user or project plugin list, collects any required configuration and executable trust, installs and enables it, and reloads Pi when activation changes. Use `/plugins help` for the concise command surface:
|
|
33
|
+
|
|
34
|
+
If an installed plugin's executable content changes outside a managed update (a rebuilt local source, a refreshed payload), its exact-trust grant no longer covers it and its hooks and MCP servers stop. At the next session start Pi asks whether to trust the changed content again; accepting records the grant and one `/reload` reactivates the plugin. The same remedy is available any time as the manager's **Trust plugin** action or `/plugins trust`.
|
|
33
35
|
|
|
34
36
|
```text
|
|
35
|
-
/
|
|
36
|
-
/
|
|
37
|
-
/
|
|
38
|
-
/
|
|
39
|
-
/
|
|
40
|
-
/plugin
|
|
41
|
-
/
|
|
42
|
-
/
|
|
37
|
+
/plugins add <plugin> --scope user|project
|
|
38
|
+
/plugins remove <plugin> --scope user|project --keep-data|--delete-data
|
|
39
|
+
/plugins update <plugin> --scope user|project
|
|
40
|
+
/plugins enable <plugin> --scope user|project
|
|
41
|
+
/plugins disable <plugin> --scope user|project
|
|
42
|
+
/plugins trust <plugin> --scope user|project --yes
|
|
43
|
+
/plugins list
|
|
44
|
+
/plugins doctor [plugin]
|
|
45
|
+
/plugins marketplace add|list|refresh|remove ...
|
|
43
46
|
```
|
|
44
47
|
|
|
45
48
|
The older `install`, `uninstall`, and `diagnose` forms remain accepted as compatibility aliases. Workflow-phase and operation-token routes remain available to automation but are intentionally omitted from normal help and completion.
|
|
@@ -8,7 +8,6 @@ import type { AutomaticUpdateLifecyclePort } from "./ports/automatic-update-life
|
|
|
8
8
|
import type { LifecycleClock } from "./ports/lifecycle-clock.js";
|
|
9
9
|
import type { LifecycleStateInventoryPort } from "./ports/lifecycle-state-inventory.js";
|
|
10
10
|
import type { LifecycleStateStore } from "./ports/lifecycle-state-store.js";
|
|
11
|
-
import type { UpdateActivationContextPort } from "./ports/update-activation-context.js";
|
|
12
11
|
import type { UpdatePolicyAuthorityPort } from "./ports/update-policy-authority.js";
|
|
13
12
|
import { type CurrentScopeAuthorityDependencies } from "./current-scope-authority.js";
|
|
14
13
|
export interface AutomaticUpdateCoordinator {
|
|
@@ -24,7 +23,6 @@ export type AutomaticUpdateCoordinatorDependencies = Readonly<{
|
|
|
24
23
|
mutations: GenerationMutationCoordinator;
|
|
25
24
|
policy: UpdatePolicyAuthorityPort;
|
|
26
25
|
lifecycle: AutomaticUpdateLifecyclePort;
|
|
27
|
-
activation: UpdateActivationContextPort;
|
|
28
26
|
continuity: AutomaticTrustContinuity;
|
|
29
27
|
clock: LifecycleClock;
|
|
30
28
|
sha256: Sha256;
|
|
@@ -60,10 +60,6 @@ export function createAutomaticUpdateCoordinator(dependencies) {
|
|
|
60
60
|
return AutomaticUpdateEligibilitySchema.parse({ noticeId, kind: "retryable", retryAt: notice.automatic.retryAt });
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
// Without a live reload-capable context, defer before candidate materialization
|
|
64
|
-
// or lifecycle inspection. Every authority is reread on the admitted call.
|
|
65
|
-
if (dependencies.activation.availability() !== "available")
|
|
66
|
-
return AutomaticUpdateEligibilitySchema.parse({ noticeId, kind: "awaiting-host-context" });
|
|
67
63
|
const authority = await dependencies.lifecycle.inspect(notice, signal);
|
|
68
64
|
if (authority.source === "changed")
|
|
69
65
|
return AutomaticUpdateEligibilitySchema.parse({ noticeId, kind: "approval-required" });
|
|
@@ -79,8 +75,6 @@ export function createAutomaticUpdateCoordinator(dependencies) {
|
|
|
79
75
|
return AutomaticUpdateEligibilitySchema.parse({ noticeId, kind: "secret-unavailable" });
|
|
80
76
|
if (authority.capability === "unavailable")
|
|
81
77
|
return AutomaticUpdateEligibilitySchema.parse({ noticeId, kind: "capability-unavailable" });
|
|
82
|
-
if (dependencies.activation.availability() !== "available")
|
|
83
|
-
return AutomaticUpdateEligibilitySchema.parse({ noticeId, kind: "awaiting-host-context" });
|
|
84
78
|
return AutomaticUpdateEligibilitySchema.parse({ noticeId, kind: "eligible" });
|
|
85
79
|
}
|
|
86
80
|
async function updateNotice(context, id, update, signal) {
|
|
@@ -127,7 +121,6 @@ export function createAutomaticUpdateCoordinator(dependencies) {
|
|
|
127
121
|
case "eligible": return notice;
|
|
128
122
|
case "manual": return UpdateNoticeSchema.parse({ ...notice, disposition: "manual-required", automatic: undefined });
|
|
129
123
|
case "approval-required": return UpdateNoticeSchema.parse({ ...notice, disposition: "approval-required", automatic: { state: "blocked", reason: "approval-required", attemptedAt } });
|
|
130
|
-
case "awaiting-host-context": return UpdateNoticeSchema.parse({ ...notice, disposition: "automatic-pending", automatic: { state: "pending", reason: "awaiting-host-context", attemptedAt } });
|
|
131
124
|
case "configuration-required": return UpdateNoticeSchema.parse({ ...notice, disposition: "configuration-blocked", automatic: { state: "blocked", reason: "configuration-required", attemptedAt } });
|
|
132
125
|
case "secret-unavailable": return UpdateNoticeSchema.parse({ ...notice, disposition: "configuration-blocked", automatic: { state: "blocked", reason: "secret-unavailable", attemptedAt } });
|
|
133
126
|
case "capability-unavailable": return UpdateNoticeSchema.parse({ ...notice, disposition: "capability-blocked", automatic: { state: "blocked", reason: "capability-unavailable", attemptedAt } });
|
|
@@ -153,6 +146,11 @@ export function createAutomaticUpdateCoordinator(dependencies) {
|
|
|
153
146
|
kind: result.kind === "changed" ? "applied" : "current",
|
|
154
147
|
notice: UpdateNoticeSchema.parse({ ...notice, disposition: "automatic-applied", automatic: { state: "applied", attemptedAt }, resolution: { kind: "installed", at: attemptedAt } }),
|
|
155
148
|
};
|
|
149
|
+
if (result.kind === "staged")
|
|
150
|
+
return {
|
|
151
|
+
kind: "staged",
|
|
152
|
+
notice: UpdateNoticeSchema.parse({ ...notice, disposition: "automatic-applied", automatic: { state: "applied", attemptedAt }, resolution: { kind: "installed", at: attemptedAt } }),
|
|
153
|
+
};
|
|
156
154
|
if (result.kind === "recovery-required")
|
|
157
155
|
return {
|
|
158
156
|
kind: "recovery-required",
|
|
@@ -162,7 +160,7 @@ export function createAutomaticUpdateCoordinator(dependencies) {
|
|
|
162
160
|
if (result.kind === "stale")
|
|
163
161
|
return { kind: "stale", reason: "stale", notice: eligibilityUpdate(notice, AutomaticUpdateEligibilitySchema.parse({ noticeId: notice.id, kind: "stale" })) };
|
|
164
162
|
if (result.kind === "cancelled-before-commit")
|
|
165
|
-
return { kind: "pending", reason: "cancelled-before-commit", notice: UpdateNoticeSchema.parse({ ...notice, disposition: "automatic-pending", automatic: { state: "pending",
|
|
163
|
+
return { kind: "pending", reason: "cancelled-before-commit", notice: UpdateNoticeSchema.parse({ ...notice, disposition: "automatic-pending", automatic: { state: "pending", attemptedAt } }) };
|
|
166
164
|
const retryAt = attemptedAt + AUTOMATIC_RETRY_BASE_MS;
|
|
167
165
|
if (result.kind === "rolled-back") {
|
|
168
166
|
return { kind: "retryable", reason: "rolled-back", notice: eligibilityUpdate(notice, AutomaticUpdateEligibilitySchema.parse({ noticeId: notice.id, kind: "retryable", retryAt })) };
|
|
@@ -204,24 +202,20 @@ export function createAutomaticUpdateCoordinator(dependencies) {
|
|
|
204
202
|
const eligibility = await evaluate({ noticeId: candidate.notice.id }, signal, parsed.explicit === true);
|
|
205
203
|
if (eligibility.kind !== "eligible") {
|
|
206
204
|
await updateNotice(candidate.context, candidate.notice.id, (notice) => eligibilityUpdate(notice, eligibility), signal);
|
|
207
|
-
outcomes.push({ noticeId: candidate.notice.id,
|
|
205
|
+
outcomes.push({ noticeId: candidate.notice.id, plugin: candidate.notice.plugin, display: candidate.notice.display, kind: eligibility.kind === "retryable" ? "retryable" : eligibility.kind === "recovery-required" ? "recovery-required" : eligibility.kind === "stale" ? "stale" : "blocked", reason: eligibility.kind });
|
|
208
206
|
continue;
|
|
209
207
|
}
|
|
210
208
|
const latest = await locate(candidate.notice.id, signal);
|
|
211
209
|
if (latest === undefined || latest.notice.resolution !== undefined) {
|
|
212
|
-
outcomes.push({ noticeId: candidate.notice.id, kind: "stale", reason: "notice-stale" });
|
|
213
|
-
continue;
|
|
214
|
-
}
|
|
215
|
-
if (dependencies.activation.availability() !== "available") {
|
|
216
|
-
const pending = AutomaticUpdateEligibilitySchema.parse({ noticeId: latest.notice.id, kind: "awaiting-host-context" });
|
|
217
|
-
await updateNotice(latest.context, latest.notice.id, (notice) => eligibilityUpdate(notice, pending), signal);
|
|
218
|
-
outcomes.push({ noticeId: latest.notice.id, kind: "pending", reason: "awaiting-host-context" });
|
|
210
|
+
outcomes.push({ noticeId: candidate.notice.id, plugin: candidate.notice.plugin, display: candidate.notice.display, kind: "stale", reason: "notice-stale" });
|
|
219
211
|
continue;
|
|
220
212
|
}
|
|
221
|
-
const result =
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
213
|
+
const result = parsed.mode === "stage"
|
|
214
|
+
? await dependencies.lifecycle.stage(latest.notice, signal)
|
|
215
|
+
: await dependencies.lifecycle.apply(latest.notice, signal);
|
|
216
|
+
if (result.kind === "changed" || result.kind === "staged") {
|
|
217
|
+
// Chain the exact trust grant for the just-committed revision within
|
|
218
|
+
// this run so its hooks and MCP servers activate without re-consent.
|
|
225
219
|
// Like ledger settlement, this local write outranks caller
|
|
226
220
|
// cancellation once the update has committed.
|
|
227
221
|
try {
|
|
@@ -234,7 +228,7 @@ export function createAutomaticUpdateCoordinator(dependencies) {
|
|
|
234
228
|
// caller's cancellation. Settle the durable ledger with fresh authority.
|
|
235
229
|
const settlementSignal = new AbortController().signal;
|
|
236
230
|
await updateNotice(latest.context, latest.notice.id, (notice) => lifecycleOutcome(notice, result).notice, settlementSignal);
|
|
237
|
-
outcomes.push({ noticeId: latest.notice.id, kind: projected.kind, ...(projected.reason === undefined ? {} : { reason: projected.reason }) });
|
|
231
|
+
outcomes.push({ noticeId: latest.notice.id, plugin: latest.notice.plugin, display: latest.notice.display, kind: projected.kind, ...(projected.reason === undefined ? {} : { reason: projected.reason }) });
|
|
238
232
|
}
|
|
239
233
|
return NativeAutomaticUpdateRunResultSchema.parse({ outcomes });
|
|
240
234
|
}
|
package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automatic-update-coordinator.js","sourceRoot":"","sources":["../../src/application/automatic-update-coordinator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"automatic-update-coordinator.js","sourceRoot":"","sources":["../../src/application/automatic-update-coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,13 +9,11 @@ export declare const AutomaticUpdateEligibilityReasonRegistry: Readonly<{
|
|
|
9
9
|
readonly configurationRequired: "configuration-required";
|
|
10
10
|
readonly secretUnavailable: "secret-unavailable";
|
|
11
11
|
readonly capabilityUnavailable: "capability-unavailable";
|
|
12
|
-
readonly awaitingHostContext: "awaiting-host-context";
|
|
13
12
|
readonly retryable: "retryable";
|
|
14
13
|
}>;
|
|
15
14
|
export type AutomaticUpdateEligibilityReason = (typeof AutomaticUpdateEligibilityReasonRegistry)[keyof typeof AutomaticUpdateEligibilityReasonRegistry];
|
|
16
15
|
export declare const AutomaticUpdateEligibilityReasonSchema: z.ZodEnum<{
|
|
17
16
|
"approval-required": "approval-required";
|
|
18
|
-
"awaiting-host-context": "awaiting-host-context";
|
|
19
17
|
"capability-unavailable": "capability-unavailable";
|
|
20
18
|
"configuration-required": "configuration-required";
|
|
21
19
|
eligible: "eligible";
|
|
@@ -30,7 +28,6 @@ export declare const AutomaticUpdateEligibilitySchema: z.ZodReadonly<z.ZodObject
|
|
|
30
28
|
noticeId: z.core.$ZodBranded<z.ZodString, "UpdateNoticeId", "out">;
|
|
31
29
|
kind: z.ZodEnum<{
|
|
32
30
|
"approval-required": "approval-required";
|
|
33
|
-
"awaiting-host-context": "awaiting-host-context";
|
|
34
31
|
"capability-unavailable": "capability-unavailable";
|
|
35
32
|
"configuration-required": "configuration-required";
|
|
36
33
|
eligible: "eligible";
|
|
@@ -10,7 +10,6 @@ export const AutomaticUpdateEligibilityReasonRegistry = Object.freeze({
|
|
|
10
10
|
configurationRequired: "configuration-required",
|
|
11
11
|
secretUnavailable: "secret-unavailable",
|
|
12
12
|
capabilityUnavailable: "capability-unavailable",
|
|
13
|
-
awaitingHostContext: "awaiting-host-context",
|
|
14
13
|
retryable: "retryable",
|
|
15
14
|
});
|
|
16
15
|
export const AutomaticUpdateEligibilityReasonSchema = z.enum(Object.values(AutomaticUpdateEligibilityReasonRegistry));
|
package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automatic-update-eligibility.js","sourceRoot":"","sources":["../../src/application/automatic-update-eligibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,CAAC,MAAM,wCAAwC,GAAG,MAAM,CAAC,MAAM,CAAC;IACpE,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,mBAAmB;IACrC,KAAK,EAAE,OAAO;IACd,gBAAgB,EAAE,mBAAmB;IACrC,gBAAgB,EAAE,mBAAmB;IACrC,qBAAqB,EAAE,wBAAwB;IAC/C,iBAAiB,EAAE,oBAAoB;IACvC,qBAAqB,EAAE,wBAAwB;IAC/C,
|
|
1
|
+
{"version":3,"file":"automatic-update-eligibility.js","sourceRoot":"","sources":["../../src/application/automatic-update-eligibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,CAAC,MAAM,wCAAwC,GAAG,MAAM,CAAC,MAAM,CAAC;IACpE,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,mBAAmB;IACrC,KAAK,EAAE,OAAO;IACd,gBAAgB,EAAE,mBAAmB;IACrC,gBAAgB,EAAE,mBAAmB;IACrC,qBAAqB,EAAE,wBAAwB;IAC/C,iBAAiB,EAAE,oBAAoB;IACvC,qBAAqB,EAAE,wBAAwB;IAC/C,SAAS,EAAE,WAAW;CACd,CAAC,CAAC;AAKZ,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAC,IAAI,CAC1D,MAAM,CAAC,MAAM,CAAC,wCAAwC,CAGrD,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,QAAQ,EAAE,oBAAoB;IAC9B,IAAI,EAAE,sCAAsC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;IACrD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC;QAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC,CAAC;AACxL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { Sha256 } from "../domain/source.js";
|
|
3
|
+
import { type ScopeContext } from "../domain/state/scope.js";
|
|
4
|
+
import type { CompatibilityService } from "./compatibility-service.js";
|
|
5
|
+
import type { ExactTrustGrantService } from "./exact-trust-grant-service.js";
|
|
6
|
+
import type { InstalledPluginLoader } from "./ports/installed-plugin-loader.js";
|
|
7
|
+
import type { LifecycleStateStore } from "./ports/lifecycle-state-store.js";
|
|
8
|
+
import type { ProjectRootAuthorityPort } from "./ports/project-root-authority.js";
|
|
9
|
+
/**
|
|
10
|
+
* Exact re-trust of the currently installed revision. Updates grant trust as
|
|
11
|
+
* one lifecycle phase, but no other surface can re-grant trust for a revision
|
|
12
|
+
* that is already installed — without this service a trust-required verdict
|
|
13
|
+
* on an unchanged install is only fixable by remove + add.
|
|
14
|
+
*/
|
|
15
|
+
export declare const NativeTrustGrantResultSchema: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
|
|
16
|
+
kind: z.ZodLiteral<"granted">;
|
|
17
|
+
plugin: z.core.$ZodBranded<z.ZodString, "PluginKey", "out">;
|
|
18
|
+
scope: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
|
|
19
|
+
kind: z.ZodLiteral<"user">;
|
|
20
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
21
|
+
kind: z.ZodLiteral<"project">;
|
|
22
|
+
projectKey: z.core.$ZodBranded<z.ZodString, "ProjectKey", "out">;
|
|
23
|
+
}, z.core.$strict>>], "kind">;
|
|
24
|
+
subject: z.core.$ZodBranded<z.ZodString, "TrustSubjectRef", "out">;
|
|
25
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
26
|
+
kind: z.ZodLiteral<"current-state">;
|
|
27
|
+
plugin: z.core.$ZodBranded<z.ZodString, "PluginKey", "out">;
|
|
28
|
+
scope: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
|
|
29
|
+
kind: z.ZodLiteral<"user">;
|
|
30
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
31
|
+
kind: z.ZodLiteral<"project">;
|
|
32
|
+
projectKey: z.core.$ZodBranded<z.ZodString, "ProjectKey", "out">;
|
|
33
|
+
}, z.core.$strict>>], "kind">;
|
|
34
|
+
reason: z.ZodLiteral<"already-authorized">;
|
|
35
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
36
|
+
kind: z.ZodLiteral<"stale">;
|
|
37
|
+
plugin: z.core.$ZodBranded<z.ZodString, "PluginKey", "out">;
|
|
38
|
+
scope: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
|
|
39
|
+
kind: z.ZodLiteral<"user">;
|
|
40
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
41
|
+
kind: z.ZodLiteral<"project">;
|
|
42
|
+
projectKey: z.core.$ZodBranded<z.ZodString, "ProjectKey", "out">;
|
|
43
|
+
}, z.core.$strict>>], "kind">;
|
|
44
|
+
reason: z.ZodEnum<{
|
|
45
|
+
capability: "capability";
|
|
46
|
+
generation: "generation";
|
|
47
|
+
project: "project";
|
|
48
|
+
revision: "revision";
|
|
49
|
+
}>;
|
|
50
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
51
|
+
kind: z.ZodLiteral<"rejected">;
|
|
52
|
+
plugin: z.core.$ZodBranded<z.ZodString, "PluginKey", "out">;
|
|
53
|
+
scope: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
|
|
54
|
+
kind: z.ZodLiteral<"user">;
|
|
55
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
56
|
+
kind: z.ZodLiteral<"project">;
|
|
57
|
+
projectKey: z.core.$ZodBranded<z.ZodString, "ProjectKey", "out">;
|
|
58
|
+
}, z.core.$strict>>], "kind">;
|
|
59
|
+
code: z.ZodEnum<{
|
|
60
|
+
INCOMPATIBLE: "INCOMPATIBLE";
|
|
61
|
+
PROJECT_UNTRUSTED: "PROJECT_UNTRUSTED";
|
|
62
|
+
}>;
|
|
63
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
64
|
+
kind: z.ZodLiteral<"unavailable">;
|
|
65
|
+
plugin: z.core.$ZodBranded<z.ZodString, "PluginKey", "out">;
|
|
66
|
+
scope: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
|
|
67
|
+
kind: z.ZodLiteral<"user">;
|
|
68
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
69
|
+
kind: z.ZodLiteral<"project">;
|
|
70
|
+
projectKey: z.core.$ZodBranded<z.ZodString, "ProjectKey", "out">;
|
|
71
|
+
}, z.core.$strict>>], "kind">;
|
|
72
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
73
|
+
kind: z.ZodLiteral<"recovery-required">;
|
|
74
|
+
plugin: z.core.$ZodBranded<z.ZodString, "PluginKey", "out">;
|
|
75
|
+
scope: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
|
|
76
|
+
kind: z.ZodLiteral<"user">;
|
|
77
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
78
|
+
kind: z.ZodLiteral<"project">;
|
|
79
|
+
projectKey: z.core.$ZodBranded<z.ZodString, "ProjectKey", "out">;
|
|
80
|
+
}, z.core.$strict>>], "kind">;
|
|
81
|
+
}, z.core.$strict>>], "kind">;
|
|
82
|
+
export type NativeTrustGrantResult = z.infer<typeof NativeTrustGrantResultSchema>;
|
|
83
|
+
export declare const InstalledTrustGrantRequestSchema: z.ZodReadonly<z.ZodObject<{
|
|
84
|
+
scope: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
|
|
85
|
+
kind: z.ZodLiteral<"user">;
|
|
86
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
87
|
+
kind: z.ZodLiteral<"project">;
|
|
88
|
+
projectKey: z.core.$ZodBranded<z.ZodString, "ProjectKey", "out">;
|
|
89
|
+
}, z.core.$strict>>], "kind">;
|
|
90
|
+
plugin: z.core.$ZodBranded<z.ZodString, "PluginKey", "out">;
|
|
91
|
+
expectedRevision: z.ZodString;
|
|
92
|
+
expectedCompatibilityFingerprint: z.ZodString;
|
|
93
|
+
}, z.core.$strict>>;
|
|
94
|
+
export type InstalledTrustGrantRequest = z.infer<typeof InstalledTrustGrantRequestSchema>;
|
|
95
|
+
export interface InstalledTrustGrantService {
|
|
96
|
+
grant(request: InstalledTrustGrantRequest, signal: AbortSignal): Promise<NativeTrustGrantResult>;
|
|
97
|
+
}
|
|
98
|
+
export type InstalledTrustGrantDependencies = Readonly<{
|
|
99
|
+
state: LifecycleStateStore;
|
|
100
|
+
installed: InstalledPluginLoader;
|
|
101
|
+
compatibility: CompatibilityService;
|
|
102
|
+
trust: ExactTrustGrantService;
|
|
103
|
+
projectRoots: ProjectRootAuthorityPort;
|
|
104
|
+
/** The one project this host is bound to; project grants outside it are stale. */
|
|
105
|
+
projectScope: Extract<ScopeContext, {
|
|
106
|
+
kind: "project";
|
|
107
|
+
}>;
|
|
108
|
+
sha256: Sha256;
|
|
109
|
+
}>;
|
|
110
|
+
export declare function createInstalledTrustGrantService(dependencies: InstalledTrustGrantDependencies): InstalledTrustGrantService;
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { PluginKeySchema } from "../domain/identity.js";
|
|
3
|
+
import { ScopeReferenceSchema, createScopeContext, } from "../domain/state/scope.js";
|
|
4
|
+
import { TrustSubjectRefSchema } from "../domain/state/references.js";
|
|
5
|
+
import { createTrustCandidate, evaluateTrust } from "../domain/trust-policy.js";
|
|
6
|
+
import { digestCompatibilityReport } from "./ports/runtime-projection.js";
|
|
7
|
+
/**
|
|
8
|
+
* Exact re-trust of the currently installed revision. Updates grant trust as
|
|
9
|
+
* one lifecycle phase, but no other surface can re-grant trust for a revision
|
|
10
|
+
* that is already installed — without this service a trust-required verdict
|
|
11
|
+
* on an unchanged install is only fixable by remove + add.
|
|
12
|
+
*/
|
|
13
|
+
export const NativeTrustGrantResultSchema = z.discriminatedUnion("kind", [
|
|
14
|
+
z.object({ kind: z.literal("granted"), plugin: PluginKeySchema, scope: ScopeReferenceSchema, subject: TrustSubjectRefSchema }).strict().readonly(),
|
|
15
|
+
z.object({ kind: z.literal("current-state"), plugin: PluginKeySchema, scope: ScopeReferenceSchema, reason: z.literal("already-authorized") }).strict().readonly(),
|
|
16
|
+
z.object({ kind: z.literal("stale"), plugin: PluginKeySchema, scope: ScopeReferenceSchema, reason: z.enum(["revision", "generation", "project", "capability"]) }).strict().readonly(),
|
|
17
|
+
z.object({ kind: z.literal("rejected"), plugin: PluginKeySchema, scope: ScopeReferenceSchema, code: z.enum(["PROJECT_UNTRUSTED", "INCOMPATIBLE"]) }).strict().readonly(),
|
|
18
|
+
z.object({ kind: z.literal("unavailable"), plugin: PluginKeySchema, scope: ScopeReferenceSchema }).strict().readonly(),
|
|
19
|
+
z.object({ kind: z.literal("recovery-required"), plugin: PluginKeySchema, scope: ScopeReferenceSchema }).strict().readonly(),
|
|
20
|
+
]);
|
|
21
|
+
export const InstalledTrustGrantRequestSchema = z.object({
|
|
22
|
+
// Facade-level reference; the full project context is resolved against the
|
|
23
|
+
// host's one bound project inside the service.
|
|
24
|
+
scope: ScopeReferenceSchema,
|
|
25
|
+
plugin: PluginKeySchema,
|
|
26
|
+
// The exact revision the caller inspected. Anything newer in state is a
|
|
27
|
+
// concurrent change and must be re-inspected, never silently trusted.
|
|
28
|
+
expectedRevision: z.string().min(1),
|
|
29
|
+
// The compatibility report fingerprint the caller reviewed. The service
|
|
30
|
+
// re-assesses live (matching the runtime's construction); a drifted report
|
|
31
|
+
// means the granted evidence would differ from the reviewed evidence, so
|
|
32
|
+
// the grant must fail stale rather than trust content nobody confirmed.
|
|
33
|
+
expectedCompatibilityFingerprint: z.string().min(1),
|
|
34
|
+
}).strict().readonly();
|
|
35
|
+
export function createInstalledTrustGrantService(dependencies) {
|
|
36
|
+
if (dependencies === null || typeof dependencies !== "object" || typeof dependencies.sha256 !== "function") {
|
|
37
|
+
throw new TypeError("installed trust grant dependencies are required");
|
|
38
|
+
}
|
|
39
|
+
const service = {
|
|
40
|
+
async grant(requestInput, signal) {
|
|
41
|
+
signal.throwIfAborted();
|
|
42
|
+
const request = InstalledTrustGrantRequestSchema.parse(requestInput);
|
|
43
|
+
const base = { plugin: request.plugin, scope: request.scope };
|
|
44
|
+
let scope;
|
|
45
|
+
if (request.scope.kind === "user") {
|
|
46
|
+
scope = createScopeContext({ kind: "user" }, dependencies.sha256);
|
|
47
|
+
}
|
|
48
|
+
else if (dependencies.projectScope.projectKey === request.scope.projectKey) {
|
|
49
|
+
scope = dependencies.projectScope;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "stale", reason: "project" });
|
|
53
|
+
}
|
|
54
|
+
let installedSnapshot;
|
|
55
|
+
try {
|
|
56
|
+
installedSnapshot = await dependencies.state.read(scope, signal);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
if (signal.aborted)
|
|
60
|
+
throw signal.reason ?? error;
|
|
61
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "unavailable" });
|
|
62
|
+
}
|
|
63
|
+
if (!installedSnapshot.ok)
|
|
64
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "unavailable" });
|
|
65
|
+
const records = "installed" in installedSnapshot.snapshot ? installedSnapshot.snapshot.installed.plugins : installedSnapshot.snapshot.project.plugins;
|
|
66
|
+
const record = records.find((candidate) => candidate.plugin === request.plugin);
|
|
67
|
+
const revision = record?.revisions.find((candidate) => candidate.revision === record.selectedRevision);
|
|
68
|
+
if (record === undefined || revision === undefined || record.selectedRevision !== request.expectedRevision) {
|
|
69
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "stale", reason: "revision" });
|
|
70
|
+
}
|
|
71
|
+
let loaded;
|
|
72
|
+
try {
|
|
73
|
+
loaded = await dependencies.installed.load({ scope, revision }, signal);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
if (signal.aborted)
|
|
77
|
+
throw signal.reason ?? error;
|
|
78
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "unavailable" });
|
|
79
|
+
}
|
|
80
|
+
if (loaded.plugin.identity.key !== request.plugin || loaded.binding !== record.selectedRevision) {
|
|
81
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "stale", reason: "revision" });
|
|
82
|
+
}
|
|
83
|
+
let compatibility;
|
|
84
|
+
try {
|
|
85
|
+
// Re-assess live with the install-time policy so the granted evidence
|
|
86
|
+
// is byte-identical to the candidate the runtime will evaluate at
|
|
87
|
+
// hook/MCP execution time. The stored install-time report would
|
|
88
|
+
// authorize evidence the runtime no longer computes.
|
|
89
|
+
compatibility = await dependencies.compatibility.assess({
|
|
90
|
+
plugin: loaded.plugin,
|
|
91
|
+
...(loaded.installationPolicy === undefined ? {} : { marketplacePolicy: loaded.installationPolicy }),
|
|
92
|
+
}, signal);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
if (signal.aborted)
|
|
96
|
+
throw signal.reason ?? error;
|
|
97
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "unavailable" });
|
|
98
|
+
}
|
|
99
|
+
if (!compatibility.activatable) {
|
|
100
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "rejected", code: "INCOMPATIBLE" });
|
|
101
|
+
}
|
|
102
|
+
if (digestCompatibilityReport(compatibility, dependencies.sha256) !== request.expectedCompatibilityFingerprint) {
|
|
103
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "stale", reason: "capability" });
|
|
104
|
+
}
|
|
105
|
+
const candidate = createTrustCandidate({
|
|
106
|
+
scope: request.scope,
|
|
107
|
+
marketplaceSource: loaded.marketplaceSource,
|
|
108
|
+
plugin: loaded.plugin,
|
|
109
|
+
compatibility,
|
|
110
|
+
content: loaded.content,
|
|
111
|
+
materializationBinding: loaded.binding,
|
|
112
|
+
}, dependencies.sha256);
|
|
113
|
+
// The granted evidence must be byte-identical to the installed record's
|
|
114
|
+
// install-time evidence; a divergence means the content store drifted
|
|
115
|
+
// and nothing here should be trusted.
|
|
116
|
+
if (candidate.evidence.executableSurfaceDigest !== revision.evidence.trust.executableSurfaceDigest) {
|
|
117
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "unavailable" });
|
|
118
|
+
}
|
|
119
|
+
// Trust authority is the user state document regardless of the
|
|
120
|
+
// plugin's install scope.
|
|
121
|
+
let trustSnapshot;
|
|
122
|
+
try {
|
|
123
|
+
trustSnapshot = await dependencies.state.read({ kind: "user" }, signal);
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
if (signal.aborted)
|
|
127
|
+
throw signal.reason ?? error;
|
|
128
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "unavailable" });
|
|
129
|
+
}
|
|
130
|
+
if (!trustSnapshot.ok || !("trust" in trustSnapshot.snapshot)) {
|
|
131
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "unavailable" });
|
|
132
|
+
}
|
|
133
|
+
const decision = evaluateTrust(candidate, trustSnapshot.snapshot.trust.records, dependencies.sha256);
|
|
134
|
+
if (decision.kind === "authorized") {
|
|
135
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "current-state", reason: "already-authorized" });
|
|
136
|
+
}
|
|
137
|
+
let projectRoot;
|
|
138
|
+
if (scope.kind === "project") {
|
|
139
|
+
try {
|
|
140
|
+
projectRoot = await dependencies.projectRoots.acquire(signal);
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
if (signal.aborted)
|
|
144
|
+
throw signal.reason ?? error;
|
|
145
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "stale", reason: "project" });
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
const granted = await dependencies.trust.grant({
|
|
149
|
+
candidate,
|
|
150
|
+
scope,
|
|
151
|
+
...(projectRoot === undefined ? {} : { projectRoot }),
|
|
152
|
+
}, signal);
|
|
153
|
+
if (granted.kind === "recorded") {
|
|
154
|
+
// The grant guards the trust generation, not the installed record; a
|
|
155
|
+
// concurrent update/uninstall could have moved the selection while the
|
|
156
|
+
// mutation committed. The recorded grant is evidence-keyed and inert
|
|
157
|
+
// in that case, but the honest answer is stale, not granted.
|
|
158
|
+
try {
|
|
159
|
+
const settled = await dependencies.state.read(scope, signal);
|
|
160
|
+
const settledRecord = settled.ok
|
|
161
|
+
? ("installed" in settled.snapshot ? settled.snapshot.installed.plugins : settled.snapshot.project.plugins).find((entry) => entry.plugin === request.plugin)
|
|
162
|
+
: undefined;
|
|
163
|
+
if (settledRecord?.selectedRevision !== request.expectedRevision) {
|
|
164
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "stale", reason: "revision" });
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
if (signal.aborted)
|
|
169
|
+
throw signal.reason ?? error;
|
|
170
|
+
}
|
|
171
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "granted", subject: granted.subject });
|
|
172
|
+
}
|
|
173
|
+
if (granted.kind === "already-recorded")
|
|
174
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "current-state", reason: "already-authorized" });
|
|
175
|
+
if (granted.kind === "stale")
|
|
176
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "stale", reason: "generation" });
|
|
177
|
+
if (granted.kind === "project-stale")
|
|
178
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "stale", reason: "project" });
|
|
179
|
+
if (granted.kind === "project-untrusted")
|
|
180
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "rejected", code: "PROJECT_UNTRUSTED" });
|
|
181
|
+
return NativeTrustGrantResultSchema.parse({ ...base, kind: "recovery-required" });
|
|
182
|
+
},
|
|
183
|
+
};
|
|
184
|
+
return Object.freeze(service);
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=installed-trust-grant-service.js.map
|