deadbyte-mcp 0.15.43 → 0.15.45
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 +160 -161
- package/PROVENANCE.json +257 -232
- package/README.txt +18 -18
- package/RELEASE.json +348 -320
- package/SBOM.cdx.json +14 -2
- package/TEST-MATRIX.json +503 -460
- package/bin/deadbyte-native-inspect-r67.exe +0 -0
- package/bridge/package.json +1 -1
- package/controller/deadbyte-controller.ps1 +1857 -1769
- package/controller/deadbyte-desktop-policy.json +6 -6
- package/controller/deadbyte-process-policy.json +4 -4
- package/docs/R67-ALPHA-REFERENCE-DIFFERENTIAL.md +42 -0
- package/docs/R67-ALPHA-STATIC-COMPARISON.json +205 -0
- package/docs/R67-CANDIDATE-PARENT.json +10 -0
- package/docs/R67-EVIDENCE-RECONCILE-CLOSEOUT-20261011.md +64 -0
- package/docs/R67-FULL-REGRESSION-UNKNOWN.json +27 -0
- package/docs/R67-NATIVE-INSPECT-BINARY.json +11 -0
- package/docs/R67-NPM-EXDEV-PRESERVATION-20261011.md +39 -0
- package/docs/R67-OBSERVATION-TRUTH.md +82 -0
- package/docs/R67-REFERENCE-GAP-MATRIX.json +57 -0
- package/docs/R67-REGRESSION-CLOSURE-20261011.md +24 -0
- package/docs/R68-COMPAT-HOST-EXEC-CANDIDATE.md +63 -0
- package/docs/R69-LIVE-OUTCOME-R70-POLICY-TRANSFER.md +136 -0
- package/docs/R70-CODING-DIGEST-SUPERVISOR-CHECKPOINT-20261013.md +42 -0
- package/docs/R70-FINITE-GRANT-OWNER-BOUNDARY-20261013.md +80 -0
- package/docs/R70-OWNER-BOOTSTRAP-CHECKPOINT-20261013.md +60 -0
- package/docs/R70-REFERENCE-MECHANISMS.json +95 -0
- package/docs/R70-TRUST-GUARD-EXPIRY-CHECKPOINT-20261013.md +47 -0
- package/native/deadbyte-native-inspect-r67.cpp +252 -0
- package/package.json +6 -3
- package/scripts/benchmark-l0-r71.mjs +76 -0
- package/scripts/build-native-inspector-r67.ps1 +28 -0
- package/scripts/gate-windows-r67.ps1 +56 -0
- package/scripts/gate-windows-r71.ps1 +64 -0
- package/scripts/npm-preserve-artifact-r67.mjs +99 -0
- package/scripts/npm-release-r48.mjs +12 -2
- package/scripts/npm-release-readiness-r67.mjs +26 -0
- package/scripts/npm-release-readiness-r71.mjs +21 -0
- package/scripts/r67-acquire-alpha-reference.mjs +95 -0
- package/scripts/r67-audit-nonpass-source.mjs +39 -0
- package/scripts/r67-compare-desktop-alpha.mjs +48 -0
- package/scripts/r67-diagnose-failed-shard.mjs +23 -0
- package/scripts/r67-durable-batch.mjs +42 -0
- package/scripts/r67-focused-gate.mjs +58 -0
- package/scripts/r67-full-regression.mjs +28 -0
- package/scripts/r67-independent-observation-verify.mjs +36 -0
- package/scripts/r67-independent-runtime-observation-verify.mjs +63 -0
- package/scripts/r67-nonpass-adjudicate.mjs +20 -0
- package/scripts/r67-publish-boundary-audit.mjs +32 -0
- package/scripts/r67-regression-reconcile.mjs +10 -0
- package/scripts/r67-regression-shard-run.mjs +70 -0
- package/scripts/r67-run-shard-batch.mjs +18 -0
- package/scripts/r67-stage-candidate.mjs +30 -0
- package/scripts/r67-verify-parent-ping.mjs +22 -0
- package/scripts/release-manifest.mjs +1 -0
- package/scripts/verify-r70-full-regression.ps1 +72 -0
- package/src/activation-continuity-engine-r65.mjs +2 -1
- package/src/authority-continuity-r65.mjs +28 -8
- package/src/autonomous-mcp-tools.mjs +1 -1
- package/src/autonomous-output-contracts.mjs +4 -1
- package/src/autonomous-policy.mjs +54 -7
- package/src/autonomous-runtime.mjs +1 -1
- package/src/capability-ledger.mjs +1 -1
- package/src/capability-resolver.mjs +2 -1
- package/src/commander-compat-runtime.mjs +30 -2
- package/src/deadbyte-cli.mjs +41 -7
- package/src/machine-fs-smoke-client.mjs +13 -5
- package/src/machine-identity.mjs +59 -2
- package/src/machine-mcp-tools.mjs +8 -0
- package/src/mcp-server.mjs +11 -2
- package/src/native-diff-v2.mjs +18 -5
- package/src/native-diff.mjs +21 -5
- package/src/native-inspector-r67.mjs +66 -0
- package/src/r67-diagnostic-export.mjs +118 -0
- package/src/r67-diagnostics-verify.mjs +82 -0
- package/src/r67-evidence-reconcile.mjs +128 -0
- package/src/r67-native-observation-authority.mjs +45 -0
- package/src/r67-observation-receipt.mjs +43 -0
- package/src/r67-regression-shards.mjs +176 -0
- package/src/r70-owner-approval.mjs +78 -0
- package/src/remote-live-log.mjs +62 -24
- package/src/remote-result-journal.mjs +1 -1
- package/src/runtime-update.mjs +2051 -1891
- package/src/tool-audit.mjs +3 -1
- package/src/version.mjs +1 -1
- package/test/agent-runtime.test.mjs +1 -1
- package/test/autonomous-local-supervisor.test.mjs +2 -1
- package/test/autonomous-loop.test.mjs +11 -6
- package/test/autonomous-output-contract.test.mjs +17 -1
- package/test/autonomous-runtime.test.mjs +1 -1
- package/test/autonomous-supervisor-integration.test.mjs +2 -1
- package/test/capability-resolver.test.mjs +17 -0
- package/test/codex-autonomous-r44.test.mjs +1 -1
- package/test/coding-plane.test.mjs +1 -1
- package/test/commander-compat-runtime.test.mjs +42 -0
- package/test/controller-policy-preflight-r59.test.mjs +1 -0
- package/test/full-max-catalog-r46.test.mjs +1 -1
- package/test/native-diff-topology-r36.test.mjs +35 -2
- package/test/native-diff.test.mjs +83 -3
- package/test/output-schema.test.mjs +1 -1
- package/test/r51-live-log-polling.test.mjs +12 -0
- package/test/r53-release-contract.test.mjs +1 -1
- package/test/r54-release-contract.test.mjs +1 -1
- package/test/r55-release-contract.test.mjs +1 -1
- package/test/r56-release-contract.test.mjs +1 -1
- package/test/r57-release-contract.test.mjs +1 -1
- package/test/r58-bundled-bridge.test.mjs +1 -1
- package/test/r58-release-contract.test.mjs +2 -2
- package/test/r58-windows-gate.test.mjs +1 -1
- package/test/r59-tool-surface-compat.test.mjs +9 -5
- package/test/r60-release-contract.test.mjs +3 -3
- package/test/r61-release-contract.test.mjs +1 -1
- package/test/r62-release-contract.test.mjs +1 -1
- package/test/r63-release-contract.test.mjs +1 -1
- package/test/r64-release-contract.test.mjs +1 -1
- package/test/r65-authority-runtime-epoch.test.mjs +9 -1
- package/test/r65-epoch-native-activation-integration.test.mjs +4 -4
- package/test/r65-release-contract.test.mjs +1 -1
- package/test/r66-release-contract.test.mjs +2 -1
- package/test/r67-cli-integration.test.mjs +41 -0
- package/test/r67-diagnostics-cli.test.mjs +60 -0
- package/test/r67-diagnostics-verify.test.mjs +49 -0
- package/test/r67-diagnostics-zip-oracle.test.mjs +38 -0
- package/test/r67-diagnostics.test.mjs +60 -0
- package/test/r67-evidence-reconcile.test.mjs +186 -0
- package/test/r67-isolated-slot-rollback-restore.test.mjs +63 -0
- package/test/r67-live-log-secret-canary.test.mjs +44 -0
- package/test/r67-machine-fs-smoke-epoch.test.mjs +22 -0
- package/test/r67-native-inspector.test.mjs +131 -0
- package/test/r67-native-observation-authority.test.mjs +49 -0
- package/test/r67-npm-cross-volume.test.mjs +74 -0
- package/test/r67-npm-publish-gate.test.mjs +40 -0
- package/test/r67-regression-shards.test.mjs +184 -0
- package/test/r67-release-contract.test.mjs +45 -0
- package/test/r67-runtime-observation-binding.test.mjs +86 -0
- package/test/r67-server-observation-wiring.test.mjs +12 -0
- package/test/r67-signed-receipt.test.mjs +66 -0
- package/test/r67-skip-rationale.test.mjs +31 -0
- package/test/r67-tool-annotations.test.mjs +21 -0
- package/test/r67-windows-gate-argv.test.mjs +13 -0
- package/test/r69-live-outcome.test.mjs +137 -0
- package/test/r70-autonomous-grant-expiry.test.mjs +89 -0
- package/test/r70-autonomous-policy-bootstrap.test.mjs +166 -0
- package/test/r70-controller-autonomous-root.test.mjs +104 -0
- package/test/r70-controller-grant-subset.test.mjs +28 -0
- package/test/r70-controller-owner-issue-boundary.test.mjs +80 -0
- package/test/r70-controller-policy-snapshot.test.mjs +66 -0
- package/test/r70-owner-approval.test.mjs +67 -0
- package/test/r71-full-verifier-artifact.test.mjs +28 -0
- package/test/r71-isolated-slot-rollback-restore.test.mjs +62 -0
- package/test/r71-native-diff-mcp-wire.test.mjs +75 -0
- package/test/r71-publish-fence.test.mjs +38 -0
- package/test/r71-release-identity.test.mjs +31 -0
- package/test/release-version.test.mjs +1 -1
- package/test/remote-live-log-r36.test.mjs +10 -0
- package/test/remote-live-log-r37.test.mjs +29 -0
- package/test/remote-result-journal.test.mjs +12 -0
- package/test/remote-session-cli.test.mjs +2 -1
- package/test/semantic-multilang.test.mjs +1 -1
- package/test/standing-grants.test.mjs +2 -2
- package/test/tool-audit.test.mjs +14 -0
- 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-desktop-input-r40.obj +0 -0
- package/bin/deadbyte-desktop-observer-r40.obj +0 -0
- package/bin/deadbyte-desktop-uia-r40.obj +0 -0
- package/bin/deadbyte-exec.obj +0 -0
- package/bin/deadbyte-hardware-observer-r45.obj +0 -0
- package/bin/deadbyte-process-host.obj +0 -0
- package/bin/deadbyte-tunnel-host.obj +0 -0
- package/conpty-input-observer.obj +0 -0
- package/miniconpty.obj +0 -0
- package/proof/CONTAINMENT-BUILD.txt +0 -163
- package/proof/MCP-SMOKE-STATUS.txt +0 -9
- package/proof/NODE-SYNTAX.txt +0 -4
- package/proof/PROOF.txt +0 -6
- package/proof/R34-TASK8-SUPERVISOR-CHECKPOINT.json +0 -29
- package/proof/R34-TASK9-MCP-SURFACE-CHECKPOINT.json +0 -28
- package/proof/SECRET-SCAN.txt +0 -4
- package/proof/SOURCE-GATES.txt +0 -16
- package/proof/STATUS.txt +0 -11
- package/proof/TARGET-V0313-CONTAINMENT-PASS.sha256 +0 -1
- package/proof/TARGET-V0313-CONTAINMENT-PASS.txt +0 -215
- package/proof/TARGET-V040-CONTAINED-IPC-FAIL.sha256 +0 -1
- package/proof/TARGET-V040-CONTAINED-IPC-FAIL.txt +0 -299
- package/proof/TARGET-V041-CONTAINED-CREATEPROCESS-203.sha256 +0 -1
- package/proof/TARGET-V041-CONTAINED-CREATEPROCESS-203.txt +0 -311
- package/proof/TARGET-V042-CONTAINED-CREATEPROCESS-203.sha256 +0 -1
- package/proof/TARGET-V042-CONTAINED-CREATEPROCESS-203.txt +0 -313
- package/proof/TARGET-V043-CONTAINED-CREATEPROCESS-203.sha256 +0 -1
- package/proof/TARGET-V043-CONTAINED-CREATEPROCESS-203.txt +0 -308
- package/proof/TARGET-V044-CONTAINED-PASS.sha256 +0 -1
- package/proof/TARGET-V044-CONTAINED-PASS.txt +0 -432
- package/proof/TARGET-V045-DUAL-OPERATION-PASS.sha256 +0 -1
- package/proof/TARGET-V045-DUAL-OPERATION-PASS.txt +0 -481
- package/proof/TARGET-V046-FIXED-EXECUTABLE-REGISTRY-PASS.sha256 +0 -1
- package/proof/TARGET-V046-FIXED-EXECUTABLE-REGISTRY-PASS.txt +0 -610
- package/proof/TARGET-V047-RUNTIME-MANIFEST-PASS.sha256 +0 -1
- package/proof/TARGET-V047-RUNTIME-MANIFEST-PASS.txt +0 -642
- package/proof/TARGET-V050-BATCH-GATE-PASS.sha256 +0 -1
- package/proof/TARGET-V050-BATCH-GATE-PASS.txt +0 -713
- package/proof/TESTS.txt +0 -686
- package/proof/TRUST-EPHEMERAL.txt +0 -4
- package/proof/V03-FREEZE.txt +0 -27
- package/proof/V041-IPC-HOTFIX.txt +0 -16
- package/proof/V042-ENV-HOTFIX.txt +0 -15
- package/proof/V043-DRIVE-CWD-HOTFIX.txt +0 -14
- package/proof/V044-LOCALAPPDATA-HOTFIX.txt +0 -18
- package/proof/V045-OPERATION-REGISTRY.txt +0 -7
- package/proof/V046-WORKER-REGISTRY.txt +0 -12
- package/proof/V047-WORKER-MANIFEST.txt +0 -18
- package/proof/V050-BATCH-TRUST-CLOSURE.txt +0 -21
- package/proof/V060-ACTIVE-NETWORK-AUTHORITY.txt +0 -29
- package/proof/V070-NODE-SYNTAX.txt +0 -36
- package/proof/V070-NODE-TESTS.txt +0 -752
- package/proof/V070-PACK-DRY-RUN.txt +0 -126
- package/proof/V070-SOURCE-GATE.txt +0 -30
- package/proof/V070-STATIC-SCAN.txt +0 -4
- package/proof/V070-WINDOWS-GATE-PENDING.txt +0 -25
- package/proof/V071-NODE-SYNTAX.txt +0 -1
- package/proof/V071-NODE-TESTS.txt +0 -796
- package/proof/V071-PACK-DRY-RUN.json +0 -656
- package/proof/V071-SOURCE-GATE.txt +0 -16
- package/proof/V071-WINDOWS-GATE-PENDING.txt +0 -24
- package/proof/V073-NODE-SYNTAX.txt +0 -4
- package/proof/V073-SOURCE-GATE.txt +0 -21
- package/proof/V073-STATIC-SCAN.txt +0 -10
- package/proof/V073-WINDOWS-GATE-PENDING.txt +0 -5
- package/proof/VERIFY.txt +0 -7
- package/proof/WINDOWS-CONTAINED-STATUS.txt +0 -5
- package/proof/WINDOWS-CONTAINMENT-STATUS.txt +0 -3
- package/proof/commander-closure-20260927/CONTINUATION.json +0 -43
- package/proof/commander-closure-20260927/RESULT.json +0 -30
- package/proof/commander-closure-20260927/SEARCH-CONTINUATION.json +0 -30
- package/proof/commander-closure-20260927/XLS-REFERENCE-PROBE.json +0 -13
- package/proof/commander-closure-20260928/DIFFERENTIAL-CHECKPOINT.json +0 -122
- package/proof/r59-full-regression-current.json +0 -13
- package/proof/r59-full-regression-current.stderr.log +0 -0
- package/proof/r59-full-regression-current.stdout.log +0 -1268
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import {createHash,randomBytes} from 'node:crypto';
|
|
4
|
+
import {access,mkdtemp,mkdir,readFile,rm,writeFile} from 'node:fs/promises';
|
|
5
|
+
import os from 'node:os';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import {fileURLToPath} from 'node:url';
|
|
8
|
+
import {Client} from '@modelcontextprotocol/client';
|
|
9
|
+
import {StdioClientTransport,getDefaultEnvironment} from '@modelcontextprotocol/client/stdio';
|
|
10
|
+
import {generateTrustKeypair} from '../src/trust.mjs';
|
|
11
|
+
|
|
12
|
+
const root=path.dirname(path.dirname(fileURLToPath(import.meta.url)));
|
|
13
|
+
const sha=bytes=>createHash('sha256').update(bytes).digest('hex');
|
|
14
|
+
const exists=file=>access(file).then(()=>true,()=>false);
|
|
15
|
+
|
|
16
|
+
test('R71 compact MCP tools/list and tools/call permit Coding-read preview without Autonomous apply authority',
|
|
17
|
+
{timeout:30_000},async()=>{
|
|
18
|
+
const state=await mkdtemp(path.join(os.tmpdir(),'deadbyte-r71-native-wire-'));
|
|
19
|
+
const project=path.join(state,'project');
|
|
20
|
+
const trust=path.join(state,'trust');
|
|
21
|
+
await mkdir(project);await mkdir(trust);
|
|
22
|
+
const keys=await generateTrustKeypair({privateKeyPath:path.join(trust,'private.pem'),
|
|
23
|
+
publicKeyPath:path.join(trust,'public.pem')});
|
|
24
|
+
const target=path.join(project,'candidate.txt');
|
|
25
|
+
await writeFile(target,'before\n');
|
|
26
|
+
const before=sha(await readFile(target));
|
|
27
|
+
const codingPath=path.join(state,'coding-policy.json');
|
|
28
|
+
const codingLease=path.join(state,'coding-lease.json');
|
|
29
|
+
await writeFile(codingPath,JSON.stringify({schema:'deadbyte.coding-policy.v1',enabled:true,
|
|
30
|
+
lease_file:codingLease,evidence_dir:path.join(state,'coding-evidence'),
|
|
31
|
+
roots:{project:{path:project,read:true,write:true,exec:false,deny_paths:[]}},commands:{}}));
|
|
32
|
+
await writeFile(codingLease,JSON.stringify({schema:'deadbyte.coding-lease.v1',
|
|
33
|
+
policy_sha256:sha(await readFile(codingPath)),instance_nonce:randomBytes(32).toString('hex'),
|
|
34
|
+
root_ids:['project'],armed_at_utc:new Date().toISOString(),
|
|
35
|
+
expires_at_utc:new Date(Date.now()+60_000).toISOString()}));
|
|
36
|
+
const autonomousPath=path.join(state,'autonomous-policy.json');
|
|
37
|
+
await writeFile(autonomousPath,JSON.stringify({schema:'deadbyte.autonomous-policy.v1',enabled:true,
|
|
38
|
+
lease_file:path.join(state,'autonomous-lease.json'),evidence_dir:path.join(state,'autonomous-evidence'),
|
|
39
|
+
root_ids:['project'],coding_policy_sha256:sha(await readFile(codingPath)),
|
|
40
|
+
planner:{backend:'client_sampling',max_tokens:2048},profiles:{},limits:{max_files_per_diff:8}}));
|
|
41
|
+
const client=new Client({name:'deadbyte-r71-native-wire',version:'0.15.45'},
|
|
42
|
+
{versionNegotiation:{mode:{pin:'2026-07-28'}}});
|
|
43
|
+
const transport=new StdioClientTransport({command:process.execPath,
|
|
44
|
+
args:[path.join(root,'src','mcp-server.mjs')],cwd:root,
|
|
45
|
+
env:{...getDefaultEnvironment(),DEADBYTE_STATE_ROOT:state,DEADBYTE_CAPABILITY_PROFILE:'compact',
|
|
46
|
+
DEADBYTE_SIGNING_KEY:keys.privateKeyPath,DEADBYTE_VERIFY_KEY:keys.publicKeyPath,
|
|
47
|
+
DEADBYTE_PRIVILEGED_POLICY:'',DEADBYTE_CODING_RUNTIME:'1',DEADBYTE_CODING_POLICY:codingPath,
|
|
48
|
+
DEADBYTE_AUTONOMOUS_RUNTIME:'1',DEADBYTE_AUTONOMOUS_POLICY:autonomousPath},stderr:'pipe'});
|
|
49
|
+
try{
|
|
50
|
+
await client.connect(transport);
|
|
51
|
+
const tools=(await client.listTools()).tools;
|
|
52
|
+
const preview=tools.find(tool=>tool.name==='native_diff_preview');
|
|
53
|
+
assert.ok(preview,'compact catalog must expose native_diff_preview');
|
|
54
|
+
assert.match(preview.description,/Coding read authority/i);
|
|
55
|
+
assert.equal(preview.outputSchema?.additionalProperties,false);
|
|
56
|
+
const request={root_id:'project',title:'read only wire proof',operations:[
|
|
57
|
+
{kind:'replace',path:'candidate.txt',expected_sha256:before,old_string:'before',
|
|
58
|
+
new_string:'after',expected_replacements:1}]};
|
|
59
|
+
const accepted=await client.callTool({name:'native_diff_preview',arguments:request});
|
|
60
|
+
assert.equal(accepted.isError,false);
|
|
61
|
+
assert.equal(accepted.structuredContent.status,'preview_only');
|
|
62
|
+
assert.equal(accepted.structuredContent.diff_id,undefined);
|
|
63
|
+
assert.equal(sha(await readFile(target)),before);
|
|
64
|
+
assert.equal(await exists(path.join(state,'autonomous-evidence','native-diffs')),false);
|
|
65
|
+
const denied=await client.callTool({name:'native_diff_preview',arguments:{...request,root_id:'outside'}});
|
|
66
|
+
assert.equal(denied.isError,true);
|
|
67
|
+
await rm(codingLease);
|
|
68
|
+
const revoked=await client.callTool({name:'native_diff_preview',arguments:request});
|
|
69
|
+
assert.equal(revoked.isError,true);
|
|
70
|
+
assert.equal(sha(await readFile(target)),before);
|
|
71
|
+
}finally{
|
|
72
|
+
await client.close().catch(()=>{});
|
|
73
|
+
await rm(state,{recursive:true,force:true});
|
|
74
|
+
}
|
|
75
|
+
});
|
|
@@ -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 {assertR71NpmPublishReady} from '../scripts/npm-release-readiness-r71.mjs';
|
|
5
|
+
|
|
6
|
+
test('R71 publish script enforces successor metadata before packing or dispatch',async()=>{
|
|
7
|
+
const source=await readFile(new URL('../scripts/npm-release-r48.mjs',import.meta.url),'utf8');
|
|
8
|
+
const guard=source.indexOf('assertR71NpmPublishReady(release)');
|
|
9
|
+
const pack=source.indexOf("'pack', '--json'");
|
|
10
|
+
const submit=source.indexOf("'publish',publishTarball");
|
|
11
|
+
assert.ok(guard>0&&guard<pack&&guard<submit,'R71 release fence must precede pack and publish');
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
test('R71 publication stays blocked while candidate gates are pending',async()=>{
|
|
15
|
+
const release=JSON.parse(await readFile(new URL('../RELEASE.json',import.meta.url),'utf8'));
|
|
16
|
+
assert.throws(()=>assertR71NpmPublishReady(release),/PUBLISH_BLOCKED/);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test('R71 fence accepts only the exact sealed parent and complete independently verified gate vector',()=>{
|
|
20
|
+
const release={version:'0.15.45',train:'R71',parent:{
|
|
21
|
+
release_id:'v0.15.44-9f500af433df3e77',
|
|
22
|
+
manifest_sha256:'9f500af433df3e7778d4f11acf418526d5889f478114c955c8c72c0077a0636e',
|
|
23
|
+
generation_manifest_sha256:'c35f6ccca58083acd53484a983ef401ee18f28b11185cd02c7b1eb3e29028c71'},
|
|
24
|
+
r71_candidate:{status:'CANDIDATE_SEALED',full_regression:'PASS',manifest:'PASS',
|
|
25
|
+
windows_gate:'PASS',hot_swap:'PASS',package_acceptance:'PASS',
|
|
26
|
+
local_coding_preview:'PASS_CODING_READ_ONLY_NO_AUTONOMOUS_APPLY',
|
|
27
|
+
public_catalog:'PASS_43_TOOLS',signed_public_mcp:'PASS',performance_l0:'PASS',
|
|
28
|
+
owner_independent_project_grant:'DISABLED_FAIL_CLOSED_NO_OWNER_ENROLLMENT'}};
|
|
29
|
+
assert.doesNotThrow(()=>assertR71NpmPublishReady(release));
|
|
30
|
+
for(const key of Object.keys(release.r71_candidate)){
|
|
31
|
+
const altered=structuredClone(release);
|
|
32
|
+
altered.r71_candidate[key]='PENDING';
|
|
33
|
+
assert.throws(()=>assertR71NpmPublishReady(altered),/PUBLISH_BLOCKED/);
|
|
34
|
+
}
|
|
35
|
+
const wrongParent=structuredClone(release);
|
|
36
|
+
wrongParent.parent.manifest_sha256='0'.repeat(64);
|
|
37
|
+
assert.throws(()=>assertR71NpmPublishReady(wrongParent),/PUBLISH_BLOCKED/);
|
|
38
|
+
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import {readFile} from 'node:fs/promises';
|
|
4
|
+
|
|
5
|
+
const json=async rel=>JSON.parse(await readFile(new URL('../'+rel,import.meta.url),'utf8'));
|
|
6
|
+
const parent={release_id:'v0.15.44-9f500af433df3e77',
|
|
7
|
+
manifest_sha256:'9f500af433df3e7778d4f11acf418526d5889f478114c955c8c72c0077a0636e',
|
|
8
|
+
generation_manifest_sha256:'c35f6ccca58083acd53484a983ef401ee18f28b11185cd02c7b1eb3e29028c71'};
|
|
9
|
+
|
|
10
|
+
test('R71 current source, package, bridge, provenance and Windows gate bind exact predecessor',async()=>{
|
|
11
|
+
const [pkg,lock,bridge,release,provenance,matrix,sbom,version]=await Promise.all([
|
|
12
|
+
json('package.json'),json('package-lock.json'),json('bridge/package.json'),json('RELEASE.json'),
|
|
13
|
+
json('PROVENANCE.json'),json('TEST-MATRIX.json'),json('SBOM.cdx.json'),
|
|
14
|
+
readFile(new URL('../src/version.mjs',import.meta.url),'utf8')]);
|
|
15
|
+
for(const observed of [pkg.version,lock.version,lock.packages[''].version,bridge.version,
|
|
16
|
+
release.version,provenance.version,matrix.version,sbom.metadata.component.version]){
|
|
17
|
+
assert.equal(observed,'0.15.45');
|
|
18
|
+
}
|
|
19
|
+
assert.match(version,/DEADBYTE_VERSION = '0\.15\.45'/);
|
|
20
|
+
assert.equal(release.train,'R71');
|
|
21
|
+
assert.equal(matrix.train,'R71');
|
|
22
|
+
assert.equal(sbom.serialNumber,'urn:cdx:deadbyte-mcp:r71:0.15.45');
|
|
23
|
+
assert.deepEqual(release.runtime_predecessor,parent);
|
|
24
|
+
assert.equal(release.parent.release_id,parent.release_id);
|
|
25
|
+
assert.equal(release.parent.manifest_sha256,parent.manifest_sha256);
|
|
26
|
+
assert.equal(release.parent.generation_manifest_sha256,parent.generation_manifest_sha256);
|
|
27
|
+
assert.equal(provenance.parent_release_id,parent.release_id);
|
|
28
|
+
assert.equal(provenance.parent_manifest_sha256,parent.manifest_sha256);
|
|
29
|
+
assert.equal(provenance.parent_generation_manifest_sha256,parent.generation_manifest_sha256);
|
|
30
|
+
assert.match(pkg.scripts['gate:windows'],/gate-windows-r71\.ps1/);
|
|
31
|
+
});
|
|
@@ -10,7 +10,7 @@ const PARENT_RELEASE='v0.15.2-0fb46542f6a4345f';
|
|
|
10
10
|
const PARENT_MANIFEST='0fb46542f6a4345f1c527565d06bf6e9b8e283260e47bf684fb70a60308fcf34';
|
|
11
11
|
const PARENT_GENERATION='00cde7bf540cc2804d679a39040d5b07193c5f8a0d49cac3b882402f8f4e6ad8';
|
|
12
12
|
|
|
13
|
-
test
|
|
13
|
+
test('R46 historical release contract is frozen at 0.15.15 and V0.15.2 parent identity',{skip:'Historical R46 release-version contract requires 0.15.15; current successor differs'},async()=>{
|
|
14
14
|
const pkg=JSON.parse(await text('package.json'));
|
|
15
15
|
const release=JSON.parse(await text('RELEASE.json'));
|
|
16
16
|
const [version,controller,gate,readme,architecture,controllerReadme,deferred,parity,closure,closureVerify,windowsGate,processPolicy]=await Promise.all([
|
|
@@ -35,3 +35,13 @@ test('compact live activity shows failed result duration',()=>{
|
|
|
35
35
|
test('compact live activity ignores unrelated audit events',()=>{
|
|
36
36
|
assert.equal(formatCompactAuditEvent({event_type:'checkpoint',tool:'coding_tree'}),null);
|
|
37
37
|
});
|
|
38
|
+
|
|
39
|
+
test('R67 live logs must reject terminal control injection and path escape codes',()=>{
|
|
40
|
+
const attacker=String.fromCharCode(27)+'[2J'+String.fromCharCode(27)+'[31mINJECTED';
|
|
41
|
+
const injectedTool=formatCompactAuditEvent({event_type:'tool.request',tool:'coding_file_read'+attacker,args:{root_id:'projects',path:'src/test.txt'}});
|
|
42
|
+
assert.equal(injectedTool,null,'tool names carrying control codes must never render');
|
|
43
|
+
const injectedPath=formatCompactAuditEvent({event_type:'tool.request',tool:'coding_file_read',args:{root_id:'projects',path:'src/'+attacker}});
|
|
44
|
+
assert.ok(injectedPath!==null);
|
|
45
|
+
assert.equal(injectedPath.includes(String.fromCharCode(27)),false,'terminal ESC must not be included in line');
|
|
46
|
+
assert.equal(injectedPath.includes('INJECTED'),false,'invalid path should be rejected rather than partially displayed');
|
|
47
|
+
});
|
|
@@ -235,3 +235,32 @@ test('foreground human log keeps START and DONE separate and folds heartbeat noi
|
|
|
235
235
|
assert.match(src,/createLiveTimelineTracker\(\{verbose,displayMode,rootPaths,trace,foldHeartbeats:!verbose\}\)/);
|
|
236
236
|
assert.match(src,/createLiveTimelineWriter\(\{stream:process\.stdout,displayMode,rewrite:false\}\)/);
|
|
237
237
|
});
|
|
238
|
+
|
|
239
|
+
test('R67 timeline normal/verbose views reject ANSI tool names, paths and error reasons',()=>{
|
|
240
|
+
const esc=String.fromCharCode(27);
|
|
241
|
+
const tracker=createLiveTimelineTracker({clock:()=>2000,verbose:false,rootPaths:{projects:'D:\\Projects\\safe'}});
|
|
242
|
+
const forged={event_type:'tool.request',tool:'coding_file_write'+esc+'[2J',request_id:'bad-tool-aaaa',args:{root_id:'projects',path:'readme.txt'}};
|
|
243
|
+
assert.equal(tracker.observe(forged,{sequence:1}),null);
|
|
244
|
+
assert.deepEqual(tracker.pending(),[]);
|
|
245
|
+
const started=tracker.observe({event_type:'tool.request',tool:'coding_file_write',request_id:'safe-abc12345',
|
|
246
|
+
args:{root_id:'projects',path:'file'+esc+'[31mPWNED',content:'safe'}},{sequence:2});
|
|
247
|
+
assert.ok(started);
|
|
248
|
+
assert.equal(started.includes(esc),false);
|
|
249
|
+
assert.equal(started.includes('PWNED'),false);
|
|
250
|
+
const end=tracker.observe({event_type:'tool.result',tool:'coding_file_write',request_id:'safe-abc12345',
|
|
251
|
+
outcome:{is_error:true,duration_ms:3,reason:'failed'+esc+'[2JINJECT'}},{sequence:3});
|
|
252
|
+
assert.ok(end);
|
|
253
|
+
assert.equal(end.includes(esc),false);
|
|
254
|
+
const raw=live.formatRemoteToolCall({...forged,event_type:'tool.request'});
|
|
255
|
+
assert.equal(raw,null);
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
test('R67 live timeline must not expose credential canaries from an error outcome reason',()=>{
|
|
259
|
+
const tracker=createLiveTimelineTracker({clock:()=>1200});
|
|
260
|
+
tracker.observe({event_type:'tool.request',tool:'coding_command_run',request_id:'secret-r67-aaa',args:{root_id:'projects',command_id:'node_script'}},{sequence:1});
|
|
261
|
+
const output=tracker.observe({event_type:'tool.result',tool:'coding_command_run',request_id:'secret-r67-aaa',
|
|
262
|
+
outcome:{is_error:true,duration_ms:20,reason:'HTTP 401 Authorization: Bearer SECRET_TOKEN_SHOULD_NOT_APPEAR'}},{sequence:2});
|
|
263
|
+
assert.ok(output);
|
|
264
|
+
assert.doesNotMatch(output,/SECRET_TOKEN_SHOULD_NOT_APPEAR|Bearer/i);
|
|
265
|
+
assert.match(output,/REDACTED|SENSITIVE/);
|
|
266
|
+
});
|
|
@@ -71,3 +71,15 @@ test('remote result journal preserves explicit unknown side-effect state across
|
|
|
71
71
|
await assert.rejects(journal.recordTerminal({...item('req-invalid',H('5'),'error'),side_effect_state:'committed'}),/side_effect_state invalid/);
|
|
72
72
|
}finally{await rm(root,{recursive:true,force:true});}
|
|
73
73
|
});
|
|
74
|
+
|
|
75
|
+
test('R69 replay retains an input-required result as pending, never ok',async()=>{
|
|
76
|
+
const root=await mkdtemp(path.join(os.tmpdir(),'deadbyte-r69-remote-pending-'));
|
|
77
|
+
try{
|
|
78
|
+
const file=path.join(root,'journal.json');
|
|
79
|
+
let journal=await openRemoteResultJournal({filePath:file,sessionId:session,maxEntries:8});
|
|
80
|
+
await journal.recordTerminal(item('req-input',H('6'),'pending'));
|
|
81
|
+
journal=await openRemoteResultJournal({filePath:file,sessionId:session,maxEntries:8});
|
|
82
|
+
const replay=await journal.replayAfter('r1:'+session+':0',{limit:8});
|
|
83
|
+
assert.equal(replay.events[0].status,'pending');
|
|
84
|
+
}finally{await rm(root,{recursive:true,force:true});}
|
|
85
|
+
});
|
|
@@ -273,7 +273,8 @@ winTest('bare remote uses one unified live timeline, keeps authority semantics,
|
|
|
273
273
|
assert.deepEqual(ready.slice(0,8),['status','start','status','status','armprocess','armcoding','armautonomous','status']);
|
|
274
274
|
assert.equal(child.exitCode,null,'remote session must remain foreground after becoming ready');
|
|
275
275
|
const tailDeadline=Date.now()+3000;
|
|
276
|
-
while(Date.now()<tailDeadline
|
|
276
|
+
while(Date.now()<tailDeadline&&(!/\[AUTH\] process ARMED \| coding ARMED \| autonomous ARMED \| desktop DISARMED \| host DISARMED/.test(output.stdout)||
|
|
277
|
+
!/\[READY\] DEADBYTE MCP online/.test(output.stdout))) await sleep(50);
|
|
277
278
|
assert.match(output.stdout,/\[DISPLAY\] ASCII fallback: stdout_not_tty/);
|
|
278
279
|
assert.match(output.stdout,/\[DEVICE\] Starting DEADBYTE MCP/);
|
|
279
280
|
assert.match(output.stdout,/\[BRIDGE\] Local bridge connected/);
|
|
@@ -50,7 +50,7 @@ const cases=[
|
|
|
50
50
|
];
|
|
51
51
|
|
|
52
52
|
for(const entry of cases){
|
|
53
|
-
test(`R35 ${entry.id} semantic tracer proves outline definition references and receipt-backed replace`,{skip:!(semanticConfigPath&&semanticConfigSha256),timeout:120000},async()=>{
|
|
53
|
+
test(`R35 ${entry.id} semantic tracer proves outline definition references and receipt-backed replace`,{skip:!(semanticConfigPath&&semanticConfigSha256) ? 'R35 external semantic backend fixture requires DEADBYTE_R35_SEMANTIC_CONFIG and matching SHA256; fixture not configured' : false,timeout:120000},async()=>{
|
|
54
54
|
const f=await makeFixture(entry.id);
|
|
55
55
|
try{
|
|
56
56
|
await f.client.connect(f.transport);
|
|
@@ -85,13 +85,13 @@ test('host standing grant remains armed until explicit revocation', async () =>
|
|
|
85
85
|
assert.equal(status.remaining_ms, null);
|
|
86
86
|
});
|
|
87
87
|
|
|
88
|
-
test('controller
|
|
88
|
+
test('controller retains coding/host standing grants but issues bounded autonomous expiry', async () => {
|
|
89
89
|
const controller = await import('node:fs/promises').then(fs => fs.readFile(
|
|
90
90
|
new URL('../controller/deadbyte-controller.ps1', import.meta.url), 'utf8'));
|
|
91
91
|
assert.match(controller, /deadbyte\.host-grant\.v2/);
|
|
92
92
|
assert.match(controller, /deadbyte\.coding-grant\.v2/);
|
|
93
93
|
assert.match(controller, /deadbyte\.autonomous-grant\.v2/);
|
|
94
|
-
assert.
|
|
94
|
+
assert.match(controller, /expires_at_utc=\$now\.AddHours\(1\)\.ToString\('o'\)/);
|
|
95
95
|
assert.doesNotMatch(controller, /AddMinutes\((?:15|30|60)\)/);
|
|
96
96
|
assert.doesNotMatch(controller, /expires=/);
|
|
97
97
|
});
|
package/test/tool-audit.test.mjs
CHANGED
|
@@ -71,6 +71,20 @@ test('tool wrapper durably records request before handler and writes correlated
|
|
|
71
71
|
}finally{await rm(root,{recursive:true,force:true});}
|
|
72
72
|
});
|
|
73
73
|
|
|
74
|
+
test('R69 audit retains explicit unknown side effect even when a tool envelope says ok',async()=>{
|
|
75
|
+
const root=await temp();
|
|
76
|
+
try{
|
|
77
|
+
const k=await keys(root);
|
|
78
|
+
const audit=await createToolAudit({stateRoot:root,signingKeyPath:k.privateKeyPath,contextProvider:async()=>context()});
|
|
79
|
+
const server=fakeServer();installToolAudit(server,audit);
|
|
80
|
+
server.registerTool('uncertain_write',{},async()=>({isError:false,
|
|
81
|
+
structuredContent:{status:'ok',side_effect_state:'unknown'}}));
|
|
82
|
+
await server.handlers.get('uncertain_write')({path:'scratch.txt'});
|
|
83
|
+
const all=await events(root);
|
|
84
|
+
assert.equal(all.at(-1).outcome.side_effect_state,'unknown');
|
|
85
|
+
}finally{await rm(root,{recursive:true,force:true});}
|
|
86
|
+
});
|
|
87
|
+
|
|
74
88
|
test('audit failure before request commit prevents handler side effects',async()=>{
|
|
75
89
|
const server=fakeServer();let sideEffect=false;
|
|
76
90
|
installToolAudit(server,{async recordRequest(){throw new Error('audit unavailable');},async recordResult(){throw new Error('unexpected');}});
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/bin/deadbyte-contain.obj
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/bin/deadbyte-exec.obj
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/miniconpty.obj
DELETED
|
Binary file
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
==== launcher ====
|
|
2
|
-
deadbyte-contain.cpp
|
|
3
|
-
exit_code=0
|
|
4
|
-
==== probe ====
|
|
5
|
-
containment-probe.cpp
|
|
6
|
-
exit_code=0
|
|
7
|
-
==== bootstrap-kernel32 ====
|
|
8
|
-
bootstrap-kernel32.cpp
|
|
9
|
-
exit_code=0
|
|
10
|
-
==== bootstrap-advapi32 ====
|
|
11
|
-
bootstrap-advapi32.cpp
|
|
12
|
-
exit_code=0
|
|
13
|
-
==== construction-launcher ====
|
|
14
|
-
appcontainer-stage.cpp
|
|
15
|
-
exit_code=0
|
|
16
|
-
==== bootstrap-exitcode ====
|
|
17
|
-
bootstrap-exitcode.cpp
|
|
18
|
-
exit_code=0
|
|
19
|
-
==== child-control-launcher ====
|
|
20
|
-
child-control-stage.cpp
|
|
21
|
-
exit_code=0
|
|
22
|
-
==== child-control-probe ====
|
|
23
|
-
child-control-probe.cpp
|
|
24
|
-
exit_code=0
|
|
25
|
-
==== contained-launcher ====
|
|
26
|
-
deadbyte-exec.cpp
|
|
27
|
-
exit_code=0
|
|
28
|
-
==== contained-worker ====
|
|
29
|
-
contained-transform-worker.cpp
|
|
30
|
-
exit_code=0
|
|
31
|
-
==== contained-reverse-worker ====
|
|
32
|
-
contained-reverse-worker.cpp
|
|
33
|
-
exit_code=0
|
|
34
|
-
==== named-tunnel-host ====
|
|
35
|
-
deadbyte-tunnel-host.cpp
|
|
36
|
-
exit_code=0
|
|
37
|
-
==== process-host ====
|
|
38
|
-
deadbyte-process-host.cpp
|
|
39
|
-
exit_code=0
|
|
40
|
-
==== probe-dependencies ====
|
|
41
|
-
|
|
42
|
-
Dump of file D:\Projects\deadbyte-mcp\development\deadbyte-mcp-0.15.30-stabilization\bin\containment-probe.exe
|
|
43
|
-
|
|
44
|
-
File Type: EXECUTABLE IMAGE
|
|
45
|
-
|
|
46
|
-
Image has the following dependencies:
|
|
47
|
-
|
|
48
|
-
ADVAPI32.dll
|
|
49
|
-
KERNEL32.dll
|
|
50
|
-
|
|
51
|
-
Summary
|
|
52
|
-
|
|
53
|
-
2000 .data
|
|
54
|
-
1000 .fptable
|
|
55
|
-
2000 .pdata
|
|
56
|
-
E000 .rdata
|
|
57
|
-
1000 .reloc
|
|
58
|
-
19000 .text
|
|
59
|
-
exit_code=0
|
|
60
|
-
==== contained-launcher-dependencies ====
|
|
61
|
-
|
|
62
|
-
Dump of file D:\Projects\deadbyte-mcp\development\deadbyte-mcp-0.15.30-stabilization\bin\deadbyte-exec.exe
|
|
63
|
-
|
|
64
|
-
File Type: EXECUTABLE IMAGE
|
|
65
|
-
|
|
66
|
-
Image has the following dependencies:
|
|
67
|
-
|
|
68
|
-
USERENV.dll
|
|
69
|
-
ADVAPI32.dll
|
|
70
|
-
ole32.dll
|
|
71
|
-
bcrypt.dll
|
|
72
|
-
WS2_32.dll
|
|
73
|
-
KERNEL32.dll
|
|
74
|
-
|
|
75
|
-
Summary
|
|
76
|
-
|
|
77
|
-
3000 .data
|
|
78
|
-
1000 .fptable
|
|
79
|
-
3000 .pdata
|
|
80
|
-
17000 .rdata
|
|
81
|
-
1000 .reloc
|
|
82
|
-
3B000 .text
|
|
83
|
-
exit_code=0
|
|
84
|
-
==== contained-worker-dependencies ====
|
|
85
|
-
|
|
86
|
-
Dump of file D:\Projects\deadbyte-mcp\development\deadbyte-mcp-0.15.30-stabilization\bin\contained-transform-worker.exe
|
|
87
|
-
|
|
88
|
-
File Type: EXECUTABLE IMAGE
|
|
89
|
-
|
|
90
|
-
Image has the following dependencies:
|
|
91
|
-
|
|
92
|
-
ADVAPI32.dll
|
|
93
|
-
WS2_32.dll
|
|
94
|
-
KERNEL32.dll
|
|
95
|
-
|
|
96
|
-
Summary
|
|
97
|
-
|
|
98
|
-
2000 .data
|
|
99
|
-
1000 .fptable
|
|
100
|
-
2000 .pdata
|
|
101
|
-
F000 .rdata
|
|
102
|
-
1000 .reloc
|
|
103
|
-
19000 .text
|
|
104
|
-
exit_code=0
|
|
105
|
-
==== contained-reverse-worker-dependencies ====
|
|
106
|
-
|
|
107
|
-
Dump of file D:\Projects\deadbyte-mcp\development\deadbyte-mcp-0.15.30-stabilization\bin\contained-reverse-worker.exe
|
|
108
|
-
|
|
109
|
-
File Type: EXECUTABLE IMAGE
|
|
110
|
-
|
|
111
|
-
Image has the following dependencies:
|
|
112
|
-
|
|
113
|
-
ADVAPI32.dll
|
|
114
|
-
WS2_32.dll
|
|
115
|
-
KERNEL32.dll
|
|
116
|
-
|
|
117
|
-
Summary
|
|
118
|
-
|
|
119
|
-
2000 .data
|
|
120
|
-
1000 .fptable
|
|
121
|
-
2000 .pdata
|
|
122
|
-
F000 .rdata
|
|
123
|
-
1000 .reloc
|
|
124
|
-
19000 .text
|
|
125
|
-
exit_code=0
|
|
126
|
-
==== named-tunnel-host-dependencies ====
|
|
127
|
-
|
|
128
|
-
Dump of file D:\Projects\deadbyte-mcp\development\deadbyte-mcp-0.15.30-stabilization\bin\deadbyte-tunnel-host.exe
|
|
129
|
-
|
|
130
|
-
File Type: EXECUTABLE IMAGE
|
|
131
|
-
|
|
132
|
-
Image has the following dependencies:
|
|
133
|
-
|
|
134
|
-
KERNEL32.dll
|
|
135
|
-
|
|
136
|
-
Summary
|
|
137
|
-
|
|
138
|
-
2000 .data
|
|
139
|
-
1000 .fptable
|
|
140
|
-
2000 .pdata
|
|
141
|
-
C000 .rdata
|
|
142
|
-
1000 .reloc
|
|
143
|
-
18000 .text
|
|
144
|
-
exit_code=0
|
|
145
|
-
==== process-host-dependencies ====
|
|
146
|
-
|
|
147
|
-
Dump of file D:\Projects\deadbyte-mcp\development\deadbyte-mcp-0.15.30-stabilization\bin\deadbyte-process-host.exe
|
|
148
|
-
|
|
149
|
-
File Type: EXECUTABLE IMAGE
|
|
150
|
-
|
|
151
|
-
Image has the following dependencies:
|
|
152
|
-
|
|
153
|
-
KERNEL32.dll
|
|
154
|
-
|
|
155
|
-
Summary
|
|
156
|
-
|
|
157
|
-
2000 .data
|
|
158
|
-
1000 .fptable
|
|
159
|
-
2000 .pdata
|
|
160
|
-
F000 .rdata
|
|
161
|
-
1000 .reloc
|
|
162
|
-
1C000 .text
|
|
163
|
-
exit_code=0
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
DEADBYTE MCP V0.6.0 MCP LIVE SMOKE
|
|
2
|
-
STATUS=PASS
|
|
3
|
-
PROTOCOL_REVISION=2026-07-28
|
|
4
|
-
PROTOCOL_ERA=modern
|
|
5
|
-
TOOLS=contained_transform,evidence_verify,file_read,proof_execute,workspace_open
|
|
6
|
-
SIGNATURE_ALGORITHM=ed25519
|
|
7
|
-
SIGNATURE_VALID=true
|
|
8
|
-
INDEPENDENT_VERIFY=true
|
|
9
|
-
OUTPUT_SHA256=72562501a654ddbb4f8810f8ba9017d02b29516853101456445e7642988fbd1b
|
package/proof/NODE-SYNTAX.txt
DELETED
package/proof/PROOF.txt
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
DEADBYTE MCP V0.6.0 SIGNED PROOF REGRESSION
|
|
2
|
-
STATUS=PASS
|
|
3
|
-
RECEIPT_SHA256=5bc4f1ace478b79fc491811888b039ebffb72d09f7cd51f520f6569a0cc3d0d4
|
|
4
|
-
KEY_ID=64ee8445e138c19a2049dc4242924d056f2b62913ed65364916413eb684a946e
|
|
5
|
-
SIGNATURE_ALGORITHM=ed25519
|
|
6
|
-
OUTPUT_SHA256=72562501a654ddbb4f8810f8ba9017d02b29516853101456445e7642988fbd1b
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schema": "deadbyte.r34.task8-checkpoint.v1",
|
|
3
|
-
"task": 8,
|
|
4
|
-
"status": "passed",
|
|
5
|
-
"workspace": "D:\\Projects\\deadbyte-mcp-r34-loop-engine",
|
|
6
|
-
"node_executable_sha256": "9a4eb5f1c29c6a2e93852ead46b999e284a6a5ca8bab4d4e241d587d025a52de",
|
|
7
|
-
"sources": {
|
|
8
|
-
"src/autonomous-local-supervisor.mjs": "ab0158c3f6e270ee367ae96455dd2b75a902c808b2a10ac2c5b75fdda00be6c3",
|
|
9
|
-
"src/autonomous-supervisor.mjs": "8ea06b5941de9b346ab4e97ff6ed236964b864fbe725602baee3a54dd74527c0",
|
|
10
|
-
"src/autonomous-supervisor-host.mjs": "335022086ef41e6cc9853468d928acc864deab8009383dc22518a6ec7e749fa1",
|
|
11
|
-
"src/deadbyte-cli.mjs": "0b0d41a51559502a6ff377a4f74e6f80ea77d37002a700e04bd7c4dd3f226b42",
|
|
12
|
-
"controller/deadbyte-controller.ps1": "279dfe20345193ca229cc442b25796f12d4c8ec9f9d3e2d26a607a7342b96a5a",
|
|
13
|
-
"controller/deadbyte-controller.config.psd1.example": "f20a5bf0df576dbdd32af657640b26c5c50c39dce0b465b7488c218917c729f7"
|
|
14
|
-
},
|
|
15
|
-
"regression": {
|
|
16
|
-
"tests": 40,
|
|
17
|
-
"passed": 40,
|
|
18
|
-
"failed": 0,
|
|
19
|
-
"receipt_id": "473fb1f0f7e6a2dec1ea9d80",
|
|
20
|
-
"receipt_sha256": "255e3679051eff46ae745b16f07d6a3c40f87e42259ac651ef286c9d876ceae2",
|
|
21
|
-
"receipt_signature_valid": true,
|
|
22
|
-
"marker": "TASK8_REGRESSION=PASS"
|
|
23
|
-
},
|
|
24
|
-
"authority_contract": {
|
|
25
|
-
"self_arm": false,
|
|
26
|
-
"recovery_operations": ["resume","disarmautonomous","disarmcoding","disarmprocess","disarmhost","status"],
|
|
27
|
-
"final_required": "ONLINE + process/coding/autonomous/host DISARMED"
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schema": "deadbyte.r34-task9-checkpoint.v1",
|
|
3
|
-
"status": "passed",
|
|
4
|
-
"workspace": "D:\\Projects\\deadbyte-mcp-r34-loop-engine",
|
|
5
|
-
"public_tool_count": 68,
|
|
6
|
-
"public_tool_unique_count": 68,
|
|
7
|
-
"public_tool_catalog_sha256": "bb7c08e116178e3da4b577b591f7058eb6caf7632358e765d28ccb20b2e36f45",
|
|
8
|
-
"mcp_server_sha256": "5a6cd82c332e4cef30c4ccfeb12f8cb3634cb6c92104931768b42ba6a84b62b3",
|
|
9
|
-
"controller_sha256": "cf8ab26a7481801da07c5c0a842df4ce1279854ed67781f967e5412da5c2aa3d",
|
|
10
|
-
"supervisor_integration_test_sha256": "127e170995460daabab88860f20f1b4c2416839e018df0e1cda23b58d032beab",
|
|
11
|
-
"exact_surface_gate": {
|
|
12
|
-
"tests": 19,
|
|
13
|
-
"pass": 19,
|
|
14
|
-
"fail": 0,
|
|
15
|
-
"receipt_id": "dc0b7e9c6c9e340c037bc54a",
|
|
16
|
-
"receipt_sha256": "f6b8ac9b6d499d51f60c7f8053a2e591e09654cdfe5bf69c449b15d133e48506"
|
|
17
|
-
},
|
|
18
|
-
"catalog_observation": {
|
|
19
|
-
"receipt_id": "7dd6df7d9b575e786101d1d0",
|
|
20
|
-
"receipt_sha256": "226e0861c01cb485ef94b91c1562a3cb70123698b9a52bb62ba883940be940cf"
|
|
21
|
-
},
|
|
22
|
-
"supervision": {
|
|
23
|
-
"in_process_compatibility": true,
|
|
24
|
-
"external_owner_mode": true,
|
|
25
|
-
"bridge_external_mode_does_not_execute_goal": true,
|
|
26
|
-
"standalone_host_advances_durable_goal": true
|
|
27
|
-
}
|
|
28
|
-
}
|
package/proof/SECRET-SCAN.txt
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
DEADBYTE_MCP_VERSION=0.7.3
|
|
2
|
-
RESULT=PASS
|
|
3
|
-
No private-key material, MCP secret path literal, node_modules, shell:true, broad taskkill-by-image, or Stop-Process -Name occurs in the source package.
|
|
4
|
-
The tunnel stdio compatibility adapter imports no child_process API and performs no file write.
|
package/proof/SOURCE-GATES.txt
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
DEADBYTE MCP V0.7.3 SOURCE/ADVERSARIAL GATES
|
|
2
|
-
TESTS=142
|
|
3
|
-
PASS=142
|
|
4
|
-
FAIL=0
|
|
5
|
-
TUNNEL_STDIO_COMPAT_TESTS=10_10_PASS
|
|
6
|
-
NODE_SYNTAX=PASS_44_44
|
|
7
|
-
PROTOCOL_REVISION=2026-07-28
|
|
8
|
-
STRICT_SDK_LEGACY_POLICY=reject
|
|
9
|
-
TUNNEL_STARTUP_PROBE_COMPAT=SOURCE_PASS_TARGET_PENDING
|
|
10
|
-
LEGACY_CAPABILITY_TRANSLATION=NONE
|
|
11
|
-
SIGNED_PROOF_REGRESSION=PASS
|
|
12
|
-
INDEPENDENT_VERIFIER_REGRESSION=PASS
|
|
13
|
-
ACTIVE_NETWORK_SOURCE_GATES=PASS
|
|
14
|
-
EXECUTION_AUTHORITY_SOURCE_GATES=PASS
|
|
15
|
-
PRIVILEGED_HOST_PLANE_SOURCE_GATES=PASS
|
|
16
|
-
WINDOWS_NATIVE_BATCH_GATE=PENDING_TARGET
|
package/proof/STATUS.txt
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
DEADBYTE MCP V0.7.3
|
|
2
|
-
SOURCE_TESTS=PASS_142_142
|
|
3
|
-
TUNNEL_STDIO_COMPAT=SOURCE_PASS_TARGET_PENDING
|
|
4
|
-
MCP_PROTOCOL=2026-07-28
|
|
5
|
-
STRICT_CORE_LEGACY=REJECT
|
|
6
|
-
LEGACY_STARTUP_PROBE_ADAPTER=OPTIONAL_NARROW_PREFILTER
|
|
7
|
-
LEGACY_CAPABILITY_TRANSLATION=NONE
|
|
8
|
-
PRIVILEGED_HOST_PLANE=LOCAL_POLICY_PLUS_EXPIRING_ARM_LEASE
|
|
9
|
-
GENERAL_UNBOUNDED_COMMAND_EXECUTION=NOT_EXPOSED
|
|
10
|
-
WINDOWS_BATCH_GATE=PENDING_TARGET
|
|
11
|
-
PUBLIC_TUNNEL_GATE=PENDING_TARGET
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e6a8f91b62b5fdb861ee039ae05a9c3572535d16608297ec75c6440e5ea6d20d TARGET-V0313-CONTAINMENT-PASS.txt
|