@alpsckr/unitycli 0.4.3 → 0.4.5

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 (425) hide show
  1. package/README.md +5 -5
  2. package/contracts/command-contract.json +109 -217
  3. package/contracts/package-files.json +374 -294
  4. package/contracts/stable-session/direct-call-semantics.json +8 -2
  5. package/contracts/tool-completion-contract.json +148 -672
  6. package/dist/bridge/admission.d.ts +17 -1
  7. package/dist/bridge/admission.js +2 -0
  8. package/dist/bridge/admission.js.map +1 -1
  9. package/dist/bridge/domains/asset.js +3 -1
  10. package/dist/bridge/domains/asset.js.map +1 -1
  11. package/dist/bridge/domains/camera.js +39 -7
  12. package/dist/bridge/domains/camera.js.map +1 -1
  13. package/dist/bridge/domains/console.js +2 -1
  14. package/dist/bridge/domains/console.js.map +1 -1
  15. package/dist/bridge/domains/doctor.d.ts +3 -0
  16. package/dist/bridge/domains/doctor.js +8 -0
  17. package/dist/bridge/domains/doctor.js.map +1 -0
  18. package/dist/bridge/domains/editor.js +0 -4
  19. package/dist/bridge/domains/editor.js.map +1 -1
  20. package/dist/bridge/domains/game-object.js +4 -12
  21. package/dist/bridge/domains/game-object.js.map +1 -1
  22. package/dist/bridge/domains/graphics.js +1 -16
  23. package/dist/bridge/domains/graphics.js.map +1 -1
  24. package/dist/bridge/domains/object.js +3 -0
  25. package/dist/bridge/domains/object.js.map +1 -1
  26. package/dist/bridge/domains/physics.js +1 -2
  27. package/dist/bridge/domains/physics.js.map +1 -1
  28. package/dist/bridge/domains/profiler.js +18 -7
  29. package/dist/bridge/domains/profiler.js.map +1 -1
  30. package/dist/bridge/domains/project-tool.js +4 -0
  31. package/dist/bridge/domains/project-tool.js.map +1 -1
  32. package/dist/bridge/domains/reflection.js +10 -2
  33. package/dist/bridge/domains/reflection.js.map +1 -1
  34. package/dist/bridge/domains/runtime-tool.js +3 -0
  35. package/dist/bridge/domains/runtime-tool.js.map +1 -1
  36. package/dist/bridge/domains/scene.js +3 -8
  37. package/dist/bridge/domains/scene.js.map +1 -1
  38. package/dist/bridge/domains/screenshot.js +30 -6
  39. package/dist/bridge/domains/screenshot.js.map +1 -1
  40. package/dist/bridge/domains/ui.js +3 -1
  41. package/dist/bridge/domains/ui.js.map +1 -1
  42. package/dist/bridge/index.d.ts +5 -5
  43. package/dist/bridge/index.js +6 -9
  44. package/dist/bridge/index.js.map +1 -1
  45. package/dist/bridge/registry.js +3 -5
  46. package/dist/bridge/registry.js.map +1 -1
  47. package/dist/bridge/session-supervisor.d.ts +6 -3
  48. package/dist/bridge/session-supervisor.js +145 -39
  49. package/dist/bridge/session-supervisor.js.map +1 -1
  50. package/dist/bridge/start-diagnostics.d.ts +19 -0
  51. package/dist/bridge/start-diagnostics.js +96 -0
  52. package/dist/bridge/start-diagnostics.js.map +1 -0
  53. package/dist/bridge/types.d.ts +6 -5
  54. package/dist/bridge/types.js +16 -2
  55. package/dist/bridge/types.js.map +1 -1
  56. package/dist/catalog-protocol.d.ts +64 -0
  57. package/dist/catalog-protocol.js +460 -0
  58. package/dist/catalog-protocol.js.map +1 -0
  59. package/dist/cli-commands/command.js +84 -61
  60. package/dist/cli-commands/command.js.map +1 -1
  61. package/dist/cli-commands/extensions.js +70 -50
  62. package/dist/cli-commands/extensions.js.map +1 -1
  63. package/dist/cli-commands/instances.js +1 -1
  64. package/dist/cli-commands/instances.js.map +1 -1
  65. package/dist/cli-commands/package.js +10 -2
  66. package/dist/cli-commands/package.js.map +1 -1
  67. package/dist/cli-process-owners.d.ts +6 -0
  68. package/dist/cli-process-owners.js +27 -0
  69. package/dist/cli-process-owners.js.map +1 -0
  70. package/dist/cli.d.ts +1 -1
  71. package/dist/cli.js +20 -5
  72. package/dist/cli.js.map +1 -1
  73. package/dist/contracts/command-contract.js +14 -4
  74. package/dist/contracts/command-contract.js.map +1 -1
  75. package/dist/doctor.d.ts +4 -6
  76. package/dist/doctor.js +451 -398
  77. package/dist/doctor.js.map +1 -1
  78. package/dist/editor-blocker-observer.d.ts +2 -1
  79. package/dist/editor-blocker-observer.js +40 -13
  80. package/dist/editor-blocker-observer.js.map +1 -1
  81. package/dist/extension-availability.d.ts +27 -9
  82. package/dist/extension-availability.js +96 -56
  83. package/dist/extension-availability.js.map +1 -1
  84. package/dist/extensions/descriptor-loader.d.ts +2 -2
  85. package/dist/extensions/descriptor-loader.js +3 -4
  86. package/dist/extensions/descriptor-loader.js.map +1 -1
  87. package/dist/extensions/index.d.ts +1 -1
  88. package/dist/extensions/index.js +1 -1
  89. package/dist/extensions/index.js.map +1 -1
  90. package/dist/extensions/installer.d.ts +57 -5
  91. package/dist/extensions/installer.js +263 -64
  92. package/dist/extensions/installer.js.map +1 -1
  93. package/dist/extensions/registry.js +3 -5
  94. package/dist/extensions/registry.js.map +1 -1
  95. package/dist/extensions/state-contract.d.ts +11 -0
  96. package/dist/extensions/state-contract.js +50 -0
  97. package/dist/extensions/state-contract.js.map +1 -0
  98. package/dist/instances.d.ts +19 -1
  99. package/dist/instances.js +39 -0
  100. package/dist/instances.js.map +1 -1
  101. package/dist/package-manager.d.ts +0 -24
  102. package/dist/package-manager.js +5 -58
  103. package/dist/package-manager.js.map +1 -1
  104. package/dist/project-tool-discovery.d.ts +5 -2
  105. package/dist/project-tool-discovery.js +22 -18
  106. package/dist/project-tool-discovery.js.map +1 -1
  107. package/dist/runtime-code.js +1 -1
  108. package/dist/runtime-code.js.map +1 -1
  109. package/dist/tool-name.d.ts +4 -0
  110. package/dist/tool-name.js +15 -0
  111. package/dist/tool-name.js.map +1 -0
  112. package/dist/tools/.generated-completion-registry.d.ts +2 -0
  113. package/dist/tools/.generated-completion-registry.js +763 -325
  114. package/dist/tools/.generated-completion-registry.js.map +1 -1
  115. package/dist/tools/.generated-registry.d.ts +6 -11
  116. package/dist/tools/.generated-registry.js +6 -11
  117. package/dist/tools/.generated-registry.js.map +1 -1
  118. package/dist/tools/.generated-schemas.js +11 -16
  119. package/dist/tools/.generated-schemas.js.map +1 -1
  120. package/dist/tools/asset/refresh-status.d.ts +3 -0
  121. package/dist/tools/asset/refresh-status.js +12 -0
  122. package/dist/tools/asset/refresh-status.js.map +1 -0
  123. package/dist/tools/asset/refresh.js +7 -3
  124. package/dist/tools/asset/refresh.js.map +1 -1
  125. package/dist/tools/build/player-status.d.ts +3 -0
  126. package/dist/tools/build/player-status.js +12 -0
  127. package/dist/tools/build/player-status.js.map +1 -0
  128. package/dist/tools/build/run.js +1 -1
  129. package/dist/tools/build/run.js.map +1 -1
  130. package/dist/tools/catalog-control.d.ts +22 -0
  131. package/dist/tools/catalog-control.js +335 -0
  132. package/dist/tools/catalog-control.js.map +1 -0
  133. package/dist/tools/catalog.d.ts +7 -9
  134. package/dist/tools/catalog.js +66 -45
  135. package/dist/tools/catalog.js.map +1 -1
  136. package/dist/tools/commands.d.ts +1 -1
  137. package/dist/tools/commands.js +44 -11
  138. package/dist/tools/commands.js.map +1 -1
  139. package/dist/tools/define.js +3 -2
  140. package/dist/tools/define.js.map +1 -1
  141. package/dist/tools/dispatcher.d.ts +53 -6
  142. package/dist/tools/dispatcher.js +277 -108
  143. package/dist/tools/dispatcher.js.map +1 -1
  144. package/dist/tools/editor/compile.js +1 -1
  145. package/dist/tools/editor/compile.js.map +1 -1
  146. package/dist/tools/editor/play-mode-status.d.ts +3 -0
  147. package/dist/tools/editor/play-mode-status.js +12 -0
  148. package/dist/tools/editor/play-mode-status.js.map +1 -0
  149. package/dist/tools/editor/readiness.d.ts +0 -1
  150. package/dist/tools/editor/readiness.js +0 -1
  151. package/dist/tools/editor/readiness.js.map +1 -1
  152. package/dist/tools/editor/refresh.d.ts +7 -3
  153. package/dist/tools/editor/refresh.js +20 -15
  154. package/dist/tools/editor/refresh.js.map +1 -1
  155. package/dist/tools/editor/state.d.ts +2 -2
  156. package/dist/tools/editor/state.js +13 -12
  157. package/dist/tools/editor/state.js.map +1 -1
  158. package/dist/tools/metadata/derived.js +1 -7
  159. package/dist/tools/metadata/derived.js.map +1 -1
  160. package/dist/tools/metadata/status.js +1 -12
  161. package/dist/tools/metadata/status.js.map +1 -1
  162. package/dist/tools/metadata/types.d.ts +0 -2
  163. package/dist/tools/navmesh/live.js +1 -1
  164. package/dist/tools/navmesh/live.js.map +1 -1
  165. package/dist/tools/occlusion/live.js +1 -1
  166. package/dist/tools/occlusion/live.js.map +1 -1
  167. package/dist/tools/package/deploy.js +2 -2
  168. package/dist/tools/package/deploy.js.map +1 -1
  169. package/dist/tools/package/embed.js +1 -1
  170. package/dist/tools/package/embed.js.map +1 -1
  171. package/dist/tools/package/install-status.d.ts +3 -0
  172. package/dist/tools/package/install-status.js +12 -0
  173. package/dist/tools/package/install-status.js.map +1 -0
  174. package/dist/tools/package/install.js +3 -3
  175. package/dist/tools/package/install.js.map +1 -1
  176. package/dist/tools/package/live-resolve.js +45 -12
  177. package/dist/tools/package/live-resolve.js.map +1 -1
  178. package/dist/tools/package/registry-clear.js.map +1 -1
  179. package/dist/tools/package/registry-set.js.map +1 -1
  180. package/dist/tools/package/remove-status.d.ts +3 -0
  181. package/dist/tools/package/remove-status.js +12 -0
  182. package/dist/tools/package/remove-status.js.map +1 -0
  183. package/dist/tools/package/remove.js +3 -3
  184. package/dist/tools/package/remove.js.map +1 -1
  185. package/dist/tools/package/resolve.js +3 -3
  186. package/dist/tools/package/resolve.js.map +1 -1
  187. package/dist/tools/package/restore.js +2 -2
  188. package/dist/tools/package/restore.js.map +1 -1
  189. package/dist/tools/package/scoped-registry-add.js.map +1 -1
  190. package/dist/tools/status/support.d.ts +13 -0
  191. package/dist/tools/status/support.js +28 -0
  192. package/dist/tools/status/support.js.map +1 -0
  193. package/dist/tools/test/cancel.js +2 -2
  194. package/dist/tools/test/cancel.js.map +1 -1
  195. package/dist/tools/test/run-status.d.ts +3 -0
  196. package/dist/tools/test/run-status.js +12 -0
  197. package/dist/tools/test/run-status.js.map +1 -0
  198. package/dist/tools/test/run.js +7 -4
  199. package/dist/tools/test/run.js.map +1 -1
  200. package/dist/tools/tools/group-summaries.js +10 -14
  201. package/dist/tools/tools/group-summaries.js.map +1 -1
  202. package/docs/architecture.md +4 -4
  203. package/docs/availability-differences.md +4 -4
  204. package/docs/command-execution.md +4 -3
  205. package/docs/error-codes.md +13 -5
  206. package/docs/extensions.md +1 -7
  207. package/docs/risk-and-side-effects.md +4 -3
  208. package/docs/safety-boundaries.md +3 -1
  209. package/docs/target-and-instance.md +1 -1
  210. package/docs/tool-discovery.md +17 -10
  211. package/docs/tool-execution.md +18 -7
  212. package/extensions/cinemachine/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
  213. package/extensions/hdrp/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
  214. package/extensions/probuilder/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
  215. package/extensions/urp/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
  216. package/extensions/vfx-graph/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
  217. package/package.json +2 -4
  218. package/skills/unitycli/SKILL.md +11 -2
  219. package/skills/unitycli/manifest.json +1 -1
  220. package/skills/unitycli/references/operation-protocol.md +3 -3
  221. package/unitypkg/Editor/AssemblyInfo.cs +5 -0
  222. package/unitypkg/Editor/Bridge/BridgeCommandRegistry.cs +49 -14
  223. package/unitypkg/Editor/Bridge/BridgeHttpServer.cs +9 -35
  224. package/unitypkg/Editor/Bridge/BridgeQueueState.cs +672 -0
  225. package/unitypkg/Editor/Bridge/BridgeWorkQueue.cs +970 -120
  226. package/unitypkg/Editor/BridgeStartupStateMachine.cs +59 -1
  227. package/unitypkg/Editor/Commands/ProjectToolCommands.cs +4 -0
  228. package/unitypkg/Editor/Commands/RuntimeToolCommands.cs +3 -0
  229. package/unitypkg/Editor/Generated/UnityCliToolCompletionRegistry.g.cs +379 -14
  230. package/unitypkg/Editor/Infrastructure/CodeExecSupport.cs +28 -13
  231. package/unitypkg/Editor/Infrastructure/RegistryOwnershipResolver.cs +132 -105
  232. package/unitypkg/Editor/Infrastructure/UnityCliActiveOperation.cs +138 -29
  233. package/unitypkg/Editor/Infrastructure/UnityCliAdmission.cs +1856 -237
  234. package/unitypkg/Editor/Infrastructure/UnityCliDoctorDiagnostics.cs +220 -0
  235. package/unitypkg/Editor/Infrastructure/UnityCliDurableStatusCoordinator.cs +118 -0
  236. package/unitypkg/Editor/Infrastructure/UnityCliEditorStateSnapshot.cs +2 -1
  237. package/unitypkg/Editor/Infrastructure/UnityCliHierarchyPager.cs +203 -0
  238. package/unitypkg/Editor/Infrastructure/UnityCliInstanceCleanup.cs +2 -1
  239. package/unitypkg/Editor/Infrastructure/UnityCliInstanceRegistry.cs +201 -63
  240. package/unitypkg/Editor/Infrastructure/UnityCliJson.cs +2 -3
  241. package/unitypkg/Editor/Infrastructure/UnityCliLiveBuildCoordinator.cs +289 -46
  242. package/unitypkg/Editor/Infrastructure/UnityCliLiveRefreshCoordinator.cs +87 -53
  243. package/unitypkg/Editor/Infrastructure/UnityCliNavMeshBakeCoordinator.cs +4 -4
  244. package/unitypkg/Editor/Infrastructure/UnityCliObjectRef.cs +128 -25
  245. package/unitypkg/Editor/Infrastructure/UnityCliObjectSerializer.cs +435 -327
  246. package/unitypkg/Editor/Infrastructure/UnityCliOcclusionBakeCoordinator.cs +4 -4
  247. package/unitypkg/Editor/Infrastructure/UnityCliOperationCoordinator.cs +351 -53
  248. package/unitypkg/Editor/Infrastructure/UnityCliPackageResolveCoordinator.cs +118 -18
  249. package/unitypkg/Editor/Infrastructure/UnityCliPackageResolveState.cs +20 -1
  250. package/unitypkg/Editor/Infrastructure/UnityCliReadGeneration.cs +97 -0
  251. package/unitypkg/Editor/Infrastructure/UnityCliReflection.cs +644 -133
  252. package/unitypkg/Editor/Infrastructure/UnityCliReloadOperation.cs +128 -41
  253. package/unitypkg/Editor/Infrastructure/UnityCliRuntimeExecutor.cs +14 -84
  254. package/unitypkg/Editor/Infrastructure/UnityCliSerializer.cs +220 -0
  255. package/unitypkg/Editor/Infrastructure/UnityCliSessionMutationLease.cs +69 -29
  256. package/unitypkg/Editor/Infrastructure/UnityCliTestRunCoordinator.cs +440 -54
  257. package/unitypkg/Editor/Infrastructure/UnityCliWaiter.cs +128 -35
  258. package/unitypkg/Editor/ProjectTools/IUnityCliTool.cs +9 -1
  259. package/unitypkg/Editor/ProjectTools/OfficialAttributeToolRegistry.cs +32 -31
  260. package/unitypkg/Editor/ProjectTools/ProjectToolRegistry.cs +607 -458
  261. package/unitypkg/Editor/ProjectTools/ProjectToolSchemaValidator.cs +35 -7
  262. package/unitypkg/Editor/ProjectTools/RegisteredTool.cs +501 -60
  263. package/unitypkg/Editor/ProjectTools/UnityCliProjectToolContext.cs +21 -0
  264. package/unitypkg/Editor/ProjectTools/UnityCliSchemaDeriver.cs +36 -7
  265. package/unitypkg/Editor/ProjectTools/UnityCliToolName.cs +30 -0
  266. package/unitypkg/Editor/Properties/AssemblyInfo.cs +3 -0
  267. package/unitypkg/Editor/Tools/asset/get-data.cs +16 -7
  268. package/unitypkg/Editor/Tools/build/BuildSceneStateTool.cs +23 -3
  269. package/unitypkg/Editor/Tools/build/BuildToolDtos.cs +2 -1
  270. package/unitypkg/Editor/Tools/build/scene/add.cs +6 -3
  271. package/unitypkg/Editor/Tools/build/scene/disable.cs +1 -1
  272. package/unitypkg/Editor/Tools/build/scene/enable.cs +1 -1
  273. package/unitypkg/Editor/Tools/build/scene/list.cs +1 -1
  274. package/unitypkg/Editor/Tools/build/scene/remove.cs +13 -3
  275. package/unitypkg/Editor/Tools/camera/CameraToolSupport.cs +38 -38
  276. package/unitypkg/Editor/Tools/camera/multiview.cs +13 -6
  277. package/unitypkg/Editor/Tools/camera/screenshot.cs +14 -7
  278. package/unitypkg/Editor/Tools/component/get.cs +16 -9
  279. package/unitypkg/Editor/Tools/component/modify.cs +6 -4
  280. package/unitypkg/Editor/Tools/console/clear.cs +7 -6
  281. package/unitypkg/Editor/Tools/console/get.cs +48 -16
  282. package/unitypkg/Editor/Tools/editor/EditorToolSupport.cs +143 -28
  283. package/unitypkg/Editor/Tools/editor/menu-items.cs +1 -1
  284. package/unitypkg/Editor/Tools/editor/play.cs +2 -11
  285. package/unitypkg/Editor/Tools/editor/selection.cs +1 -1
  286. package/unitypkg/Editor/Tools/editor/stop.cs +2 -11
  287. package/unitypkg/Editor/Tools/editor/windows.cs +1 -1
  288. package/unitypkg/Editor/Tools/go/GameObjectToolSupport.cs +54 -4
  289. package/unitypkg/Editor/Tools/go/delete.cs +1 -1
  290. package/unitypkg/Editor/Tools/go/find.cs +167 -70
  291. package/unitypkg/Editor/Tools/graphics/GraphicsToolSupport.cs +25 -0
  292. package/unitypkg/Editor/Tools/graphics/light-probe-group.cs +9 -3
  293. package/unitypkg/Editor/Tools/graphics/pipeline-info.cs +1 -1
  294. package/unitypkg/Editor/Tools/graphics/pipeline-settings.cs +1 -1
  295. package/unitypkg/Editor/Tools/graphics/quality.cs +2 -2
  296. package/unitypkg/Editor/Tools/graphics/reflection-probe.cs +3 -3
  297. package/unitypkg/Editor/Tools/graphics/stats.cs +1 -1
  298. package/unitypkg/Editor/Tools/object/ObjectToolSupport.cs +4 -4
  299. package/unitypkg/Editor/Tools/object/get-data.cs +9 -7
  300. package/unitypkg/Editor/Tools/object/modify.cs +7 -5
  301. package/unitypkg/Editor/Tools/physics/raycast.cs +24 -6
  302. package/unitypkg/Editor/Tools/prefab/stage.cs +1 -1
  303. package/unitypkg/Editor/Tools/profiler/ProfilerFrameDebuggerSupport.cs +94 -21
  304. package/unitypkg/Editor/Tools/profiler/ProfilerMemorySnapshotSupport.cs +397 -10
  305. package/unitypkg/Editor/Tools/profiler/ProfilerToolSupport.cs +18 -4
  306. package/unitypkg/Editor/Tools/profiler/frame-debugger/enable.cs +1 -1
  307. package/unitypkg/Editor/Tools/profiler/frame-debugger/events.cs +88 -87
  308. package/unitypkg/Editor/Tools/profiler/hierarchy.cs +278 -112
  309. package/unitypkg/Editor/Tools/profiler/memory-snapshot/compare.cs +9 -5
  310. package/unitypkg/Editor/Tools/profiler/memory-snapshot/list.cs +37 -35
  311. package/unitypkg/Editor/Tools/profiler/memory-snapshot/take.cs +99 -97
  312. package/unitypkg/Editor/Tools/project/info.cs +1 -1
  313. package/unitypkg/Editor/Tools/project/layers.cs +1 -1
  314. package/unitypkg/Editor/Tools/project/tags.cs +1 -1
  315. package/unitypkg/Editor/Tools/reflection/method/call.cs +9 -7
  316. package/unitypkg/Editor/Tools/reflection/method/find.cs +27 -37
  317. package/unitypkg/Editor/Tools/reflection/type/schema.cs +24 -28
  318. package/unitypkg/Editor/Tools/scene/gameobject/component.cs +8 -5
  319. package/unitypkg/Editor/Tools/scene/gameobject/components.cs +10 -7
  320. package/unitypkg/Editor/Tools/scene/gameobject-support.cs +104 -8
  321. package/unitypkg/Editor/Tools/scene/gameobject.cs +37 -16
  322. package/unitypkg/Editor/Tools/scene/hierarchy.cs +146 -142
  323. package/unitypkg/Editor/Tools/screenshot/EditorElementCaptureToolSupport.cs +77 -25
  324. package/unitypkg/Editor/Tools/screenshot/ScreenshotToolSupport.cs +315 -95
  325. package/unitypkg/Editor/Tools/screenshot/editor-element.cs +7 -5
  326. package/unitypkg/Editor/Tools/screenshot/game-view.cs +35 -21
  327. package/unitypkg/Editor/Tools/screenshot/isolated-object.cs +29 -23
  328. package/unitypkg/Editor/Tools/screenshot/orbit.cs +37 -25
  329. package/unitypkg/Editor/Tools/screenshot/scene-view.cs +25 -18
  330. package/unitypkg/Editor/Tools/screenshot/screen.cs +177 -17
  331. package/unitypkg/Editor/Tools/screenshot/surround.cs +83 -79
  332. package/unitypkg/Editor/Tools/ui/render-preview.cs +16 -11
  333. package/unitypkg/Editor/UnityCliBridge.cs +97 -34
  334. package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeBridge.cs +753 -122
  335. package/unitypkg/Runtime/Properties/AssemblyInfo.cs +5 -0
  336. package/unitypkg/Runtime/UnityCli.Runtime.asmdef +1 -1
  337. package/unitypkg/Shared/AssemblyInfo.cs +4 -0
  338. package/unitypkg/Shared/UnityCliAdmissionPool.cs +265 -75
  339. package/unitypkg/Shared/UnityCliBridgeQueuePolicy.cs +410 -0
  340. package/unitypkg/Shared/UnityCliBridgeWorkItemState.cs +47 -0
  341. package/unitypkg/Shared/UnityCliExceptionProjection.cs +151 -0
  342. package/unitypkg/Shared/UnityCliQueuePublication.cs +30 -0
  343. package/unitypkg/Shared/UnityCliRequestBudget.cs +352 -0
  344. package/unitypkg/Shared/UnityCliRuntimeRequestPublication.cs +107 -0
  345. package/unitypkg/Tests/Editor/UnityCli.Editor.Tests.asmdef +2 -2
  346. package/unitypkg/Tests/Editor/UnityCliAdmissionCoordinatorIntegrationTests.cs +1329 -0
  347. package/unitypkg/Tests/Editor/UnityCliAdmissionPoolTests.cs +311 -114
  348. package/unitypkg/Tests/Editor/UnityCliAdmissionRepairStateTests.cs +94 -0
  349. package/unitypkg/Tests/Editor/UnityCliBridgeAdmissionIntegrationTests.cs +1229 -0
  350. package/unitypkg/Tests/Editor/UnityCliBridgeQueuePolicyTests.cs +412 -0
  351. package/unitypkg/Tests/Editor/UnityCliContinuationIntegrationTests.cs +292 -0
  352. package/unitypkg/Tests/Editor/UnityCliDiagnosticBoundaryTests.cs +120 -0
  353. package/unitypkg/Tests/Editor/UnityCliDurableStatusTests.cs +84 -0
  354. package/unitypkg/Tests/Editor/UnityCliExceptionProjectionTests.cs +72 -0
  355. package/unitypkg/Tests/Editor/UnityCliInstancePublicationRetryTests.cs +180 -97
  356. package/unitypkg/Tests/Editor/UnityCliMemoryReflectionIntegrationTests.cs +434 -0
  357. package/unitypkg/Tests/Editor/UnityCliRequestBudgetTests.cs +615 -0
  358. package/unitypkg/Tests/Editor/UnityCliRuntimeBridgeIntegrationTests.cs +520 -0
  359. package/unitypkg/Tests/Editor/UnityCliToolCatalogTests.cs +562 -0
  360. package/unitypkg/Tests/Runtime/UnityCli.Runtime.Tests.asmdef +23 -0
  361. package/unitypkg/Tests/Runtime/UnityCliRuntimeCatalogValidationTests.cs +29 -0
  362. package/unitypkg/package.json +1 -1
  363. package/contracts/static-capability-catalog.json +0 -48226
  364. package/dist/bridge/domains/diagnose.d.ts +0 -2
  365. package/dist/bridge/domains/diagnose.js +0 -11
  366. package/dist/bridge/domains/diagnose.js.map +0 -1
  367. package/dist/bridge/domains/extension.d.ts +0 -8
  368. package/dist/bridge/domains/extension.js +0 -20
  369. package/dist/bridge/domains/extension.js.map +0 -1
  370. package/dist/capabilities.d.ts +0 -5
  371. package/dist/capabilities.js +0 -84
  372. package/dist/capabilities.js.map +0 -1
  373. package/dist/static-capability-catalog.d.ts +0 -13
  374. package/dist/static-capability-catalog.js +0 -41
  375. package/dist/static-capability-catalog.js.map +0 -1
  376. package/dist/tools/diagnose/capabilities.d.ts +0 -13
  377. package/dist/tools/diagnose/capabilities.js +0 -34
  378. package/dist/tools/diagnose/capabilities.js.map +0 -1
  379. package/dist/tools/package/info.d.ts +0 -19
  380. package/dist/tools/package/info.js +0 -27
  381. package/dist/tools/package/info.js.map +0 -1
  382. package/dist/tools/package/list.d.ts +0 -27
  383. package/dist/tools/package/list.js +0 -21
  384. package/dist/tools/package/list.js.map +0 -1
  385. package/dist/tools/package/registry-get.d.ts +0 -10
  386. package/dist/tools/package/registry-get.js +0 -22
  387. package/dist/tools/package/registry-get.js.map +0 -1
  388. package/dist/tools/package/scoped-registry-list.d.ts +0 -14
  389. package/dist/tools/package/scoped-registry-list.js +0 -22
  390. package/dist/tools/package/scoped-registry-list.js.map +0 -1
  391. package/dist/tools/package/search.d.ts +0 -17
  392. package/dist/tools/package/search.js +0 -39
  393. package/dist/tools/package/search.js.map +0 -1
  394. package/dist/tools/package/status.d.ts +0 -21
  395. package/dist/tools/package/status.js +0 -37
  396. package/dist/tools/package/status.js.map +0 -1
  397. package/dist/tools/tools/describe.d.ts +0 -27
  398. package/dist/tools/tools/describe.js +0 -35
  399. package/dist/tools/tools/describe.js.map +0 -1
  400. package/dist/tools/tools/group-list.d.ts +0 -16
  401. package/dist/tools/tools/group-list.js +0 -38
  402. package/dist/tools/tools/group-list.js.map +0 -1
  403. package/dist/tools/tools/group.d.ts +0 -13
  404. package/dist/tools/tools/group.js +0 -34
  405. package/dist/tools/tools/group.js.map +0 -1
  406. package/dist/tools/tools/pagination.d.ts +0 -17
  407. package/dist/tools/tools/pagination.js +0 -28
  408. package/dist/tools/tools/pagination.js.map +0 -1
  409. package/dist/tools/tools/search.d.ts +0 -15
  410. package/dist/tools/tools/search.js +0 -42
  411. package/dist/tools/tools/search.js.map +0 -1
  412. package/unitypkg/Editor/Tools/diagnose/preflight.cs +0 -269
  413. package/unitypkg/Editor/Tools/editor/console.cs +0 -26
  414. package/unitypkg/Editor/Tools/extension/status.cs +0 -87
  415. package/unitypkg/Editor/Tools/go/inspect.cs +0 -49
  416. package/unitypkg/Editor/Tools/graphics/pipeline-quality.cs +0 -24
  417. package/unitypkg/Editor/Tools/graphics/probe-positions.cs +0 -58
  418. package/unitypkg/Editor/Tools/graphics/settings.cs +0 -104
  419. package/unitypkg/Editor/Tools/graphics/stats-counters.cs +0 -28
  420. package/unitypkg/Editor/Tools/graphics/stats-memory.cs +0 -21
  421. package/unitypkg/Editor/Tools/instances/list.cs +0 -71
  422. package/unitypkg/Editor/Tools/physics/raycast-all.cs +0 -67
  423. package/unitypkg/Editor/Tools/scene/build-settings.cs +0 -69
  424. package/unitypkg/Editor/Tools/scene/data.cs +0 -125
  425. package/unitypkg/Editor/Tools/tests/list.cs +0 -98
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,8 @@ import { buildBridgeSpecs } from "./domains/build.js";
4
4
  import { cameraBridgeSpecs } from "./domains/camera.js";
5
5
  import { codeBridgeSpecs } from "./domains/code.js";
6
6
  import { consoleBridgeSpecs } from "./domains/console.js";
7
- import { diagnoseBridgeSpecs } from "./domains/diagnose.js";
7
+ import { doctorBridgeSpecs } from "./domains/doctor.js";
8
8
  import { editorBridgeSpecs } from "./domains/editor.js";
9
- import { extensionBridgeSpecs } from "./domains/extension.js";
10
9
  import { gameObjectBridgeSpecs } from "./domains/game-object.js";
11
10
  import { graphicsBridgeSpecs } from "./domains/graphics.js";
12
11
  import { materialBridgeSpecs } from "./domains/material.js";
@@ -50,7 +49,7 @@ const CORE_DOMAIN_SPECS = [
50
49
  ...animationBridgeSpecs,
51
50
  ...uiBridgeSpecs,
52
51
  ...editorBridgeSpecs,
53
- ...diagnoseBridgeSpecs,
52
+ ...doctorBridgeSpecs,
54
53
  ...codeBridgeSpecs,
55
54
  ...objectBridgeSpecs,
56
55
  ...reflectionBridgeSpecs,
@@ -59,8 +58,7 @@ const CORE_DOMAIN_SPECS = [
59
58
  ...packageBridgeSpecs,
60
59
  ...buildBridgeSpecs,
61
60
  ...runtimeToolBridgeSpecs,
62
- ...projectToolBridgeSpecs,
63
- ...extensionBridgeSpecs
61
+ ...projectToolBridgeSpecs
64
62
  ];
65
63
  export class BridgeCommandRegistry {
66
64
  byCliCommand = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/bridge/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/bridge/registry.ts"],"names":[],"mappings":"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"}
@@ -19,8 +19,10 @@ export interface BridgeRequestTemplate {
19
19
  rootAdmission?: RootAdmissionLease;
20
20
  /** 已由 editor.state 完成的私有选择;不得重跑 selector。 */
21
21
  observationSelection?: InstanceSelection;
22
- /** 私有 continuation capability;只允许 compile start/status 绑定 transition session。 */
22
+ /** 私有 continuation capability;只允许白名单内部命令绑定 transition session。 */
23
23
  allowTransitionBinding?: boolean;
24
+ /** 私有 durable status capability;把 canonical transition 响应交回外层重新观察。 */
25
+ returnTransitionResponse?: boolean;
24
26
  }
25
27
  export interface FrozenBridgeRequest {
26
28
  readonly payload: BridgeRequest;
@@ -38,6 +40,7 @@ interface ValidatedBinding {
38
40
  readonly endpoint: string;
39
41
  readonly processId: number;
40
42
  readonly processStartedAt: string;
43
+ readonly toolCatalogFingerprint?: string;
41
44
  }
42
45
  interface TransportAttestation {
43
46
  target: InstanceTarget;
@@ -95,7 +98,7 @@ export declare class SessionSupervisor {
95
98
  execute(template: BridgeRequestTemplate): Promise<BridgeResponse>;
96
99
  /** 普通读取型Tool与live catalog入口;generation变化后只允许整次重新读取。 */
97
100
  read(template: BridgeRequestTemplate): Promise<BridgeResponse>;
98
- /** editor.state 专用即时入口;固定预算内只观察一次,不等待状态改变。 */
101
+ /** editor.state 私有即时入口;调用者必须显式提供完整只读约束。 */
99
102
  observeNow(template: BridgeRequestTemplate): Promise<BridgeResponse>;
100
103
  /** 在准入deadline内原子取得一个root grant;业务执行deadline只在grant返回后创建一次。 */
101
104
  acquireRootAdmission(request: RootAdmissionRequest): Promise<RootAdmissionLease>;
@@ -105,7 +108,7 @@ export declare class SessionSupervisor {
105
108
  private run;
106
109
  /** 首个POST被admission层明确拒绝时可在原执行deadline内换取新token;不得刷新deadline。 */
107
110
  private reacquireAdmission;
108
- /** 业务 deadline 之后只执行一次独立的只读诊断;绝不重放或延长业务请求。 */
111
+ /** timeout诊断只能消费原execution deadline的剩余预算。 */
109
112
  private executionTimeoutWithObservation;
110
113
  /** 失败路径的 observer 严格复用调用 deadline。 */
111
114
  private observeBlockers;
@@ -3,8 +3,8 @@ import { defaultDataDir } from "../platform.js";
3
3
  import { EditorBlockerObserver, sanitizeEditorBlockers } from "../editor-blocker-observer.js";
4
4
  import { clearInstanceHealthCache, InstanceRegistryError, selectInstanceForFlags, selectObservationInstanceForFlags, selectTransitionInstanceForFlags, } from "../instances.js";
5
5
  import { rootAdmissionFingerprint } from "./admission.js";
6
+ import { readBridgeStartBlockerDiagnostics } from "./start-diagnostics.js";
6
7
  export const EDITOR_STATE_OBSERVATION_BUDGET_MS = 10_000;
7
- const BLOCKER_DIAGNOSTIC_BUDGET_MS = 10_000;
8
8
  export const EDITOR_STATE_BRIDGE_PROBE_BUDGET_MS = 3_500;
9
9
  const DEFAULT_EXECUTION_TIMEOUT_MS = 60_000;
10
10
  const REGISTRY_POLL_INTERVAL_MS = 100;
@@ -23,6 +23,12 @@ const ROOT_TRANSITION_COMMANDS = new Set([
23
23
  "internal.editor.refresh.status",
24
24
  "internal.asset.refresh.start",
25
25
  "internal.asset.refresh.status",
26
+ "internal.asset.refresh.public-status",
27
+ "internal.build.player.public-status",
28
+ "internal.editor.play-mode.public-status",
29
+ "internal.package.install.public-status",
30
+ "internal.package.remove.public-status",
31
+ "internal.test.run.public-status",
26
32
  "internal.package.embed.start",
27
33
  "internal.package.embed.status",
28
34
  "internal.package.resolve.start",
@@ -47,7 +53,14 @@ const ROOT_TRANSITION_COMMANDS = new Set([
47
53
  "internal.occlusion.bake.snapshot",
48
54
  "internal.occlusion.bake.cancel",
49
55
  ]);
50
- const ADMISSION_OBSERVATION_TOOLS = new Set(["editor.state", "editor.dialogs", "editor.dialog.click"]);
56
+ const RETURNABLE_TRANSITION_COMMANDS = new Set([
57
+ "internal.package.resolve.status",
58
+ ]);
59
+ // 只有自身切换 Editor session 状态的 Tool 才能恢复已发出但丢失响应的同根请求。
60
+ const POST_DISPATCH_LISTENER_RECOVERY_TOOLS = new Set([
61
+ "editor.play",
62
+ "editor.stop",
63
+ ]);
51
64
  const TRANSITION_CODES = new Set([
52
65
  "E_UNITY_DOMAIN_RELOAD",
53
66
  "E_UNITY_COMPILING",
@@ -115,9 +128,9 @@ export class SessionSupervisor {
115
128
  read(template) {
116
129
  return this.run("read", { ...template, mutation: false });
117
130
  }
118
- /** editor.state 专用即时入口;固定预算内只观察一次,不等待状态改变。 */
131
+ /** editor.state 私有即时入口;调用者必须显式提供完整只读约束。 */
119
132
  observeNow(template) {
120
- return this.run("observeNow", { ...template, mutation: false });
133
+ return this.run("observeNow", template);
121
134
  }
122
135
  /** 在准入deadline内原子取得一个root grant;业务执行deadline只在grant返回后创建一次。 */
123
136
  async acquireRootAdmission(request) {
@@ -133,6 +146,16 @@ export class SessionSupervisor {
133
146
  instanceId: INJECTED_INSTANCE_ID,
134
147
  canonicalProjectPath: process.cwd(),
135
148
  sessionId: "injected-session",
149
+ processId: process.pid,
150
+ processStartedAt: "injected-process",
151
+ toolCatalogFingerprint: "injected-catalog",
152
+ listenerId: "injected-listener",
153
+ listenerGeneration: 1,
154
+ discoveryProvenance: request.expectedDiscoveryProvenance ?? (request.captureDiscoveryProvenance ? {
155
+ target: request.target, instanceId: INJECTED_INSTANCE_ID, sessionId: "injected-session",
156
+ ...(request.target === "editor" ? { editorSessionId: "injected-session" } : {}),
157
+ listenerId: "injected-listener", listenerGeneration: 1,
158
+ } : undefined),
136
159
  token: "injected-admission",
137
160
  consumed: false,
138
161
  grantExpiresAtMs: this.dependencies.now() + 2_000,
@@ -140,17 +163,9 @@ export class SessionSupervisor {
140
163
  injected: true,
141
164
  };
142
165
  }
143
- let target;
144
- let binding;
145
- if (request.target === "editor" && ADMISSION_OBSERVATION_TOOLS.has(request.command)) {
146
- const selection = await this.dependencies.selectObservation(this.flags, this.runtime.dataDir ?? defaultDataDir(), remainingBudget(request.admissionAbsoluteDeadlineMs, this.dependencies.now()), "editor");
147
- target = { target: "editor", instanceId: selection.instance.instanceId, initialSelection: selection, injected: false };
148
- binding = bindingFrom(selection.instance);
149
- }
150
- else {
151
- target = await this.resolveTarget(request.target, request.admissionAbsoluteDeadlineMs, startedAtMs, request.admissionAbsoluteDeadlineMs, false);
152
- binding = await this.bind(target, request.admissionAbsoluteDeadlineMs, false, target.initialSelection);
153
- }
166
+ const target = await this.resolveTarget(request.target, request.admissionAbsoluteDeadlineMs, startedAtMs, request.admissionAbsoluteDeadlineMs, false);
167
+ let binding = await this.bind(target, request.admissionAbsoluteDeadlineMs, false, target.initialSelection);
168
+ requireDiscoveryProvenance(request.expectedDiscoveryProvenance, binding);
154
169
  const fingerprint = rootAdmissionFingerprint(request, binding.instanceId);
155
170
  for (;;) {
156
171
  const remainingMs = remainingBudget(request.admissionAbsoluteDeadlineMs, this.dependencies.now());
@@ -160,6 +175,7 @@ export class SessionSupervisor {
160
175
  const reply = await this.dependencies.acquire(binding, request, fingerprint, remainingMs);
161
176
  if (!attestationMatches(binding, reply.attestation)) {
162
177
  binding = await this.bindReplacement(target, request.admissionAbsoluteDeadlineMs, binding);
178
+ requireDiscoveryProvenance(request.expectedDiscoveryProvenance, binding);
163
179
  continue;
164
180
  }
165
181
  if (reply.granted && reply.token) {
@@ -172,6 +188,13 @@ export class SessionSupervisor {
172
188
  instanceId: binding.instanceId,
173
189
  canonicalProjectPath: binding.canonicalProjectPath,
174
190
  sessionId: binding.sessionId,
191
+ processId: binding.processId,
192
+ processStartedAt: binding.processStartedAt,
193
+ toolCatalogFingerprint: binding.toolCatalogFingerprint,
194
+ listenerId: binding.listenerId,
195
+ listenerGeneration: binding.listenerGeneration,
196
+ discoveryProvenance: request.expectedDiscoveryProvenance
197
+ ?? (request.captureDiscoveryProvenance ? provenanceFromBinding(binding) : undefined),
175
198
  token: reply.token,
176
199
  consumed: false,
177
200
  grantExpiresAtMs: this.dependencies.now() + reply.grantExpiresInMs,
@@ -191,6 +214,7 @@ export class SessionSupervisor {
191
214
  await this.dependencies.sleep(Math.min(admissionPollDelay(this.dependencies.random()), remainingAfterFailureMs));
192
215
  clearInstanceHealthCache();
193
216
  binding = await this.bind(target, request.admissionAbsoluteDeadlineMs, false, undefined);
217
+ requireDiscoveryProvenance(request.expectedDiscoveryProvenance, binding);
194
218
  }
195
219
  }
196
220
  }
@@ -204,7 +228,8 @@ export class SessionSupervisor {
204
228
  if (!selection.instance.activeSession)
205
229
  return;
206
230
  const binding = bindingFrom(selection.instance);
207
- if (binding.sessionId !== admission.sessionId)
231
+ if (binding.sessionId !== admission.sessionId || binding.listenerId !== admission.listenerId
232
+ || binding.listenerGeneration !== admission.listenerGeneration)
208
233
  return;
209
234
  const reply = await this.dependencies.revoke(binding, admission, remainingBudget(deadlineMs, this.dependencies.now()));
210
235
  if (!attestationMatches(binding, reply.attestation))
@@ -220,6 +245,12 @@ export class SessionSupervisor {
220
245
  if (template.allowTransitionBinding === true && !ROOT_TRANSITION_COMMANDS.has(template.command)) {
221
246
  throw new SessionSupervisorError("E_INTERNAL_INVOCATION_INVALID", "Transition binding is restricted to private durable root coordinator commands.", [], { command: template.command });
222
247
  }
248
+ if (template.returnTransitionResponse === true && (mode !== "read"
249
+ || template.mutation !== false
250
+ || template.allowTransitionBinding !== true
251
+ || !RETURNABLE_TRANSITION_COMMANDS.has(template.command))) {
252
+ throw new SessionSupervisorError("E_INTERNAL_INVOCATION_INVALID", "Transition response handoff is restricted to private read-only durable status commands.", [], { command: template.command });
253
+ }
223
254
  const timeoutMs = normalizeTimeoutMs(template.timeoutMs, mode);
224
255
  // caller 已冻结业务 deadline 时,未显式提供更短 timeout 不得被 Supervisor 默认预算再次截断。
225
256
  const absoluteDeadlineMs = mode === "observeNow"
@@ -266,10 +297,16 @@ export class SessionSupervisor {
266
297
  throw await this.executionTimeoutWithObservation(target.instanceId, binding, absoluteDeadlineMs, "The selected Unity process session changed after the first mutation POST; automatic redelivery is forbidden.");
267
298
  }
268
299
  try {
300
+ const requestAdmission = template.rootAdmission?.requestId === template.requestId ? template.rootAdmission : undefined;
301
+ const recoverConsumedAdmission = canRecoverConsumedAdmission(requestAdmission, binding, dispatchAttempted);
302
+ assertAdmissionBinding(template.rootAdmission, binding, recoverConsumedAdmission);
269
303
  dispatchAttempted = true;
270
304
  postAttempts += 1;
271
- const requestAdmission = template.rootAdmission?.requestId === template.requestId ? template.rootAdmission : undefined;
272
- const reply = await this.dependencies.post(binding, request, remainingMs, requestAdmission);
305
+ // replacement listener 只能通过 Bridge 持久化的 exact consumed owner 附着,不能重用旧 token。
306
+ const transportAdmission = recoverConsumedAdmission && requestAdmission
307
+ ? { ...requestAdmission, consumed: true }
308
+ : requestAdmission;
309
+ const reply = await this.dependencies.post(binding, request, remainingMs, transportAdmission);
273
310
  if (!attestationMatches(binding, reply.attestation)) {
274
311
  binding = await this.bindReplacement(target, absoluteDeadlineMs, binding, template.allowTransitionBinding === true);
275
312
  continue;
@@ -285,6 +322,8 @@ export class SessionSupervisor {
285
322
  // Bridge 已给出 canonical terminal response 时优先返回。
286
323
  if (!shouldRecoverTransition(reply.response))
287
324
  return reply.response;
325
+ if (template.returnTransitionResponse === true)
326
+ return reply.response;
288
327
  await this.waitBeforeRecovery(reply.response, absoluteDeadlineMs);
289
328
  clearInstanceHealthCache();
290
329
  binding = await this.bind(target, absoluteDeadlineMs, false, undefined, template.allowTransitionBinding === true);
@@ -338,6 +377,8 @@ export class SessionSupervisor {
338
377
  dryRun: false,
339
378
  target: admission.target,
340
379
  completionContractIdentity: admission.completionContractIdentity,
380
+ captureDiscoveryProvenance: admission.discoveryProvenance !== undefined,
381
+ expectedDiscoveryProvenance: admission.discoveryProvenance,
341
382
  timeoutMs: remainingMs,
342
383
  admissionAbsoluteDeadlineMs: absoluteDeadlineMs,
343
384
  };
@@ -352,10 +393,9 @@ export class SessionSupervisor {
352
393
  await this.dependencies.sleep(Math.min(admissionPollDelay(this.dependencies.random()), remainingMs));
353
394
  }
354
395
  }
355
- /** 业务 deadline 之后只执行一次独立的只读诊断;绝不重放或延长业务请求。 */
356
- async executionTimeoutWithObservation(instanceId, binding, _deadlineMs, reason) {
357
- const observationDeadlineMs = this.dependencies.now() + BLOCKER_DIAGNOSTIC_BUDGET_MS;
358
- return executionTimeout(instanceId, reason, await this.observeBlockers(binding, observationDeadlineMs));
396
+ /** timeout诊断只能消费原execution deadline的剩余预算。 */
397
+ async executionTimeoutWithObservation(instanceId, binding, deadlineMs, reason) {
398
+ return executionTimeout(instanceId, reason, await this.observeBlockers(binding, deadlineMs));
359
399
  }
360
400
  /** 失败路径的 observer 严格复用调用 deadline。 */
361
401
  async observeBlockers(binding, deadlineMs) {
@@ -408,20 +448,16 @@ export class SessionSupervisor {
408
448
  if (this.runtime.bridgeExecute)
409
449
  return this.dispatchInjected(request, probeTimeoutMs);
410
450
  try {
411
- assertAdmissionBinding(template.rootAdmission, binding);
412
- const requestAdmission = template.rootAdmission?.requestId === template.requestId ? template.rootAdmission : undefined;
413
- const reply = await this.dependencies.post(binding, request, probeTimeoutMs, requestAdmission);
451
+ const reply = await this.dependencies.post(binding, request, probeTimeoutMs);
414
452
  if (!attestationMatches(binding, reply.attestation))
415
453
  throw identityMismatch(instance.instanceId);
416
454
  assertResponseRequestId(request.payload.requestId, reply.response);
417
- if (requestAdmission && !admissionWasRejected(reply.response))
418
- requestAdmission.consumed = true;
419
455
  return reply.response;
420
456
  }
421
457
  catch (error) {
422
458
  if (error instanceof SessionSupervisorError)
423
459
  throw error;
424
- throw connectionFailure(instance.instanceId, error);
460
+ throw await connectionFailure(instance.instanceId, error, this.runtime.dataDir);
425
461
  }
426
462
  }
427
463
  async selectObservation(absoluteDeadlineMs, startedAtMs) {
@@ -433,7 +469,7 @@ export class SessionSupervisor {
433
469
  /** 测试 transport 仍通过 supervisor,但不伪造 registry/listener generation。 */
434
470
  async dispatchInjected(request, timeoutMs) {
435
471
  if (!this.runtime.bridgeExecute)
436
- throw connectionFailure(request.payload.instanceId, new Error("Injected Bridge transport is unavailable."));
472
+ throw await connectionFailure(request.payload.instanceId, new Error("Injected Bridge transport is unavailable."), this.runtime.dataDir);
437
473
  try {
438
474
  const operation = this.runtime.bridgeExecute(request.payload);
439
475
  const response = timeoutMs === undefined ? await operation : await Promise.race([
@@ -446,7 +482,7 @@ export class SessionSupervisor {
446
482
  catch (error) {
447
483
  if (error instanceof SessionSupervisorError)
448
484
  throw error;
449
- throw connectionFailure(request.payload.instanceId, error);
485
+ throw await connectionFailure(request.payload.instanceId, error, this.runtime.dataDir);
450
486
  }
451
487
  }
452
488
  /** 首次 selector 解析只发生一次;后续恢复固定使用 instanceId,alias 变化不会改绑目标。 */
@@ -724,6 +760,7 @@ function bindingFrom(instance) {
724
760
  endpoint: session.listener.endpoint.url,
725
761
  processId: session.processId,
726
762
  processStartedAt: session.processStartedAt,
763
+ toolCatalogFingerprint: session.toolCatalogFingerprint,
727
764
  };
728
765
  }
729
766
  function bindingKey(binding) {
@@ -736,14 +773,66 @@ function attestationMatches(binding, attestation) {
736
773
  && attestation.listenerId === binding.listenerId
737
774
  && attestation.listenerGeneration === binding.listenerGeneration;
738
775
  }
739
- function assertAdmissionBinding(admission, binding) {
776
+ function assertAdmissionBinding(admission, binding, recoveredConsumedRoot = false) {
740
777
  if (!admission)
741
778
  return;
742
- if (admission.instanceId !== binding.instanceId || admission.target !== binding.target || admission.sessionId !== binding.sessionId) {
743
- throw new SessionSupervisorError("E_EXECUTION_TIMEOUT", "The admitted Unity root no longer matches the selected target session.", [
744
- "Inspect the selected Unity session and affected business state before submitting a new request.",
745
- ], { instanceId: admission.instanceId, outcome: "unknown" });
746
- }
779
+ const matches = admission.instanceId === binding.instanceId
780
+ && admission.target === binding.target
781
+ && admission.sessionId === binding.sessionId
782
+ && admission.listenerId === binding.listenerId
783
+ && admission.listenerGeneration === binding.listenerGeneration;
784
+ if (matches || recoveredConsumedRoot)
785
+ return;
786
+ if (admission.discoveryProvenance && !admission.consumed)
787
+ throw staleDiscoveryProvenance(admission.discoveryProvenance);
788
+ throw new SessionSupervisorError("E_EXECUTION_TIMEOUT", "The admitted Unity root no longer matches the selected target session.", [
789
+ "Inspect the selected Unity session and affected business state before submitting a new request.",
790
+ ], { instanceId: admission.instanceId, outcome: "unknown" });
791
+ }
792
+ /** 只允许同一Editor进程、同一catalog的显式session-affecting根附着Bridge持久化owner。 */
793
+ function canRecoverConsumedAdmission(admission, binding, dispatchAttempted) {
794
+ return dispatchAttempted
795
+ && admission !== undefined
796
+ && POST_DISPATCH_LISTENER_RECOVERY_TOOLS.has(admission.command)
797
+ && admission.target === "editor"
798
+ && binding.target === "editor"
799
+ && admission.instanceId === binding.instanceId
800
+ && admission.canonicalProjectPath === binding.canonicalProjectPath
801
+ && admission.sessionId === binding.sessionId
802
+ && admission.processId === binding.processId
803
+ && admission.processStartedAt === binding.processStartedAt
804
+ && typeof admission.toolCatalogFingerprint === "string"
805
+ && admission.toolCatalogFingerprint.length > 0
806
+ && admission.toolCatalogFingerprint === binding.toolCatalogFingerprint
807
+ && (admission.listenerId !== binding.listenerId || admission.listenerGeneration !== binding.listenerGeneration);
808
+ }
809
+ /** discovery 和首次业务 POST 必须归属于同一 exact listener generation。 */
810
+ function requireDiscoveryProvenance(expected, binding) {
811
+ if (!expected)
812
+ return;
813
+ const matches = expected.target === binding.target
814
+ && expected.instanceId === binding.instanceId
815
+ && expected.sessionId === binding.sessionId
816
+ && expected.listenerId === binding.listenerId
817
+ && expected.listenerGeneration === binding.listenerGeneration
818
+ && (binding.target !== "editor" || expected.editorSessionId === binding.sessionId);
819
+ if (!matches)
820
+ throw staleDiscoveryProvenance(expected);
821
+ }
822
+ function provenanceFromBinding(binding) {
823
+ return {
824
+ target: binding.target,
825
+ instanceId: binding.instanceId,
826
+ sessionId: binding.sessionId,
827
+ ...(binding.target === "editor" ? { editorSessionId: binding.sessionId } : {}),
828
+ listenerId: binding.listenerId,
829
+ listenerGeneration: binding.listenerGeneration,
830
+ };
831
+ }
832
+ function staleDiscoveryProvenance(expected) {
833
+ return new SessionSupervisorError("E_TOOL_CATALOG_CHANGED", "The Unity listener generation changed after Tool discovery and before the first business request was sent.", [
834
+ "Restart this top-level tools or command invocation against the current Unity generation.",
835
+ ], { instanceId: expected.instanceId, phase: "admission", businessRequestSent: false });
747
836
  }
748
837
  function admissionPollDelay(randomValue) {
749
838
  const bounded = Number.isFinite(randomValue) ? Math.min(0.999999999, Math.max(0, randomValue)) : 0.5;
@@ -756,7 +845,7 @@ function admissionBusy(instanceId, timeoutMs) {
756
845
  }
757
846
  /** runtime-tool namespace 始终绑定独立 development Player;其余命令绑定 Editor。 */
758
847
  function bridgeTarget(command) {
759
- return command === "runtime-tool.list" || command === "runtime-tool.run" ? "runtime" : "editor";
848
+ return command.startsWith("runtime-tool.") ? "runtime" : "editor";
760
849
  }
761
850
  function normalizeTimeoutMs(value, mode) {
762
851
  if (mode === "observeNow") {
@@ -858,11 +947,28 @@ function identityMismatch(instanceId) {
858
947
  "Run unitycli instances list and retry after the selected session is stable.",
859
948
  ], { instanceId });
860
949
  }
861
- function connectionFailure(instanceId, error) {
862
- return new SessionSupervisorError("BRIDGE_CONNECTION_FAILED", errorMessage(error), [
950
+ /**
951
+ * 连接失败的统一错误构造;dataDir 可用时读取项目 bridge 日志尾部,
952
+ * 把 Unity 侧阻止 bridge 启动的根因直接透出到错误信息与 nextActions,而不是笼统的连接失败。
953
+ */
954
+ async function connectionFailure(instanceId, error, dataDir) {
955
+ const failure = new SessionSupervisorError("BRIDGE_CONNECTION_FAILED", errorMessage(error), [
863
956
  "Run unitycli instances list and inspect the selected Unity session.",
864
957
  "Run unitycli tools run editor.state for transition or blocker details.",
865
958
  ], { instanceId }, true, REGISTRY_POLL_INTERVAL_MS);
959
+ try {
960
+ const diagnostics = await readBridgeStartBlockerDiagnostics(dataDir ?? defaultDataDir(), instanceId);
961
+ if (!diagnostics)
962
+ return failure;
963
+ return new SessionSupervisorError("BRIDGE_CONNECTION_FAILED", `${errorMessage(error)} ${diagnostics.message}`, [
964
+ ...diagnostics.nextActions,
965
+ ...failure.nextActions,
966
+ ], { instanceId, bridgeStartBlocked: diagnostics.details }, true, REGISTRY_POLL_INTERVAL_MS);
967
+ }
968
+ catch {
969
+ // 根因诊断永远不影响原始连接失败错误。
970
+ return failure;
971
+ }
866
972
  }
867
973
  function admissionWasRejected(response) {
868
974
  return response.ok === false && (response.error.code === "E_ADMISSION_REQUIRED" || response.error.code === "E_ADMISSION_IDENTITY_MISMATCH");