@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.
- package/README.md +5 -5
- package/contracts/command-contract.json +109 -217
- package/contracts/package-files.json +374 -294
- package/contracts/stable-session/direct-call-semantics.json +8 -2
- package/contracts/tool-completion-contract.json +148 -672
- package/dist/bridge/admission.d.ts +17 -1
- package/dist/bridge/admission.js +2 -0
- package/dist/bridge/admission.js.map +1 -1
- package/dist/bridge/domains/asset.js +3 -1
- package/dist/bridge/domains/asset.js.map +1 -1
- package/dist/bridge/domains/camera.js +39 -7
- package/dist/bridge/domains/camera.js.map +1 -1
- package/dist/bridge/domains/console.js +2 -1
- package/dist/bridge/domains/console.js.map +1 -1
- package/dist/bridge/domains/doctor.d.ts +3 -0
- package/dist/bridge/domains/doctor.js +8 -0
- package/dist/bridge/domains/doctor.js.map +1 -0
- package/dist/bridge/domains/editor.js +0 -4
- package/dist/bridge/domains/editor.js.map +1 -1
- package/dist/bridge/domains/game-object.js +4 -12
- package/dist/bridge/domains/game-object.js.map +1 -1
- package/dist/bridge/domains/graphics.js +1 -16
- package/dist/bridge/domains/graphics.js.map +1 -1
- package/dist/bridge/domains/object.js +3 -0
- package/dist/bridge/domains/object.js.map +1 -1
- package/dist/bridge/domains/physics.js +1 -2
- package/dist/bridge/domains/physics.js.map +1 -1
- package/dist/bridge/domains/profiler.js +18 -7
- package/dist/bridge/domains/profiler.js.map +1 -1
- package/dist/bridge/domains/project-tool.js +4 -0
- package/dist/bridge/domains/project-tool.js.map +1 -1
- package/dist/bridge/domains/reflection.js +10 -2
- package/dist/bridge/domains/reflection.js.map +1 -1
- package/dist/bridge/domains/runtime-tool.js +3 -0
- package/dist/bridge/domains/runtime-tool.js.map +1 -1
- package/dist/bridge/domains/scene.js +3 -8
- package/dist/bridge/domains/scene.js.map +1 -1
- package/dist/bridge/domains/screenshot.js +30 -6
- package/dist/bridge/domains/screenshot.js.map +1 -1
- package/dist/bridge/domains/ui.js +3 -1
- package/dist/bridge/domains/ui.js.map +1 -1
- package/dist/bridge/index.d.ts +5 -5
- package/dist/bridge/index.js +6 -9
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/registry.js +3 -5
- package/dist/bridge/registry.js.map +1 -1
- package/dist/bridge/session-supervisor.d.ts +6 -3
- package/dist/bridge/session-supervisor.js +145 -39
- package/dist/bridge/session-supervisor.js.map +1 -1
- package/dist/bridge/start-diagnostics.d.ts +19 -0
- package/dist/bridge/start-diagnostics.js +96 -0
- package/dist/bridge/start-diagnostics.js.map +1 -0
- package/dist/bridge/types.d.ts +6 -5
- package/dist/bridge/types.js +16 -2
- package/dist/bridge/types.js.map +1 -1
- package/dist/catalog-protocol.d.ts +64 -0
- package/dist/catalog-protocol.js +460 -0
- package/dist/catalog-protocol.js.map +1 -0
- package/dist/cli-commands/command.js +84 -61
- package/dist/cli-commands/command.js.map +1 -1
- package/dist/cli-commands/extensions.js +70 -50
- package/dist/cli-commands/extensions.js.map +1 -1
- package/dist/cli-commands/instances.js +1 -1
- package/dist/cli-commands/instances.js.map +1 -1
- package/dist/cli-commands/package.js +10 -2
- package/dist/cli-commands/package.js.map +1 -1
- package/dist/cli-process-owners.d.ts +6 -0
- package/dist/cli-process-owners.js +27 -0
- package/dist/cli-process-owners.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +20 -5
- package/dist/cli.js.map +1 -1
- package/dist/contracts/command-contract.js +14 -4
- package/dist/contracts/command-contract.js.map +1 -1
- package/dist/doctor.d.ts +4 -6
- package/dist/doctor.js +451 -398
- package/dist/doctor.js.map +1 -1
- package/dist/editor-blocker-observer.d.ts +2 -1
- package/dist/editor-blocker-observer.js +40 -13
- package/dist/editor-blocker-observer.js.map +1 -1
- package/dist/extension-availability.d.ts +27 -9
- package/dist/extension-availability.js +96 -56
- package/dist/extension-availability.js.map +1 -1
- package/dist/extensions/descriptor-loader.d.ts +2 -2
- package/dist/extensions/descriptor-loader.js +3 -4
- package/dist/extensions/descriptor-loader.js.map +1 -1
- package/dist/extensions/index.d.ts +1 -1
- package/dist/extensions/index.js +1 -1
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/installer.d.ts +57 -5
- package/dist/extensions/installer.js +263 -64
- package/dist/extensions/installer.js.map +1 -1
- package/dist/extensions/registry.js +3 -5
- package/dist/extensions/registry.js.map +1 -1
- package/dist/extensions/state-contract.d.ts +11 -0
- package/dist/extensions/state-contract.js +50 -0
- package/dist/extensions/state-contract.js.map +1 -0
- package/dist/instances.d.ts +19 -1
- package/dist/instances.js +39 -0
- package/dist/instances.js.map +1 -1
- package/dist/package-manager.d.ts +0 -24
- package/dist/package-manager.js +5 -58
- package/dist/package-manager.js.map +1 -1
- package/dist/project-tool-discovery.d.ts +5 -2
- package/dist/project-tool-discovery.js +22 -18
- package/dist/project-tool-discovery.js.map +1 -1
- package/dist/runtime-code.js +1 -1
- package/dist/runtime-code.js.map +1 -1
- package/dist/tool-name.d.ts +4 -0
- package/dist/tool-name.js +15 -0
- package/dist/tool-name.js.map +1 -0
- package/dist/tools/.generated-completion-registry.d.ts +2 -0
- package/dist/tools/.generated-completion-registry.js +763 -325
- package/dist/tools/.generated-completion-registry.js.map +1 -1
- package/dist/tools/.generated-registry.d.ts +6 -11
- package/dist/tools/.generated-registry.js +6 -11
- package/dist/tools/.generated-registry.js.map +1 -1
- package/dist/tools/.generated-schemas.js +11 -16
- package/dist/tools/.generated-schemas.js.map +1 -1
- package/dist/tools/asset/refresh-status.d.ts +3 -0
- package/dist/tools/asset/refresh-status.js +12 -0
- package/dist/tools/asset/refresh-status.js.map +1 -0
- package/dist/tools/asset/refresh.js +7 -3
- package/dist/tools/asset/refresh.js.map +1 -1
- package/dist/tools/build/player-status.d.ts +3 -0
- package/dist/tools/build/player-status.js +12 -0
- package/dist/tools/build/player-status.js.map +1 -0
- package/dist/tools/build/run.js +1 -1
- package/dist/tools/build/run.js.map +1 -1
- package/dist/tools/catalog-control.d.ts +22 -0
- package/dist/tools/catalog-control.js +335 -0
- package/dist/tools/catalog-control.js.map +1 -0
- package/dist/tools/catalog.d.ts +7 -9
- package/dist/tools/catalog.js +66 -45
- package/dist/tools/catalog.js.map +1 -1
- package/dist/tools/commands.d.ts +1 -1
- package/dist/tools/commands.js +44 -11
- package/dist/tools/commands.js.map +1 -1
- package/dist/tools/define.js +3 -2
- package/dist/tools/define.js.map +1 -1
- package/dist/tools/dispatcher.d.ts +53 -6
- package/dist/tools/dispatcher.js +277 -108
- package/dist/tools/dispatcher.js.map +1 -1
- package/dist/tools/editor/compile.js +1 -1
- package/dist/tools/editor/compile.js.map +1 -1
- package/dist/tools/editor/play-mode-status.d.ts +3 -0
- package/dist/tools/editor/play-mode-status.js +12 -0
- package/dist/tools/editor/play-mode-status.js.map +1 -0
- package/dist/tools/editor/readiness.d.ts +0 -1
- package/dist/tools/editor/readiness.js +0 -1
- package/dist/tools/editor/readiness.js.map +1 -1
- package/dist/tools/editor/refresh.d.ts +7 -3
- package/dist/tools/editor/refresh.js +20 -15
- package/dist/tools/editor/refresh.js.map +1 -1
- package/dist/tools/editor/state.d.ts +2 -2
- package/dist/tools/editor/state.js +13 -12
- package/dist/tools/editor/state.js.map +1 -1
- package/dist/tools/metadata/derived.js +1 -7
- package/dist/tools/metadata/derived.js.map +1 -1
- package/dist/tools/metadata/status.js +1 -12
- package/dist/tools/metadata/status.js.map +1 -1
- package/dist/tools/metadata/types.d.ts +0 -2
- package/dist/tools/navmesh/live.js +1 -1
- package/dist/tools/navmesh/live.js.map +1 -1
- package/dist/tools/occlusion/live.js +1 -1
- package/dist/tools/occlusion/live.js.map +1 -1
- package/dist/tools/package/deploy.js +2 -2
- package/dist/tools/package/deploy.js.map +1 -1
- package/dist/tools/package/embed.js +1 -1
- package/dist/tools/package/embed.js.map +1 -1
- package/dist/tools/package/install-status.d.ts +3 -0
- package/dist/tools/package/install-status.js +12 -0
- package/dist/tools/package/install-status.js.map +1 -0
- package/dist/tools/package/install.js +3 -3
- package/dist/tools/package/install.js.map +1 -1
- package/dist/tools/package/live-resolve.js +45 -12
- package/dist/tools/package/live-resolve.js.map +1 -1
- package/dist/tools/package/registry-clear.js.map +1 -1
- package/dist/tools/package/registry-set.js.map +1 -1
- package/dist/tools/package/remove-status.d.ts +3 -0
- package/dist/tools/package/remove-status.js +12 -0
- package/dist/tools/package/remove-status.js.map +1 -0
- package/dist/tools/package/remove.js +3 -3
- package/dist/tools/package/remove.js.map +1 -1
- package/dist/tools/package/resolve.js +3 -3
- package/dist/tools/package/resolve.js.map +1 -1
- package/dist/tools/package/restore.js +2 -2
- package/dist/tools/package/restore.js.map +1 -1
- package/dist/tools/package/scoped-registry-add.js.map +1 -1
- package/dist/tools/status/support.d.ts +13 -0
- package/dist/tools/status/support.js +28 -0
- package/dist/tools/status/support.js.map +1 -0
- package/dist/tools/test/cancel.js +2 -2
- package/dist/tools/test/cancel.js.map +1 -1
- package/dist/tools/test/run-status.d.ts +3 -0
- package/dist/tools/test/run-status.js +12 -0
- package/dist/tools/test/run-status.js.map +1 -0
- package/dist/tools/test/run.js +7 -4
- package/dist/tools/test/run.js.map +1 -1
- package/dist/tools/tools/group-summaries.js +10 -14
- package/dist/tools/tools/group-summaries.js.map +1 -1
- package/docs/architecture.md +4 -4
- package/docs/availability-differences.md +4 -4
- package/docs/command-execution.md +4 -3
- package/docs/error-codes.md +13 -5
- package/docs/extensions.md +1 -7
- package/docs/risk-and-side-effects.md +4 -3
- package/docs/safety-boundaries.md +3 -1
- package/docs/target-and-instance.md +1 -1
- package/docs/tool-discovery.md +17 -10
- package/docs/tool-execution.md +18 -7
- package/extensions/cinemachine/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/extensions/hdrp/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/extensions/probuilder/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/extensions/urp/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/extensions/vfx-graph/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/package.json +2 -4
- package/skills/unitycli/SKILL.md +11 -2
- package/skills/unitycli/manifest.json +1 -1
- package/skills/unitycli/references/operation-protocol.md +3 -3
- package/unitypkg/Editor/AssemblyInfo.cs +5 -0
- package/unitypkg/Editor/Bridge/BridgeCommandRegistry.cs +49 -14
- package/unitypkg/Editor/Bridge/BridgeHttpServer.cs +9 -35
- package/unitypkg/Editor/Bridge/BridgeQueueState.cs +672 -0
- package/unitypkg/Editor/Bridge/BridgeWorkQueue.cs +970 -120
- package/unitypkg/Editor/BridgeStartupStateMachine.cs +59 -1
- package/unitypkg/Editor/Commands/ProjectToolCommands.cs +4 -0
- package/unitypkg/Editor/Commands/RuntimeToolCommands.cs +3 -0
- package/unitypkg/Editor/Generated/UnityCliToolCompletionRegistry.g.cs +379 -14
- package/unitypkg/Editor/Infrastructure/CodeExecSupport.cs +28 -13
- package/unitypkg/Editor/Infrastructure/RegistryOwnershipResolver.cs +132 -105
- package/unitypkg/Editor/Infrastructure/UnityCliActiveOperation.cs +138 -29
- package/unitypkg/Editor/Infrastructure/UnityCliAdmission.cs +1856 -237
- package/unitypkg/Editor/Infrastructure/UnityCliDoctorDiagnostics.cs +220 -0
- package/unitypkg/Editor/Infrastructure/UnityCliDurableStatusCoordinator.cs +118 -0
- package/unitypkg/Editor/Infrastructure/UnityCliEditorStateSnapshot.cs +2 -1
- package/unitypkg/Editor/Infrastructure/UnityCliHierarchyPager.cs +203 -0
- package/unitypkg/Editor/Infrastructure/UnityCliInstanceCleanup.cs +2 -1
- package/unitypkg/Editor/Infrastructure/UnityCliInstanceRegistry.cs +201 -63
- package/unitypkg/Editor/Infrastructure/UnityCliJson.cs +2 -3
- package/unitypkg/Editor/Infrastructure/UnityCliLiveBuildCoordinator.cs +289 -46
- package/unitypkg/Editor/Infrastructure/UnityCliLiveRefreshCoordinator.cs +87 -53
- package/unitypkg/Editor/Infrastructure/UnityCliNavMeshBakeCoordinator.cs +4 -4
- package/unitypkg/Editor/Infrastructure/UnityCliObjectRef.cs +128 -25
- package/unitypkg/Editor/Infrastructure/UnityCliObjectSerializer.cs +435 -327
- package/unitypkg/Editor/Infrastructure/UnityCliOcclusionBakeCoordinator.cs +4 -4
- package/unitypkg/Editor/Infrastructure/UnityCliOperationCoordinator.cs +351 -53
- package/unitypkg/Editor/Infrastructure/UnityCliPackageResolveCoordinator.cs +118 -18
- package/unitypkg/Editor/Infrastructure/UnityCliPackageResolveState.cs +20 -1
- package/unitypkg/Editor/Infrastructure/UnityCliReadGeneration.cs +97 -0
- package/unitypkg/Editor/Infrastructure/UnityCliReflection.cs +644 -133
- package/unitypkg/Editor/Infrastructure/UnityCliReloadOperation.cs +128 -41
- package/unitypkg/Editor/Infrastructure/UnityCliRuntimeExecutor.cs +14 -84
- package/unitypkg/Editor/Infrastructure/UnityCliSerializer.cs +220 -0
- package/unitypkg/Editor/Infrastructure/UnityCliSessionMutationLease.cs +69 -29
- package/unitypkg/Editor/Infrastructure/UnityCliTestRunCoordinator.cs +440 -54
- package/unitypkg/Editor/Infrastructure/UnityCliWaiter.cs +128 -35
- package/unitypkg/Editor/ProjectTools/IUnityCliTool.cs +9 -1
- package/unitypkg/Editor/ProjectTools/OfficialAttributeToolRegistry.cs +32 -31
- package/unitypkg/Editor/ProjectTools/ProjectToolRegistry.cs +607 -458
- package/unitypkg/Editor/ProjectTools/ProjectToolSchemaValidator.cs +35 -7
- package/unitypkg/Editor/ProjectTools/RegisteredTool.cs +501 -60
- package/unitypkg/Editor/ProjectTools/UnityCliProjectToolContext.cs +21 -0
- package/unitypkg/Editor/ProjectTools/UnityCliSchemaDeriver.cs +36 -7
- package/unitypkg/Editor/ProjectTools/UnityCliToolName.cs +30 -0
- package/unitypkg/Editor/Properties/AssemblyInfo.cs +3 -0
- package/unitypkg/Editor/Tools/asset/get-data.cs +16 -7
- package/unitypkg/Editor/Tools/build/BuildSceneStateTool.cs +23 -3
- package/unitypkg/Editor/Tools/build/BuildToolDtos.cs +2 -1
- package/unitypkg/Editor/Tools/build/scene/add.cs +6 -3
- package/unitypkg/Editor/Tools/build/scene/disable.cs +1 -1
- package/unitypkg/Editor/Tools/build/scene/enable.cs +1 -1
- package/unitypkg/Editor/Tools/build/scene/list.cs +1 -1
- package/unitypkg/Editor/Tools/build/scene/remove.cs +13 -3
- package/unitypkg/Editor/Tools/camera/CameraToolSupport.cs +38 -38
- package/unitypkg/Editor/Tools/camera/multiview.cs +13 -6
- package/unitypkg/Editor/Tools/camera/screenshot.cs +14 -7
- package/unitypkg/Editor/Tools/component/get.cs +16 -9
- package/unitypkg/Editor/Tools/component/modify.cs +6 -4
- package/unitypkg/Editor/Tools/console/clear.cs +7 -6
- package/unitypkg/Editor/Tools/console/get.cs +48 -16
- package/unitypkg/Editor/Tools/editor/EditorToolSupport.cs +143 -28
- package/unitypkg/Editor/Tools/editor/menu-items.cs +1 -1
- package/unitypkg/Editor/Tools/editor/play.cs +2 -11
- package/unitypkg/Editor/Tools/editor/selection.cs +1 -1
- package/unitypkg/Editor/Tools/editor/stop.cs +2 -11
- package/unitypkg/Editor/Tools/editor/windows.cs +1 -1
- package/unitypkg/Editor/Tools/go/GameObjectToolSupport.cs +54 -4
- package/unitypkg/Editor/Tools/go/delete.cs +1 -1
- package/unitypkg/Editor/Tools/go/find.cs +167 -70
- package/unitypkg/Editor/Tools/graphics/GraphicsToolSupport.cs +25 -0
- package/unitypkg/Editor/Tools/graphics/light-probe-group.cs +9 -3
- package/unitypkg/Editor/Tools/graphics/pipeline-info.cs +1 -1
- package/unitypkg/Editor/Tools/graphics/pipeline-settings.cs +1 -1
- package/unitypkg/Editor/Tools/graphics/quality.cs +2 -2
- package/unitypkg/Editor/Tools/graphics/reflection-probe.cs +3 -3
- package/unitypkg/Editor/Tools/graphics/stats.cs +1 -1
- package/unitypkg/Editor/Tools/object/ObjectToolSupport.cs +4 -4
- package/unitypkg/Editor/Tools/object/get-data.cs +9 -7
- package/unitypkg/Editor/Tools/object/modify.cs +7 -5
- package/unitypkg/Editor/Tools/physics/raycast.cs +24 -6
- package/unitypkg/Editor/Tools/prefab/stage.cs +1 -1
- package/unitypkg/Editor/Tools/profiler/ProfilerFrameDebuggerSupport.cs +94 -21
- package/unitypkg/Editor/Tools/profiler/ProfilerMemorySnapshotSupport.cs +397 -10
- package/unitypkg/Editor/Tools/profiler/ProfilerToolSupport.cs +18 -4
- package/unitypkg/Editor/Tools/profiler/frame-debugger/enable.cs +1 -1
- package/unitypkg/Editor/Tools/profiler/frame-debugger/events.cs +88 -87
- package/unitypkg/Editor/Tools/profiler/hierarchy.cs +278 -112
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/compare.cs +9 -5
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/list.cs +37 -35
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/take.cs +99 -97
- package/unitypkg/Editor/Tools/project/info.cs +1 -1
- package/unitypkg/Editor/Tools/project/layers.cs +1 -1
- package/unitypkg/Editor/Tools/project/tags.cs +1 -1
- package/unitypkg/Editor/Tools/reflection/method/call.cs +9 -7
- package/unitypkg/Editor/Tools/reflection/method/find.cs +27 -37
- package/unitypkg/Editor/Tools/reflection/type/schema.cs +24 -28
- package/unitypkg/Editor/Tools/scene/gameobject/component.cs +8 -5
- package/unitypkg/Editor/Tools/scene/gameobject/components.cs +10 -7
- package/unitypkg/Editor/Tools/scene/gameobject-support.cs +104 -8
- package/unitypkg/Editor/Tools/scene/gameobject.cs +37 -16
- package/unitypkg/Editor/Tools/scene/hierarchy.cs +146 -142
- package/unitypkg/Editor/Tools/screenshot/EditorElementCaptureToolSupport.cs +77 -25
- package/unitypkg/Editor/Tools/screenshot/ScreenshotToolSupport.cs +315 -95
- package/unitypkg/Editor/Tools/screenshot/editor-element.cs +7 -5
- package/unitypkg/Editor/Tools/screenshot/game-view.cs +35 -21
- package/unitypkg/Editor/Tools/screenshot/isolated-object.cs +29 -23
- package/unitypkg/Editor/Tools/screenshot/orbit.cs +37 -25
- package/unitypkg/Editor/Tools/screenshot/scene-view.cs +25 -18
- package/unitypkg/Editor/Tools/screenshot/screen.cs +177 -17
- package/unitypkg/Editor/Tools/screenshot/surround.cs +83 -79
- package/unitypkg/Editor/Tools/ui/render-preview.cs +16 -11
- package/unitypkg/Editor/UnityCliBridge.cs +97 -34
- package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeBridge.cs +753 -122
- package/unitypkg/Runtime/Properties/AssemblyInfo.cs +5 -0
- package/unitypkg/Runtime/UnityCli.Runtime.asmdef +1 -1
- package/unitypkg/Shared/AssemblyInfo.cs +4 -0
- package/unitypkg/Shared/UnityCliAdmissionPool.cs +265 -75
- package/unitypkg/Shared/UnityCliBridgeQueuePolicy.cs +410 -0
- package/unitypkg/Shared/UnityCliBridgeWorkItemState.cs +47 -0
- package/unitypkg/Shared/UnityCliExceptionProjection.cs +151 -0
- package/unitypkg/Shared/UnityCliQueuePublication.cs +30 -0
- package/unitypkg/Shared/UnityCliRequestBudget.cs +352 -0
- package/unitypkg/Shared/UnityCliRuntimeRequestPublication.cs +107 -0
- package/unitypkg/Tests/Editor/UnityCli.Editor.Tests.asmdef +2 -2
- package/unitypkg/Tests/Editor/UnityCliAdmissionCoordinatorIntegrationTests.cs +1329 -0
- package/unitypkg/Tests/Editor/UnityCliAdmissionPoolTests.cs +311 -114
- package/unitypkg/Tests/Editor/UnityCliAdmissionRepairStateTests.cs +94 -0
- package/unitypkg/Tests/Editor/UnityCliBridgeAdmissionIntegrationTests.cs +1229 -0
- package/unitypkg/Tests/Editor/UnityCliBridgeQueuePolicyTests.cs +412 -0
- package/unitypkg/Tests/Editor/UnityCliContinuationIntegrationTests.cs +292 -0
- package/unitypkg/Tests/Editor/UnityCliDiagnosticBoundaryTests.cs +120 -0
- package/unitypkg/Tests/Editor/UnityCliDurableStatusTests.cs +84 -0
- package/unitypkg/Tests/Editor/UnityCliExceptionProjectionTests.cs +72 -0
- package/unitypkg/Tests/Editor/UnityCliInstancePublicationRetryTests.cs +180 -97
- package/unitypkg/Tests/Editor/UnityCliMemoryReflectionIntegrationTests.cs +434 -0
- package/unitypkg/Tests/Editor/UnityCliRequestBudgetTests.cs +615 -0
- package/unitypkg/Tests/Editor/UnityCliRuntimeBridgeIntegrationTests.cs +520 -0
- package/unitypkg/Tests/Editor/UnityCliToolCatalogTests.cs +562 -0
- package/unitypkg/Tests/Runtime/UnityCli.Runtime.Tests.asmdef +23 -0
- package/unitypkg/Tests/Runtime/UnityCliRuntimeCatalogValidationTests.cs +29 -0
- package/unitypkg/package.json +1 -1
- package/contracts/static-capability-catalog.json +0 -48226
- package/dist/bridge/domains/diagnose.d.ts +0 -2
- package/dist/bridge/domains/diagnose.js +0 -11
- package/dist/bridge/domains/diagnose.js.map +0 -1
- package/dist/bridge/domains/extension.d.ts +0 -8
- package/dist/bridge/domains/extension.js +0 -20
- package/dist/bridge/domains/extension.js.map +0 -1
- package/dist/capabilities.d.ts +0 -5
- package/dist/capabilities.js +0 -84
- package/dist/capabilities.js.map +0 -1
- package/dist/static-capability-catalog.d.ts +0 -13
- package/dist/static-capability-catalog.js +0 -41
- package/dist/static-capability-catalog.js.map +0 -1
- package/dist/tools/diagnose/capabilities.d.ts +0 -13
- package/dist/tools/diagnose/capabilities.js +0 -34
- package/dist/tools/diagnose/capabilities.js.map +0 -1
- package/dist/tools/package/info.d.ts +0 -19
- package/dist/tools/package/info.js +0 -27
- package/dist/tools/package/info.js.map +0 -1
- package/dist/tools/package/list.d.ts +0 -27
- package/dist/tools/package/list.js +0 -21
- package/dist/tools/package/list.js.map +0 -1
- package/dist/tools/package/registry-get.d.ts +0 -10
- package/dist/tools/package/registry-get.js +0 -22
- package/dist/tools/package/registry-get.js.map +0 -1
- package/dist/tools/package/scoped-registry-list.d.ts +0 -14
- package/dist/tools/package/scoped-registry-list.js +0 -22
- package/dist/tools/package/scoped-registry-list.js.map +0 -1
- package/dist/tools/package/search.d.ts +0 -17
- package/dist/tools/package/search.js +0 -39
- package/dist/tools/package/search.js.map +0 -1
- package/dist/tools/package/status.d.ts +0 -21
- package/dist/tools/package/status.js +0 -37
- package/dist/tools/package/status.js.map +0 -1
- package/dist/tools/tools/describe.d.ts +0 -27
- package/dist/tools/tools/describe.js +0 -35
- package/dist/tools/tools/describe.js.map +0 -1
- package/dist/tools/tools/group-list.d.ts +0 -16
- package/dist/tools/tools/group-list.js +0 -38
- package/dist/tools/tools/group-list.js.map +0 -1
- package/dist/tools/tools/group.d.ts +0 -13
- package/dist/tools/tools/group.js +0 -34
- package/dist/tools/tools/group.js.map +0 -1
- package/dist/tools/tools/pagination.d.ts +0 -17
- package/dist/tools/tools/pagination.js +0 -28
- package/dist/tools/tools/pagination.js.map +0 -1
- package/dist/tools/tools/search.d.ts +0 -15
- package/dist/tools/tools/search.js +0 -42
- package/dist/tools/tools/search.js.map +0 -1
- package/unitypkg/Editor/Tools/diagnose/preflight.cs +0 -269
- package/unitypkg/Editor/Tools/editor/console.cs +0 -26
- package/unitypkg/Editor/Tools/extension/status.cs +0 -87
- package/unitypkg/Editor/Tools/go/inspect.cs +0 -49
- package/unitypkg/Editor/Tools/graphics/pipeline-quality.cs +0 -24
- package/unitypkg/Editor/Tools/graphics/probe-positions.cs +0 -58
- package/unitypkg/Editor/Tools/graphics/settings.cs +0 -104
- package/unitypkg/Editor/Tools/graphics/stats-counters.cs +0 -28
- package/unitypkg/Editor/Tools/graphics/stats-memory.cs +0 -21
- package/unitypkg/Editor/Tools/instances/list.cs +0 -71
- package/unitypkg/Editor/Tools/physics/raycast-all.cs +0 -67
- package/unitypkg/Editor/Tools/scene/build-settings.cs +0 -69
- package/unitypkg/Editor/Tools/scene/data.cs +0 -125
- package/unitypkg/Editor/Tools/tests/list.cs +0 -98
|
@@ -33,28 +33,25 @@ namespace UnityCli
|
|
|
33
33
|
private const int PreferredPortRange = 4096;
|
|
34
34
|
private const int PreferredPortRetryCount = 4;
|
|
35
35
|
private const int DeterministicFallbackCount = 64;
|
|
36
|
-
private static readonly object QueueLock = new object();
|
|
37
36
|
private static readonly string[] CameraCommands = { "camera.list", "camera.info", "camera.screenshot", "camera.create", "camera.target", "camera.lens", "camera.multiview" };
|
|
38
|
-
private static readonly string[] SceneCommands = { "scene.active", "scene.hierarchy", "scene.
|
|
39
|
-
private static readonly string[] GameObjectCommands = { "go.find", "go.
|
|
37
|
+
private static readonly string[] SceneCommands = { "scene.active", "scene.hierarchy", "scene.create", "scene.load", "scene.save" };
|
|
38
|
+
private static readonly string[] GameObjectCommands = { "go.find", "go.create", "go.modify", "go.duplicate", "go.move-relative", "go.look-at", "go.delete", "component.add", "component.remove", "component.set" };
|
|
40
39
|
private static readonly string[] AssetCommands = { "asset.search", "asset.info", "asset.create", "asset.import", "asset.modify", "asset.delete", "asset.duplicate", "asset.move", "asset.rename", "asset.refresh" };
|
|
41
|
-
private static readonly string[] DiagnoseCommands = { "diagnose.preflight" };
|
|
42
40
|
private static readonly string[] ScreenshotCommands = { "screenshot.game-view", "screenshot.scene-view", "screenshot.isolated-object", "screenshot.orbit", "screenshot.surround" };
|
|
43
41
|
private static readonly string[] PrefabCommands = { "prefab.info", "prefab.hierarchy", "prefab.create", "prefab.modify", "prefab.stage-open", "prefab.stage-save", "prefab.stage-close" };
|
|
44
42
|
private static readonly string[] UiCommands = { "ui.canvas.create", "ui.text.create", "ui.button.create", "ui.image.create", "ui.document.info", "ui.document.create", "ui.hierarchy" };
|
|
45
43
|
private static readonly string[] MaterialCommands = { "material.info", "material.create", "material.assign", "material.set" };
|
|
46
|
-
private static readonly string[] GraphicsCommands = { "graphics.quality", "graphics.
|
|
47
|
-
private static readonly string[] PhysicsCommands = { "physics.settings", "physics.collision-matrix", "physics.material", "physics.assign-material", "physics.joint.add", "physics.joint.remove", "physics.force", "physics.overlap", "physics.rigidbody", "physics.raycast", "physics.simulation", "physics.
|
|
44
|
+
private static readonly string[] GraphicsCommands = { "graphics.quality", "graphics.volume", "graphics.bake-start", "graphics.bake-cancel", "graphics.bake-status", "graphics.bake-clear", "graphics.bake-reflection-probe", "graphics.bake-settings", "graphics.light-probe-group", "graphics.reflection-probe", "graphics.stats", "graphics.scene-debug", "graphics.skybox-get", "graphics.skybox-set-material", "graphics.skybox-set-properties", "graphics.skybox-set-ambient", "graphics.skybox-set-fog", "graphics.skybox-set-reflection", "graphics.skybox-set-sun", "graphics.pipeline-settings", "graphics.pipeline-info" };
|
|
45
|
+
private static readonly string[] PhysicsCommands = { "physics.settings", "physics.collision-matrix", "physics.material", "physics.assign-material", "physics.joint.add", "physics.joint.remove", "physics.force", "physics.overlap", "physics.rigidbody", "physics.raycast", "physics.simulation", "physics.linecast", "physics.shapecast", "physics.validate" };
|
|
48
46
|
private static readonly string[] ProfilerCommands = { "profiler.start", "profiler.stop", "profiler.pause", "profiler.counter", "profiler.memory", "profiler.frame", "profiler.capture", "profiler.export", "profiler.status" };
|
|
49
47
|
private static readonly string[] AnimationCommands = { "animation.clip", "animation.clip.create", "animation.clip.modify", "animation.state", "animation.play", "animation.stop", "animator.get-info", "animator.get-parameter", "animator.set-parameter", "animator.crossfade", "animator.set-speed", "animator.set-enabled", "controller.create", "controller.add-state", "controller.add-transition", "controller.add-parameter", "controller.get-info", "controller.assign", "controller.add-layer", "controller.remove-layer", "controller.set-layer-weight", "controller.create-blend-tree-1d", "controller.create-blend-tree-2d", "controller.add-blend-tree-child" };
|
|
50
48
|
private static readonly string[] ShaderCommands = { "shader.info", "shader.read", "shader.create", "shader.update" };
|
|
51
49
|
private static readonly string[] TextureCommands = { "texture.info", "texture.create", "texture.sprite", "texture.import-settings" };
|
|
52
|
-
private static readonly string[] EditorCommands = { "editor.play", "editor.pause", "editor.stop", "editor.undo", "editor.redo", "editor.resolution", "editor.menu", "
|
|
50
|
+
private static readonly string[] EditorCommands = { "editor.play", "editor.pause", "editor.stop", "editor.undo", "editor.redo", "editor.resolution", "editor.menu", "project.tag.add", "project.tag.remove", "project.layer.add", "project.layer.remove" };
|
|
53
51
|
private static readonly string[] ScriptableObjectCommands = { "scriptable-object.create", "scriptable-object.info", "scriptable-object.list-types", "scriptable-object.modify" };
|
|
54
52
|
private static readonly string[] CodeCommands = { "code.exec" };
|
|
55
|
-
private static readonly string[] ProjectToolCommands = { "project-tool.list", "project-tool.run" };
|
|
56
|
-
private static readonly string[] RuntimeToolCommands = { "runtime-tool.list", "runtime-tool.run" };
|
|
57
|
-
private static readonly string[] ExtensionCommands = { "extension.status" };
|
|
53
|
+
private static readonly string[] ProjectToolCommands = { "project-tool.health", "project-tool.groups", "project-tool.summary", "project-tool.describe", "project-tool.list", "project-tool.run" };
|
|
54
|
+
private static readonly string[] RuntimeToolCommands = { "runtime-tool.groups", "runtime-tool.summary", "runtime-tool.describe", "runtime-tool.list", "runtime-tool.run" };
|
|
58
55
|
private const string BridgeDiagnosticsFingerprint = "health-fingerprint-play-mode-guard-v3";
|
|
59
56
|
private static readonly BridgeCommandRegistry CommandRegistry = CreateCommandRegistry();
|
|
60
57
|
private static readonly string ListenerId = "listener-" + Guid.NewGuid().ToString("N");
|
|
@@ -62,7 +59,7 @@ namespace UnityCli
|
|
|
62
59
|
private static HttpListener listener;
|
|
63
60
|
private static bool started;
|
|
64
61
|
private static readonly BridgeStartupStateMachine StartupState = new BridgeStartupStateMachine();
|
|
65
|
-
private static
|
|
62
|
+
private static readonly BridgeInitialPublicationGate InitialPublicationGate = new BridgeInitialPublicationGate();
|
|
66
63
|
private static volatile bool domainReloading;
|
|
67
64
|
private const double RegistryRefreshSeconds = 30.0;
|
|
68
65
|
private static int port;
|
|
@@ -81,6 +78,11 @@ namespace UnityCli
|
|
|
81
78
|
private static volatile bool cachedIsBuilding;
|
|
82
79
|
private static volatile bool cachedIsPlayModeChanging;
|
|
83
80
|
private static volatile bool playModeChanging = EditorApplication.isPlaying != EditorApplication.isPlayingOrWillChangePlaymode;
|
|
81
|
+
internal static void HitQueueTestBoundary(BridgeQueueState state, string name)
|
|
82
|
+
{
|
|
83
|
+
if (state == null) throw new ArgumentNullException("state");
|
|
84
|
+
state.TestHooks.Hit(name);
|
|
85
|
+
}
|
|
84
86
|
|
|
85
87
|
static UnityCliBridge()
|
|
86
88
|
{
|
|
@@ -88,6 +90,8 @@ namespace UnityCli
|
|
|
88
90
|
if (AssetDatabase.IsAssetImportWorkerProcess()) return;
|
|
89
91
|
WriteRuntimeLoadDiagnostics("static_constructor");
|
|
90
92
|
UnityCliTransactionLog.RotateForNewSession();
|
|
93
|
+
InitializeProjectToolCatalog();
|
|
94
|
+
if (ProjectToolCatalogReady()) InitializeRuntimeExecutor();
|
|
91
95
|
InitializeAdmissionPool();
|
|
92
96
|
UnityCliSessionMutationLease.Initialize();
|
|
93
97
|
UnityCliCompilationEventBroker.Initialize();
|
|
@@ -107,6 +111,11 @@ namespace UnityCli
|
|
|
107
111
|
EditorApplication.quitting += UnregisterAndStop;
|
|
108
112
|
EditorApplication.playModeStateChanged += OnBridgePlayModeStateChanged;
|
|
109
113
|
domainReloading = false;
|
|
114
|
+
lock (ProductionQueueState.QueueLock)
|
|
115
|
+
{
|
|
116
|
+
ProductionQueueState.QueuePublicationOpen = false;
|
|
117
|
+
ProductionQueueState.QueueSessionStopping = false;
|
|
118
|
+
}
|
|
110
119
|
ScheduleBridgeStartup();
|
|
111
120
|
}
|
|
112
121
|
|
|
@@ -175,11 +184,22 @@ namespace UnityCli
|
|
|
175
184
|
StartListener();
|
|
176
185
|
}
|
|
177
186
|
|
|
178
|
-
/// <summary
|
|
187
|
+
/// <summary>handoff 与 Tool snapshot 均完成后才允许发布 listener;失败时整个 startup fail closed。</summary>
|
|
179
188
|
private static bool CompleteBridgeStartup(out string handoffState, out string handoffError)
|
|
180
189
|
{
|
|
181
190
|
WriteLog("bridge_pipeline_handoff_started");
|
|
182
|
-
|
|
191
|
+
if (!UnityCliPipelineHandoff.EnsureAppliedOnce(out handoffState, out handoffError)) return false;
|
|
192
|
+
try
|
|
193
|
+
{
|
|
194
|
+
ReadPublishedProjectToolCatalogSnapshot();
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
catch (Exception exception)
|
|
198
|
+
{
|
|
199
|
+
handoffState = "tool-registry-unhealthy";
|
|
200
|
+
handoffError = exception.GetType().Name + ": " + exception.Message;
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
183
203
|
}
|
|
184
204
|
|
|
185
205
|
private static void StartListener()
|
|
@@ -191,15 +211,19 @@ namespace UnityCli
|
|
|
191
211
|
|
|
192
212
|
try
|
|
193
213
|
{
|
|
214
|
+
PrepareListenerGenerationForStart();
|
|
215
|
+
if (string.IsNullOrWhiteSpace(ListenerId)) throw new InvalidOperationException("Listener identity is unavailable.");
|
|
194
216
|
listener = new HttpListener();
|
|
195
217
|
port = StartHttpListener(listener);
|
|
196
218
|
started = true;
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
219
|
+
lock (ProductionQueueState.QueueLock)
|
|
220
|
+
{
|
|
221
|
+
ProductionQueueState.QueueSessionStopping = false;
|
|
222
|
+
ProductionQueueState.QueuePublicationOpen = false;
|
|
223
|
+
}
|
|
224
|
+
StartupState.BeginRegistryPublication();
|
|
225
|
+
InitialPublicationGate.Start();
|
|
226
|
+
HandleInitialPublicationOutcome(RegisterInstance("transitioning"));
|
|
203
227
|
}
|
|
204
228
|
catch (Exception exception)
|
|
205
229
|
{
|
|
@@ -209,9 +233,44 @@ namespace UnityCli
|
|
|
209
233
|
}
|
|
210
234
|
}
|
|
211
235
|
|
|
236
|
+
/// <summary>首次registry成功后只开放一次queue并启动一次ListenLoop;永久失败才停止listener。</summary>
|
|
237
|
+
private static void HandleInitialPublicationOutcome(InstancePublicationRetryOutcome outcome)
|
|
238
|
+
{
|
|
239
|
+
if (outcome == InstancePublicationRetryOutcome.None) return;
|
|
240
|
+
var action = InitialPublicationGate.Apply(outcome);
|
|
241
|
+
if (action == BridgeInitialPublicationAction.Wait)
|
|
242
|
+
{
|
|
243
|
+
WriteRuntimeLoadDiagnostics("listener_registry_pending");
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
if (action == BridgeInitialPublicationAction.StopListener)
|
|
247
|
+
{
|
|
248
|
+
StartupState.CompleteRegistryPublication();
|
|
249
|
+
StopListener();
|
|
250
|
+
WriteRuntimeLoadDiagnostics("listener_registry_failed");
|
|
251
|
+
WriteLog("bridge_start_failed initial registry publication exhausted listenerId=" + ListenerId);
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
if (action != BridgeInitialPublicationAction.OpenQueueAndListen) return;
|
|
255
|
+
StartupState.CompleteRegistryPublication();
|
|
256
|
+
ProductionQueueState.ListenerId = ListenerId;
|
|
257
|
+
ProductionQueueState.ListenerGeneration = Math.Max(1, CurrentListenerGeneration());
|
|
258
|
+
lock (ProductionQueueState.QueueLock)
|
|
259
|
+
{
|
|
260
|
+
ProductionQueueState.QueueSessionStopping = false;
|
|
261
|
+
ProductionQueueState.QueuePublicationOpen = true;
|
|
262
|
+
}
|
|
263
|
+
Task.Run(ListenLoop);
|
|
264
|
+
readyPublicationPending = true;
|
|
265
|
+
nextRegistryRefreshAt = EditorApplication.timeSinceStartup + RegistryRefreshSeconds;
|
|
266
|
+
WriteRuntimeLoadDiagnostics("listener_started");
|
|
267
|
+
WriteLog("bridge_started port=" + port + " listenerId=" + ListenerId + " diagnosticsFingerprint=" + BridgeDiagnosticsFingerprint + " assemblyMvid=" + AssemblyMvid() + " packageName=" + BridgePackageName() + " packageAssetPath=" + BridgePackageAssetPath() + " packageResolvedPath=" + BridgePackageResolvedPath());
|
|
268
|
+
}
|
|
269
|
+
|
|
212
270
|
private static void OnBeforeAssemblyReload()
|
|
213
271
|
{
|
|
214
272
|
domainReloading = true;
|
|
273
|
+
var queuedBeforeReload = CloseQueuePublicationAndTakeQueuedWork();
|
|
215
274
|
SaveAdmissionPoolBeforeReload();
|
|
216
275
|
ReleaseActiveDirectMutationLease();
|
|
217
276
|
UnityCliCompilationEventBroker.BeforeReload();
|
|
@@ -225,7 +284,7 @@ namespace UnityCli
|
|
|
225
284
|
UnityCliNavMeshBakeCoordinator.BeforeReload();
|
|
226
285
|
UnityCliOcclusionBakeCoordinator.BeforeReload();
|
|
227
286
|
BridgeLifetime.Cancel();
|
|
228
|
-
CancelQueuedWork();
|
|
287
|
+
CancelQueuedWork(queuedBeforeReload);
|
|
229
288
|
CancelPendingWaits("E_UNITY_DOMAIN_RELOAD", "Unity Editor is reloading assemblies (domain reload).", "Wait for domain reload to complete and retry.", 10000);
|
|
230
289
|
if (!UnityCliProjectSettings.Current.BridgeAutoStart)
|
|
231
290
|
{
|
|
@@ -241,6 +300,11 @@ namespace UnityCli
|
|
|
241
300
|
private static void OnAfterAssemblyReload()
|
|
242
301
|
{
|
|
243
302
|
domainReloading = false;
|
|
303
|
+
lock (ProductionQueueState.QueueLock)
|
|
304
|
+
{
|
|
305
|
+
ProductionQueueState.QueuePublicationOpen = false;
|
|
306
|
+
ProductionQueueState.QueueSessionStopping = false;
|
|
307
|
+
}
|
|
244
308
|
InitializeAdmissionPool();
|
|
245
309
|
UnityCliSessionMutationLease.Initialize();
|
|
246
310
|
UnityCliCompilationEventBroker.Initialize();
|
|
@@ -257,14 +321,12 @@ namespace UnityCli
|
|
|
257
321
|
StartupState.Reset();
|
|
258
322
|
WriteLog("bridge_after_assembly_reload scheduling bootstrap");
|
|
259
323
|
ScheduleBridgeStartup();
|
|
260
|
-
|
|
261
|
-
// After domain reload, static fields are reset. Re-initialize the Runtime Executor
|
|
262
|
-
// and restore session state if we are already in Play Mode.
|
|
263
|
-
ReinitializeRuntimeExecutorAfterDomainReload();
|
|
264
324
|
}
|
|
265
325
|
|
|
266
326
|
private static void UnregisterAndStop()
|
|
267
327
|
{
|
|
328
|
+
var queuedBeforeShutdown = CloseQueuePublicationAndTakeQueuedWork(true);
|
|
329
|
+
CancelQueuedWorkForShutdown(queuedBeforeShutdown);
|
|
268
330
|
ShutdownAdmissionPool();
|
|
269
331
|
ReleaseActiveDirectMutationLease();
|
|
270
332
|
StartupState.Reset();
|
|
@@ -279,7 +341,6 @@ namespace UnityCli
|
|
|
279
341
|
UnityCliNavMeshBakeCoordinator.Shutdown();
|
|
280
342
|
UnityCliOcclusionBakeCoordinator.Shutdown();
|
|
281
343
|
BridgeLifetime.Cancel();
|
|
282
|
-
CancelQueuedWork();
|
|
283
344
|
CancelPendingWaits("E_UNITY_QUITTING", "Unity Editor is quitting.", "Restart Unity and retry the request.", 5000);
|
|
284
345
|
DeleteInstanceRegistration();
|
|
285
346
|
StopListener();
|
|
@@ -297,7 +358,7 @@ namespace UnityCli
|
|
|
297
358
|
}
|
|
298
359
|
if (state == PlayModeStateChange.EnteredPlayMode || state == PlayModeStateChange.EnteredEditMode)
|
|
299
360
|
UnityCliSessionMutationLease.TryFinalizeOwnedPlayModeRoot();
|
|
300
|
-
if (started)
|
|
361
|
+
if (started && InitialPublicationGate.Published)
|
|
301
362
|
{
|
|
302
363
|
RegisterInstance(playModeChanging ? "transitioning" : "ready");
|
|
303
364
|
nextRegistryRefreshAt = EditorApplication.timeSinceStartup + RegistryRefreshSeconds;
|
|
@@ -340,7 +401,10 @@ namespace UnityCli
|
|
|
340
401
|
WriteLog("bridge_stop_failed " + exception.GetType().Name + ": " + exception.Message);
|
|
341
402
|
}
|
|
342
403
|
started = false;
|
|
404
|
+
lock (ProductionQueueState.QueueLock) ProductionQueueState.QueuePublicationOpen = false;
|
|
343
405
|
readyPublicationPending = false;
|
|
406
|
+
StartupState.CompleteRegistryPublication();
|
|
407
|
+
InitialPublicationGate.Reset();
|
|
344
408
|
CancelInstancePublicationRetry();
|
|
345
409
|
}
|
|
346
410
|
|
|
@@ -349,7 +413,9 @@ namespace UnityCli
|
|
|
349
413
|
try
|
|
350
414
|
{
|
|
351
415
|
var data = await ExecuteData(request, cancellationToken);
|
|
352
|
-
//
|
|
416
|
+
// Project Tool 的成功 envelope 已在其同一 deadline 与请求预算内完成;其他内部命令保持统一包装。
|
|
417
|
+
var serializedEnvelope = data as SerializedBridgeEnvelope;
|
|
418
|
+
if (serializedEnvelope != null) return serializedEnvelope.Json;
|
|
353
419
|
return UnityCliSerializer.Serialize(UnityCli.Protocol.ProtocolEnvelopeFactory.Success(request.RequestId, data));
|
|
354
420
|
}
|
|
355
421
|
catch (BridgeCommandException exception)
|
|
@@ -383,7 +449,7 @@ namespace UnityCli
|
|
|
383
449
|
throw new BridgeCommandException("E_UNITY_DOMAIN_RELOAD", "Unity Editor is reloading assemblies (domain reload).", null, new[] { "Wait for domain reload to complete and retry." }, true, 10000);
|
|
384
450
|
}
|
|
385
451
|
|
|
386
|
-
var allowedDuringCompileOrImport = UnityCliCompileCoordinator.IsCommand(request.Command) || UnityCliLiveRefreshCoordinator.IsCommand(request.Command) || UnityCliAssetRefreshCoordinator.IsCommand(request.Command) || UnityCliPackageEmbedCoordinator.IsCommand(request.Command) || UnityCliPackageResolveCoordinator.IsCommand(request.Command) || UnityCliTestRunCoordinator.IsCommand(request.Command) || UnityCliNavMeshBakeCoordinator.IsCommand(request.Command) || UnityCliOcclusionBakeCoordinator.IsCommand(request.Command) || IsEditorStateSnapshotCommand(request.Command);
|
|
452
|
+
var allowedDuringCompileOrImport = UnityCliDurableStatusCoordinator.IsCommand(request.Command) || UnityCliCompileCoordinator.IsCommand(request.Command) || UnityCliLiveRefreshCoordinator.IsCommand(request.Command) || UnityCliAssetRefreshCoordinator.IsCommand(request.Command) || UnityCliPackageEmbedCoordinator.IsCommand(request.Command) || UnityCliPackageResolveCoordinator.IsCommand(request.Command) || UnityCliTestRunCoordinator.IsCommand(request.Command) || UnityCliNavMeshBakeCoordinator.IsCommand(request.Command) || UnityCliOcclusionBakeCoordinator.IsCommand(request.Command) || IsEditorStateSnapshotCommand(request.Command) || IsProjectToolCatalogReadCommand(request.Command) || IsDoctorAdmissionBypassCommand(request.Command);
|
|
387
453
|
if (EditorApplication.isCompiling && !allowedDuringCompileOrImport)
|
|
388
454
|
{
|
|
389
455
|
throw new BridgeCommandException("E_UNITY_COMPILING", "Unity Editor is compiling scripts.", null, new[] { "Wait for Unity to finish compiling and retry." }, true, 5000);
|
|
@@ -397,16 +463,13 @@ namespace UnityCli
|
|
|
397
463
|
if (IsPlayModeChanging())
|
|
398
464
|
{
|
|
399
465
|
// 只在 PlayMode 切换期限制高风险命令;稳定运行态允许 CLI 工具继续操作 Unity。
|
|
400
|
-
var allowedDuringPlayModeTransition = UnityCliCompileCoordinator.IsCommand(request.Command) || UnityCliLiveRefreshCoordinator.IsCommand(request.Command) || UnityCliAssetRefreshCoordinator.IsCommand(request.Command) || UnityCliPackageEmbedCoordinator.IsCommand(request.Command) || UnityCliPackageResolveCoordinator.IsCommand(request.Command) || UnityCliTestRunCoordinator.IsCommand(request.Command) || UnityCliNavMeshBakeCoordinator.IsCommand(request.Command) || UnityCliOcclusionBakeCoordinator.IsCommand(request.Command)
|
|
466
|
+
var allowedDuringPlayModeTransition = UnityCliDurableStatusCoordinator.IsCommand(request.Command) || UnityCliCompileCoordinator.IsCommand(request.Command) || UnityCliLiveRefreshCoordinator.IsCommand(request.Command) || UnityCliAssetRefreshCoordinator.IsCommand(request.Command) || UnityCliPackageEmbedCoordinator.IsCommand(request.Command) || UnityCliPackageResolveCoordinator.IsCommand(request.Command) || UnityCliTestRunCoordinator.IsCommand(request.Command) || UnityCliNavMeshBakeCoordinator.IsCommand(request.Command) || UnityCliOcclusionBakeCoordinator.IsCommand(request.Command)
|
|
401
467
|
|| IsEditorStateSnapshotCommand(request.Command)
|
|
402
|
-
|| request.Command == "editor.console"
|
|
403
468
|
|| request.Command == "editor.pause"
|
|
404
469
|
|| request.Command == "editor.stop"
|
|
405
|
-
|| request.Command
|
|
470
|
+
|| IsProjectToolCatalogReadCommand(request.Command)
|
|
406
471
|
|| request.Command == "runtime-tool.run"
|
|
407
|
-
|| request.Command
|
|
408
|
-
|| request.Command == "diagnose.preflight"
|
|
409
|
-
|| request.Command == "extension.status";
|
|
472
|
+
|| IsDoctorAdmissionBypassCommand(request.Command);
|
|
410
473
|
|
|
411
474
|
if (!allowedDuringPlayModeTransition)
|
|
412
475
|
{
|