deadbyte-mcp 0.15.67 → 0.15.69
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/MANIFEST.SHA256 +85 -40
- package/PROVENANCE.json +46 -24
- package/README.txt +46 -33
- package/RELEASE.json +44 -17
- package/SBOM.cdx.json +2 -2
- package/TEST-MATRIX.json +25 -2
- package/bridge/package.json +1 -1
- package/controller/deadbyte-controller.ps1 +65 -1
- package/controller/deadbyte-process-policy.json +4 -4
- package/docs/R184-package-lock.json +97 -0
- package/docs/R186-OWNER-CONSENT-HANDOFF.txt +87 -0
- package/package.json +3 -2
- package/scripts/install-r186-owner-trust.ps1 +59 -0
- package/scripts/r173-protected-preflight.mjs +42 -0
- package/scripts/r175-focused-runner.mjs +38 -0
- package/scripts/r176-log-preview.mjs +18 -0
- package/scripts/r177-owner-trust-inventory.ps1 +36 -0
- package/scripts/r178-full-regression.mjs +21 -0
- package/scripts/r178-npm-ci.mjs +10 -0
- package/scripts/r178-npm-preflight.mjs +16 -0
- package/scripts/r178-release-gates-readonly.mjs +9 -0
- package/scripts/r178-shard-regression.mjs +25 -0
- package/scripts/r179-predecessor-registry.mjs +24 -0
- package/scripts/r179-protected-inventory.ps1 +21 -0
- package/scripts/r186-focused-runner.mjs +22 -0
- package/scripts/r186-owner-anchor-inspect.mjs +6 -0
- package/scripts/r186-owner-consent-check.mjs +86 -0
- package/scripts/r186-owner-grant-cli.mjs +45 -0
- package/scripts/r186-owner-key-local.mjs +22 -0
- package/scripts/r186-owner-review-export.mjs +34 -0
- package/src/activation-authority-proof-r75.mjs +28 -4
- package/src/activation-preflight-r65.mjs +2 -1
- package/src/deadbyte-cli.mjs +69 -56
- package/src/r174-owner-webauthn.mjs +176 -0
- package/src/r175-foreground-boundary.mjs +28 -0
- package/src/r186-owner-anchor.mjs +12 -0
- package/src/r186-owner-consent-preflight.mjs +63 -0
- package/src/r186-owner-grant-broker.mjs +96 -0
- package/src/r186-owner-local-signing.mjs +25 -0
- package/src/r186-owner-request.mjs +40 -0
- package/src/r186-owner-review-export.mjs +49 -0
- package/src/remote-live-log.mjs +81 -5
- package/src/remote-session-guardian.mjs +23 -0
- package/src/version.mjs +1 -1
- package/test/helpers/r175-active-pointer.mjs +28 -0
- package/test/helpers/release-lock.mjs +12 -0
- package/test/r129-sdk-security-baseline.test.mjs +2 -1
- package/test/r130-release-security-contract.test.mjs +11 -10
- package/test/r132-release-identity.test.mjs +12 -11
- package/test/r153-prepublish-identity.test.mjs +1 -1
- package/test/r155-default-live-log.test.mjs +17 -16
- package/test/r160-package-decision-manifest.test.mjs +1 -1
- package/test/r160-release-contract.test.mjs +4 -5
- package/test/r163-isolated-slot-rollback-restore.test.mjs +6 -6
- package/test/r165-live-cli-skew.test.mjs +6 -6
- package/test/r167-release-contract.test.mjs +15 -13
- package/test/r168-protected-entrypoint.test.mjs +14 -11
- package/test/r168-release-contract.test.mjs +4 -3
- package/test/r168-remote-one-shot-coherence.test.mjs +2 -1
- package/test/r172-release-contract.test.mjs +8 -8
- package/test/r173-release-contract.test.mjs +33 -0
- package/test/r174-owner-webauthn.test.mjs +144 -0
- package/test/r175-cli-flags.test.mjs +23 -0
- package/test/r175-foreground-boundary.test.mjs +87 -0
- package/test/r175-guardian-owner-boundary.test.mjs +56 -0
- package/test/r176-pretty-live-log.test.mjs +54 -0
- package/test/r177-windows-absolute-live-path.test.mjs +37 -0
- package/test/r179-absolute-path-live-log.test.mjs +40 -0
- package/test/r179-release-contract.test.mjs +62 -0
- package/test/r186-controller-owner-grant.test.mjs +20 -0
- package/test/r186-owner-consent-preflight.test.mjs +98 -0
- package/test/r186-owner-enrollment.test.mjs +20 -0
- package/test/r186-owner-grant-broker.test.mjs +85 -0
- package/test/r186-owner-local-signing.test.mjs +30 -0
- package/test/r186-owner-request.test.mjs +28 -0
- package/test/r186-owner-review-export.test.mjs +52 -0
- package/test/r48-release-contract.test.mjs +2 -1
- package/test/r51-runtime-coherence.test.mjs +4 -2
- package/test/r58-cleanup-retention.test.mjs +5 -12
- package/test/r58-concurrent-recovery.test.mjs +5 -1
- package/test/r58-stale-owner.test.mjs +9 -3
- package/test/r59-tool-surface-compat.test.mjs +1 -1
- package/test/r75-authority-evidence.test.mjs +32 -0
- package/test/remote-live-log-r37.test.mjs +2 -2
- package/test/remote-live-log-recovery-r36.test.mjs +1 -1
- package/test/remote-session-cli.test.mjs +92 -126
- package/node_modules/which/CHANGELOG.md +0 -166
package/README.txt
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
DEADBYTE MCP V0.15.
|
|
1
|
+
DEADBYTE MCP V0.15.69 / R179 FOREGROUND OBSERVER + READABLE LIVE LOGS
|
|
2
2
|
=========================
|
|
3
3
|
|
|
4
4
|
AUTHENTICATED MACHINE TRUTH + DURABLE AGENT + CODING + AUTONOMOUS PRODUCTION ENGINE
|
|
5
5
|
|
|
6
|
+
R179 RELEASE STATE
|
|
7
|
+
------------------
|
|
8
|
+
0.15.69 is a release candidate until exact npm publication and registry readback.
|
|
9
|
+
The protected Windows regression and independent owner-authorized Autonomous
|
|
10
|
+
grant must pass before calling this a clean stable release. The npm CLI examples
|
|
11
|
+
below describe the intended version once it has been published.
|
|
12
|
+
|
|
6
13
|
NPX PRIMARY OPERATOR UX
|
|
7
14
|
------------------------
|
|
8
15
|
Use the npm CLI entry point instead of the legacy CMD convenience wrapper:
|
|
@@ -16,17 +23,17 @@ check `--version` before issuing a stateful command. The compatibility CMD
|
|
|
16
23
|
fails with an explanation when npm is detected rather than forwarding the
|
|
17
24
|
wrong command to the controller.
|
|
18
25
|
|
|
19
|
-
npx -y deadbyte-mcp@0.15.
|
|
20
|
-
npx -y deadbyte-mcp@0.15.
|
|
21
|
-
npx -y deadbyte-mcp@0.15.
|
|
22
|
-
npx -y deadbyte-mcp@0.15.
|
|
23
|
-
npx -y deadbyte-mcp@0.15.
|
|
24
|
-
npx -y deadbyte-mcp@0.15.
|
|
26
|
+
npx -y deadbyte-mcp@0.15.69 mcp
|
|
27
|
+
npx -y deadbyte-mcp@0.15.69 remote
|
|
28
|
+
npx -y deadbyte-mcp@0.15.69 remote status
|
|
29
|
+
npx -y deadbyte-mcp@0.15.69 remote restart
|
|
30
|
+
npx -y deadbyte-mcp@0.15.69 audit status
|
|
31
|
+
npx -y deadbyte-mcp@0.15.69 audit verify
|
|
25
32
|
|
|
26
33
|
|
|
27
|
-
|
|
34
|
+
R173 EPOCH-REVOKED AUTHORITY PROOF HOTFIX
|
|
28
35
|
------------------------
|
|
29
|
-
This 0.15.
|
|
36
|
+
This 0.15.68 CLI keeps npm publication and local production activation separate.
|
|
30
37
|
When a newer npm CLI finds an older installed runtime, one-shot remote status
|
|
31
38
|
observes the existing stable launcher and prints VERSION SKEW without deploying.
|
|
32
39
|
On a version mismatch, remote arm/disarm/restart and bare foreground remote
|
|
@@ -45,7 +52,7 @@ CLAUDE DESKTOP
|
|
|
45
52
|
"mcpServers": {
|
|
46
53
|
"deadbyte": {
|
|
47
54
|
"command": "npx",
|
|
48
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
55
|
+
"args": ["-y", "deadbyte-mcp@0.15.69", "mcp"]
|
|
49
56
|
}
|
|
50
57
|
}
|
|
51
58
|
}
|
|
@@ -57,7 +64,7 @@ Save as .cursor/mcp.json:
|
|
|
57
64
|
"mcpServers": {
|
|
58
65
|
"deadbyte": {
|
|
59
66
|
"command": "npx",
|
|
60
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
67
|
+
"args": ["-y", "deadbyte-mcp@0.15.69", "mcp"]
|
|
61
68
|
}
|
|
62
69
|
}
|
|
63
70
|
}
|
|
@@ -70,7 +77,7 @@ Save as .vscode/mcp.json:
|
|
|
70
77
|
"deadbyte": {
|
|
71
78
|
"type": "stdio",
|
|
72
79
|
"command": "npx",
|
|
73
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
80
|
+
"args": ["-y", "deadbyte-mcp@0.15.69", "mcp"]
|
|
74
81
|
}
|
|
75
82
|
}
|
|
76
83
|
}
|
|
@@ -80,23 +87,29 @@ Add to the Codex MCP configuration:
|
|
|
80
87
|
|
|
81
88
|
[mcp_servers.deadbyte]
|
|
82
89
|
command = "npx"
|
|
83
|
-
args = ["-y", "deadbyte-mcp@0.15.
|
|
90
|
+
args = ["-y", "deadbyte-mcp@0.15.69", "mcp"]
|
|
84
91
|
|
|
85
92
|
The `mcp` command is the quiet stdio server entry for local MCP clients; stdout is reserved for MCP.
|
|
86
93
|
The remote CLI invokes the stable active-release PowerShell launcher directly with shell=false.
|
|
87
|
-
Bare `remote`
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
94
|
+
Bare `remote` observes an already verified ONLINE runtime. Run `remote start`
|
|
95
|
+
as an explicit one-shot controller action when local runtime is offline. The foreground
|
|
96
|
+
observer never arms/disarms Process, Coding, Autonomous, Desktop or Host standing
|
|
97
|
+
grants, and it does not restart, upgrade, activate or park the runtime.
|
|
98
|
+
Existing owner standing grants are reported without changes. Ctrl+C disconnects
|
|
99
|
+
the foreground log only; the guardian removes only the observation session marker.
|
|
100
|
+
`remote --operator`, `remote --host`, `remote --desktop` and `remote --full`
|
|
101
|
+
are blocked until distinct, signed session-owned grants are implemented. To arm
|
|
102
|
+
an existing policy use explicit one-shot `remote arm*` commands. Project/successor
|
|
103
|
+
Autonomous grants still require independent R70 owner enrollment; the publication
|
|
104
|
+
of a package version does not itself issue that grant. Desktop guarded input needs
|
|
105
|
+
a separate explicit Desktop standing grant (`armdesktop`).
|
|
106
|
+
|
|
107
|
+
The default unified live timeline is compact and sanitized, with Windows paths, START,
|
|
108
|
+
PASS, DENIED, UNKNOWN and grouped heartbeat polling. Exact root-mapped paths
|
|
109
|
+
are shown when verified; unresolved roots are labeled, not guessed. Sensitive
|
|
110
|
+
tool arguments, keys, tokens and private file bodies stay redacted. A 256-bit
|
|
111
|
+
nonce and OS process identities guard concurrent foreground sessions and recovery.
|
|
112
|
+
`remote status` remains a read-only one-shot controller command.
|
|
100
113
|
|
|
101
114
|
R59 DEGRADED RUNTIME + BRIDGE RECONCILIATION
|
|
102
115
|
---------------------------------------------
|
|
@@ -369,7 +382,7 @@ CONTROLLER
|
|
|
369
382
|
----------
|
|
370
383
|
Primary operator entry point:
|
|
371
384
|
|
|
372
|
-
npx -y deadbyte-mcp@0.15.
|
|
385
|
+
npx -y deadbyte-mcp@0.15.69 remote
|
|
373
386
|
|
|
374
387
|
The legacy CMD entry remains compatibility-only for R33 rollback safety.
|
|
375
388
|
|
|
@@ -430,7 +443,7 @@ MCP CLIENT CONFIGURATION
|
|
|
430
443
|
------------------------
|
|
431
444
|
The local stdio entry point is quiet and suitable for MCP hosts:
|
|
432
445
|
|
|
433
|
-
npx -y deadbyte-mcp@0.15.
|
|
446
|
+
npx -y deadbyte-mcp@0.15.69 mcp
|
|
434
447
|
|
|
435
448
|
CLAUDE DESKTOP
|
|
436
449
|
Use the standard local-server entry in claude_desktop_config.json:
|
|
@@ -439,7 +452,7 @@ Use the standard local-server entry in claude_desktop_config.json:
|
|
|
439
452
|
"mcpServers": {
|
|
440
453
|
"deadbyte": {
|
|
441
454
|
"command": "npx",
|
|
442
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
455
|
+
"args": ["-y", "deadbyte-mcp@0.15.69", "mcp"]
|
|
443
456
|
}
|
|
444
457
|
}
|
|
445
458
|
}
|
|
@@ -452,7 +465,7 @@ Create .cursor/mcp.json:
|
|
|
452
465
|
"deadbyte": {
|
|
453
466
|
"type": "stdio",
|
|
454
467
|
"command": "npx",
|
|
455
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
468
|
+
"args": ["-y", "deadbyte-mcp@0.15.69", "mcp"]
|
|
456
469
|
}
|
|
457
470
|
}
|
|
458
471
|
}
|
|
@@ -465,7 +478,7 @@ Create .vscode/mcp.json:
|
|
|
465
478
|
"deadbyte": {
|
|
466
479
|
"type": "stdio",
|
|
467
480
|
"command": "npx",
|
|
468
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
481
|
+
"args": ["-y", "deadbyte-mcp@0.15.69", "mcp"]
|
|
469
482
|
}
|
|
470
483
|
}
|
|
471
484
|
}
|
|
@@ -475,9 +488,9 @@ Add this to ~/.codex/config.toml:
|
|
|
475
488
|
|
|
476
489
|
[mcp_servers.deadbyte]
|
|
477
490
|
command = "npx"
|
|
478
|
-
args = ["-y", "deadbyte-mcp@0.15.
|
|
491
|
+
args = ["-y", "deadbyte-mcp@0.15.69", "mcp"]
|
|
479
492
|
|
|
480
|
-
The remote device path remains `npx -y deadbyte-mcp@0.15.
|
|
493
|
+
The remote device path remains `npx -y deadbyte-mcp@0.15.69 remote`. Remote public MCP uses the
|
|
481
494
|
verified HTTPS named-tunnel URL selected by the active generation; do not commit a private device
|
|
482
495
|
URL or tunnel token into a repository.
|
|
483
496
|
|
package/RELEASE.json
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "deadbyte.release.v1",
|
|
3
3
|
"name": "deadbyte-mcp",
|
|
4
|
-
"version": "0.15.
|
|
5
|
-
"train": "
|
|
6
|
-
"label": "
|
|
4
|
+
"version": "0.15.69",
|
|
5
|
+
"train": "R179",
|
|
6
|
+
"label": "R179 foreground observer and native crash guardian release candidate",
|
|
7
7
|
"protocol_revision": "2026-07-28",
|
|
8
8
|
"parent": {
|
|
9
|
-
"version": "0.15.
|
|
10
|
-
"release_id": "v0.15.
|
|
11
|
-
"manifest_sha256": "
|
|
12
|
-
"generation_manifest_sha256": "
|
|
9
|
+
"version": "0.15.68",
|
|
10
|
+
"release_id": "v0.15.68-ff29dbb2fbb89862",
|
|
11
|
+
"manifest_sha256": "ff29dbb2fbb898625592afb47835a4a62ef289429f1e0a89a83242398cd98885",
|
|
12
|
+
"generation_manifest_sha256": "2887d4a8d54ea6fc6b28869072f72491c892dfe28178b3537936dce958147bd2",
|
|
13
13
|
"activation_status": "PRODUCTION_ACTIVE"
|
|
14
14
|
},
|
|
15
15
|
"runtime_predecessor": {
|
|
16
|
-
"version": "0.15.
|
|
17
|
-
"release_id": "v0.15.
|
|
18
|
-
"manifest_sha256": "
|
|
19
|
-
"generation_manifest_sha256": "
|
|
16
|
+
"version": "0.15.68",
|
|
17
|
+
"release_id": "v0.15.68-ff29dbb2fbb89862",
|
|
18
|
+
"manifest_sha256": "ff29dbb2fbb898625592afb47835a4a62ef289429f1e0a89a83242398cd98885",
|
|
19
|
+
"generation_manifest_sha256": "2887d4a8d54ea6fc6b28869072f72491c892dfe28178b3537936dce958147bd2"
|
|
20
20
|
},
|
|
21
21
|
"source_predecessor": {
|
|
22
|
-
"version": "0.15.
|
|
23
|
-
"train": "
|
|
24
|
-
"source_path": "
|
|
22
|
+
"version": "0.15.68",
|
|
23
|
+
"train": "R173",
|
|
24
|
+
"source_path": "https://registry.npmjs.org/deadbyte-mcp/-/deadbyte-mcp-0.15.68.tgz",
|
|
25
25
|
"release_status": "PUBLISHED_REGISTRY_VERIFIED",
|
|
26
|
-
"manifest_status": "
|
|
27
|
-
"manifest_sha256": "
|
|
28
|
-
"tarball_sha256": "
|
|
26
|
+
"manifest_status": "ACTIVE_PRODUCTION_MANIFEST_VERIFIED",
|
|
27
|
+
"manifest_sha256": "ff29dbb2fbb898625592afb47835a4a62ef289429f1e0a89a83242398cd98885",
|
|
28
|
+
"tarball_sha256": "1a7f1fe05a06178b8d772a140be6e0470790b743cef690c3f8f8165cc61075bf"
|
|
29
29
|
},
|
|
30
30
|
"consolidation": {
|
|
31
31
|
"frontend_status_vocabulary": true,
|
|
@@ -534,5 +534,32 @@
|
|
|
534
534
|
"npm_publish": "NOT_RUN",
|
|
535
535
|
"production_activation": "NOT_RUN",
|
|
536
536
|
"stable_final_claim": false
|
|
537
|
+
},
|
|
538
|
+
"r173": {
|
|
539
|
+
"scope": "EPOCH_REVOKED_AUTHORITY_PROOF_AND_FINAL_REMOTE_RECOVERY",
|
|
540
|
+
"source_predecessor_version": "0.15.67",
|
|
541
|
+
"source_predecessor_train": "R172",
|
|
542
|
+
"source_predecessor_manifest_sha256": "4fd7bfc76b1de6401c142b607cc84e847434b28c888bc99ceb09c9e8e5adc8f8",
|
|
543
|
+
"source_predecessor_tarball_sha256": "0fe761f035f38730a4717448da4217f55464c38cd1616126b5850ff44411cd6d",
|
|
544
|
+
"runtime_predecessor_release_id": "v0.15.61-055d1ff0aa99e60b",
|
|
545
|
+
"epoch_revoked_authority_proof": "GREEN_FOCUSED",
|
|
546
|
+
"public_tool_delta": 0,
|
|
547
|
+
"authority_scope_delta": 0,
|
|
548
|
+
"npm_publish": "NOT_RUN",
|
|
549
|
+
"production_activation": "NOT_RUN",
|
|
550
|
+
"stable_final_claim": false
|
|
551
|
+
},
|
|
552
|
+
"r179": {
|
|
553
|
+
"scope": "FOREGROUND_OBSERVATION_ONLY_CRASH_GUARDIAN_AND_READABLE_WINDOWS_LOGS",
|
|
554
|
+
"source_predecessor_version": "0.15.68",
|
|
555
|
+
"source_predecessor_manifest_sha256": "ff29dbb2fbb898625592afb47835a4a62ef289429f1e0a89a83242398cd98885",
|
|
556
|
+
"source_predecessor_tarball_sha256": "1a7f1fe05a06178b8d772a140be6e0470790b743cef690c3f8f8165cc61075bf",
|
|
557
|
+
"owner_approved_autonomous_grant": "NOT_ISSUED",
|
|
558
|
+
"protected_full_regression": "NOT_VERIFIED",
|
|
559
|
+
"windows_gate": "BLOCKED_R89_UNTRUSTED_INSTALLATION",
|
|
560
|
+
"foreground_live_integration": "NOT_VERIFIED",
|
|
561
|
+
"npm_publish": "NOT_RUN",
|
|
562
|
+
"production_activation": "NOT_RUN",
|
|
563
|
+
"stable_final_claim": false
|
|
537
564
|
}
|
|
538
565
|
}
|
package/SBOM.cdx.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bomFormat": "CycloneDX",
|
|
3
3
|
"specVersion": "1.6",
|
|
4
|
-
"serialNumber": "urn:cdx:deadbyte-mcp:
|
|
4
|
+
"serialNumber": "urn:cdx:deadbyte-mcp:r179:0.15.69",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
7
|
"component": {
|
|
8
8
|
"type": "application",
|
|
9
9
|
"name": "deadbyte-mcp",
|
|
10
|
-
"version": "0.15.
|
|
10
|
+
"version": "0.15.69"
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"components": [
|
package/TEST-MATRIX.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "deadbyte.test-matrix.v1",
|
|
3
|
-
"version": "0.15.
|
|
4
|
-
"train": "
|
|
3
|
+
"version": "0.15.69",
|
|
4
|
+
"train": "R179",
|
|
5
5
|
"primary_platform": "win32-x64",
|
|
6
6
|
"reference": {
|
|
7
7
|
"package": "@wonderwhy-er/desktop-commander",
|
|
@@ -124,6 +124,21 @@
|
|
|
124
124
|
"id": "r168-claim-preservation",
|
|
125
125
|
"command": "Verify read-only R168 signed epoch audit and old R65 claim",
|
|
126
126
|
"expected": "Unresolved claim is preserved; no test key used as owner approval; production pointer and Coding scope unchanged"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"id": "r179-owner-authorized-autonomous",
|
|
130
|
+
"command": "Issue independently signed owner consent from protected broker, verify exact policy and epoch, then arm Autonomous",
|
|
131
|
+
"expected": "Owner proof bound to active release, scoped project, policy hashes, expiry and independently protected signing key"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"id": "r179-protected-full",
|
|
135
|
+
"command": "node --test --test-concurrency=4 test/*.test.mjs in exact protected 0.15.69 installation",
|
|
136
|
+
"expected": "Zero failures; all skips reviewed; R89 trusted installation and native tests pass"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"id": "r179-live-log-and-foreground",
|
|
140
|
+
"command": "Run Ctrl+C, restart, crash and concurrent sessions with pre-existing standing grants and confirm no implicit revocation",
|
|
141
|
+
"expected": "Owner standing grants unchanged; observation-only marker CAS; signed audit remains verifiable"
|
|
127
142
|
}
|
|
128
143
|
],
|
|
129
144
|
"observed_pre_release_evidence": {
|
|
@@ -645,5 +660,13 @@
|
|
|
645
660
|
"new_authority_scopes": 0,
|
|
646
661
|
"publication": "NOT_RUN",
|
|
647
662
|
"production_activation": "NOT_RUN"
|
|
663
|
+
},
|
|
664
|
+
"r179": {
|
|
665
|
+
"owner_consent": "NOT_VERIFIED",
|
|
666
|
+
"protected_full": "NOT_VERIFIED",
|
|
667
|
+
"foreground_live": "NOT_VERIFIED",
|
|
668
|
+
"package_verify_only": "PASS_2552_MANIFEST_ENTRIES",
|
|
669
|
+
"registry_publish": "NOT_RUN",
|
|
670
|
+
"production_activation": "NOT_RUN"
|
|
648
671
|
}
|
|
649
672
|
}
|
package/bridge/package.json
CHANGED
|
@@ -1015,6 +1015,10 @@ function Invoke-AuthorityEpochCommand($Cfg, [string]$Plane, [string]$Action, [st
|
|
|
1015
1015
|
'src\foreground-marker-cas-win32.mjs',
|
|
1016
1016
|
'src\foreground-process-identity.mjs',
|
|
1017
1017
|
'src\windows-powershell-environment.mjs',
|
|
1018
|
+
'scripts\r186-owner-grant-cli.mjs',
|
|
1019
|
+
'src\r186-owner-grant-broker.mjs',
|
|
1020
|
+
'src\r186-owner-consent-preflight.mjs',
|
|
1021
|
+
'src\r70-owner-approval.mjs',
|
|
1018
1022
|
'bin\deadbyte-epoch-lock-r85.node',
|
|
1019
1023
|
'docs\R85-EPOCH-LOCK-BINARY.json',
|
|
1020
1024
|
'native\deadbyte-epoch-lock-r85.cpp'
|
|
@@ -1391,6 +1395,57 @@ function Get-AutonomousLeaseStatus($Cfg) {
|
|
|
1391
1395
|
return [pscustomobject]@{ Configured=$true; Armed=$true; Reason='standing-grant'; EpochSeq=$epoch.Seq; EpochSha256=$epoch.EventSha256 }
|
|
1392
1396
|
}
|
|
1393
1397
|
|
|
1398
|
+
function Invoke-R186ProtectedAutonomousGrant($Cfg, $Meta) {
|
|
1399
|
+
if (-not $Cfg.ContainsKey('AuthorityEpochRoot') -or [string]::IsNullOrWhiteSpace([string]$Cfg.AuthorityEpochRoot)) {
|
|
1400
|
+
Fail 'R70_OWNER_ENROLLMENT_REQUIRED: protected authority root unavailable'
|
|
1401
|
+
}
|
|
1402
|
+
$protectedRoot = [System.IO.Path]::GetFullPath([string]$Cfg.AuthorityEpochRoot)
|
|
1403
|
+
$releaseRoot = [System.IO.Path]::GetFullPath([string]$Cfg.CoreRoot)
|
|
1404
|
+
$relativeFiles = @(
|
|
1405
|
+
'scripts\r186-owner-grant-cli.mjs',
|
|
1406
|
+
'src\r186-owner-grant-broker.mjs',
|
|
1407
|
+
'src\r186-owner-consent-preflight.mjs',
|
|
1408
|
+
'src\r70-owner-approval.mjs',
|
|
1409
|
+
'src\authority-continuity-r65.mjs',
|
|
1410
|
+
'src\privileged-install-trust-r89.mjs',
|
|
1411
|
+
'src\epoch-lock-r85.mjs',
|
|
1412
|
+
'src\canonical-json.mjs',
|
|
1413
|
+
'src\text-policy.mjs',
|
|
1414
|
+
'src\foreground-marker-cas-win32.mjs',
|
|
1415
|
+
'src\foreground-process-identity.mjs',
|
|
1416
|
+
'src\windows-powershell-environment.mjs',
|
|
1417
|
+
'src\release-slot.mjs',
|
|
1418
|
+
'bin\deadbyte-epoch-lock-r85.node',
|
|
1419
|
+
'docs\R85-EPOCH-LOCK-BINARY.json',
|
|
1420
|
+
'native\deadbyte-epoch-lock-r85.cpp'
|
|
1421
|
+
)
|
|
1422
|
+
$releaseManifest = Join-Path $releaseRoot 'MANIFEST.SHA256'
|
|
1423
|
+
$protectedManifest = Join-Path $protectedRoot 'MANIFEST.SHA256'
|
|
1424
|
+
if (-not (Test-Path -LiteralPath $releaseManifest -PathType Leaf) -or
|
|
1425
|
+
-not (Test-Path -LiteralPath $protectedManifest -PathType Leaf) -or
|
|
1426
|
+
(Get-ExecutableHash $releaseManifest) -cne (Get-ExecutableHash $protectedManifest)) {
|
|
1427
|
+
Fail 'R186 protected owner broker release manifest mismatch'
|
|
1428
|
+
}
|
|
1429
|
+
foreach ($relative in $relativeFiles) {
|
|
1430
|
+
$source = Join-Path $releaseRoot $relative
|
|
1431
|
+
$protected = Join-Path $protectedRoot $relative
|
|
1432
|
+
if (-not (Test-Path -LiteralPath $source -PathType Leaf) -or
|
|
1433
|
+
-not (Test-Path -LiteralPath $protected -PathType Leaf) -or
|
|
1434
|
+
(Get-ExecutableHash $source) -cne (Get-ExecutableHash $protected)) {
|
|
1435
|
+
Fail "R186 protected owner broker source mismatch: $relative"
|
|
1436
|
+
}
|
|
1437
|
+
}
|
|
1438
|
+
Assert-ProtectedEpochSourceAcl -Files @($relativeFiles | ForEach-Object { Join-Path $protectedRoot $_ })
|
|
1439
|
+
$cli = Join-Path $protectedRoot 'scripts\r186-owner-grant-cli.mjs'
|
|
1440
|
+
$node = [string]$Cfg.Bridge.FilePath
|
|
1441
|
+
if ([string]::IsNullOrWhiteSpace($node) -or -not (Test-Path -LiteralPath $node -PathType Leaf)) { Fail 'R186 protected owner broker Node unavailable' }
|
|
1442
|
+
$output = @(& $node $cli $RuntimeDir ([string]$Cfg.CodingPolicyFile) ([string]$Cfg.AutonomousPolicyFile))
|
|
1443
|
+
$exit = $LASTEXITCODE
|
|
1444
|
+
if ($exit -ne 0) { Fail "R70_OWNER_ENROLLMENT_REQUIRED: protected owner grant broker rejected (exit=$exit)" }
|
|
1445
|
+
try { return (($output -join [Environment]::NewLine) | ConvertFrom-Json) }
|
|
1446
|
+
catch { Fail 'R186 protected owner grant broker returned invalid JSON' }
|
|
1447
|
+
}
|
|
1448
|
+
|
|
1394
1449
|
function Arm-Autonomous($Cfg) {
|
|
1395
1450
|
$coding = Get-CodingLeaseStatus $Cfg
|
|
1396
1451
|
if (-not $coding.Armed) { Fail 'autonomous plane requires an active coding lease; run armcoding first' }
|
|
@@ -1403,7 +1458,16 @@ function Arm-Autonomous($Cfg) {
|
|
|
1403
1458
|
$legacyOwnerPolicySha256 = '6274492644c303b38117541cc22a59e88e6ff5fdef7051a5d57ad336f45765f5'
|
|
1404
1459
|
$selectedRoots = @($meta.RootIds)
|
|
1405
1460
|
if ([string]$meta.Sha256 -cne $legacyOwnerPolicySha256 -or $selectedRoots.Count -ne 1 -or [string]$selectedRoots[0] -cne 'core') {
|
|
1406
|
-
|
|
1461
|
+
$ownerApproval = Join-Path $RuntimeDir 'owner-consent\autonomous-approval.json'
|
|
1462
|
+
if (-not (Test-Path -LiteralPath $ownerApproval -PathType Leaf)) {
|
|
1463
|
+
Fail 'R70_OWNER_ENROLLMENT_REQUIRED: bounded owner approval is absent'
|
|
1464
|
+
}
|
|
1465
|
+
$issued = Invoke-R186ProtectedAutonomousGrant $Cfg $meta
|
|
1466
|
+
if ($null -eq $issued -or [string]$issued.status -cne 'GRANTED' -or $issued.authority_granted -ne $true) {
|
|
1467
|
+
Fail 'R70_OWNER_ENROLLMENT_REQUIRED: protected owner grant broker did not issue authority'
|
|
1468
|
+
}
|
|
1469
|
+
Write-Host 'AUTONOMOUS PLANE ENABLED BY OWNER-SIGNED BOUNDED GRANT'
|
|
1470
|
+
return
|
|
1407
1471
|
}
|
|
1408
1472
|
Ensure-Directory $RuntimeDir
|
|
1409
1473
|
$nonceBytes = New-Object byte[] 32
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "deadbyte.process-policy.v1",
|
|
3
3
|
"enabled": true,
|
|
4
|
-
"grant_file": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.
|
|
5
|
-
"state_dir": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.
|
|
4
|
+
"grant_file": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.69-r186-owner-consent\\controller\\runtime\\process-grant.json",
|
|
5
|
+
"state_dir": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.69-r186-owner-consent\\controller\\runtime\\process-state",
|
|
6
6
|
"native_host": {
|
|
7
|
-
"path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.
|
|
7
|
+
"path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.69-r186-owner-consent\\bin\\deadbyte-process-host.exe",
|
|
8
8
|
"sha256": "daf9cfb371bee88cafbf5597eaa507fec504dbe0b0ddd40d0c3c2e02817f49e4"
|
|
9
9
|
},
|
|
10
10
|
"roots": {
|
|
11
11
|
"core": {
|
|
12
|
-
"path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.
|
|
12
|
+
"path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.69-r186-owner-consent",
|
|
13
13
|
"deny_paths": [
|
|
14
14
|
"node_modules",
|
|
15
15
|
"controller/runtime",
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "deadbyte-mcp",
|
|
3
|
+
"version": "0.15.69",
|
|
4
|
+
"lockfileVersion": 3,
|
|
5
|
+
"requires": true,
|
|
6
|
+
"packages": {
|
|
7
|
+
"": {
|
|
8
|
+
"name": "deadbyte-mcp",
|
|
9
|
+
"version": "0.15.69",
|
|
10
|
+
"bundleDependencies": [
|
|
11
|
+
"@modelcontextprotocol/server",
|
|
12
|
+
"@modelcontextprotocol/client",
|
|
13
|
+
"typescript",
|
|
14
|
+
"zod"
|
|
15
|
+
],
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@modelcontextprotocol/client": "2.3.1",
|
|
18
|
+
"@modelcontextprotocol/server": "2.3.1",
|
|
19
|
+
"typescript": "5.9.3",
|
|
20
|
+
"zod": "4.4.3"
|
|
21
|
+
},
|
|
22
|
+
"bin": {
|
|
23
|
+
"deadbyte-mcp": "src/deadbyte-cli.mjs"
|
|
24
|
+
},
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">=22"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"node_modules/@modelcontextprotocol/client": {
|
|
30
|
+
"version": "2.3.1",
|
|
31
|
+
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/client/-/client-2.3.1.tgz",
|
|
32
|
+
"integrity": "sha512-mIGZXpHsjnZ6lD+gD/WCMpR5k8yVQQ8nNFH1N0Srf7AvnwTUMYD6pvTY8ng2+He5FfV7YMZLmrjL7cLa/cc3dQ==",
|
|
33
|
+
"inBundle": true,
|
|
34
|
+
"license": "Apache-2.0",
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@modelcontextprotocol/core": "2.3.1",
|
|
37
|
+
"cross-spawn": "^7.0.5",
|
|
38
|
+
"eventsource": "^3.0.2",
|
|
39
|
+
"eventsource-parser": "^3.0.8",
|
|
40
|
+
"jose": "^6.1.3",
|
|
41
|
+
"pkce-challenge": "^5.0.0",
|
|
42
|
+
"zod": "^4.2.0"
|
|
43
|
+
},
|
|
44
|
+
"engines": {
|
|
45
|
+
"node": ">=20"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"node_modules/@modelcontextprotocol/core": {
|
|
49
|
+
"version": "2.3.1",
|
|
50
|
+
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/core/-/core-2.3.1.tgz",
|
|
51
|
+
"integrity": "sha512-laVmIhPGpWi7rG9q+0UigblRN0Hws/Yjlb6qLFtVqryXVLkc4h+yN8z731POD2LnAGQlFe7/tXhUm7Bi0YB91g==",
|
|
52
|
+
"inBundle": true,
|
|
53
|
+
"license": "Apache-2.0",
|
|
54
|
+
"dependencies": {
|
|
55
|
+
"zod": "^4.2.0"
|
|
56
|
+
},
|
|
57
|
+
"engines": {
|
|
58
|
+
"node": ">=20"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"node_modules/@modelcontextprotocol/server": {
|
|
62
|
+
"version": "2.3.1",
|
|
63
|
+
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/server/-/server-2.3.1.tgz",
|
|
64
|
+
"integrity": "sha512-e59MfWuSssj6DoQ96JCTqdW1AXT5/XtnTl0WWd6MU1Ka434fFUGGosCLJbGNySDhHGvxQWoRWK137FXYFkYNWw==",
|
|
65
|
+
"inBundle": true,
|
|
66
|
+
"license": "Apache-2.0",
|
|
67
|
+
"dependencies": {
|
|
68
|
+
"@modelcontextprotocol/core": "2.3.1",
|
|
69
|
+
"zod": "^4.2.0"
|
|
70
|
+
},
|
|
71
|
+
"engines": {
|
|
72
|
+
"node": ">=20"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"node_modules/cross-spawn": {
|
|
76
|
+
"version": "7.0.6",
|
|
77
|
+
"inBundle": true,
|
|
78
|
+
"license": "MIT",
|
|
79
|
+
"dependencies": {"path-key":"^3.1.0","shebang-command":"^2.0.0","which":"^2.0.1"},
|
|
80
|
+
"engines": {"node":">= 8"}
|
|
81
|
+
},
|
|
82
|
+
"node_modules/eventsource": {
|
|
83
|
+
"version":"3.0.7","inBundle":true,"license":"MIT",
|
|
84
|
+
"dependencies":{"eventsource-parser":"^3.0.1"},"engines":{"node":">=18.0.0"}
|
|
85
|
+
},
|
|
86
|
+
"node_modules/eventsource-parser": {"version":"3.1.1","inBundle":true,"license":"MIT","engines":{"node":">=18.0.0"}},
|
|
87
|
+
"node_modules/isexe": {"version":"2.0.0","inBundle":true,"license":"ISC"},
|
|
88
|
+
"node_modules/jose": {"version":"6.2.10","inBundle":true,"license":"MIT","funding":{"url":"https://github.com/sponsors/panva"}},
|
|
89
|
+
"node_modules/path-key": {"version":"3.1.1","inBundle":true,"license":"MIT","engines":{"node":">=8"}},
|
|
90
|
+
"node_modules/pkce-challenge": {"version":"5.0.1","inBundle":true,"license":"MIT","engines":{"node":">=16.20.0"}},
|
|
91
|
+
"node_modules/shebang-command": {"version":"2.0.0","inBundle":true,"license":"MIT","dependencies":{"shebang-regex":"^3.0.0"},"engines":{"node":">=8"}},
|
|
92
|
+
"node_modules/shebang-regex": {"version":"3.0.0","inBundle":true,"license":"MIT","engines":{"node":">=8"}},
|
|
93
|
+
"node_modules/typescript": {"version":"5.9.3","inBundle":true,"license":"Apache-2.0","bin":{"tsc":"bin/tsc","tsserver":"bin/tsserver"},"engines":{"node":">=14.17"}},
|
|
94
|
+
"node_modules/which": {"version":"2.0.2","inBundle":true,"license":"ISC","dependencies":{"isexe":"^2.0.0"},"bin":{"node-which":"bin/node-which"},"engines":{"node":">= 8"}},
|
|
95
|
+
"node_modules/zod": {"version":"4.4.3","inBundle":true,"license":"MIT","funding":{"url":"https://github.com/sponsors/colinhacks"}}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
DEADBYTE MCP / R186 OWNER CONSENT
|
|
2
|
+
2026-10-28
|
|
3
|
+
|
|
4
|
+
CURRENT STATE
|
|
5
|
+
|
|
6
|
+
production remains 0.15.68
|
|
7
|
+
R185 exact tarball 0.15.69 is frozen and protected regression was green
|
|
8
|
+
R186 is an isolated development successor and is not published or activated
|
|
9
|
+
|
|
10
|
+
WHAT R186 ADDS
|
|
11
|
+
|
|
12
|
+
src/r186-owner-consent-preflight.mjs
|
|
13
|
+
verifies owner Ed25519 public key against an exact pinned fingerprint
|
|
14
|
+
verifies the R70 project/policy/artifact/time-bound signature
|
|
15
|
+
returns verified_readonly and authority_granted=false
|
|
16
|
+
|
|
17
|
+
scripts/r186-owner-consent-check.mjs
|
|
18
|
+
loads public owner trust only from these fixed Windows locations
|
|
19
|
+
|
|
20
|
+
C:\Program Files\DEADBYTE-OwnerTrust\owner-anchor.json
|
|
21
|
+
C:\Program Files\DEADBYTE-OwnerTrust\owner-public.pem
|
|
22
|
+
|
|
23
|
+
requires the native R89 protected ACL check for the owner files
|
|
24
|
+
requires protected exact installation for executable verifier source
|
|
25
|
+
verifies the entire installed release manifest before trusting a proof
|
|
26
|
+
derives policy SHA256 from the actual policy files
|
|
27
|
+
derives reviewed_artifact_sha256 from the exact installed MANIFEST.SHA256 bytes
|
|
28
|
+
refuses to enroll a key or grant any authority
|
|
29
|
+
|
|
30
|
+
OWNER ACTION REQUIRED OUTSIDE THIS AGENT
|
|
31
|
+
|
|
32
|
+
the owner must generate and retain the Ed25519 private key on an independently
|
|
33
|
+
controlled device that DEADBYTE MCP and ChatGPT cannot read or execute on
|
|
34
|
+
do not send private key bytes or passwords to ChatGPT or DEADBYTE MCP
|
|
35
|
+
|
|
36
|
+
the owner must inspect and approve the public key fingerprint before a trusted
|
|
37
|
+
administrator-only installation at the two fixed Program Files paths
|
|
38
|
+
owner-anchor.json must have exactly these fields:
|
|
39
|
+
|
|
40
|
+
schema = deadbyte.r186-owner-anchor.v1
|
|
41
|
+
owner_key_id = lowercase SHA256 of Ed25519 SPKI DER public key
|
|
42
|
+
|
|
43
|
+
owner-public.pem contains only that public key
|
|
44
|
+
both files and their ancestor paths must pass Windows R89 ACL trust
|
|
45
|
+
|
|
46
|
+
AFTER A PROTECTED R186 RELEASE EXISTS
|
|
47
|
+
|
|
48
|
+
prepare an R70 owner subject for the exact installed release manifest
|
|
49
|
+
bind root_id, real project_root, the exact coding and autonomous policy SHA256
|
|
50
|
+
bind issued_at_utc and expires_at_utc to at most 1 hour
|
|
51
|
+
|
|
52
|
+
the owner signs that exact subject using the independent private key
|
|
53
|
+
the signed R70 approval is submitted as data, not as an owner key
|
|
54
|
+
R186 preflight may then report verified_readonly
|
|
55
|
+
|
|
56
|
+
STILL REQUIRED BEFORE ARMING OR PUBLISH
|
|
57
|
+
|
|
58
|
+
a separate protected one-time acceptance broker that consumes the owner approval
|
|
59
|
+
owner proof bound to native signed epoch and no-clobber race/crash recovery
|
|
60
|
+
agent-writable consent receipts must never act as grant issuance authority
|
|
61
|
+
controller Arm-Autonomous must invoke that protected broker on the current
|
|
62
|
+
verified runtime with no fallback to a writable source or caller-supplied key
|
|
63
|
+
the owner must explicitly approve this new authority issuance
|
|
64
|
+
run full protected regression again on exact new tarball
|
|
65
|
+
run real foreground live integration without revoking owner standing grants
|
|
66
|
+
publish only after independent release gate passes
|
|
67
|
+
activation is a separate user-approved step
|
|
68
|
+
|
|
69
|
+
NO PUBLISH AND NO GRANT HAVE OCCURRED IN R186
|
|
70
|
+
|
|
71
|
+
LIVE OWNER TRUST INVENTORY / 2026-10-28
|
|
72
|
+
|
|
73
|
+
old public key: C:\Users\DEADBYTE\.deadbyte-mcp\trust\r70-owner-public.pem
|
|
74
|
+
format: Ed25519 public only
|
|
75
|
+
SPKI DER SHA256: b07c6312673a190af6ac40fe86830dfe8c60e2747405f5151b9ae9bb9a71ad10
|
|
76
|
+
owner: local DEADBYTE account, writable to that account
|
|
77
|
+
R89 result: EPOCH_NATIVE_SLOT_UNTRUSTED
|
|
78
|
+
new protected C:\Program Files\DEADBYTE-OwnerTrust enrollment: NOT PRESENT
|
|
79
|
+
|
|
80
|
+
this fingerprint is an observation, not independent proof of owner enrollment
|
|
81
|
+
before any migration, the owner must compare it out of band with the key held
|
|
82
|
+
on their independent device and approve exact scope and expiry
|
|
83
|
+
|
|
84
|
+
R186 FOCUSED RESULT
|
|
85
|
+
29 pass / 0 fail / 0 skip for R70, R174 and R186
|
|
86
|
+
independent trust enrollment: NOT RUN
|
|
87
|
+
one-time protected grant issuance: NOT IMPLEMENTED
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deadbyte-mcp",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.69",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Authenticated MCP agentic runtime with signed skills, persistent model backends, identity-bound remote devices, durable job supervision, immutable release slots, and separately revocable machine authority.",
|
|
@@ -98,7 +98,8 @@
|
|
|
98
98
|
"gate:windows": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/gate-windows-r168.ps1 -Stage all",
|
|
99
99
|
"r168:focused:test": "node test/r168-combined-targeted-runner.mjs",
|
|
100
100
|
"r168:release:verify": "node scripts/npm-release-r48.mjs --verify-only",
|
|
101
|
-
"r172:focused:test": "node --test --test-concurrency=1 test/r172-activation-recovery.test.mjs test/r172-release-contract.test.mjs test/r169-delegate-active.test.mjs test/r169-delegate-cli-integration.test.mjs test/r65-activation-lock-recovery.test.mjs test/r65-activation-orchestration.test.mjs"
|
|
101
|
+
"r172:focused:test": "node --test --test-concurrency=1 test/r172-activation-recovery.test.mjs test/r172-release-contract.test.mjs test/r169-delegate-active.test.mjs test/r169-delegate-cli-integration.test.mjs test/r65-activation-lock-recovery.test.mjs test/r65-activation-orchestration.test.mjs",
|
|
102
|
+
"r173:focused:test": "node --test --test-concurrency=1 test/r75-authority-evidence.test.mjs test/r172-activation-recovery.test.mjs test/r173-release-contract.test.mjs test/r65-activation-preflight.test.mjs test/r65-activation-orchestration.test.mjs"
|
|
102
103
|
},
|
|
103
104
|
"bundleDependencies": [
|
|
104
105
|
"@modelcontextprotocol/server",
|