deadbyte-mcp 0.8.10 → 0.9.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 (347) hide show
  1. package/CONTEXT.md +41 -0
  2. package/MANIFEST.SHA256 +346 -82
  3. package/R34-BASELINE.json +9 -0
  4. package/README.txt +135 -9
  5. package/bench/fixtures/corpus.json +17 -0
  6. package/bin/WORKER-REGISTRY.txt +3 -3
  7. package/bin/appcontainer-stage.exe +0 -0
  8. package/bin/appcontainer-stage.obj +0 -0
  9. package/bin/bootstrap-advapi32.exe +0 -0
  10. package/bin/bootstrap-advapi32.obj +0 -0
  11. package/bin/bootstrap-exitcode.exe +0 -0
  12. package/bin/bootstrap-exitcode.obj +0 -0
  13. package/bin/bootstrap-kernel32.exe +0 -0
  14. package/bin/bootstrap-kernel32.obj +0 -0
  15. package/bin/child-control-probe.exe +0 -0
  16. package/bin/child-control-probe.obj +0 -0
  17. package/bin/child-control-stage.exe +0 -0
  18. package/bin/child-control-stage.obj +0 -0
  19. package/bin/contained-reverse-worker.exe +0 -0
  20. package/bin/contained-reverse-worker.obj +0 -0
  21. package/bin/contained-transform-worker.exe +0 -0
  22. package/bin/contained-transform-worker.obj +0 -0
  23. package/bin/containment-probe.exe +0 -0
  24. package/bin/containment-probe.obj +0 -0
  25. package/bin/deadbyte-contain.exe +0 -0
  26. package/bin/deadbyte-contain.obj +0 -0
  27. package/bin/deadbyte-exec.exe +0 -0
  28. package/bin/deadbyte-exec.obj +0 -0
  29. package/bin/deadbyte-process-host.exe +0 -0
  30. package/bin/deadbyte-process-host.obj +0 -0
  31. package/bin/deadbyte-tunnel-host.exe +0 -0
  32. package/bin/deadbyte-tunnel-host.obj +0 -0
  33. package/controller/README.TXT +10 -4
  34. package/controller/deadbyte-controller.config.psd1.example +14 -0
  35. package/controller/deadbyte-controller.ps1 +144 -19
  36. package/controller/deadbyte-process-policy.json +5 -5
  37. package/controller/deadbyte-semantic-lsp-config.json +95 -0
  38. package/docs/ADR-0001-PRODUCTION-BASELINE-SEAMS.md +29 -0
  39. package/docs/ARCHITECTURE.md +6 -5
  40. package/docs/superpowers/plans/2026-09-16-deadbyte-loop-engine.md +846 -0
  41. package/docs/superpowers/plans/2026-09-17-r35-production-successor.md +408 -0
  42. package/docs/superpowers/specs/2026-09-16-deadbyte-loop-engine-design.md +435 -0
  43. package/docs/superpowers/specs/2026-09-17-r35-production-successor-design.md +220 -0
  44. package/node_modules/typescript/LICENSE.txt +55 -0
  45. package/node_modules/typescript/README.md +50 -0
  46. package/node_modules/typescript/SECURITY.md +41 -0
  47. package/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
  48. package/node_modules/typescript/bin/tsc +2 -0
  49. package/node_modules/typescript/bin/tsserver +2 -0
  50. package/node_modules/typescript/lib/_tsc.js +133818 -0
  51. package/node_modules/typescript/lib/_tsserver.js +659 -0
  52. package/node_modules/typescript/lib/_typingsInstaller.js +222 -0
  53. package/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
  54. package/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
  55. package/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
  56. package/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
  57. package/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
  58. package/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
  59. package/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
  60. package/node_modules/typescript/lib/lib.d.ts +22 -0
  61. package/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
  62. package/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
  63. package/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
  64. package/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
  65. package/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
  66. package/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
  67. package/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
  68. package/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
  69. package/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
  70. package/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
  71. package/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
  72. package/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
  73. package/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
  74. package/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
  75. package/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
  76. package/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
  77. package/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
  78. package/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
  79. package/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
  80. package/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
  81. package/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
  82. package/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
  83. package/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
  84. package/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
  85. package/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
  86. package/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
  87. package/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
  88. package/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
  89. package/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
  90. package/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
  91. package/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
  92. package/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
  93. package/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
  94. package/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
  95. package/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
  96. package/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
  97. package/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
  98. package/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
  99. package/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
  100. package/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
  101. package/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
  102. package/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
  103. package/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
  104. package/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
  105. package/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
  106. package/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
  107. package/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
  108. package/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
  109. package/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
  110. package/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
  111. package/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
  112. package/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
  113. package/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
  114. package/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
  115. package/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
  116. package/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
  117. package/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
  118. package/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
  119. package/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
  120. package/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
  121. package/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
  122. package/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
  123. package/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
  124. package/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
  125. package/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
  126. package/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
  127. package/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
  128. package/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
  129. package/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
  130. package/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
  131. package/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
  132. package/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
  133. package/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
  134. package/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
  135. package/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
  136. package/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
  137. package/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
  138. package/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
  139. package/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
  140. package/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
  141. package/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
  142. package/node_modules/typescript/lib/lib.es6.d.ts +23 -0
  143. package/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
  144. package/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
  145. package/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
  146. package/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
  147. package/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
  148. package/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
  149. package/node_modules/typescript/lib/lib.esnext.float16.d.ts +445 -0
  150. package/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
  151. package/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
  152. package/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
  153. package/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
  154. package/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
  155. package/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
  156. package/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
  157. package/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
  158. package/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
  159. package/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
  160. package/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
  161. package/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
  162. package/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
  163. package/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
  164. package/node_modules/typescript/lib/tsc.js +8 -0
  165. package/node_modules/typescript/lib/tsserver.js +8 -0
  166. package/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
  167. package/node_modules/typescript/lib/tsserverlibrary.js +21 -0
  168. package/node_modules/typescript/lib/typesMap.json +497 -0
  169. package/node_modules/typescript/lib/typescript.d.ts +11437 -0
  170. package/node_modules/typescript/lib/typescript.js +200276 -0
  171. package/node_modules/typescript/lib/typingsInstaller.js +8 -0
  172. package/node_modules/typescript/lib/watchGuard.js +53 -0
  173. package/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2122 -0
  174. package/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2122 -0
  175. package/node_modules/typescript/package.json +120 -0
  176. package/package.json +5 -3
  177. package/proof/CONTAINMENT-BUILD.txt +6 -6
  178. package/proof/R34-TASK8-SUPERVISOR-CHECKPOINT.json +29 -0
  179. package/proof/R34-TASK9-MCP-SURFACE-CHECKPOINT.json +28 -0
  180. package/scripts/capability-benchmark.mjs +27 -0
  181. package/scripts/deferred-slot-operation.mjs +4 -2
  182. package/scripts/final-closure-verify.mjs +10 -10
  183. package/scripts/final-closure.mjs +11 -11
  184. package/scripts/gate-windows.ps1 +3 -3
  185. package/scripts/release-parity.mjs +14 -14
  186. package/scripts/semantic-preflight.ps1 +73 -0
  187. package/scripts/tool-surface-snapshot.mjs +73 -0
  188. package/scripts/windows-gate-evidence.mjs +5 -5
  189. package/src/audit-verify.mjs +6 -2
  190. package/src/autonomous-action-reconcile.mjs +142 -0
  191. package/src/autonomous-context-engine.mjs +255 -0
  192. package/src/autonomous-live-state.mjs +17 -0
  193. package/src/autonomous-local-supervisor.mjs +249 -0
  194. package/src/autonomous-loop-state.mjs +304 -0
  195. package/src/autonomous-output-contracts.mjs +22 -3
  196. package/src/autonomous-plan.mjs +181 -0
  197. package/src/autonomous-planner-contracts.mjs +44 -0
  198. package/src/autonomous-planner.mjs +91 -6
  199. package/src/autonomous-policy.mjs +15 -2
  200. package/src/autonomous-progress.mjs +127 -0
  201. package/src/autonomous-runtime.mjs +601 -48
  202. package/src/autonomous-supervisor-host.mjs +70 -0
  203. package/src/autonomous-supervisor.mjs +31 -8
  204. package/src/capability-benchmark-runner.mjs +108 -0
  205. package/src/capability-benchmark.mjs +50 -0
  206. package/src/coding-mcp-tools.mjs +46 -3
  207. package/src/coding-output-contracts.mjs +45 -0
  208. package/src/context-provenance.mjs +86 -0
  209. package/src/deadbyte-cli.mjs +117 -25
  210. package/src/document-adapter.mjs +43 -0
  211. package/src/lsp-stdio-client.mjs +112 -0
  212. package/src/machine-fs-smoke-client.mjs +2 -1
  213. package/src/mcp-server.mjs +17 -3
  214. package/src/observation-smoke-client.mjs +3 -2
  215. package/src/operator-surface.mjs +37 -0
  216. package/src/provider-circuit.mjs +125 -0
  217. package/src/release-generation.mjs +44 -5
  218. package/src/remote-mcp-autonomous-smoke-client.mjs +53 -14
  219. package/src/remote-mcp-coding-smoke-client.mjs +5 -4
  220. package/src/remote-mcp-r24-disarmed-smoke-client.mjs +4 -2
  221. package/src/remote-mcp-r34-parity-client.mjs +177 -0
  222. package/src/remote-mcp-smoke-client.mjs +2 -1
  223. package/src/remote-result-journal.mjs +114 -0
  224. package/src/runtime-update.mjs +58 -8
  225. package/src/semantic-backend-registry.mjs +39 -0
  226. package/src/semantic-code.mjs +179 -0
  227. package/src/semantic-lsp-backend.mjs +183 -0
  228. package/src/semantic-lsp-config.mjs +112 -0
  229. package/src/tool-surface-ledger.mjs +92 -0
  230. package/src/version.mjs +1 -1
  231. package/test/audit-verify.test.mjs +1 -1
  232. package/test/autonomous-action-reconcile.test.mjs +106 -0
  233. package/test/autonomous-adversarial.test.mjs +149 -6
  234. package/test/autonomous-context-engine.test.mjs +181 -0
  235. package/test/autonomous-live-state.test.mjs +27 -0
  236. package/test/autonomous-local-supervisor.test.mjs +403 -0
  237. package/test/autonomous-loop-state.test.mjs +126 -0
  238. package/test/autonomous-loop-v2.test.mjs +105 -0
  239. package/test/autonomous-loop.test.mjs +79 -1
  240. package/test/autonomous-output-contract.test.mjs +54 -0
  241. package/test/autonomous-plan.test.mjs +101 -0
  242. package/test/autonomous-progress.test.mjs +106 -0
  243. package/test/autonomous-r34-e2e.test.mjs +338 -0
  244. package/test/autonomous-runtime.test.mjs +3 -3
  245. package/test/autonomous-supervisor-integration.test.mjs +48 -3
  246. package/test/capability-benchmark-runner.test.mjs +49 -0
  247. package/test/capability-benchmark.test.mjs +47 -0
  248. package/test/cli-entrypoint.test.mjs +12 -0
  249. package/test/coding-catalog-consistency.test.mjs +24 -0
  250. package/test/coding-plane.test.mjs +3 -3
  251. package/test/context-provenance.test.mjs +61 -0
  252. package/test/controller-r27.test.mjs +4 -3
  253. package/test/controller.test.mjs +52 -0
  254. package/test/core.test.mjs +1 -1
  255. package/test/deferred-slot-operation-behavior.test.mjs +5 -1
  256. package/test/deferred-slot-operation.test.mjs +2 -1
  257. package/test/document-adapter.test.mjs +23 -0
  258. package/test/fixtures/lsp-framed-server.mjs +33 -0
  259. package/test/fixtures/semantic/cpp/compile_commands.json +4 -0
  260. package/test/fixtures/semantic/cpp/lib.cpp +2 -0
  261. package/test/fixtures/semantic/cpp/lib.hpp +2 -0
  262. package/test/fixtures/semantic/cpp/main.cpp +2 -0
  263. package/test/fixtures/semantic/python/lib.py +2 -0
  264. package/test/fixtures/semantic/python/main.py +2 -0
  265. package/test/fixtures/semantic/rust/Cargo.lock +7 -0
  266. package/test/fixtures/semantic/rust/Cargo.toml +8 -0
  267. package/test/fixtures/semantic/rust/src/lib.rs +3 -0
  268. package/test/fixtures/semantic/rust/src/main.rs +5 -0
  269. package/test/fixtures/semantic/rust/src/math.rs +3 -0
  270. package/test/fixtures/semantic/rust/target/.rustc_info.json +1 -0
  271. package/test/fixtures/semantic/rust/target/CACHEDIR.TAG +3 -0
  272. package/test/fixtures/semantic/rust/target/debug/.cargo-lock +0 -0
  273. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-4c168fa33c79d09c/dep-test-lib-semantic_rust +0 -0
  274. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-4c168fa33c79d09c/invoked.timestamp +1 -0
  275. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-4c168fa33c79d09c/test-lib-semantic_rust +1 -0
  276. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-4c168fa33c79d09c/test-lib-semantic_rust.json +1 -0
  277. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-5dcd474439c54a26/dep-test-bin-semantic_rust_bin +0 -0
  278. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-5dcd474439c54a26/invoked.timestamp +1 -0
  279. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-5dcd474439c54a26/test-bin-semantic_rust_bin +1 -0
  280. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-5dcd474439c54a26/test-bin-semantic_rust_bin.json +1 -0
  281. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-6212ccd976aa3808/dep-lib-semantic_rust +0 -0
  282. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-6212ccd976aa3808/invoked.timestamp +1 -0
  283. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-6212ccd976aa3808/lib-semantic_rust +1 -0
  284. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-6212ccd976aa3808/lib-semantic_rust.json +1 -0
  285. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-d741378dccdef61c/bin-semantic_rust_bin +1 -0
  286. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-d741378dccdef61c/bin-semantic_rust_bin.json +1 -0
  287. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-d741378dccdef61c/dep-bin-semantic_rust_bin +0 -0
  288. package/test/fixtures/semantic/rust/target/debug/.fingerprint/semantic_rust-d741378dccdef61c/invoked.timestamp +1 -0
  289. package/test/fixtures/semantic/rust/target/debug/deps/libsemantic_rust-4c168fa33c79d09c.rmeta +0 -0
  290. package/test/fixtures/semantic/rust/target/debug/deps/libsemantic_rust-6212ccd976aa3808.rmeta +0 -0
  291. package/test/fixtures/semantic/rust/target/debug/deps/libsemantic_rust_bin-5dcd474439c54a26.rmeta +0 -0
  292. package/test/fixtures/semantic/rust/target/debug/deps/libsemantic_rust_bin-d741378dccdef61c.rmeta +0 -0
  293. package/test/fixtures/semantic/rust/target/debug/deps/semantic_rust-4c168fa33c79d09c.d +5 -0
  294. package/test/fixtures/semantic/rust/target/debug/deps/semantic_rust-6212ccd976aa3808.d +5 -0
  295. package/test/fixtures/semantic/rust/target/debug/deps/semantic_rust_bin-5dcd474439c54a26.d +6 -0
  296. package/test/fixtures/semantic/rust/target/debug/deps/semantic_rust_bin-d741378dccdef61c.d +6 -0
  297. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust-1nzlugxi6lq16/s-hmdgo8b6hg-1n6glhc-1qb77z00k06rqw4jdkj92spax/dep-graph.bin +0 -0
  298. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust-1nzlugxi6lq16/s-hmdgo8b6hg-1n6glhc-1qb77z00k06rqw4jdkj92spax/query-cache.bin +0 -0
  299. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust-1nzlugxi6lq16/s-hmdgo8b6hg-1n6glhc-1qb77z00k06rqw4jdkj92spax/work-products.bin +0 -0
  300. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust-1nzlugxi6lq16/s-hmdgo8b6hg-1n6glhc.lock +0 -0
  301. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust-3s436v7g6f5xm/s-hmdgo8b58k-1ekj4lq-9twkpivsqnjon278x20bddozq/dep-graph.bin +0 -0
  302. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust-3s436v7g6f5xm/s-hmdgo8b58k-1ekj4lq-9twkpivsqnjon278x20bddozq/metadata.rmeta +0 -0
  303. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust-3s436v7g6f5xm/s-hmdgo8b58k-1ekj4lq-9twkpivsqnjon278x20bddozq/query-cache.bin +0 -0
  304. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust-3s436v7g6f5xm/s-hmdgo8b58k-1ekj4lq-9twkpivsqnjon278x20bddozq/work-products.bin +0 -0
  305. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust-3s436v7g6f5xm/s-hmdgo8b58k-1ekj4lq.lock +0 -0
  306. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust_bin-1jxcbdeehal7q/s-hmdgo8bxlf-1qr24o3-cmu3jai030no72y8u9eurrnjj/dep-graph.bin +0 -0
  307. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust_bin-1jxcbdeehal7q/s-hmdgo8bxlf-1qr24o3-cmu3jai030no72y8u9eurrnjj/query-cache.bin +0 -0
  308. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust_bin-1jxcbdeehal7q/s-hmdgo8bxlf-1qr24o3-cmu3jai030no72y8u9eurrnjj/work-products.bin +0 -0
  309. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust_bin-1jxcbdeehal7q/s-hmdgo8bxlf-1qr24o3.lock +0 -0
  310. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust_bin-2ocx55p60ni6b/s-hmdgo8bxj8-0ir41qt-diy9mqvc2eoiblmhjs3stcgi3/dep-graph.bin +0 -0
  311. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust_bin-2ocx55p60ni6b/s-hmdgo8bxj8-0ir41qt-diy9mqvc2eoiblmhjs3stcgi3/query-cache.bin +0 -0
  312. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust_bin-2ocx55p60ni6b/s-hmdgo8bxj8-0ir41qt-diy9mqvc2eoiblmhjs3stcgi3/work-products.bin +0 -0
  313. package/test/fixtures/semantic/rust/target/debug/incremental/semantic_rust_bin-2ocx55p60ni6b/s-hmdgo8bxj8-0ir41qt.lock +0 -0
  314. package/test/fixtures/semantic/rust/target/flycheck0/stderr +1 -0
  315. package/test/fixtures/semantic/rust/target/flycheck0/stdout +5 -0
  316. package/test/fixtures/semantic/typescript/lib.ts +3 -0
  317. package/test/fixtures/semantic/typescript/main.ts +2 -0
  318. package/test/fixtures/tool-surface-stdio-server.mjs +14 -0
  319. package/test/helpers/autonomous-r34-fixture.mjs +120 -0
  320. package/test/lsp-stdio-client.test.mjs +72 -0
  321. package/test/multi-file-read.test.mjs +41 -0
  322. package/test/observation-integration.test.mjs +3 -3
  323. package/test/production-docs.test.mjs +48 -0
  324. package/test/prompts-resources.test.mjs +35 -0
  325. package/test/provider-circuit.test.mjs +93 -0
  326. package/test/public-autonomous-ingress-budget.test.mjs +28 -0
  327. package/test/r33-closeout-regression.test.mjs +3 -3
  328. package/test/r33-finalization.test.mjs +19 -16
  329. package/test/release-generation.test.mjs +23 -2
  330. package/test/release-version.test.mjs +24 -17
  331. package/test/remote-r24-catalog.test.mjs +5 -4
  332. package/test/remote-result-journal.test.mjs +58 -0
  333. package/test/remote-session-cli.test.mjs +112 -17
  334. package/test/runtime-self-update.test.mjs +63 -0
  335. package/test/semantic-backend-registry.test.mjs +29 -0
  336. package/test/semantic-code.test.mjs +66 -0
  337. package/test/semantic-lsp-backend.test.mjs +99 -0
  338. package/test/semantic-lsp-config.test.mjs +81 -0
  339. package/test/semantic-lsp-readiness.test.mjs +34 -0
  340. package/test/semantic-lsp-transient-empty.test.mjs +32 -0
  341. package/test/semantic-lsp-transient-null.test.mjs +31 -0
  342. package/test/semantic-multilang.test.mjs +72 -0
  343. package/test/semantic-runtime-routing.test.mjs +32 -0
  344. package/test/semantic-server-config-integration.test.mjs +66 -0
  345. package/test/tool-surface-ledger.test.mjs +59 -0
  346. package/test/tool-surface-snapshot.test.mjs +17 -0
  347. package/test/tracer-bullet.test.mjs +77 -0
@@ -2,7 +2,7 @@
2
2
  [CmdletBinding()]
3
3
  param(
4
4
  [Parameter(Position=0)]
5
- [ValidateSet('menu','start','resume','park','stop','restart','status','url','test','fulltest','toggle','clean','machinetest','armprocess','disarmprocess','processstatus','armhost','disarmhost','hoststatus','hosttest','armcoding','disarmcoding','codingstatus','codingtest','armautonomous','disarmautonomous','autonomousstatus','autonomoustest')]
5
+ [ValidateSet('menu','start','resume','park','stop','restart','status','url','test','fulltest','toggle','clean','machinetest','armprocess','disarmprocess','processstatus','armhost','disarmhost','hoststatus','hosttest','armcoding','disarmcoding','codingstatus','codingtest','armautonomous','disarmautonomous','autonomousstatus','autonomoustest','supervisorstart','supervisorstop','supervisorstatus','supervisorrecover')]
6
6
  [string]$Command = 'menu'
7
7
  )
8
8
 
@@ -44,7 +44,14 @@ function Get-Config {
44
44
  $workspaceRoot = [System.IO.Path]::GetFullPath($workspaceRoot)
45
45
  if (-not (Test-Path -LiteralPath $workspaceRoot -PathType Container)) { Fail "WorkspaceRoot missing: $workspaceRoot" }
46
46
  $cfg['WorkspaceRoot'] = $workspaceRoot
47
- foreach ($name in @('Bridge','Cloud')) {
47
+ if ($cfg.ContainsKey('AutonomousSupervisorEnabled')) {
48
+ if ($cfg.AutonomousSupervisorEnabled -isnot [bool]) { Fail 'AutonomousSupervisorEnabled must be boolean' }
49
+ } else {
50
+ $cfg['AutonomousSupervisorEnabled'] = $false
51
+ }
52
+ $componentNames = @('Bridge','Cloud')
53
+ if ([bool]$cfg.AutonomousSupervisorEnabled) { $componentNames += 'Supervisor' }
54
+ foreach ($name in $componentNames) {
48
55
  $spec = $cfg[$name]
49
56
  if (-not $spec -or -not $spec.ContainsKey('FilePath') -or [string]::IsNullOrWhiteSpace([string]$spec.FilePath)) { Fail "$name FilePath missing" }
50
57
  if (-not $spec.ContainsKey('Arguments')) { Fail "$name Arguments field missing" }
@@ -66,13 +73,14 @@ function Get-Config {
66
73
  if ($dependencyCount -ne 2) { Fail 'deadbyte.named-tunnel.v2 requires exactly cloudflared plus token-file pins' }
67
74
  } else { Fail 'Cloud Transport unsupported' }
68
75
  }
69
- if ($name -eq 'Bridge') {
70
- if (-not $spec.ContainsKey('ScriptPath') -or [string]::IsNullOrWhiteSpace([string]$spec.ScriptPath)) { Fail 'Bridge ScriptPath missing' }
71
- if (-not $spec.ContainsKey('ScriptSha256') -or [string]$spec.ScriptSha256 -cnotmatch '^[0-9a-f]{64}$') { Fail 'Bridge ScriptSha256 invalid' }
76
+ if ($name -in @('Bridge','Supervisor')) {
77
+ if (-not $spec.ContainsKey('ScriptPath') -or [string]::IsNullOrWhiteSpace([string]$spec.ScriptPath)) { Fail "$name ScriptPath missing" }
78
+ if (-not $spec.ContainsKey('ScriptSha256') -or [string]$spec.ScriptSha256 -cnotmatch '^[0-9a-f]{64}$') { Fail "$name ScriptSha256 invalid" }
72
79
  $scriptPath = [System.IO.Path]::GetFullPath([string]$spec.ScriptPath)
73
- if (-not (Test-Path -LiteralPath $scriptPath -PathType Leaf)) { Fail "Bridge ScriptPath missing: $scriptPath" }
80
+ if (-not (Test-Path -LiteralPath $scriptPath -PathType Leaf)) { Fail "$name ScriptPath missing: $scriptPath" }
81
+ if ($name -eq 'Supervisor' -and [System.IO.Path]::GetFileName($scriptPath) -ne 'autonomous-supervisor-host.mjs') { Fail 'Supervisor ScriptPath must target autonomous-supervisor-host.mjs' }
74
82
  $scriptHash = Get-ExecutableHash $scriptPath
75
- if ($scriptHash -ne [string]$spec.ScriptSha256) { Fail "bridge script hash mismatch: expected $($spec.ScriptSha256), found $scriptHash" }
83
+ if ($scriptHash -ne [string]$spec.ScriptSha256) { Fail "$name script hash mismatch: expected $($spec.ScriptSha256), found $scriptHash" }
76
84
  $spec['ScriptPath'] = $scriptPath
77
85
  }
78
86
  }
@@ -131,6 +139,24 @@ function Get-Config {
131
139
  $cfg['CodingPolicyFile'] = ''
132
140
  }
133
141
  if ([bool]$cfg.CodingRuntimeEnabled -and [string]::IsNullOrWhiteSpace([string]$cfg.CodingPolicyFile)) { Fail 'CodingRuntimeEnabled requires CodingPolicyFile' }
142
+ $semanticConfigFile = if ($cfg.ContainsKey('SemanticLspConfigFile')) { [string]$cfg.SemanticLspConfigFile } else { '' }
143
+ $semanticConfigSha = if ($cfg.ContainsKey('SemanticLspConfigSha256')) { ([string]$cfg.SemanticLspConfigSha256).ToLowerInvariant() } else { '' }
144
+ if ([string]::IsNullOrWhiteSpace($semanticConfigFile) -ne [string]::IsNullOrWhiteSpace($semanticConfigSha)) { Fail 'SemanticLspConfigFile and SemanticLspConfigSha256 must be supplied together' }
145
+ if (-not [string]::IsNullOrWhiteSpace($semanticConfigFile)) {
146
+ if (-not [bool]$cfg.CodingRuntimeEnabled) { Fail 'SemanticLspConfigFile requires CodingRuntimeEnabled' }
147
+ if ($semanticConfigSha -cnotmatch '^[0-9a-f]{64}$') { Fail 'SemanticLspConfigSha256 invalid' }
148
+ $semanticConfigFile = [System.IO.Path]::GetFullPath($semanticConfigFile)
149
+ if (-not (Test-Path -LiteralPath $semanticConfigFile -PathType Leaf)) { Fail "SemanticLspConfigFile missing: $semanticConfigFile" }
150
+ $semanticItem = Get-Item -LiteralPath $semanticConfigFile -Force
151
+ if (($semanticItem.Attributes -band [System.IO.FileAttributes]::ReparsePoint) -ne 0) { Fail 'SemanticLspConfigFile must not be a reparse point' }
152
+ $semanticObserved = Get-ExecutableHash $semanticConfigFile
153
+ if ($semanticObserved -ne $semanticConfigSha) { Fail "semantic LSP config SHA-256 mismatch: expected $semanticConfigSha, found $semanticObserved" }
154
+ $cfg['SemanticLspConfigFile'] = $semanticConfigFile
155
+ $cfg['SemanticLspConfigSha256'] = $semanticConfigSha
156
+ } else {
157
+ $cfg['SemanticLspConfigFile'] = ''
158
+ $cfg['SemanticLspConfigSha256'] = ''
159
+ }
134
160
  if ($cfg.ContainsKey('MachineFsRuntimeEnabled')) {
135
161
  if ($cfg.MachineFsRuntimeEnabled -isnot [bool]) { Fail 'MachineFsRuntimeEnabled must be boolean' }
136
162
  } else {
@@ -158,6 +184,7 @@ function Get-Config {
158
184
  }
159
185
  if ([bool]$cfg.AutonomousRuntimeEnabled -and -not [bool]$cfg.CodingRuntimeEnabled) { Fail 'AutonomousRuntimeEnabled requires CodingRuntimeEnabled' }
160
186
  if ([bool]$cfg.AutonomousRuntimeEnabled -and [string]::IsNullOrWhiteSpace([string]$cfg.AutonomousPolicyFile)) { Fail 'AutonomousRuntimeEnabled requires AutonomousPolicyFile' }
187
+ if ([bool]$cfg.AutonomousSupervisorEnabled -and -not [bool]$cfg.AutonomousRuntimeEnabled) { Fail 'AutonomousSupervisorEnabled requires AutonomousRuntimeEnabled' }
161
188
  if ([int]$cfg.StartTimeoutSeconds -lt 1 -or [int]$cfg.StartTimeoutSeconds -gt 120) { Fail 'StartTimeoutSeconds out of range' }
162
189
  if ([int]$cfg.ProbeTimeoutSeconds -lt 1 -or [int]$cfg.ProbeTimeoutSeconds -gt 15) { Fail 'ProbeTimeoutSeconds out of range' }
163
190
  return $cfg
@@ -264,7 +291,7 @@ function Test-OwnedInstance([string]$Name) {
264
291
  if (-not $ledger) { return [pscustomobject]@{ Name=$Name; Alive=$false; Reason='no-ledger'; Ledger=$null; Observation=$null } }
265
292
  if ($ledger.PSObject.Properties.Name -contains 'corrupt' -and $ledger.corrupt -eq $true) { return [pscustomobject]@{ Name=$Name; Alive=$false; Reason='corrupt-ledger'; Ledger=$ledger; Observation=$null } }
266
293
  if ($ledger.schema -ne $ControllerSchema -or -not $ledger.instance_nonce) { return [pscustomobject]@{ Name=$Name; Alive=$false; Reason='ledger-schema'; Ledger=$ledger; Observation=$null } }
267
- if ($Name -eq 'Bridge') {
294
+ if ($Name -in @('Bridge','Supervisor')) {
268
295
  if (-not ($ledger.PSObject.Properties.Name -contains 'script_path') -or -not ($ledger.PSObject.Properties.Name -contains 'script_sha256')) {
269
296
  return [pscustomobject]@{ Name=$Name; Alive=$false; Reason='ledger-schema'; Ledger=$ledger; Observation=$null }
270
297
  }
@@ -306,8 +333,8 @@ function Write-Ledger([string]$Name, $Observation, [string]$Nonce, $Spec = $null
306
333
  image_path = [string]$Observation.image_path
307
334
  image_sha256 = [string]$Observation.image_sha256
308
335
  }
309
- if ($Name -eq 'Bridge') {
310
- if (-not $Spec) { Fail 'Bridge ledger requires launch specification' }
336
+ if ($Name -in @('Bridge','Supervisor')) {
337
+ if (-not $Spec) { Fail "$Name ledger requires launch specification" }
311
338
  $body['script_path'] = [string]$Spec.ScriptPath
312
339
  $body['script_sha256'] = [string]$Spec.ScriptSha256
313
340
  }
@@ -337,9 +364,9 @@ function Start-OwnedComponent([string]$Name, $Spec, $Cfg = $null) {
337
364
  $componentExecutableHash = Get-ExecutableHash ([string]$Spec.FilePath)
338
365
  if ($componentExecutableHash -ne [string]$Spec.FileSha256) { Fail "$Name executable hash mismatch before start: expected $($Spec.FileSha256), found $componentExecutableHash" }
339
366
  Assert-ComponentDependencies $Name $Spec 'before start'
340
- if ($Name -eq 'Bridge') {
341
- $bridgeScriptHash = Get-ExecutableHash ([string]$Spec.ScriptPath)
342
- if ($bridgeScriptHash -ne [string]$Spec.ScriptSha256) { Fail "bridge script hash mismatch before start: expected $($Spec.ScriptSha256), found $bridgeScriptHash" }
367
+ if ($Name -in @('Bridge','Supervisor')) {
368
+ $scriptHash = Get-ExecutableHash ([string]$Spec.ScriptPath)
369
+ if ($scriptHash -ne [string]$Spec.ScriptSha256) { Fail "$Name script hash mismatch before start: expected $($Spec.ScriptSha256), found $scriptHash" }
343
370
  }
344
371
  $args = [string]$Spec.Arguments
345
372
  $start = @{ FilePath=[string]$Spec.FilePath; WorkingDirectory=[string]$Spec.WorkingDirectory; PassThru=$true; WindowStyle='Hidden'; RedirectStandardOutput=$stdout; RedirectStandardError=$stderr }
@@ -368,10 +395,20 @@ function Start-OwnedComponent([string]$Name, $Spec, $Cfg = $null) {
368
395
  $previousObservationRuntimeEnv = $env:DEADBYTE_OBSERVATION_RUNTIME
369
396
  $hadCodingPolicyEnv = Test-Path Env:DEADBYTE_CODING_POLICY
370
397
  $previousCodingPolicyEnv = $env:DEADBYTE_CODING_POLICY
398
+ $hadSemanticConfigEnv = Test-Path Env:DEADBYTE_SEMANTIC_LSP_CONFIG
399
+ $previousSemanticLspConfigEnv = $env:DEADBYTE_SEMANTIC_LSP_CONFIG
400
+ $hadSemanticConfigShaEnv = Test-Path Env:DEADBYTE_SEMANTIC_LSP_CONFIG_SHA256
401
+ $previousSemanticLspConfigShaEnv = $env:DEADBYTE_SEMANTIC_LSP_CONFIG_SHA256
371
402
  $hadAutonomousRuntimeEnv = Test-Path Env:DEADBYTE_AUTONOMOUS_RUNTIME
372
403
  $previousAutonomousRuntimeEnv = $env:DEADBYTE_AUTONOMOUS_RUNTIME
373
404
  $hadAutonomousPolicyEnv = Test-Path Env:DEADBYTE_AUTONOMOUS_POLICY
374
405
  $previousAutonomousPolicyEnv = $env:DEADBYTE_AUTONOMOUS_POLICY
406
+ $hadSupervisorOnceEnv = Test-Path Env:DEADBYTE_SUPERVISOR_ONCE
407
+ $previousSupervisorOnceEnv = $env:DEADBYTE_SUPERVISOR_ONCE
408
+ $hadSupervisorMarkerEnv = Test-Path Env:DEADBYTE_SUPERVISOR_MARKER
409
+ $previousSupervisorMarkerEnv = $env:DEADBYTE_SUPERVISOR_MARKER
410
+ $hadAutonomousSupervisorModeEnv = Test-Path Env:DEADBYTE_AUTONOMOUS_SUPERVISOR_MODE
411
+ $previousAutonomousSupervisorModeEnv = $env:DEADBYTE_AUTONOMOUS_SUPERVISOR_MODE
375
412
  try {
376
413
  if ($Name -eq 'Bridge' -and $Cfg) {
377
414
  $env:DEADBYTE_AUDIT_RUNTIME = '1'
@@ -389,13 +426,39 @@ function Start-OwnedComponent([string]$Name, $Spec, $Cfg = $null) {
389
426
  if (-not [string]::IsNullOrWhiteSpace([string]$Cfg.CodingPolicyFile)) {
390
427
  $env:DEADBYTE_CODING_POLICY = [string]$Cfg.CodingPolicyFile
391
428
  }
429
+ if (-not [string]::IsNullOrWhiteSpace([string]$Cfg.SemanticLspConfigFile)) {
430
+ $env:DEADBYTE_SEMANTIC_LSP_CONFIG = [string]$Cfg.SemanticLspConfigFile
431
+ $env:DEADBYTE_SEMANTIC_LSP_CONFIG_SHA256 = [string]$Cfg.SemanticLspConfigSha256
432
+ } else {
433
+ Remove-Item Env:DEADBYTE_SEMANTIC_LSP_CONFIG -ErrorAction SilentlyContinue
434
+ Remove-Item Env:DEADBYTE_SEMANTIC_LSP_CONFIG_SHA256 -ErrorAction SilentlyContinue
435
+ }
392
436
  $env:DEADBYTE_AUTONOMOUS_RUNTIME = if ([bool]$Cfg.AutonomousRuntimeEnabled) { '1' } else { '0' }
437
+ $env:DEADBYTE_AUTONOMOUS_SUPERVISOR_MODE = if ([bool]$Cfg.AutonomousSupervisorEnabled) { 'external' } else { 'in_process' }
393
438
  if (-not [string]::IsNullOrWhiteSpace([string]$Cfg.AutonomousPolicyFile)) {
394
439
  $env:DEADBYTE_AUTONOMOUS_POLICY = [string]$Cfg.AutonomousPolicyFile
395
440
  }
396
441
  if (-not [string]::IsNullOrWhiteSpace([string]$Cfg.HostPolicyFile)) {
397
442
  $env:DEADBYTE_PRIVILEGED_POLICY = [string]$Cfg.HostPolicyFile
398
443
  }
444
+ } elseif ($Name -eq 'Supervisor' -and $Cfg) {
445
+ Remove-Item Env:DEADBYTE_AUDIT_RUNTIME -ErrorAction SilentlyContinue
446
+ Remove-Item Env:DEADBYTE_PRIVILEGED_POLICY -ErrorAction SilentlyContinue
447
+ Remove-Item Env:DEADBYTE_MACHINE_RUNTIME -ErrorAction SilentlyContinue
448
+ Remove-Item Env:DEADBYTE_AGENT_RUNTIME -ErrorAction SilentlyContinue
449
+ Remove-Item Env:DEADBYTE_PROCESS_RUNTIME -ErrorAction SilentlyContinue
450
+ Remove-Item Env:DEADBYTE_PROCESS_POLICY -ErrorAction SilentlyContinue
451
+ Remove-Item Env:DEADBYTE_MACHINE_FS_RUNTIME -ErrorAction SilentlyContinue
452
+ Remove-Item Env:DEADBYTE_OBSERVATION_RUNTIME -ErrorAction SilentlyContinue
453
+ Remove-Item Env:DEADBYTE_SEMANTIC_LSP_CONFIG -ErrorAction SilentlyContinue
454
+ Remove-Item Env:DEADBYTE_SEMANTIC_LSP_CONFIG_SHA256 -ErrorAction SilentlyContinue
455
+ Remove-Item Env:DEADBYTE_AUTONOMOUS_SUPERVISOR_MODE -ErrorAction SilentlyContinue
456
+ $env:DEADBYTE_CODING_RUNTIME = '1'
457
+ $env:DEADBYTE_AUTONOMOUS_RUNTIME = '1'
458
+ $env:DEADBYTE_CODING_POLICY = [string]$Cfg.CodingPolicyFile
459
+ $env:DEADBYTE_AUTONOMOUS_POLICY = [string]$Cfg.AutonomousPolicyFile
460
+ $env:DEADBYTE_SUPERVISOR_ONCE = '0'
461
+ $env:DEADBYTE_SUPERVISOR_MARKER = Join-Path $RuntimeDir 'autonomous-supervisor-owner.json'
399
462
  } else {
400
463
  Remove-Item Env:DEADBYTE_AUDIT_RUNTIME -ErrorAction SilentlyContinue
401
464
  }
@@ -425,10 +488,20 @@ function Start-OwnedComponent([string]$Name, $Spec, $Cfg = $null) {
425
488
  else { Remove-Item Env:DEADBYTE_OBSERVATION_RUNTIME -ErrorAction SilentlyContinue }
426
489
  if ($hadCodingPolicyEnv) { $env:DEADBYTE_CODING_POLICY = $previousCodingPolicyEnv }
427
490
  else { Remove-Item Env:DEADBYTE_CODING_POLICY -ErrorAction SilentlyContinue }
491
+ if ($hadSemanticConfigEnv) { $env:DEADBYTE_SEMANTIC_LSP_CONFIG = $previousSemanticLspConfigEnv }
492
+ else { Remove-Item Env:DEADBYTE_SEMANTIC_LSP_CONFIG -ErrorAction SilentlyContinue }
493
+ if ($hadSemanticConfigShaEnv) { $env:DEADBYTE_SEMANTIC_LSP_CONFIG_SHA256 = $previousSemanticLspConfigShaEnv }
494
+ else { Remove-Item Env:DEADBYTE_SEMANTIC_LSP_CONFIG_SHA256 -ErrorAction SilentlyContinue }
428
495
  if ($hadAutonomousRuntimeEnv) { $env:DEADBYTE_AUTONOMOUS_RUNTIME = $previousAutonomousRuntimeEnv }
429
496
  else { Remove-Item Env:DEADBYTE_AUTONOMOUS_RUNTIME -ErrorAction SilentlyContinue }
430
497
  if ($hadAutonomousPolicyEnv) { $env:DEADBYTE_AUTONOMOUS_POLICY = $previousAutonomousPolicyEnv }
431
498
  else { Remove-Item Env:DEADBYTE_AUTONOMOUS_POLICY -ErrorAction SilentlyContinue }
499
+ if ($hadSupervisorOnceEnv) { $env:DEADBYTE_SUPERVISOR_ONCE = $previousSupervisorOnceEnv }
500
+ else { Remove-Item Env:DEADBYTE_SUPERVISOR_ONCE -ErrorAction SilentlyContinue }
501
+ if ($hadSupervisorMarkerEnv) { $env:DEADBYTE_SUPERVISOR_MARKER = $previousSupervisorMarkerEnv }
502
+ else { Remove-Item Env:DEADBYTE_SUPERVISOR_MARKER -ErrorAction SilentlyContinue }
503
+ if ($hadAutonomousSupervisorModeEnv) { $env:DEADBYTE_AUTONOMOUS_SUPERVISOR_MODE = $previousAutonomousSupervisorModeEnv }
504
+ else { Remove-Item Env:DEADBYTE_AUTONOMOUS_SUPERVISOR_MODE -ErrorAction SilentlyContinue }
432
505
  }
433
506
  Start-Sleep -Milliseconds 150
434
507
  $obs = Get-ProcessObservation ([int]$proc.Id)
@@ -885,6 +958,53 @@ function Show-AutonomousStatus($Cfg) {
885
958
  return $a
886
959
  }
887
960
 
961
+ function Get-AutonomousSupervisorStatus($Cfg) {
962
+ if (-not [bool]$Cfg.AutonomousSupervisorEnabled) { return [pscustomobject]@{ Configured=$false; Running=$false; Reason='disabled'; Owned=$null } }
963
+ $owned = Test-OwnedInstance 'Supervisor'
964
+ [pscustomobject]@{ Configured=$true; Running=[bool]$owned.Alive; Reason=[string]$owned.Reason; Owned=$owned }
965
+ }
966
+
967
+ function Start-AutonomousSupervisor($Cfg) {
968
+ if (-not [bool]$Cfg.AutonomousSupervisorEnabled) { Fail 'autonomous supervisor is disabled by trusted config' }
969
+ if (-not [bool]$Cfg.AutonomousRuntimeEnabled) { Fail 'autonomous supervisor requires AutonomousRuntimeEnabled' }
970
+ Start-OwnedComponent 'Supervisor' $Cfg.Supervisor $Cfg | Out-Null
971
+ $status = Get-AutonomousSupervisorStatus $Cfg
972
+ if (-not $status.Running) { Fail "autonomous supervisor start failed: $($status.Reason)" }
973
+ return $status
974
+ }
975
+
976
+ function Stop-AutonomousSupervisor($Cfg) {
977
+ if (-not [bool]$Cfg.AutonomousSupervisorEnabled) { return Get-AutonomousSupervisorStatus $Cfg }
978
+ Stop-OwnedComponent 'Supervisor'
979
+ return Get-AutonomousSupervisorStatus $Cfg
980
+ }
981
+
982
+ function Show-AutonomousSupervisorStatus($Cfg) {
983
+ $s = Get-AutonomousSupervisorStatus $Cfg
984
+ $label = if (-not $s.Configured) { 'DISABLED' } elseif ($s.Running) { 'RUNNING' } else { 'STOPPED' }
985
+ Write-Host ("Loop supervisor: {0} [{1}]" -f $label, $s.Reason)
986
+ return $s
987
+ }
988
+
989
+ function Recover-AutonomousSupervisor($Cfg) {
990
+ if (-not [bool]$Cfg.AutonomousSupervisorEnabled) { Fail 'autonomous supervisor recovery requires AutonomousSupervisorEnabled' }
991
+ Start-Deadbyte $Cfg | Out-Null
992
+ try { Disarm-Autonomous $Cfg -Quiet } catch {}
993
+ try { Disarm-Coding $Cfg } catch {}
994
+ try { Disarm-Process $Cfg } catch {}
995
+ try { Disarm-Host $Cfg } catch {}
996
+ $runtime = Get-ObservedState $Cfg
997
+ if ($runtime.State -ne 'ONLINE') { Fail "supervisor recovery requires ONLINE runtime; observed $($runtime.State)" }
998
+ $process = Get-ProcessGrantStatus $Cfg
999
+ $coding = Get-CodingLeaseStatus $Cfg
1000
+ $autonomous = Get-AutonomousLeaseStatus $Cfg
1001
+ $host = Get-HostArmStatus $Cfg
1002
+ if ($process.Armed -or $coding.Armed -or $autonomous.Armed -or $host.Armed) { Fail 'supervisor recovery final authority is not fully disarmed' }
1003
+ $supervisor = Start-AutonomousSupervisor $Cfg
1004
+ Write-Host 'AUTONOMOUS SUPERVISOR RECOVERY PASS: runtime ONLINE; privileged planes DISARMED.'
1005
+ return [pscustomobject]@{ Runtime=$runtime; Supervisor=$supervisor; Process=$process; Coding=$coding; Autonomous=$autonomous; Host=$host }
1006
+ }
1007
+
888
1008
  function Show-State($Cfg) {
889
1009
  $s = Get-ObservedState $Cfg
890
1010
  $bp = if ($s.Bridge.Alive) { $s.Bridge.Ledger.pid } else { '-' }
@@ -902,6 +1022,7 @@ function Show-State($Cfg) {
902
1022
  Write-Host ("Machine FS rt : {0}" -f $(if ([bool]$Cfg.MachineFsRuntimeEnabled) { 'ENABLED' } else { 'DISABLED' }))
903
1023
  Write-Host ("Observation rt: {0}" -f $(if ([bool]$Cfg.ObservationRuntimeEnabled) { 'ENABLED' } else { 'DISABLED' }))
904
1024
  Write-Host ("Autonomous rt : {0}" -f $(if ([bool]$Cfg.AutonomousRuntimeEnabled) { 'ENABLED' } else { 'DISABLED' }))
1025
+ Show-AutonomousSupervisorStatus $Cfg | Out-Null
905
1026
  Show-ProcessStatus $Cfg | Out-Null
906
1027
  Show-CodingStatus $Cfg | Out-Null
907
1028
  Show-AutonomousStatus $Cfg | Out-Null
@@ -974,7 +1095,7 @@ function Invoke-AutonomousSmoke($Cfg) {
974
1095
 
975
1096
  function Clean-Stale {
976
1097
  Ensure-Directory $RuntimeDir
977
- foreach ($name in @('Bridge','Cloud')) {
1098
+ foreach ($name in @('Bridge','Cloud','Supervisor')) {
978
1099
  $o = Test-OwnedInstance $name
979
1100
  if ($o.Ledger -and -not $o.Alive -and $o.Reason -eq 'process-missing') {
980
1101
  Remove-Item -LiteralPath (Ledger-Path $name) -Force -ErrorAction SilentlyContinue
@@ -989,11 +1110,11 @@ function Run-Command([string]$Name) {
989
1110
  Assert-ControllerRootBound $cfg
990
1111
  Ensure-Directory $RuntimeDir; Ensure-Directory $LogDir
991
1112
  switch ($Name) {
992
- 'start' { Start-Deadbyte $cfg | Out-Null; Show-State $cfg | Out-Null }
993
- 'resume' { Start-Deadbyte $cfg | Out-Null; Show-State $cfg | Out-Null }
1113
+ 'start' { Start-Deadbyte $cfg | Out-Null; if ([bool]$cfg.AutonomousSupervisorEnabled) { Start-AutonomousSupervisor $cfg | Out-Null }; Show-State $cfg | Out-Null }
1114
+ 'resume' { Start-Deadbyte $cfg | Out-Null; if ([bool]$cfg.AutonomousSupervisorEnabled) { Start-AutonomousSupervisor $cfg | Out-Null }; Show-State $cfg | Out-Null }
994
1115
  'park' { Park-Deadbyte $cfg | Out-Null; Show-State $cfg | Out-Null }
995
- 'stop' { Stop-Deadbyte $cfg | Out-Null; Show-State $cfg | Out-Null }
996
- 'restart' { Stop-Deadbyte $cfg | Out-Null; Start-Deadbyte $cfg | Out-Null; Show-State $cfg | Out-Null }
1116
+ 'stop' { if ([bool]$cfg.AutonomousSupervisorEnabled) { Stop-AutonomousSupervisor $cfg | Out-Null }; Stop-Deadbyte $cfg | Out-Null; Show-State $cfg | Out-Null }
1117
+ 'restart' { if ([bool]$cfg.AutonomousSupervisorEnabled) { Stop-AutonomousSupervisor $cfg | Out-Null }; Stop-Deadbyte $cfg | Out-Null; Start-Deadbyte $cfg | Out-Null; if ([bool]$cfg.AutonomousSupervisorEnabled) { Start-AutonomousSupervisor $cfg | Out-Null }; Show-State $cfg | Out-Null }
997
1118
  'status' { Show-State $cfg | Out-Null }
998
1119
  'url' { $u=Get-CurrentUrl $cfg; if (-not $u) { Fail 'URL unavailable' }; Write-Output $u }
999
1120
  'test' { Invoke-Smoke $cfg $false }
@@ -1016,6 +1137,10 @@ function Run-Command([string]$Name) {
1016
1137
  'disarmautonomous' { Disarm-Autonomous $cfg; Show-AutonomousStatus $cfg | Out-Null }
1017
1138
  'autonomousstatus' { Show-AutonomousStatus $cfg | Out-Null }
1018
1139
  'autonomoustest' { Invoke-AutonomousSmoke $cfg }
1140
+ 'supervisorstart' { Start-AutonomousSupervisor $cfg | Out-Null; Show-AutonomousSupervisorStatus $cfg | Out-Null }
1141
+ 'supervisorstop' { Stop-AutonomousSupervisor $cfg | Out-Null; Show-AutonomousSupervisorStatus $cfg | Out-Null }
1142
+ 'supervisorstatus' { Show-AutonomousSupervisorStatus $cfg | Out-Null }
1143
+ 'supervisorrecover' { Recover-AutonomousSupervisor $cfg | Out-Null; Show-State $cfg | Out-Null }
1019
1144
  default { Fail "unknown command '$Name'" }
1020
1145
  }
1021
1146
  }
@@ -1026,7 +1151,7 @@ while ($true) {
1026
1151
  Clear-Host
1027
1152
  $cfg = Get-Config
1028
1153
  Assert-ControllerRootBound $cfg
1029
- Write-Host 'DEADBYTE MCP ON-DEMAND CONTROLLER V0.8.10 / R33'
1154
+ Write-Host 'DEADBYTE MCP ON-DEMAND CONTROLLER V0.9.0 / R35'
1030
1155
  Write-Host '======================================'
1031
1156
  Show-State $cfg | Out-Null
1032
1157
  Write-Host ''
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "schema": "deadbyte.process-policy.v1",
3
3
  "enabled": true,
4
- "grant_file": "C:\\Users\\DEADBYTE\\Downloads\\deadbyte-mcp-r33-final-candidate-v2\\controller\\runtime\\process-grant.json",
5
- "state_dir": "C:\\Users\\DEADBYTE\\Downloads\\deadbyte-mcp-r33-final-candidate-v2\\controller\\runtime\\process-state",
4
+ "grant_file": "D:\\Projects\\deadbyte-mcp-r35-release-v0.9.0-r2\\controller\\runtime\\process-grant.json",
5
+ "state_dir": "D:\\Projects\\deadbyte-mcp-r35-release-v0.9.0-r2\\controller\\runtime\\process-state",
6
6
  "native_host": {
7
- "path": "C:\\Users\\DEADBYTE\\Downloads\\deadbyte-mcp-r33-final-candidate-v2\\bin\\deadbyte-process-host.exe",
8
- "sha256": "6e8ca7085495a04b9c56e3f7b17142a0e866b1571475ef6a6d90d87f544aab41"
7
+ "path": "D:\\Projects\\deadbyte-mcp-r35-release-v0.9.0-r2\\bin\\deadbyte-process-host.exe",
8
+ "sha256": "9fa67a2aa66a40b67828dd537ca24b1feb118d386955b81b2df2e1bf5b7b57d7"
9
9
  },
10
10
  "roots": {
11
11
  "core": {
12
- "path": "C:\\Users\\DEADBYTE\\Downloads\\deadbyte-mcp-r33-final-candidate-v2",
12
+ "path": "D:\\Projects\\deadbyte-mcp-r35-release-v0.9.0-r2",
13
13
  "deny_paths": [
14
14
  "node_modules",
15
15
  "controller/runtime",
@@ -0,0 +1,95 @@
1
+ {
2
+ "schema": "deadbyte.semantic-lsp-config.v1",
3
+ "servers": [
4
+ {
5
+ "id": "pyright",
6
+ "language_id": "python",
7
+ "extensions": [".py"],
8
+ "executable_path": "C:\\Program Files\\nodejs\\node.exe",
9
+ "executable_sha256": "9a4eb5f1c29c6a2e93852ead46b999e284a6a5ca8bab4d4e241d587d025a52de",
10
+ "args": ["D:\\Projects\\deadbyte-r35-tools\\pyright-1.1.414\\node_modules\\pyright\\langserver.index.js", "--stdio"],
11
+ "env": {
12
+ "PATH": "C:\\Program Files\\Python311;C:\\Windows\\System32;C:\\Windows",
13
+ "SystemRoot": "C:\\Windows",
14
+ "USERPROFILE": "C:\\Users\\DEADBYTE"
15
+ },
16
+ "dependencies": [
17
+ {"path":"D:\\Projects\\deadbyte-r35-tools\\pyright-1.1.414\\node_modules\\pyright\\langserver.index.js","expected_sha256":"f200762078eb9880faf421a5b30f9ef3055b1d85c6f10780d75db4da8d8499f1"},
18
+ {"path":"D:\\Projects\\deadbyte-r35-tools\\pyright-1.1.414\\node_modules\\pyright\\dist\\pyright-langserver.js","expected_sha256":"467344c79457ec74f7f7b6cb0f52c3c5ebc7ea77bf53edeb6d2dc6217687b507"},
19
+ {"path":"D:\\Projects\\deadbyte-r35-tools\\pyright-1.1.414\\node_modules\\pyright\\dist\\pyright-internal.js","expected_sha256":"41fb260ad72f2a16c5657e1f2fe837104d7529255d0fcd955f48432b276e7cae"},
20
+ {"path":"D:\\Projects\\deadbyte-r35-tools\\pyright-1.1.414\\node_modules\\pyright\\dist\\vendor.js","expected_sha256":"1c691bf9e3fa954dec751ace203beb5591b46a73e3848af5d1ee011d62540798"}
21
+ ],
22
+ "initialization_options": {},
23
+ "request_timeout_ms": 30000,
24
+ "max_message_bytes": 8388608,
25
+ "required": true
26
+ },
27
+ {
28
+ "id": "rust-analyzer",
29
+ "language_id": "rust",
30
+ "extensions": [".rs"],
31
+ "executable_path": "C:\\Users\\DEADBYTE\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\bin\\rust-analyzer.exe",
32
+ "executable_sha256": "d4f688ff66dca6a35d4caee9c39a98b67418dcb942537016ba61c01961930091",
33
+ "args": [],
34
+ "env": {
35
+ "PATH": "C:\\Users\\DEADBYTE\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\bin;C:\\Windows\\System32;C:\\Windows",
36
+ "SystemRoot": "C:\\Windows",
37
+ "USERPROFILE": "C:\\Users\\DEADBYTE",
38
+ "CARGO_HOME": "C:\\Users\\DEADBYTE\\.cargo",
39
+ "RUSTUP_HOME": "C:\\Users\\DEADBYTE\\.rustup"
40
+ },
41
+ "dependencies": [
42
+ {"path":"C:\\Users\\DEADBYTE\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\bin\\cargo.exe","expected_sha256":"dc19c8e6d66802d120bf0696b1924b748bd90f3ca16f21391e54a290ff12b7c5"},
43
+ {"path":"C:\\Users\\DEADBYTE\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\bin\\rustc.exe","expected_sha256":"e3ebbd547ea7b73c034d588ba569602b379f3b05ad1a3b5f8dcfab9d4478d74a"},
44
+ {"path":"C:\\Users\\DEADBYTE\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\libexec\\rust-analyzer-proc-macro-srv.exe","expected_sha256":"3e9e3737a3f05928833ec44fa0bea67bfdb2b5b6bae194edc0fb82565ce04487"}
45
+ ],
46
+ "initialization_options": {},
47
+ "startup_settle_ms": 3000,
48
+ "null_result_retry_ms": 100,
49
+ "null_result_max_attempts": 20,
50
+ "retry_empty_results": true,
51
+ "request_timeout_ms": 60000,
52
+ "max_message_bytes": 8388608,
53
+ "required": true
54
+ },
55
+ {
56
+ "id": "clangd",
57
+ "language_id": "cpp",
58
+ "extensions": [".c", ".h", ".cc", ".cpp", ".cxx", ".hpp", ".hh", ".hxx"],
59
+ "executable_path": "C:\\Program Files\\LLVM\\bin\\clangd.exe",
60
+ "executable_sha256": "91eb3cbb68ca5e50663126705127703d9c94ae0fc0d267e6602d38bcfcb74524",
61
+ "args": ["--background-index=false"],
62
+ "env": {
63
+ "PATH": "C:\\Program Files\\LLVM\\bin;C:\\Windows\\System32;C:\\Windows",
64
+ "SystemRoot": "C:\\Windows",
65
+ "USERPROFILE": "C:\\Users\\DEADBYTE"
66
+ },
67
+ "dependencies": [],
68
+ "initialization_options": {},
69
+ "null_result_retry_ms": 100,
70
+ "null_result_max_attempts": 10,
71
+ "retry_empty_results": true,
72
+ "request_timeout_ms": 30000,
73
+ "max_message_bytes": 8388608,
74
+ "required": true
75
+ },
76
+ {
77
+ "id": "gopls",
78
+ "language_id": "go",
79
+ "extensions": [".go"],
80
+ "executable_path": "D:\\Projects\\deadbyte-r35-tools\\gopls-v0.23.0\\gopls.exe",
81
+ "executable_sha256": "1e38a0b17f7b453f9228e68a907642de9c2f95852e9b83b1e048d68263b7270b",
82
+ "args": [],
83
+ "env": {
84
+ "PATH": "D:\\Projects\\deadbyte-r35-tools\\go1.27.1\\bin;C:\\Windows\\System32;C:\\Windows",
85
+ "SystemRoot": "C:\\Windows",
86
+ "USERPROFILE": "C:\\Users\\DEADBYTE"
87
+ },
88
+ "dependencies": [],
89
+ "initialization_options": {},
90
+ "request_timeout_ms": 30000,
91
+ "max_message_bytes": 8388608,
92
+ "required": false
93
+ }
94
+ ]
95
+ }
@@ -0,0 +1,29 @@
1
+ # ADR-0001: Production baseline seams
2
+
3
+ Status: accepted for R34 production baseline.
4
+
5
+ ## Decision
6
+
7
+ DEADBYTE MCP is one product with explicit seams rather than one giant privileged agent process.
8
+
9
+ - **protocol**: MCP 2026-07-28 negotiation, strict schemas, stdio first, remote transport through the pinned Bridge/tunnel path.
10
+ - **tools**: small typed capabilities with bounded input/output and structured errors.
11
+ - **filesystem**: root-relative policy, deny paths, traversal/symlink defenses, atomic preconditioned mutation.
12
+ - **process**: owned sessions only, bounded output, fixed policy actions, cancellation/termination, no caller-supplied shell command string.
13
+ - **semantic**: compiler/language-service navigation scoped to coding roots; semantic mutation delegates to signed coding-plane edit primitives.
14
+ - **remote**: authenticated persistent device path with guardian cleanup, immutable release identity, rollback, and restore.
15
+ - **policy**: process, coding, autonomous, and host authority are independently armed/revoked and cannot widen configured roots or executables.
16
+ - **telemetry**: structured audit records and signed receipts retain forensic detail; the default human console is compact and never dumps payloads or SHA text unless verbose diagnostics are explicitly requested.
17
+ - **autonomous loop**: one durable plan/execute/replan loop with authenticated journal state and an out-of-band Loop Supervisor. Failure changes the hypothesis; blind retries are prohibited.
18
+
19
+ ## Context strategy
20
+
21
+ CONTEXT.md is the domain-language source of truth. MCP resources disclose it on demand. Tools return bounded projections, pagination, hashes/receipts where machine verification needs them, and compact user logs where humans need status. Whole-repository prompt stuffing is explicitly rejected.
22
+
23
+ ## Tracer bullet
24
+
25
+ The minimum production path is a real MCP client that negotiates the protocol, lists tools, reads a source file, performs an exact surgical edit under a file-digest precondition, runs a pinned command, verifies signed receipts, and reads the committed result back. The release gate must keep this path green.
26
+
27
+ ## Consequences
28
+
29
+ This architecture accepts more explicit policy/evidence plumbing in exchange for reproducible behavior, reversible releases, and smaller failure domains. Semantic coverage may be backend-specific; unsupported languages must fail honestly or use an explicitly configured pinned adapter rather than silently falling back to grep and calling it semantic navigation.
@@ -1,4 +1,4 @@
1
- # DEADBYTE MCP V0.8.10 / R33 ARCHITECTURE
1
+ # DEADBYTE MCP V0.9.0 / R35 ARCHITECTURE
2
2
 
3
3
  ```mermaid
4
4
  flowchart TD
@@ -10,7 +10,7 @@ flowchart TD
10
10
  D --> F[Optional Host 3 Tools]
11
11
  D --> G[Optional Agent 7 Tools]
12
12
  D --> PR[Optional Process 6 Tools]
13
- D --> V[Optional Coding 17 Tools]
13
+ D --> V[Optional Coding 22 Tools]
14
14
  D --> MF[Optional Machine FS 8 Tools]
15
15
  D --> OB[Optional Observation 6 Tools]
16
16
  D --> AA[Optional Autonomous 12 Tools]
@@ -42,8 +42,9 @@ The lifecycle controller is not execution authority. It starts, parks, resumes,
42
42
  observes, or stops verified owned processes and feature-gates the agent catalog;
43
43
  it cannot manufacture arbitrary MCP capabilities. The npx foreground `remote` session is an
44
44
  operator-side orchestrator over existing controller commands: it acquires the four explicit
45
- standing grants in dependency order, verifies their observed ARMED state, tails only newly appended
46
- audit/runtime logs, and revokes all four grants plus parks the Bridge on graceful session exit.
45
+ standing grants in dependency order, verifies their observed ARMED state, shows compact completed-tool
46
+ results by default, and revokes all four grants plus parks the Bridge on graceful session exit. Detailed
47
+ audit/runtime and Bridge records remain available through `remote --verbose` and the persistent evidence store.
47
48
  A detached guardian is bound to the foreground owner by a random session nonce. The v2 marker
48
49
  records owner PID, guardian PID, and nonce; if the owner is hard-killed before graceful cleanup,
49
50
  the guardian independently invokes only the fixed revoke+park controller sequence and removes the
@@ -54,7 +55,7 @@ invocation may recover a stale owner only when no live guardian remains.
54
55
 
55
56
  Only complete combinations of base plus optional machine, host, agent, process, coding,
56
57
  machine-filesystem, observation, and autonomous surfaces are valid at the HTTP bridge. A fully
57
- enabled R33 runtime exposes exactly 68 tools. Process authority is independently granted;
58
+ enabled R34 runtime exposes exactly 73 tools. Process authority is independently granted;
58
59
  machine-filesystem and observation reuse coding-policy roots; autonomous requires the complete
59
60
  coding surface. Partial, dependency-invalid, unknown, or extra catalogs fail closed.
60
61