@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
@@ -36,11 +36,12 @@ namespace UnityCli
36
36
  private static string lastRegistrationSignature;
37
37
  private static long listenerGeneration;
38
38
  private static long publicationSequence;
39
- private static bool registryPublicationRetryPending;
40
- private static bool registryPublicationRetryExhausted;
41
- private static int registryPublicationAttemptCount;
42
- private static double nextRegistryPublicationRetryAt;
43
- private static string pendingRegistryRequestedState;
39
+ private static readonly UnityCliInstancePublicationRetry RegistryPublicationRetry = new UnityCliInstancePublicationRetry(
40
+ RegistryPublicationMaxAttempts,
41
+ () => EditorApplication.timeSinceStartup,
42
+ PublishInstanceForRetry,
43
+ RegistryPublicationRetryDelaySeconds,
44
+ WriteLog);
44
45
 
45
46
  /// <summary>当前 listener generation 只用于 transport attestation 与 registry 内部一致性校验。</summary>
46
47
  private static long CurrentListenerGeneration()
@@ -278,80 +279,43 @@ namespace UnityCli
278
279
  }
279
280
 
280
281
  /// <summary>请求当前状态发布;已有失败链只更新最新状态,不创建第二条重试链。</summary>
281
- private static bool RegisterInstance(string requestedState)
282
+ private static InstancePublicationRetryOutcome RegisterInstance(string requestedState)
282
283
  {
283
- if (registryPublicationRetryExhausted) return false;
284
- if (registryPublicationRetryPending)
285
- {
286
- pendingRegistryRequestedState = requestedState;
287
- return false;
288
- }
289
- return AttemptInstancePublication(requestedState);
284
+ return RegistryPublicationRetry.Request(requestedState);
290
285
  }
291
286
 
292
- /// <summary>中央update入口推进唯一重试链;达到上限后本次domain不再后台尝试。</summary>
293
- private static void TickInstancePublicationRetry()
287
+ /// <summary>中央update入口推进唯一重试链;首次publication结果由Bridge gate继续处理。</summary>
288
+ private static InstancePublicationRetryOutcome TickInstancePublicationRetry()
294
289
  {
295
- if (!registryPublicationRetryPending || registryPublicationRetryExhausted || !started || domainReloading) return;
296
- if (EditorApplication.timeSinceStartup < nextRegistryPublicationRetryAt) return;
297
- var requestedState = pendingRegistryRequestedState;
298
- registryPublicationRetryPending = false;
299
- pendingRegistryRequestedState = null;
300
- AttemptInstancePublication(string.IsNullOrEmpty(requestedState) ? "ready" : requestedState);
290
+ if (!started || domainReloading) return InstancePublicationRetryOutcome.None;
291
+ return RegistryPublicationRetry.Tick();
301
292
  }
302
293
 
303
294
  /// <summary>listener停止或domain结束时清空本次启动的重试状态。</summary>
304
295
  private static void CancelInstancePublicationRetry()
305
296
  {
306
- registryPublicationRetryPending = false;
307
- registryPublicationRetryExhausted = false;
308
- registryPublicationAttemptCount = 0;
309
- nextRegistryPublicationRetryAt = 0;
310
- pendingRegistryRequestedState = null;
297
+ RegistryPublicationRetry.Reset();
311
298
  }
312
299
 
313
- /// <summary>执行一次写入;只对文件、权限或锁类短暂失败安排有限重试。</summary>
314
- private static bool AttemptInstancePublication(string requestedState)
300
+ private static InstancePublicationAttempt PublishInstanceForRetry(string requestedState)
315
301
  {
316
302
  Exception failure;
317
- if (TryRegisterInstance(requestedState, out failure))
318
- {
319
- var recoveredAttempts = registryPublicationAttemptCount;
320
- CancelInstancePublicationRetry();
321
- if (recoveredAttempts > 0)
322
- WriteLog("instance_publication_retry_succeeded attempts=" + (recoveredAttempts + 1).ToString(CultureInfo.InvariantCulture));
323
- return true;
324
- }
325
-
326
- registryPublicationAttemptCount += 1;
327
- var failureKind = RegistryPublicationFailureKind(failure);
328
- var retryable = IsRetryableRegistryPublicationFailure(failure);
329
- WriteLog("instance_register_failed kind=" + failureKind + " retryable=" + (retryable ? "true" : "false") + " attempt=" + registryPublicationAttemptCount.ToString(CultureInfo.InvariantCulture));
330
- if (!retryable || registryPublicationAttemptCount >= RegistryPublicationMaxAttempts)
331
- {
332
- registryPublicationRetryPending = false;
333
- registryPublicationRetryExhausted = true;
334
- pendingRegistryRequestedState = null;
335
- WriteLog("instance_publication_retry_stopped kind=" + failureKind + " attempts=" + registryPublicationAttemptCount.ToString(CultureInfo.InvariantCulture) + " nextAction=restore-data-root-write-access-then-reload-domain");
336
- return false;
337
- }
338
-
339
- pendingRegistryRequestedState = requestedState;
340
- registryPublicationRetryPending = true;
341
- nextRegistryPublicationRetryAt = EditorApplication.timeSinceStartup + RegistryPublicationRetryDelaySeconds(registryPublicationAttemptCount);
342
- return false;
303
+ var result = TryRegisterInstance(requestedState, out failure);
304
+ return new InstancePublicationAttempt(result, IsRetryableRegistryPublicationFailure(failure), RegistryPublicationFailureKind(failure));
343
305
  }
344
306
 
345
- /// <summary>写入或更新当前editor session claim;同identity的其他存活claim必须保留以形成conflict。</summary>
346
- private static bool TryRegisterInstance(string requestedState, out Exception failure)
307
+ /// <summary>写入或更新当前editor session claim;stale CAS与写入失败必须保持可区分。</summary>
308
+ private static RegistryPublicationResult TryRegisterInstance(string requestedState, out Exception failure)
347
309
  {
348
310
  failure = null;
349
- // AutoStart=false不即时停当前domain,但compile/reload边界开始后不得再把旧listener发布成transitioning。
311
+ // AutoStart=false不即时停当前domain,但compile/reload边界开始后旧listener必须按stale结果退出。
350
312
  if (!UnityCliProjectSettings.Current.BridgeAutoStart
351
- && (domainReloading || EditorApplication.isCompiling || EditorApplication.isUpdating)) return true;
313
+ && (domainReloading || EditorApplication.isCompiling || EditorApplication.isUpdating))
314
+ return RegistryPublicationResult.StaleSkipped;
352
315
  try
353
316
  {
354
317
  string recoveryReason = null;
318
+ var publicationResult = RegistryPublicationResult.Written;
355
319
  WithRegistryMutex(() =>
356
320
  {
357
321
  var registry = ReadCurrentRegistryForPublication(out recoveryReason);
@@ -361,6 +325,7 @@ namespace UnityCli
361
325
  var nextSequence = Interlocked.Increment(ref publicationSequence);
362
326
  if (IsStalePublication(previous, listenerGeneration, nextSequence))
363
327
  {
328
+ publicationResult = RegistryPublicationResult.StaleSkipped;
364
329
  WriteLog("instance_publication_skipped_stale session=" + EditorSessionId() + " generation=" + listenerGeneration.ToString(CultureInfo.InvariantCulture) + " sequence=" + nextSequence.ToString(CultureInfo.InvariantCulture));
365
330
  return;
366
331
  }
@@ -370,9 +335,10 @@ namespace UnityCli
370
335
  var data = RegistryData(revision, sessions);
371
336
  WriteRegistryTextAtomically(InstancePath(), UnityCliSerializer.Serialize(data) + "\n");
372
337
  });
338
+ if (publicationResult != RegistryPublicationResult.Written) return publicationResult;
373
339
  if (!string.IsNullOrEmpty(recoveryReason))
374
340
  WriteLog("instance_registry_recovered reason=" + recoveryReason + " id=" + InstanceId());
375
- // Registry是低频publication,不是heartbeat;日志只记录生命周期或listener变化。
341
+ // Registry是低频publication,不是heartbeat;只有实际写入才更新signature与触发清理。
376
342
  var registrationSignature = NormalizeSessionLifecycle(requestedState) + "|" + ListenerId + "|" + listenerGeneration.ToString(CultureInfo.InvariantCulture);
377
343
  if (!string.Equals(registrationSignature, lastRegistrationSignature, StringComparison.Ordinal))
378
344
  {
@@ -380,12 +346,12 @@ namespace UnityCli
380
346
  WriteLog("instance_registered id=" + InstanceId() + " session=" + EditorSessionId() + " lifecycle=" + NormalizeSessionLifecycle(requestedState) + " listenerId=" + ListenerId + " generation=" + listenerGeneration.ToString(CultureInfo.InvariantCulture));
381
347
  }
382
348
  TryRunAutomaticInstanceCleanup();
383
- return true;
349
+ return RegistryPublicationResult.Written;
384
350
  }
385
351
  catch (Exception exception)
386
352
  {
387
353
  failure = exception;
388
- return false;
354
+ return RegistryPublicationResult.Failed;
389
355
  }
390
356
  }
391
357
 
@@ -496,13 +462,51 @@ namespace UnityCli
496
462
  && string.Equals(ReadString(identity, "canonicalProjectPath"), ProjectIdentity().CanonicalProjectPath, StringComparison.Ordinal);
497
463
  }
498
464
 
465
+ /// <summary>端口监听前冻结本domain唯一generation;网络接收与queue publication都只能发生在其后。</summary>
466
+ private static void PrepareListenerGenerationForStart()
467
+ {
468
+ if (listenerGeneration > 0) return;
469
+ WithRegistryMutex(() =>
470
+ {
471
+ string ignored;
472
+ EnsureListenerGeneration(ReadCurrentRegistryForPublication(out ignored));
473
+ });
474
+ if (listenerGeneration <= 0) throw new InvalidOperationException("Listener generation could not be established before startup.");
475
+ }
476
+
499
477
  /// <summary>读取当前 session 上一次 listener 代次;domain reload 后严格递增。</summary>
500
478
  private static void EnsureListenerGeneration(Dictionary<string, object> registry)
501
479
  {
502
480
  if (listenerGeneration > 0) return;
503
481
  var previous = ReadSessions(registry).FirstOrDefault(IsCurrentSession);
504
482
  var listener = ReadDictionary(previous, "listener");
505
- listenerGeneration = Math.Max(1L, ReadLong(listener, "generation") + 1L);
483
+ listenerGeneration = ComputeListenerGeneration(listenerGeneration, ReadLong(listener, "generation"));
484
+ }
485
+
486
+ private static long ComputeListenerGeneration(long currentGeneration, long previousGeneration)
487
+ {
488
+ return currentGeneration > 0 ? currentGeneration : Math.Max(1L, previousGeneration + 1L);
489
+ }
490
+
491
+ internal static long ComputeListenerGenerationForTests(long currentGeneration, long previousGeneration)
492
+ {
493
+ return ComputeListenerGeneration(currentGeneration, previousGeneration);
494
+ }
495
+
496
+ internal static RegistryPublicationResult RegistryPublicationResultForTests(
497
+ long previousGeneration,
498
+ long previousSequence,
499
+ long generation,
500
+ long sequence)
501
+ {
502
+ var previous = new Dictionary<string, object>
503
+ {
504
+ { "publicationSequence", previousSequence },
505
+ { "listener", new Dictionary<string, object> { { "generation", previousGeneration } } }
506
+ };
507
+ return IsStalePublication(previous, generation, sequence)
508
+ ? RegistryPublicationResult.StaleSkipped
509
+ : RegistryPublicationResult.Written;
506
510
  }
507
511
 
508
512
  /// <summary>供 deterministic port 选择读取本 session 的 previous actual port。</summary>
@@ -565,7 +569,7 @@ namespace UnityCli
565
569
  { "blockers", new List<object>() },
566
570
  { "unityVersion", Application.unityVersion },
567
571
  { "buildStamp", BridgeBuildStamp() },
568
- { "toolCatalogFingerprint", runtimeToolCatalogFingerprint ?? string.Empty }
572
+ { "toolCatalogFingerprint", ProjectToolCatalogSnapshotReader.Read().ToolCatalogFingerprint }
569
573
  };
570
574
  return session;
571
575
  }
@@ -710,5 +714,139 @@ namespace UnityCli
710
714
  return new Dictionary<string, object> { { "isPlaying", EditorApplication.isPlaying }, { "isPaused", EditorApplication.isPaused }, { "isPlayingOrWillChangePlaymode", EditorApplication.isPlayingOrWillChangePlaymode } };
711
715
  }
712
716
  }
717
+
718
+ internal enum RegistryPublicationResult
719
+ {
720
+ Written,
721
+ StaleSkipped,
722
+ Failed
723
+ }
724
+
725
+ internal enum InstancePublicationRetryOutcome
726
+ {
727
+ None,
728
+ Pending,
729
+ Written,
730
+ StaleSkipped,
731
+ PermanentFailure
732
+ }
733
+
734
+ internal sealed class InstancePublicationAttempt
735
+ {
736
+ internal InstancePublicationAttempt(RegistryPublicationResult result, bool retryable, string failureKind)
737
+ {
738
+ Result = result;
739
+ Retryable = retryable;
740
+ FailureKind = string.IsNullOrEmpty(failureKind) ? "unknown" : failureKind;
741
+ }
742
+
743
+ internal RegistryPublicationResult Result { get; private set; }
744
+ internal bool Retryable { get; private set; }
745
+ internal string FailureKind { get; private set; }
746
+ }
747
+
748
+ /// <summary>同domain registry publication的单链有界重试;clock与writer均为显式依赖。</summary>
749
+ internal sealed class UnityCliInstancePublicationRetry
750
+ {
751
+ private readonly int maxAttempts;
752
+ private readonly Func<double> now;
753
+ private readonly Func<string, InstancePublicationAttempt> publish;
754
+ private readonly Func<int, double> retryDelay;
755
+ private readonly Action<string> log;
756
+ private bool pending;
757
+ private bool exhausted;
758
+ private int attemptCount;
759
+ private double nextRetryAt;
760
+ private string pendingState;
761
+
762
+ internal UnityCliInstancePublicationRetry(
763
+ int maxAttempts,
764
+ Func<double> now,
765
+ Func<string, InstancePublicationAttempt> publish,
766
+ Func<int, double> retryDelay,
767
+ Action<string> log)
768
+ {
769
+ if (maxAttempts < 1 || now == null || publish == null || retryDelay == null || log == null)
770
+ throw new ArgumentException("Instance publication retry dependencies are incomplete.");
771
+ this.maxAttempts = maxAttempts;
772
+ this.now = now;
773
+ this.publish = publish;
774
+ this.retryDelay = retryDelay;
775
+ this.log = log;
776
+ }
777
+
778
+ internal bool Pending { get { return pending; } }
779
+ internal bool Exhausted { get { return exhausted; } }
780
+ internal int AttemptCount { get { return attemptCount; } }
781
+
782
+ internal InstancePublicationRetryOutcome Request(string requestedState)
783
+ {
784
+ if (string.IsNullOrEmpty(requestedState)) throw new ArgumentException("Requested registry state is required.", "requestedState");
785
+ if (exhausted) return InstancePublicationRetryOutcome.PermanentFailure;
786
+ if (pending)
787
+ {
788
+ pendingState = requestedState;
789
+ return InstancePublicationRetryOutcome.Pending;
790
+ }
791
+ return Attempt(requestedState);
792
+ }
793
+
794
+ internal InstancePublicationRetryOutcome Tick()
795
+ {
796
+ if (!pending || exhausted || now() < nextRetryAt) return InstancePublicationRetryOutcome.None;
797
+ var requestedState = string.IsNullOrEmpty(pendingState) ? "ready" : pendingState;
798
+ pending = false;
799
+ pendingState = null;
800
+ return Attempt(requestedState);
801
+ }
802
+
803
+ internal void Reset()
804
+ {
805
+ pending = false;
806
+ exhausted = false;
807
+ attemptCount = 0;
808
+ nextRetryAt = 0;
809
+ pendingState = null;
810
+ }
811
+
812
+ private InstancePublicationRetryOutcome Attempt(string requestedState)
813
+ {
814
+ var result = publish(requestedState);
815
+ if (result == null) throw new InvalidOperationException("Registry publication boundary returned no result.");
816
+ if (result.Result == RegistryPublicationResult.Written)
817
+ {
818
+ var recoveredAttempts = attemptCount;
819
+ Reset();
820
+ if (recoveredAttempts > 0)
821
+ log("instance_publication_retry_succeeded attempts=" + (recoveredAttempts + 1).ToString(CultureInfo.InvariantCulture));
822
+ return InstancePublicationRetryOutcome.Written;
823
+ }
824
+ if (result.Result == RegistryPublicationResult.StaleSkipped)
825
+ {
826
+ Reset();
827
+ return InstancePublicationRetryOutcome.StaleSkipped;
828
+ }
829
+ if (result.Result != RegistryPublicationResult.Failed)
830
+ throw new InvalidOperationException("Registry publication attempt returned an unknown result.");
831
+
832
+ attemptCount += 1;
833
+ log("instance_register_failed kind=" + result.FailureKind + " retryable=" + (result.Retryable ? "true" : "false")
834
+ + " attempt=" + attemptCount.ToString(CultureInfo.InvariantCulture));
835
+ if (!result.Retryable || attemptCount >= maxAttempts)
836
+ {
837
+ pending = false;
838
+ exhausted = true;
839
+ pendingState = null;
840
+ log("instance_publication_retry_stopped kind=" + result.FailureKind + " attempts=" + attemptCount.ToString(CultureInfo.InvariantCulture)
841
+ + " nextAction=restore-data-root-write-access-then-reload-domain");
842
+ return InstancePublicationRetryOutcome.PermanentFailure;
843
+ }
844
+
845
+ pendingState = requestedState;
846
+ pending = true;
847
+ nextRetryAt = now() + retryDelay(attemptCount);
848
+ return InstancePublicationRetryOutcome.Pending;
849
+ }
850
+ }
713
851
  }
714
852
  #endif
@@ -16,11 +16,10 @@ namespace UnityCli
16
16
  {
17
17
  return new List<object> {
18
18
  CapabilityData("camera", CameraCommands), CapabilityData("scene", SceneCommands), CapabilityData("go", GameObjectCommands), CapabilityData("asset", AssetCommands),
19
- CapabilityData("diagnose", DiagnoseCommands), CapabilityData("screenshot", ScreenshotCommands), CapabilityData("prefab", PrefabCommands), CapabilityData("ui", UiCommands),
19
+ CapabilityData("screenshot", ScreenshotCommands), CapabilityData("prefab", PrefabCommands), CapabilityData("ui", UiCommands),
20
20
  CapabilityData("material", MaterialCommands), CapabilityData("graphics", GraphicsCommands), CapabilityData("physics", PhysicsCommands), CapabilityData("scriptable-object", ScriptableObjectCommands),
21
21
  CapabilityData("profiler", ProfilerCommands), CapabilityData("animation", AnimationCommands), CapabilityData("shader", ShaderCommands), CapabilityData("texture", TextureCommands),
22
- CapabilityData("editor", EditorCommands), CapabilityData("code", CodeCommands), CapabilityData("project-tool", ProjectToolCommands), CapabilityData("runtime-tool", RuntimeToolCommands),
23
- CapabilityData("extension", ExtensionCommands)
22
+ CapabilityData("editor", EditorCommands), CapabilityData("code", CodeCommands), CapabilityData("project-tool", ProjectToolCommands), CapabilityData("runtime-tool", RuntimeToolCommands)
24
23
  };
25
24
  }
26
25