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.
Files changed (247) hide show
  1. package/MANIFEST.SHA256 +160 -161
  2. package/PROVENANCE.json +257 -232
  3. package/README.txt +18 -18
  4. package/RELEASE.json +348 -320
  5. package/SBOM.cdx.json +14 -2
  6. package/TEST-MATRIX.json +503 -460
  7. package/bin/deadbyte-native-inspect-r67.exe +0 -0
  8. package/bridge/package.json +1 -1
  9. package/controller/deadbyte-controller.ps1 +1857 -1769
  10. package/controller/deadbyte-desktop-policy.json +6 -6
  11. package/controller/deadbyte-process-policy.json +4 -4
  12. package/docs/R67-ALPHA-REFERENCE-DIFFERENTIAL.md +42 -0
  13. package/docs/R67-ALPHA-STATIC-COMPARISON.json +205 -0
  14. package/docs/R67-CANDIDATE-PARENT.json +10 -0
  15. package/docs/R67-EVIDENCE-RECONCILE-CLOSEOUT-20261011.md +64 -0
  16. package/docs/R67-FULL-REGRESSION-UNKNOWN.json +27 -0
  17. package/docs/R67-NATIVE-INSPECT-BINARY.json +11 -0
  18. package/docs/R67-NPM-EXDEV-PRESERVATION-20261011.md +39 -0
  19. package/docs/R67-OBSERVATION-TRUTH.md +82 -0
  20. package/docs/R67-REFERENCE-GAP-MATRIX.json +57 -0
  21. package/docs/R67-REGRESSION-CLOSURE-20261011.md +24 -0
  22. package/docs/R68-COMPAT-HOST-EXEC-CANDIDATE.md +63 -0
  23. package/docs/R69-LIVE-OUTCOME-R70-POLICY-TRANSFER.md +136 -0
  24. package/docs/R70-CODING-DIGEST-SUPERVISOR-CHECKPOINT-20261013.md +42 -0
  25. package/docs/R70-FINITE-GRANT-OWNER-BOUNDARY-20261013.md +80 -0
  26. package/docs/R70-OWNER-BOOTSTRAP-CHECKPOINT-20261013.md +60 -0
  27. package/docs/R70-REFERENCE-MECHANISMS.json +95 -0
  28. package/docs/R70-TRUST-GUARD-EXPIRY-CHECKPOINT-20261013.md +47 -0
  29. package/native/deadbyte-native-inspect-r67.cpp +252 -0
  30. package/package.json +6 -3
  31. package/scripts/benchmark-l0-r71.mjs +76 -0
  32. package/scripts/build-native-inspector-r67.ps1 +28 -0
  33. package/scripts/gate-windows-r67.ps1 +56 -0
  34. package/scripts/gate-windows-r71.ps1 +64 -0
  35. package/scripts/npm-preserve-artifact-r67.mjs +99 -0
  36. package/scripts/npm-release-r48.mjs +12 -2
  37. package/scripts/npm-release-readiness-r67.mjs +26 -0
  38. package/scripts/npm-release-readiness-r71.mjs +21 -0
  39. package/scripts/r67-acquire-alpha-reference.mjs +95 -0
  40. package/scripts/r67-audit-nonpass-source.mjs +39 -0
  41. package/scripts/r67-compare-desktop-alpha.mjs +48 -0
  42. package/scripts/r67-diagnose-failed-shard.mjs +23 -0
  43. package/scripts/r67-durable-batch.mjs +42 -0
  44. package/scripts/r67-focused-gate.mjs +58 -0
  45. package/scripts/r67-full-regression.mjs +28 -0
  46. package/scripts/r67-independent-observation-verify.mjs +36 -0
  47. package/scripts/r67-independent-runtime-observation-verify.mjs +63 -0
  48. package/scripts/r67-nonpass-adjudicate.mjs +20 -0
  49. package/scripts/r67-publish-boundary-audit.mjs +32 -0
  50. package/scripts/r67-regression-reconcile.mjs +10 -0
  51. package/scripts/r67-regression-shard-run.mjs +70 -0
  52. package/scripts/r67-run-shard-batch.mjs +18 -0
  53. package/scripts/r67-stage-candidate.mjs +30 -0
  54. package/scripts/r67-verify-parent-ping.mjs +22 -0
  55. package/scripts/release-manifest.mjs +1 -0
  56. package/scripts/verify-r70-full-regression.ps1 +72 -0
  57. package/src/activation-continuity-engine-r65.mjs +2 -1
  58. package/src/authority-continuity-r65.mjs +28 -8
  59. package/src/autonomous-mcp-tools.mjs +1 -1
  60. package/src/autonomous-output-contracts.mjs +4 -1
  61. package/src/autonomous-policy.mjs +54 -7
  62. package/src/autonomous-runtime.mjs +1 -1
  63. package/src/capability-ledger.mjs +1 -1
  64. package/src/capability-resolver.mjs +2 -1
  65. package/src/commander-compat-runtime.mjs +30 -2
  66. package/src/deadbyte-cli.mjs +41 -7
  67. package/src/machine-fs-smoke-client.mjs +13 -5
  68. package/src/machine-identity.mjs +59 -2
  69. package/src/machine-mcp-tools.mjs +8 -0
  70. package/src/mcp-server.mjs +11 -2
  71. package/src/native-diff-v2.mjs +18 -5
  72. package/src/native-diff.mjs +21 -5
  73. package/src/native-inspector-r67.mjs +66 -0
  74. package/src/r67-diagnostic-export.mjs +118 -0
  75. package/src/r67-diagnostics-verify.mjs +82 -0
  76. package/src/r67-evidence-reconcile.mjs +128 -0
  77. package/src/r67-native-observation-authority.mjs +45 -0
  78. package/src/r67-observation-receipt.mjs +43 -0
  79. package/src/r67-regression-shards.mjs +176 -0
  80. package/src/r70-owner-approval.mjs +78 -0
  81. package/src/remote-live-log.mjs +62 -24
  82. package/src/remote-result-journal.mjs +1 -1
  83. package/src/runtime-update.mjs +2051 -1891
  84. package/src/tool-audit.mjs +3 -1
  85. package/src/version.mjs +1 -1
  86. package/test/agent-runtime.test.mjs +1 -1
  87. package/test/autonomous-local-supervisor.test.mjs +2 -1
  88. package/test/autonomous-loop.test.mjs +11 -6
  89. package/test/autonomous-output-contract.test.mjs +17 -1
  90. package/test/autonomous-runtime.test.mjs +1 -1
  91. package/test/autonomous-supervisor-integration.test.mjs +2 -1
  92. package/test/capability-resolver.test.mjs +17 -0
  93. package/test/codex-autonomous-r44.test.mjs +1 -1
  94. package/test/coding-plane.test.mjs +1 -1
  95. package/test/commander-compat-runtime.test.mjs +42 -0
  96. package/test/controller-policy-preflight-r59.test.mjs +1 -0
  97. package/test/full-max-catalog-r46.test.mjs +1 -1
  98. package/test/native-diff-topology-r36.test.mjs +35 -2
  99. package/test/native-diff.test.mjs +83 -3
  100. package/test/output-schema.test.mjs +1 -1
  101. package/test/r51-live-log-polling.test.mjs +12 -0
  102. package/test/r53-release-contract.test.mjs +1 -1
  103. package/test/r54-release-contract.test.mjs +1 -1
  104. package/test/r55-release-contract.test.mjs +1 -1
  105. package/test/r56-release-contract.test.mjs +1 -1
  106. package/test/r57-release-contract.test.mjs +1 -1
  107. package/test/r58-bundled-bridge.test.mjs +1 -1
  108. package/test/r58-release-contract.test.mjs +2 -2
  109. package/test/r58-windows-gate.test.mjs +1 -1
  110. package/test/r59-tool-surface-compat.test.mjs +9 -5
  111. package/test/r60-release-contract.test.mjs +3 -3
  112. package/test/r61-release-contract.test.mjs +1 -1
  113. package/test/r62-release-contract.test.mjs +1 -1
  114. package/test/r63-release-contract.test.mjs +1 -1
  115. package/test/r64-release-contract.test.mjs +1 -1
  116. package/test/r65-authority-runtime-epoch.test.mjs +9 -1
  117. package/test/r65-epoch-native-activation-integration.test.mjs +4 -4
  118. package/test/r65-release-contract.test.mjs +1 -1
  119. package/test/r66-release-contract.test.mjs +2 -1
  120. package/test/r67-cli-integration.test.mjs +41 -0
  121. package/test/r67-diagnostics-cli.test.mjs +60 -0
  122. package/test/r67-diagnostics-verify.test.mjs +49 -0
  123. package/test/r67-diagnostics-zip-oracle.test.mjs +38 -0
  124. package/test/r67-diagnostics.test.mjs +60 -0
  125. package/test/r67-evidence-reconcile.test.mjs +186 -0
  126. package/test/r67-isolated-slot-rollback-restore.test.mjs +63 -0
  127. package/test/r67-live-log-secret-canary.test.mjs +44 -0
  128. package/test/r67-machine-fs-smoke-epoch.test.mjs +22 -0
  129. package/test/r67-native-inspector.test.mjs +131 -0
  130. package/test/r67-native-observation-authority.test.mjs +49 -0
  131. package/test/r67-npm-cross-volume.test.mjs +74 -0
  132. package/test/r67-npm-publish-gate.test.mjs +40 -0
  133. package/test/r67-regression-shards.test.mjs +184 -0
  134. package/test/r67-release-contract.test.mjs +45 -0
  135. package/test/r67-runtime-observation-binding.test.mjs +86 -0
  136. package/test/r67-server-observation-wiring.test.mjs +12 -0
  137. package/test/r67-signed-receipt.test.mjs +66 -0
  138. package/test/r67-skip-rationale.test.mjs +31 -0
  139. package/test/r67-tool-annotations.test.mjs +21 -0
  140. package/test/r67-windows-gate-argv.test.mjs +13 -0
  141. package/test/r69-live-outcome.test.mjs +137 -0
  142. package/test/r70-autonomous-grant-expiry.test.mjs +89 -0
  143. package/test/r70-autonomous-policy-bootstrap.test.mjs +166 -0
  144. package/test/r70-controller-autonomous-root.test.mjs +104 -0
  145. package/test/r70-controller-grant-subset.test.mjs +28 -0
  146. package/test/r70-controller-owner-issue-boundary.test.mjs +80 -0
  147. package/test/r70-controller-policy-snapshot.test.mjs +66 -0
  148. package/test/r70-owner-approval.test.mjs +67 -0
  149. package/test/r71-full-verifier-artifact.test.mjs +28 -0
  150. package/test/r71-isolated-slot-rollback-restore.test.mjs +62 -0
  151. package/test/r71-native-diff-mcp-wire.test.mjs +75 -0
  152. package/test/r71-publish-fence.test.mjs +38 -0
  153. package/test/r71-release-identity.test.mjs +31 -0
  154. package/test/release-version.test.mjs +1 -1
  155. package/test/remote-live-log-r36.test.mjs +10 -0
  156. package/test/remote-live-log-r37.test.mjs +29 -0
  157. package/test/remote-result-journal.test.mjs +12 -0
  158. package/test/remote-session-cli.test.mjs +2 -1
  159. package/test/semantic-multilang.test.mjs +1 -1
  160. package/test/standing-grants.test.mjs +2 -2
  161. package/test/tool-audit.test.mjs +14 -0
  162. package/bin/appcontainer-stage.obj +0 -0
  163. package/bin/bootstrap-advapi32.obj +0 -0
  164. package/bin/bootstrap-exitcode.obj +0 -0
  165. package/bin/bootstrap-kernel32.obj +0 -0
  166. package/bin/child-control-probe.obj +0 -0
  167. package/bin/child-control-stage.obj +0 -0
  168. package/bin/contained-reverse-worker.obj +0 -0
  169. package/bin/contained-transform-worker.obj +0 -0
  170. package/bin/containment-probe.obj +0 -0
  171. package/bin/deadbyte-contain.obj +0 -0
  172. package/bin/deadbyte-desktop-input-r40.obj +0 -0
  173. package/bin/deadbyte-desktop-observer-r40.obj +0 -0
  174. package/bin/deadbyte-desktop-uia-r40.obj +0 -0
  175. package/bin/deadbyte-exec.obj +0 -0
  176. package/bin/deadbyte-hardware-observer-r45.obj +0 -0
  177. package/bin/deadbyte-process-host.obj +0 -0
  178. package/bin/deadbyte-tunnel-host.obj +0 -0
  179. package/conpty-input-observer.obj +0 -0
  180. package/miniconpty.obj +0 -0
  181. package/proof/CONTAINMENT-BUILD.txt +0 -163
  182. package/proof/MCP-SMOKE-STATUS.txt +0 -9
  183. package/proof/NODE-SYNTAX.txt +0 -4
  184. package/proof/PROOF.txt +0 -6
  185. package/proof/R34-TASK8-SUPERVISOR-CHECKPOINT.json +0 -29
  186. package/proof/R34-TASK9-MCP-SURFACE-CHECKPOINT.json +0 -28
  187. package/proof/SECRET-SCAN.txt +0 -4
  188. package/proof/SOURCE-GATES.txt +0 -16
  189. package/proof/STATUS.txt +0 -11
  190. package/proof/TARGET-V0313-CONTAINMENT-PASS.sha256 +0 -1
  191. package/proof/TARGET-V0313-CONTAINMENT-PASS.txt +0 -215
  192. package/proof/TARGET-V040-CONTAINED-IPC-FAIL.sha256 +0 -1
  193. package/proof/TARGET-V040-CONTAINED-IPC-FAIL.txt +0 -299
  194. package/proof/TARGET-V041-CONTAINED-CREATEPROCESS-203.sha256 +0 -1
  195. package/proof/TARGET-V041-CONTAINED-CREATEPROCESS-203.txt +0 -311
  196. package/proof/TARGET-V042-CONTAINED-CREATEPROCESS-203.sha256 +0 -1
  197. package/proof/TARGET-V042-CONTAINED-CREATEPROCESS-203.txt +0 -313
  198. package/proof/TARGET-V043-CONTAINED-CREATEPROCESS-203.sha256 +0 -1
  199. package/proof/TARGET-V043-CONTAINED-CREATEPROCESS-203.txt +0 -308
  200. package/proof/TARGET-V044-CONTAINED-PASS.sha256 +0 -1
  201. package/proof/TARGET-V044-CONTAINED-PASS.txt +0 -432
  202. package/proof/TARGET-V045-DUAL-OPERATION-PASS.sha256 +0 -1
  203. package/proof/TARGET-V045-DUAL-OPERATION-PASS.txt +0 -481
  204. package/proof/TARGET-V046-FIXED-EXECUTABLE-REGISTRY-PASS.sha256 +0 -1
  205. package/proof/TARGET-V046-FIXED-EXECUTABLE-REGISTRY-PASS.txt +0 -610
  206. package/proof/TARGET-V047-RUNTIME-MANIFEST-PASS.sha256 +0 -1
  207. package/proof/TARGET-V047-RUNTIME-MANIFEST-PASS.txt +0 -642
  208. package/proof/TARGET-V050-BATCH-GATE-PASS.sha256 +0 -1
  209. package/proof/TARGET-V050-BATCH-GATE-PASS.txt +0 -713
  210. package/proof/TESTS.txt +0 -686
  211. package/proof/TRUST-EPHEMERAL.txt +0 -4
  212. package/proof/V03-FREEZE.txt +0 -27
  213. package/proof/V041-IPC-HOTFIX.txt +0 -16
  214. package/proof/V042-ENV-HOTFIX.txt +0 -15
  215. package/proof/V043-DRIVE-CWD-HOTFIX.txt +0 -14
  216. package/proof/V044-LOCALAPPDATA-HOTFIX.txt +0 -18
  217. package/proof/V045-OPERATION-REGISTRY.txt +0 -7
  218. package/proof/V046-WORKER-REGISTRY.txt +0 -12
  219. package/proof/V047-WORKER-MANIFEST.txt +0 -18
  220. package/proof/V050-BATCH-TRUST-CLOSURE.txt +0 -21
  221. package/proof/V060-ACTIVE-NETWORK-AUTHORITY.txt +0 -29
  222. package/proof/V070-NODE-SYNTAX.txt +0 -36
  223. package/proof/V070-NODE-TESTS.txt +0 -752
  224. package/proof/V070-PACK-DRY-RUN.txt +0 -126
  225. package/proof/V070-SOURCE-GATE.txt +0 -30
  226. package/proof/V070-STATIC-SCAN.txt +0 -4
  227. package/proof/V070-WINDOWS-GATE-PENDING.txt +0 -25
  228. package/proof/V071-NODE-SYNTAX.txt +0 -1
  229. package/proof/V071-NODE-TESTS.txt +0 -796
  230. package/proof/V071-PACK-DRY-RUN.json +0 -656
  231. package/proof/V071-SOURCE-GATE.txt +0 -16
  232. package/proof/V071-WINDOWS-GATE-PENDING.txt +0 -24
  233. package/proof/V073-NODE-SYNTAX.txt +0 -4
  234. package/proof/V073-SOURCE-GATE.txt +0 -21
  235. package/proof/V073-STATIC-SCAN.txt +0 -10
  236. package/proof/V073-WINDOWS-GATE-PENDING.txt +0 -5
  237. package/proof/VERIFY.txt +0 -7
  238. package/proof/WINDOWS-CONTAINED-STATUS.txt +0 -5
  239. package/proof/WINDOWS-CONTAINMENT-STATUS.txt +0 -3
  240. package/proof/commander-closure-20260927/CONTINUATION.json +0 -43
  241. package/proof/commander-closure-20260927/RESULT.json +0 -30
  242. package/proof/commander-closure-20260927/SEARCH-CONTINUATION.json +0 -30
  243. package/proof/commander-closure-20260927/XLS-REFERENCE-PROBE.json +0 -13
  244. package/proof/commander-closure-20260928/DIFFERENTIAL-CHECKPOINT.json +0 -122
  245. package/proof/r59-full-regression-current.json +0 -13
  246. package/proof/r59-full-regression-current.stderr.log +0 -0
  247. 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.skip('R46 historical release contract is frozen at 0.15.15 and V0.15.2 parent identity',async()=>{
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&&!/\[AUTH\] process ARMED \| coding ARMED \| autonomous ARMED \| desktop DISARMED \| host DISARMED/.test(output.stdout)) await sleep(50);
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 emits standing grants and hides expiry UX', async () => {
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.doesNotMatch(controller, /expires_at_utc/);
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
  });
@@ -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
Binary file
Binary file
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
@@ -1,4 +0,0 @@
1
- DEADBYTE_MCP_VERSION=0.7.3
2
- NODE_SYNTAX_FILES=44
3
- NODE_SYNTAX_PASS=44
4
- NODE_SYNTAX_FAIL=0
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
- }
@@ -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.
@@ -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