deadbyte-mcp 0.15.0 → 0.15.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/MANIFEST.SHA256 +109 -64
- package/PROVENANCE.json +11 -0
- package/R45-PARENT.json +18 -0
- package/README.txt +36 -20
- package/RELEASE.json +53 -0
- package/SBOM.cdx.json +46 -0
- package/TEST-MATRIX.json +31 -0
- package/bin/deadbyte-hardware-observer-r45.exe +0 -0
- package/bin/deadbyte-hardware-observer-r45.obj +0 -0
- package/controller/README.TXT +2 -2
- package/controller/deadbyte-controller.ps1 +51 -3
- package/controller/deadbyte-process-policy.json +63 -1
- package/docs/ARCHITECTURE.md +3 -4
- package/native/deadbyte-hardware-observer.cpp +308 -0
- package/package.json +14 -7
- package/scripts/autonomous-tests.ps1 +2 -2
- package/scripts/build-hardware-r45.ps1 +71 -0
- package/scripts/deferred-slot-operation-r45.mjs +126 -0
- package/scripts/deferred-slot-operation-r46.mjs +126 -0
- package/scripts/derive-r45-parent.mjs +24 -0
- package/scripts/derive-r45-release.mjs +72 -0
- package/scripts/derive-r45-tests.mjs +20 -0
- package/scripts/final-closure-r45.mjs +121 -0
- package/scripts/final-closure-r46.mjs +98 -0
- package/scripts/final-closure-verify-r45.mjs +220 -0
- package/scripts/final-closure-verify-r46.mjs +119 -0
- package/scripts/finalize-r45.mjs +219 -0
- package/scripts/full-regression-r45.mjs +20 -0
- package/scripts/full-regression-r46.mjs +20 -0
- package/scripts/full-regression-summary-r45.mjs +14 -0
- package/scripts/gate-windows-r45.ps1 +44 -0
- package/scripts/gate-windows-r46.ps1 +56 -0
- package/scripts/init-host-policy.ps1 +39 -1
- package/scripts/inspect-active-release-r45.mjs +20 -0
- package/scripts/refresh-process-policy.mjs +64 -7
- package/scripts/release-manifest.mjs +3 -1
- package/scripts/release-parity-r45.mjs +253 -0
- package/scripts/release-parity-r46.mjs +187 -0
- package/scripts/release-parity-tests-r45.ps1 +8 -0
- package/scripts/verify-r45-parent.mjs +142 -0
- package/scripts/windows-gate-evidence-r45.mjs +60 -0
- package/scripts/windows-gate-evidence-r46.mjs +110 -0
- package/src/autonomous-runtime.mjs +12 -7
- package/src/capability-ledger.mjs +2 -0
- package/src/compact-gateway-mcp-tools.mjs +11 -7
- package/src/deadbyte-cli.mjs +24 -12
- package/src/doctor-r45.mjs +65 -0
- package/src/host-plane.mjs +133 -85
- package/src/machine-fs-mcp-tools.mjs +3 -3
- package/src/machine-fs-output-contracts.mjs +1 -1
- package/src/machine-fs-read-worker.mjs +46 -0
- package/src/machine-fs.mjs +63 -10
- package/src/mcp-server.mjs +68 -23
- package/src/mcp-smoke-client.mjs +4 -1
- package/src/native-diff-v2.mjs +9 -4
- package/src/native-diff.mjs +29 -7
- package/src/observation-mcp-tools.mjs +5 -1
- package/src/observation-output-contracts.mjs +8 -0
- package/src/observation-runtime.mjs +57 -5
- package/src/observation-smoke-client.mjs +6 -2
- package/src/output-contracts.mjs +27 -11
- package/src/process-mcp-tools.mjs +18 -5
- package/src/process-output-contracts.mjs +20 -3
- package/src/process-policy.mjs +3 -1
- package/src/process-runtime.mjs +99 -19
- package/src/process-smoke-client.mjs +67 -22
- package/src/r45-compact-disarmed-probe.mjs +74 -0
- package/src/r45-full-surface-probe.mjs +34 -0
- package/src/release-generation.mjs +23 -3
- package/src/remote-device-r44.mjs +53 -15
- package/src/remote-mcp-r45-parity-client.mjs +206 -0
- package/src/remote-mcp-smoke-client.mjs +1 -1
- package/src/runtime-update.mjs +36 -8
- package/src/stdio-console-guard.mjs +24 -0
- package/src/version.mjs +1 -1
- package/test/agent-runtime.test.mjs +1 -0
- package/test/autonomous-loop.test.mjs +24 -0
- package/test/autonomous-runtime.test.mjs +1 -0
- package/test/cli-entrypoint.test.mjs +4 -4
- package/test/coding-plane.test.mjs +1 -0
- package/test/compact-gateway-r36.test.mjs +28 -0
- package/test/compact-max-catalog-r45.test.mjs +99 -0
- package/test/contained.test.mjs +23 -11
- package/test/controller.test.mjs +5 -1
- package/test/core.test.mjs +1 -1
- package/test/full-max-catalog-r45.test.mjs +91 -0
- package/test/full-max-catalog-r46.test.mjs +92 -0
- package/test/hardware-observation-r45.test.mjs +44 -0
- package/test/host-inline-r45.test.mjs +67 -0
- package/test/machine-fs-mcp-tools.test.mjs +4 -1
- package/test/machine-fs-runtime.test.mjs +18 -2
- package/test/machine-mcp-integration.test.mjs +1 -0
- package/test/observation-mcp-tools.test.mjs +4 -3
- package/test/observation-runtime.test.mjs +29 -2
- package/test/output-schema.test.mjs +1 -0
- package/test/package-boundary.test.mjs +1 -1
- package/test/process-mcp-tools.test.mjs +23 -5
- package/test/process-policy-refresh.test.mjs +87 -10
- package/test/process-runtime.test.mjs +111 -1
- package/test/process-supervision.test.mjs +4 -2
- package/test/production-docs.test.mjs +3 -3
- package/test/r33-closeout-regression.test.mjs +20 -19
- package/test/r33-finalization.test.mjs +3 -3
- package/test/r45-autonomous-quick-test.test.mjs +10 -0
- package/test/r45-finalization.test.mjs +84 -0
- package/test/release-generation.test.mjs +26 -11
- package/test/release-version.test.mjs +112 -46
- package/test/remote-device-r44.test.mjs +75 -0
- package/test/remote-r24-catalog.test.mjs +2 -2
- package/test/runtime-host-bootstrap-r45.test.mjs +46 -0
package/README.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
DEADBYTE MCP V0.15.
|
|
1
|
+
DEADBYTE MCP V0.15.2 / R46 FILELESS POWERSHELL PRODUCT BASELINE
|
|
2
2
|
=========================
|
|
3
3
|
|
|
4
4
|
AUTHENTICATED MACHINE TRUTH + DURABLE AGENT + CODING + AUTONOMOUS PRODUCTION ENGINE
|
|
@@ -7,12 +7,12 @@ NPX PRIMARY OPERATOR UX
|
|
|
7
7
|
------------------------
|
|
8
8
|
Use the npm CLI entry point instead of the legacy CMD convenience wrapper:
|
|
9
9
|
|
|
10
|
-
npx -y deadbyte-mcp@0.15.
|
|
11
|
-
npx deadbyte-mcp@
|
|
12
|
-
npx deadbyte-mcp@
|
|
13
|
-
npx deadbyte-mcp@
|
|
14
|
-
npx deadbyte-mcp@
|
|
15
|
-
npx deadbyte-mcp@
|
|
10
|
+
npx -y deadbyte-mcp@0.15.2 mcp
|
|
11
|
+
npx -y deadbyte-mcp@0.15.2 remote
|
|
12
|
+
npx -y deadbyte-mcp@0.15.2 remote status
|
|
13
|
+
npx -y deadbyte-mcp@0.15.2 remote restart
|
|
14
|
+
npx -y deadbyte-mcp@0.15.2 audit status
|
|
15
|
+
npx -y deadbyte-mcp@0.15.2 audit verify
|
|
16
16
|
|
|
17
17
|
The `mcp` command is the quiet stdio server entry for local MCP clients; stdout is reserved for MCP.
|
|
18
18
|
The remote CLI invokes the stable active-release PowerShell launcher directly with shell=false.
|
|
@@ -33,6 +33,19 @@ The legacy CMD file remains only as an R33 compatibility artifact until activati
|
|
|
33
33
|
proof confirms the npx path; it is not the primary operator interface. Audit data lives under the
|
|
34
34
|
stable mutable state root and never inside immutable release slots.
|
|
35
35
|
|
|
36
|
+
R46 FILELESS POWERSHELL PROCESS PROFILE
|
|
37
|
+
--------------------------------------
|
|
38
|
+
The Process plane includes a hash-pinned `powershell` profile for bounded one-shot source execution through
|
|
39
|
+
`powershell.exe -Command <source>` without creating a temporary `.ps1` script file. The generated release
|
|
40
|
+
policy re-pins both `cmd.exe` and Windows PowerShell from the target machine at activation time, so system
|
|
41
|
+
binary hashes are never assumed portable across Windows builds. The one-shot profile is shell=false, accepts one source argument up to 8192 UTF-8 bytes, uses pipe transport,
|
|
42
|
+
and remains gated by the explicit Process standing grant. R46 also ships `powershell_repl`, a separately
|
|
43
|
+
policy-opted persistent PowerShell session profile. `process_session_write` accepts bounded UTF-8 input only
|
|
44
|
+
for profiles with `allow_raw_input=true`; every write rechecks the standing grant and journals only byte count
|
|
45
|
+
plus SHA-256, never the raw command text. Process reads support bounded waits and negative tail offsets, while
|
|
46
|
+
retention remains byte-capped with an explicit earliest offset and stream digest. Signed journals remain the
|
|
47
|
+
authority for session history.
|
|
48
|
+
|
|
36
49
|
AUTHORITY MODEL
|
|
37
50
|
---------------
|
|
38
51
|
The original containment core remains five tools:
|
|
@@ -213,7 +226,7 @@ CONTROLLER
|
|
|
213
226
|
----------
|
|
214
227
|
Primary operator entry point:
|
|
215
228
|
|
|
216
|
-
npx deadbyte-mcp@
|
|
229
|
+
npx -y deadbyte-mcp@0.15.2 remote
|
|
217
230
|
|
|
218
231
|
The legacy CMD entry remains compatibility-only for R33 rollback safety.
|
|
219
232
|
|
|
@@ -274,7 +287,7 @@ MCP CLIENT CONFIGURATION
|
|
|
274
287
|
------------------------
|
|
275
288
|
The local stdio entry point is quiet and suitable for MCP hosts:
|
|
276
289
|
|
|
277
|
-
npx -y deadbyte-mcp@0.
|
|
290
|
+
npx -y deadbyte-mcp@0.15.2 mcp
|
|
278
291
|
|
|
279
292
|
CLAUDE DESKTOP
|
|
280
293
|
Use the standard local-server entry in claude_desktop_config.json:
|
|
@@ -283,7 +296,7 @@ Use the standard local-server entry in claude_desktop_config.json:
|
|
|
283
296
|
"mcpServers": {
|
|
284
297
|
"deadbyte": {
|
|
285
298
|
"command": "npx",
|
|
286
|
-
"args": ["-y", "deadbyte-mcp@0.
|
|
299
|
+
"args": ["-y", "deadbyte-mcp@0.15.2", "mcp"]
|
|
287
300
|
}
|
|
288
301
|
}
|
|
289
302
|
}
|
|
@@ -296,7 +309,7 @@ Create .cursor/mcp.json:
|
|
|
296
309
|
"deadbyte": {
|
|
297
310
|
"type": "stdio",
|
|
298
311
|
"command": "npx",
|
|
299
|
-
"args": ["-y", "deadbyte-mcp@0.
|
|
312
|
+
"args": ["-y", "deadbyte-mcp@0.15.2", "mcp"]
|
|
300
313
|
}
|
|
301
314
|
}
|
|
302
315
|
}
|
|
@@ -309,7 +322,7 @@ Create .vscode/mcp.json:
|
|
|
309
322
|
"deadbyte": {
|
|
310
323
|
"type": "stdio",
|
|
311
324
|
"command": "npx",
|
|
312
|
-
"args": ["-y", "deadbyte-mcp@0.
|
|
325
|
+
"args": ["-y", "deadbyte-mcp@0.15.2", "mcp"]
|
|
313
326
|
}
|
|
314
327
|
}
|
|
315
328
|
}
|
|
@@ -319,9 +332,9 @@ Add this to ~/.codex/config.toml:
|
|
|
319
332
|
|
|
320
333
|
[mcp_servers.deadbyte]
|
|
321
334
|
command = "npx"
|
|
322
|
-
args = ["-y", "deadbyte-mcp@0.
|
|
335
|
+
args = ["-y", "deadbyte-mcp@0.15.2", "mcp"]
|
|
323
336
|
|
|
324
|
-
The remote device path remains `npx deadbyte-mcp@
|
|
337
|
+
The remote device path remains `npx -y deadbyte-mcp@0.15.2 remote`. Remote public MCP uses the
|
|
325
338
|
verified HTTPS named-tunnel URL selected by the active generation; do not commit a private device
|
|
326
339
|
URL or tunnel token into a repository.
|
|
327
340
|
|
|
@@ -379,12 +392,15 @@ R36 reproducible capability evidence and comparison rules are recorded in
|
|
|
379
392
|
`docs/R36-CAPABILITY-EVIDENCE.md`. Comparisons distinguish upstream `documented` capability from
|
|
380
393
|
retained `direct_observation`; tool count is not a release verdict.
|
|
381
394
|
|
|
382
|
-
Desktop Commander provides a mature local filesystem/terminal MCP and Remote Desktop Commander
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
395
|
+
Desktop Commander provides a mature local filesystem/terminal MCP and Remote Desktop Commander adds a hosted
|
|
396
|
+
remote relay. R46 incorporates the production terminal techniques that materially close workload gaps without
|
|
397
|
+
copying their authority model: persistent process sessions, bounded profile-opted stdin, waitable/tail output
|
|
398
|
+
reads, chunked retained-output eviction without whole-buffer recopy, stale-aware remote reachability,
|
|
399
|
+
bounded idempotent probe retry, no-retry mutation dispatch, bounded async observation-search retention,
|
|
400
|
+
and restart-safe exact catalogs. DEADBYTE keeps its stronger
|
|
401
|
+
self-owned content-addressed release chain, separately revocable process/coding/autonomous/desktop/host planes,
|
|
402
|
+
hash-preconditioned edits, Ed25519 signed receipts/journals, contained fixed workers, exact public-catalog gates,
|
|
403
|
+
and tested rollback/restore. Fuzzy mutation is deliberately not substituted for exact mutation preconditions.
|
|
388
404
|
|
|
389
405
|
Serena has broader semantic language coverage through multiple language-server backends. DEADBYTE
|
|
390
406
|
currently does not match that semantic breadth: its built-in semantic backend is JS/TS. For JS/TS,
|
package/RELEASE.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "deadbyte.release.v1",
|
|
3
|
+
"name": "deadbyte-mcp",
|
|
4
|
+
"version": "0.15.2",
|
|
5
|
+
"train": "R46",
|
|
6
|
+
"label": "FILELESS POWERSHELL PRODUCT BASELINE",
|
|
7
|
+
"protocol_revision": "2026-07-28",
|
|
8
|
+
"parent": {
|
|
9
|
+
"release_id": "v0.15.1-d55f00b5144dc31a",
|
|
10
|
+
"manifest_sha256": "d55f00b5144dc31a7fe39e4dc60d640a94780da6aaeca0918e87636b816d7854",
|
|
11
|
+
"generation_manifest_sha256": "00cde7bf540cc2804d679a39040d5b07193c5f8a0d49cac3b882402f8f4e6ad8"
|
|
12
|
+
},
|
|
13
|
+
"platform": {
|
|
14
|
+
"primary": "win32",
|
|
15
|
+
"architectures": [
|
|
16
|
+
"x64"
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"capabilities": {
|
|
20
|
+
"host_execution_modes": [
|
|
21
|
+
"script",
|
|
22
|
+
"inline",
|
|
23
|
+
"native"
|
|
24
|
+
],
|
|
25
|
+
"hardware_queries": [
|
|
26
|
+
"cpu",
|
|
27
|
+
"gpu",
|
|
28
|
+
"memory",
|
|
29
|
+
"storage",
|
|
30
|
+
"network",
|
|
31
|
+
"pci"
|
|
32
|
+
],
|
|
33
|
+
"compact_tool_count": 43,
|
|
34
|
+
"full_tool_count": 83,
|
|
35
|
+
"process_profiles": [
|
|
36
|
+
"ping_hold",
|
|
37
|
+
"powershell",
|
|
38
|
+
"powershell_repl"
|
|
39
|
+
],
|
|
40
|
+
"powershell_fileless": true,
|
|
41
|
+
"powershell_source_max_arg_bytes": 8192,
|
|
42
|
+
"powershell_persistent_repl": true,
|
|
43
|
+
"process_raw_input_profile_opt_in": true,
|
|
44
|
+
"process_tail_reads": true,
|
|
45
|
+
"process_wait_reads": true,
|
|
46
|
+
"process_chunked_output_ring": true,
|
|
47
|
+
"remote_reachability_ttl": true,
|
|
48
|
+
"remote_probe_timeout_retry": true,
|
|
49
|
+
"remote_dispatch_timeout_no_retry": true,
|
|
50
|
+
"observation_search_session_ttl": true,
|
|
51
|
+
"observation_search_session_cap": 128
|
|
52
|
+
}
|
|
53
|
+
}
|
package/SBOM.cdx.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"bomFormat": "CycloneDX",
|
|
3
|
+
"specVersion": "1.6",
|
|
4
|
+
"serialNumber": "urn:uuid:deadbyte-mcp-r46-0-15-2",
|
|
5
|
+
"version": 1,
|
|
6
|
+
"metadata": {
|
|
7
|
+
"component": {
|
|
8
|
+
"type": "application",
|
|
9
|
+
"name": "deadbyte-mcp",
|
|
10
|
+
"version": "0.15.2"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"components": [
|
|
14
|
+
{
|
|
15
|
+
"type": "library",
|
|
16
|
+
"name": "@modelcontextprotocol/client",
|
|
17
|
+
"version": "2.0.0"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"type": "library",
|
|
21
|
+
"name": "@modelcontextprotocol/server",
|
|
22
|
+
"version": "2.0.0"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"type": "library",
|
|
26
|
+
"name": "typescript",
|
|
27
|
+
"version": "5.9.3"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"type": "library",
|
|
31
|
+
"name": "zod",
|
|
32
|
+
"version": "4.4.3"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"type": "file",
|
|
36
|
+
"name": "deadbyte-hardware-observer-r45.exe",
|
|
37
|
+
"version": "0.15.2",
|
|
38
|
+
"hashes": [
|
|
39
|
+
{
|
|
40
|
+
"alg": "SHA-256",
|
|
41
|
+
"content": "46bcd3768bb95f8c63fc3118e031efc2818a92929611cabf6c3b29c5162a6591"
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
package/TEST-MATRIX.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "deadbyte.test-matrix.v1",
|
|
3
|
+
"version": "0.15.1",
|
|
4
|
+
"primary_platform": "win32-x64",
|
|
5
|
+
"required": [
|
|
6
|
+
{
|
|
7
|
+
"id": "parent-chain",
|
|
8
|
+
"command": "npm run r45:parent:verify",
|
|
9
|
+
"expected": "PASS"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "machine-freedom",
|
|
13
|
+
"command": "node --test test/host-inline-r45.test.mjs test/hardware-observation-r45.test.mjs",
|
|
14
|
+
"expected": "PASS"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "full-regression",
|
|
18
|
+
"command": "npm run r45:full:test",
|
|
19
|
+
"expected": "PASS"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "windows-gate",
|
|
23
|
+
"command": "npm run gate:windows",
|
|
24
|
+
"expected": "PASS"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"non_win32": {
|
|
28
|
+
"portable_tests": "supported where platform-independent",
|
|
29
|
+
"windows_native_tests": "SKIP/unsupported"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
Binary file
|
|
Binary file
|
package/controller/README.TXT
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
DEADBYTE MCP V0.15.
|
|
1
|
+
DEADBYTE MCP V0.15.2 / R46 CONTROLLER
|
|
2
2
|
====================================
|
|
3
3
|
|
|
4
4
|
ENTRY POINT
|
|
5
5
|
-----------
|
|
6
6
|
Primary operator entry point:
|
|
7
7
|
|
|
8
|
-
npx deadbyte-mcp@
|
|
8
|
+
npx -y deadbyte-mcp@0.15.2 remote
|
|
9
9
|
|
|
10
10
|
Bare `remote` is a foreground device session. It starts the verified runtime, arms process,
|
|
11
11
|
coding, and autonomous authority, verifies those three planes are ARMED, and requires Desktop and Host
|
|
@@ -16,6 +16,40 @@ $LogDir = Join-Path $RuntimeDir 'logs'
|
|
|
16
16
|
$ConfigPath = if ($env:DEADBYTE_CONTROLLER_CONFIG) { $env:DEADBYTE_CONTROLLER_CONFIG } else { Join-Path $Root 'deadbyte-controller.config.psd1' }
|
|
17
17
|
|
|
18
18
|
function Fail([string]$Message) { throw "DEADBYTE controller: $Message" }
|
|
19
|
+
|
|
20
|
+
function Get-ControllerMutationMutexName {
|
|
21
|
+
$normalized = ([System.IO.Path]::GetFullPath($RuntimeDir)).TrimEnd('\\').ToLowerInvariant()
|
|
22
|
+
$sha = [System.Security.Cryptography.SHA256]::Create()
|
|
23
|
+
try {
|
|
24
|
+
$bytes = [System.Text.Encoding]::UTF8.GetBytes($normalized)
|
|
25
|
+
$digest = $sha.ComputeHash($bytes)
|
|
26
|
+
} finally {
|
|
27
|
+
$sha.Dispose()
|
|
28
|
+
}
|
|
29
|
+
$hex = ([System.BitConverter]::ToString($digest)).Replace('-', '').ToLowerInvariant().Substring(0, 24)
|
|
30
|
+
return "Local\DEADBYTE-MCP-Controller-$hex"
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function Invoke-WithControllerMutationLock([string]$Name, [scriptblock]$Body) {
|
|
34
|
+
$mutexName = Get-ControllerMutationMutexName
|
|
35
|
+
$mutex = New-Object System.Threading.Mutex($false, $mutexName)
|
|
36
|
+
$held = $false
|
|
37
|
+
try {
|
|
38
|
+
try {
|
|
39
|
+
$held = $mutex.WaitOne([TimeSpan]::FromSeconds(180))
|
|
40
|
+
} catch [System.Threading.AbandonedMutexException] {
|
|
41
|
+
$held = $true
|
|
42
|
+
}
|
|
43
|
+
if (-not $held) { Fail "controller mutation lock timeout for '$Name'" }
|
|
44
|
+
& $Body
|
|
45
|
+
} finally {
|
|
46
|
+
if ($held) {
|
|
47
|
+
try { $mutex.ReleaseMutex() } catch {}
|
|
48
|
+
}
|
|
49
|
+
$mutex.Dispose()
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
19
53
|
function Ensure-Directory([string]$Path) { if (-not (Test-Path -LiteralPath $Path -PathType Container)) { New-Item -ItemType Directory -Path $Path -Force | Out-Null } }
|
|
20
54
|
function Ledger-Path([string]$Name) { Join-Path $RuntimeDir ("{0}.instance.json" -f $Name.ToLowerInvariant()) }
|
|
21
55
|
function Log-Path([string]$Name, [string]$Kind) { Join-Path $LogDir ("{0}.{1}.log" -f $Name.ToLowerInvariant(), $Kind) }
|
|
@@ -787,7 +821,7 @@ function Get-HostPolicyMetadata($Cfg) {
|
|
|
787
821
|
if ([string]::IsNullOrWhiteSpace([string]$Cfg.HostPolicyFile)) { Fail 'privileged host plane is not configured' }
|
|
788
822
|
$policyPath = [string]$Cfg.HostPolicyFile
|
|
789
823
|
try { $policy = Get-Content -LiteralPath $policyPath -Raw -Encoding UTF8 | ConvertFrom-Json } catch { Fail "invalid host policy JSON: $policyPath" }
|
|
790
|
-
if (
|
|
824
|
+
if (@('deadbyte.host-policy.v1','deadbyte.host-policy.v2') -notcontains [string]$policy.schema -or $policy.enabled -ne $true) { Fail 'host policy schema/enabled mismatch' }
|
|
791
825
|
if ([string]::IsNullOrWhiteSpace([string]$policy.arm_file)) { Fail 'host policy arm_file missing' }
|
|
792
826
|
$armFile = [System.IO.Path]::GetFullPath([string]$policy.arm_file)
|
|
793
827
|
$runtimeReal = [System.IO.Path]::GetFullPath($RuntimeDir).TrimEnd('\') + '\'
|
|
@@ -1275,7 +1309,7 @@ function Clean-Stale {
|
|
|
1275
1309
|
}
|
|
1276
1310
|
}
|
|
1277
1311
|
|
|
1278
|
-
function Run-
|
|
1312
|
+
function Run-CommandCore([string]$Name) {
|
|
1279
1313
|
$cfg = Get-Config
|
|
1280
1314
|
Assert-ControllerRootBound $cfg
|
|
1281
1315
|
Ensure-Directory $RuntimeDir; Ensure-Directory $LogDir
|
|
@@ -1318,6 +1352,20 @@ function Run-Command([string]$Name) {
|
|
|
1318
1352
|
}
|
|
1319
1353
|
}
|
|
1320
1354
|
|
|
1355
|
+
function Run-Command([string]$Name) {
|
|
1356
|
+
$mutating = $Name -in @(
|
|
1357
|
+
'start','resume','park','stop','restart','toggle','clean',
|
|
1358
|
+
'armhost','disarmhost','armprocess','disarmprocess','armcoding','disarmcoding',
|
|
1359
|
+
'armautonomous','disarmautonomous','armdesktop','disarmdesktop',
|
|
1360
|
+
'supervisorstart','supervisorstop','supervisorrecover'
|
|
1361
|
+
)
|
|
1362
|
+
if (-not $mutating) {
|
|
1363
|
+
Run-CommandCore $Name
|
|
1364
|
+
return
|
|
1365
|
+
}
|
|
1366
|
+
Invoke-WithControllerMutationLock $Name { Run-CommandCore $Name }
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1321
1369
|
if ($Command -ne 'menu') {
|
|
1322
1370
|
$recordsStartFailure = $Command -in @('start','resume','restart')
|
|
1323
1371
|
if ($recordsStartFailure) { Remove-Item -LiteralPath (Controller-StartFailurePath) -Force -ErrorAction SilentlyContinue }
|
|
@@ -1336,7 +1384,7 @@ while ($true) {
|
|
|
1336
1384
|
Clear-Host
|
|
1337
1385
|
$cfg = Get-Config
|
|
1338
1386
|
Assert-ControllerRootBound $cfg
|
|
1339
|
-
Write-Host 'DEADBYTE MCP ON-DEMAND CONTROLLER V0.15.
|
|
1387
|
+
Write-Host 'DEADBYTE MCP ON-DEMAND CONTROLLER V0.15.2 / R46'
|
|
1340
1388
|
Write-Host '======================================'
|
|
1341
1389
|
Show-State $cfg | Out-Null
|
|
1342
1390
|
Write-Host ''
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
},
|
|
20
20
|
"profiles": {
|
|
21
21
|
"ping_hold": {
|
|
22
|
-
"executable": "C:\\
|
|
22
|
+
"executable": "C:\\WINDOWS\\System32\\cmd.exe",
|
|
23
23
|
"executable_sha256": "97ac98b1a92c286054cce55239cfccdfc23a5517bd07fe693072c9ca96c7dabb",
|
|
24
24
|
"root_ids": [
|
|
25
25
|
"core"
|
|
@@ -42,6 +42,68 @@
|
|
|
42
42
|
"input_actions": {
|
|
43
43
|
"ping": "echo DEADBYTE_ACTION_PING\r\n"
|
|
44
44
|
}
|
|
45
|
+
},
|
|
46
|
+
"powershell": {
|
|
47
|
+
"executable": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
|
|
48
|
+
"executable_sha256": "8bb6fa8c283b4d92120b1ef249a9b311b0f804d4cabbe9981159976c8be76a5e",
|
|
49
|
+
"root_ids": [
|
|
50
|
+
"core"
|
|
51
|
+
],
|
|
52
|
+
"prefix_args": [
|
|
53
|
+
"-NoLogo",
|
|
54
|
+
"-NoProfile",
|
|
55
|
+
"-NonInteractive",
|
|
56
|
+
"-Command"
|
|
57
|
+
],
|
|
58
|
+
"transport": "pipe",
|
|
59
|
+
"max_args": 1,
|
|
60
|
+
"max_arg_bytes": 8192,
|
|
61
|
+
"max_sessions": 4,
|
|
62
|
+
"max_input_bytes": 65536,
|
|
63
|
+
"max_retained_output_bytes": 1048576,
|
|
64
|
+
"env_allow": [
|
|
65
|
+
"PATH",
|
|
66
|
+
"TEMP",
|
|
67
|
+
"TMP",
|
|
68
|
+
"SystemRoot",
|
|
69
|
+
"WINDIR",
|
|
70
|
+
"USERPROFILE",
|
|
71
|
+
"PSModulePath",
|
|
72
|
+
"COMSPEC",
|
|
73
|
+
"PATHEXT"
|
|
74
|
+
],
|
|
75
|
+
"input_actions": {}
|
|
76
|
+
},
|
|
77
|
+
"powershell_repl": {
|
|
78
|
+
"executable": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
|
|
79
|
+
"executable_sha256": "8bb6fa8c283b4d92120b1ef249a9b311b0f804d4cabbe9981159976c8be76a5e",
|
|
80
|
+
"root_ids": [
|
|
81
|
+
"core"
|
|
82
|
+
],
|
|
83
|
+
"prefix_args": [
|
|
84
|
+
"-NoLogo",
|
|
85
|
+
"-NoProfile",
|
|
86
|
+
"-NonInteractive"
|
|
87
|
+
],
|
|
88
|
+
"transport": "pipe",
|
|
89
|
+
"allow_raw_input": true,
|
|
90
|
+
"max_args": 0,
|
|
91
|
+
"max_arg_bytes": 256,
|
|
92
|
+
"max_sessions": 2,
|
|
93
|
+
"max_input_bytes": 65536,
|
|
94
|
+
"max_retained_output_bytes": 4194304,
|
|
95
|
+
"env_allow": [
|
|
96
|
+
"PATH",
|
|
97
|
+
"TEMP",
|
|
98
|
+
"TMP",
|
|
99
|
+
"SystemRoot",
|
|
100
|
+
"WINDIR",
|
|
101
|
+
"USERPROFILE",
|
|
102
|
+
"PSModulePath",
|
|
103
|
+
"COMSPEC",
|
|
104
|
+
"PATHEXT"
|
|
105
|
+
],
|
|
106
|
+
"input_actions": {}
|
|
45
107
|
}
|
|
46
108
|
}
|
|
47
109
|
}
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# DEADBYTE MCP V0.15.
|
|
1
|
+
# DEADBYTE MCP V0.15.2 / R46 ARCHITECTURE
|
|
2
2
|
|
|
3
3
|
```mermaid
|
|
4
4
|
flowchart TD
|
|
@@ -9,7 +9,7 @@ flowchart TD
|
|
|
9
9
|
D --> MI[Optional Machine 4 Tools]
|
|
10
10
|
D --> F[Optional Host 3 Tools]
|
|
11
11
|
D --> G[Optional Agent 7 Tools]
|
|
12
|
-
D --> PR[Optional Process
|
|
12
|
+
D --> PR[Optional Process 7 Tools]
|
|
13
13
|
D --> V[Optional Coding 22 Tools]
|
|
14
14
|
D --> MF[Optional Machine FS 8 Tools]
|
|
15
15
|
D --> OB[Optional Observation 6 Tools]
|
|
@@ -59,8 +59,7 @@ invocation may recover a stale owner only when no live guardian remains.
|
|
|
59
59
|
## Exact capability catalogs
|
|
60
60
|
|
|
61
61
|
Only complete combinations of base plus optional machine, host, agent, process, coding,
|
|
62
|
-
machine-filesystem, observation, and autonomous surfaces are valid at the HTTP bridge.
|
|
63
|
-
enabled R34 runtime exposes exactly 73 tools. Process authority is independently granted;
|
|
62
|
+
machine-filesystem, observation, and autonomous surfaces are valid at the HTTP bridge. The current fully enabled R46 runtime exposes exactly 83 full tools and 43 compact tools. Process authority is independently granted;
|
|
64
63
|
machine-filesystem and observation reuse coding-policy roots; autonomous requires the complete
|
|
65
64
|
coding surface. Partial, dependency-invalid, unknown, or extra catalogs fail closed.
|
|
66
65
|
|