deadbyte-mcp 0.12.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MANIFEST.SHA256 +54 -36
- package/R41-PARENT.json +15 -0
- package/README.txt +2 -2
- package/bin/appcontainer-stage.obj +0 -0
- package/bin/bootstrap-advapi32.obj +0 -0
- package/bin/bootstrap-exitcode.obj +0 -0
- package/bin/bootstrap-kernel32.obj +0 -0
- package/bin/child-control-probe.obj +0 -0
- package/bin/child-control-stage.obj +0 -0
- package/bin/contained-reverse-worker.obj +0 -0
- package/bin/contained-transform-worker.obj +0 -0
- package/bin/containment-probe.obj +0 -0
- package/bin/deadbyte-contain.obj +0 -0
- package/bin/deadbyte-exec.obj +0 -0
- package/bin/deadbyte-process-host.obj +0 -0
- package/bin/deadbyte-tunnel-host.obj +0 -0
- package/controller/README.TXT +1 -1
- package/controller/deadbyte-controller.ps1 +1 -1
- package/controller/deadbyte-desktop-policy.json +5 -5
- package/controller/deadbyte-process-policy.json +4 -4
- package/docs/ARCHITECTURE.md +1 -1
- package/docs/superpowers/specs/2026-09-20-r41-deterministic-memory-design.md +132 -0
- package/package.json +8 -6
- package/proof/CONTAINMENT-BUILD.txt +6 -6
- package/scripts/build-containment.ps1 +24 -14
- package/scripts/build-desktop-r40.ps1 +15 -9
- package/scripts/deferred-slot-operation-r41.mjs +127 -0
- package/scripts/final-closure-r41.mjs +116 -0
- package/scripts/final-closure-verify-r41.mjs +215 -0
- package/scripts/gate-windows-r41.ps1 +48 -0
- package/scripts/init-desktop-policy-r40.ps1 +10 -4
- package/scripts/release-parity-r41.mjs +221 -0
- package/scripts/release-parity-tests-r41.ps1 +9 -0
- package/scripts/verify-memory-r41.mjs +88 -0
- package/scripts/verify-r41-parent.mjs +61 -0
- package/scripts/windows-gate-evidence-r41.mjs +53 -0
- package/src/autonomous-context-engine.mjs +2 -1
- package/src/autonomous-planner.mjs +2 -0
- package/src/autonomous-runtime.mjs +28 -9
- package/src/mcp-server.mjs +14 -1
- package/src/memory-r41.mjs +692 -0
- package/src/version.mjs +1 -1
- package/test/cli-entrypoint.test.mjs +1 -1
- package/test/controller-desktop-r40.test.mjs +2 -1
- package/test/core.test.mjs +1 -1
- package/test/helpers/autonomous-r34-fixture.mjs +3 -3
- package/test/memory-autonomous-integration-r41.test.mjs +31 -0
- package/test/memory-history-r41.test.mjs +126 -0
- package/test/memory-projections-r41.test.mjs +92 -0
- package/test/memory-retrieval-r41.test.mjs +124 -0
- package/test/memory-snapshot-r41.test.mjs +106 -0
- package/test/r33-closeout-regression.test.mjs +7 -7
- package/test/r33-finalization.test.mjs +4 -4
- package/test/r41-finalization.test.mjs +38 -0
- package/test/release-version.test.mjs +14 -13
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { readFile } from 'node:fs/promises';
|
|
4
|
+
import { validateParityEvidence,R41_PREDECESSOR_RELEASE_ID,R41_PREDECESSOR_MANIFEST } from '../scripts/release-parity-r41.mjs';
|
|
5
|
+
import { verifyFinalClosureObject } from '../scripts/final-closure-verify-r41.mjs';
|
|
6
|
+
|
|
7
|
+
const root=new URL('../',import.meta.url);const text=rel=>readFile(new URL(rel,root),'utf8');
|
|
8
|
+
function parity(){const manifest='a'.repeat(64);return {schema:'deadbyte.r41-parity.v1',status:'passed',execution_provider:'deadbyte_mcp',rdc_operation_count:0,
|
|
9
|
+
candidate:{release_id:`v0.13.0-${manifest.slice(0,16)}`,version:'0.13.0',manifest_sha256:manifest},
|
|
10
|
+
immutable_slot:{protected:true,release_root:'C:/immutable/r41',development_root:'D:/Projects/deadbyte-mcp-r41-memory-dev'},
|
|
11
|
+
local_full:{status:'passed',tool_count:80,strict_output_schemas:true},
|
|
12
|
+
public_compact:{status:'passed',tool_count:42,capability_closure:true,gateway_count:6,desktop_armed:false,desktop_observation_receipt_verified:true,desktop_grounding_receipt_verified:true},
|
|
13
|
+
autonomous:{status:'passed',signed_release_verified:true},desktop_guarded:{status:'passed',native_injected:true,replay_performed:false,predispatch_retry_count:0,observation_receipts_verified:1,action_receipts_verified:3},
|
|
14
|
+
deterministic_memory:{status:'passed',goal_count:1,snapshot_count:1,index_count:1},
|
|
15
|
+
before_rollback_disarmed:{status:'passed',capability_closure:true,coding_armed:false,autonomous_armed:false,desktop_armed:false},rollback:{state:'completed'},restore:{state:'completed'},stage_restore:{status:'restored',manifest_sha256:manifest},
|
|
16
|
+
predecessor:{release_id:R41_PREDECESSOR_RELEASE_ID,version:'0.12.0',manifest_sha256:R41_PREDECESSOR_MANIFEST},predecessor_disarmed:{status:'passed',tool_count:42,capability_closure:true},
|
|
17
|
+
successor:{release_id:`v0.13.0-${manifest.slice(0,16)}`,version:'0.13.0',manifest_sha256:manifest},successor_disarmed:{status:'passed',capability_closure:true,coding_armed:false,autonomous_armed:false,desktop_armed:false},
|
|
18
|
+
requirements:Object.fromEntries(['tree_read','precondition_mutation','search','owned_process','observation','coding_loop','autonomy','interrupted_recovery','evidence_verification','compact_closure','full_surface','desktop_readonly','desktop_guarded_input','deterministic_memory'].map(key=>[key,true]))};}
|
|
19
|
+
|
|
20
|
+
test('R41 parity requires exact R40 predecessor and immutable R41 slot',()=>{const value=parity();assert.equal(validateParityEvidence(value),true);
|
|
21
|
+
assert.throws(()=>validateParityEvidence({...value,predecessor:{...value.predecessor,manifest_sha256:'b'.repeat(64)}}),/predecessor/i);
|
|
22
|
+
assert.throws(()=>validateParityEvidence({...value,immutable_slot:{...value.immutable_slot,development_root:value.immutable_slot.release_root}}),/immutable-slot/i);});
|
|
23
|
+
|
|
24
|
+
test('R41 release machinery binds 0.13.0, R40 predecessor, memory gates and R41 domains',async()=>{const [gate,deferred,paritySource,writer,verifier,evidence,suite]=await Promise.all([
|
|
25
|
+
text('scripts/gate-windows-r41.ps1'),text('scripts/deferred-slot-operation-r41.mjs'),text('scripts/release-parity-r41.mjs'),text('scripts/final-closure-r41.mjs'),text('scripts/final-closure-verify-r41.mjs'),text('scripts/windows-gate-evidence-r41.mjs'),text('scripts/release-parity-tests-r41.ps1')]);
|
|
26
|
+
assert.equal(R41_PREDECESSOR_RELEASE_ID,'v0.12.0-70906ae0a7e4f062');assert.equal(R41_PREDECESSOR_MANIFEST,'70906ae0a7e4f0627efbb5087b40b85677c81ed6d64ed89c0ba2af846e390f39');
|
|
27
|
+
assert.match(gate,/r41-parent-verify/);assert.match(gate,/memory-history-r41\.test\.mjs/);assert.match(gate,/DEADBYTE V0\.13\.0 \/ R41 WINDOWS BATCH GATE: PASS/);
|
|
28
|
+
assert.match(deferred,/--expected-version','0\.13\.0'/);assert.match(paritySource,/deadbyte\.r41-parity\.v1/);
|
|
29
|
+
for(const source of [writer,verifier]){assert.match(source,/DEADBYTE-R41-FINAL-CLOSURE-V1/);assert.match(source,/deadbyte\.r41-final-closure\.v1/);assert.match(source,/R41 DETERMINISTIC MEMORY BASELINE/);}
|
|
30
|
+
assert.equal(typeof verifyFinalClosureObject,'function');assert.match(evidence,/deadbyte\.r41-windows-gate\.v1/);assert.match(suite,/memory-autonomous-integration-r41\.test\.mjs/);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
test('R41 derived memory storage is namespaced by exact release manifest',async()=>{
|
|
35
|
+
const [server,paritySource]=await Promise.all([text('src/mcp-server.mjs'),text('scripts/release-parity-r41.mjs')]);
|
|
36
|
+
assert.match(server,/memoryRoot:path\.join\(autonomousPolicy\.evidence_dir,'memory-r41',packageManifestSha256\)/);
|
|
37
|
+
assert.match(paritySource,/memoryRoot:path\.join\(stateRoot,'evidence','autonomous','memory-r41',candidateManifest\)/);
|
|
38
|
+
});
|
|
@@ -3,21 +3,22 @@ import assert from 'node:assert/strict';
|
|
|
3
3
|
import { readFile } from 'node:fs/promises';
|
|
4
4
|
import { createHash } from 'node:crypto';
|
|
5
5
|
const root=new URL('../',import.meta.url);const text=rel=>readFile(new URL(rel,root),'utf8');
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
test('
|
|
6
|
+
const R41_PREDECESSOR_RELEASE_ID='v0.12.0-70906ae0a7e4f062';
|
|
7
|
+
const R41_PREDECESSOR_MANIFEST='70906ae0a7e4f0627efbb5087b40b85677c81ed6d64ed89c0ba2af846e390f39';
|
|
8
|
+
test('R41 authority agrees on V0.13.0 and preserves exact sealed public R40 predecessor',async()=>{
|
|
9
9
|
const pkg=JSON.parse(await text('package.json'));
|
|
10
|
-
const [version,controller,gate,readme,architecture,controllerReadme,deferred,parity,closure,closureVerify,windowsGate,semanticConfig]=await Promise.all([
|
|
11
|
-
text('src/version.mjs'),text('controller/deadbyte-controller.ps1'),text('scripts/gate-windows-
|
|
12
|
-
assert.equal(pkg.version,'0.
|
|
13
|
-
assert.equal(pkg.scripts['self-update:deferred'],'node scripts/deferred-slot-operation-
|
|
14
|
-
assert.equal(pkg.scripts['release:final:write'],'node scripts/final-closure-
|
|
10
|
+
const [version,controller,gate,readme,architecture,controllerReadme,deferred,parity,closure,closureVerify,windowsGate,parent,semanticConfig]=await Promise.all([
|
|
11
|
+
text('src/version.mjs'),text('controller/deadbyte-controller.ps1'),text('scripts/gate-windows-r41.ps1'),text('README.txt'),text('docs/ARCHITECTURE.md'),text('controller/README.TXT'),text('scripts/deferred-slot-operation-r41.mjs'),text('scripts/release-parity-r41.mjs'),text('scripts/final-closure-r41.mjs'),text('scripts/final-closure-verify-r41.mjs'),text('scripts/windows-gate-evidence-r41.mjs'),text('R41-PARENT.json'),text('controller/deadbyte-semantic-lsp-config.json')]);
|
|
12
|
+
assert.equal(pkg.version,'0.13.0');assert.equal(pkg.scripts['gate:windows'],'powershell -NoProfile -ExecutionPolicy Bypass -File scripts/gate-windows-r41.ps1');
|
|
13
|
+
assert.equal(pkg.scripts['self-update:deferred'],'node scripts/deferred-slot-operation-r41.mjs');assert.equal(pkg.scripts['release:parity'],'node scripts/release-parity-r41.mjs');
|
|
14
|
+
assert.equal(pkg.scripts['release:final:write'],'node scripts/final-closure-r41.mjs');assert.equal(pkg.scripts['release:final:verify'],'node scripts/final-closure-verify-r41.mjs');
|
|
15
15
|
assert.equal(pkg.scripts['desktop:policy:refresh'],'powershell -NoProfile -ExecutionPolicy Bypass -File scripts/init-desktop-policy-r40.ps1');
|
|
16
|
-
assert.match(version,/DEADBYTE_VERSION = '0\.
|
|
17
|
-
assert.match(readme,/^DEADBYTE MCP V0\.
|
|
18
|
-
assert.match(deferred,/--expected-version','0\.
|
|
19
|
-
assert.match(parity,/version==='0\.
|
|
20
|
-
assert.equal(
|
|
16
|
+
assert.match(version,/DEADBYTE_VERSION = '0\.13\.0'/);assert.match(controller,/CONTROLLER V0\.13\.0 \/ R41/);assert.match(gate,/DEADBYTE V0\.13\.0 \/ R41 WINDOWS BATCH GATE: PASS/);
|
|
17
|
+
assert.match(readme,/^DEADBYTE MCP V0\.13\.0 \/ R41 DETERMINISTIC MEMORY BASELINE$/m);assert.match(architecture,/^# DEADBYTE MCP V0\.13\.0 \/ R41 ARCHITECTURE$/m);assert.match(controllerReadme,/^DEADBYTE MCP V0\.13\.0 \/ R41 CONTROLLER$/m);
|
|
18
|
+
assert.match(deferred,/--expected-version','0\.13\.0'/);assert.match(deferred,/--enable-desktop/);assert.match(parity,/R41_PREDECESSOR_RELEASE_ID='v0\.12\.0-70906ae0a7e4f062'/);assert.match(parity,new RegExp(R41_PREDECESSOR_MANIFEST));
|
|
19
|
+
assert.match(parity,/version==='0\.13\.0'|version:'0\.13\.0'/);assert.match(closure,/version:'0\.13\.0'/);assert.match(closureVerify,/DEADBYTE V0\.13\.0 \/ R41 WINDOWS BATCH GATE: PASS/);assert.match(windowsGate,/version:'0\.13\.0'/);
|
|
20
|
+
assert.equal(JSON.parse(parent).parent_manifest_sha256,R41_PREDECESSOR_MANIFEST);
|
|
21
|
+
assert.equal(createHash('sha256').update(Buffer.from(semanticConfig,'utf8')).digest('hex'),'d274b099a298c1033fea8f1e8849751693bbc0448778d619400acb82d4f53a3b');assert.equal(R41_PREDECESSOR_RELEASE_ID,'v0.12.0-70906ae0a7e4f062');
|
|
21
22
|
});
|
|
22
23
|
test('R40 keeps ONLINE reuse and PowerShell Host collision fix while Desktop stays explicit',async()=>{const [cli,controller]=await Promise.all([text('src/deadbyte-cli.mjs'),text('controller/deadbyte-controller.ps1')]);assert.match(cli,/controllerRuntimeReady/);assert.match(cli,/Runtime already ONLINE; reusing verified bridge\/cloud\/supervisor/);const start=controller.indexOf('function Recover-AutonomousSupervisor'),end=controller.indexOf('function Show-State',start);assert.ok(start>=0&&end>start);const block=controller.slice(start,end);assert.doesNotMatch(block,/\$host\s*=/i);assert.match(block,/\$hostStatus\s*=\s*Get-HostArmStatus/);assert.match(controller,/armdesktop/);assert.match(controller,/disarmdesktop/);});
|
|
23
24
|
test('sealed R39 tooling remains historical 0.11.3 authority with exact 0.11.2 predecessor',async()=>{const [parity,gate,closure]=await Promise.all([text('scripts/release-parity-r39.mjs'),text('scripts/gate-windows-r39.ps1'),text('scripts/final-closure-r39.mjs')]);assert.match(parity,/R39_PREDECESSOR_RELEASE_ID='v0\.11\.2-058605dfccaa3035'/);assert.match(parity,/version==='0\.11\.3'|version:'0\.11\.3'/);assert.match(gate,/DEADBYTE V0\.11\.3 \/ R39 WINDOWS BATCH GATE: PASS/);assert.match(closure,/version:'0\.11\.3'/);});
|