deadbyte-mcp 0.11.2 → 0.12.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.
Files changed (102) hide show
  1. package/MANIFEST.SHA256 +101 -39
  2. package/README.txt +10 -9
  3. package/acceptance/r40/desktop-live-drift.mjs +106 -0
  4. package/acceptance/r40/desktop-live-ground.mjs +110 -0
  5. package/acceptance/r40/desktop-live-input.mjs +128 -0
  6. package/acceptance/r40/desktop-live-observe.mjs +100 -0
  7. package/acceptance/r40/desktop-live-uia.mjs +121 -0
  8. package/bin/deadbyte-desktop-input-r40.exe +0 -0
  9. package/bin/deadbyte-desktop-input-r40.obj +0 -0
  10. package/bin/deadbyte-desktop-observer-r40.exe +0 -0
  11. package/bin/deadbyte-desktop-observer-r40.obj +0 -0
  12. package/bin/deadbyte-desktop-uia-r40.exe +0 -0
  13. package/bin/deadbyte-desktop-uia-r40.obj +0 -0
  14. package/controller/README.TXT +7 -5
  15. package/controller/deadbyte-controller.config.psd1.example +3 -0
  16. package/controller/deadbyte-controller.ps1 +149 -4
  17. package/controller/deadbyte-desktop-policy.json +41 -0
  18. package/docs/ARCHITECTURE.md +6 -1
  19. package/docs/superpowers/specs/2026-09-19-r40-desktop-computer-use-design.md +214 -0
  20. package/native/deadbyte-desktop-input.cpp +455 -0
  21. package/native/deadbyte-desktop-observer.cpp +253 -0
  22. package/native/deadbyte-desktop-uia.cpp +307 -0
  23. package/package.json +10 -8
  24. package/scripts/build-desktop-r40.ps1 +106 -0
  25. package/scripts/deferred-slot-operation-r39.mjs +124 -0
  26. package/scripts/deferred-slot-operation-r40.mjs +126 -0
  27. package/scripts/final-closure-r39.mjs +113 -0
  28. package/scripts/final-closure-r40.mjs +114 -0
  29. package/scripts/final-closure-verify-r39.mjs +208 -0
  30. package/scripts/final-closure-verify-r40.mjs +212 -0
  31. package/scripts/gate-windows-r39.ps1 +42 -0
  32. package/scripts/gate-windows-r40.ps1 +43 -0
  33. package/scripts/init-desktop-policy-r40.ps1 +79 -0
  34. package/scripts/r40-compact-ledger-probe.mjs +4 -0
  35. package/scripts/release-parity-r39.mjs +200 -0
  36. package/scripts/release-parity-r40.mjs +212 -0
  37. package/scripts/release-parity-tests-r39.ps1 +9 -0
  38. package/scripts/release-parity-tests-r40.ps1 +9 -0
  39. package/scripts/windows-gate-evidence-r39.mjs +52 -0
  40. package/scripts/windows-gate-evidence-r40.mjs +52 -0
  41. package/src/autonomous-context-engine.mjs +2 -1
  42. package/src/autonomous-planner-contracts.mjs +19 -1
  43. package/src/autonomous-planner.mjs +22 -0
  44. package/src/autonomous-runtime.mjs +144 -24
  45. package/src/capability-ledger.mjs +6 -1
  46. package/src/compact-gateway-mcp-tools.mjs +14 -2
  47. package/src/deadbyte-cli.mjs +79 -47
  48. package/src/desktop-contract.mjs +263 -0
  49. package/src/desktop-input-r40.mjs +148 -0
  50. package/src/desktop-mcp-tools-r40.mjs +126 -0
  51. package/src/desktop-memory-r40.mjs +272 -0
  52. package/src/desktop-observer-r40.mjs +231 -0
  53. package/src/desktop-policy-r40.mjs +110 -0
  54. package/src/desktop-runtime-r40.mjs +318 -0
  55. package/src/desktop-uia-r40.mjs +123 -0
  56. package/src/mcp-server.mjs +74 -19
  57. package/src/r40-compact-disarmed-probe.mjs +71 -0
  58. package/src/r40-full-surface-probe.mjs +34 -0
  59. package/src/release-generation.mjs +38 -5
  60. package/src/remote-console.mjs +41 -0
  61. package/src/remote-live-log.mjs +215 -45
  62. package/src/remote-mcp-desktop-r40-smoke-client.mjs +70 -0
  63. package/src/remote-mcp-r40-parity-client.mjs +200 -0
  64. package/src/remote-mcp-smoke-client.mjs +20 -6
  65. package/src/remote-result-journal.mjs +10 -2
  66. package/src/runtime-update.mjs +55 -17
  67. package/src/tool-audit.mjs +29 -2
  68. package/src/version.mjs +1 -1
  69. package/test/autonomous-capability-r36.test.mjs +43 -1
  70. package/test/autonomous-desktop-r40.test.mjs +188 -0
  71. package/test/capability-ledger-r36.test.mjs +1 -0
  72. package/test/cli-entrypoint.test.mjs +1 -1
  73. package/test/compact-catalog-r36.test.mjs +2 -2
  74. package/test/compact-gateway-r36.test.mjs +56 -4
  75. package/test/compact-max-catalog-r40.test.mjs +95 -0
  76. package/test/controller-desktop-r40.test.mjs +85 -0
  77. package/test/core.test.mjs +1 -1
  78. package/test/desktop-adversarial-r40.test.mjs +62 -0
  79. package/test/desktop-contract-r40.test.mjs +200 -0
  80. package/test/desktop-input-r40.test.mjs +63 -0
  81. package/test/desktop-mcp-tools-r40.test.mjs +61 -0
  82. package/test/desktop-memory-r40.test.mjs +141 -0
  83. package/test/desktop-observer-r40.test.mjs +119 -0
  84. package/test/desktop-policy-r40.test.mjs +111 -0
  85. package/test/desktop-runtime-r40.test.mjs +278 -0
  86. package/test/desktop-uia-r40.test.mjs +42 -0
  87. package/test/full-max-catalog-r40.test.mjs +91 -0
  88. package/test/helpers/autonomous-r34-fixture.mjs +3 -3
  89. package/test/production-docs.test.mjs +3 -3
  90. package/test/r33-closeout-regression.test.mjs +8 -8
  91. package/test/r33-finalization.test.mjs +14 -14
  92. package/test/r37-remote-tool-call-timeline.test.mjs +7 -6
  93. package/test/r39-finalization.test.mjs +74 -0
  94. package/test/r40-finalization.test.mjs +118 -0
  95. package/test/release-generation.test.mjs +41 -9
  96. package/test/release-version.test.mjs +19 -58
  97. package/test/remote-console-r40.test.mjs +38 -0
  98. package/test/remote-live-log-r37.test.mjs +89 -32
  99. package/test/remote-r24-catalog.test.mjs +12 -3
  100. package/test/remote-result-journal.test.mjs +15 -0
  101. package/test/remote-session-cli.test.mjs +112 -55
  102. package/test/runtime-self-update.test.mjs +44 -0
package/MANIFEST.SHA256 CHANGED
@@ -1,3 +1,8 @@
1
+ 7870535aac6c17b43b3830d8727ed4e121c6cc0197435b89cae933924a928855 acceptance/r40/desktop-live-drift.mjs
2
+ f368a11cd3e64e4f0f0747c1ad7f4c9225a9b35e6457e0e0dae3e94a22655872 acceptance/r40/desktop-live-ground.mjs
3
+ 55b023b8a247873e787d1f2aa7a83473f308e7b27b066157262e08f8d9420f19 acceptance/r40/desktop-live-input.mjs
4
+ 607a82f9093a60132ac03035765796c72b725d1209b52309d01ad5a9741ba390 acceptance/r40/desktop-live-observe.mjs
5
+ 99aa9c8ddad7cefaaba6ba8e179488a077c5878caac568a01eb3c3f73305324c acceptance/r40/desktop-live-uia.mjs
1
6
  561e5298904c144a3fdb7a6789c46f2fe48a16d6ad36d4bd6dac32e443c57450 bench/fixtures/corpus.json
2
7
  ebd5b3524b57c0227eae6d30291809d901ff99626b0b3f394da2560a054eae59 bench/fixtures/r36/case-map.json
3
8
  a0af8bb95e0e510f2f8436247f75795867332a935342802797ea4663f3a8e66c bin/appcontainer-stage.exe
@@ -20,6 +25,12 @@ c340e65014bd0ca1567aa3555dbe3170e7a9ae21c0ea8ac998dd92b9200448a0 bin/containmen
20
25
  5629cfaed25606af0b25f079b207a808daa8560a9e8fef21bc34daf33c78efad bin/containment-probe.obj
21
26
  0b227a4a2338bcec24b0b70f3f3e0d4fc460762037bd122e9d4eacb67f6b86f6 bin/deadbyte-contain.exe
22
27
  ed585a1721aa304d3b0768ca5db5d3d4f0ff89686a8fc74f60333f2069bb9404 bin/deadbyte-contain.obj
28
+ 0b967fd0ef599cbb9882b96ea16db7261f086dbcccae631b56f1bc2445a8ab5b bin/deadbyte-desktop-input-r40.exe
29
+ 4ab70efab07632a0edd505d913fb1e6e03214509ad0ee6ed78d0677c9c52039a bin/deadbyte-desktop-input-r40.obj
30
+ 32671ef2b7decd68c25fcabfe064086e4b3f83a8e9d3558b9d6de3a2510c6dab bin/deadbyte-desktop-observer-r40.exe
31
+ 62b55b66125b5db92ac2f199150ce823dc5d033110b288c4b08ee0da92feb167 bin/deadbyte-desktop-observer-r40.obj
32
+ 19ff558218fe8437dc04f50a8848756a8a83a84f73f464057562d77c7e19fb75 bin/deadbyte-desktop-uia-r40.exe
33
+ 51770062d796037bf8a4ce3c06898b4250eeecac5701c84cedff6df38282efbf bin/deadbyte-desktop-uia-r40.obj
23
34
  a0c952cb891ab61aa8c1cee503643b52b23d99ea154a42dc9238e9afb884638a bin/deadbyte-exec.exe
24
35
  05288354d753f61fd5e51644f8160f4e9ecc4bc87b2c749d63bcc7e77f6a8c48 bin/deadbyte-exec.obj
25
36
  59ea2026c39a1266c0d645a4cf39d7955ac2cf905f7cda812f546dfc9de636fb bin/deadbyte-process-host.exe
@@ -29,20 +40,21 @@ af55f08cb2f4e150ebd89e3ddc4c7568f56ad86f06e4258a1b5d492f1d306d08 bin/deadbyte-t
29
40
  f0ce7acb1e41325cef8b6789f95bd78b6a6107423773eace57a12b49faa55095 bin/WORKER-REGISTRY.txt
30
41
  e74d45bd9facf03c9a2a0ff52600252924deb804a87e4b5503f48662a2b45a3b conpty-input-observer.obj
31
42
  8c1c45dd47e07b05eb2b43a6060ac23ecb9f7d0dd8aecfdfc29d42a6f824e507 CONTEXT.md
32
- e19ff4253eb57ea6befd5df8b807c1c95fda83bfebd0ba871ceae7c5412d4c27 controller/deadbyte-controller.config.psd1.example
33
- 31e4cb61ba31ae58033dd9ea9751a1ad6576d1555cd968da9137e7a2272bcaf2 controller/deadbyte-controller.ps1
43
+ 3ffd977e819e0d68bd62dad2dadd7481b25c508ebd8042bec2b706cea8ce16f9 controller/deadbyte-controller.config.psd1.example
44
+ c59a36a8f7f33ff6d2f0df4b606be32c3357020e1c1de07e4666fc3a903bfbf8 controller/deadbyte-controller.ps1
45
+ 3637c2a18f293a4e7776dfec50694e8bfd20b791897ec8e7cb2509a17bdff2ec controller/deadbyte-desktop-policy.json
34
46
  5e8ef223b0dbc52173aaf044a075837eef8964ff0e7e16f83a595e0d17695625 controller/deadbyte-host-policy.json.example
35
47
  6f0cc469f51444dd18211fa3346c826abeea4d2ec7a8945f0200dc5c622031ef controller/DEADBYTE-MCP.cmd
36
48
  e5f8d8b23a31ff6f0ea3c30711fe28031db04156c54ae95840f12e41e0259710 controller/deadbyte-process-policy.json
37
49
  d274b099a298c1033fea8f1e8849751693bbc0448778d619400acb82d4f53a3b controller/deadbyte-semantic-lsp-config.json
38
- 362367610f0593adbcdd82da5de44f593b4967b850a04cd23da3ab53b280ccc3 controller/README.TXT
50
+ 0e31eb2f1c5a6239da8a95a066fa4c5de2487d485859a2240165306b65da7a10 controller/README.TXT
39
51
  101e613518c73c6aa31c725fe1b5f9a24c995dc9876b7b28e1f3e97ac9f8d362 DEADBYTE-MCP-R27-FINAL/R27-ADMIN-CLOSURE.json
40
52
  e9baf9abf4410ff8bd0f68e6b957dbbf9790fc88d9126311c5c135e943424952 DEADBYTE-MCP-R27-FINAL/R27-CLEANUP-FINAL-RECEIPT.json
41
53
  39cb483c0897af5027bf1790a35a4c3b9a8cd5f6e3a2e0440787615f69cd14b2 DEADBYTE-MCP-R27-FINAL/R27-FINAL-CLOSURE.json
42
54
  9aaf6d07e7511a1f0046ee8cc731d4b9660bbbf47dcea785a9c6b6cec95640bc DEADBYTE-MCP-R27-FINAL/R27-SLOT-UPDATE-RECEIPT.json
43
55
  70dfccba12797ce5fea60668c97026cf71e7942cb4d886cac5853e05b362b6c1 DEADBYTE-MCP.cmd
44
56
  7994082e4340b5f43272e8cb111ce54043af64dc3a04d5279e251f3dae16f654 docs/ADR-0001-PRODUCTION-BASELINE-SEAMS.md
45
- d2acc025e4a05ffdf0180d545cf0acf0251731eb35467aff534e44bedeb8a95a docs/ARCHITECTURE.md
57
+ 7fa1d25c02cb7976fe1457e22570df6b756fbeb24c27bac7a028513fa3abb915 docs/ARCHITECTURE.md
46
58
  3f455f407933d8e044682f3415bdb51e68d7c4b508411dda7d8ed65b6e1d7e79 docs/AUTHORITY.md
47
59
  3be291331862ac5bd892345e84d6ce8d9b6d835855235d7c5f28d5cd4b04afdb docs/CHILD-CONTROL.md
48
60
  a9cbd1e2def00aae93569835f2ee17aa5cfd181e5770d7c1185c9c62deb0769e docs/CONSTRUCTION-LADDER.md
@@ -64,6 +76,7 @@ e9c46ef5b63211140824713bbcabd84427f96afc7b7677c047c9d84fe2141a0b docs/superpowe
64
76
  5d82ab248cf12b78d41950ae791663ea0632b8bd7815ff6d0c7ee2101fa93b4f docs/superpowers/specs/2026-09-16-deadbyte-loop-engine-design.md
65
77
  d260f1370324c745240179d5cd28beb0f01ca4356df92f81efa7f42bbaccf7f8 docs/superpowers/specs/2026-09-17-r35-production-successor-design.md
66
78
  bf6698004f2589390d29c862c6246885b48270a50f6513863a00e7e8f55161f3 docs/superpowers/specs/2026-09-18-r36-zero-loss-autonomy-design.md
79
+ 59236e450e00da021d70057476ab21aa0e349d54b24fd9080e1e081cb64bd555 docs/superpowers/specs/2026-09-19-r40-desktop-computer-use-design.md
67
80
  bb7b3b40baac8ac870efbb44783ad0b0f7843ee397e201d260bc772845c60f56 docs/TRUST.md
68
81
  a6052efc1180927ce89b331488e66254a33065380705fa0a6e6af862f89a943b docs/V070-HARDENING.md
69
82
  50afd28cbd3834785e4c45c4f10425ec38ed8874ffde763de7a6ab8d52545ce6 docs/V071-HOST-PLANE.md
@@ -89,6 +102,9 @@ a9ac67c243c741ffa269b2c7519437b4bfc40e75a2494c9a7507c08572cbab81 native/bootstr
89
102
  fc61495effda680936084982abc293fea9d689bd45bc7e67322a7ef132bfe21b native/contained-transform-worker.cpp
90
103
  ee725ae6890fb09067b5b83c64ce09a23c6e8380f952b17f1f12b69e8e46800e native/containment-probe.cpp
91
104
  cb9140744425f13746f6d16a2973467720f4fb9059961dfc43c0ab131d3609dc native/deadbyte-contain.cpp
105
+ ddf1a99c92c7640a0ab73d5cb2d1d6afc37bfea13e1b2e5f59815b816718c24e native/deadbyte-desktop-input.cpp
106
+ 1f432838465608831d27d85e72a654e4e50fd52f9cd5f3d018a7b2fcb8e0954d native/deadbyte-desktop-observer.cpp
107
+ 8af45169ec12c6ac0cf3e1d5f0a8824b0f474419a39c3fd271725436f889f251 native/deadbyte-desktop-uia.cpp
92
108
  1818a8abe3d71a260febf3dbdcbe7fcb29faaef44520e3e6a9482147f38d3ded native/deadbyte-exec.cpp
93
109
  42f8a064fdf1cf9e3d5e26140b8671bc7d3ff935a661af5ef0f490c4109b788a native/deadbyte-process-host.cpp
94
110
  b1bd30e40c5cd5abd436ed5ffe23e02931e624fe33bc9f38918b2ddde58a2dc2 native/deadbyte-tunnel-host.cpp
@@ -1303,7 +1319,7 @@ db605a698f917c4006462596e6526fe6a9c6eff9b8409e8472fe545d4b70027c node_modules/z
1303
1319
  f67a25ded944912bd4621b68df17c7c70a52aae117278c076c0aabbc32a3abba node_modules/zod/v4/mini/schemas.d.ts
1304
1320
  51b3a7869df2d3a1bd98acb9d5b6a61bbccc7653d7a3d8fca7f0e0db7e84e284 node_modules/zod/v4/mini/schemas.js
1305
1321
  3e3125b5a537a24c3632c1c5c09640ce7bcb3935901b127ad8ae3c37a27f133f node_modules/zod/v4/package.json
1306
- a5a595ca5a530986dfd9d9887653a0d3f7e9e17949819e1a201e7349299590e3 package.json
1322
+ 402b7c0680a2d716bf57590b0b56f0dd40b9c815b07eb402e0155487d26cd1fc package.json
1307
1323
  5a2722b8b5b16a2b5af9851638851c82c8f795bf4685f1090745ebbe61498c91 proof/CONTAINMENT-BUILD.txt
1308
1324
  a8efa13e44ff50902aee64cfca542d19605a1ae23db95280ad2d44b324f3eae7 proof/MCP-SMOKE-STATUS.txt
1309
1325
  7c115069cc4a343ca21b0ebdee74bd8f544b02d4aa906ffa13308725825d891a proof/NODE-SYNTAX.txt
@@ -1364,35 +1380,50 @@ bd0773a9e02e8ab11475c9cc5a7db29a8313233b7eab7f837922737e75ec5938 proof/VERIFY.t
1364
1380
  2c821808d4596965c577f40191daee224d3aea81989778c4af97f53a83b487db proof/WINDOWS-CONTAINED-STATUS.txt
1365
1381
  f8bc839c7b4fcb0ea7b7e7ad9448847c3beae6f95f2eb4d407d1b284aaa4ff68 proof/WINDOWS-CONTAINMENT-STATUS.txt
1366
1382
  27ca0f3c9ee3a1b6374a9c8dd98008decdd0c7659c7a569c70ad7b9734c74655 R34-BASELINE.json
1367
- be4a59c3fc6ea61492777b2d8aafc2e29ee589f8b1868792f95533567c4ec84d README.txt
1383
+ c85e5dac6f0b9cfb534a2684df84dfc541a2c56a127022d262fe5716a016f616 README.txt
1368
1384
  1d4e9dee6f0669bd825334a6a72e13ee85ee29ab430dcef21d893ffd744774b5 scripts/autonomous-benchmark.mjs
1369
1385
  06447dea18be1fa0a5e5a1167a6e3dcbd10ddfd28dd18d7bfd17383cf5bfc080 scripts/autonomous-build.ps1
1370
1386
  6ae23099102eb0f0be4969598ba76600d19b00abf534a039d48e63bc7d7fffe3 scripts/autonomous-tests.ps1
1371
1387
  1e2ad314d5115011232c5a5d8477b3692a7dbff97551877b72746009cc5946dc scripts/build-containment.ps1
1388
+ 8f2f2b70d9d1f8ae7bdcad331df9061ddd60916b5a981b09bc657701b345d198 scripts/build-desktop-r40.ps1
1372
1389
  1077e2f4baf2aae1c0d3e2416d00bd49a54e9e39a5939872c73143ca9e546633 scripts/capability-benchmark.mjs
1373
1390
  7d3c741de2b1c29f82efa96ab81fc819d8520f97413ce5ab0d4a1b1efd0e8b42 scripts/coding-live-smoke.mjs
1374
1391
  254872f5f1f2fa662b1061aad4c3da59b21d882e45f7f0ceefff2f688ea493a1 scripts/deferred-slot-operation-r37-0110.mjs
1375
1392
  98b27366379a63ffad8cc6ac3c33dff6f0f6810eb4f1a75835aa8477afba8ad6 scripts/deferred-slot-operation-r38.mjs
1393
+ 66a6d4ea03b9a7d5aa9f0fafbd7b5fc1568aaa7de1c3ce15f213e6fced11c9ba scripts/deferred-slot-operation-r39.mjs
1394
+ 206f5ead0045aa5afcf30beb0ce6cf7d65a6f417c8b9f8abe6b10c3eee56c090 scripts/deferred-slot-operation-r40.mjs
1376
1395
  34116370895aeff9a424475558f4aca3b05460146455d9bb0bafcacd1a270910 scripts/deferred-slot-operation.mjs
1377
1396
  69e3beb55573b5fc3ba30a220fabf9e3585e7757430fb3264caf27e41254b789 scripts/final-closure-r36.mjs
1378
1397
  4b7dce462db12237e9f3bb8637e703689140c16e5ddd8bf08b41f8a4b35de95d scripts/final-closure-r37-0110.mjs
1379
1398
  551e7aa855d1618f29b243413a3cb888f67b0f33eb436f25401902d528c6171a scripts/final-closure-r38.mjs
1399
+ 9e3c4f4294a5b73916bc542fafdada82b6c085ac6b57592e6abc0f714a0f54bb scripts/final-closure-r39.mjs
1400
+ 3094ea0e9664d2b480af71b79678fd5426eb9cf5d9dff71579f115f0c0a54d67 scripts/final-closure-r40.mjs
1380
1401
  4b895f85e2bf7009def5ecb0a96dad38832c6fac3b2a0633a6b71d9ac9a868be scripts/final-closure-verify-r36.mjs
1381
1402
  c6cbbfe7ea3e4c257c419535425a9f75e4d58f2d5cb18f2f408b871f1c7c20a8 scripts/final-closure-verify-r37-0110.mjs
1382
1403
  228268406b0fd7bcb585fe87ce720bec7548ce172ee22f7f1be02638c2d7af18 scripts/final-closure-verify-r38.mjs
1404
+ d39ce4e31509b9a3417f24b401e930b989e312d029ab7e7f21ce194d056c3299 scripts/final-closure-verify-r39.mjs
1405
+ 49896aa9ee41f2b77f5c3a72721d2154d42ee4f7325d1abd55d40d5e1a3ce4ab scripts/final-closure-verify-r40.mjs
1383
1406
  c1a16ed8b9e3bde9622d288e7274d7677eec7fa1783cbb090fb8df96db3d6e2a scripts/final-closure-verify.mjs
1384
1407
  14b7fee5246589819ee0a5e89a0e386b932d89275660305d98324efc6a3f0902 scripts/final-closure.mjs
1385
1408
  feaecfaf78ebf20a42b17974a81777185b74344bc4717f00fde69b5e66ac3257 scripts/gate-windows-r36.ps1
1386
1409
  75931dbb30e7d5b07bf781481849c7a583c7fe7250ac2e5d43a83e9c4764569b scripts/gate-windows-r37-0110.ps1
1387
1410
  96c407135841b88ed713ed4984a678acfe5b19285673e0d2c35168d9bedde68c scripts/gate-windows-r38.ps1
1411
+ 28de53c80e967a1d2a0b52450deb2805caf6eb6d4f8ba6f052f6175200480992 scripts/gate-windows-r39.ps1
1412
+ 5af288421c5405301f38894b68dd3e0bb83d246054931eb9eaef2608f0733763 scripts/gate-windows-r40.ps1
1388
1413
  9a085b34b9e54023eb0efadcea1e74a1bef44b984105d064768d66910999173e scripts/gate-windows.ps1
1414
+ ec9e02f31a60c05f54a8f8b4898cae1f70c2b24964214d0054832a453b8a3082 scripts/init-desktop-policy-r40.ps1
1389
1415
  a64ab9a70c26495ac5d94c024a8813d8bd2bc8a708f236b672cb18556396c262 scripts/init-host-policy.ps1
1416
+ e19a1d591ccd07af2e87d930ce23b0cc9b814bc2a395408045543847154097d7 scripts/r40-compact-ledger-probe.mjs
1390
1417
  b655f2f9c63c7e4b651e7182c6461f9ec63d0991f770f24fe5d44b209ad6bdfb scripts/refresh-process-policy.mjs
1391
1418
  c92b518b7232849d945f0fcd9c428a2366758e5c9410be68104ed50ef869a33e scripts/release-manifest.mjs
1392
1419
  2272ceab04fba9030fe3dad5ccb14b8313f7dea963873ca64a86945608b6e7fb scripts/release-parity-r36.mjs
1393
1420
  bb03b8645718c52f7e195703d88caf284c6bdb4459e35bc2ff67ed7dcc7ebcfb scripts/release-parity-r37-0110.mjs
1394
1421
  64779ec84d473fb15efe6908a8e9d9b25fcec42806393083586a4d088cedb69c scripts/release-parity-r38.mjs
1422
+ 4fcb522511ebe3901da68f531022a7b1fc77ddd2b00da893eebfbd0521cc4c6e scripts/release-parity-r39.mjs
1423
+ 558b7aa07bad55f5de86c6491d995d0b2b14a0081520ca50b27447856e065d94 scripts/release-parity-r40.mjs
1395
1424
  6b5ea3ae9b3468bc82df8f371f7e2120c5f4265916cf312beae045f481b8abbb scripts/release-parity-tests-r38.ps1
1425
+ 7b47e96d78437d65d492e3982efb6d440bb0220681a3b1f133c743c26bc3464a scripts/release-parity-tests-r39.ps1
1426
+ d3558bba2a973ed015d6de1ab4cdb70c3beb95d4c0c3e49244af035bb28db028 scripts/release-parity-tests-r40.ps1
1396
1427
  4c8ff3df2d3c5bb06984be8887381f29d87c468c6a0c87db7ba623717907e79a scripts/release-parity-tests.ps1
1397
1428
  1b83f49d9798188533c8cfca0030a98af34560fe181b3e593db790319e1b7bc5 scripts/release-parity.mjs
1398
1429
  caac2867971dfdf56456528b816ff56282a11cbba81510c13e1723accffac678 scripts/runtime-self-update.mjs
@@ -1401,6 +1432,8 @@ b0cc75c38e0163dbcf7fb1b0d21f2dc34c71f2d0e2a156a53e570ff84afc64e6 scripts/semant
1401
1432
  eb59d412712270bedc33bcdabd65fe9c31994339858a4947d0dc4bac371256fc scripts/windows-gate-evidence-r36.mjs
1402
1433
  ea68d948b9e3bf155b7782b5745d75d98c142a199785ba52840aff7d2272ea17 scripts/windows-gate-evidence-r37-0110.mjs
1403
1434
  3d7c5092b080cae079607e5f741edd5c106117b962b0ebdc2c647431517a2282 scripts/windows-gate-evidence-r38.mjs
1435
+ c1e5b8afa71f438c2a6c554df37ce1e1abf763870bb4255841ebf2fbf891c9ac scripts/windows-gate-evidence-r39.mjs
1436
+ b1c4befb079aa1dc45505c3a49e38dce43ca07a6632f9022503ba843b346cf70 scripts/windows-gate-evidence-r40.mjs
1404
1437
  2255b8eb78ca61267df54448560a671357f04893b6bb1df27b8b9fc8a944d255 scripts/windows-gate-evidence.mjs
1405
1438
  5f4a73a1c3dc178c4b5de193b6cfc4774cfc46d5ad95ef0b786d4d386d82323b src/agent-mcp-tools.mjs
1406
1439
  22d32373fdaceb7debae300ec4db2f3b1677072e946a203acff6f5e4dc458946 src/agent-memory-plane.mjs
@@ -1409,31 +1442,31 @@ ea68d948b9e3bf155b7782b5745d75d98c142a199785ba52840aff7d2272ea17 scripts/window
1409
1442
  cdbca84e760777e939fd813a16152318271b5cbf64e02d30921f24e1f6f59bff src/audit-verify.mjs
1410
1443
  30ad1d73e5f43c74eaf938795709205d0fbf8cfa64e860ab6cc7897c2f9141da src/authority-smoke.mjs
1411
1444
  4c42bee421896f340ed5ac29fc3cdc8539292625c71330870ae568e806d6bff7 src/autonomous-action-reconcile.mjs
1412
- 5572334eb72d8f476b0b24e2bf205ad38e3e35aea3c4fedc4efc89e8f987b094 src/autonomous-context-engine.mjs
1445
+ ecb39baaea3cd31696428821cdb0d344f4c0817e9ce1b5bb606eef051a3e3c0a src/autonomous-context-engine.mjs
1413
1446
  02c5da273e4ca136bcbed20fd1873f4b9be501179110169fefabd5a02253e956 src/autonomous-live-state.mjs
1414
1447
  ab0158c3f6e270ee367ae96455dd2b75a902c808b2a10ac2c5b75fdda00be6c3 src/autonomous-local-supervisor.mjs
1415
1448
  f8aea762270181bfb38c15e52328357c1fbc4156dd1e3ee399b550c3a0cc63b2 src/autonomous-loop-state.mjs
1416
1449
  383cfe9b491b4622b744aff8a6517bb16626e80b985e81960bd235877c2b79f3 src/autonomous-mcp-tools.mjs
1417
1450
  370bc4cd4069d57f242cb2c1bc5889563a75f1a9ccfbd2a4245b23e7a84a0383 src/autonomous-output-contracts.mjs
1418
1451
  6e73f3f438c6293917ca56b6be3c60bc3d9406e04a61f0da5ba8d754b3a10b7d src/autonomous-plan.mjs
1419
- 697f0a18ad72661e466c716eb5af4392257042d4c79b4f09f2fd2399a06a8b64 src/autonomous-planner-contracts.mjs
1420
- 3d77077fa9d369d7e596ca3753c23a8ee2d111e8092269c46a700fc4547081a6 src/autonomous-planner.mjs
1452
+ f2ae294627ce511581f5ff7e5c34f81c223802b2bb049180b081103f5a6b25f5 src/autonomous-planner-contracts.mjs
1453
+ 31c1ced75312c31ba836d66202e339ea9e9416c7f6c2945ded1984ca0947777c src/autonomous-planner.mjs
1421
1454
  c398c5f10eb226bc8edb4eea3b34fe1c74ed18f0c009c580fdb89969ab500a7e src/autonomous-policy.mjs
1422
1455
  f9bf3b46e4b32ab7dd7864c646809e13fea64f72accf114929588dac7dc82014 src/autonomous-progress.mjs
1423
- 18f9c7a25676aeea41f35c5461b91462ddec4deb8f17e96a219ec8865accadc3 src/autonomous-runtime.mjs
1456
+ b92943793fd0fb7d23808ceeee3517fc7a8b07e3def635bcae2e3bed2cd26787 src/autonomous-runtime.mjs
1424
1457
  d778233b28e4d1cfbf249a4f80e0dc434bfb43a34c9086c577a5431aaa0f2bd1 src/autonomous-supervisor-host.mjs
1425
1458
  b2be549d2c9fcf56466bbecbe0099d57d6f8ce5cee6e2333fc103be0d6003736 src/autonomous-supervisor.mjs
1426
1459
  61de686111e5b5d24ceb1e2adc8da175d69a4f22af08691c4edaea1c763cf859 src/autonomous-timeout-recovery.mjs
1427
1460
  e5f944a310ed957e3b8f7b1cab54c082acf1b35f8fdd7d9b672ebe1a80dc37ac src/canonical-json.mjs
1428
1461
  da5181cec30034ddf089baa5358becb5651da238a2e7cf0888007a4c60b4ea6b src/capability-benchmark-runner.mjs
1429
1462
  2b62295591f142ca4b3bc5b03e6434f7fc3c51d9502f9a40ef8a03d1f72a8899 src/capability-benchmark.mjs
1430
- e2df06a7f9219f1404c3ddf17d8a7e01763bdf53c806915ef358f00374ad5d1d src/capability-ledger.mjs
1463
+ cf668fadc722d004324cb613a8ac0af237e46f336fd60a0dd863d0b4cf046e1e src/capability-ledger.mjs
1431
1464
  3d5215c3bcc10c94d84749d213645772d98a28db49f970cf91fe406269b4db0e src/coding-mcp-tools.mjs
1432
1465
  3a9a321974f4c9dac24fe71b24b834ad471afb53e6ecdfe41eccec70ebf1e78d src/coding-output-contracts.mjs
1433
1466
  eab0fc6b6b2519504c096e1d274c086927aea2ef99fe38147b1d0c3bb7487cf6 src/coding-plane.mjs
1434
1467
  8c8f8ce6e995099fd4b9380ce35f71a67de03e712481bfa0b72d98aa0e0f31f4 src/coding-search.mjs
1435
1468
  fbcc83a723a7094f1dc5287fde1fb6c3ba6dbce7ec14cdab34ea566d1603ac2d src/coding-task-runtime.mjs
1436
- b647e25e39f8832ffae390fe19baf985f9e9fca0008131618cdb6e5e66f89897 src/compact-gateway-mcp-tools.mjs
1469
+ 733b7524b8b1c2acb026571edf99ec1a38dd6ed80284b16d4718f3e53f8671f1 src/compact-gateway-mcp-tools.mjs
1437
1470
  4218d1d1478d9e9a044d9b61c5ae205cd2ca0651a314900fad03992d0b12d286 src/compact-gateway-output-contracts.mjs
1438
1471
  40ac70ece531de7709d3c51686b36b48e0ae60283d1fb18d0adc037bfe6f9063 src/contained-cli.mjs
1439
1472
  d2bacef2443705e372071d0de3c72d45d57febb1dcbb11e369fce8a78bf0bf3e src/contained-executor.mjs
@@ -1445,7 +1478,15 @@ dcd4c9784e88e253e91ddad3c24b38cb0b36906ed737f6d7bee7712360f66f7a src/containmen
1445
1478
  fe1761b98738e1aea1d25ddf3a0ba56ccad95a43d45104a89b8665197c7c9e18 src/containment-result.mjs
1446
1479
  705a89cb12fedb993d55dfed32a5870d33e10db26422c944d1e52223566c096c src/containment-smoke.mjs
1447
1480
  63a1d4d6a53f9eb7e02197b4e42158b867da8c042c2e61848d8a36cd398b8bd8 src/context-provenance.mjs
1448
- cdcaffe7e58928ebd933dfee813945e0cd5009db72ebf5516fd735bb43b42c98 src/deadbyte-cli.mjs
1481
+ d46b08a53155319f55c87bcfa649d6810b0106c4621074654a3d5bc18503bd82 src/deadbyte-cli.mjs
1482
+ fe7a8f8611c33552b3da466a9b866ce79a737bfd5b9a78a953269b30cce16274 src/desktop-contract.mjs
1483
+ f97352e510c659910c2d4a874d15be028e1291d685c6c1a7be53bdf1a335c2d8 src/desktop-input-r40.mjs
1484
+ 56f242dd35c482a2a0599785f8082555ff31c81ab296f287a363ec77a7adfcf0 src/desktop-mcp-tools-r40.mjs
1485
+ 38ac215de89e9640e6f340002baac70094221b3af0829eb401b202ac574f8a9d src/desktop-memory-r40.mjs
1486
+ c5bf28e2fe16168464294aa0d6f17b10c73d10f81a2361f6b9783cba90de0979 src/desktop-observer-r40.mjs
1487
+ 535e9b9b5dbd5b77689cf52d7ad59dc86ad9d262a7233c6c5bc209e24db251b2 src/desktop-policy-r40.mjs
1488
+ 2df103ab7e5437b1e5b3a8116ad20b98d73dcbd98ae7c632a813de95328077f0 src/desktop-runtime-r40.mjs
1489
+ ec660879c7fa20bdee8fbb0f8dab373625691cb18c4f5362d022476e506d22c2 src/desktop-uia-r40.mjs
1449
1490
  f57fe200ad916a03480c804ca57ab12b603822cbfb8d45ba7bce4376ec3d712a src/document-adapter.mjs
1450
1491
  7786e7c102cd69ebaefff7696e9e420e28cf9c40c2af5c5227d26bba6fe4f824 src/effect-ledger.mjs
1451
1492
  f5fafd46052b09f71a528594eb230edc5766ee0d006432d744590ec97c9c580d src/executor.mjs
@@ -1463,7 +1504,7 @@ ad4ca3635cb228b57b5b98e9518f379380ee1a03ad07ab4d12f8b7f324be2517 src/machine-mc
1463
1504
  e81b3ac2955e5dfafe308c82da24356a14da396230cb9fc47b231ab672d5be48 src/machine-output-contracts.mjs
1464
1505
  ed85d41c494a334117661ddec8191d34974fe28cb2a3378f3c04ee0e4c5d3ccc src/mcp-contained-smoke-client.mjs
1465
1506
  e35ca87ad8ad7b6e046dd4bda92ed9e65939c386e7daf9b178038cde1de60b8e src/mcp-host-smoke-client.mjs
1466
- 80a80333c9344b961e199828ba5b3bf185156c413ffddc0619a57273823d2bcd src/mcp-server.mjs
1507
+ 4b57a4c2db8f3fe7e25ee2543de2b8c67e84cf0f46784e3888c5a300993c890c src/mcp-server.mjs
1467
1508
  af63881f69cd10fafb2040c3b1836b6e4de0a07f8baa6fa0025cce33c5901767 src/mcp-smoke-client.mjs
1468
1509
  8e1f2ffaab1c3a7a824443314d7c4345adc3de40d864fe6b5fdcfc84d83246bf src/native-diff-v2.mjs
1469
1510
  cb29ee3bee3b46ae4039148de9688dee1b58e66e3bbe1ecda411c18b1a1ac71b src/native-diff.mjs
@@ -1486,31 +1527,36 @@ be4a4f7f16e473ac842559a5a18eccb59e3693bded59a1abc71e75ff448cc755 src/proof-work
1486
1527
  8ee38640c79f4e3c1ea4ca6dc92440f4f2b1f6e687f850ddf404ffe3147e60d8 src/provider-circuit.mjs
1487
1528
  9105c86adc4f5a11ccc076cd17c9effe4d4d3e7bce42e00420a987deb315ec92 src/r36-compact-disarmed-probe.mjs
1488
1529
  57f6f90baff83eb7a6e0cb4a02b62e10c3de39d10befbf426578eb187d626ad7 src/r36-full-surface-probe.mjs
1530
+ 41326d347fea7ce8552d26495aad1b6701a63a7a232b4605b89fb67acacd6105 src/r40-compact-disarmed-probe.mjs
1531
+ 7695512681e2ce18bb6b6549da1416ce4db6d0f567d5261ead10a0a10cb744d1 src/r40-full-surface-probe.mjs
1489
1532
  afc638b797d81b16c620ca2226eacc4cb1a36562a402219cdac3376867170610 src/receipt.mjs
1490
- 4d9acc7d201d135ac3fc70632fb2fb39ee977bc608f0ed575d475b0a04070d34 src/release-generation.mjs
1533
+ 64a33b343de35f3bf8ce7ac7c26fc9ba308c4c21ace8d95fc79297e64edb1429 src/release-generation.mjs
1491
1534
  a7a63ea58291e0676c7199633ae234030f46285840cdfc519c879c279ae8bb14 src/release-slot.mjs
1492
- cefc1666608dc2aba7a93b460c2ccc580317acbda6127db2c5b3145233c4c574 src/remote-live-log.mjs
1535
+ 3f41fa32ddeed403b5431a338821b62e0c1946a9d808f06d0edb2d9341ca0121 src/remote-console.mjs
1536
+ 123a157a5149992a3eee85ffa2ea4ef420efc67e9f6bb394b87fbe164dd56db2 src/remote-live-log.mjs
1493
1537
  589c7f348ef24ce61206ea6b6d5e6962e7828c4c12eb23c9bfda7d6103dd710a src/remote-mcp-autonomous-smoke-client.mjs
1494
1538
  ebff2982142263632a40b9f144e802b9cb0c86c798bb6c591de7f175ba50b660 src/remote-mcp-coding-smoke-client.mjs
1539
+ 03c5dfe0b1cb55d84a0217cd59aca799e17c69b248549af2b3f2dc80d52bf315 src/remote-mcp-desktop-r40-smoke-client.mjs
1495
1540
  efd3f7ae0a3a614485933942ab5e27e874175feb81eb3e5130913c1e6837e7ca src/remote-mcp-host-smoke-client.mjs
1496
1541
  aeed462a1090611ce04f2d4e453e4a6e9163091d6d99f768233943f1c24b949f src/remote-mcp-machine-smoke-client.mjs
1497
1542
  4d4580623b107460d2467e18f37c6b3aebdbca3ac19916eb04a5e0e14baeebf0 src/remote-mcp-r24-disarmed-smoke-client.mjs
1498
1543
  4b83018de431e348b97bf787429d40013459d4f312ce85a4fe1e7c294bcb74c2 src/remote-mcp-r33-parity-client.mjs
1499
1544
  41733fecb602c9241ac2f7076607fb915c4a6c8180f4a9e13ff0334838a59fc7 src/remote-mcp-r34-parity-client.mjs
1500
1545
  b5399d8075710a679687ff36073eb1cdac8fda6379a60bedfa1d58518175fe55 src/remote-mcp-r36-parity-client.mjs
1501
- 8745fd20a84d5ded660590703b7a9340f60dd1935809c3669eed764c681178e1 src/remote-mcp-smoke-client.mjs
1502
- 27af3a4590fc56bcb7406d55ca733fc8c48b39edf2d7c168fc491f81e2b4c6ec src/remote-result-journal.mjs
1546
+ 281d337978c5a7518050538a6ce1fefef5b5a41dceadfa7435e8491e6837909d src/remote-mcp-r40-parity-client.mjs
1547
+ 5fb1b233045938e4d926051337ed20be68f7a0626fbc8a3a9083391d1c62c389 src/remote-mcp-smoke-client.mjs
1548
+ 450f3cfb040ccb7fafbea43fc1588c0a63938707e46f0a63279db474f4c1ca15 src/remote-result-journal.mjs
1503
1549
  c8fd6fd3e49e866f2c3be326ab07222b36a44528ee0fc3f7b371c34a60e3c45b src/remote-session-guardian.mjs
1504
1550
  827b156eac01cc9ec6f5ca9a49219612f0da511fde770a9eb1235aa913b5e514 src/request-identity.mjs
1505
1551
  ce2223bf6075e96cc02505c1439acce18bb1f204c5e86cf9152bb7194daf3cd2 src/runtime-identity.mjs
1506
- 1b738da9958504c034824392225144d0780320510dfb79527fb1aed7aa067fba src/runtime-update.mjs
1552
+ 082a86262083e43451ed96bcc31461dfcbbe70fb5aaf13197b44d7a62a4f9456 src/runtime-update.mjs
1507
1553
  c61335adb38bfc415fe1cdabfe2c0a87e61579dfd1e52cce91c44d6993479457 src/search-cursor.mjs
1508
1554
  fc5407ef8338ebeeede16225b3249166dc4d45e903d873eb46c15c3df07dc9ad src/semantic-backend-registry.mjs
1509
1555
  686e9b55b9f4352b941579f186a9b9d348d86af53d052cbd5da953e7d15470ff src/semantic-code.mjs
1510
1556
  17472b07dbfc1f6eff6831d79926a526e668ed0278cacbf9b4c421019174f505 src/semantic-lsp-backend.mjs
1511
1557
  a14cb827602d74f7c9822098815add8bf1ab6b27598d22b44880c8c98e754c1b src/semantic-lsp-config.mjs
1512
1558
  6dccdb538be9783276399a5ad2cce54b1f0d8cc305fd58bee9f0f46d6a412af6 src/text-policy.mjs
1513
- 6d9aafe86f98fda160c9bacf1435c359155ad1f69c64f60461d236d0f4a7995c src/tool-audit.mjs
1559
+ 144c75f8e8a4c2a182db82642475359459e5c108b2a4cecd80488bea1e6ab3bb src/tool-audit.mjs
1514
1560
  ac7394cf2c353dfab645937ab7bfb6eed7e42f345c1d46185f37f9d65772104c src/tool-surface-ledger.mjs
1515
1561
  bac271c6f5218752ac5ff4decf5249e3893ddb35c63c092ce17238c27fc4d35b src/trust-init.mjs
1516
1562
  1325b75abd94c44ea53278e2763448d3065d7cce979581f223dd186e05e3234e src/trust.mjs
@@ -1518,7 +1564,7 @@ a765372ee27cf34b3f42ca77e43b839a306a4ca7d8b1c5e2fdd4367ab0c95769 src/tunnel-std
1518
1564
  16df134040e3ff1e73df722b568d3e8ac0a6923b097696cead7580da75aa8d2a src/tunnel-stdio-compat.mjs
1519
1565
  642cb67d1854850e336ee73fbd71b329056bdcbdab35cea19c1a995a155ff5d9 src/verifier-cli.mjs
1520
1566
  8f818a4852ce3be3a380cd4736c3073a7a3e0e45cd7c7ca90588a6b843d3d022 src/verifier.mjs
1521
- 72b63a1112e71443587872f23c02f85541a853706beba06679ae2c5bcc72a110 src/version.mjs
1567
+ 1b4762a436396ebff7cad0acda6867b178990cf20043672d7cda14f41aa2a331 src/version.mjs
1522
1568
  7e09c57a97289360aabfaf3d531208e54872efbfb3182f3c18203d2cb88c46b5 src/worker-registry.mjs
1523
1569
  76361d5ae9a710273cf64a7525082197b692236bf23689875e5fd1ef4aa96d2b src/worker-scheduler.mjs
1524
1570
  2a78c818058b25efdc143a3a97c832da231ccd6ff9d90c7796d681a0251b85c4 test/agent-crash-child.mjs
@@ -1532,8 +1578,9 @@ cb11ffceefcc4d3d5268c2b32427b02cc44b2760f744f84767c5e901f9874405 test/audit-con
1532
1578
  16c7d9e3ca03d135155b0826d4937d371768ac5d4fd65b8dcf8f92c91f28420c test/audit-verify.test.mjs
1533
1579
  fc934b06364962ab4e4e168ac34704c98f6891c854c83b990c03e044a27a8b60 test/autonomous-action-reconcile.test.mjs
1534
1580
  cc44bad58270f1f9ed889583f2279b617c580b3faebbf2d583ba8d754412ff12 test/autonomous-adversarial.test.mjs
1535
- d23bfa3661f4ce87d00baa3ecd0b85b3b655132de5ce61be44d06dab069fbde0 test/autonomous-capability-r36.test.mjs
1581
+ dc54ba0d411fa80fef6d51e27d131c0ed5bb7413998b8b8f92cfaf31ae3b825e test/autonomous-capability-r36.test.mjs
1536
1582
  bb760a934f0d4cd99f61b8636491fa2cc81308d0934f932213daef25878036fb test/autonomous-context-engine.test.mjs
1583
+ ffe2189f77f3ed85cb8afb46edb88286c63b9333a3dcd11f4a995886ad590abd test/autonomous-desktop-r40.test.mjs
1537
1584
  61dd190bbea1dec4ef2e7a2a8e7afacc208e7a0f29fe55722d287eb3bbecd3f7 test/autonomous-live-fixture.test.mjs
1538
1585
  40300b8f8deb8caa2b1e9a6fc4a234bedfa554e074e18b3c3afde47d7295acd6 test/autonomous-live-state.test.mjs
1539
1586
  41fb64092d17de00c68ae7fb7716263fde4e16aa70db3c5fc93f178dc44e4b66 test/autonomous-local-supervisor.test.mjs
@@ -1551,8 +1598,8 @@ bad448d7bfd0c66b8d0dc0fa601fc22d69ccc3f447140ed0f77b68957984daea test/capabilit
1551
1598
  1d004238671c74ac4e171f8b30dc5cdb746dc165e19a96e53765a33453fb232b test/capability-benchmark-semantic-r36.test.mjs
1552
1599
  c343906ca0878e13c576cd9f615802b1139c693bf6769a780dfb052637cf0d83 test/capability-benchmark.test.mjs
1553
1600
  b9a8faa4b86683ac5aea891fe6bc95f8e425fb31635176aa4603f9d582b52a79 test/capability-claims-r36.test.mjs
1554
- 6fb8640b5488b6c2f1e16bb5c7c0e17b0a7a485b149e2a7cc203fceb812ed824 test/capability-ledger-r36.test.mjs
1555
- 4239c77b9b1756cfb9a2f3c0cfefdd7abd4ac2579650828eb55f3a0dc9b98a84 test/cli-entrypoint.test.mjs
1601
+ cd742ba5a46122f480dda1acbdfee54b99377d6815bc4f249099324008b8779f test/capability-ledger-r36.test.mjs
1602
+ d6509236a6c912e73d83839e9c0f9ab715d08bab5a57d69399152cc2e904df37 test/cli-entrypoint.test.mjs
1556
1603
  350e151dbd8cc2723b141c5cf5f90bdf11289577c9b9347330e3ad815d948e98 test/coding-catalog-consistency.test.mjs
1557
1604
  604605e1992ea62e1eca6880d7b0bae36d43b16d17573a663cd9b3ff089575c7 test/coding-crash.test.mjs
1558
1605
  0fad3c669e48d60bbae7f4b847472677bf3bf8bcc9db0c798d76814b8f907e17 test/coding-observation.test.mjs
@@ -1560,11 +1607,13 @@ cd94ba88ab460868f79dc540a38ad1dd6b96c4fd39cf13a14cf5d855ba0d5254 test/coding-pl
1560
1607
  10996714bfbee5aa533f63b68bc5c851b7ae06c16d0e9b48be1673179583b790 test/coding-plane.test.mjs
1561
1608
  6a0950584cfb749d07754abb554ede8a85aec4f2bf604e04c88bd4f1e0bfba36 test/coding-runtime.test.mjs
1562
1609
  ea7278a6ee5d15e9d8db757c924dfc502fbf7593967766292003a62ef444c6fb test/coding-search-r36.test.mjs
1563
- 7184891ab7281b56ed34bc109b7f768ebe29ab1dcae205675a1c75d6af83f932 test/compact-catalog-r36.test.mjs
1564
- 21a7604765fb1b8ae8d3f6d86715a8cfa50bb457ccde21b593539e0bbd53b765 test/compact-gateway-r36.test.mjs
1610
+ 04a9f56d61bf1cae32289b71dc4062b985c24e25f8513827c04e8c88a71b5314 test/compact-catalog-r36.test.mjs
1611
+ d48d96376e5612b61dc65dd93ecce98066a2d49174afba46d9e88716ab23c147 test/compact-gateway-r36.test.mjs
1612
+ ec6ccc9a2bb64f90b9ad0ea3c52bae8d364a5e205ee809087433f39ea30b39dd test/compact-max-catalog-r40.test.mjs
1565
1613
  e3684605ff264fbefa007ea64a4815c493cfda4e6f1c598ef68765f19d36a347 test/contained.test.mjs
1566
1614
  48a3b64ed40311fb017217cd85f3102c77a2cd72490b5edd41aac01247a1882c test/containment.test.mjs
1567
1615
  599eba90e0e4e1222518f7c268e0d5598dcbc9121a13fe6ede909645e72ec24b test/context-provenance.test.mjs
1616
+ 0262093dbe395663d3ed1c56d574615b3c0a4410b82021adfb5a60306259c0c7 test/controller-desktop-r40.test.mjs
1568
1617
  d2152851336e68874e711b639e9d6188fa0e05e24fc75a7f9777a65e5ba68a9f test/controller-r21.test.mjs
1569
1618
  74b69e33d8240b40896eb63ac4ce19a130d826cd85c5457aa5f38409e8ec7fa7 test/controller-r211.test.mjs
1570
1619
  b5484237682a4c4386ff9860851650c966dd5283a840926a1f250d6aa2d98688 test/controller-r212.test.mjs
@@ -1574,10 +1623,19 @@ a972bd20fa927427e6d8e4181699a27e792e916b02dcf8a1ac3e2b44afd238c1 test/controlle
1574
1623
  ceba7d1a09ccdcb20f33fe4e6de7667ffe0f0170d1bc9fefadfdba4d7f228090 test/controller-r29.test.mjs
1575
1624
  4d0dc810d9af13907f31c834a13acfb7e01ffbbe65575b69649fe52741e42175 test/controller-r30.test.mjs
1576
1625
  275e7d4c0301cbb1fe5ee44f6d6cd7085ea3b9547e639c121b9c6a112abc2505 test/controller.test.mjs
1577
- dc476218d3fc97a28eaf879a01b9d22d9c3a0842e8fb7034c44b4f7f776a7034 test/core.test.mjs
1626
+ 4228de7d20150a9b4a720605a827efcc6ca0d78993a862233b6337889d6369d1 test/core.test.mjs
1578
1627
  7ba4b06a1c4141ba87b5b371157fb59940d15a1016b4c599a13753d63ad0d3d3 test/DEADBYTE-MCP-WRITE-PROBE.txt
1579
1628
  c526724a6d10648fdd5152af917ba2fe51836dc5877daaac554bbd9e52fcd47e test/deferred-slot-operation-behavior.test.mjs
1580
1629
  69a515b1a36f0620cae4057ea8dc5302751058e290aedaf2f0b637eb3288aba8 test/deferred-slot-operation.test.mjs
1630
+ 1ac558f375ab1c1ecdb3def18a2079d4ad34d4c7fa68bd29f470ae3ab6938d0b test/desktop-adversarial-r40.test.mjs
1631
+ dde37ac8ec349c02ec11ce7df3ddacd7862e742f7e45a783e0997325c704bb9d test/desktop-contract-r40.test.mjs
1632
+ b699d116a4bf3a50c9131fd1ff0541f9ef5c01ebe7b74195d2b18b81dd9e826f test/desktop-input-r40.test.mjs
1633
+ fecf227dd176f7ecc6a01aefd51f3fffab658d049c99a13fd9c7c61f2f07a2a5 test/desktop-mcp-tools-r40.test.mjs
1634
+ 26e58c7dcb6ad6dfa1aba9aa9621f9b0a7f90af98d16fe2e00324ff20130aa24 test/desktop-memory-r40.test.mjs
1635
+ 85beca3c05beec98f1615b2498c88d90d4d251e75240744cd6e53f7d26566291 test/desktop-observer-r40.test.mjs
1636
+ 1306bb66c77a41a15e7b717bb4ca3e66289771d41f235018bfb1825771f137cb test/desktop-policy-r40.test.mjs
1637
+ 89b8c36f171211c8f5a59eaeae8f36e7c265185ca9e27031a5805d8bbec354c1 test/desktop-runtime-r40.test.mjs
1638
+ 331d19fe6a85a89cc141e2fb01f13a5620f81fc5666b40ffa37a08922c8c6a91 test/desktop-uia-r40.test.mjs
1581
1639
  185c9bce5d1f5843577158f89ba3d5c2a2353da958d0449cecd6873d6b5464b8 test/document-adapter.test.mjs
1582
1640
  84f13761f1f8a148638e48d014a800141c471acb21151b1d7df59652dbedf48d test/fixtures/lsp-framed-server.mjs
1583
1641
  95ea0b5611c9eaccdf3f9636a888332bda72588b654023dd203f58298514747b test/fixtures/semantic/cpp/compile_commands.json
@@ -1640,7 +1698,8 @@ ea0e0e99a9faea58a45deecf1058a6abbd40837862f74f9e5627a4cd4031b24e test/fixtures/
1640
1698
  f254664d685fe47f3ca00d4384a13c5b9ebcc4402798d3774a6893a7a1573f51 test/fixtures/semantic/typescript/lib.ts
1641
1699
  7e33e246a3eca9ea5d87dcbb3b38fd5f543101cfff73acbd2df832ae01226dd7 test/fixtures/semantic/typescript/main.ts
1642
1700
  f95c920ee2b24d5ec940a9bae277771562ce275556bd89f0071f183b13c154b8 test/fixtures/tool-surface-stdio-server.mjs
1643
- f218c01f057854b7b49e1c83cdf4b90468585d2c3cbdff09c1724b1847584cd1 test/helpers/autonomous-r34-fixture.mjs
1701
+ 37863ca060be2a56375914f02562e693482cbd96e6cf708b1c2979ccf2df6031 test/full-max-catalog-r40.test.mjs
1702
+ abe3459ff6e730cb25dee27bc46185241c63024bac16a1e6a42eaa57a9780ad8 test/helpers/autonomous-r34-fixture.mjs
1644
1703
  78f9efaafe3286a3003209e8fb4c0117822d3f8996508159e19e217b1246faba test/helpers/coding-crash-child.mjs
1645
1704
  53a6c0991ad714fb588c3aadbbcfa8ce3732784dfcb8b88d665dc14d98cb71d0 test/host-plane.test.mjs
1646
1705
  b12322450d23f44513b02d2c54f216520f392bf76e221af22fdcb5a11261ec3d test/lsp-stdio-client.test.mjs
@@ -1667,32 +1726,35 @@ b84622d07d2ecfe27b55e45f7e89949f29a2d14184d8c6f6f82ed7f1e5fa59be test/process-n
1667
1726
  510f51a6288a1030387cf372951499aea6dba2a35362ad89510bf7480e2f8004 test/process-release-gate.test.mjs
1668
1727
  e19a477abb83c63a1fb7ab5d5d1e9925113cded95d57084186b6ecd6161780e0 test/process-runtime.test.mjs
1669
1728
  34afc8a01e0c21501ec2647b7b0198b73570bce89eaaa983bd50c5709bb83fb8 test/process-supervision.test.mjs
1670
- 5c01d5d2fba94e49c7bb6b9343e6734f9dde1c363112aa0c3de7d6147de17557 test/production-docs.test.mjs
1729
+ c90c34c692214ba890fd699c1af586edd843c203034bbebf04016e76ec00fa1e test/production-docs.test.mjs
1671
1730
  a20273128f4e6dcf2163c0b3fb7fe6ed9bf4d698fb0a5a0c4638396331d961cf test/prompts-resources.test.mjs
1672
1731
  fcb70992870cd2f84674d578b0aaee554f958969c629a9d522d1efd230fe8288 test/provider-circuit.test.mjs
1673
1732
  0286df49beb2c2dcf46e384d87687d8d7a1618dd86f068517e36ae80dceb489b test/public-autonomous-ingress-budget.test.mjs
1674
- 92d708e1a4fdd14b4858d9d01d3c3f669b29056d4beee7725b4cd96c97bad1b8 test/r33-closeout-regression.test.mjs
1675
- 52a3e4c8f45c5ae8fe3da984889fa9a995680137a89cea0c6a6292396abe04e0 test/r33-finalization.test.mjs
1733
+ 97d70b4d3de3f04c8a6b7dcc3b907c086d5fc10e455b72fff6242c998a0556d6 test/r33-closeout-regression.test.mjs
1734
+ e0a377d3021cbfc49cfbd46f1674dd484ace0c7d3f5031b67df06c4a86f581f2 test/r33-finalization.test.mjs
1676
1735
  7e419d3c1caf79bfc7407207f50e5645298f9b19d91a7d6f595af185b92cd55e test/r36-finalization.test.mjs
1677
1736
  139b0e11e5aac97649af0ab5efa78e8da06b4ee4da7372cc6c26d415ced53084 test/r36-release-identity.test.mjs
1678
1737
  54d13ac29dd59aeca54f132d782a859cacba98ba0e5bac03d07ddeb042e8030b test/r37-0110-history.test.mjs
1679
1738
  6dfb1b2b74b9e1cc74998d3fe7ce3c69bbad6b6751dabc81a65b6ec810872820 test/r37-agent-fabric.test.mjs
1680
1739
  72bc1863a2e113f7815903595d010b9c15513e05243d4eef3bef584aea18757b test/r37-autonomous-timeout-recovery.test.mjs
1681
1740
  291d01d18840b543bd6c5790dc6a8a7c167244611168015377ce6b837a1ec038 test/r37-finalization.test.mjs
1682
- c23fd4f78ae94b795af6b428c9bbeb1c2e16dc7c9f90317daf40231bea12ab03 test/r37-remote-tool-call-timeline.test.mjs
1741
+ ac086e11d913a14f00e52042e245bf775604e4977b957adff985a040eb216e67 test/r37-remote-tool-call-timeline.test.mjs
1683
1742
  82bd5e708736ec59837218301964e01e3fe6a757905e5f395699e499c65f64fb test/r38-finalization.test.mjs
1684
- 984d153419c3273e896fd280c9347480802c8854742b7832eec113c63f538f4b test/release-generation.test.mjs
1743
+ 82a8d3e80c20f87c16948209c275c316a88bd23d423438bd1c0502bece447d6a test/r39-finalization.test.mjs
1744
+ 15fc10b911fcb6594dc6aae9b9a9c9c31a34fb7fce6cb25ebbffc67d3cc3be02 test/r40-finalization.test.mjs
1745
+ 9c8fbb9f7741fbf553ce54f1c0039116d7da56088135e69b174b3a807962a389 test/release-generation.test.mjs
1685
1746
  bb58887a2c393cd5aac3fa3bb3a04de2704bd2a30dd2083ea638543485fa7e60 test/release-manifest-windows.test.mjs
1686
1747
  7cc69e786bfd9e4a7e70888c4c1b5f756a264bc1a991139c468b63af23f24c38 test/release-slot.test.mjs
1687
1748
  0109c76b480cc600f6ed42be4519df3fa6835012bb9e4ba4ae6be6635468c4a8 test/release-smoke-isolation.test.mjs
1688
- 8fd7f1b976908461c9d02e9c05f787ffbf6187d47e99e64e12eff8bc1667f6d6 test/release-version.test.mjs
1749
+ ca7424f4a9b77c41045a57b54cc05834a1dfa7e4a4b303b2ca1016ec64d9e95a test/release-version.test.mjs
1750
+ c270a4e2d1384071e7c406f4ec8c8c1da56228844bf64362cffa03558be3cc49 test/remote-console-r40.test.mjs
1689
1751
  3d26a0550a22c69990567d998c28e4ba0978c71429741c10c7c47f261653fbe2 test/remote-live-log-r36.test.mjs
1690
- b6f3db73fa2d35ede13d99df3aabce5a11d156a1056fecadcfca3ea699b269a0 test/remote-live-log-r37.test.mjs
1752
+ c8fa27647e9ca5b6265a6abfc5ef9ccd9dbce2c9099014689ddf268119b743c7 test/remote-live-log-r37.test.mjs
1691
1753
  02ad827dc46e3dacf1ef2cfd861f583a44c471b1411cc674f4d61cd421418ad3 test/remote-live-log-recovery-r36.test.mjs
1692
- cda93f7e2453916855a338de63360eb9c9e0b7c513391d344d01c32f500b188e test/remote-r24-catalog.test.mjs
1693
- 7fb0196c15dc0c98a86d330ece3c752db5d2285289cb7b264a04871ba2fbd3d8 test/remote-result-journal.test.mjs
1694
- fd85a41fca8bdaf316a108d4381c06f0d4cccf5541dff13432fa95c744229b6c test/remote-session-cli.test.mjs
1695
- 6faccee09e78210ee580f364ce5d56254c0bc8c38351a3a37642a0c60a3291d0 test/runtime-self-update.test.mjs
1754
+ 3330897c4191150d2979a53678ff03734fb0c9fc23a7c14d9f730de0468cd2eb test/remote-r24-catalog.test.mjs
1755
+ 08e0a98e665783a1a4489534e3021d398d81df00c6974e6b957723445e92bad4 test/remote-result-journal.test.mjs
1756
+ dee984e454879b6b970a61470694761391212038b6ba258e1a8a9f1059910bb8 test/remote-session-cli.test.mjs
1757
+ 83b8e8094d1202ebb378cfda8e51ed4b6cf8323953b274ea3278b89d8f33e64a test/runtime-self-update.test.mjs
1696
1758
  b131611ec56e83d5db05d40b9be9b029396a177bca1ddacac9bf13086d370897 test/semantic-backend-registry.test.mjs
1697
1759
  a939ffa93544602d713749bc315fb970bd1a0d59b0d1570f2b8d4c26b4ec6e35 test/semantic-code.test.mjs
1698
1760
  62956183d7ab05e8635c850dc28f5472d3ab3974b53e0e69b6b1f6cae9005254 test/semantic-lsp-backend.test.mjs
package/README.txt CHANGED
@@ -1,4 +1,4 @@
1
- DEADBYTE MCP V0.11.2 / R38 HOTFIX BASELINE
1
+ DEADBYTE MCP V0.12.0 / R40 DESKTOP COMPUTER-USE BASELINE
2
2
  =========================
3
3
 
4
4
  AUTHENTICATED MACHINE TRUTH + DURABLE AGENT + CODING + AUTONOMOUS PRODUCTION ENGINE
@@ -7,7 +7,7 @@ NPX PRIMARY OPERATOR UX
7
7
  ------------------------
8
8
  Use the npm CLI entry point instead of the legacy CMD convenience wrapper:
9
9
 
10
- npx -y deadbyte-mcp@0.11.2 mcp
10
+ npx -y deadbyte-mcp@0.12.0 mcp
11
11
  npx deadbyte-mcp@latest remote
12
12
  npx deadbyte-mcp@latest remote status
13
13
  npx deadbyte-mcp@latest remote restart
@@ -18,10 +18,11 @@ The `mcp` command is the quiet stdio server entry for local MCP clients; stdout
18
18
  The remote CLI invokes the stable active-release PowerShell launcher directly with shell=false.
19
19
  Bare `remote` is a foreground device session: it starts/resumes the verified runtime, arms process,
20
20
  coding, and autonomous authority, independently verifies those three planes are ARMED, and requires
21
- Host to remain DISARMED. The single remote console shows device/bridge/cloud/session readiness plus a
21
+ Desktop and Host to remain DISARMED. Desktop observation/UIA grounding is read-only; guarded GUI input
22
+ requires the separate explicit Desktop standing grant (`armdesktop`) and is never implied by Autonomous authority. The single remote console shows device/bridge/cloud/session readiness plus a
22
23
  unified live timeline (`RUN`, `OK`, `ERR`, interrupted/recovery, cursors, and sanitized Bridge IN/OUT/ERR
23
24
  diagnostics) without dumping raw JSON payloads, tokens, private keys, or full Bridge payload records. Session shutdown
24
- revokes process/coding/autonomous authority, applies fail-safe Host disarm, and parks the Bridge. A detached
25
+ revokes Desktop/process/coding/autonomous authority, applies fail-safe Host disarm, and parks the Bridge. A detached
25
26
  nonce-bound guardian watches the foreground owner and performs the same revoke+park cleanup if the
26
27
  owner is hard-killed before `finally` can run. The v2 runtime marker binds owner PID, guardian PID,
27
28
  and a random 256-bit session nonce, prevents concurrent foreground sessions, and lets a later start
@@ -273,7 +274,7 @@ MCP CLIENT CONFIGURATION
273
274
  ------------------------
274
275
  The local stdio entry point is quiet and suitable for MCP hosts:
275
276
 
276
- npx -y deadbyte-mcp@0.11.2 mcp
277
+ npx -y deadbyte-mcp@0.11.3 mcp
277
278
 
278
279
  CLAUDE DESKTOP
279
280
  Use the standard local-server entry in claude_desktop_config.json:
@@ -282,7 +283,7 @@ Use the standard local-server entry in claude_desktop_config.json:
282
283
  "mcpServers": {
283
284
  "deadbyte": {
284
285
  "command": "npx",
285
- "args": ["-y", "deadbyte-mcp@0.11.2", "mcp"]
286
+ "args": ["-y", "deadbyte-mcp@0.11.3", "mcp"]
286
287
  }
287
288
  }
288
289
  }
@@ -295,7 +296,7 @@ Create .cursor/mcp.json:
295
296
  "deadbyte": {
296
297
  "type": "stdio",
297
298
  "command": "npx",
298
- "args": ["-y", "deadbyte-mcp@0.11.2", "mcp"]
299
+ "args": ["-y", "deadbyte-mcp@0.11.3", "mcp"]
299
300
  }
300
301
  }
301
302
  }
@@ -308,7 +309,7 @@ Create .vscode/mcp.json:
308
309
  "deadbyte": {
309
310
  "type": "stdio",
310
311
  "command": "npx",
311
- "args": ["-y", "deadbyte-mcp@0.11.2", "mcp"]
312
+ "args": ["-y", "deadbyte-mcp@0.11.3", "mcp"]
312
313
  }
313
314
  }
314
315
  }
@@ -318,7 +319,7 @@ Add this to ~/.codex/config.toml:
318
319
 
319
320
  [mcp_servers.deadbyte]
320
321
  command = "npx"
321
- args = ["-y", "deadbyte-mcp@0.11.2", "mcp"]
322
+ args = ["-y", "deadbyte-mcp@0.11.3", "mcp"]
322
323
 
323
324
  The remote device path remains `npx deadbyte-mcp@latest remote`. Remote public MCP uses the
324
325
  verified HTTPS named-tunnel URL selected by the active generation; do not commit a private device
@@ -0,0 +1,106 @@
1
+ import test from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { mkdtemp, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
4
+ import os from 'node:os';
5
+ import path from 'node:path';
6
+ import { fileURLToPath } from 'node:url';
7
+ import { loadDesktopPolicy } from '../../src/desktop-policy-r40.mjs';
8
+ import { createDesktopObserverRuntime } from '../../src/desktop-observer-r40.mjs';
9
+ import { createDesktopRuntime } from '../../src/desktop-runtime-r40.mjs';
10
+ import { generateTrustKeypair, loadPrivateSigningKey } from '../../src/trust.mjs';
11
+
12
+ const here=path.dirname(fileURLToPath(import.meta.url));
13
+ const root=path.resolve(here,'../..');
14
+ const policyPath=path.join(root,'controller','deadbyte-desktop-policy.json');
15
+
16
+ function drift(a,b,width,height,strideA,strideB){
17
+ assert.equal(a.length>=strideA*height,true);
18
+ assert.equal(b.length>=strideB*height,true);
19
+ let changed=0,maxChannelDelta=0;
20
+ for(let y=0;y<height;y++){
21
+ let ia=y*strideA,ib=y*strideB;
22
+ for(let x=0;x<width;x++,ia+=4,ib+=4){
23
+ let pixelChanged=false;
24
+ for(let c=0;c<3;c++){
25
+ const d=Math.abs(a[ia+c]-b[ib+c]);
26
+ if(d!==0) pixelChanged=true;
27
+ if(d>maxChannelDelta) maxChannelDelta=d;
28
+ }
29
+ if(pixelChanged) changed++;
30
+ }
31
+ }
32
+ const total=width*height;
33
+ return {changed_pixels:changed,total_pixels:total,changed_ppm:Math.round(changed*1_000_000/total),max_channel_delta:maxChannelDelta};
34
+ }
35
+
36
+ test('R40 live desktop measures bounded native frame drift without mutation',async()=>{
37
+ const policy=await loadDesktopPolicy(policyPath);
38
+ const observer=createDesktopObserverRuntime({
39
+ observerPath:policy.observer.executable,
40
+ expectedObserverSha256:policy.observer.sha256,
41
+ maxFrameBytes:policy.limits.max_frame_bytes,
42
+ timeoutMs:policy.limits.capture_timeout_ms,
43
+ allowInputDesktops:policy.allowed_input_desktops,
44
+ maxCachedFrames:8
45
+ });
46
+ const samples=[];
47
+ for(let i=0;i<6;i++){
48
+ const a=await observer.capture();
49
+ const b=await observer.capture();
50
+ assert.deepEqual(a.frame.bounds,b.frame.bounds);
51
+ assert.equal(a.frame.desktop_epoch,b.frame.desktop_epoch);
52
+ assert.equal(a.frame.topology_sha256,b.frame.topology_sha256);
53
+ const m=drift(
54
+ observer.framePixels(a.frame.frame_id),observer.framePixels(b.frame.frame_id),
55
+ a.frame.bounds.width,a.frame.bounds.height,a.stride,b.stride
56
+ );
57
+ samples.push({...m,a_frame:a.frame.frame_id,b_frame:b.frame.frame_id});
58
+ }
59
+ const maxPpm=Math.max(...samples.map(x=>x.changed_ppm));
60
+ const maxPixels=Math.max(...samples.map(x=>x.changed_pixels));
61
+ console.log(JSON.stringify({status:'OBSERVED',samples,max_changed_ppm:maxPpm,max_changed_pixels:maxPixels,mutation:false}));
62
+ assert.equal(samples.length,6);
63
+ });
64
+
65
+
66
+ test('R40 measures the exact observe-receipt-to-preaction capture drift window without mutation',async()=>{
67
+ const temp=await mkdtemp(path.join(os.tmpdir(),'deadbyte-r40-signed-drift-'));
68
+ try{
69
+ const raw=JSON.parse(await readFile(policyPath,'utf8'));
70
+ raw.grant_file=path.join(temp,'grant.json');
71
+ raw.evidence_dir=path.join(temp,'evidence');
72
+ const localPolicyPath=path.join(temp,'policy.json');
73
+ await writeFile(localPolicyPath,JSON.stringify(raw,null,2));
74
+ const policy=await loadDesktopPolicy(localPolicyPath);
75
+ const trust=path.join(temp,'trust'); await mkdir(trust,{recursive:true});
76
+ const keys=await generateTrustKeypair({privateKeyPath:path.join(trust,'private.pem'),publicKeyPath:path.join(trust,'public.pem')});
77
+ const signer=await loadPrivateSigningKey(keys.privateKeyPath);
78
+ const observer=createDesktopObserverRuntime({
79
+ observerPath:policy.observer.executable,expectedObserverSha256:policy.observer.sha256,
80
+ maxFrameBytes:policy.limits.max_frame_bytes,timeoutMs:policy.limits.capture_timeout_ms,
81
+ allowInputDesktops:policy.allowed_input_desktops,maxCachedFrames:8
82
+ });
83
+ const runtime=createDesktopRuntime({
84
+ policy,observerRuntime:observer,inputProvider:async()=>{throw new Error('must not be called');},
85
+ privateKey:signer.privateKey,keyId:signer.keyId
86
+ });
87
+ const samples=[];
88
+ for(let i=0;i<4;i++){
89
+ const a=await runtime.observe();
90
+ const b=await observer.capture();
91
+ assert.equal(a.frame.desktop_epoch,b.frame.desktop_epoch);
92
+ assert.equal(a.frame.topology_sha256,b.frame.topology_sha256);
93
+ const m=drift(
94
+ observer.framePixels(a.frame.frame_id),observer.framePixels(b.frame.frame_id),
95
+ a.frame.bounds.width,a.frame.bounds.height,a.stride,b.stride
96
+ );
97
+ samples.push({...m,a_frame:a.frame.frame_id,b_frame:b.frame.frame_id});
98
+ }
99
+ console.log(JSON.stringify({
100
+ status:'OBSERVED_SIGNED_WINDOW',samples,
101
+ max_changed_ppm:Math.max(...samples.map(x=>x.changed_ppm)),
102
+ max_changed_pixels:Math.max(...samples.map(x=>x.changed_pixels)),
103
+ mutation:false,authority:'DISARMED'
104
+ }));
105
+ }finally{await rm(temp,{recursive:true,force:true});}
106
+ });